Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
  • tracespace
2 results

Target

Select target project
  • quentinbolsee/gerber2img
  • AlanHan/gerber2img
2 results
Select Git revision
  • main
1 result
Show changes
Commits on Source (29)
Showing
with 6448 additions and 1745 deletions
......@@ -6,12 +6,13 @@ yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
dev
node_modules
dist-ssr
*.local
pckage-lock.json
package-lock.json
# Editor directories and files
.vscode/*
......
# gerber2png
# gerber2img
https://quentinbolsee.pages.cba.mit.edu/gerber2png/index.html
https://quentinbolsee.pages.cba.mit.edu/gerber2img/
A basic website to consistently convert Gerber files to aligned PNG images.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg827"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="background.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview829"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.71446409"
inkscape:cx="390.50248"
inkscape:cy="366.0086"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs824" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910"
width="10"
height="10"
x="-1.7763568e-15"
y="-1.7763568e-15" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3"
width="10"
height="10"
x="10"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5"
width="10"
height="10"
x="10"
y="-2.0724143e-16" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2"
width="10"
height="10"
x="0"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39"
width="10"
height="10"
x="20"
y="-2.3841858e-07" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9"
width="10"
height="10"
x="30"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9"
width="10"
height="10"
x="30"
y="-2.3841858e-07" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0"
width="10"
height="10"
x="20"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0"
width="10"
height="10"
x="0"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4"
width="10"
height="10"
x="10"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6"
width="10"
height="10"
x="10"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7"
width="10"
height="10"
x="0"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5"
width="10"
height="10"
x="20"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9"
width="10"
height="10"
x="30"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3"
width="10"
height="10"
x="30"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7"
width="10"
height="10"
x="20"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2"
width="10"
height="10"
x="40"
y="1.7763568e-15" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3"
width="10"
height="10"
x="50"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63"
width="10"
height="10"
x="50"
y="1.7763568e-15" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1"
width="10"
height="10"
x="40"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58"
width="10"
height="10"
x="60"
y="-4.7683716e-07" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96"
width="10"
height="10"
x="70"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8"
width="10"
height="10"
x="70"
y="-4.7683716e-07" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1"
width="10"
height="10"
x="60"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8"
width="10"
height="10"
x="40"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4"
width="10"
height="10"
x="50"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7"
width="10"
height="10"
x="50"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1"
width="10"
height="10"
x="40"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9"
width="10"
height="10"
x="60"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1"
width="10"
height="10"
x="70"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3"
width="10"
height="10"
x="70"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4"
width="10"
height="10"
x="60"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6"
width="10"
height="10"
x="80"
y="0" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4"
width="10"
height="10"
x="90"
y="10.000002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7"
width="10"
height="10"
x="90"
y="0" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5"
width="10"
height="10"
x="80"
y="10.000002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8"
width="10"
height="10"
x="80"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7"
width="10"
height="10"
x="90"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7"
width="10"
height="10"
x="90"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4"
width="10"
height="10"
x="80"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34"
width="10"
height="10"
x="1.9073486e-06"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2"
width="10"
height="10"
x="10"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7"
width="10"
height="10"
x="10"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5"
width="10"
height="10"
x="1.9073486e-06"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4"
width="10"
height="10"
x="20"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3"
width="10"
height="10"
x="30"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38"
width="10"
height="10"
x="30"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6"
width="10"
height="10"
x="20"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9"
width="10"
height="10"
x="1.9073486e-06"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9"
width="10"
height="10"
x="10"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6"
width="10"
height="10"
x="10"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2"
width="10"
height="10"
x="1.9073486e-06"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8"
width="10"
height="10"
x="20"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3"
width="10"
height="10"
x="30"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2"
width="10"
height="10"
x="30"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0"
width="10"
height="10"
x="20"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4"
width="10"
height="10"
x="40"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1"
width="10"
height="10"
x="50"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9"
width="10"
height="10"
x="50"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2"
width="10"
height="10"
x="40"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0"
width="10"
height="10"
x="60"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3"
width="10"
height="10"
x="70"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8"
width="10"
height="10"
x="70"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1"
width="10"
height="10"
x="60"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0"
width="10"
height="10"
x="40"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7"
width="10"
height="10"
x="50"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5"
width="10"
height="10"
x="50"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3"
width="10"
height="10"
x="40"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81"
width="10"
height="10"
x="60"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5"
width="10"
height="10"
x="70"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4"
width="10"
height="10"
x="70"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7"
width="10"
height="10"
x="60"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6"
width="10"
height="10"
x="80"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4"
width="10"
height="10"
x="90"
y="50.000004" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0"
width="10"
height="10"
x="90"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1"
width="10"
height="10"
x="80"
y="50.000004" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5"
width="10"
height="10"
x="80"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5"
width="10"
height="10"
x="90"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9"
width="10"
height="10"
x="90"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3"
width="10"
height="10"
x="80"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6"
width="10"
height="10"
x="3.5527137e-15"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6"
width="10"
height="10"
x="10"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7"
width="10"
height="10"
x="10"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3"
width="10"
height="10"
x="3.5527137e-15"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6"
width="10"
height="10"
x="20"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7"
width="10"
height="10"
x="30"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5"
width="10"
height="10"
x="30"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5"
width="10"
height="10"
x="20"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9"
width="10"
height="10"
x="40"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4"
width="10"
height="10"
x="50"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8"
width="10"
height="10"
x="50"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9"
width="10"
height="10"
x="40"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4"
width="10"
height="10"
x="60"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3"
width="10"
height="10"
x="70"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0"
width="10"
height="10"
x="70"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2"
width="10"
height="10"
x="60"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3"
width="10"
height="10"
x="80"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6"
width="10"
height="10"
x="90"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2"
width="10"
height="10"
x="90"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0"
width="10"
height="10"
x="80"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-6"
width="10"
height="10"
x="100"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-7"
width="10"
height="10"
x="110"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-76"
width="10"
height="10"
x="110"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-6"
width="10"
height="10"
x="100"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-48"
width="10"
height="10"
x="120"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-7"
width="10"
height="10"
x="130"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-6"
width="10"
height="10"
x="130"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-0"
width="10"
height="10"
x="120"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-6"
width="10"
height="10"
x="100"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-3"
width="10"
height="10"
x="110"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-2"
width="10"
height="10"
x="110"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-8"
width="10"
height="10"
x="100"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-0"
width="10"
height="10"
x="120"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-2"
width="10"
height="10"
x="130"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-1"
width="10"
height="10"
x="130"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-3"
width="10"
height="10"
x="120"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-6"
width="10"
height="10"
x="140"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-0"
width="10"
height="10"
x="150"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-8"
width="10"
height="10"
x="150"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-9"
width="10"
height="10"
x="140"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-2"
width="10"
height="10"
x="160"
y="-6.1988831e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-43"
width="10"
height="10"
x="170"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-2"
width="10"
height="10"
x="170"
y="-6.1988831e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-52"
width="10"
height="10"
x="160"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-1"
width="10"
height="10"
x="140"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-6"
width="10"
height="10"
x="150"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-7"
width="10"
height="10"
x="150"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-0"
width="10"
height="10"
x="140"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-4"
width="10"
height="10"
x="160"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-3"
width="10"
height="10"
x="170"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-0"
width="10"
height="10"
x="170"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-41"
width="10"
height="10"
x="160"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-3"
width="10"
height="10"
x="180"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-6"
width="10"
height="10"
x="190"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-06"
width="10"
height="10"
x="190"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-3"
width="10"
height="10"
x="180"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-7"
width="10"
height="10"
x="180"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-9"
width="10"
height="10"
x="190"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-8"
width="10"
height="10"
x="190"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-5"
width="10"
height="10"
x="180"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-4"
width="10"
height="10"
x="100"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-9"
width="10"
height="10"
x="110"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-1"
width="10"
height="10"
x="110"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-6"
width="10"
height="10"
x="100"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-9"
width="10"
height="10"
x="120"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-7"
width="10"
height="10"
x="130"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-2"
width="10"
height="10"
x="130"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-5"
width="10"
height="10"
x="120"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-4"
width="10"
height="10"
x="100"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-0"
width="10"
height="10"
x="110"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-73"
width="10"
height="10"
x="110"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-2"
width="10"
height="10"
x="100"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-0"
width="10"
height="10"
x="120"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-0"
width="10"
height="10"
x="130"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-6"
width="10"
height="10"
x="130"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-7"
width="10"
height="10"
x="120"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-3"
width="10"
height="10"
x="140"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-2"
width="10"
height="10"
x="150"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-7"
width="10"
height="10"
x="150"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-9"
width="10"
height="10"
x="140"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-2"
width="10"
height="10"
x="160"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-2"
width="10"
height="10"
x="170"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-2"
width="10"
height="10"
x="170"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-8"
width="10"
height="10"
x="160"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-0"
width="10"
height="10"
x="140"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-5"
width="10"
height="10"
x="150"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-5"
width="10"
height="10"
x="150"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-7"
width="10"
height="10"
x="140"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-5"
width="10"
height="10"
x="160"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-8"
width="10"
height="10"
x="170"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-7"
width="10"
height="10"
x="170"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-1"
width="10"
height="10"
x="160"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-2"
width="10"
height="10"
x="180"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-6"
width="10"
height="10"
x="190"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-6"
width="10"
height="10"
x="190"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-2"
width="10"
height="10"
x="180"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-8"
width="10"
height="10"
x="180"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-7"
width="10"
height="10"
x="190"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-4"
width="10"
height="10"
x="190"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-1"
width="10"
height="10"
x="180"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-8"
width="10"
height="10"
x="100"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-9"
width="10"
height="10"
x="110"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-4"
width="10"
height="10"
x="110"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-2"
width="10"
height="10"
x="100"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-5"
width="10"
height="10"
x="120"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-5"
width="10"
height="10"
x="130"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-3"
width="10"
height="10"
x="130"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-5"
width="10"
height="10"
x="120"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-2"
width="10"
height="10"
x="140"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-0"
width="10"
height="10"
x="150"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-3"
width="10"
height="10"
x="150"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-9"
width="10"
height="10"
x="140"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-8"
width="10"
height="10"
x="160"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-7"
width="10"
height="10"
x="170"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-4"
width="10"
height="10"
x="170"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-5"
width="10"
height="10"
x="160"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-0"
width="10"
height="10"
x="180"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-1"
width="10"
height="10"
x="190"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-2"
width="10"
height="10"
x="190"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-3"
width="10"
height="10"
x="180"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-8"
width="10"
height="10"
x="0"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-90"
width="10"
height="10"
x="9.9999971"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-1"
width="10"
height="10"
x="9.9999971"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-68"
width="10"
height="10"
x="0"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-42"
width="10"
height="10"
x="20"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-6"
width="10"
height="10"
x="30"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-60"
width="10"
height="10"
x="30"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-5"
width="10"
height="10"
x="20"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-67"
width="10"
height="10"
x="0"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-44"
width="10"
height="10"
x="9.9999971"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-4"
width="10"
height="10"
x="9.9999971"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-6"
width="10"
height="10"
x="0"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-1"
width="10"
height="10"
x="20"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-7"
width="10"
height="10"
x="30"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-35"
width="10"
height="10"
x="30"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-00"
width="10"
height="10"
x="20"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-41"
width="10"
height="10"
x="40"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-7"
width="10"
height="10"
x="50"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-85"
width="10"
height="10"
x="50"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-7"
width="10"
height="10"
x="40"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-4"
width="10"
height="10"
x="60.000004"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-9"
width="10"
height="10"
x="69.999992"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-9"
width="10"
height="10"
x="69.999992"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-6"
width="10"
height="10"
x="60.000004"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-6"
width="10"
height="10"
x="40"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-4"
width="10"
height="10"
x="50"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-74"
width="10"
height="10"
x="50"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-8"
width="10"
height="10"
x="40"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-2"
width="10"
height="10"
x="60.000004"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-9"
width="10"
height="10"
x="69.999992"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-8"
width="10"
height="10"
x="69.999992"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-9"
width="10"
height="10"
x="60.000004"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-1"
width="10"
height="10"
x="79.999992"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-8"
width="10"
height="10"
x="89.999992"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-1"
width="10"
height="10"
x="89.999992"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-9"
width="10"
height="10"
x="79.999992"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-9"
width="10"
height="10"
x="79.999992"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-55"
width="10"
height="10"
x="89.999992"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-0"
width="10"
height="10"
x="89.999992"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-4"
width="10"
height="10"
x="79.999992"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-3"
width="10"
height="10"
x="1.9073486e-06"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-5"
width="10"
height="10"
x="9.9999971"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-16"
width="10"
height="10"
x="9.9999971"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-0"
width="10"
height="10"
x="1.9073486e-06"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-0"
width="10"
height="10"
x="20"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-1"
width="10"
height="10"
x="30"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-25"
width="10"
height="10"
x="30"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-3"
width="10"
height="10"
x="20"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-41"
width="10"
height="10"
x="1.9073486e-06"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-3"
width="10"
height="10"
x="9.9999971"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-2"
width="10"
height="10"
x="9.9999971"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-8"
width="10"
height="10"
x="1.9073486e-06"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-06"
width="10"
height="10"
x="20"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-1"
width="10"
height="10"
x="30"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-8"
width="10"
height="10"
x="30"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-1"
width="10"
height="10"
x="20"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-0"
width="10"
height="10"
x="40"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-4"
width="10"
height="10"
x="50"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-6"
width="10"
height="10"
x="50"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-0"
width="10"
height="10"
x="40"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-5"
width="10"
height="10"
x="60.000004"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-7"
width="10"
height="10"
x="69.999992"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-0"
width="10"
height="10"
x="69.999992"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-6"
width="10"
height="10"
x="60.000004"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-3"
width="10"
height="10"
x="40"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-6"
width="10"
height="10"
x="50"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-86"
width="10"
height="10"
x="50"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-1"
width="10"
height="10"
x="40"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-7"
width="10"
height="10"
x="60.000004"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-39"
width="10"
height="10"
x="69.999992"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-6"
width="10"
height="10"
x="69.999992"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-8"
width="10"
height="10"
x="60.000004"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-6"
width="10"
height="10"
x="79.999992"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-7"
width="10"
height="10"
x="89.999992"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-0"
width="10"
height="10"
x="89.999992"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-7"
width="10"
height="10"
x="79.999992"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-6"
width="10"
height="10"
x="79.999992"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-3"
width="10"
height="10"
x="89.999992"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-1"
width="10"
height="10"
x="89.999992"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-8"
width="10"
height="10"
x="79.999992"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-7"
width="10"
height="10"
x="0"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-6"
width="10"
height="10"
x="9.9999971"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-5"
width="10"
height="10"
x="9.9999971"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-1"
width="10"
height="10"
x="0"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-9"
width="10"
height="10"
x="20"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-8"
width="10"
height="10"
x="30"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-2"
width="10"
height="10"
x="30"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-6"
width="10"
height="10"
x="20"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-8"
width="10"
height="10"
x="40"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-6"
width="10"
height="10"
x="50"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-1"
width="10"
height="10"
x="50"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-8"
width="10"
height="10"
x="40"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-1"
width="10"
height="10"
x="60.000004"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-0"
width="10"
height="10"
x="69.999992"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-0"
width="10"
height="10"
x="69.999992"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-3"
width="10"
height="10"
x="60.000004"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-6"
width="10"
height="10"
x="79.999992"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-3"
width="10"
height="10"
x="89.999992"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-22"
width="10"
height="10"
x="89.999992"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-8"
width="10"
height="10"
x="79.999992"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-6-2"
width="10"
height="10"
x="100"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-7-5"
width="10"
height="10"
x="110"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-76-3"
width="10"
height="10"
x="110"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-6-7"
width="10"
height="10"
x="100"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-48-8"
width="10"
height="10"
x="120"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-7-0"
width="10"
height="10"
x="130"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-6-4"
width="10"
height="10"
x="130"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-0-8"
width="10"
height="10"
x="120"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-6-6"
width="10"
height="10"
x="100"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-3-5"
width="10"
height="10"
x="110"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-2-4"
width="10"
height="10"
x="110"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-8-7"
width="10"
height="10"
x="100"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-0-7"
width="10"
height="10"
x="120"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-2-7"
width="10"
height="10"
x="130"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-1-2"
width="10"
height="10"
x="130"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-3-7"
width="10"
height="10"
x="120"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-6-1"
width="10"
height="10"
x="140"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-0-6"
width="10"
height="10"
x="150"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-8-0"
width="10"
height="10"
x="150"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-9-7"
width="10"
height="10"
x="140"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-2-8"
width="10"
height="10"
x="160"
y="100" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-43-8"
width="10"
height="10"
x="170"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-2-8"
width="10"
height="10"
x="170"
y="100" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-52-5"
width="10"
height="10"
x="160"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-1-2"
width="10"
height="10"
x="140"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-6-7"
width="10"
height="10"
x="150"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-7-8"
width="10"
height="10"
x="150"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-0-7"
width="10"
height="10"
x="140"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-4-8"
width="10"
height="10"
x="160"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-3-4"
width="10"
height="10"
x="170"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-0-9"
width="10"
height="10"
x="170"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-41-3"
width="10"
height="10"
x="160"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-3-4"
width="10"
height="10"
x="180"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-6-9"
width="10"
height="10"
x="190"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-06-7"
width="10"
height="10"
x="190"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-3-3"
width="10"
height="10"
x="180"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-7-7"
width="10"
height="10"
x="180"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-9-0"
width="10"
height="10"
x="190"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-8-4"
width="10"
height="10"
x="190"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-5-4"
width="10"
height="10"
x="180"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-4-2"
width="10"
height="10"
x="100"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-9-0"
width="10"
height="10"
x="110"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-1-8"
width="10"
height="10"
x="110"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-6-1"
width="10"
height="10"
x="100"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-9-5"
width="10"
height="10"
x="120"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-7-6"
width="10"
height="10"
x="130"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-2-6"
width="10"
height="10"
x="130"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-5-0"
width="10"
height="10"
x="120"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-4-7"
width="10"
height="10"
x="100"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-0-4"
width="10"
height="10"
x="110"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-73-3"
width="10"
height="10"
x="110"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-2-7"
width="10"
height="10"
x="100"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-0-1"
width="10"
height="10"
x="120"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-0-2"
width="10"
height="10"
x="130"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-6-1"
width="10"
height="10"
x="130"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-7-2"
width="10"
height="10"
x="120"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-3-2"
width="10"
height="10"
x="140"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-2-2"
width="10"
height="10"
x="150"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-7-3"
width="10"
height="10"
x="150"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-9-6"
width="10"
height="10"
x="140"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-2-4"
width="10"
height="10"
x="160"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-2-3"
width="10"
height="10"
x="170"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-2-2"
width="10"
height="10"
x="170"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-8-4"
width="10"
height="10"
x="160"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-0-3"
width="10"
height="10"
x="140"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-5-8"
width="10"
height="10"
x="150"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-5-8"
width="10"
height="10"
x="150"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-7-0"
width="10"
height="10"
x="140"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-5-6"
width="10"
height="10"
x="160"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-8-7"
width="10"
height="10"
x="170"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-7-5"
width="10"
height="10"
x="170"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-1-1"
width="10"
height="10"
x="160"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-2-9"
width="10"
height="10"
x="180"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-6-6"
width="10"
height="10"
x="190"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-6-5"
width="10"
height="10"
x="190"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-2-1"
width="10"
height="10"
x="180"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-8-5"
width="10"
height="10"
x="180"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-7-0"
width="10"
height="10"
x="190"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-4-8"
width="10"
height="10"
x="190"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-1-4"
width="10"
height="10"
x="180"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-8-8"
width="10"
height="10"
x="100"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-9-5"
width="10"
height="10"
x="110"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-4-5"
width="10"
height="10"
x="110"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-2-9"
width="10"
height="10"
x="100"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-5-9"
width="10"
height="10"
x="120"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-5-2"
width="10"
height="10"
x="130"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-3-8"
width="10"
height="10"
x="130"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-5-3"
width="10"
height="10"
x="120"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-2-1"
width="10"
height="10"
x="140"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-0-4"
width="10"
height="10"
x="150"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-3-2"
width="10"
height="10"
x="150"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-9-6"
width="10"
height="10"
x="140"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-8-9"
width="10"
height="10"
x="160"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-7-9"
width="10"
height="10"
x="170"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-4-5"
width="10"
height="10"
x="170"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-5-1"
width="10"
height="10"
x="160"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-0-1"
width="10"
height="10"
x="180"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-1-1"
width="10"
height="10"
x="190"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-2-7"
width="10"
height="10"
x="190"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-3-2"
width="10"
height="10"
x="180"
y="189.99997" />
</g>
</svg>
body{font-family:Arial,Helvetica,sans-serif}input{max-width:30%}p{color:#000}h3{margin-left:4px;margin-top:20px;margin-bottom:4px}h1{margin-top:4px;margin-bottom:8px}p.lock{cursor:default;margin:0}p#dropText{font-size:100px}.container{display:flex}button{border:none}button.interface{background-color:#c8c8c8;padding:4px;border-radius:6px;margin:4px;width:28%;min-width:80px}button.interface:hover{background-color:#a0a0a0;cursor:pointer}button.lock{background:none;border:none;margin:0;padding:0;cursor:pointer}div,h2{margin:4px}.info{background-color:#ddd;padding:5px;border-radius:8px}.full-flex{flex:1}.panel{display:flex;flex-direction:column;padding:4px}.settings{width:35vh;margin:4px;display:flex;border-radius:6px;border:1px solid rgb(0,0,0);flex-direction:column}#previewSVG{width:100%;height:100%}div.SVGbox{border:1px solid rgb(0,0,0)}div.preview{width:65vh;height:65vh;margin:4px;border-radius:6px;background-size:100% 100%;background-image:url(https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/background-f04e5df7.svg);border:1px solid rgb(0,0,0);display:flex;align-items:center;justify-content:center}div#dropZone{background-color:#b4b4b499;position:fixed;top:0;left:0;width:100%;height:100%;z-index:999;visibility:hidden;display:flex;align-items:center;justify-content:center}footer{position:fixed;left:0;bottom:0;height:30px;width:100%;font-size:12px}
body{font-family:Arial,Helvetica,sans-serif}input{max-width:30%}p{color:#000}h3{margin-left:4px;margin-top:20px;margin-bottom:4px}p.lock{cursor:default;margin:0}p#dropText{font-size:100px}.container{display:flex}button{border:none}button.interface{background-color:#c8c8c8;padding:4px;border-radius:6px;margin:4px;width:28%;min-width:80px}button.interface:hover{background-color:#a0a0a0;cursor:pointer}button.lock{background:none;border:none;margin:0;padding:0;cursor:pointer}div,h2{margin:4px}.info{background-color:#ddd;padding:5px;border-radius:8px}.full-flex{flex:1}.panel{display:flex;flex-direction:column;padding:4px}.settings{width:35vh;height:65vh;margin:4px;display:flex;border-radius:6px;border:1px solid rgb(0,0,0);flex-direction:column}#previewSVG{width:100%;height:100%}div.SVGbox{border:1px solid rgb(0,0,0)}div.preview{width:65vh;height:65vh;margin:4px;border-radius:6px;background-color:#fff;border:1px solid rgb(0,0,0);display:flex;align-items:center;justify-content:center}div#dropZone{background-color:#b4b4b499;position:fixed;top:0;left:0;width:100%;height:100%;z-index:999;visibility:hidden;display:flex;align-items:center;justify-content:center}
dist/assets/logo-a252ba3f.png

10.5 KiB

(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const u of s.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}})();var ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function hr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ra(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),r}var qi={exports:{}},ae=qi.exports={},Re,Se;function Wt(){throw new Error("setTimeout has not been defined")}function Ht(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Re=setTimeout:Re=Wt}catch{Re=Wt}try{typeof clearTimeout=="function"?Se=clearTimeout:Se=Ht}catch{Se=Ht}})();function zi(e){if(Re===setTimeout)return setTimeout(e,0);if((Re===Wt||!Re)&&setTimeout)return Re=setTimeout,setTimeout(e,0);try{return Re(e,0)}catch{try{return Re.call(null,e,0)}catch{return Re.call(this,e,0)}}}function Sa(e){if(Se===clearTimeout)return clearTimeout(e);if((Se===Ht||!Se)&&clearTimeout)return Se=clearTimeout,clearTimeout(e);try{return Se(e)}catch{try{return Se.call(null,e)}catch{return Se.call(this,e)}}}var Ie=[],et=!1,ze,ct=-1;function Ta(){!et||!ze||(et=!1,ze.length?Ie=ze.concat(Ie):ct=-1,Ie.length&&Wi())}function Wi(){if(!et){var e=zi(Ta);et=!0;for(var t=Ie.length;t;){for(ze=Ie,Ie=[];++ct<t;)ze&&ze[ct].run();ct=-1,t=Ie.length}ze=null,et=!1,Sa(e)}}ae.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];Ie.push(new Hi(e,t)),Ie.length===1&&!et&&zi(Wi)};function Hi(e,t){this.fun=e,this.array=t}Hi.prototype.run=function(){this.fun.apply(null,this.array)};ae.title="browser";ae.browser=!0;ae.env={};ae.argv=[];ae.version="";ae.versions={};function Le(){}ae.on=Le;ae.addListener=Le;ae.once=Le;ae.off=Le;ae.removeListener=Le;ae.removeAllListeners=Le;ae.emit=Le;ae.prependListener=Le;ae.prependOnceListener=Le;ae.listeners=function(e){return[]};ae.binding=function(e){throw new Error("process.binding is not supported")};ae.cwd=function(){return"/"};ae.chdir=function(e){throw new Error("process.chdir is not supported")};ae.umask=function(){return 0};var Aa=qi.exports;const Ba=hr(Aa);var it={},Mt={};Mt.byteLength=La;Mt.toByteArray=Ca;Mt.fromByteArray=ka;var Te=[],_e=[],Ia=typeof Uint8Array<"u"?Uint8Array:Array,Lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Je=0,Na=Lt.length;Je<Na;++Je)Te[Je]=Lt[Je],_e[Lt.charCodeAt(Je)]=Je;_e["-".charCodeAt(0)]=62;_e["_".charCodeAt(0)]=63;function Zi(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function La(e){var t=Zi(e),r=t[0],n=t[1];return(r+n)*3/4-n}function ja(e,t,r){return(t+r)*3/4-r}function Ca(e){var t,r=Zi(e),n=r[0],o=r[1],s=new Ia(ja(e,n,o)),u=0,f=o>0?n-4:n,h;for(h=0;h<f;h+=4)t=_e[e.charCodeAt(h)]<<18|_e[e.charCodeAt(h+1)]<<12|_e[e.charCodeAt(h+2)]<<6|_e[e.charCodeAt(h+3)],s[u++]=t>>16&255,s[u++]=t>>8&255,s[u++]=t&255;return o===2&&(t=_e[e.charCodeAt(h)]<<2|_e[e.charCodeAt(h+1)]>>4,s[u++]=t&255),o===1&&(t=_e[e.charCodeAt(h)]<<10|_e[e.charCodeAt(h+1)]<<4|_e[e.charCodeAt(h+2)]>>2,s[u++]=t>>8&255,s[u++]=t&255),s}function Oa(e){return Te[e>>18&63]+Te[e>>12&63]+Te[e>>6&63]+Te[e&63]}function Fa(e,t,r){for(var n,o=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),o.push(Oa(n));return o.join("")}function ka(e){for(var t,r=e.length,n=r%3,o=[],s=16383,u=0,f=r-n;u<f;u+=s)o.push(Fa(e,u,u+s>f?f:u+s));return n===1?(t=e[r-1],o.push(Te[t>>2]+Te[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],o.push(Te[t>>10]+Te[t>>4&63]+Te[t<<2&63]+"=")),o.join("")}var cr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */cr.read=function(e,t,r,n,o){var s,u,f=o*8-n-1,h=(1<<f)-1,d=h>>1,g=-7,m=r?o-1:0,x=r?-1:1,S=e[t+m];for(m+=x,s=S&(1<<-g)-1,S>>=-g,g+=f;g>0;s=s*256+e[t+m],m+=x,g-=8);for(u=s&(1<<-g)-1,s>>=-g,g+=n;g>0;u=u*256+e[t+m],m+=x,g-=8);if(s===0)s=1-d;else{if(s===h)return u?NaN:(S?-1:1)*(1/0);u=u+Math.pow(2,n),s=s-d}return(S?-1:1)*u*Math.pow(2,s-n)};cr.write=function(e,t,r,n,o,s){var u,f,h,d=s*8-o-1,g=(1<<d)-1,m=g>>1,x=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=n?0:s-1,E=n?1:-1,R=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(f=isNaN(t)?1:0,u=g):(u=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-u))<1&&(u--,h*=2),u+m>=1?t+=x/h:t+=x*Math.pow(2,1-m),t*h>=2&&(u++,h/=2),u+m>=g?(f=0,u=g):u+m>=1?(f=(t*h-1)*Math.pow(2,o),u=u+m):(f=t*Math.pow(2,m-1)*Math.pow(2,o),u=0));o>=8;e[r+S]=f&255,S+=E,f/=256,o-=8);for(u=u<<o|f,d+=o;d>0;e[r+S]=u&255,S+=E,u/=256,d-=8);e[r+S-E]|=R*128};/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/(function(e){const t=Mt,r=cr,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=f,e.SlowBuffer=L,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,f.TYPED_ARRAY_SUPPORT=s(),!f.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const l=new Uint8Array(1),i={foo:function(){return 42}};return Object.setPrototypeOf(i,Uint8Array.prototype),Object.setPrototypeOf(l,i),l.foo()===42}catch{return!1}}Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}});function u(l){if(l>o)throw new RangeError('The value "'+l+'" is invalid for option "size"');const i=new Uint8Array(l);return Object.setPrototypeOf(i,f.prototype),i}function f(l,i,a){if(typeof l=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return m(l)}return h(l,i,a)}f.poolSize=8192;function h(l,i,a){if(typeof l=="string")return x(l,i);if(ArrayBuffer.isView(l))return E(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(ve(l,ArrayBuffer)||l&&ve(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ve(l,SharedArrayBuffer)||l&&ve(l.buffer,SharedArrayBuffer)))return R(l,i,a);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const c=l.valueOf&&l.valueOf();if(c!=null&&c!==l)return f.from(c,i,a);const y=B(l);if(y)return y;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return f.from(l[Symbol.toPrimitive]("string"),i,a);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}f.from=function(l,i,a){return h(l,i,a)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array);function d(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function g(l,i,a){return d(l),l<=0?u(l):i!==void 0?typeof a=="string"?u(l).fill(i,a):u(l).fill(i):u(l)}f.alloc=function(l,i,a){return g(l,i,a)};function m(l){return d(l),u(l<0?0:N(l)|0)}f.allocUnsafe=function(l){return m(l)},f.allocUnsafeSlow=function(l){return m(l)};function x(l,i){if((typeof i!="string"||i==="")&&(i="utf8"),!f.isEncoding(i))throw new TypeError("Unknown encoding: "+i);const a=k(l,i)|0;let c=u(a);const y=c.write(l,i);return y!==a&&(c=c.slice(0,y)),c}function S(l){const i=l.length<0?0:N(l.length)|0,a=u(i);for(let c=0;c<i;c+=1)a[c]=l[c]&255;return a}function E(l){if(ve(l,Uint8Array)){const i=new Uint8Array(l);return R(i.buffer,i.byteOffset,i.byteLength)}return S(l)}function R(l,i,a){if(i<0||l.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<i+(a||0))throw new RangeError('"length" is outside of buffer bounds');let c;return i===void 0&&a===void 0?c=new Uint8Array(l):a===void 0?c=new Uint8Array(l,i):c=new Uint8Array(l,i,a),Object.setPrototypeOf(c,f.prototype),c}function B(l){if(f.isBuffer(l)){const i=N(l.length)|0,a=u(i);return a.length===0||l.copy(a,0,0,i),a}if(l.length!==void 0)return typeof l.length!="number"||De(l.length)?u(0):S(l);if(l.type==="Buffer"&&Array.isArray(l.data))return S(l.data)}function N(l){if(l>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return l|0}function L(l){return+l!=l&&(l=0),f.alloc(+l)}f.isBuffer=function(i){return i!=null&&i._isBuffer===!0&&i!==f.prototype},f.compare=function(i,a){if(ve(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),ve(a,Uint8Array)&&(a=f.from(a,a.offset,a.byteLength)),!f.isBuffer(i)||!f.isBuffer(a))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(i===a)return 0;let c=i.length,y=a.length;for(let w=0,M=Math.min(c,y);w<M;++w)if(i[w]!==a[w]){c=i[w],y=a[w];break}return c<y?-1:y<c?1:0},f.isEncoding=function(i){switch(String(i).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(i,a){if(!Array.isArray(i))throw new TypeError('"list" argument must be an Array of Buffers');if(i.length===0)return f.alloc(0);let c;if(a===void 0)for(a=0,c=0;c<i.length;++c)a+=i[c].length;const y=f.allocUnsafe(a);let w=0;for(c=0;c<i.length;++c){let M=i[c];if(ve(M,Uint8Array))w+M.length>y.length?(f.isBuffer(M)||(M=f.from(M)),M.copy(y,w)):Uint8Array.prototype.set.call(y,M,w);else if(f.isBuffer(M))M.copy(y,w);else throw new TypeError('"list" argument must be an Array of Buffers');w+=M.length}return y};function k(l,i){if(f.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||ve(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);const a=l.length,c=arguments.length>2&&arguments[2]===!0;if(!c&&a===0)return 0;let y=!1;for(;;)switch(i){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":return X(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a*2;case"hex":return a>>>1;case"base64":return at(l).length;default:if(y)return c?-1:X(l).length;i=(""+i).toLowerCase(),y=!0}}f.byteLength=k;function j(l,i,a){let c=!1;if((i===void 0||i<0)&&(i=0),i>this.length||((a===void 0||a>this.length)&&(a=this.length),a<=0)||(a>>>=0,i>>>=0,a<=i))return"";for(l||(l="utf8");;)switch(l){case"hex":return pe(this,i,a);case"utf8":case"utf-8":return de(this,i,a);case"ascii":return be(this,i,a);case"latin1":case"binary":return je(this,i,a);case"base64":return Z(this,i,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ze(this,i,a);default:if(c)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),c=!0}}f.prototype._isBuffer=!0;function F(l,i,a){const c=l[i];l[i]=l[a],l[a]=c}f.prototype.swap16=function(){const i=this.length;if(i%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let a=0;a<i;a+=2)F(this,a,a+1);return this},f.prototype.swap32=function(){const i=this.length;if(i%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let a=0;a<i;a+=4)F(this,a,a+3),F(this,a+1,a+2);return this},f.prototype.swap64=function(){const i=this.length;if(i%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let a=0;a<i;a+=8)F(this,a,a+7),F(this,a+1,a+6),F(this,a+2,a+5),F(this,a+3,a+4);return this},f.prototype.toString=function(){const i=this.length;return i===0?"":arguments.length===0?de(this,0,i):j.apply(this,arguments)},f.prototype.toLocaleString=f.prototype.toString,f.prototype.equals=function(i){if(!f.isBuffer(i))throw new TypeError("Argument must be a Buffer");return this===i?!0:f.compare(this,i)===0},f.prototype.inspect=function(){let i="";const a=e.INSPECT_MAX_BYTES;return i=this.toString("hex",0,a).replace(/(.{2})/g,"$1 ").trim(),this.length>a&&(i+=" ... "),"<Buffer "+i+">"},n&&(f.prototype[n]=f.prototype.inspect),f.prototype.compare=function(i,a,c,y,w){if(ve(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),!f.isBuffer(i))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(a===void 0&&(a=0),c===void 0&&(c=i?i.length:0),y===void 0&&(y=0),w===void 0&&(w=this.length),a<0||c>i.length||y<0||w>this.length)throw new RangeError("out of range index");if(y>=w&&a>=c)return 0;if(y>=w)return-1;if(a>=c)return 1;if(a>>>=0,c>>>=0,y>>>=0,w>>>=0,this===i)return 0;let M=w-y,H=c-a;const te=Math.min(M,H),Q=this.slice(y,w),re=i.slice(a,c);for(let K=0;K<te;++K)if(Q[K]!==re[K]){M=Q[K],H=re[K];break}return M<H?-1:H<M?1:0};function U(l,i,a,c,y){if(l.length===0)return-1;if(typeof a=="string"?(c=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,De(a)&&(a=y?0:l.length-1),a<0&&(a=l.length+a),a>=l.length){if(y)return-1;a=l.length-1}else if(a<0)if(y)a=0;else return-1;if(typeof i=="string"&&(i=f.from(i,c)),f.isBuffer(i))return i.length===0?-1:V(l,i,a,c,y);if(typeof i=="number")return i=i&255,typeof Uint8Array.prototype.indexOf=="function"?y?Uint8Array.prototype.indexOf.call(l,i,a):Uint8Array.prototype.lastIndexOf.call(l,i,a):V(l,[i],a,c,y);throw new TypeError("val must be string, number or Buffer")}function V(l,i,a,c,y){let w=1,M=l.length,H=i.length;if(c!==void 0&&(c=String(c).toLowerCase(),c==="ucs2"||c==="ucs-2"||c==="utf16le"||c==="utf-16le")){if(l.length<2||i.length<2)return-1;w=2,M/=2,H/=2,a/=2}function te(re,K){return w===1?re[K]:re.readUInt16BE(K*w)}let Q;if(y){let re=-1;for(Q=a;Q<M;Q++)if(te(l,Q)===te(i,re===-1?0:Q-re)){if(re===-1&&(re=Q),Q-re+1===H)return re*w}else re!==-1&&(Q-=Q-re),re=-1}else for(a+H>M&&(a=M-H),Q=a;Q>=0;Q--){let re=!0;for(let K=0;K<H;K++)if(te(l,Q+K)!==te(i,K)){re=!1;break}if(re)return Q}return-1}f.prototype.includes=function(i,a,c){return this.indexOf(i,a,c)!==-1},f.prototype.indexOf=function(i,a,c){return U(this,i,a,c,!0)},f.prototype.lastIndexOf=function(i,a,c){return U(this,i,a,c,!1)};function T(l,i,a,c){a=Number(a)||0;const y=l.length-a;c?(c=Number(c),c>y&&(c=y)):c=y;const w=i.length;c>w/2&&(c=w/2);let M;for(M=0;M<c;++M){const H=parseInt(i.substr(M*2,2),16);if(De(H))return M;l[a+M]=H}return M}function P(l,i,a,c){return Ke(X(i,l.length-a),l,a,c)}function C(l,i,a,c){return Ke(Ce(i),l,a,c)}function G(l,i,a,c){return Ke(at(i),l,a,c)}function q(l,i,a,c){return Ke(Ve(i,l.length-a),l,a,c)}f.prototype.write=function(i,a,c,y){if(a===void 0)y="utf8",c=this.length,a=0;else if(c===void 0&&typeof a=="string")y=a,c=this.length,a=0;else if(isFinite(a))a=a>>>0,isFinite(c)?(c=c>>>0,y===void 0&&(y="utf8")):(y=c,c=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const w=this.length-a;if((c===void 0||c>w)&&(c=w),i.length>0&&(c<0||a<0)||a>this.length)throw new RangeError("Attempt to write outside buffer bounds");y||(y="utf8");let M=!1;for(;;)switch(y){case"hex":return T(this,i,a,c);case"utf8":case"utf-8":return P(this,i,a,c);case"ascii":case"latin1":case"binary":return C(this,i,a,c);case"base64":return G(this,i,a,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,i,a,c);default:if(M)throw new TypeError("Unknown encoding: "+y);y=(""+y).toLowerCase(),M=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Z(l,i,a){return i===0&&a===l.length?t.fromByteArray(l):t.fromByteArray(l.slice(i,a))}function de(l,i,a){a=Math.min(l.length,a);const c=[];let y=i;for(;y<a;){const w=l[y];let M=null,H=w>239?4:w>223?3:w>191?2:1;if(y+H<=a){let te,Q,re,K;switch(H){case 1:w<128&&(M=w);break;case 2:te=l[y+1],(te&192)===128&&(K=(w&31)<<6|te&63,K>127&&(M=K));break;case 3:te=l[y+1],Q=l[y+2],(te&192)===128&&(Q&192)===128&&(K=(w&15)<<12|(te&63)<<6|Q&63,K>2047&&(K<55296||K>57343)&&(M=K));break;case 4:te=l[y+1],Q=l[y+2],re=l[y+3],(te&192)===128&&(Q&192)===128&&(re&192)===128&&(K=(w&15)<<18|(te&63)<<12|(Q&63)<<6|re&63,K>65535&&K<1114112&&(M=K))}}M===null?(M=65533,H=1):M>65535&&(M-=65536,c.push(M>>>10&1023|55296),M=56320|M&1023),c.push(M),y+=H}return Be(c)}const ye=4096;function Be(l){const i=l.length;if(i<=ye)return String.fromCharCode.apply(String,l);let a="",c=0;for(;c<i;)a+=String.fromCharCode.apply(String,l.slice(c,c+=ye));return a}function be(l,i,a){let c="";a=Math.min(l.length,a);for(let y=i;y<a;++y)c+=String.fromCharCode(l[y]&127);return c}function je(l,i,a){let c="";a=Math.min(l.length,a);for(let y=i;y<a;++y)c+=String.fromCharCode(l[y]);return c}function pe(l,i,a){const c=l.length;(!i||i<0)&&(i=0),(!a||a<0||a>c)&&(a=c);let y="";for(let w=i;w<a;++w)y+=ot[l[w]];return y}function Ze(l,i,a){const c=l.slice(i,a);let y="";for(let w=0;w<c.length-1;w+=2)y+=String.fromCharCode(c[w]+c[w+1]*256);return y}f.prototype.slice=function(i,a){const c=this.length;i=~~i,a=a===void 0?c:~~a,i<0?(i+=c,i<0&&(i=0)):i>c&&(i=c),a<0?(a+=c,a<0&&(a=0)):a>c&&(a=c),a<i&&(a=i);const y=this.subarray(i,a);return Object.setPrototypeOf(y,f.prototype),y};function ee(l,i,a){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+i>a)throw new RangeError("Trying to access beyond buffer length")}f.prototype.readUintLE=f.prototype.readUIntLE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i],w=1,M=0;for(;++M<a&&(w*=256);)y+=this[i+M]*w;return y},f.prototype.readUintBE=f.prototype.readUIntBE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i+--a],w=1;for(;a>0&&(w*=256);)y+=this[i+--a]*w;return y},f.prototype.readUint8=f.prototype.readUInt8=function(i,a){return i=i>>>0,a||ee(i,1,this.length),this[i]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(i,a){return i=i>>>0,a||ee(i,2,this.length),this[i]|this[i+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(i,a){return i=i>>>0,a||ee(i,2,this.length),this[i]<<8|this[i+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+this[i+3]*16777216},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]*16777216+(this[i+1]<<16|this[i+2]<<8|this[i+3])},f.prototype.readBigUInt64LE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&O(i,this.length-8);const y=a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24,w=this[++i]+this[++i]*2**8+this[++i]*2**16+c*2**24;return BigInt(y)+(BigInt(w)<<BigInt(32))}),f.prototype.readBigUInt64BE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&O(i,this.length-8);const y=a*2**24+this[++i]*2**16+this[++i]*2**8+this[++i],w=this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c;return(BigInt(y)<<BigInt(32))+BigInt(w)}),f.prototype.readIntLE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=this[i],w=1,M=0;for(;++M<a&&(w*=256);)y+=this[i+M]*w;return w*=128,y>=w&&(y-=Math.pow(2,8*a)),y},f.prototype.readIntBE=function(i,a,c){i=i>>>0,a=a>>>0,c||ee(i,a,this.length);let y=a,w=1,M=this[i+--y];for(;y>0&&(w*=256);)M+=this[i+--y]*w;return w*=128,M>=w&&(M-=Math.pow(2,8*a)),M},f.prototype.readInt8=function(i,a){return i=i>>>0,a||ee(i,1,this.length),this[i]&128?(255-this[i]+1)*-1:this[i]},f.prototype.readInt16LE=function(i,a){i=i>>>0,a||ee(i,2,this.length);const c=this[i]|this[i+1]<<8;return c&32768?c|4294901760:c},f.prototype.readInt16BE=function(i,a){i=i>>>0,a||ee(i,2,this.length);const c=this[i+1]|this[i]<<8;return c&32768?c|4294901760:c},f.prototype.readInt32LE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},f.prototype.readInt32BE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},f.prototype.readBigInt64LE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&O(i,this.length-8);const y=this[i+4]+this[i+5]*2**8+this[i+6]*2**16+(c<<24);return(BigInt(y)<<BigInt(32))+BigInt(a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24)}),f.prototype.readBigInt64BE=me(function(i){i=i>>>0,A(i,"offset");const a=this[i],c=this[i+7];(a===void 0||c===void 0)&&O(i,this.length-8);const y=(a<<24)+this[++i]*2**16+this[++i]*2**8+this[++i];return(BigInt(y)<<BigInt(32))+BigInt(this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+c)}),f.prototype.readFloatLE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),r.read(this,i,!0,23,4)},f.prototype.readFloatBE=function(i,a){return i=i>>>0,a||ee(i,4,this.length),r.read(this,i,!1,23,4)},f.prototype.readDoubleLE=function(i,a){return i=i>>>0,a||ee(i,8,this.length),r.read(this,i,!0,52,8)},f.prototype.readDoubleBE=function(i,a){return i=i>>>0,a||ee(i,8,this.length),r.read(this,i,!1,52,8)};function se(l,i,a,c,y,w){if(!f.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>y||i<w)throw new RangeError('"value" argument is out of bounds');if(a+c>l.length)throw new RangeError("Index out of range")}f.prototype.writeUintLE=f.prototype.writeUIntLE=function(i,a,c,y){if(i=+i,a=a>>>0,c=c>>>0,!y){const H=Math.pow(2,8*c)-1;se(this,i,a,c,H,0)}let w=1,M=0;for(this[a]=i&255;++M<c&&(w*=256);)this[a+M]=i/w&255;return a+c},f.prototype.writeUintBE=f.prototype.writeUIntBE=function(i,a,c,y){if(i=+i,a=a>>>0,c=c>>>0,!y){const H=Math.pow(2,8*c)-1;se(this,i,a,c,H,0)}let w=c-1,M=1;for(this[a+w]=i&255;--w>=0&&(M*=256);)this[a+w]=i/M&255;return a+c},f.prototype.writeUint8=f.prototype.writeUInt8=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,1,255,0),this[a]=i&255,a+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,65535,0),this[a]=i&255,this[a+1]=i>>>8,a+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,65535,0),this[a]=i>>>8,this[a+1]=i&255,a+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,4294967295,0),this[a+3]=i>>>24,this[a+2]=i>>>16,this[a+1]=i>>>8,this[a]=i&255,a+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,4294967295,0),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4};function Me(l,i,a,c,y){v(i,c,y,l,a,7);let w=Number(i&BigInt(4294967295));l[a++]=w,w=w>>8,l[a++]=w,w=w>>8,l[a++]=w,w=w>>8,l[a++]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return l[a++]=M,M=M>>8,l[a++]=M,M=M>>8,l[a++]=M,M=M>>8,l[a++]=M,a}function Xe(l,i,a,c,y){v(i,c,y,l,a,7);let w=Number(i&BigInt(4294967295));l[a+7]=w,w=w>>8,l[a+6]=w,w=w>>8,l[a+5]=w,w=w>>8,l[a+4]=w;let M=Number(i>>BigInt(32)&BigInt(4294967295));return l[a+3]=M,M=M>>8,l[a+2]=M,M=M>>8,l[a+1]=M,M=M>>8,l[a]=M,a+8}f.prototype.writeBigUInt64LE=me(function(i,a=0){return Me(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=me(function(i,a=0){return Xe(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(i,a,c,y){if(i=+i,a=a>>>0,!y){const te=Math.pow(2,8*c-1);se(this,i,a,c,te-1,-te)}let w=0,M=1,H=0;for(this[a]=i&255;++w<c&&(M*=256);)i<0&&H===0&&this[a+w-1]!==0&&(H=1),this[a+w]=(i/M>>0)-H&255;return a+c},f.prototype.writeIntBE=function(i,a,c,y){if(i=+i,a=a>>>0,!y){const te=Math.pow(2,8*c-1);se(this,i,a,c,te-1,-te)}let w=c-1,M=1,H=0;for(this[a+w]=i&255;--w>=0&&(M*=256);)i<0&&H===0&&this[a+w+1]!==0&&(H=1),this[a+w]=(i/M>>0)-H&255;return a+c},f.prototype.writeInt8=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,1,127,-128),i<0&&(i=255+i+1),this[a]=i&255,a+1},f.prototype.writeInt16LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,32767,-32768),this[a]=i&255,this[a+1]=i>>>8,a+2},f.prototype.writeInt16BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,2,32767,-32768),this[a]=i>>>8,this[a+1]=i&255,a+2},f.prototype.writeInt32LE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,2147483647,-2147483648),this[a]=i&255,this[a+1]=i>>>8,this[a+2]=i>>>16,this[a+3]=i>>>24,a+4},f.prototype.writeInt32BE=function(i,a,c){return i=+i,a=a>>>0,c||se(this,i,a,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4},f.prototype.writeBigInt64LE=me(function(i,a=0){return Me(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=me(function(i,a=0){return Xe(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ye(l,i,a,c,y,w){if(a+c>l.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function b(l,i,a,c,y){return i=+i,a=a>>>0,y||Ye(l,i,a,4),r.write(l,i,a,c,23,4),a+4}f.prototype.writeFloatLE=function(i,a,c){return b(this,i,a,!0,c)},f.prototype.writeFloatBE=function(i,a,c){return b(this,i,a,!1,c)};function _(l,i,a,c,y){return i=+i,a=a>>>0,y||Ye(l,i,a,8),r.write(l,i,a,c,52,8),a+8}f.prototype.writeDoubleLE=function(i,a,c){return _(this,i,a,!0,c)},f.prototype.writeDoubleBE=function(i,a,c){return _(this,i,a,!1,c)},f.prototype.copy=function(i,a,c,y){if(!f.isBuffer(i))throw new TypeError("argument should be a Buffer");if(c||(c=0),!y&&y!==0&&(y=this.length),a>=i.length&&(a=i.length),a||(a=0),y>0&&y<c&&(y=c),y===c||i.length===0||this.length===0)return 0;if(a<0)throw new RangeError("targetStart out of bounds");if(c<0||c>=this.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("sourceEnd out of bounds");y>this.length&&(y=this.length),i.length-a<y-c&&(y=i.length-a+c);const w=y-c;return this===i&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(a,c,y):Uint8Array.prototype.set.call(i,this.subarray(c,y),a),w},f.prototype.fill=function(i,a,c,y){if(typeof i=="string"){if(typeof a=="string"?(y=a,a=0,c=this.length):typeof c=="string"&&(y=c,c=this.length),y!==void 0&&typeof y!="string")throw new TypeError("encoding must be a string");if(typeof y=="string"&&!f.isEncoding(y))throw new TypeError("Unknown encoding: "+y);if(i.length===1){const M=i.charCodeAt(0);(y==="utf8"&&M<128||y==="latin1")&&(i=M)}}else typeof i=="number"?i=i&255:typeof i=="boolean"&&(i=Number(i));if(a<0||this.length<a||this.length<c)throw new RangeError("Out of range index");if(c<=a)return this;a=a>>>0,c=c===void 0?this.length:c>>>0,i||(i=0);let w;if(typeof i=="number")for(w=a;w<c;++w)this[w]=i;else{const M=f.isBuffer(i)?i:f.from(i,y),H=M.length;if(H===0)throw new TypeError('The value "'+i+'" is invalid for argument "value"');for(w=0;w<c-a;++w)this[w+a]=M[w%H]}return this};const I={};function $(l,i,a){I[l]=class extends a{constructor(){super(),Object.defineProperty(this,"message",{value:i.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(y){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:y,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}$("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),$("ERR_INVALID_ARG_TYPE",function(l,i){return`The "${l}" argument must be of type number. Received type ${typeof i}`},TypeError),$("ERR_OUT_OF_RANGE",function(l,i,a){let c=`The value of "${l}" is out of range.`,y=a;return Number.isInteger(a)&&Math.abs(a)>2**32?y=z(String(a)):typeof a=="bigint"&&(y=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(y=z(y)),y+="n"),c+=` It must be ${i}. Received ${y}`,c},RangeError);function z(l){let i="",a=l.length;const c=l[0]==="-"?1:0;for(;a>=c+4;a-=3)i=`_${l.slice(a-3,a)}${i}`;return`${l.slice(0,a)}${i}`}function p(l,i,a){A(i,"offset"),(l[i]===void 0||l[i+a]===void 0)&&O(i,l.length-(a+1))}function v(l,i,a,c,y,w){if(l>a||l<i){const M=typeof i=="bigint"?"n":"";let H;throw w>3?i===0||i===BigInt(0)?H=`>= 0${M} and < 2${M} ** ${(w+1)*8}${M}`:H=`>= -(2${M} ** ${(w+1)*8-1}${M}) and < 2 ** ${(w+1)*8-1}${M}`:H=`>= ${i}${M} and <= ${a}${M}`,new I.ERR_OUT_OF_RANGE("value",H,l)}p(c,y,w)}function A(l,i){if(typeof l!="number")throw new I.ERR_INVALID_ARG_TYPE(i,"number",l)}function O(l,i,a){throw Math.floor(l)!==l?(A(l,a),new I.ERR_OUT_OF_RANGE(a||"offset","an integer",l)):i<0?new I.ERR_BUFFER_OUT_OF_BOUNDS:new I.ERR_OUT_OF_RANGE(a||"offset",`>= ${a?1:0} and <= ${i}`,l)}const J=/[^+/0-9A-Za-z-_]/g;function W(l){if(l=l.split("=")[0],l=l.trim().replace(J,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function X(l,i){i=i||1/0;let a;const c=l.length;let y=null;const w=[];for(let M=0;M<c;++M){if(a=l.charCodeAt(M),a>55295&&a<57344){if(!y){if(a>56319){(i-=3)>-1&&w.push(239,191,189);continue}else if(M+1===c){(i-=3)>-1&&w.push(239,191,189);continue}y=a;continue}if(a<56320){(i-=3)>-1&&w.push(239,191,189),y=a;continue}a=(y-55296<<10|a-56320)+65536}else y&&(i-=3)>-1&&w.push(239,191,189);if(y=null,a<128){if((i-=1)<0)break;w.push(a)}else if(a<2048){if((i-=2)<0)break;w.push(a>>6|192,a&63|128)}else if(a<65536){if((i-=3)<0)break;w.push(a>>12|224,a>>6&63|128,a&63|128)}else if(a<1114112){if((i-=4)<0)break;w.push(a>>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else throw new Error("Invalid code point")}return w}function Ce(l){const i=[];for(let a=0;a<l.length;++a)i.push(l.charCodeAt(a)&255);return i}function Ve(l,i){let a,c,y;const w=[];for(let M=0;M<l.length&&!((i-=2)<0);++M)a=l.charCodeAt(M),c=a>>8,y=a%256,w.push(y),w.push(c);return w}function at(l){return t.toByteArray(W(l))}function Ke(l,i,a,c){let y;for(y=0;y<c&&!(y+a>=i.length||y>=l.length);++y)i[y+a]=l[y];return y}function ve(l,i){return l instanceof i||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===i.name}function De(l){return l!==l}const ot=function(){const l="0123456789abcdef",i=new Array(256);for(let a=0;a<16;++a){const c=a*16;for(let y=0;y<16;++y)i[c+y]=l[a]+l[y]}return i}();function me(l){return typeof BigInt>"u"?Ue:l}function Ue(){throw new Error("BigInt not supported")}})(it);var dr={exports:{}},tt=typeof Reflect=="object"?Reflect:null,Ir=tt&&typeof tt.apply=="function"?tt.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},dt;tt&&typeof tt.ownKeys=="function"?dt=tt.ownKeys:Object.getOwnPropertySymbols?dt=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:dt=function(t){return Object.getOwnPropertyNames(t)};function Pa(e){console&&console.warn&&console.warn(e)}var Xi=Number.isNaN||function(t){return t!==t};function Y(){Y.init.call(this)}dr.exports=Y;dr.exports.once=Ga;Y.EventEmitter=Y;Y.prototype._events=void 0;Y.prototype._eventsCount=0;Y.prototype._maxListeners=void 0;var Nr=10;function Rt(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Y,"defaultMaxListeners",{enumerable:!0,get:function(){return Nr},set:function(e){if(typeof e!="number"||e<0||Xi(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Nr=e}});Y.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Y.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Xi(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Yi(e){return e._maxListeners===void 0?Y.defaultMaxListeners:e._maxListeners}Y.prototype.getMaxListeners=function(){return Yi(this)};Y.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var o=t==="error",s=this._events;if(s!==void 0)o=o&&s.error===void 0;else if(!o)return!1;if(o){var u;if(r.length>0&&(u=r[0]),u instanceof Error)throw u;var f=new Error("Unhandled error."+(u?" ("+u.message+")":""));throw f.context=u,f}var h=s[t];if(h===void 0)return!1;if(typeof h=="function")Ir(h,this,r);else for(var d=h.length,g=en(h,d),n=0;n<d;++n)Ir(g[n],this,r);return!0};function Vi(e,t,r,n){var o,s,u;if(Rt(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),u=s[t]),u===void 0)u=s[t]=r,++e._eventsCount;else if(typeof u=="function"?u=s[t]=n?[r,u]:[u,r]:n?u.unshift(r):u.push(r),o=Yi(e),o>0&&u.length>o&&!u.warned){u.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=u.length,Pa(f)}return e}Y.prototype.addListener=function(t,r){return Vi(this,t,r,!1)};Y.prototype.on=Y.prototype.addListener;Y.prototype.prependListener=function(t,r){return Vi(this,t,r,!0)};function $a(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Ki(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=$a.bind(n);return o.listener=r,n.wrapFn=o,o}Y.prototype.once=function(t,r){return Rt(r),this.on(t,Ki(this,t,r)),this};Y.prototype.prependOnceListener=function(t,r){return Rt(r),this.prependListener(t,Ki(this,t,r)),this};Y.prototype.removeListener=function(t,r){var n,o,s,u,f;if(Rt(r),o=this._events,o===void 0)return this;if(n=o[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete o[t],o.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(s=-1,u=n.length-1;u>=0;u--)if(n[u]===r||n[u].listener===r){f=n[u].listener,s=u;break}if(s<0)return this;s===0?n.shift():Da(n,s),n.length===1&&(o[t]=n[0]),o.removeListener!==void 0&&this.emit("removeListener",t,f||r)}return this};Y.prototype.off=Y.prototype.removeListener;Y.prototype.removeAllListeners=function(t){var r,n,o;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),u;for(o=0;o<s.length;++o)u=s[o],u!=="removeListener"&&this.removeAllListeners(u);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(o=r.length-1;o>=0;o--)this.removeListener(t,r[o]);return this};function Ji(e,t,r){var n=e._events;if(n===void 0)return[];var o=n[t];return o===void 0?[]:typeof o=="function"?r?[o.listener||o]:[o]:r?Ua(o):en(o,o.length)}Y.prototype.listeners=function(t){return Ji(this,t,!0)};Y.prototype.rawListeners=function(t){return Ji(this,t,!1)};Y.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Qi.call(e,t)};Y.prototype.listenerCount=Qi;function Qi(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Y.prototype.eventNames=function(){return this._eventsCount>0?dt(this._events):[]};function en(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function Da(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Ua(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Ga(e,t){return new Promise(function(r,n){function o(u){e.removeListener(t,s),n(u)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",o),r([].slice.call(arguments))}tn(e,t,s,{once:!0}),t!=="error"&&qa(e,o,{once:!0})})}function qa(e,t,r){typeof e.on=="function"&&tn(e,"error",t,r)}function tn(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function o(s){n.once&&e.removeEventListener(t,o),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var pr=dr.exports;const za=hr(pr);var vr={};/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */(function(e){(function(t){t(typeof DO_NOT_EXPORT_CRC>"u"?e:{})})(function(t){t.version="1.2.2";function r(){for(var T=0,P=new Array(256),C=0;C!=256;++C)T=C,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,T=T&1?-306674912^T>>>1:T>>>1,P[C]=T;return typeof Int32Array<"u"?new Int32Array(P):P}var n=r();function o(T){var P=0,C=0,G=0,q=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(G=0;G!=256;++G)q[G]=T[G];for(G=0;G!=256;++G)for(C=T[G],P=256+G;P<4096;P+=256)C=q[P]=C>>>8^T[C&255];var Z=[];for(G=1;G!=16;++G)Z[G-1]=typeof Int32Array<"u"?q.subarray(G*256,G*256+256):q.slice(G*256,G*256+256);return Z}var s=o(n),u=s[0],f=s[1],h=s[2],d=s[3],g=s[4],m=s[5],x=s[6],S=s[7],E=s[8],R=s[9],B=s[10],N=s[11],L=s[12],k=s[13],j=s[14];function F(T,P){for(var C=P^-1,G=0,q=T.length;G<q;)C=C>>>8^n[(C^T.charCodeAt(G++))&255];return~C}function U(T,P){for(var C=P^-1,G=T.length-15,q=0;q<G;)C=j[T[q++]^C&255]^k[T[q++]^C>>8&255]^L[T[q++]^C>>16&255]^N[T[q++]^C>>>24]^B[T[q++]]^R[T[q++]]^E[T[q++]]^S[T[q++]]^x[T[q++]]^m[T[q++]]^g[T[q++]]^d[T[q++]]^h[T[q++]]^f[T[q++]]^u[T[q++]]^n[T[q++]];for(G+=15;q<G;)C=C>>>8^n[(C^T[q++])&255];return~C}function V(T,P){for(var C=P^-1,G=0,q=T.length,Z=0,de=0;G<q;)Z=T.charCodeAt(G++),Z<128?C=C>>>8^n[(C^Z)&255]:Z<2048?(C=C>>>8^n[(C^(192|Z>>6&31))&255],C=C>>>8^n[(C^(128|Z&63))&255]):Z>=55296&&Z<57344?(Z=(Z&1023)+64,de=T.charCodeAt(G++)&1023,C=C>>>8^n[(C^(240|Z>>8&7))&255],C=C>>>8^n[(C^(128|Z>>2&63))&255],C=C>>>8^n[(C^(128|de>>6&15|(Z&3)<<4))&255],C=C>>>8^n[(C^(128|de&63))&255]):(C=C>>>8^n[(C^(224|Z>>12&15))&255],C=C>>>8^n[(C^(128|Z>>6&63))&255],C=C>>>8^n[(C^(128|Z&63))&255]);return~C}t.table=n,t.bstr=F,t.buf=U,t.str=V})})(vr);let fe=new Uint8Array(4),rn=new Int32Array(fe.buffer),nn=new Uint32Array(fe.buffer);function Wa(e,t,r){var n=[],o=e.length;if(o===0)return n;var s=t<0?Math.max(0,t+o):t||0;for(r!==void 0&&(o=r<0?r+o:r);o-- >s;)n[o-s]=e[o];return n}function Ha(e,t,r="tEXt"){if(e=String(e),t=String(t),t.length&&(!/^[\x00-\xFF]+$/.test(e)||!/^[\x00-\xFF]+$/.test(t)))throw new Error("Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression");if(e.length>=80)throw new Error('Keyword "'+e+'" is longer than the 79-character limit imposed by the PNG specification');let n=e.length+t.length+1,o=new Uint8Array(n),s=0,u;for(let f=0;f<e.length;f++){if(!(u=e.charCodeAt(f)))throw new Error("0x00 character is not permitted in tEXt keywords");o[s++]=u}o[s++]=0;for(let f=0;f<t.length;f++){if(!(u=t.charCodeAt(f)))throw new Error("0x00 character is not permitted in tEXt content");o[s++]=u}return{name:r,data:o}}function Za(e){if(e[0]!==137)throw new Error("Invalid .png file header");if(e[1]!==80)throw new Error("Invalid .png file header");if(e[2]!==78)throw new Error("Invalid .png file header");if(e[3]!==71)throw new Error("Invalid .png file header");if(e[4]!==13)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");if(e[5]!==10)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");if(e[6]!==26)throw new Error("Invalid .png file header");if(e[7]!==10)throw new Error("Invalid .png file header: possibly caused by DOS-Unix line ending conversion?");let t=!1,r=[],n=8;for(;n<e.length;){fe[3]=e[n++],fe[2]=e[n++],fe[1]=e[n++],fe[0]=e[n++];let o=nn[0]+4,s=new Uint8Array(o);s[0]=e[n++],s[1]=e[n++],s[2]=e[n++],s[3]=e[n++];let u=String.fromCharCode(s[0])+String.fromCharCode(s[1])+String.fromCharCode(s[2])+String.fromCharCode(s[3]);if(!r.length&&u!=="IHDR")throw new Error("IHDR header missing");if(u==="IEND"){t=!0,r.push({name:u,data:new Uint8Array(0)});break}for(let g=4;g<o;g++)s[g]=e[n++];fe[3]=e[n++],fe[2]=e[n++],fe[1]=e[n++],fe[0]=e[n++];let f=rn[0];if(vr.buf(s)!==f)throw new Error("CRC values for "+u+" header do not match, PNG file is likely corrupted");let d=new Uint8Array(s.buffer.slice(4));r.push({name:u,data:d})}if(!t)throw new Error(".png file ended prematurely: no IEND header was found");return r}function Xa(e){let t=8,r=t,n;for(n=0;n<e.length;n++)t+=e[n].data.length,t+=12;let o=new Uint8Array(t);for(o[0]=137,o[1]=80,o[2]=78,o[3]=71,o[4]=13,o[5]=10,o[6]=26,o[7]=10,n=0;n<e.length;n++){let s=e[n],u=s.name,f=s.data,h=f.length,d=[u.charCodeAt(0),u.charCodeAt(1),u.charCodeAt(2),u.charCodeAt(3)];nn[0]=h,o[r++]=fe[3],o[r++]=fe[2],o[r++]=fe[1],o[r++]=fe[0],o[r++]=d[0],o[r++]=d[1],o[r++]=d[2],o[r++]=d[3];for(let m=0;m<h;)o[r++]=f[m++];let g=d.concat(Wa(f));rn[0]=vr.buf(g),o[r++]=fe[3],o[r++]=fe[2],o[r++]=fe[1],o[r++]=fe[0]}return o}function Lr(e,t,r){e[r]=(t&4278190080)>>24,e[r+1]=(t&16711680)>>16,e[r+2]=(t&65280)>>8,e[r+3]=t&255}function Ya(e,t){const r=Za(e);return Ka(r,t),new Buffer.from(Xa(r))}async function Va(e,t){let r=await e.arrayBuffer(),n=new Uint8Array(r),o=await Ya(n,t);return new Blob([o],{type:e.type})}function Ka(e,t){if(t.clear)for(let n=e.length-1;n--;)switch(e[n].name){case"IHDR":case"IDAT":case"IEND":break;default:e.splice(n,1)}if(t.tEXt)for(var r in t.tEXt)e.splice(-1,0,Ha(r,t.tEXt[r]));if(t.pHYs){const n=new Uint8Array(9);Lr(n,t.pHYs.x,0),Lr(n,t.pHYs.y,4),n[8]=t.pHYs.units;let o=e.find(s=>s.name==="pHYs");o?o.data=n:e.splice(1,0,{name:"pHYs",data:n})}console.log(t),console.log("DONE")}var St={exports:{}},gr="_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",an="-0123456789"+gr,Ja=new RegExp("^[^"+gr+"]|[^\\"+an+"]","g"),Qa=12,eo={random:on,sanitize:sn,ensure:to};function on(e){return e=e||Qa,jr(1,gr)+jr(e-1,an)}function sn(e){return e.replace(Ja,"_")}function to(e,t){return typeof e=="string"?sn(e):on(t)}function jr(e,t){for(var r=t.length,n="";e>0;)e--,n+=t[Math.floor(Math.random()*r)];return n}var ro=typeof ne=="object"&&ne&&ne.Object===Object&&ne,io=typeof self=="object"&&self&&self.Object===Object&&self,no=ro||io||Function("return this")(),ao=no.isFinite;function oo(e){return typeof e=="number"&&ao(e)}var lt=oo,yt={},Zt={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=it,n=r.Buffer;function o(u,f){for(var h in u)f[h]=u[h]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s);function s(u,f,h){return n(u,f,h)}s.prototype=Object.create(n.prototype),o(n,s),s.from=function(u,f,h){if(typeof u=="number")throw new TypeError("Argument must not be a number");return n(u,f,h)},s.alloc=function(u,f,h){if(typeof u!="number")throw new TypeError("Argument must be a number");var d=n(u);return f!==void 0?typeof h=="string"?d.fill(f,h):d.fill(f):d.fill(0),d},s.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return n(u)},s.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(u)}})(Zt,Zt.exports);var so=Zt.exports,yr=so.Buffer,Cr=yr.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function fo(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function uo(e){var t=fo(e);if(typeof t!="string"&&(yr.isEncoding===Cr||!Cr(e)))throw new Error("Unknown encoding: "+e);return t||e}yt.StringDecoder=ht;function ht(e){this.encoding=uo(e);var t;switch(this.encoding){case"utf16le":this.text=go,this.end=yo,t=4;break;case"utf8":this.fillLast=co,t=4;break;case"base64":this.text=mo,this.end=_o,t=3;break;default:this.write=wo,this.end=bo;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=yr.allocUnsafe(t)}ht.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};ht.prototype.end=vo;ht.prototype.text=po;ht.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function jt(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function lo(e,t,r){var n=t.length-1;if(n<r)return 0;var o=jt(t[n]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--n<r||o===-2?0:(o=jt(t[n]),o>=0?(o>0&&(e.lastNeed=o-2),o):--n<r||o===-2?0:(o=jt(t[n]),o>=0?(o>0&&(o===2?o=0:e.lastNeed=o-3),o):0))}function ho(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function co(e){var t=this.lastTotal-this.lastNeed,r=ho(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function po(e,t){var r=lo(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function vo(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function go(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function yo(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function mo(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function _o(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function wo(e){return e.toString(this.encoding)}function bo(e){return e&&e.length?this.write(e):""}var Xt={exports:{}};typeof Object.create=="function"?Xt.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Xt.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}};var ke=Xt.exports,Yt={exports:{}},fn=pr.EventEmitter;const xo={},Eo=Object.freeze(Object.defineProperty({__proto__:null,default:xo},Symbol.toStringTag,{value:"Module"})),un=Ra(Eo);var Ct,Or;function Mo(){if(Or)return Ct;Or=1;function e(E,R){var B=Object.keys(E);if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(E);R&&(N=N.filter(function(L){return Object.getOwnPropertyDescriptor(E,L).enumerable})),B.push.apply(B,N)}return B}function t(E){for(var R=1;R<arguments.length;R++){var B=arguments[R]!=null?arguments[R]:{};R%2?e(Object(B),!0).forEach(function(N){r(E,N,B[N])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(B)):e(Object(B)).forEach(function(N){Object.defineProperty(E,N,Object.getOwnPropertyDescriptor(B,N))})}return E}function r(E,R,B){return R=u(R),R in E?Object.defineProperty(E,R,{value:B,enumerable:!0,configurable:!0,writable:!0}):E[R]=B,E}function n(E,R){if(!(E instanceof R))throw new TypeError("Cannot call a class as a function")}function o(E,R){for(var B=0;B<R.length;B++){var N=R[B];N.enumerable=N.enumerable||!1,N.configurable=!0,"value"in N&&(N.writable=!0),Object.defineProperty(E,u(N.key),N)}}function s(E,R,B){return R&&o(E.prototype,R),B&&o(E,B),Object.defineProperty(E,"prototype",{writable:!1}),E}function u(E){var R=f(E,"string");return typeof R=="symbol"?R:String(R)}function f(E,R){if(typeof E!="object"||E===null)return E;var B=E[Symbol.toPrimitive];if(B!==void 0){var N=B.call(E,R||"default");if(typeof N!="object")return N;throw new TypeError("@@toPrimitive must return a primitive value.")}return(R==="string"?String:Number)(E)}var h=it,d=h.Buffer,g=un,m=g.inspect,x=m&&m.custom||"inspect";function S(E,R,B){d.prototype.copy.call(E,R,B)}return Ct=function(){function E(){n(this,E),this.head=null,this.tail=null,this.length=0}return s(E,[{key:"push",value:function(B){var N={data:B,next:null};this.length>0?this.tail.next=N:this.head=N,this.tail=N,++this.length}},{key:"unshift",value:function(B){var N={data:B,next:this.head};this.length===0&&(this.tail=N),this.head=N,++this.length}},{key:"shift",value:function(){if(this.length!==0){var B=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,B}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(B){if(this.length===0)return"";for(var N=this.head,L=""+N.data;N=N.next;)L+=B+N.data;return L}},{key:"concat",value:function(B){if(this.length===0)return d.alloc(0);for(var N=d.allocUnsafe(B>>>0),L=this.head,k=0;L;)S(L.data,N,k),k+=L.data.length,L=L.next;return N}},{key:"consume",value:function(B,N){var L;return B<this.head.data.length?(L=this.head.data.slice(0,B),this.head.data=this.head.data.slice(B)):B===this.head.data.length?L=this.shift():L=N?this._getString(B):this._getBuffer(B),L}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(B){var N=this.head,L=1,k=N.data;for(B-=k.length;N=N.next;){var j=N.data,F=B>j.length?j.length:B;if(F===j.length?k+=j:k+=j.slice(0,B),B-=F,B===0){F===j.length?(++L,N.next?this.head=N.next:this.head=this.tail=null):(this.head=N,N.data=j.slice(F));break}++L}return this.length-=L,k}},{key:"_getBuffer",value:function(B){var N=d.allocUnsafe(B),L=this.head,k=1;for(L.data.copy(N),B-=L.data.length;L=L.next;){var j=L.data,F=B>j.length?j.length:B;if(j.copy(N,N.length-B,0,F),B-=F,B===0){F===j.length?(++k,L.next?this.head=L.next:this.head=this.tail=null):(this.head=L,L.data=j.slice(F));break}++k}return this.length-=k,N}},{key:x,value:function(B,N){return m(this,t(t({},N),{},{depth:0,customInspect:!1}))}}]),E}(),Ct}function Ro(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return n||o?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Vt,this,e)):process.nextTick(Vt,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(pt,r):(r._writableState.errorEmitted=!0,process.nextTick(Fr,r,s)):process.nextTick(Fr,r,s):t?(process.nextTick(pt,r),t(s)):process.nextTick(pt,r)}),this)}function Fr(e,t){Vt(e,t),pt(e)}function pt(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function So(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Vt(e,t){e.emit("error",t)}function To(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}var ln={destroy:Ro,undestroy:So,errorOrDestroy:To},He={};function Ao(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var hn={};function we(e,t,r){r||(r=Error);function n(s,u,f){return typeof t=="string"?t:t(s,u,f)}var o=function(s){Ao(u,s);function u(f,h,d){return s.call(this,n(f,h,d))||this}return u}(r);o.prototype.name=r.name,o.prototype.code=e,hn[e]=o}function kr(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function Bo(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function Io(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function No(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}we("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);we("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&Bo(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var o;if(Io(e," argument"))o="The ".concat(e," ").concat(n," ").concat(kr(t,"type"));else{var s=No(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(s," ").concat(n," ").concat(kr(t,"type"))}return o+=". Received type ".concat(typeof r),o},TypeError);we("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");we("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});we("ERR_STREAM_PREMATURE_CLOSE","Premature close");we("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});we("ERR_MULTIPLE_CALLBACK","Callback called multiple times");we("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");we("ERR_STREAM_WRITE_AFTER_END","write after end");we("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);we("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);we("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");He.codes=hn;var Lo=He.codes.ERR_INVALID_OPT_VALUE;function jo(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function Co(e,t,r,n){var o=jo(t,n,r);if(o!=null){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=n?r:"highWaterMark";throw new Lo(s,o)}return Math.floor(o)}return e.objectMode?16:16*1024}var cn={getHighWaterMark:Co},Oo=Fo;function Fo(e,t){if(Ot("noDeprecation"))return e;var r=!1;function n(){if(!r){if(Ot("throwDeprecation"))throw new Error(t);Ot("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function Ot(e){try{if(!ne.localStorage)return!1}catch{return!1}var t=ne.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Ft,Pr;function dn(){if(Pr)return Ft;Pr=1,Ft=T;function e(b){var _=this;this.next=null,this.entry=null,this.finish=function(){Ye(_,b)}}var t;T.WritableState=U;var r={deprecate:Oo},n=fn,o=it.Buffer,s=(typeof ne<"u"?ne:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function u(b){return o.from(b)}function f(b){return o.isBuffer(b)||b instanceof s}var h=ln,d=cn,g=d.getHighWaterMark,m=He.codes,x=m.ERR_INVALID_ARG_TYPE,S=m.ERR_METHOD_NOT_IMPLEMENTED,E=m.ERR_MULTIPLE_CALLBACK,R=m.ERR_STREAM_CANNOT_PIPE,B=m.ERR_STREAM_DESTROYED,N=m.ERR_STREAM_NULL_VALUES,L=m.ERR_STREAM_WRITE_AFTER_END,k=m.ERR_UNKNOWN_ENCODING,j=h.errorOrDestroy;ke(T,n);function F(){}function U(b,_,I){t=t||rt(),b=b||{},typeof I!="boolean"&&(I=_ instanceof t),this.objectMode=!!b.objectMode,I&&(this.objectMode=this.objectMode||!!b.writableObjectMode),this.highWaterMark=g(this,b,"writableHighWaterMark",I),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var $=b.decodeStrings===!1;this.decodeStrings=!$,this.defaultEncoding=b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(z){Be(_,z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}U.prototype.getBuffer=function(){for(var _=this.bufferedRequest,I=[];_;)I.push(_),_=_.next;return I},function(){try{Object.defineProperty(U.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var V;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(V=Function.prototype[Symbol.hasInstance],Object.defineProperty(T,Symbol.hasInstance,{value:function(_){return V.call(this,_)?!0:this!==T?!1:_&&_._writableState instanceof U}})):V=function(_){return _ instanceof this};function T(b){t=t||rt();var _=this instanceof t;if(!_&&!V.call(T,this))return new T(b);this._writableState=new U(b,this,_),this.writable=!0,b&&(typeof b.write=="function"&&(this._write=b.write),typeof b.writev=="function"&&(this._writev=b.writev),typeof b.destroy=="function"&&(this._destroy=b.destroy),typeof b.final=="function"&&(this._final=b.final)),n.call(this)}T.prototype.pipe=function(){j(this,new R)};function P(b,_){var I=new L;j(b,I),process.nextTick(_,I)}function C(b,_,I,$){var z;return I===null?z=new N:typeof I!="string"&&!_.objectMode&&(z=new x("chunk",["string","Buffer"],I)),z?(j(b,z),process.nextTick($,z),!1):!0}T.prototype.write=function(b,_,I){var $=this._writableState,z=!1,p=!$.objectMode&&f(b);return p&&!o.isBuffer(b)&&(b=u(b)),typeof _=="function"&&(I=_,_=null),p?_="buffer":_||(_=$.defaultEncoding),typeof I!="function"&&(I=F),$.ending?P(this,I):(p||C(this,$,b,I))&&($.pendingcb++,z=q(this,$,p,b,_,I)),z},T.prototype.cork=function(){this._writableState.corked++},T.prototype.uncork=function(){var b=this._writableState;b.corked&&(b.corked--,!b.writing&&!b.corked&&!b.bufferProcessing&&b.bufferedRequest&&pe(this,b))},T.prototype.setDefaultEncoding=function(_){if(typeof _=="string"&&(_=_.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((_+"").toLowerCase())>-1))throw new k(_);return this._writableState.defaultEncoding=_,this},Object.defineProperty(T.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G(b,_,I){return!b.objectMode&&b.decodeStrings!==!1&&typeof _=="string"&&(_=o.from(_,I)),_}Object.defineProperty(T.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function q(b,_,I,$,z,p){if(!I){var v=G(_,$,z);$!==v&&(I=!0,z="buffer",$=v)}var A=_.objectMode?1:$.length;_.length+=A;var O=_.length<_.highWaterMark;if(O||(_.needDrain=!0),_.writing||_.corked){var J=_.lastBufferedRequest;_.lastBufferedRequest={chunk:$,encoding:z,isBuf:I,callback:p,next:null},J?J.next=_.lastBufferedRequest:_.bufferedRequest=_.lastBufferedRequest,_.bufferedRequestCount+=1}else Z(b,_,!1,A,$,z,p);return O}function Z(b,_,I,$,z,p,v){_.writelen=$,_.writecb=v,_.writing=!0,_.sync=!0,_.destroyed?_.onwrite(new B("write")):I?b._writev(z,_.onwrite):b._write(z,p,_.onwrite),_.sync=!1}function de(b,_,I,$,z){--_.pendingcb,I?(process.nextTick(z,$),process.nextTick(Me,b,_),b._writableState.errorEmitted=!0,j(b,$)):(z($),b._writableState.errorEmitted=!0,j(b,$),Me(b,_))}function ye(b){b.writing=!1,b.writecb=null,b.length-=b.writelen,b.writelen=0}function Be(b,_){var I=b._writableState,$=I.sync,z=I.writecb;if(typeof z!="function")throw new E;if(ye(I),_)de(b,I,$,_,z);else{var p=Ze(I)||b.destroyed;!p&&!I.corked&&!I.bufferProcessing&&I.bufferedRequest&&pe(b,I),$?process.nextTick(be,b,I,p,z):be(b,I,p,z)}}function be(b,_,I,$){I||je(b,_),_.pendingcb--,$(),Me(b,_)}function je(b,_){_.length===0&&_.needDrain&&(_.needDrain=!1,b.emit("drain"))}function pe(b,_){_.bufferProcessing=!0;var I=_.bufferedRequest;if(b._writev&&I&&I.next){var $=_.bufferedRequestCount,z=new Array($),p=_.corkedRequestsFree;p.entry=I;for(var v=0,A=!0;I;)z[v]=I,I.isBuf||(A=!1),I=I.next,v+=1;z.allBuffers=A,Z(b,_,!0,_.length,z,"",p.finish),_.pendingcb++,_.lastBufferedRequest=null,p.next?(_.corkedRequestsFree=p.next,p.next=null):_.corkedRequestsFree=new e(_),_.bufferedRequestCount=0}else{for(;I;){var O=I.chunk,J=I.encoding,W=I.callback,X=_.objectMode?1:O.length;if(Z(b,_,!1,X,O,J,W),I=I.next,_.bufferedRequestCount--,_.writing)break}I===null&&(_.lastBufferedRequest=null)}_.bufferedRequest=I,_.bufferProcessing=!1}T.prototype._write=function(b,_,I){I(new S("_write()"))},T.prototype._writev=null,T.prototype.end=function(b,_,I){var $=this._writableState;return typeof b=="function"?(I=b,b=null,_=null):typeof _=="function"&&(I=_,_=null),b!=null&&this.write(b,_),$.corked&&($.corked=1,this.uncork()),$.ending||Xe(this,$,I),this},Object.defineProperty(T.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ze(b){return b.ending&&b.length===0&&b.bufferedRequest===null&&!b.finished&&!b.writing}function ee(b,_){b._final(function(I){_.pendingcb--,I&&j(b,I),_.prefinished=!0,b.emit("prefinish"),Me(b,_)})}function se(b,_){!_.prefinished&&!_.finalCalled&&(typeof b._final=="function"&&!_.destroyed?(_.pendingcb++,_.finalCalled=!0,process.nextTick(ee,b,_)):(_.prefinished=!0,b.emit("prefinish")))}function Me(b,_){var I=Ze(_);if(I&&(se(b,_),_.pendingcb===0&&(_.finished=!0,b.emit("finish"),_.autoDestroy))){var $=b._readableState;(!$||$.autoDestroy&&$.endEmitted)&&b.destroy()}return I}function Xe(b,_,I){_.ending=!0,Me(b,_),I&&(_.finished?process.nextTick(I):b.once("finish",I)),_.ended=!0,b.writable=!1}function Ye(b,_,I){var $=b.entry;for(b.entry=null;$;){var z=$.callback;_.pendingcb--,z(I),$=$.next}_.corkedRequestsFree.next=b}return Object.defineProperty(T.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(_){this._writableState&&(this._writableState.destroyed=_)}}),T.prototype.destroy=h.destroy,T.prototype._undestroy=h.undestroy,T.prototype._destroy=function(b,_){_(b)},Ft}var kt,$r;function rt(){if($r)return kt;$r=1;var e=Object.keys||function(d){var g=[];for(var m in d)g.push(m);return g};kt=u;var t=vn(),r=dn();ke(u,t);for(var n=e(r.prototype),o=0;o<n.length;o++){var s=n[o];u.prototype[s]||(u.prototype[s]=r.prototype[s])}function u(d){if(!(this instanceof u))return new u(d);t.call(this,d),r.call(this,d),this.allowHalfOpen=!0,d&&(d.readable===!1&&(this.readable=!1),d.writable===!1&&(this.writable=!1),d.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",f)))}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function f(){this._writableState.ended||process.nextTick(h,this)}function h(d){d.end()}return Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(g){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=g,this._writableState.destroyed=g)}}),kt}var Dr=He.codes.ERR_STREAM_PREMATURE_CLOSE;function ko(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];e.apply(this,n)}}}function Po(){}function $o(e){return e.setHeader&&typeof e.abort=="function"}function pn(e,t,r){if(typeof t=="function")return pn(e,null,t);t||(t={}),r=ko(r||Po);var n=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||f()},u=e._writableState&&e._writableState.finished,f=function(){o=!1,u=!0,n||r.call(e)},h=e._readableState&&e._readableState.endEmitted,d=function(){n=!1,h=!0,o||r.call(e)},g=function(E){r.call(e,E)},m=function(){var E;if(n&&!h)return(!e._readableState||!e._readableState.ended)&&(E=new Dr),r.call(e,E);if(o&&!u)return(!e._writableState||!e._writableState.ended)&&(E=new Dr),r.call(e,E)},x=function(){e.req.on("finish",f)};return $o(e)?(e.on("complete",f),e.on("abort",m),e.req?x():e.on("request",x)):o&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",d),e.on("finish",f),t.error!==!1&&e.on("error",g),e.on("close",m),function(){e.removeListener("complete",f),e.removeListener("abort",m),e.removeListener("request",x),e.req&&e.req.removeListener("finish",f),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",f),e.removeListener("end",d),e.removeListener("error",g),e.removeListener("close",m)}}var mr=pn,Pt,Ur;function Do(){if(Ur)return Pt;Ur=1;var e;function t(k,j,F){return j=r(j),j in k?Object.defineProperty(k,j,{value:F,enumerable:!0,configurable:!0,writable:!0}):k[j]=F,k}function r(k){var j=n(k,"string");return typeof j=="symbol"?j:String(j)}function n(k,j){if(typeof k!="object"||k===null)return k;var F=k[Symbol.toPrimitive];if(F!==void 0){var U=F.call(k,j||"default");if(typeof U!="object")return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return(j==="string"?String:Number)(k)}var o=mr,s=Symbol("lastResolve"),u=Symbol("lastReject"),f=Symbol("error"),h=Symbol("ended"),d=Symbol("lastPromise"),g=Symbol("handlePromise"),m=Symbol("stream");function x(k,j){return{value:k,done:j}}function S(k){var j=k[s];if(j!==null){var F=k[m].read();F!==null&&(k[d]=null,k[s]=null,k[u]=null,j(x(F,!1)))}}function E(k){process.nextTick(S,k)}function R(k,j){return function(F,U){k.then(function(){if(j[h]){F(x(void 0,!0));return}j[g](F,U)},U)}}var B=Object.getPrototypeOf(function(){}),N=Object.setPrototypeOf((e={get stream(){return this[m]},next:function(){var j=this,F=this[f];if(F!==null)return Promise.reject(F);if(this[h])return Promise.resolve(x(void 0,!0));if(this[m].destroyed)return new Promise(function(P,C){process.nextTick(function(){j[f]?C(j[f]):P(x(void 0,!0))})});var U=this[d],V;if(U)V=new Promise(R(U,this));else{var T=this[m].read();if(T!==null)return Promise.resolve(x(T,!1));V=new Promise(this[g])}return this[d]=V,V}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var j=this;return new Promise(function(F,U){j[m].destroy(null,function(V){if(V){U(V);return}F(x(void 0,!0))})})}),e),B),L=function(j){var F,U=Object.create(N,(F={},t(F,m,{value:j,writable:!0}),t(F,s,{value:null,writable:!0}),t(F,u,{value:null,writable:!0}),t(F,f,{value:null,writable:!0}),t(F,h,{value:j._readableState.endEmitted,writable:!0}),t(F,g,{value:function(T,P){var C=U[m].read();C?(U[d]=null,U[s]=null,U[u]=null,T(x(C,!1))):(U[s]=T,U[u]=P)},writable:!0}),F));return U[d]=null,o(j,function(V){if(V&&V.code!=="ERR_STREAM_PREMATURE_CLOSE"){var T=U[u];T!==null&&(U[d]=null,U[s]=null,U[u]=null,T(V)),U[f]=V;return}var P=U[s];P!==null&&(U[d]=null,U[s]=null,U[u]=null,P(x(void 0,!0))),U[h]=!0}),j.on("readable",E.bind(null,U)),U};return Pt=L,Pt}var $t,Gr;function Uo(){return Gr||(Gr=1,$t=function(){throw new Error("Readable.from is not available in the browser")}),$t}var Dt,qr;function vn(){if(qr)return Dt;qr=1,Dt=P;var e;P.ReadableState=T,pr.EventEmitter;var t=function(v,A){return v.listeners(A).length},r=fn,n=it.Buffer,o=(typeof ne<"u"?ne:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(p){return n.from(p)}function u(p){return n.isBuffer(p)||p instanceof o}var f=un,h;f&&f.debuglog?h=f.debuglog("stream"):h=function(){};var d=Mo(),g=ln,m=cn,x=m.getHighWaterMark,S=He.codes,E=S.ERR_INVALID_ARG_TYPE,R=S.ERR_STREAM_PUSH_AFTER_EOF,B=S.ERR_METHOD_NOT_IMPLEMENTED,N=S.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,L,k,j;ke(P,r);var F=g.errorOrDestroy,U=["error","close","destroy","pause","resume"];function V(p,v,A){if(typeof p.prependListener=="function")return p.prependListener(v,A);!p._events||!p._events[v]?p.on(v,A):Array.isArray(p._events[v])?p._events[v].unshift(A):p._events[v]=[A,p._events[v]]}function T(p,v,A){e=e||rt(),p=p||{},typeof A!="boolean"&&(A=v instanceof e),this.objectMode=!!p.objectMode,A&&(this.objectMode=this.objectMode||!!p.readableObjectMode),this.highWaterMark=x(this,p,"readableHighWaterMark",A),this.buffer=new d,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=p.emitClose!==!1,this.autoDestroy=!!p.autoDestroy,this.destroyed=!1,this.defaultEncoding=p.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,p.encoding&&(L||(L=yt.StringDecoder),this.decoder=new L(p.encoding),this.encoding=p.encoding)}function P(p){if(e=e||rt(),!(this instanceof P))return new P(p);var v=this instanceof e;this._readableState=new T(p,this,v),this.readable=!0,p&&(typeof p.read=="function"&&(this._read=p.read),typeof p.destroy=="function"&&(this._destroy=p.destroy)),r.call(this)}Object.defineProperty(P.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(v){this._readableState&&(this._readableState.destroyed=v)}}),P.prototype.destroy=g.destroy,P.prototype._undestroy=g.undestroy,P.prototype._destroy=function(p,v){v(p)},P.prototype.push=function(p,v){var A=this._readableState,O;return A.objectMode?O=!0:typeof p=="string"&&(v=v||A.defaultEncoding,v!==A.encoding&&(p=n.from(p,v),v=""),O=!0),C(this,p,v,!1,O)},P.prototype.unshift=function(p){return C(this,p,null,!0,!1)};function C(p,v,A,O,J){h("readableAddChunk",v);var W=p._readableState;if(v===null)W.reading=!1,Be(p,W);else{var X;if(J||(X=q(W,v)),X)F(p,X);else if(W.objectMode||v&&v.length>0)if(typeof v!="string"&&!W.objectMode&&Object.getPrototypeOf(v)!==n.prototype&&(v=s(v)),O)W.endEmitted?F(p,new N):G(p,W,v,!0);else if(W.ended)F(p,new R);else{if(W.destroyed)return!1;W.reading=!1,W.decoder&&!A?(v=W.decoder.write(v),W.objectMode||v.length!==0?G(p,W,v,!1):pe(p,W)):G(p,W,v,!1)}else O||(W.reading=!1,pe(p,W))}return!W.ended&&(W.length<W.highWaterMark||W.length===0)}function G(p,v,A,O){v.flowing&&v.length===0&&!v.sync?(v.awaitDrain=0,p.emit("data",A)):(v.length+=v.objectMode?1:A.length,O?v.buffer.unshift(A):v.buffer.push(A),v.needReadable&&be(p)),pe(p,v)}function q(p,v){var A;return!u(v)&&typeof v!="string"&&v!==void 0&&!p.objectMode&&(A=new E("chunk",["string","Buffer","Uint8Array"],v)),A}P.prototype.isPaused=function(){return this._readableState.flowing===!1},P.prototype.setEncoding=function(p){L||(L=yt.StringDecoder);var v=new L(p);this._readableState.decoder=v,this._readableState.encoding=this._readableState.decoder.encoding;for(var A=this._readableState.buffer.head,O="";A!==null;)O+=v.write(A.data),A=A.next;return this._readableState.buffer.clear(),O!==""&&this._readableState.buffer.push(O),this._readableState.length=O.length,this};var Z=1073741824;function de(p){return p>=Z?p=Z:(p--,p|=p>>>1,p|=p>>>2,p|=p>>>4,p|=p>>>8,p|=p>>>16,p++),p}function ye(p,v){return p<=0||v.length===0&&v.ended?0:v.objectMode?1:p!==p?v.flowing&&v.length?v.buffer.head.data.length:v.length:(p>v.highWaterMark&&(v.highWaterMark=de(p)),p<=v.length?p:v.ended?v.length:(v.needReadable=!0,0))}P.prototype.read=function(p){h("read",p),p=parseInt(p,10);var v=this._readableState,A=p;if(p!==0&&(v.emittedReadable=!1),p===0&&v.needReadable&&((v.highWaterMark!==0?v.length>=v.highWaterMark:v.length>0)||v.ended))return h("read: emitReadable",v.length,v.ended),v.length===0&&v.ended?I(this):be(this),null;if(p=ye(p,v),p===0&&v.ended)return v.length===0&&I(this),null;var O=v.needReadable;h("need readable",O),(v.length===0||v.length-p<v.highWaterMark)&&(O=!0,h("length less than watermark",O)),v.ended||v.reading?(O=!1,h("reading or ended",O)):O&&(h("do read"),v.reading=!0,v.sync=!0,v.length===0&&(v.needReadable=!0),this._read(v.highWaterMark),v.sync=!1,v.reading||(p=ye(A,v)));var J;return p>0?J=_(p,v):J=null,J===null?(v.needReadable=v.length<=v.highWaterMark,p=0):(v.length-=p,v.awaitDrain=0),v.length===0&&(v.ended||(v.needReadable=!0),A!==p&&v.ended&&I(this)),J!==null&&this.emit("data",J),J};function Be(p,v){if(h("onEofChunk"),!v.ended){if(v.decoder){var A=v.decoder.end();A&&A.length&&(v.buffer.push(A),v.length+=v.objectMode?1:A.length)}v.ended=!0,v.sync?be(p):(v.needReadable=!1,v.emittedReadable||(v.emittedReadable=!0,je(p)))}}function be(p){var v=p._readableState;h("emitReadable",v.needReadable,v.emittedReadable),v.needReadable=!1,v.emittedReadable||(h("emitReadable",v.flowing),v.emittedReadable=!0,process.nextTick(je,p))}function je(p){var v=p._readableState;h("emitReadable_",v.destroyed,v.length,v.ended),!v.destroyed&&(v.length||v.ended)&&(p.emit("readable"),v.emittedReadable=!1),v.needReadable=!v.flowing&&!v.ended&&v.length<=v.highWaterMark,b(p)}function pe(p,v){v.readingMore||(v.readingMore=!0,process.nextTick(Ze,p,v))}function Ze(p,v){for(;!v.reading&&!v.ended&&(v.length<v.highWaterMark||v.flowing&&v.length===0);){var A=v.length;if(h("maybeReadMore read 0"),p.read(0),A===v.length)break}v.readingMore=!1}P.prototype._read=function(p){F(this,new B("_read()"))},P.prototype.pipe=function(p,v){var A=this,O=this._readableState;switch(O.pipesCount){case 0:O.pipes=p;break;case 1:O.pipes=[O.pipes,p];break;default:O.pipes.push(p);break}O.pipesCount+=1,h("pipe count=%d opts=%j",O.pipesCount,v);var J=(!v||v.end!==!1)&&p!==process.stdout&&p!==process.stderr,W=J?Ce:Ue;O.endEmitted?process.nextTick(W):A.once("end",W),p.on("unpipe",X);function X(l,i){h("onunpipe"),l===A&&i&&i.hasUnpiped===!1&&(i.hasUnpiped=!0,Ke())}function Ce(){h("onend"),p.end()}var Ve=ee(A);p.on("drain",Ve);var at=!1;function Ke(){h("cleanup"),p.removeListener("close",ot),p.removeListener("finish",me),p.removeListener("drain",Ve),p.removeListener("error",De),p.removeListener("unpipe",X),A.removeListener("end",Ce),A.removeListener("end",Ue),A.removeListener("data",ve),at=!0,O.awaitDrain&&(!p._writableState||p._writableState.needDrain)&&Ve()}A.on("data",ve);function ve(l){h("ondata");var i=p.write(l);h("dest.write",i),i===!1&&((O.pipesCount===1&&O.pipes===p||O.pipesCount>1&&z(O.pipes,p)!==-1)&&!at&&(h("false write response, pause",O.awaitDrain),O.awaitDrain++),A.pause())}function De(l){h("onerror",l),Ue(),p.removeListener("error",De),t(p,"error")===0&&F(p,l)}V(p,"error",De);function ot(){p.removeListener("finish",me),Ue()}p.once("close",ot);function me(){h("onfinish"),p.removeListener("close",ot),Ue()}p.once("finish",me);function Ue(){h("unpipe"),A.unpipe(p)}return p.emit("pipe",A),O.flowing||(h("pipe resume"),A.resume()),p};function ee(p){return function(){var A=p._readableState;h("pipeOnDrain",A.awaitDrain),A.awaitDrain&&A.awaitDrain--,A.awaitDrain===0&&t(p,"data")&&(A.flowing=!0,b(p))}}P.prototype.unpipe=function(p){var v=this._readableState,A={hasUnpiped:!1};if(v.pipesCount===0)return this;if(v.pipesCount===1)return p&&p!==v.pipes?this:(p||(p=v.pipes),v.pipes=null,v.pipesCount=0,v.flowing=!1,p&&p.emit("unpipe",this,A),this);if(!p){var O=v.pipes,J=v.pipesCount;v.pipes=null,v.pipesCount=0,v.flowing=!1;for(var W=0;W<J;W++)O[W].emit("unpipe",this,{hasUnpiped:!1});return this}var X=z(v.pipes,p);return X===-1?this:(v.pipes.splice(X,1),v.pipesCount-=1,v.pipesCount===1&&(v.pipes=v.pipes[0]),p.emit("unpipe",this,A),this)},P.prototype.on=function(p,v){var A=r.prototype.on.call(this,p,v),O=this._readableState;return p==="data"?(O.readableListening=this.listenerCount("readable")>0,O.flowing!==!1&&this.resume()):p==="readable"&&!O.endEmitted&&!O.readableListening&&(O.readableListening=O.needReadable=!0,O.flowing=!1,O.emittedReadable=!1,h("on readable",O.length,O.reading),O.length?be(this):O.reading||process.nextTick(Me,this)),A},P.prototype.addListener=P.prototype.on,P.prototype.removeListener=function(p,v){var A=r.prototype.removeListener.call(this,p,v);return p==="readable"&&process.nextTick(se,this),A},P.prototype.removeAllListeners=function(p){var v=r.prototype.removeAllListeners.apply(this,arguments);return(p==="readable"||p===void 0)&&process.nextTick(se,this),v};function se(p){var v=p._readableState;v.readableListening=p.listenerCount("readable")>0,v.resumeScheduled&&!v.paused?v.flowing=!0:p.listenerCount("data")>0&&p.resume()}function Me(p){h("readable nexttick read 0"),p.read(0)}P.prototype.resume=function(){var p=this._readableState;return p.flowing||(h("resume"),p.flowing=!p.readableListening,Xe(this,p)),p.paused=!1,this};function Xe(p,v){v.resumeScheduled||(v.resumeScheduled=!0,process.nextTick(Ye,p,v))}function Ye(p,v){h("resume",v.reading),v.reading||p.read(0),v.resumeScheduled=!1,p.emit("resume"),b(p),v.flowing&&!v.reading&&p.read(0)}P.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function b(p){var v=p._readableState;for(h("flow",v.flowing);v.flowing&&p.read()!==null;);}P.prototype.wrap=function(p){var v=this,A=this._readableState,O=!1;p.on("end",function(){if(h("wrapped end"),A.decoder&&!A.ended){var X=A.decoder.end();X&&X.length&&v.push(X)}v.push(null)}),p.on("data",function(X){if(h("wrapped data"),A.decoder&&(X=A.decoder.write(X)),!(A.objectMode&&X==null)&&!(!A.objectMode&&(!X||!X.length))){var Ce=v.push(X);Ce||(O=!0,p.pause())}});for(var J in p)this[J]===void 0&&typeof p[J]=="function"&&(this[J]=function(Ce){return function(){return p[Ce].apply(p,arguments)}}(J));for(var W=0;W<U.length;W++)p.on(U[W],this.emit.bind(this,U[W]));return this._read=function(X){h("wrapped _read",X),O&&(O=!1,p.resume())},this},typeof Symbol=="function"&&(P.prototype[Symbol.asyncIterator]=function(){return k===void 0&&(k=Do()),k(this)}),Object.defineProperty(P.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(P.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(P.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(v){this._readableState&&(this._readableState.flowing=v)}}),P._fromList=_,Object.defineProperty(P.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function _(p,v){if(v.length===0)return null;var A;return v.objectMode?A=v.buffer.shift():!p||p>=v.length?(v.decoder?A=v.buffer.join(""):v.buffer.length===1?A=v.buffer.first():A=v.buffer.concat(v.length),v.buffer.clear()):A=v.buffer.consume(p,v.decoder),A}function I(p){var v=p._readableState;h("endReadable",v.endEmitted),v.endEmitted||(v.ended=!0,process.nextTick($,v,p))}function $(p,v){if(h("endReadableNT",p.endEmitted,p.length),!p.endEmitted&&p.length===0&&(p.endEmitted=!0,v.readable=!1,v.emit("end"),p.autoDestroy)){var A=v._writableState;(!A||A.autoDestroy&&A.finished)&&v.destroy()}}typeof Symbol=="function"&&(P.from=function(p,v){return j===void 0&&(j=Uo()),j(P,p,v)});function z(p,v){for(var A=0,O=p.length;A<O;A++)if(p[A]===v)return A;return-1}return Dt}var gn=Ne,Tt=He.codes,Go=Tt.ERR_METHOD_NOT_IMPLEMENTED,qo=Tt.ERR_MULTIPLE_CALLBACK,zo=Tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,Wo=Tt.ERR_TRANSFORM_WITH_LENGTH_0,At=rt();ke(Ne,At);function Ho(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new qo);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function Ne(e){if(!(this instanceof Ne))return new Ne(e);At.call(this,e),this._transformState={afterTransform:Ho.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Zo)}function Zo(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){zr(e,t,r)}):zr(this,null,null)}Ne.prototype.push=function(e,t){return this._transformState.needTransform=!1,At.prototype.push.call(this,e,t)};Ne.prototype._transform=function(e,t,r){r(new Go("_transform()"))};Ne.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var o=this._readableState;(n.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}};Ne.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Ne.prototype._destroy=function(e,t){At.prototype._destroy.call(this,e,function(r){t(r)})};function zr(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new Wo;if(e._transformState.transforming)throw new zo;return e.push(null)}var Xo=ut,yn=gn;ke(ut,yn);function ut(e){if(!(this instanceof ut))return new ut(e);yn.call(this,e)}ut.prototype._transform=function(e,t,r){r(null,e)};var Ut;function Yo(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var mn=He.codes,Vo=mn.ERR_MISSING_ARGS,Ko=mn.ERR_STREAM_DESTROYED;function Wr(e){if(e)throw e}function Jo(e){return e.setHeader&&typeof e.abort=="function"}function Qo(e,t,r,n){n=Yo(n);var o=!1;e.on("close",function(){o=!0}),Ut===void 0&&(Ut=mr),Ut(e,{readable:t,writable:r},function(u){if(u)return n(u);o=!0,n()});var s=!1;return function(u){if(!o&&!s){if(s=!0,Jo(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(u||new Ko("pipe"))}}}function Hr(e){e()}function es(e,t){return e.pipe(t)}function ts(e){return!e.length||typeof e[e.length-1]!="function"?Wr:e.pop()}function rs(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=ts(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Vo("streams");var o,s=t.map(function(u,f){var h=f<t.length-1,d=f>0;return Qo(u,h,d,function(g){o||(o=g),g&&s.forEach(Hr),!h&&(s.forEach(Hr),n(o))})});return t.reduce(es)}var is=rs;(function(e,t){t=e.exports=vn(),t.Stream=t,t.Readable=t,t.Writable=dn(),t.Duplex=rt(),t.Transform=gn,t.PassThrough=Xo,t.finished=mr,t.pipeline=is})(Yt,Yt.exports);var _r=Yt.exports,ns=function(e,t,r){for(var n=Math.min(r-t,e.length),o=[],s=null,u=-1;!s&&++u<n;){var f=e[u];f===`
`?o.length+u&&(s="drill",o=[]):(o.push(f),f==="*"&&o[0]!==";"&&(s="gerber",o=[]))}return s},as=ns,os=function(e,t,r){if(e!=="gerber"&&e!=="drill")throw new Error('filetype to get next block must be "drill" or "gerber"');for(var n=t.length-r,o=e==="gerber"?"*":`
`,s=e==="gerber"?"%":"",u=!1,f=!1,h=!1,d=!1,g=[],m=0,x=0;!d&&m<n;){var S=t[r+m];S===`
`&&x++,S===s?f?(h=!0,g.pop()):(f=!0,g.push(S)):S===o?(u=!0,f&&g.push(S)):S>=" "&&S<="~"&&g.push(S),m++,d=u&&(!f||h)}var E=d?g.join("").trim():"",R=d?"":g.join("");return{lines:x,read:m,block:E,rem:R}},ss=os,fs=function(e){return{type:"done",line:e||-1}},us=function(e,t,r){return{type:"set",line:r||-1,prop:e,value:t}},ls=function(e,t,r){return{type:"level",line:r||-1,level:e,value:t}},hs=function(e,t,r){return{type:"tool",line:r||-1,code:e,tool:t}},cs=function(e,t,r){return{type:"op",line:r||-1,op:e,coord:t}},ds=function(e,t,r){return{type:"macro",line:r||-1,name:e,blocks:t}},ps={set:us,done:fs,level:ls,tool:hs,op:cs,macro:ds},_n=ps,Kt=1/0,vs=9007199254740991,gs=17976931348623157e292,Zr=0/0,ys="[object Symbol]",ms=/^\s+|\s+$/g,_s=/^[-+]0x[0-9a-f]+$/i,ws=/^0b[01]+$/i,bs=/^0o[0-7]+$/i,wr="\\ud800-\\udfff",wn="\\u0300-\\u036f\\ufe20-\\ufe23",bn="\\u20d0-\\u20f0",xn="\\ufe0e\\ufe0f",xs="["+wr+"]",Jt="["+wn+bn+"]",Qt="\\ud83c[\\udffb-\\udfff]",Es="(?:"+Jt+"|"+Qt+")",En="[^"+wr+"]",Mn="(?:\\ud83c[\\udde6-\\uddff]){2}",Rn="[\\ud800-\\udbff][\\udc00-\\udfff]",Sn="\\u200d",Tn=Es+"?",An="["+xn+"]?",Ms="(?:"+Sn+"(?:"+[En,Mn,Rn].join("|")+")"+An+Tn+")*",Rs=An+Tn+Ms,Ss="(?:"+[En+Jt+"?",Jt,Mn,Rn,xs].join("|")+")",er=RegExp(Qt+"(?="+Qt+")|"+Ss+Rs,"g"),Ts=RegExp("["+Sn+wr+wn+bn+xn+"]"),As=parseInt,Bs=typeof ne=="object"&&ne&&ne.Object===Object&&ne,Is=typeof self=="object"&&self&&self.Object===Object&&self,Ns=Bs||Is||Function("return this")(),Ls=Cs("length");function js(e){return e.split("")}function Cs(e){return function(t){return t==null?void 0:t[e]}}function br(e){return Ts.test(e)}function Bn(e){return br(e)?Fs(e):Ls(e)}function Os(e){return br(e)?ks(e):js(e)}function Fs(e){for(var t=er.lastIndex=0;er.test(e);)t++;return t}function ks(e){return e.match(er)||[]}var Ps=Object.prototype,$s=Ps.toString,Xr=Ns.Symbol,Ds=Math.ceil,Us=Math.floor,Yr=Xr?Xr.prototype:void 0,Vr=Yr?Yr.toString:void 0;function Kr(e,t){var r="";if(!e||t<1||t>vs)return r;do t%2&&(r+=e),t=Us(t/2),t&&(e+=e);while(t);return r}function Gs(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++n<o;)s[n]=e[n+t];return s}function In(e){if(typeof e=="string")return e;if(Nn(e))return Vr?Vr.call(e):"";var t=e+"";return t=="0"&&1/e==-Kt?"-0":t}function qs(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:Gs(e,t,r)}function zs(e,t){t=t===void 0?" ":In(t);var r=t.length;if(r<2)return r?Kr(t,e):t;var n=Kr(t,Ds(e/Bn(t)));return br(t)?qs(Os(n),0,e).join(""):n.slice(0,e)}function Jr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Ws(e){return!!e&&typeof e=="object"}function Nn(e){return typeof e=="symbol"||Ws(e)&&$s.call(e)==ys}function Hs(e){if(!e)return e===0?e:0;if(e=Xs(e),e===Kt||e===-Kt){var t=e<0?-1:1;return t*gs}return e===e?e:0}function Zs(e){var t=Hs(e),r=t%1;return t===t?r?t-r:t:0}function Xs(e){if(typeof e=="number")return e;if(Nn(e))return Zr;if(Jr(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Jr(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(ms,"");var r=ws.test(e);return r||bs.test(e)?As(e.slice(2),r?2:8):_s.test(e)?Zr:+e}function Ys(e){return e==null?"":In(e)}function Vs(e,t,r){e=Ys(e),t=Zs(t);var n=t?Bn(e):0;return t&&n<t?zs(t-n,r)+e:e}var Ks=Vs,tr=1/0,Js=9007199254740991,Qs=17976931348623157e292,Qr=0/0,e6="[object Symbol]",t6=/^\s+|\s+$/g,r6=/^[-+]0x[0-9a-f]+$/i,i6=/^0b[01]+$/i,n6=/^0o[0-7]+$/i,xr="\\ud800-\\udfff",Ln="\\u0300-\\u036f\\ufe20-\\ufe23",jn="\\u20d0-\\u20f0",Cn="\\ufe0e\\ufe0f",a6="["+xr+"]",rr="["+Ln+jn+"]",ir="\\ud83c[\\udffb-\\udfff]",o6="(?:"+rr+"|"+ir+")",On="[^"+xr+"]",Fn="(?:\\ud83c[\\udde6-\\uddff]){2}",kn="[\\ud800-\\udbff][\\udc00-\\udfff]",Pn="\\u200d",$n=o6+"?",Dn="["+Cn+"]?",s6="(?:"+Pn+"(?:"+[On,Fn,kn].join("|")+")"+Dn+$n+")*",f6=Dn+$n+s6,u6="(?:"+[On+rr+"?",rr,Fn,kn,a6].join("|")+")",nr=RegExp(ir+"(?="+ir+")|"+u6+f6,"g"),l6=RegExp("["+Pn+xr+Ln+jn+Cn+"]"),h6=parseInt,c6=typeof ne=="object"&&ne&&ne.Object===Object&&ne,d6=typeof self=="object"&&self&&self.Object===Object&&self,p6=c6||d6||Function("return this")(),v6=y6("length");function g6(e){return e.split("")}function y6(e){return function(t){return t==null?void 0:t[e]}}function Er(e){return l6.test(e)}function Un(e){return Er(e)?_6(e):v6(e)}function m6(e){return Er(e)?w6(e):g6(e)}function _6(e){for(var t=nr.lastIndex=0;nr.test(e);)t++;return t}function w6(e){return e.match(nr)||[]}var b6=Object.prototype,x6=b6.toString,ei=p6.Symbol,E6=Math.ceil,M6=Math.floor,ti=ei?ei.prototype:void 0,ri=ti?ti.toString:void 0;function ii(e,t){var r="";if(!e||t<1||t>Js)return r;do t%2&&(r+=e),t=M6(t/2),t&&(e+=e);while(t);return r}function R6(e,t,r){var n=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++n<o;)s[n]=e[n+t];return s}function Gn(e){if(typeof e=="string")return e;if(qn(e))return ri?ri.call(e):"";var t=e+"";return t=="0"&&1/e==-tr?"-0":t}function S6(e,t,r){var n=e.length;return r=r===void 0?n:r,!t&&r>=n?e:R6(e,t,r)}function T6(e,t){t=t===void 0?" ":Gn(t);var r=t.length;if(r<2)return r?ii(t,e):t;var n=ii(t,E6(e/Un(t)));return Er(t)?S6(m6(n),0,e).join(""):n.slice(0,e)}function ni(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function A6(e){return!!e&&typeof e=="object"}function qn(e){return typeof e=="symbol"||A6(e)&&x6.call(e)==e6}function B6(e){if(!e)return e===0?e:0;if(e=N6(e),e===tr||e===-tr){var t=e<0?-1:1;return t*Qs}return e===e?e:0}function I6(e){var t=B6(e),r=t%1;return t===t?r?t-r:t:0}function N6(e){if(typeof e=="number")return e;if(qn(e))return Qr;if(ni(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ni(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(t6,"");var r=i6.test(e);return r||n6.test(e)?h6(e.slice(2),r?2:8):r6.test(e)?Qr:+e}function L6(e){return e==null?"":Gn(e)}function j6(e,t,r){e=L6(e),t=I6(t);var n=t?Un(e):0;return t&&n<t?e+T6(t-n,r):e}var C6=j6,ai=lt,O6=Ks,F6=C6,k6=function(e,t){if(e==null)return NaN;var r=""+e,n="+";(r[0]==="-"||r[0]==="+")&&(n=r[0],r=r.slice(1));var o=r.indexOf(".")!==-1;if(o||t==null||t.zero==null)return Number(n+r);if(t.places==null||t.places.length!==2)return NaN;var s=t.places[0],u=t.places[1];if(!ai(s)||!ai(u))return NaN;if(t.zero==="T")r=F6(r,s+u,"0");else if(t.zero==="L")r=O6(r,s+u,"0");else return NaN;var f=r.slice(0,s),h=r.slice(s,s+u);return+(n+f+"."+h)},Mr=k6,P6=Mr,$6=/[XY]0\d+/,D6=/[XY]\d+0(?=\D|$)/,U6=[{coord:"x",test:/X([+-]?[\d.]+)/},{coord:"y",test:/Y([+-]?[\d.]+)/},{coord:"i",test:/I([+-]?[\d.]+)/},{coord:"j",test:/J([+-]?[\d.]+)/},{coord:"a",test:/A([\d.]+)/}],G6=function(e,t){if(e==null)return{};if(t.zero==null||t.places==null)throw new Error("cannot parse coordinate with format undefined");var r=U6.reduce(function(n,o){var s=e.match(o.test);return s&&(n[o.coord]=P6(s[1],t)),n},{});return r},q6=function(e){return D6.test(e)?"L":$6.test(e)?"T":null},zn={parse:G6,detectZero:q6},z6=/[+\-/xX()]/,Wn=/[$\d.]+/,W6=new RegExp([z6.source,Wn.source].join("|"),"g"),H6=function(t,r){var n=r.match(W6),o,s=function(){var d=n.shift(),g;return Wn.test(d)?g={type:"n",val:d}:(g=o(),n.shift()),g},u=function(){var d=s(),g=n[0];for(g==="X"&&(t._warn("multiplication in macros should use 'x', not 'X'"),g="x");g==="x"||g==="/";){n.shift();var m=s();d={type:g,left:d,right:m},g=n[0]}return d};o=function(){for(var d=u(),g=n[0];g==="+"||g==="-";){n.shift();var m=u();d={type:g,left:d,right:m},g=n[0]}return d};var f=o(),h=function(d,g){var m=function(S){return S[0]==="$"?Number(g[S]):Number(S)},x=d.type;return x==="n"?m(d.val):x==="+"?h(d.left,g)+h(d.right,g):x==="-"?h(d.left,g)-h(d.right,g):x==="x"?h(d.left,g)*h(d.right,g):h(d.left,g)/h(d.right,g)};return function(d){return h(f,d)}},oi=H6,Z6=/^-?[\d.]+$/,si=/^(\$[\d+])=(.+)/,X6=function(e,t){if(t[0]==="0")return{type:"comment"};if(si.test(t)){var r=t.match(si),n=r[1],o=r[2],s=oi(e,o),u=function(m){return m[n]=s(m),m};return{type:"variable",set:u}}var f=function(m){return Z6.test(m)?Number(m):oi(e,m)},h=t.split(",").map(f),d=h[0],g=h[1];if(d===1)return{type:"circle",exp:g,dia:h[2],cx:h[3],cy:h[4],rot:h[5]||0};if(d===2&&e._warn("macro aperture vector primitives with code 2 are deprecated"),d===2||d===20)return{type:"vect",exp:g,width:h[2],x1:h[3],y1:h[4],x2:h[5],y2:h[6],rot:h[7]};if(d===21)return{type:"rect",exp:g,width:h[2],height:h[3],cx:h[4],cy:h[5],rot:h[6]};if(d===22)return e._warn("macro aperture lower-left rectangle primitives are deprecated"),{type:"rectLL",exp:g,width:h[2],height:h[3],x:h[4],y:h[5],rot:h[6]};if(d===4)return{type:"outline",exp:g,points:h.slice(3,-1),rot:h[h.length-1]};if(d===5)return{type:"poly",exp:g,vertices:h[2],cx:h[3],cy:h[4],dia:h[5],rot:h[6]};if(d===6)return{type:"moire",exp:1,cx:h[1],cy:h[2],dia:h[3],ringThx:h[4],ringGap:h[5],maxRings:h[6],crossThx:h[7],crossLen:h[8],rot:h[9]};if(d===7)return{type:"thermal",exp:1,cx:h[1],cy:h[2],outerDia:h[3],innerDia:h[4],gap:h[5],rot:h[6]};e._warn(d+" is an unrecognized primitive for a macro aperture")},Y6=X6,ce=_n,Ge=Mr,V6=zn,K6=Y6,fi=/^G0*([123])/,ui=/^G3([67])/,li=/^G7([45])/,hi=/^G7([01])/,ci=/^G9([01])/,J6=/^G0*4/,Q6=/^%TO[^%*]*/,di=/^(?:G54)?D0*([1-9]\d+)/,pi=/D0*([123])$/,vi=/^(?:G0*[123])?((?:[XYIJ][+-]?\d+){1,4})(?:D0*[123])?$/,gi=/^%MO(IN|MM)/,yi=/^%FS([LT]?)([AI]?)(.*)X([0-7])([0-7])Y\4\5/,mi=/^%LP([CD])/,_i=/^%SR(?:X(\d+)Y(\d+)I([\d.]+)J([\d.]+))?/,Hn=/^%ADD0*(\d{2,})([A-Za-z_$][\w\-.]*)(?:,((?:X?[\d.-]+)*))?/,Zn=/^%AM([A-Za-z_$][\w\-.]*)\*?(.*)/,wi=/\*MO(IN|MM)$/,bi=function(e,t){var r=t==="IN"?"in":"mm";return e._push(ce.set("units",r))},e3=function(e,t){var r={places:e.format.places},n=t.match(Hn),o=n[1],s=n[2],u=n[3]?n[3].split("X"):[],f,h;s==="C"?(f="circle",h=3):s==="R"?(f="rect",h=4):s==="O"?(f="obround",h=4):s==="P"?(f="poly",h=5):(f=s,h=0);var d;f==="circle"?d=[Ge(u[0],r)]:f==="rect"||f==="obround"?d=[Ge(u[0],r),Ge(u[1],r)]:f==="poly"?(d=[Ge(u[0],r),Number(u[1]),0],u[2]&&(d[2]=Number(u[2]))):d=u.map(Number);var g=[];u[h-1]?g=[Ge(u[h-2],r),Ge(u[h-1],r)]:u[h-2]&&(g=[Ge(u[h-2],r)]);var m={shape:f,params:d,hole:g};return e._push(ce.tool(o,m))},t3=function(e,t){var r=t.match(Zn),n=r[1];n.match(/-/)&&e._warn("hyphens in macro name are illegal: "+n);var o=r[2].length?r[2].split("*"):[],s=o.filter(Boolean).map(function(u){return K6(e,u)});return e._push(ce.macro(n,s))},r3=function(e,t){if(!(J6.test(t)||Q6.test(t))){if(t==="M02")return e._push(ce.done());if(ui.test(t)){var r=t.match(ui)[1],n=r==="6";return e._push(ce.set("region",n))}if(li.test(t)){var o=t.match(li)[1],s=o==="4"?"s":"m";return e._push(ce.set("arc",s))}if(gi.test(t)){var u=t.match(gi)[1];return bi(e,u)}if(hi.test(t)){var f=t.match(hi)[1],h=f==="0"?"in":"mm";return e._push(ce.set("backupUnits",h))}if(yi.test(t)){var d=t.match(yi),g=d[1],m=d[2],x=d[3],S=Number(d[4]),E=Number(d[5]),R=e.format;R.zero=R.zero||g,R.places||(R.places=[S,E]),R.zero?R.zero==="T"&&e._warn("trailing zero suppression has been deprecated"):(R.zero="L",e._warn("zero suppression missing from format; assuming leading")),x&&e._warn('unknown characters "'+x+'" in "'+t+'" were ignored');var B=1.5*Math.pow(10,-R.places[1]);if(e._push(ce.set("nota",m)),e._push(ce.set("epsilon",B)),wi.test(t)){var N=t.match(wi)[1];bi(e,N)}return}if(ci.test(t)){var L=t.match(ci)[1],k=L==="0"?"A":"I";return e._push(ce.set("backupNota",k))}if(mi.test(t)){var j=t.match(mi)[1];return e._push(ce.level("polarity",j))}if(_i.test(t)){var F=t.match(_i),U=F[1]||1,V=F[2]||1,T=F[3]||0,P=F[4]||0,C={x:Number(U),y:Number(V),i:Number(T),j:Number(P)};return e._push(ce.level("stepRep",C))}if(di.test(t)){var G=t.match(di)[1];return e._push(ce.set("tool",G))}if(Hn.test(t))return e3(e,t);if(Zn.test(t))return t3(e,t);if(pi.test(t)||fi.test(t)||vi.test(t)){var q=t.match(pi),Z=t.match(fi),de=t.match(vi),ye;if(Z&&(Z[1]==="1"?ye="i":Z[1]==="2"?ye="cw":ye="ccw",e._push(ce.set("mode",ye))),q||de){var Be=q?q[1]:"",be=de?de[1]:"",je=V6.parse(be,e.format),pe="last";Be==="1"?pe="int":Be==="2"?pe="move":Be==="3"&&(pe="flash"),e._push(ce.op(pe,je))}return}return e._warn('block "'+t+'" was not recognized and was ignored')}},i3=r3,Xn={DRILL:"5",MOVE:"0",LINEAR:"1",CW_ARC:"2",CCW_ARC:"3"},xi=lt,ie=_n,st=Xn,n3=Mr,ar=zn,Ei=/;FILE_FORMAT=(\d):(\d)/,Mi=/;TYPE=(PLATED|NON_PLATED)/,Ri=/;FORMAT={(.):(.)\/ (absolute|.+)? \/ (metric|inch) \/.+(trailing|leading|decimal|keep)/,Yn=/^(INCH|METRIC|M71|M72)/,Vn=/,([TL])Z/,a3=/,(0{1,8})\.(0{1,8})/,Si=/T0*(\d+)[\S]*C([\d.]+)/,Ti=/T0*(\d+)(?![\S]*C)/,Rr=/((?:[XYIJA][+-]?[\d.]+){1,4})(?:G85((?:[XY][+-]?[\d.]+){1,2}))?/,Ai=/^G0([01235])/,o3=function(e,t,r){var n={};if(Ri.test(t)){var o=t.match(Ri),s=Number(o[1]),u=Number(o[2]),f=o[3],h=o[4],d=o[5];xi(s)&&xi(u)&&(n.places=[s,u]),f==="absolute"?e._push(ie.set("backupNota","A",r)):e._push(ie.set("backupNota","I",r)),h==="metric"?e._push(ie.set("backupUnits","mm",r)):e._push(ie.set("backupUnits","in",r)),d==="leading"||d==="keep"?n.zero="L":d==="trailing"?n.zero="T":n.zero="D"}else if(Ei.test(t)){var g=t.match(Ei);n.places=[Number(g[1]),Number(g[2])]}else if(Mi.test(t)){var m=t.match(Mi),x=m[1]==="PLATED"?"pth":"npth";e._push(ie.set("holePlating",x,r))}return n},s3=function(e,t,r){var n=t.match(Yn),o=t.match(Vn),s=t.match(a3),u=n[1]==="METRIC"||n[1]==="M71"?"mm":"in",f=o&&o[1];e.format.zero==null&&f&&(e.format.zero=f==="T"?"L":"T"),e.format.places==null&&(s?e.format.places=[s[1].length,s[2].length]:e.format.places=u==="in"?[2,4]:[3,3]),e._push(ie.set("units",u,r))},f3=function(e,t,r){var n=t.match(Rr),o=ar.parse(n[1],e.format);if(n[2])return e._push(ie.op("move",o,r)),e._push(ie.set("mode","i",r)),o=ar.parse(n[2],e.format),e._push(ie.op("int",o,r));switch(Ai.test(t)&&(e._drillMode=t.match(Ai)[1]),e._drillMode){case st.DRILL:return e._push(ie.op("flash",o,r));case st.MOVE:return e._push(ie.op("move",o,r));case st.LINEAR:return e._push(ie.set("mode","i",r)),e._push(ie.op("int",o,r));case st.CW_ARC:return e._push(ie.set("mode","cw",r)),e._push(ie.op("int",o,r));case st.CCW_ARC:return e._push(ie.set("mode","ccw",r)),e._push(ie.op("int",o,r))}},Kn=function(e,t,r){if(Si.test(t)){var n=t.match(Si),o=n[1],s=n3(n[2]),u={shape:"circle",params:[s],hole:[]};return e._push(ie.tool(o,u,r))}if(Ti.test(t)){var f=t.match(Ti)[1];e._push(ie.set("tool",f,r))}if(Rr.test(t))return e.format.places||(e.format.places=[2,4],e._warn("places format missing; assuming [2, 4]")),e.format.zero||(e.format.zero="T",e._warn("zero suppression missing; assuming trailing suppression")),f3(e,t,r);if(t==="M00"||t==="M30")return e._push(ie.done(r));if(t==="G90")return e._push(ie.set("nota","A",r));if(t==="G91")return e._push(ie.set("nota","I",r));if(Yn.test(t))return s3(e,t,r)},Jn=function(e){e._drillStash.forEach(function(t){Kn(e,t.block,t.line)}),e._drillStash=[]},u3=function(e,t){if(t[0]===";"){var r=o3(e,t,e.line);Object.keys(r).forEach(function(n){e.format[n]||(e.format[n]=r[n])})}else e.format.zero?Kn(e,t,e.line):(e._drillStash.push({line:e.line,block:t}),Rr.test(t)&&(e.format.zero=ar.detectZero(t),e.format.zero&&e._warn("zero suppression missing; detected "+(e.format.zero==="L"?"leading":"trailing")+" suppression")),(e.format.zero||Vn.test(t)||e._drillStash.length>=1e3)&&Jn(e))},l3={parse:u3,flush:Jn},h3=function(e,t){return{message:e,line:t}},c3=h3,d3=yt.StringDecoder,p3=ke,Qn=_r.Transform,ea=as,v3=ss,g3=i3,ta=l3,y3=c3,m3=Xn,or=65535,Pe=function(e,t,r){Qn.call(this,{readableObjectMode:!0}),this._decoder=new d3("utf8"),this._stash="",this._index=0,this._drillMode=m3.DRILL,this._drillStash=[],this._syncResult=null,this.line=0,this.format={places:e,zero:t,filetype:r}};p3(Pe,Qn);Pe.prototype._process=function(e,t){for(;this._index<e.length;){var r=v3(t,e,this._index);this._index+=r.read,this.line+=r.lines,this._stash+=r.rem,r.block&&(t==="gerber"?g3(this,r.block):ta.parse(this,r.block))}};Pe.prototype._transform=function(e,t,r){var n=this.format.filetype;if(e=this._decoder.write(e),!n)if(n=ea(e,this._index,or),this._index+=e.length,n)this.format.filetype=n,this._index=0;else return this._index>=or?r(new Error("unable to determine filetype")):(this._stash+=e,r());e=this._stash+e,this._stash="",this._process(e,n),this._index=0,r()};Pe.prototype._flush=function(e){return this.format.filetype==="drill"&&ta.flush(this),e&&e()};Pe.prototype._push=function(e){e.line===-1&&(e.line=this.line);var t=this._syncResult?this._syncResult:this;t.push(e)};Pe.prototype._warn=function(e){this.emit("warning",y3(e,this.line))};Pe.prototype.parseSync=function(e){var t=ea(e,this._index,100*or);return this.format.filetype=t,this._syncResult=[],this._process(e,t),this._flush(),this._syncResult};var _3=Pe,Bi=lt,w3=_3,b3=function(e){if(Array.isArray(e)&&e.length===2&&Bi(e[0])&&Bi(e[1]))return e;throw new Error("places must be an array of two whole numbers")},x3=function(e){if(e==="T"||e==="L")return e;throw new Error("zero suppression must be 'L' or 'T'")},E3=function(e){if(e==="gerber"||e==="drill")return e;throw new Error('filetype must be "drill" or "gerber"')},M3=function(e){e=e||{};var t=e.places?b3(e.places):null,r=e.zero?x3(e.zero):null,n=e.filetype?E3(e.filetype):null;return new w3(t,r,n)},Ii=1/0,ra=9007199254740991,R3=17976931348623157e292,Ni=0/0,S3=4294967295,T3="[object Function]",A3="[object GeneratorFunction]",B3="[object Symbol]",I3=/^\s+|\s+$/g,N3=/^[-+]0x[0-9a-f]+$/i,L3=/^0b[01]+$/i,j3=/^0o[0-7]+$/i,C3=/^(?:0|[1-9]\d*)$/,O3=parseInt,F3=Object.prototype,ia=F3.toString;function k3(e,t,r){return e===e&&(r!==void 0&&(e=e<=r?e:r),t!==void 0&&(e=e>=t?e:t)),e}function P3(e,t,r,n){var o=e.length;for(r=sr(r),r<0&&(r=-r>o?0:o+r),n=n===void 0||n>o?o:sr(n),n<0&&(n+=o),n=r>n?0:Y3(n);r<n;)e[r++]=t;return e}function $3(e,t){return t=t??ra,!!t&&(typeof e=="number"||C3.test(e))&&e>-1&&e%1==0&&e<t}function D3(e,t,r){if(!mt(r))return!1;var n=typeof t;return(n=="number"?q3(r)&&$3(t,r.length):n=="string"&&t in r)?G3(r[t],e):!1}function U3(e,t,r,n){var o=e?e.length:0;return o?(r&&typeof r!="number"&&D3(e,t,r)&&(r=0,n=o),P3(e,t,r,n)):[]}function G3(e,t){return e===t||e!==e&&t!==t}function q3(e){return e!=null&&W3(e.length)&&!z3(e)}function z3(e){var t=mt(e)?ia.call(e):"";return t==T3||t==A3}function W3(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ra}function mt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function H3(e){return!!e&&typeof e=="object"}function Z3(e){return typeof e=="symbol"||H3(e)&&ia.call(e)==B3}function X3(e){if(!e)return e===0?e:0;if(e=V3(e),e===Ii||e===-Ii){var t=e<0?-1:1;return t*R3}return e===e?e:0}function sr(e){var t=X3(e),r=t%1;return t===t?r?t-r:t:0}function Y3(e){return e?k3(sr(e),0,S3):0}function V3(e){if(typeof e=="number")return e;if(Z3(e))return Ni;if(mt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=mt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(I3,"");var r=L3.test(e);return r||j3.test(e)?O3(e.slice(2),r?2:8):N3.test(e)?Ni:+e}var K3=U3,J3=K3,Q3=function(e,t){var r,n;for(n=0;n<e.length;n++)if(r=e[n],t(r))return r},Li=function(e,t,r){var n=e.reduce(function(o,s){var u=e5(t,s.position);return u<r&&u<o.distance?{point:s,distance:u}:o},{point:void 0,distance:1/0});return n.point},e5=function(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))},We=function(e,t){return e[0]===t[0]&&e[1]===t[1]},t5=function(e,t){return e.type==="line"&&(We(e.start,t.start)&&We(e.end,t.end)||We(e.start,t.end)&&We(e.end,t.start))},r5=function(e){var t={type:e.type,start:e.end,end:e.start};return e.type==="arc"&&(t.center=e.center,t.radius=e.radius,t.sweep=e.sweep,t.dir=e.dir==="cw"?"ccw":"cw"),t},Bt=function(e,t){this._edges=[],this._optimize=e,this._fillGaps=t,this.length=0};Bt.prototype.add=function(e){var t={segment:e,start:e.start,end:e.end};this._edges.push(t),this.length++};Bt.prototype._fillGapsAndOptimize=function(){var e=this._edges.map(function(E){return E.segment});this._edges=[],this.length=0;for(var t=e.reduce(function(E,R){return E.concat([{position:R.start,edges:[]},{position:R.end,edges:[]}])},[]),r=e.length,n=0;n<r;n++){var o=e[n],s,u,f=this._fillGaps,h=n*2,d=h+1,g=t.slice(0,h).concat(t.slice(d+1));s=Li(g,o.start,f),u=Li(g,o.end,f),s?f&&(o.start=s.position):s={position:o.start,edges:[]},u?f&&(o.end=u.position):u={position:o.end,edges:[]};var m=Q3(this._edges,function(E){return t5(E.segment,o)});if(!m){var x=this._edges.length,S={segment:o,start:s,end:u};t[h].edges.push(x),t[h].position=S.start.position,t[d].edges.push(x),t[d].position=S.end.position,this._edges.push(S),this.length++}}this._edges.forEach(function(E){t.forEach(function(R){We(R.position,E.start.position)&&(E.start.edges=E.start.edges.concat(R.edges)),We(R.position,E.end.position)&&(E.end.edges=E.end.edges.concat(R.edges))})})};Bt.prototype.traverse=function(){if(!this._optimize)return this._edges.map(function(h){return h.segment});this._fillGapsAndOptimize();for(var e=J3(Array(this._edges.length),!1),t=[],r=[],n,o,s,u,f={position:[]};r.length<this._edges.length;)for(n=e.indexOf(!1),t.push(n);t.length;)n=t.pop(),e[n]||(e[n]=!0,o=this._edges[n],s=o.end,We(f.position,s.position)?(u=r5(o.segment),f=o.start):(u=o.segment,f=o.end),f.edges.reverse().forEach(function(h){e[h]||t.push(h)}),r.push(u));return r};var i5=Bt,n5=function(e,t){return{message:e,line:t}},a5=n5,o5="[object AsyncFunction]",s5="[object Function]",f5="[object GeneratorFunction]",u5="[object Null]",l5="[object Proxy]",h5="[object Undefined]",c5=typeof ne=="object"&&ne&&ne.Object===Object&&ne,d5=typeof self=="object"&&self&&self.Object===Object&&self,p5=c5||d5||Function("return this")(),na=Object.prototype,v5=na.hasOwnProperty,aa=na.toString,ji=p5.Symbol,qe=ji?ji.toStringTag:void 0;function g5(e){return e==null?e===void 0?h5:u5:qe&&qe in Object(e)?y5(e):m5(e)}function y5(e){var t=v5.call(e,qe),r=e[qe];try{e[qe]=void 0;var n=!0}catch{}var o=aa.call(e);return n&&(t?e[qe]=r:delete e[qe]),o}function m5(e){return aa.call(e)}function _5(e){if(!w5(e))return!1;var t=g5(e);return t==s5||t==f5||t==o5||t==l5}function w5(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var b5=_5,x5=function(){return[1/0,1/0,-1/0,-1/0]},oa=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[2]),Math.max(e[3],t[3])]},E5=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[0]),Math.max(e[3],t[1])]},M5=function(e,t,r,n){return[Math.min(e[0],r-t),Math.min(e[1],n-t),Math.max(e[2],r+t),Math.max(e[3],n+t)]},sa=function(e,t){var r=t[0],n=t[1];return[e[0]+r,e[1]+n,e[2]+r,e[3]+n]},R5=function(e,t){return oa(e,sa(e,t))},Sr={new:x5,add:oa,addPoint:E5,addCircle:M5,translate:sa,repeat:R5},S5=b5,T5=lt,le=Sr,ue=function(e){var t=Math.round(e*1e8)/1e8;return t===0?0:t},A5=function(e){return e*Math.PI/180},_t=function(e,t){t=A5(t);var r=Math.sin(t),n=Math.cos(t),o=e[0],s=e[1];return[ue(o*n-s*r),ue(o*r+s*n)]},wt=function(e,t,r,n){var o=e/2;if(t=t||0,r=r||0,n&&(t||r)){var s=_t([t,r],n);t=s[0],r=s[1]}return{shape:{type:"circle",cx:t,cy:r,r:e/2},box:le.addCircle(le.new(),o,t,r)}},fa=function(e,t,r,n,o,s){if(s){var u=_t([e,t],s),f=_t([r,n],s);e=u[0],t=u[1],r=f[0],n=f[1]}var h=(n-t)/(r-e),d=o/2,g=d,m=d;T5(h)?(g*=h/Math.sqrt(1+Math.pow(h,2)),m*=1/Math.sqrt(1+Math.pow(h,2))):m=0;var x=[];x.push([ue(e+g),ue(t-m)]),x.push([ue(r+g),ue(n-m)]),x.push([ue(r-g),ue(n+m)]),x.push([ue(e-g),ue(t+m)]);var S=x.reduce(function(E,R){return le.addPoint(E,R)},le.new());return{shape:{type:"poly",points:x},box:S}},Ee=function(e,t,r,n,o,s){n=n||0,o=o||0,r=r||0,s=s||0;var u=e/2,f=t/2;if(s){var h=n-u,d=n+u,g=o,m=o;return fa(h,g,d,m,t,s)}return{shape:{type:"rect",cx:n,cy:o,r,width:e,height:t},box:[-u+n,-f+o,u+n,f+o]}},B5=function(e,t){for(var r=[],n=le.new(),o,s=0;s<e.length-2;s+=2)o=[e[s],e[s+1]],t&&(o=_t(o,t)),r.push(o),n=le.addPoint(n,o);return{shape:{type:"poly",points:r},box:n}},ua=function(e,t,r,n,o){n=n||0,o=o||0;for(var s=[],u=le.new(),f=e/2,h=r*Math.PI/180,d=2*Math.PI/t,g,m,x,S=0;S<t;S++)g=d*S+h,m=n+ue(f*Math.cos(g)),x=o+ue(f*Math.sin(g)),u=le.addPoint(u,[m,x]),s.push([m,x]);return{shape:{type:"poly",points:s},box:u}},la=function(e,t,r,n){return{type:"ring",cx:e,cy:t,r,width:n}},I5=function(e,t,r,n,o,s,u,f,h){for(var d=e/2,g=[],m=le.addCircle(le.new(),d,u,f),x=t/2,S=r+x;d>t&&g.length<n;)d-=x,g.push(la(u,f,ue(d),t)),d-=S;d>0&&g.length<n&&g.push(wt(ue(2*d),u,f).shape);var E=Ee(s,o,0,u,f,h),R=Ee(o,s,0,u,f,h);return g.push(E.shape),g.push(R.shape),m=le.add(m,E.box),m=le.add(m,R.box),{shape:g,box:m}},N5=function(e,t,r,n,o,s){var u=ue((r-o)/2),f=ue((r+o)/4),h=ue((r-n)/2),d=ue((r-h)/2),g=le.addCircle(le.new(),r/2,e,t),m=[Ee(u,u,0,e+f,t+f,s).shape,Ee(u,u,0,e-f,t+f,s).shape,Ee(u,u,0,e-f,t-f,s).shape,Ee(u,u,0,e+f,t-f,s).shape],x=la(e,t,d,h);return{shape:{type:"clip",shape:m,clip:x},box:g}},L5=function(e,t){var r={shape:[],box:le.new()},n=1;return t=t||[],t.reduce(function(o,s){var u;switch(s.type!=="variable"&&s.type!=="comment"&&(s=Object.keys(s).reduce(function(m,x){var S=s[x];return m[x]=E(S),m;function E(R){return Array.isArray(R)?R.map(E):S5(R)?R(e):R}},{})),s.exp!=null&&s.exp!==n&&(o.shape.push({type:"layer",polarity:s.exp===1?"dark":"clear",box:o.box.slice(0)}),n=s.exp),s.type){case"circle":u=wt(s.dia,s.cx,s.cy,s.rot);break;case"vect":u=fa(s.x1,s.y1,s.x2,s.y2,s.width,s.rot);break;case"rect":u=Ee(s.width,s.height,0,s.cx,s.cy,s.rot);break;case"rectLL":var f=s.height/2,h=s.width/2,d=s.x+h,g=s.y+f;u=Ee(s.width,s.height,0,d,g,s.rot);break;case"outline":u=B5(s.points,s.rot);break;case"poly":u=ua(s.dia,s.vertices,s.rot,s.cx,s.cy);break;case"moire":u=I5(s.dia,s.ringThx,s.ringGap,s.maxRings,s.crossThx,s.crossLen,s.cx,s.cy,s.rot);break;case"thermal":u=N5(s.cx,s.cy,s.outerDia,s.innerDia,s.gap,s.rot);break;case"variable":return e=s.set(e),o;default:return o}return o.shape=o.shape.concat(u.shape),n===1&&(o.box=le.add(o.box,u.box)),o},r)},j5=function(t,r){var n=[],o=le.new(),s=t.shape,u=t.params,f,h;if(s==="circle")h=wt(u[0]);else if(s==="rect")h=Ee(u[0],u[1]);else if(s==="obround")h=Ee(u[0],u[1],Math.min(u[0],u[1])/2);else if(s==="poly")h=ua(u[0],u[1],u[2]);else{var d=u.reduce(function(g,m,x){return g["$"+(x+1)]=m,g},{});return L5(d,r[s])}return n.push(h.shape),o=le.add(o,h.box),t.hole.length&&(f=t.hole.length===1?wt(t.hole[0]).shape:Ee(t.hole[0],t.hole[1]).shape,n.push({type:"layer",polarity:"clear",box:o},f)),{shape:n,box:o}},oe=Sr,he=Math.PI/2,Ci=Math.PI,ge=Math.PI*2,Qe=3*Math.PI/2,C5=function(e,t,r,n){return r?(n._warn("flash in region ignored"),oe.new()):t?(t.flashed||(t.flashed=!0,n.push({type:"shape",tool:t.code,shape:t.pad})),n.push({type:"pad",tool:t.code,x:e[0],y:e[1]}),oe.translate(t.box,e)):(n._warn("flash with unknown tool ignored"),oe.new())},O5=function(e,t,r,n,o){for(var s,u,f,h,d;d==null&&o.length>0;)h=o.pop(),s=Math.atan2(e[1]-h[1],e[0]-h[0]),u=Math.atan2(t[1]-h[1],t[0]-h[0]),r==="cw"?s=s>=u?s:s+ge:u=u>=s?u:u+ge,f=Math.abs(s-u),n==="s"?f<=he&&(d=h):d=h;if(d!=null)return s=s>=0?s:s+ge,s=s<ge?s:s-ge,u=u>=0?u:u+ge,u=u<ge?u:u-ge,{center:d,sweep:f,start:e.concat(s),end:t.concat(u)}},F5=function(e,t,r,n,o){var s=e.start,u=e.end,f=e.center,h=e.sweep,d,g;o==="cw"?(d=u[2],g=s[2]):(d=s[2],g=u[2]);var m=[s,u];return(d>g||h===ge)&&m.push([f[0]+t,f[1]]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0],f[1]+t]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0]-t,f[1]]),d=d>=he?d-he:d+Qe,g=g>=he?g-he:g+Qe,(d>g||h===ge)&&m.push([f[0],f[1]-t]),m.reduce(function(x,S){if(!r){var E=oe.translate(n.box,S);return oe.add(x,E)}return oe.addPoint(x,S)},oe.new())},Oi=function(e,t){return e>=t?e:0},k5=function(e,t,r,n,o){var s=r==="ccw"?1:-1,u=(e[0]+t[0])/2,f=(e[1]+t[1])/2,h=t[0]-e[1],d=t[1]-e[1],g=Math.sqrt(Math.pow(h,2)+Math.pow(d,2)),m=g/2,x=Math.sqrt(Math.pow(o,2)-Math.pow(m,2)),S=-s*d*x/g,E=s*h*x/g;return[[Oi(u+S,n),Oi(f+E,n)]]},P5=function(e,t,r,n,o,s,u,f,h,d){var g=r[2]||Math.sqrt(Math.pow(r[0],2)+Math.pow(r[1],2)),m=[],x=[],S=[];r[0]&&s==="s"?x.push(e[0]+r[0],e[0]-r[0]):x.push(e[0]+r[0]),r[1]&&s==="s"?S.push(e[1]+r[1],e[1]-r[1]):S.push(e[1]+r[1]);for(var E=0;E<x.length;E++)for(var R=0;R<S.length;R++)m.push([x[E],S[R]]);var B;r[2]?(s="m",B=k5(e,t,o,f,r[2])):s==="s"?B=m.filter(function(k){var j=Math.sqrt(Math.pow(k[0]-e[0],2)+Math.pow(k[1]-e[1],2)),F=Math.sqrt(Math.pow(k[0]-t[0],2)+Math.pow(k[1]-t[1],2));return Math.abs(j-g)<=f&&Math.abs(F-g)<=f}):B=m;var N=O5(e,t,o,s,B);s==="m"&&e[0]===t[0]&&e[1]===t[1]&&(N.sweep=ge);var L=oe.new();return N!=null?(h.add({type:"arc",start:N.start,end:N.end,center:N.center,sweep:N.sweep,radius:g,dir:o}),L=F5(N,g,u,n,o)):d._warn("skipping impossible arc"),L},$5=function(e,t,r,n,o){if(o.add({type:"line",start:e,end:t}),!n){var s=oe.translate(r.box,e),u=oe.translate(r.box,t);return oe.add(s,u)}var f=oe.new();return f=oe.addPoint(f,e),f=oe.addPoint(f,t),f},D5=function(e,t,r,n,o){var s=r.trace[0]/2,u=r.trace[1]/2,f=Math.atan2(t[1]-e[1],t[0]-e[0]),h=e[0]-s,d=e[0]+s,g=e[1]-u,m=e[1]+u,x=t[0]-s,S=t[0]+s,E=t[1]-u,R=t[1]+u,B=[];return e[0]===t[0]&&e[1]===t[1]?B.push([h,g],[d,g],[d,m],[h,m]):f>=0&&f<he?B.push([h,g],[d,g],[S,E],[S,R],[x,R],[h,m]):f>=he&&f<=Ci?B.push([d,g],[d,m],[S,R],[x,R],[x,E],[h,g]):f>=-Ci&&f<-he?B.push([d,m],[h,m],[x,R],[x,E],[S,E],[d,g]):B.push([h,m],[h,g],[x,E],[S,E],[S,R],[d,m]),B.forEach(function(N,L){var k=L<B.length-1?L+1:0;n.add({type:"line",start:N,end:B[k]})}),o._finishPath(),oe.add(oe.translate(r.box,e),oe.translate(r.box,t))},U5=function(e,t,r,n,o,s,u,f,h,d){var g=u||n&&n.trace.length>0,m=u||n&&n.trace.length===1,x=n?n.code:"[NO TOOL SET]";return g?o==="i"?u||n.trace.length===1?$5(e,t,n,u,h):D5(e,t,n,h,d):m?P5(e,t,r,n,o,s,u,f,h,d):(d._warn("cannot draw arc with non-circular tool "+x+"; ignoring interpolate"),oe.new()):(d._warn("tool "+x+" is not strokable; ignoring interpolate"),oe.new())},G5=function(e,t,r,n,o,s,u,f,h,d){var g=[t.x!=null?t.x:r[0],t.y!=null?t.y:r[1]],m=[t.i!=null?t.i:0,t.j!=null?t.j:0,t.a],x;switch(e){case"flash":x=C5(g,n,u,d);break;case"int":x=U5(r,g,m,n,o,s,u,h,f,d);break;default:x=oe.new();break}return{pos:g,box:x}},q5=G5,ha=_r.Transform,z5=ke,ca=i5,W5=a5,H5=j5,Z5=q5,vt=Sr,X5=11e-5,Y5=function(e){return e==="units"||e==="backupUnits"||e==="nota"||e==="backupNota"},$e=function(e,t,r,n,o,s){ha.call(this,{readableObjectMode:!0,writableObjectMode:!0}),this.format={units:e,backupUnits:t||"in",nota:r,backupNota:n||"A"},this._formatLock={units:e!=null,backupUnits:t!=null,nota:r!=null,backupNota:n!=null},this._plotAsOutline=s===!0?X5:s,(e||this.format.backupUnits)==="in"&&(this._plotAsOutline=this._plotAsOutline/25.4),this._optimizePaths=o||s,this._line=0,this._done=!1,this._tool=null,this._outTool=null,this._tools={},this._macros={},this._pos=[0,0],this._box=vt.new(),this._mode=null,this._arc=null,this._region=!1,this._path=new ca(this._optimizePaths,this._plotAsOutline),this._epsilon=null,this._lastOp=null,this._stepRep=[]};z5($e,ha);$e.prototype._finishPath=function(e){var t=this._path.traverse();if(this._path=new ca(!e&&this._optimizePaths,this._plotAsOutline),t.length){var r=this._plotAsOutline?this._outTool:this._tool;!this._region&&r.trace.length===1?this.push({type:"stroke",width:r.trace[0],path:t}):this.push({type:"fill",path:t})}};$e.prototype._warn=function(e){this.emit("warning",W5(e,this._line))};$e.prototype._checkFormat=function(){this.format.units||(this.format.units=this.format.backupUnits,this._warn("units not set; using backup units: "+this.format.units)),this.format.nota||(this.format.nota=this.format.backupNota,this._warn("notation not set; using backup notation: "+this.format.nota))};$e.prototype._updateBox=function(e){var t=this._stepRep.length;if(!t)this._box=vt.add(this._box,e);else{var r=vt.repeat(e,this._stepRep[t-1]);this._box=vt.add(this._box,r)}};$e.prototype._transform=function(e,t,r){var n=e.type;if(this._line=e.line,this._done)return this._warn("ignoring extra command recieved after done command"),r();if(n==="op"){this._checkFormat();var o=e.op,s=e.coord;if(this.nota==="I"){var u=this;s=Object.keys(s).reduce(function(k,j){var F=s[j];return j==="x"?k[j]=u._pos[0]+F:j==="y"?k[j]=u._pos[1]+F:k[j]=F,k},{})}o==="last"&&(this._warn("modal operation commands are deprecated"),o=this._lastOp),o==="int"&&(this._mode==null&&(this._warn("no interpolation mode specified; assuming linear"),this._mode="i"),this._arc==null&&this._mode.slice(-2)==="cw"&&!s.a&&(this._warn("quadrant mode unspecified; assuming single quadrant"),this._arc="s")),this._plotAsOutline&&(this._outTool=this._tool);var f=Z5(o,s,this._pos,this._tool,this._mode,this._arc,this._region||this._plotAsOutline,this._path,this._epsilon,this);this._lastOp=o,this._pos=f.pos,this._updateBox(f.box)}else if(n==="set"){var h=e.prop,d=e.value;h==="region"?(this._finishPath(d),this._region=d):Y5(h)&&!this._formatLock[h]?(this.format[h]=d,(h==="units"||h==="nota")&&(this._formatLock[h]=!0)):h==="tool"?this._region?this._warn("cannot change tool while region mode is on"):this._tools[d]?this._outTool||(this._finishPath(),this._tool=this._tools[d]):this._warn("tool "+d+" is not defined"):this["_"+h]=d}else if(n==="tool"){var g=e.code,m=e.tool;this._tools[g]&&this._warn("tool "+g+" is already defined; overwriting definition");var x=H5(m,this._macros),S={code:g,trace:[],pad:x.shape,flashed:!1,box:x.box};(m.shape==="circle"||m.shape==="rect")&&m.hole.length===0&&(S.trace=m.params),this._outTool||(this._finishPath(),this._tools[g]=S,this._tool=S)}else if(n==="macro")this._macros[e.name]=e.blocks;else if(n==="level"){var E=e.level,R=e.value;if(this._finishPath(),E==="polarity")this.push({type:"polarity",polarity:R==="C"?"clear":"dark",box:this._box.slice(0)});else{var B=[];if(R.x>1||R.y>1)for(var N=0;N<R.x;N++)for(var L=0;L<R.y;L++)B.push([N*R.i,L*R.j]);this._stepRep=B,this.push({type:"repeat",offsets:this._stepRep.slice(0),box:this._box.slice(0)})}}else n==="done"&&(this._done=!0);return r()};$e.prototype._flush=function(e){this._finishPath(),this.push({type:"size",box:this._box,units:this.format.units}),e()};var V5=$e,K5=V5,Fi=function(e){if(e==="A"||e==="I")return e;throw new Error('notation must be "in" or "mm"')},ki=function(e){if(e==="in"||e==="mm")return e;throw new Error('units must be "in" or "mm"')},J5=function(t){t=t||{};var r=t.units?ki(t.units):null,n=t.backupUnits?ki(t.backupUnits):null,o=t.nota?Fi(t.nota):null,s=t.backupNota?Fi(t.backupNota):null;return new K5(r,n,o,s,t.optimizePaths,t.plotAsOutline)};/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/var Q5=/["'&<>]/,e0=t0;function t0(e){var t=""+e,r=Q5.exec(t);if(!r)return t;var n,o="",s=0,u=0;for(s=r.index;s<t.length;s++){switch(t.charCodeAt(s)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}u!==s&&(o+=t.substring(u,s)),u=s+1,o+=n}return u!==s?o+t.substring(u,s):o}var Gt=e0,da=function(t,r,n){r=r||{},n=n||[];var o="<"+Gt(t),s=Object.keys(r).reduce(function(f,h){var d=r[h],g=d!=null?" "+Gt(h)+'="'+Gt(d)+'"':"";return f+g},""),u=n.length?">"+n.join("")+"</"+t+">":"/>";return o+s+u},ft=function(e){return Math.round(1e10*e)/1e7},r0=function(e,t,r){return r("rect",{x:ft(e[0]),y:ft(e[1]),width:ft(e[2]-e[0]),height:ft(e[3]-e[1]),fill:t})},i0=function(e,t,r){var n="url(#"+e+")";return r("g",{mask:n},t)},n0=function(e,t,r,n){r=[r0(t,"#fff",n)].concat(r);var o={id:e,fill:"#000",stroke:"#000"};return n("mask",o,[n("g",{},r)])},It={shift:ft,maskLayer:i0,createMask:n0},Tr=It,xe=Tr.shift,Pi=Tr.createMask,a0=Tr.maskLayer,Nt=function(e,t,r){return{tag:e,attr:t,children:r||[]}},fr=function(e,t,r,n){var o={cx:xe(e),cy:xe(t),r:xe(r)};return n!=null&&(o["stroke-width"]=xe(n),o.fill="none"),Nt("circle",o)},pa=function(e,t,r,n,o){var s={x:xe(e-n/2),y:xe(t-o/2),width:xe(n),height:xe(o)};return r&&(s.rx=xe(r),s.ry=xe(r)),Nt("rect",s)},va=function(e){var t=e.map(function(r){return r.map(xe).join(",")}).join(" ");return Nt("polygon",{points:t})},o0=function(e,t,r,n,o){var s=e+"mask-"+t,u="url(#"+s+")",f=fr(n.cx,n.cy,n.r,n.width),h=o("mask",{id:s,stroke:"#fff"},[o(f.tag,f.attr)]),d=r.map(function(m){var x=m.type==="rect"?pa(m.cx,m.cy,m.r,m.width,m.height):va(m.points);return o(x.tag,x.attr)}),g=Nt("g",{mask:u},d);return{mask:h,layer:g}},s0=function(t,r,n,o){var s=t+"_pad-"+r,u=s+"_",f=n.reduce(function(h,d,g){var m;switch(d.type){case"circle":m=fr(d.cx,d.cy,d.r);break;case"ring":m=fr(d.cx,d.cy,d.r,d.width);break;case"rect":m=pa(d.cx,d.cy,d.r,d.width,d.height);break;case"poly":m=va(d.points);break;case"clip":var x=o0(u,g,d.shape,d.clip,o);h.masks.push(x.mask),m=x.layer;break;case"layer":if(h.count++,h.last=d.polarity,d.polarity==="clear"){var S=u+h.count;h.maskId=S,h.maskBox=d.box.slice(0),h.maskChildren=[],h.layers=[a0(S,h.layers,o)]}else{var E=Pi(h.maskId,h.maskBox,h.maskChildren,o);h.masks.push(E)}break}if(m){n.length===1&&(m.attr.id=s);var R=o(m.tag,m.attr,m.children);h.last==="dark"?h.layers.push(R):h.maskChildren.push(R)}return h},{count:0,last:"dark",layers:[],maskId:"",maskBox:[],maskChildren:[],masks:[]});return f.last==="clear"&&f.masks.push(Pi(f.maskId,f.maskBox,f.maskChildren,o)),n.length>1&&(f.layers=o("g",{id:s},f.layers)),f.masks.concat(f.layers)},f0=It,$i=f0.shift,u0=function(t,r,n,o,s){var u="#"+t+"_pad-"+r;return s("use",{"xlink:href":u,x:$i(n),y:$i(o)})},l0=It,Fe=l0.shift,h0=function(e,t){return e[0]===t[0]&&e[1]===t[1]},c0=function(e){return"M "+Fe(e[0])+" "+Fe(e[1])},ga=function(e,t){var r=e==="L"||e==="M"?"":"L ";return r+Fe(t[0])+" "+Fe(t[1])},ur=function(e,t,r,n,o,s){if(r===0)return ga(e,o);if(r===2*Math.PI){var u=[2*s[0]-o[0],2*s[1]-o[1]],f=ur(e,t,Math.PI,n,u,s),h=ur("A",t,Math.PI,n,o,s);return f+" "+h}var d=e==="A"?"":"A ";return t=Fe(t),d+=t+" "+t+" 0 ",d+=r>Math.PI?"1 ":"0 ",d+=n==="ccw"?"1 ":"0 ",d+=Fe(o[0])+" "+Fe(o[1]),d},d0=function(e,t){var r=t.type,n=t.start,o=t.end;return h0(e.last,n)||(e.data+=(e.data?" ":"")+c0(n),e.lastCmd="M"),e.data+=" ",r==="line"?(e.data+=ga(e.lastCmd,o),e.lastCmd="L"):(e.data+=ur(e.lastCmd,t.radius,t.sweep,t.dir,o,t.center),e.lastCmd="A"),e.last=o,e},p0=function(t,r,n){var o=t.reduce(d0,{last:[],data:""}).data,s={d:o};return r!=null&&(s.fill="none",s["stroke-width"]=Fe(r)),n("path",s)},v0=da,ya=function(e,t,r){var n=r||v0,o={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0","fill-rule":"evenodd",width:e.width+e.units,height:e.height+e.units,viewBox:e.viewBox.join(" ")};typeof t=="string"&&(t={id:t}),Object.keys(t||{}).forEach(function(h){var d=t[h];d!=null&&(o[h]=d)});var s=[];if(e.layer.length){e.defs.length&&s.push(n("defs",{},e.defs));var u=e.viewBox[3]+2*e.viewBox[1],f="translate(0,"+u+") scale(1,-1)";s.push(n("g",{transform:f,fill:"currentColor",stroke:"currentColor"},e.layer))}return n("svg",o,s)},ma=_r.Transform,g0=ke,_a=lt,y0=s0,m0=u0,Di=p0,Ar=It,_0=ya,Oe=Ar.shift,wa=Ar.maskLayer,w0=Ar.createMask,b0=0,lr=1,ba=2,Ae=function(e,t,r,n){ma.call(this,{writableObjectMode:!0,readableObjectMode:n}),this.id=e,this.attributes=t,this.defs=[],this.layer=[],this.viewBox=[0,0,0,0],this.width=0,this.height=0,this.units="",this._maskId="",this._maskBox=[],this._mask=[],this._blockMode=!1,this._blockBox=[],this._block=[],this._blockCount=0,this._blockLayerCount=0,this._offsets=[],this._clearCount=0,this._lastLayer=0,this._blockCount=0,this._blockCount=0,this._element=r};g0(Ae,ma);Ae.prototype._transform=function(e,t,r){switch(e.type){case"shape":this.defs=this.defs.concat(y0(this.id,e.tool,e.shape,this._element));break;case"pad":this._draw(m0(this.id,e.tool,e.x,e.y,this._element));break;case"fill":this._draw(Di(e.path,null,this._element));break;case"stroke":this._draw(Di(e.path,e.width,this._element));break;case"polarity":this._handleNewPolarity(e.polarity,e.box);break;case"repeat":this._handleNewRepeat(e.offsets,e.box);break;case"size":this._handleSize(e.box,e.units)}r()};Ae.prototype._flush=function(e){this._handleNewRepeat([]),this.push(_0(this,this.attributes,this._element)),e()};Ae.prototype._finishBlockLayer=function(){if(this._block.length){this._blockLayerCount++;var e=this.id+"_block-"+this._blockCount+"-"+this._blockLayerCount;this.defs.push(this._element("g",{id:e},this._block)),this._block=[]}};Ae.prototype._finishClearLayer=function(){return this._maskId?(this.defs.push(w0(this._maskId,this._maskBox,this._mask,this._element)),this._maskId="",this._maskBox=[],this._mask=[],!0):!1};Ae.prototype._handleNewPolarity=function(e,t){if(this._blockMode)return this._blockLayerCount===0&&!this._block.length&&(this._blockMode=e==="dark"?lr:ba),this._finishBlockLayer();this._clearCount=e==="clear"?this._clearCount+1:this._clearCount;var r=this.id+"_clear-"+this._clearCount;e==="clear"?(this.layer=[wa(r,this.layer,this._element)],this._maskId=r,this._maskBox=t.slice(0)):this._finishClearLayer(t)};Ae.prototype._handleNewRepeat=function(e,t){var r=e.length===0,n=this._finishClearLayer();this._finishBlockLayer();var o=this.layer,s=this._element,u=this._blockMode,f=this._blockLayerCount,h=this.id+"_block-"+this._blockCount+"-";if(this._offsets.forEach(function(g){for(var m=u;m<=f;m+=2)o.push(s("use",{"xlink:href":"#"+h+m,x:Oe(g[0]),y:Oe(g[1])}))}),f>2-u){var d=h+"clear";this.layer=[wa(d,o,this._element)],this._maskId=d,this._maskBox=this._blockBox.slice(0),this._mask=this._offsets.reduce(function(g,m){for(var x,S=1;S<=f;S++){x=u===lr?S%2===1:S%2===0;var E={"xlink:href":"#"+h+S,x:Oe(m[0]),y:Oe(m[1])};x&&(E.fill="#fff",E.stroke="#fff"),g.push(s("use",E))}return g},[]),n=this._finishClearLayer()}this._offsets=e,r?this._blockMode=b0:(this._blockMode=n?ba:lr,this._blockCount++,this._blockLayerCount=0,this._blockBox=t.every(_a)?t:[0,0,0,0])};Ae.prototype._handleSize=function(e,t){if(e.every(_a)){var r=Oe(e[0]),n=Oe(e[1]),o=Oe(e[2]-e[0]),s=Oe(e[3]-e[1]);this.viewBox=[r,n,o,s],this.width=o/1e3,this.height=s/1e3,this.units=t}};Ae.prototype._draw=function(e){this._blockMode?this._block.push(e):this._maskId?this._mask.push(e):this.layer.push(e)};var x0=Ae,E0=["id","attributes","defs","layer","viewBox","width","height","units"],M0=function(t){return E0.reduce(function(r,n){var o=t[n];return o!=null&&(r[n]=t[n]),r},{})},R0=eo,S0=M3,T0=J5,A0=da,B0=x0,I0=ya,N0=M0,L0=function(e){typeof e=="string"?e={id:e}:e||(e={});var t={id:R0.ensure(e.id),attributes:e.attributes||{},createElement:e.createElement||A0,objectMode:e.objectMode==null?!1:e.objectMode,parser:{places:e.places,zero:e.zero,filetype:e.filetype},plotter:{units:e.units,backupUnits:e.backupUnits,nota:e.nota,backupNota:e.backupNota,optimizePaths:e.optimizePaths,plotAsOutline:e.plotAsOutline}};return t};St.exports=function(t,r,n){typeof r=="function"&&(n=r,r=null);var o=L0(r),s=n!=null,u=new B0(o.id,o.attributes,o.createElement,o.objectMode),f=S0(o.parser),h=T0(o.plotter);if(u.parser=f,u.plotter=h,f.on("warning",function(x){u.emit("warning",x)}),h.on("warning",function(x){u.emit("warning",x)}),f.once("error",function(x){u.emit("error",x)}),h.once("error",function(x){u.emit("error",x)}),f.once("end",function(){u.filetype=f.format.filetype}),t.pipe?(t.setEncoding("utf8"),t.pipe(f)):process.nextTick(function(){f.write(t),f.end()}),f.pipe(h).pipe(u),s){var d="",g=function(){return n(null,d)};u.on("readable",function(){var x;do x=u.read()||"",d+=x;while(x)}),u.once("end",g),u.once("error",function(m){return u.removeListener("end",g),n(m)})}return u};St.exports.render=I0;St.exports.clone=N0;var j0=St.exports;const C0=hr(j0);window.Buffer=it.Buffer;window.process=Ba;window.EventEmitter=za;document.getElementById("body");let gt=document.getElementById("previewSVG");const bt=["Edge_Cuts","profile","B_Cu","copper_bottom","F_Cu","copper_top","B_Mask","soldermask_bottom","F_Mask","soldermask_top","B_Paste","solderpaste_bottom","F_Paste","solderpaste_top","drill","B_Silkscreen","B_Silks","silkscreen_bottom","F_Silkscreen","F_Silks","silkscreen_top"],Ui={Edge_Cuts:[70,105,58,1],profile:[70,105,58,1],B_Cu:[30,130,220,.8],copper_bottom:[30,130,220,.8],F_Cu:[89,165,82,.8],copper_top:[89,165,82,.8],B_Mask:[200,177,170,.6],soldermask_bottom:[200,177,170,.6],F_Mask:[239,177,58,1],soldermask_top:[239,177,58,1],B_Paste:[200,20,230,.2],solderpaste_bottom:[200,20,230,.2],F_Paste:[200,20,230,.3],solderpaste_top:[200,20,230,.3],drill:[120,120,120,1],B_Silkscreen:[255,255,255,.6],B_Silks:[255,255,255,.6],silkscreen_bottom:[255,255,255,.6],F_Silkscreen:[255,255,255,1],F_Silks:[255,255,255,1],silkscreen_top:[255,255,255,1]};let xt=[],Et=null,D={fillEdge:!0,transparent:!1,blackAndWhite:!1,asSVG:!1,dpi:1e3,svgOrig:[NaN,NaN],lockOrig:!1,svgDim:[NaN,NaN],lockDim:!1,svgMargin:[0,0]};function Gi(){if(Et===null)gt.outerHTML='<svg id="previewSVG"></svg>';else{let e=new XMLSerializer;gt.outerHTML=e.serializeToString(Et)}gt=document.getElementById("previewSVG")}function Br(e=!1){let t=new DOMParser;if(Et=t.parseFromString('<svg id="previewSVG" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>',"text/xml"),xt.length==0){Gi();return}let r=xt.toSorted((B,N)=>bt.indexOf(B[0])-bt.indexOf(N[0])),n,o,s=Number.MAX_VALUE,u=-Number.MAX_VALUE,f=Number.MAX_VALUE,h=-Number.MAX_VALUE,d=Et.childNodes[0];d.setAttribute("stroke-linecap","round"),d.setAttribute("stroke-linejoin","round"),d.setAttribute("stroke-width","0"),d.setAttribute("fill-rule","evenodd");let g,m,x;for([n,o]of r)m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],g=x.getAttribute("viewBox").split(" ").map(B=>Number(B)),x.childNodes.length!=0&&(s=Math.min(s,g[0]),u=Math.max(u,g[0]+g[2]),f=Math.min(f,g[1]),h=Math.max(h,g[1]+g[3]));e||((!D.lockOrig||isNaN(D.svgOrig[0]))&&(D.svgOrig[0]=s/1e3,D.svgOrig[1]=f/1e3),(!D.lockDim||isNaN(D.svgDim[0]))&&(D.svgDim[0]=(u-s)/1e3,D.svgDim[1]=(h-f)/1e3)),P0();let S=[D.svgOrig[0]-D.svgMargin[0],D.svgOrig[1]-D.svgMargin[1],D.svgDim[0]+2*D.svgMargin[0],D.svgDim[1]+2*D.svgMargin[1]].map(B=>B*1e3);d.setAttribute("viewBox",S.join(" ")),d.setAttribute("width",`${(S[2]/1e3).toFixed(3)}mm`),d.setAttribute("height",`${(S[3]/1e3).toFixed(3)}mm`);let E;D.transparent||(E=d.ownerDocument.createElement("rect"),D.blackAndWhite?E.setAttribute("fill","rgb(0,0,0)"):E.setAttribute("fill","rgb(255,255,255)"),E.setAttribute("x",S[0]),E.setAttribute("y",S[1]),E.setAttribute("width",S[2]),E.setAttribute("height",S[3]),d.appendChild(E));let R=!0;for([n,o]of r){m=t.parseFromString(o,"text/xml"),x=m.childNodes[0],g=x.getAttribute("viewBox").split(" ").map(L=>Number(L));let B="rgb("+Ui[n].slice(0,3).join(",")+")",N=Ui[n][3];for(let L of x.childNodes){if(L.tagName=="g"){const k=/translate\([-.\d]+,\s*([-.\d]+)\)/,j=L.getAttribute("transform").match(k);let F=Number(j[1]);F+=S[1]+S[3]-(g[1]+g[3]),F+=S[1]-g[1],L.setAttribute("transform",`translate(0, ${F}) scale(1, -1)`),D.blackAndWhite?(L.setAttribute("opacity",1),n==="drill"?(L.setAttribute("fill","rgb(0,0,0)"),L.setAttribute("stroke","rgb(0,0,0)")):(L.setAttribute("fill","rgb(255,255,255)"),L.setAttribute("stroke","rgb(255,255,255)"),R=!1)):(L.setAttribute("opacity",N),L.setAttribute("fill",B),L.setAttribute("stroke",B)),L.childNodes.forEach(U=>{["profile","Edge_Cuts"].includes(n)&&D.fillEdge&&(U.removeAttribute("fill"),U.setAttribute("stroke","none"))})}d.appendChild(L.cloneNode(!0))}}!D.transparent&&D.blackAndWhite&&R&&E.setAttribute("fill","rgb(255,255,255)"),Gi()}function O0(e,t="file.txt"){if(window.navigator&&window.navigator.msSaveOrOpenBlob)return window.navigator.msSaveOrOpenBlob(e);const r=window.URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),setTimeout(()=>{window.URL.revokeObjectURL(r),n.remove()},100)}async function F0(e=!1){if(e)return;let t=new XMLSerializer().serializeToString(gt),r="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(t);if(D.asSVG){let n=document.createElement("a");n.href=r,n.download="render.svg",document.body.appendChild(n),n.click(),document.body.removeChild(n)}else{let n=D.dpi/96,o=new Image,s=document.getElementById("canvas"),u=D.svgDim[0]+2*D.svgMargin[0],f=D.svgDim[1]+2*D.svgMargin[1],h=Math.floor(D.dpi*u/25.4),d=Math.floor(D.dpi*f/25.4);s.width=h,s.height=d;let g=s.getContext("2d",{alpha:D.transparent});g.scale(n,n),o.addEventListener("load",async m=>{g.drawImage(m.target,0,0,m.target.width,m.target.height),s.toBlob(async x=>{let S={pHYs:{x:Math.round(1e3*D.dpi/25.4),y:Math.round(1e3*D.dpi/25.4),units:1},tExt:{Software:"gerber2img"}},E=await Va(x,S);O0(E,"render.png")})}),o.src=r}}var nt=document.getElementById("dropZone");function k0(){nt.style.visibility="visible"}function xa(){nt.style.visibility="hidden"}window.addEventListener("dragenter",e=>{k0()});function Ea(e){e.dataTransfer.dropEffect="copy",e.preventDefault()}nt.addEventListener("dragenter",Ea);nt.addEventListener("dragover",Ea);nt.addEventListener("dragleave",e=>{xa()});nt.addEventListener("drop",e=>{if(e.preventDefault(),xa(),!e.dataTransfer.items)return;let t=[];for(let r of e.dataTransfer.files){let n;if(r.name.endsWith(".xln")||r.name.endsWith(".drl"))n="drill";else{if(!r.name.endsWith(".gbr"))continue;let s=r.name.replace(".gbr",""),u=-1;for(let f in bt)if(n=bt[f],s.endsWith(n)){u=f;break}if(u==-1)continue}let o=new Promise((s,u)=>{const f=new FileReader;f.onload=h=>{const d={encoding:"utf8",optimizePaths:!0};C0(f.result,d,(g,m)=>{s(g?null:[n,m])})},f.onerror=u,f.readAsText(r)});t.push(o)}Promise.all(t).then(r=>{xt=r,Br()})});function Ma(){let e=document.getElementById("settingsFill"),t=document.getElementById("settingsBW"),r=document.getElementById("settingsTransparent"),n=document.getElementById("settingsAsSVG"),o=document.getElementById("settingsDPI"),s=document.getElementById("settingsOrigX"),u=document.getElementById("settingsOrigY"),f=document.getElementById("settingsDimX"),h=document.getElementById("settingsDimY"),d=document.getElementById("settingsMarginX"),g=document.getElementById("settingsMarginY");D.fillEdge=e.checked,D.blackAndWhite=t.checked,D.transparent=r.checked,D.asSVG=n.checked,D.dpi=Number(o.value),D.svgMargin=[Number(d.value),Number(g.value)],D.svgOrig=[Number(s.value),Number(u.value)],D.svgDim=[Number(f.value),Number(h.value)]}function P0(){let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY"),r=document.getElementById("settingsDimX"),n=document.getElementById("settingsDimY");e.value=D.svgOrig[0],t.value=D.svgOrig[1],r.value=D.svgDim[0],n.value=D.svgDim[1]}function $0(){for(let e of["settingsFill","settingsAsSVG","settingsBW","settingsTransparent","settingsDPI","settingsOrigX","settingsOrigY","settingsDimX","settingsDimY","settingsMarginX","settingsMarginY"])document.getElementById(e).addEventListener("change",()=>{Ma(),Br(!0)})}let qt=document.getElementById("settingsLockOrig"),zt=document.getElementById("settingsLockDim");qt.addEventListener("click",()=>{let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY");D.lockOrig?(e.disabled=!1,t.disabled=!1,D.lockOrig=!1,qt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,D.lockOrig=!0,qt.innerHTML="🔒")});zt.addEventListener("click",()=>{let e=document.getElementById("settingsDimX"),t=document.getElementById("settingsDimY");D.lockDim?(e.disabled=!1,t.disabled=!1,D.lockDim=!1,zt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,D.lockDim=!0,zt.innerHTML="🔒")});document.getElementById("downloadRenderButton").addEventListener("click",async()=>{await F0(!1)});$0();Ma();xt=JSON.parse('[["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"],["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"uZojfCN5iBEs_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"uZojfCN5iBEs_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"uZojfCN5iBEs_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"uZojfCN5iBEs_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"uZojfCN5iBEs_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["F_Mask","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"28.765mm\\" height=\\"32.57mm\\" viewBox=\\"54635 -66650 28765 32570\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"rjjz4qFsGmhm_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"rjjz4qFsGmhm_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"rjjz4qFsGmhm_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"rjjz4qFsGmhm_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"rjjz4qFsGmhm_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-16\\"/></defs><g transform=\\"translate(0,-100730) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/></g></svg>"],["F_Silkscreen","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"31.927400000000002mm\\" height=\\"41.975mm\\" viewBox=\\"53940 -73040 31927.4 41975\\"><g transform=\\"translate(0,-104105) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 83026.2 -34999.533 83059.533 -34932.866 83126.2 -34866.2 83226.2 -34766.2 83259.533 -34699.533 83259.533 -34632.866 M 83192.866 -34932.866 83126.2 -34866.2 83092.866 -34799.533 83092.866 -34666.2 83126.2 -34599.533 83192.866 -34532.866 83326.2 -34499.533 83559.533 -34499.533 83692.866 -34532.866 83759.533 -34599.533 83792.866 -34666.2 83792.866 -34799.533 83759.533 -34866.2 83692.866 -34932.866 83559.533 -34966.2 83326.2 -34966.2 83192.866 -34932.866 M 83559.533 -35566.199 83092.866 -35566.199 M 83559.533 -35266.199 83192.866 -35266.199 83126.2 -35299.533 83092.866 -35366.199 83092.866 -35466.199 83126.2 -35532.866 83159.533 -35566.199 M 83126.2 -36166.199 83092.866 -36099.532 83092.866 -35966.199 83126.2 -35899.532 83192.866 -35866.199 83459.533 -35866.199 83526.2 -35899.532 83559.533 -35966.199 83559.533 -36099.532 83526.2 -36166.199 83459.533 -36199.532 83392.866 -36199.532 83326.2 -35866.199 M 83559.533 -36499.532 83092.866 -36499.532 M 83492.866 -36499.532 83526.2 -36532.866 83559.533 -36599.532 83559.533 -36699.532 83526.2 -36766.199 83459.533 -36799.532 83092.866 -36799.532 M 83559.533 -37032.865 83559.533 -37299.532 M 83792.866 -37132.865 83192.866 -37132.865 83126.2 -37166.199 83092.866 -37232.865 83092.866 -37299.532 M 83092.866 -37532.865 83559.533 -37532.865 M 83792.866 -37532.865 83759.533 -37499.532 83726.2 -37532.865 83759.533 -37566.199 83792.866 -37532.865 83726.2 -37532.865 M 83559.533 -37866.198 83092.866 -37866.198 M 83492.866 -37866.198 83526.2 -37899.532 83559.533 -37966.198 83559.533 -38066.198 83526.2 -38132.865 83459.533 -38166.198 83092.866 -38166.198 M 83459.533 -39266.198 83426.2 -39366.198 83392.866 -39399.531 83326.2 -39432.864 83226.2 -39432.864 83159.533 -39399.531 83126.2 -39366.198 83092.866 -39299.531 83092.866 -39032.864 83792.866 -39032.864 83792.866 -39266.198 83759.533 -39332.864 83726.2 -39366.198 83659.533 -39399.531 83592.866 -39399.531 83526.2 -39366.198 83492.866 -39332.864 83459.533 -39266.198 83459.533 -39032.864 M 83092.866 -39832.864 83126.2 -39766.198 83159.533 -39732.864 83226.2 -39699.531 83426.2 -39699.531 83492.866 -39732.864 83526.2 -39766.198 83559.533 -39832.864 83559.533 -39932.864 83526.2 -39999.531 83492.866 -40032.864 83426.2 -40066.198 83226.2 -40066.198 83159.533 -40032.864 83126.2 -39999.531 83092.866 -39932.864 83092.866 -39832.864 M 83092.866 -40466.197 83126.2 -40399.531 83192.866 -40366.197 83792.866 -40366.197 M 83126.2 -40699.531 83092.866 -40766.198 83092.866 -40899.531 83126.2 -40966.198 83192.866 -40999.531 83226.2 -40999.531 83292.866 -40966.198 83326.2 -40899.531 83326.2 -40799.531 83359.533 -40732.864 83426.2 -40699.531 83459.533 -40699.531 83526.2 -40732.864 83559.533 -40799.531 83559.533 -40899.531 83526.2 -40966.198 M 83126.2 -41566.198 83092.866 -41499.531 83092.866 -41366.198 83126.2 -41299.531 83192.866 -41266.198 83459.533 -41266.198 83526.2 -41299.531 83559.533 -41366.198 83559.533 -41499.531 83526.2 -41566.198 83459.533 -41599.531 83392.866 -41599.531 83326.2 -41266.198 M 83826.2 -41499.531 83726.2 -41399.531 M 83126.2 -42166.198 83092.866 -42099.531 83092.866 -41966.198 83126.2 -41899.531 83192.866 -41866.198 83459.533 -41866.198 83526.2 -41899.531 83559.533 -41966.198 83559.533 -42099.531 83526.2 -42166.198 83459.533 -42199.531 83392.866 -42199.531 83326.2 -41866.198 M 83726.2 -42999.531 83759.533 -43032.864 83792.866 -43099.531 83792.866 -43266.198 83759.533 -43332.864 83726.2 -43366.198 83659.533 -43399.531 83592.866 -43399.531 83492.866 -43366.198 83092.866 -42966.198 83092.866 -43399.531 M 83792.866 -43832.865 83792.866 -43899.531 83759.533 -43966.198 83726.2 -43999.531 83659.533 -44032.865 83526.2 -44066.198 83359.533 -44066.198 83226.2 -44032.865 83159.533 -43999.531 83126.2 -43966.198 83092.866 -43899.531 83092.866 -43832.865 83126.2 -43766.198 83159.533 -43732.865 83226.2 -43699.531 83359.533 -43666.198 83526.2 -43666.198 83659.533 -43699.531 83726.2 -43732.865 83759.533 -43766.198 83792.866 -43832.865 M 83726.2 -44332.865 83759.533 -44366.198 83792.866 -44432.865 83792.866 -44599.532 83759.533 -44666.198 83726.2 -44699.532 83659.533 -44732.865 83592.866 -44732.865 83492.866 -44699.532 83092.866 -44299.532 83092.866 -44732.865 M 83792.866 -44966.199 83792.866 -45399.532 83526.2 -45166.199 83526.2 -45266.199 83492.866 -45332.865 83459.533 -45366.199 83392.866 -45399.532 83226.2 -45399.532 83159.533 -45366.199 83126.2 -45332.865 83092.866 -45266.199 83092.866 -45066.199 83126.2 -44999.532 83159.533 -44966.199 M 78740 -69469 78740 -69215 M 80010 -69469 80010 -69215 M 78740 -69469 80010 -69469\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 81607.428 -58547.142 81893.142 -58347.142 M 81607.428 -58204.285 82207.428 -58204.285 82207.428 -58432.856 82178.857 -58489.999 82150.285 -58518.57 82093.142 -58547.142 82007.428 -58547.142 81950.285 -58518.57 81921.714 -58489.999 81893.142 -58432.856 81893.142 -58204.285 M 81636 -58775.713 81607.428 -58861.428 81607.428 -59004.285 81636 -59061.428 81664.571 -59089.999 81721.714 -59118.57 81778.857 -59118.57 81836 -59089.999 81864.571 -59061.428 81893.142 -59004.285 81921.714 -58889.999 81950.285 -58832.856 81978.857 -58804.285 82036 -58775.713 82093.142 -58775.713 82150.285 -58804.285 82178.857 -58832.856 82207.428 -58889.999 82207.428 -59032.856 82178.857 -59118.57 M 82207.428 -59289.999 82207.428 -59632.857 M 81607.428 -59461.428 82207.428 -59461.428 M 80337.428 -58604.286 80937.428 -58604.286 80337.428 -58947.143 80937.428 -58947.143 M 80394.571 -59575.714 80366 -59547.142 80337.428 -59461.428 80337.428 -59404.285 80366 -59318.571 80423.142 -59261.428 80480.285 -59232.857 80594.571 -59204.285 80680.285 -59204.285 80794.571 -59232.857 80851.714 -59261.428 80908.857 -59318.571 80937.428 -59404.285 80937.428 -59461.428 80908.857 -59547.142 80880.285 -59575.714\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 70707.742 -65522.999 69979.171 -65522.999 69893.457 -65565.856 69850.6 -65608.714 69807.742 -65694.428 69807.742 -65865.856 69850.6 -65951.571 69893.457 -65994.428 69979.171 -66037.285 70707.742 -66037.285 M 70064.885 -66422.999 70064.885 -66851.571 M 69807.742 -66337.285 70707.742 -66637.285 69807.742 -66937.285 M 69807.742 -67751.571 70236.314 -67451.571 M 69807.742 -67237.285 70707.742 -67237.285 70707.742 -67580.142 70664.885 -67665.857 70622.028 -67708.714 70536.314 -67751.571 70407.742 -67751.571 70322.028 -67708.714 70279.171 -67665.857 70236.314 -67580.142 70236.314 -67237.285 M 70707.742 -68008.714 70707.742 -68523 M 69807.742 -68265.857 70707.742 -68265.857 M 70150.6 -68822.999 70150.6 -69508.714 69979.171 -69337.285 M 70150.6 -69508.714 70322.028 -69337.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 78368.857 -67767.142 78397.428 -67710 78397.428 -67624.285 78368.857 -67538.571 78311.714 -67481.428 78254.571 -67452.857 78140.285 -67424.285 78054.571 -67424.285 77940.285 -67452.857 77883.142 -67481.428 77826 -67538.571 77797.428 -67624.285 77797.428 -67681.428 77826 -67767.142 77854.571 -67795.714 78054.571 -67795.714 78054.571 -67681.428 M 77797.428 -68052.857 78397.428 -68052.857 77797.428 -68395.714 78397.428 -68395.714 M 77797.428 -68681.428 78397.428 -68681.428 78397.428 -68824.285 78368.857 -68909.999 78311.714 -68967.142 78254.571 -68995.713 78140.285 -69024.285 78054.571 -69024.285 77940.285 -68995.713 77883.142 -68967.142 77826 -68909.999 77797.428 -68824.285 77797.428 -68681.428 M 77127.428 -67367.142 76527.428 -67567.142 77127.428 -67767.142 M 76584.571 -68310 76556 -68281.428 76527.428 -68195.714 76527.428 -68138.571 76556 -68052.857 76613.142 -67995.714 76670.285 -67967.143 76784.571 -67938.571 76870.285 -67938.571 76984.571 -67967.143 77041.714 -67995.714 77098.857 -68052.857 77127.428 -68138.571 77127.428 -68195.714 77098.857 -68281.428 77070.285 -68310 M 76584.571 -68910 76556 -68881.428 76527.428 -68795.714 76527.428 -68738.571 76556 -68652.857 76613.142 -68595.714 76670.285 -68567.143 76784.571 -68538.571 76870.285 -68538.571 76984.571 -68567.143 77041.714 -68595.714 77098.857 -68652.857 77127.428 -68738.571 77127.428 -68795.714 77098.857 -68881.428 77070.285 -68910\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 85107.4 -34550.333 85074.066 -34650.333 85074.066 -34817 85107.4 -34883.666 85140.733 -34917 85207.4 -34950.333 85274.066 -34950.333 85340.733 -34917 85374.066 -34883.666 85407.4 -34817 85440.733 -34683.666 85474.066 -34617 85507.4 -34583.666 85574.066 -34550.333 85640.733 -34550.333 85707.4 -34583.666 85740.733 -34617 85774.066 -34683.666 85774.066 -34850.333 85740.733 -34950.333 M 85774.066 -35183.667 85074.066 -35350.333 85574.066 -35483.667 85074.066 -35617 85774.066 -35783.667 M 85074.066 -36050.333 85774.066 -36050.333 85774.066 -36217 85740.733 -36317 85674.066 -36383.667 85607.4 -36417 85474.066 -36450.333 85374.066 -36450.333 85240.733 -36417 85174.066 -36383.667 85107.4 -36317 85074.066 -36217 85074.066 -36050.333 M 85807.4 -37250.333 84907.4 -36650.333 M 85774.066 -37483.666 85207.4 -37483.666 85140.733 -37517 85107.4 -37550.333 85074.066 -37617 85074.066 -37750.333 85107.4 -37817 85140.733 -37850.333 85207.4 -37883.666 85774.066 -37883.666 M 85274.066 -38183.666 85274.066 -38516.999 M 85074.066 -38116.999 85774.066 -38350.333 85074.066 -38583.666 M 85074.066 -39216.999 85407.4 -38983.666 M 85074.066 -38816.999 85774.066 -38816.999 85774.066 -39083.666 85740.733 -39150.333 85707.4 -39183.666 85640.733 -39216.999 85540.733 -39216.999 85474.066 -39183.666 85440.733 -39150.333 85407.4 -39083.666 85407.4 -38816.999 M 85774.066 -39416.999 85774.066 -39816.999 M 85074.066 -39616.999 85774.066 -39616.999 M 85074.066 -40883.665 85440.733 -40883.665 85507.4 -40850.332 85540.733 -40783.665 85540.733 -40650.332 85507.4 -40583.665 M 85107.4 -40883.665 85074.066 -40816.999 85074.066 -40650.332 85107.4 -40583.665 85174.066 -40550.332 85240.733 -40550.332 85307.4 -40583.665 85340.733 -40650.332 85340.733 -40816.999 85374.066 -40883.665 M 85074.066 -41516.998 85774.066 -41516.998 M 85107.4 -41516.998 85074.066 -41450.332 85074.066 -41316.998 85107.4 -41250.332 85140.733 -41216.998 85207.4 -41183.665 85407.4 -41183.665 85474.066 -41216.998 85507.4 -41250.332 85540.733 -41316.998 85540.733 -41450.332 85507.4 -41516.998 M 85074.066 -42150.331 85440.733 -42150.331 85507.4 -42116.998 85540.733 -42050.331 85540.733 -41916.998 85507.4 -41850.331 M 85107.4 -42150.331 85074.066 -42083.665 85074.066 -41916.998 85107.4 -41850.331 85174.066 -41816.998 85240.733 -41816.998 85307.4 -41850.331 85340.733 -41916.998 85340.733 -42083.665 85374.066 -42150.331 M 85540.733 -42483.664 84840.733 -42483.664 M 85507.4 -42483.664 85540.733 -42550.331 85540.733 -42683.664 85507.4 -42750.331 85474.066 -42783.664 85407.4 -42816.998 85207.4 -42816.998 85140.733 -42783.664 85107.4 -42750.331 85074.066 -42683.664 85074.066 -42550.331 85107.4 -42483.664 M 85540.733 -43016.997 85540.733 -43283.664 M 85774.066 -43116.997 85174.066 -43116.997 85107.4 -43150.331 85074.066 -43216.997 85074.066 -43283.664 M 85107.4 -43783.664 85074.066 -43716.997 85074.066 -43583.664 85107.4 -43516.997 85174.066 -43483.664 85440.733 -43483.664 85507.4 -43516.997 85540.733 -43583.664 85540.733 -43716.997 85507.4 -43783.664 85440.733 -43816.997 85374.066 -43816.997 85307.4 -43483.664 M 85074.066 -44116.997 85540.733 -44116.997 M 85407.4 -44116.997 85474.066 -44150.331 85507.4 -44183.664 85540.733 -44250.331 85540.733 -44316.997\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 77854.571 -58490 77826 -58461.428 77797.428 -58375.714 77797.428 -58318.571 77826 -58232.857 77883.142 -58175.714 77940.285 -58147.143 78054.571 -58118.571 78140.285 -58118.571 78254.571 -58147.143 78311.714 -58175.714 78368.857 -58232.857 78397.428 -58318.571 78397.428 -58375.714 78368.857 -58461.428 78340.285 -58490 M 77797.428 -59032.857 77797.428 -58747.143 78397.428 -58747.143 M 77797.428 -59232.857 78397.428 -59232.857 M 77797.428 -59575.714 78140.285 -59318.571 M 78397.428 -59575.714 78054.571 -59232.857 M 79638.857 -67767.142 79667.428 -67710 79667.428 -67624.285 79638.857 -67538.571 79581.714 -67481.428 79524.571 -67452.857 79410.285 -67424.285 79324.571 -67424.285 79210.285 -67452.857 79153.142 -67481.428 79096 -67538.571 79067.428 -67624.285 79067.428 -67681.428 79096 -67767.142 79124.571 -67795.714 79324.571 -67795.714 79324.571 -67681.428 M 79067.428 -68052.857 79667.428 -68052.857 79067.428 -68395.714 79667.428 -68395.714 M 79067.428 -68681.428 79667.428 -68681.428 79667.428 -68824.285 79638.857 -68909.999 79581.714 -68967.142 79524.571 -68995.713 79410.285 -69024.285 79324.571 -69024.285 79210.285 -68995.713 79153.142 -68967.142 79096 -68909.999 79067.428 -68824.285 79067.428 -68681.428 M 63157.428 -58718.57 63157.428 -59061.428 M 62557.428 -58889.999 63157.428 -58889.999 M 63157.428 -59204.285 62557.428 -59604.285 M 63157.428 -59604.285 62557.428 -59204.285\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 66394 -43156.333 66860.666 -43856.333 M 66860.666 -43156.333 66394 -43856.333 M 67127.333 -43856.333 67127.333 -43156.333 M 67427.333 -43656.333 67760.666 -43656.333 M 67360.666 -43856.333 67594 -43156.333 67827.333 -43856.333 M 68194 -43156.333 68327.333 -43156.333 68394 -43189.666 68460.666 -43256.333 68494 -43389.666 68494 -43623 68460.666 -43756.333 68394 -43823 68327.333 -43856.333 68194 -43856.333 68127.333 -43823 68060.666 -43756.333 68027.333 -43623 68027.333 -43389.666 68060.666 -43256.333 68127.333 -43189.666 68194 -43156.333 M 69727.332 -43856.333 69493.999 -43523 M 69327.332 -43856.333 69327.332 -43156.333 69593.999 -43156.333 69660.666 -43189.666 69693.999 -43223 69727.332 -43289.666 69727.332 -43389.666 69693.999 -43456.333 69660.666 -43489.666 69593.999 -43523 69327.332 -43523 M 70027.332 -43856.333 70027.332 -43156.333 70293.999 -43156.333 70360.666 -43189.666 70393.999 -43223 70427.332 -43289.666 70427.332 -43389.666 70393.999 -43456.333 70360.666 -43489.666 70293.999 -43523 70027.332 -43523 M 70693.999 -43223 70727.332 -43189.666 70793.999 -43156.333 70960.666 -43156.333 71027.332 -43189.666 71060.666 -43223 71093.999 -43289.666 71093.999 -43356.333 71060.666 -43456.333 70660.666 -43856.333 71093.999 -43856.333 M 71527.333 -43156.333 71593.999 -43156.333 71660.666 -43189.666 71693.999 -43223 71727.333 -43289.666 71760.666 -43423 71760.666 -43589.666 71727.333 -43723 71693.999 -43789.666 71660.666 -43823 71593.999 -43856.333 71527.333 -43856.333 71460.666 -43823 71427.333 -43789.666 71393.999 -43723 71360.666 -43589.666 71360.666 -43423 71393.999 -43289.666 71427.333 -43223 71460.666 -43189.666 71527.333 -43156.333 M 72360.666 -43389.666 72360.666 -43856.333 M 72194 -43123 72027.333 -43623 72460.666 -43623 M 72860.667 -43156.333 72927.333 -43156.333 72994 -43189.666 73027.333 -43223 73060.667 -43289.666 73094 -43423 73094 -43589.666 73060.667 -43723 73027.333 -43789.666 72994 -43823 72927.333 -43856.333 72860.667 -43856.333 72794 -43823 72760.667 -43789.666 72727.333 -43723 72694 -43589.666 72694 -43423 72727.333 -43289.666 72760.667 -43223 72794 -43189.666 72860.667 -43156.333\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 55508.857 -58318.571 55537.428 -58261.429 55537.428 -58175.714 55508.857 -58090 55451.714 -58032.857 55394.571 -58004.286 55280.285 -57975.714 55194.571 -57975.714 55080.285 -58004.286 55023.142 -58032.857 54966 -58090 54937.428 -58175.714 54937.428 -58232.857 54966 -58318.571 54994.571 -58347.143 55194.571 -58347.143 55194.571 -58232.857 M 54937.428 -58604.286 55537.428 -58604.286 54937.428 -58947.143 55537.428 -58947.143 M 54937.428 -59232.857 55537.428 -59232.857 55537.428 -59375.714 55508.857 -59461.428 55451.714 -59518.571 55394.571 -59547.142 55280.285 -59575.714 55194.571 -59575.714 55080.285 -59547.142 55023.142 -59518.571 54966 -59461.428 54937.428 -59375.714 54937.428 -59232.857\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 72924 -61721.428 72881.142 -61850 72881.142 -62064.285 72924 -62150 72966.857 -62192.857 73052.571 -62235.714 73138.285 -62235.714 73224 -62192.857 73266.857 -62150 73309.714 -62064.285 73352.571 -61892.857 73395.428 -61807.142 73438.285 -61764.285 73524 -61721.428 73609.714 -61721.428 73695.428 -61764.285 73738.285 -61807.142 73781.142 -61892.857 73781.142 -62107.142 73738.285 -62235.714 M 73781.142 -62535.714 72881.142 -62750 73524 -62921.428 72881.142 -63092.857 73781.142 -63307.143 M 72881.142 -63649.999 73781.142 -63649.999 73781.142 -63864.285 73738.285 -63992.856 73652.571 -64078.571 73566.857 -64121.428 73395.428 -64164.285 73266.857 -64164.285 73095.428 -64121.428 73009.714 -64078.571 72924 -63992.856 72881.142 -63864.285 72881.142 -63649.999 M 73224 -64549.999 73224 -65235.714 73052.571 -65064.285 M 73224 -65235.714 73395.428 -65064.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 65097.428 -59004.285 65383.142 -58804.285 M 65097.428 -58661.428 65697.428 -58661.428 65697.428 -58889.999 65668.857 -58947.142 65640.285 -58975.713 65583.142 -59004.285 65497.428 -59004.285 65440.285 -58975.713 65411.714 -58947.142 65383.142 -58889.999 65383.142 -58661.428 M 65697.428 -59204.285 65097.428 -59604.285 M 65697.428 -59604.285 65097.428 -59204.285 M 79096 -57918.571 79067.428 -58004.286 79067.428 -58147.143 79096 -58204.286 79124.571 -58232.857 79181.714 -58261.428 79238.857 -58261.428 79296 -58232.857 79324.571 -58204.286 79353.142 -58147.143 79381.714 -58032.857 79410.285 -57975.714 79438.857 -57947.143 79496 -57918.571 79553.142 -57918.571 79610.285 -57947.143 79638.857 -57975.714 79667.428 -58032.857 79667.428 -58175.714 79638.857 -58261.428 M 79667.428 -58461.429 79067.428 -58604.286 79496 -58718.572 79067.428 -58832.857 79667.428 -58975.715 M 79667.428 -59318.571 79667.428 -59432.857 79638.857 -59490 79581.714 -59547.143 79467.428 -59575.714 79267.428 -59575.714 79153.142 -59547.143 79096 -59490 79067.428 -59432.857 79067.428 -59318.571 79096 -59261.429 79153.142 -59204.286 79267.428 -59175.714 79467.428 -59175.714 79581.714 -59204.286 79638.857 -59261.429 79667.428 -59318.571 M 82178.857 -67767.142 82207.428 -67710 82207.428 -67624.285 82178.857 -67538.571 82121.714 -67481.428 82064.571 -67452.857 81950.285 -67424.285 81864.571 -67424.285 81750.285 -67452.857 81693.142 -67481.428 81636 -67538.571 81607.428 -67624.285 81607.428 -67681.428 81636 -67767.142 81664.571 -67795.714 81864.571 -67795.714 81864.571 -67681.428 M 81607.428 -68052.857 82207.428 -68052.857 81607.428 -68395.714 82207.428 -68395.714 M 81607.428 -68681.428 82207.428 -68681.428 82207.428 -68824.285 82178.857 -68909.999 82121.714 -68967.142 82064.571 -68995.713 81950.285 -69024.285 81864.571 -69024.285 81750.285 -68995.713 81693.142 -68967.142 81636 -68909.999 81607.428 -68824.285 81607.428 -68681.428 M 76527.428 -58318.572 77127.428 -58318.572 77127.428 -58461.429 77098.857 -58547.143 77041.714 -58604.286 76984.571 -58632.857 76870.285 -58661.429 76784.571 -58661.429 76670.285 -58632.857 76613.142 -58604.286 76556 -58547.143 76527.428 -58461.429 76527.428 -58318.572 M 76527.428 -58918.572 77127.428 -58918.572 M 77127.428 -59318.571 77127.428 -59432.857 77098.857 -59490 77041.714 -59547.143 76927.428 -59575.714 76727.428 -59575.714 76613.142 -59547.143 76556 -59490 76527.428 -59432.857 76527.428 -59318.571 76556 -59261.429 76613.142 -59204.286 76727.428 -59175.714 76927.428 -59175.714 77041.714 -59204.286 77098.857 -59261.429 77127.428 -59318.571 M 67637.428 -58547.142 67923.142 -58347.142 M 67637.428 -58204.285 68237.428 -58204.285 68237.428 -58432.856 68208.857 -58489.999 68180.285 -58518.57 68123.142 -58547.142 68037.428 -58547.142 67980.285 -58518.57 67951.714 -58489.999 67923.142 -58432.856 67923.142 -58204.285 M 68237.428 -58718.57 68237.428 -59061.428 M 67637.428 -58889.999 68237.428 -58889.999 M 67666 -59232.856 67637.428 -59318.571 67637.428 -59461.428 67666 -59518.571 67694.571 -59547.142 67751.714 -59575.713 67808.857 -59575.713 67866 -59547.142 67894.571 -59518.571 67923.142 -59461.428 67951.714 -59347.142 67980.285 -59289.999 68008.857 -59261.428 68066 -59232.856 68123.142 -59232.856 68180.285 -59261.428 68208.857 -59289.999 68237.428 -59347.142 68237.428 -59489.999 68208.857 -59575.713 M 60617.428 -59032.856 60617.428 -58747.142 60331.714 -58718.57 60360.285 -58747.142 60388.857 -58804.285 60388.857 -58947.142 60360.285 -59004.285 60331.714 -59032.856 60274.571 -59061.427 60131.714 -59061.427 60074.571 -59032.856 60046 -59004.285 60017.428 -58947.142 60017.428 -58804.285 60046 -58747.142 60074.571 -58718.57 M 60617.428 -59232.856 60017.428 -59432.856 60617.428 -59632.856 M 57534.571 -58547.142 57506 -58518.57 57477.428 -58432.856 57477.428 -58375.713 57506 -58289.999 57563.142 -58232.856 57620.285 -58204.285 57734.571 -58175.713 57820.285 -58175.713 57934.571 -58204.285 57991.714 -58232.856 58048.857 -58289.999 58077.428 -58375.713 58077.428 -58432.856 58048.857 -58518.57 58020.285 -58547.142 M 58077.428 -58718.57 58077.428 -59061.428 M 57477.428 -58889.999 58077.428 -58889.999 M 57506 -59232.856 57477.428 -59318.571 57477.428 -59461.428 57506 -59518.571 57534.571 -59547.142 57591.714 -59575.713 57648.857 -59575.713 57706 -59547.142 57734.571 -59518.571 57763.142 -59461.428 57791.714 -59347.142 57820.285 -59289.999 57848.857 -59261.428 57906 -59232.856 57963.142 -59232.856 58020.285 -59261.428 58048.857 -59289.999 58077.428 -59347.142 58077.428 -59489.999 58048.857 -59575.713 M 80337.428 -67452.857 80937.428 -67452.857 M 80337.428 -67795.714 80680.285 -67538.571 M 80937.428 -67795.714 80594.571 -67452.857 M 80651.714 -68052.857 80651.714 -68252.857 M 80337.428 -68338.571 80337.428 -68052.857 80937.428 -68052.857 80937.428 -68338.571 M 80623.142 -68709.999 80337.428 -68709.999 M 80937.428 -68509.999 80623.142 -68709.999 80937.428 -68909.999 M 61326.666 -65663.833 61326.666 -66163.833 61293.333 -66263.833 61226.666 -66330.5 61126.666 -66363.833 61060 -66363.833 M 61626.666 -65730.5 61659.999 -65697.166 61726.666 -65663.833 61893.333 -65663.833 61959.999 -65697.166 61993.333 -65730.5 62026.666 -65797.166 62026.666 -65863.833 61993.333 -65963.833 61593.333 -66363.833 62026.666 -66363.833 M 84338.333 -48583.833 84105 -48250.5 M 83938.333 -48583.833 83938.333 -47883.833 84205 -47883.833 84271.667 -47917.166 84305 -47950.5 84338.333 -48017.166 84338.333 -48117.166 84305 -48183.833 84271.667 -48217.166 84205 -48250.5 83938.333 -48250.5 M 84571.667 -47883.833 85005 -47883.833 84771.667 -48150.5 84871.667 -48150.5 84938.333 -48183.833 84971.667 -48217.166 85005 -48283.833 85005 -48450.5 84971.667 -48517.166 84938.333 -48550.5 84871.667 -48583.833 84671.667 -48583.833 84605 -48550.5 84571.667 -48517.166 M 84371.666 -53663.833 83971.666 -53663.833 M 84171.666 -53663.833 84171.666 -52963.833 84104.999 -53063.833 84038.333 -53130.5 83971.666 -53163.833 M 84671.666 -53663.833 84671.666 -52963.833 M 84738.333 -53397.166 84938.333 -53663.833 M 84938.333 -53197.166 84671.666 -53463.833 M 82947.733 -55645.033 82947.733 -54945.033 83114.4 -54945.033 83214.4 -54978.366 83281.067 -55045.033 83314.4 -55111.7 83347.733 -55245.033 83347.733 -55345.033 83314.4 -55478.366 83281.067 -55545.033 83214.4 -55611.7 83114.4 -55645.033 82947.733 -55645.033 M 83614.4 -55011.7 83647.733 -54978.366 83714.4 -54945.033 83881.067 -54945.033 83947.733 -54978.366 83981.067 -55011.7 84014.4 -55078.366 84014.4 -55145.033 83981.067 -55245.033 83581.067 -55645.033 84014.4 -55645.033 M 56938.133 -55594.233 56938.133 -54894.233 57104.8 -54894.233 57204.8 -54927.566 57271.467 -54994.233 57304.8 -55060.9 57338.133 -55194.233 57338.133 -55294.233 57304.8 -55427.566 57271.467 -55494.233 57204.8 -55560.9 57104.8 -55594.233 56938.133 -55594.233 M 58004.8 -55594.233 57604.8 -55594.233 M 57804.8 -55594.233 57804.8 -54894.233 57738.133 -54994.233 57671.467 -55060.9 57604.8 -55094.233 M 73543.333 -55568.833 73310 -55235.5 M 73143.333 -55568.833 73143.333 -54868.833 73410 -54868.833 73476.667 -54902.166 73510 -54935.5 73543.333 -55002.166 73543.333 -55102.166 73510 -55168.833 73476.667 -55202.166 73410 -55235.5 73143.333 -55235.5 M 73810 -54935.5 73843.333 -54902.166 73910 -54868.833 74076.667 -54868.833 74143.333 -54902.166 74176.667 -54935.5 74210 -55002.166 74210 -55068.833 74176.667 -55168.833 73776.667 -55568.833 74210 -55568.833 M 73576.666 -56838.833 73176.666 -56838.833 M 73376.666 -56838.833 73376.666 -56138.833 73309.999 -56238.833 73243.333 -56305.5 73176.666 -56338.833 M 73876.666 -56838.833 73876.666 -56138.833 M 73943.333 -56572.166 74143.333 -56838.833 M 74143.333 -56372.166 73876.666 -56638.833 M 66721.5 -33484.476 66697.69 -33555.904 66697.69 -33674.952 66721.5 -33722.571 66745.309 -33746.38 66792.928 -33770.19 66840.547 -33770.19 66888.166 -33746.38 66911.976 -33722.571 66935.785 -33674.952 66959.595 -33579.714 66983.404 -33532.095 67007.214 -33508.285 67054.833 -33484.476 67102.452 -33484.476 67150.071 -33508.285 67173.88 -33532.095 67197.69 -33579.714 67197.69 -33698.761 67173.88 -33770.19 M 67197.69 -33936.856 66697.69 -34055.904 67054.833 -34151.142 66697.69 -34246.38 67197.69 -34365.428 M 66697.69 -34555.904 67197.69 -34555.904 67197.69 -34674.952 67173.88 -34746.38 67126.261 -34793.999 67078.642 -34817.809 66983.404 -34841.618 66911.976 -34841.618 66816.738 -34817.809 66769.119 -34793.999 66721.5 -34746.38 66697.69 -34674.952 66697.69 -34555.904 M 66697.69 -35055.904 67197.69 -35055.904 M 67197.69 -35389.237 67197.69 -35484.475 67173.88 -35532.094 67126.261 -35579.713 67031.023 -35603.523 66864.357 -35603.523 66769.119 -35579.713 66721.5 -35532.094 66697.69 -35484.475 66697.69 -35389.237 66721.5 -35341.618 66769.119 -35293.999 66864.357 -35270.19 67031.023 -35270.19 67126.261 -35293.999 67173.88 -35341.618 67197.69 -35389.237 M 72639.88 -51689.047 72663.69 -51641.428 72663.69 -51569.999 72639.88 -51498.571 72592.261 -51450.952 72544.642 -51427.142 72449.404 -51403.333 72377.976 -51403.333 72282.738 -51427.142 72235.119 -51450.952 72187.5 -51498.571 72163.69 -51569.999 72163.69 -51617.618 72187.5 -51689.047 72211.309 -51712.856 72377.976 -51712.856 72377.976 -51617.618 M 72163.69 -51927.142 72663.69 -51927.142 72163.69 -52212.856 72663.69 -52212.856 M 72163.69 -52450.952 72663.69 -52450.952 72663.69 -52570 72639.88 -52641.428 72592.261 -52689.047 72544.642 -52712.857 72449.404 -52736.666 72377.976 -52736.666 72282.738 -52712.857 72235.119 -52689.047 72187.5 -52641.428 72163.69 -52570 72163.69 -52450.952 M 67583.69 -51522.381 67083.69 -51689.047 67583.69 -51855.714 M 67083.69 -52022.38 67583.69 -52022.38 M 67083.69 -52260.475 67583.69 -52260.475 67083.69 -52546.189 67583.69 -52546.189 M 66697.69 -36484.809 66935.785 -36318.143 M 66697.69 -36199.095 67197.69 -36199.095 67197.69 -36389.571 67173.88 -36437.19 67150.071 -36461 67102.452 -36484.809 67031.023 -36484.809 66983.404 -36461 66959.595 -36437.19 66935.785 -36389.571 66935.785 -36199.095 M 66959.595 -36699.095 66959.595 -36865.762 M 66697.69 -36937.19 66697.69 -36699.095 67197.69 -36699.095 67197.69 -36937.19 M 66721.5 -37127.667 66697.69 -37199.095 66697.69 -37318.143 66721.5 -37365.762 66745.309 -37389.571 66792.928 -37413.381 66840.547 -37413.381 66888.166 -37389.571 66911.976 -37365.762 66935.785 -37318.143 66959.595 -37222.905 66983.404 -37175.286 67007.214 -37151.476 67054.833 -37127.667 67102.452 -37127.667 67150.071 -37151.476 67173.88 -37175.286 67197.69 -37222.905 67197.69 -37341.952 67173.88 -37413.381 M 66959.595 -37627.666 66959.595 -37794.333 M 66697.69 -37865.761 66697.69 -37627.666 67197.69 -37627.666 67197.69 -37865.761 M 67197.69 -38008.619 67197.69 -38294.333 M 66697.69 -38151.476 67197.69 -38151.476 M 72436.5 -33540.048 72412.69 -33611.476 72412.69 -33730.524 72436.5 -33778.143 72460.309 -33801.952 72507.928 -33825.762 72555.547 -33825.762 72603.166 -33801.952 72626.976 -33778.143 72650.785 -33730.524 72674.595 -33635.286 72698.404 -33587.667 72722.214 -33563.857 72769.833 -33540.048 72817.452 -33540.048 72865.071 -33563.857 72888.88 -33587.667 72912.69 -33635.286 72912.69 -33754.333 72888.88 -33825.762 M 72912.69 -33992.428 72412.69 -34111.476 72769.833 -34206.714 72412.69 -34301.952 72912.69 -34421 M 72460.309 -34897.19 72436.5 -34873.381 72412.69 -34801.952 72412.69 -34754.333 72436.5 -34682.905 72484.119 -34635.286 72531.738 -34611.476 72626.976 -34587.667 72698.404 -34587.667 72793.642 -34611.476 72841.261 -34635.286 72888.88 -34682.905 72912.69 -34754.333 72912.69 -34801.952 72888.88 -34873.381 72865.071 -34897.19 M 72412.69 -35349.571 72412.69 -35111.476 72912.69 -35111.476 M 72412.69 -35516.238 72912.69 -35516.238 M 72412.69 -35801.952 72698.404 -35587.667 M 72912.69 -35801.952 72626.976 -35516.238 M 72888.88 -36957.047 72912.69 -36909.428 72912.69 -36837.999 72888.88 -36766.571 72841.261 -36718.952 72793.642 -36695.142 72698.404 -36671.333 72626.976 -36671.333 72531.738 -36695.142 72484.119 -36718.952 72436.5 -36766.571 72412.69 -36837.999 72412.69 -36885.618 72436.5 -36957.047 72460.309 -36980.856 72626.976 -36980.856 72626.976 -36885.618 M 72412.69 -37195.142 72912.69 -37195.142 72412.69 -37480.856 72912.69 -37480.856 M 72412.69 -37718.952 72912.69 -37718.952 72912.69 -37838 72888.88 -37909.428 72841.261 -37957.047 72793.642 -37980.857 72698.404 -38004.666 72626.976 -38004.666 72531.738 -37980.857 72484.119 -37957.047 72436.5 -37909.428 72412.69 -37838 72412.69 -37718.952 M 55763.333 -43503.833 55530 -43170.5 M 55363.333 -43503.833 55363.333 -42803.833 55630 -42803.833 55696.667 -42837.166 55730 -42870.5 55763.333 -42937.166 55763.333 -43037.166 55730 -43103.833 55696.667 -43137.166 55630 -43170.5 55363.333 -43170.5 M 56430 -43503.833 56030 -43503.833 M 56230 -43503.833 56230 -42803.833 56163.333 -42903.833 56096.667 -42970.5 56030 -43003.833 M 55695.066 -48710.833 55295.066 -48710.833 M 55495.066 -48710.833 55495.066 -48010.833 55428.399 -48110.833 55361.733 -48177.5 55295.066 -48210.833 M 55995.066 -48710.833 55995.066 -48010.833 M 56061.733 -48444.166 56261.733 -48710.833 M 56261.733 -48244.166 55995.066 -48510.833 M 79141.666 -63123.833 79141.666 -63623.833 79108.333 -63723.833 79041.666 -63790.5 78941.666 -63823.833 78875 -63823.833 M 79841.666 -63823.833 79441.666 -63823.833 M 79641.666 -63823.833 79641.666 -63123.833 79574.999 -63223.833 79508.333 -63290.5 79441.666 -63323.833\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 69240 -60280 69240 -61550 M 68224 -63328 67716 -63328 67716 -64090 M 65684 -63328 65176 -63328 65176 -64090 M 63144 -63328 62636 -63328 62636 -64090 M 60604 -63328 60096 -63328 60096 -64090 M 58064 -63328 57556 -63328 57556 -64090 M 55524 -63328 55016 -63328 55016 -64090 M 68224 -64090 68224 -63328 M 65684 -64090 65684 -63328 M 63144 -64090 63144 -63328 M 60604 -64090 60604 -63328 M 58064 -64090 58064 -63328 M 55524 -64090 55524 -63328 M 69240 -64090 54000 -64090 54000 -72980 69240 -72980 69240 -64090 M 83620 -49800 83620 -51800 M 81480 -51800 81480 -49800 M 82475 -56830 82475 -54930 77775 -54930 M 82475 -56830 77775 -56830 M 64695 -56830 64695 -54930 59995 -54930 M 64695 -56830 59995 -56830 M 70215 -56950 68215 -56950 M 68215 -54810 70215 -54810 M 60962.5 -52461 60962.5 -33919 A 1269.999 1269.999 0 0 0 62232.5 -32649 L 77472.5 -32649 A 1270 1270 0 0 0 78742.5 -33919 L 78742.5 -52461 A 1270 1270 0 0 0 77472.5 -53731 L 62232.5 -53731 A 1269.999 1269.999 0 0 0 60962.5 -52461 M 65352.5 -32649 74352.5 -32649 74352.5 -31125 65352.5 -31125 65352.5 -32649 M 56715 -46720 56715 -44720 M 58855 -44720 58855 -46720 M 82545 -60410 82545 -61735 84455 -61735 84455 -65265 82545 -65265 M 76205 -61735 74295 -61735 74295 -65265 76205 -65265\\" fill=\\"none\\" stroke-width=\\"120\\"/></g></svg>"]]');Br();
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function r(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(o){if(o.ep)return;o.ep=!0;const s=r(o);fetch(o.href,s)}})();var he=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function hr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ea(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function a(){return this instanceof a?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}),r}var jn={exports:{}},de=jn.exports={},Be,Ie;function Wt(){throw new Error("setTimeout has not been defined")}function Ht(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Be=setTimeout:Be=Wt}catch{Be=Wt}try{typeof clearTimeout=="function"?Ie=clearTimeout:Ie=Ht}catch{Ie=Ht}})();function zn(e){if(Be===setTimeout)return setTimeout(e,0);if((Be===Wt||!Be)&&setTimeout)return Be=setTimeout,setTimeout(e,0);try{return Be(e,0)}catch{try{return Be.call(null,e,0)}catch{return Be.call(this,e,0)}}}function xa(e){if(Ie===clearTimeout)return clearTimeout(e);if((Ie===Ht||!Ie)&&clearTimeout)return Ie=clearTimeout,clearTimeout(e);try{return Ie(e)}catch{try{return Ie.call(null,e)}catch{return Ie.call(this,e)}}}var Ce=[],Je=!1,He,ct=-1;function Ra(){!Je||!He||(Je=!1,He.length?Ce=He.concat(Ce):ct=-1,Ce.length&&qn())}function qn(){if(!Je){var e=zn(Ra);Je=!0;for(var t=Ce.length;t;){for(He=Ce,Ce=[];++ct<t;)He&&He[ct].run();ct=-1,t=Ce.length}He=null,Je=!1,xa(e)}}de.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];Ce.push(new Gn(e,t)),Ce.length===1&&!Je&&zn(qn)};function Gn(e,t){this.fun=e,this.array=t}Gn.prototype.run=function(){this.fun.apply(null,this.array)};de.title="browser";de.browser=!0;de.env={};de.argv=[];de.version="";de.versions={};function Fe(){}de.on=Fe;de.addListener=Fe;de.once=Fe;de.off=Fe;de.removeListener=Fe;de.removeAllListeners=Fe;de.emit=Fe;de.prependListener=Fe;de.prependOnceListener=Fe;de.listeners=function(e){return[]};de.binding=function(e){throw new Error("process.binding is not supported")};de.cwd=function(){return"/"};de.chdir=function(e){throw new Error("process.chdir is not supported")};de.umask=function(){return 0};var Sa=jn.exports;const Ma=hr(Sa);var rt={},Rt={};Rt.byteLength=Oa;Rt.toByteArray=Ia;Rt.fromByteArray=Ca;var Le=[],Se=[],Ta=typeof Uint8Array<"u"?Uint8Array:Array,Lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Ve=0,Aa=Lt.length;Ve<Aa;++Ve)Le[Ve]=Lt[Ve],Se[Lt.charCodeAt(Ve)]=Ve;Se["-".charCodeAt(0)]=62;Se["_".charCodeAt(0)]=63;function Wn(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var a=r===t?0:4-r%4;return[r,a]}function Oa(e){var t=Wn(e),r=t[0],a=t[1];return(r+a)*3/4-a}function Ba(e,t,r){return(t+r)*3/4-r}function Ia(e){var t,r=Wn(e),a=r[0],o=r[1],s=new Ta(Ba(e,a,o)),l=0,f=o>0?a-4:a,h;for(h=0;h<f;h+=4)t=Se[e.charCodeAt(h)]<<18|Se[e.charCodeAt(h+1)]<<12|Se[e.charCodeAt(h+2)]<<6|Se[e.charCodeAt(h+3)],s[l++]=t>>16&255,s[l++]=t>>8&255,s[l++]=t&255;return o===2&&(t=Se[e.charCodeAt(h)]<<2|Se[e.charCodeAt(h+1)]>>4,s[l++]=t&255),o===1&&(t=Se[e.charCodeAt(h)]<<10|Se[e.charCodeAt(h+1)]<<4|Se[e.charCodeAt(h+2)]>>2,s[l++]=t>>8&255,s[l++]=t&255),s}function La(e){return Le[e>>18&63]+Le[e>>12&63]+Le[e>>6&63]+Le[e&63]}function Na(e,t,r){for(var a,o=[],s=t;s<r;s+=3)a=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),o.push(La(a));return o.join("")}function Ca(e){for(var t,r=e.length,a=r%3,o=[],s=16383,l=0,f=r-a;l<f;l+=s)o.push(Na(e,l,l+s>f?f:l+s));return a===1?(t=e[r-1],o.push(Le[t>>2]+Le[t<<4&63]+"==")):a===2&&(t=(e[r-2]<<8)+e[r-1],o.push(Le[t>>10]+Le[t>>4&63]+Le[t<<2&63]+"=")),o.join("")}var cr={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */cr.read=function(e,t,r,a,o){var s,l,f=o*8-a-1,h=(1<<f)-1,v=h>>1,g=-7,w=r?o-1:0,E=r?-1:1,A=e[t+w];for(w+=E,s=A&(1<<-g)-1,A>>=-g,g+=f;g>0;s=s*256+e[t+w],w+=E,g-=8);for(l=s&(1<<-g)-1,s>>=-g,g+=a;g>0;l=l*256+e[t+w],w+=E,g-=8);if(s===0)s=1-v;else{if(s===h)return l?NaN:(A?-1:1)*(1/0);l=l+Math.pow(2,a),s=s-v}return(A?-1:1)*l*Math.pow(2,s-a)};cr.write=function(e,t,r,a,o,s){var l,f,h,v=s*8-o-1,g=(1<<v)-1,w=g>>1,E=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=a?0:s-1,x=a?1:-1,S=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(f=isNaN(t)?1:0,l=g):(l=Math.floor(Math.log(t)/Math.LN2),t*(h=Math.pow(2,-l))<1&&(l--,h*=2),l+w>=1?t+=E/h:t+=E*Math.pow(2,1-w),t*h>=2&&(l++,h/=2),l+w>=g?(f=0,l=g):l+w>=1?(f=(t*h-1)*Math.pow(2,o),l=l+w):(f=t*Math.pow(2,w-1)*Math.pow(2,o),l=0));o>=8;e[r+A]=f&255,A+=x,f/=256,o-=8);for(l=l<<o|f,v+=o;v>0;e[r+A]=l&255,A+=x,l/=256,v-=8);e[r+A-x]|=S*128};/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/(function(e){const t=Rt,r=cr,a=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=f,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o,f.TYPED_ARRAY_SUPPORT=s(),!f.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const u=new Uint8Array(1),n={foo:function(){return 42}};return Object.setPrototypeOf(n,Uint8Array.prototype),Object.setPrototypeOf(u,n),u.foo()===42}catch{return!1}}Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}});function l(u){if(u>o)throw new RangeError('The value "'+u+'" is invalid for option "size"');const n=new Uint8Array(u);return Object.setPrototypeOf(n,f.prototype),n}function f(u,n,i){if(typeof u=="number"){if(typeof n=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return w(u)}return h(u,n,i)}f.poolSize=8192;function h(u,n,i){if(typeof u=="string")return E(u,n);if(ArrayBuffer.isView(u))return x(u);if(u==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof u);if(Ee(u,ArrayBuffer)||u&&Ee(u.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ee(u,SharedArrayBuffer)||u&&Ee(u.buffer,SharedArrayBuffer)))return S(u,n,i);if(typeof u=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const c=u.valueOf&&u.valueOf();if(c!=null&&c!==u)return f.from(c,n,i);const y=O(u);if(y)return y;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof u[Symbol.toPrimitive]=="function")return f.from(u[Symbol.toPrimitive]("string"),n,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof u)}f.from=function(u,n,i){return h(u,n,i)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array);function v(u){if(typeof u!="number")throw new TypeError('"size" argument must be of type number');if(u<0)throw new RangeError('The value "'+u+'" is invalid for option "size"')}function g(u,n,i){return v(u),u<=0?l(u):n!==void 0?typeof i=="string"?l(u).fill(n,i):l(u).fill(n):l(u)}f.alloc=function(u,n,i){return g(u,n,i)};function w(u){return v(u),l(u<0?0:I(u)|0)}f.allocUnsafe=function(u){return w(u)},f.allocUnsafeSlow=function(u){return w(u)};function E(u,n){if((typeof n!="string"||n==="")&&(n="utf8"),!f.isEncoding(n))throw new TypeError("Unknown encoding: "+n);const i=F(u,n)|0;let c=l(i);const y=c.write(u,n);return y!==i&&(c=c.slice(0,y)),c}function A(u){const n=u.length<0?0:I(u.length)|0,i=l(n);for(let c=0;c<n;c+=1)i[c]=u[c]&255;return i}function x(u){if(Ee(u,Uint8Array)){const n=new Uint8Array(u);return S(n.buffer,n.byteOffset,n.byteLength)}return A(u)}function S(u,n,i){if(n<0||u.byteLength<n)throw new RangeError('"offset" is outside of buffer bounds');if(u.byteLength<n+(i||0))throw new RangeError('"length" is outside of buffer bounds');let c;return n===void 0&&i===void 0?c=new Uint8Array(u):i===void 0?c=new Uint8Array(u,n):c=new Uint8Array(u,n,i),Object.setPrototypeOf(c,f.prototype),c}function O(u){if(f.isBuffer(u)){const n=I(u.length)|0,i=l(n);return i.length===0||u.copy(i,0,0,n),i}if(u.length!==void 0)return typeof u.length!="number"||ze(u.length)?l(0):A(u);if(u.type==="Buffer"&&Array.isArray(u.data))return A(u.data)}function I(u){if(u>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return u|0}function D(u){return+u!=u&&(u=0),f.alloc(+u)}f.isBuffer=function(n){return n!=null&&n._isBuffer===!0&&n!==f.prototype},f.compare=function(n,i){if(Ee(n,Uint8Array)&&(n=f.from(n,n.offset,n.byteLength)),Ee(i,Uint8Array)&&(i=f.from(i,i.offset,i.byteLength)),!f.isBuffer(n)||!f.isBuffer(i))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(n===i)return 0;let c=n.length,y=i.length;for(let b=0,R=Math.min(c,y);b<R;++b)if(n[b]!==i[b]){c=n[b],y=i[b];break}return c<y?-1:y<c?1:0},f.isEncoding=function(n){switch(String(n).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(n,i){if(!Array.isArray(n))throw new TypeError('"list" argument must be an Array of Buffers');if(n.length===0)return f.alloc(0);let c;if(i===void 0)for(i=0,c=0;c<n.length;++c)i+=n[c].length;const y=f.allocUnsafe(i);let b=0;for(c=0;c<n.length;++c){let R=n[c];if(Ee(R,Uint8Array))b+R.length>y.length?(f.isBuffer(R)||(R=f.from(R)),R.copy(y,b)):Uint8Array.prototype.set.call(y,R,b);else if(f.isBuffer(R))R.copy(y,b);else throw new TypeError('"list" argument must be an Array of Buffers');b+=R.length}return y};function F(u,n){if(f.isBuffer(u))return u.length;if(ArrayBuffer.isView(u)||Ee(u,ArrayBuffer))return u.byteLength;if(typeof u!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof u);const i=u.length,c=arguments.length>2&&arguments[2]===!0;if(!c&&i===0)return 0;let y=!1;for(;;)switch(n){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return V(u).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return i*2;case"hex":return i>>>1;case"base64":return it(u).length;default:if(y)return c?-1:V(u).length;n=(""+n).toLowerCase(),y=!0}}f.byteLength=F;function k(u,n,i){let c=!1;if((n===void 0||n<0)&&(n=0),n>this.length||((i===void 0||i>this.length)&&(i=this.length),i<=0)||(i>>>=0,n>>>=0,i<=n))return"";for(u||(u="utf8");;)switch(u){case"hex":return se(this,n,i);case"utf8":case"utf-8":return B(this,n,i);case"ascii":return H(this,n,i);case"latin1":case"binary":return J(this,n,i);case"base64":return N(this,n,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _e(this,n,i);default:if(c)throw new TypeError("Unknown encoding: "+u);u=(u+"").toLowerCase(),c=!0}}f.prototype._isBuffer=!0;function P(u,n,i){const c=u[n];u[n]=u[i],u[i]=c}f.prototype.swap16=function(){const n=this.length;if(n%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let i=0;i<n;i+=2)P(this,i,i+1);return this},f.prototype.swap32=function(){const n=this.length;if(n%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let i=0;i<n;i+=4)P(this,i,i+3),P(this,i+1,i+2);return this},f.prototype.swap64=function(){const n=this.length;if(n%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let i=0;i<n;i+=8)P(this,i,i+7),P(this,i+1,i+6),P(this,i+2,i+5),P(this,i+3,i+4);return this},f.prototype.toString=function(){const n=this.length;return n===0?"":arguments.length===0?B(this,0,n):k.apply(this,arguments)},f.prototype.toLocaleString=f.prototype.toString,f.prototype.equals=function(n){if(!f.isBuffer(n))throw new TypeError("Argument must be a Buffer");return this===n?!0:f.compare(this,n)===0},f.prototype.inspect=function(){let n="";const i=e.INSPECT_MAX_BYTES;return n=this.toString("hex",0,i).replace(/(.{2})/g,"$1 ").trim(),this.length>i&&(n+=" ... "),"<Buffer "+n+">"},a&&(f.prototype[a]=f.prototype.inspect),f.prototype.compare=function(n,i,c,y,b){if(Ee(n,Uint8Array)&&(n=f.from(n,n.offset,n.byteLength)),!f.isBuffer(n))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof n);if(i===void 0&&(i=0),c===void 0&&(c=n?n.length:0),y===void 0&&(y=0),b===void 0&&(b=this.length),i<0||c>n.length||y<0||b>this.length)throw new RangeError("out of range index");if(y>=b&&i>=c)return 0;if(y>=b)return-1;if(i>=c)return 1;if(i>>>=0,c>>>=0,y>>>=0,b>>>=0,this===n)return 0;let R=b-y,Y=c-i;const fe=Math.min(R,Y),oe=this.slice(y,b),ue=n.slice(i,c);for(let ie=0;ie<fe;++ie)if(oe[ie]!==ue[ie]){R=oe[ie],Y=ue[ie];break}return R<Y?-1:Y<R?1:0};function G(u,n,i,c,y){if(u.length===0)return-1;if(typeof i=="string"?(c=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,ze(i)&&(i=y?0:u.length-1),i<0&&(i=u.length+i),i>=u.length){if(y)return-1;i=u.length-1}else if(i<0)if(y)i=0;else return-1;if(typeof n=="string"&&(n=f.from(n,c)),f.isBuffer(n))return n.length===0?-1:te(u,n,i,c,y);if(typeof n=="number")return n=n&255,typeof Uint8Array.prototype.indexOf=="function"?y?Uint8Array.prototype.indexOf.call(u,n,i):Uint8Array.prototype.lastIndexOf.call(u,n,i):te(u,[n],i,c,y);throw new TypeError("val must be string, number or Buffer")}function te(u,n,i,c,y){let b=1,R=u.length,Y=n.length;if(c!==void 0&&(c=String(c).toLowerCase(),c==="ucs2"||c==="ucs-2"||c==="utf16le"||c==="utf-16le")){if(u.length<2||n.length<2)return-1;b=2,R/=2,Y/=2,i/=2}function fe(ue,ie){return b===1?ue[ie]:ue.readUInt16BE(ie*b)}let oe;if(y){let ue=-1;for(oe=i;oe<R;oe++)if(fe(u,oe)===fe(n,ue===-1?0:oe-ue)){if(ue===-1&&(ue=oe),oe-ue+1===Y)return ue*b}else ue!==-1&&(oe-=oe-ue),ue=-1}else for(i+Y>R&&(i=R-Y),oe=i;oe>=0;oe--){let ue=!0;for(let ie=0;ie<Y;ie++)if(fe(u,oe+ie)!==fe(n,ie)){ue=!1;break}if(ue)return oe}return-1}f.prototype.includes=function(n,i,c){return this.indexOf(n,i,c)!==-1},f.prototype.indexOf=function(n,i,c){return G(this,n,i,c,!0)},f.prototype.lastIndexOf=function(n,i,c){return G(this,n,i,c,!1)};function X(u,n,i,c){i=Number(i)||0;const y=u.length-i;c?(c=Number(c),c>y&&(c=y)):c=y;const b=n.length;c>b/2&&(c=b/2);let R;for(R=0;R<c;++R){const Y=parseInt(n.substr(R*2,2),16);if(ze(Y))return R;u[i+R]=Y}return R}function q(u,n,i,c){return Qe(V(n,u.length-i),u,i,c)}function me(u,n,i,c){return Qe(Te(n),u,i,c)}function j(u,n,i,c){return Qe(it(n),u,i,c)}function L(u,n,i,c){return Qe(Ye(n,u.length-i),u,i,c)}f.prototype.write=function(n,i,c,y){if(i===void 0)y="utf8",c=this.length,i=0;else if(c===void 0&&typeof i=="string")y=i,c=this.length,i=0;else if(isFinite(i))i=i>>>0,isFinite(c)?(c=c>>>0,y===void 0&&(y="utf8")):(y=c,c=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const b=this.length-i;if((c===void 0||c>b)&&(c=b),n.length>0&&(c<0||i<0)||i>this.length)throw new RangeError("Attempt to write outside buffer bounds");y||(y="utf8");let R=!1;for(;;)switch(y){case"hex":return X(this,n,i,c);case"utf8":case"utf-8":return q(this,n,i,c);case"ascii":case"latin1":case"binary":return me(this,n,i,c);case"base64":return j(this,n,i,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,n,i,c);default:if(R)throw new TypeError("Unknown encoding: "+y);y=(""+y).toLowerCase(),R=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function N(u,n,i){return n===0&&i===u.length?t.fromByteArray(u):t.fromByteArray(u.slice(n,i))}function B(u,n,i){i=Math.min(u.length,i);const c=[];let y=n;for(;y<i;){const b=u[y];let R=null,Y=b>239?4:b>223?3:b>191?2:1;if(y+Y<=i){let fe,oe,ue,ie;switch(Y){case 1:b<128&&(R=b);break;case 2:fe=u[y+1],(fe&192)===128&&(ie=(b&31)<<6|fe&63,ie>127&&(R=ie));break;case 3:fe=u[y+1],oe=u[y+2],(fe&192)===128&&(oe&192)===128&&(ie=(b&15)<<12|(fe&63)<<6|oe&63,ie>2047&&(ie<55296||ie>57343)&&(R=ie));break;case 4:fe=u[y+1],oe=u[y+2],ue=u[y+3],(fe&192)===128&&(oe&192)===128&&(ue&192)===128&&(ie=(b&15)<<18|(fe&63)<<12|(oe&63)<<6|ue&63,ie>65535&&ie<1114112&&(R=ie))}}R===null?(R=65533,Y=1):R>65535&&(R-=65536,c.push(R>>>10&1023|55296),R=56320|R&1023),c.push(R),y+=Y}return W(c)}const U=4096;function W(u){const n=u.length;if(n<=U)return String.fromCharCode.apply(String,u);let i="",c=0;for(;c<n;)i+=String.fromCharCode.apply(String,u.slice(c,c+=U));return i}function H(u,n,i){let c="";i=Math.min(u.length,i);for(let y=n;y<i;++y)c+=String.fromCharCode(u[y]&127);return c}function J(u,n,i){let c="";i=Math.min(u.length,i);for(let y=n;y<i;++y)c+=String.fromCharCode(u[y]);return c}function se(u,n,i){const c=u.length;(!n||n<0)&&(n=0),(!i||i<0||i>c)&&(i=c);let y="";for(let b=n;b<i;++b)y+=at[u[b]];return y}function _e(u,n,i){const c=u.slice(n,i);let y="";for(let b=0;b<c.length-1;b+=2)y+=String.fromCharCode(c[b]+c[b+1]*256);return y}f.prototype.slice=function(n,i){const c=this.length;n=~~n,i=i===void 0?c:~~i,n<0?(n+=c,n<0&&(n=0)):n>c&&(n=c),i<0?(i+=c,i<0&&(i=0)):i>c&&(i=c),i<n&&(i=n);const y=this.subarray(n,i);return Object.setPrototypeOf(y,f.prototype),y};function Q(u,n,i){if(u%1!==0||u<0)throw new RangeError("offset is not uint");if(u+n>i)throw new RangeError("Trying to access beyond buffer length")}f.prototype.readUintLE=f.prototype.readUIntLE=function(n,i,c){n=n>>>0,i=i>>>0,c||Q(n,i,this.length);let y=this[n],b=1,R=0;for(;++R<i&&(b*=256);)y+=this[n+R]*b;return y},f.prototype.readUintBE=f.prototype.readUIntBE=function(n,i,c){n=n>>>0,i=i>>>0,c||Q(n,i,this.length);let y=this[n+--i],b=1;for(;i>0&&(b*=256);)y+=this[n+--i]*b;return y},f.prototype.readUint8=f.prototype.readUInt8=function(n,i){return n=n>>>0,i||Q(n,1,this.length),this[n]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(n,i){return n=n>>>0,i||Q(n,2,this.length),this[n]|this[n+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(n,i){return n=n>>>0,i||Q(n,2,this.length),this[n]<<8|this[n+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),(this[n]|this[n+1]<<8|this[n+2]<<16)+this[n+3]*16777216},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),this[n]*16777216+(this[n+1]<<16|this[n+2]<<8|this[n+3])},f.prototype.readBigUInt64LE=Re(function(n){n=n>>>0,M(n,"offset");const i=this[n],c=this[n+7];(i===void 0||c===void 0)&&C(n,this.length-8);const y=i+this[++n]*2**8+this[++n]*2**16+this[++n]*2**24,b=this[++n]+this[++n]*2**8+this[++n]*2**16+c*2**24;return BigInt(y)+(BigInt(b)<<BigInt(32))}),f.prototype.readBigUInt64BE=Re(function(n){n=n>>>0,M(n,"offset");const i=this[n],c=this[n+7];(i===void 0||c===void 0)&&C(n,this.length-8);const y=i*2**24+this[++n]*2**16+this[++n]*2**8+this[++n],b=this[++n]*2**24+this[++n]*2**16+this[++n]*2**8+c;return(BigInt(y)<<BigInt(32))+BigInt(b)}),f.prototype.readIntLE=function(n,i,c){n=n>>>0,i=i>>>0,c||Q(n,i,this.length);let y=this[n],b=1,R=0;for(;++R<i&&(b*=256);)y+=this[n+R]*b;return b*=128,y>=b&&(y-=Math.pow(2,8*i)),y},f.prototype.readIntBE=function(n,i,c){n=n>>>0,i=i>>>0,c||Q(n,i,this.length);let y=i,b=1,R=this[n+--y];for(;y>0&&(b*=256);)R+=this[n+--y]*b;return b*=128,R>=b&&(R-=Math.pow(2,8*i)),R},f.prototype.readInt8=function(n,i){return n=n>>>0,i||Q(n,1,this.length),this[n]&128?(255-this[n]+1)*-1:this[n]},f.prototype.readInt16LE=function(n,i){n=n>>>0,i||Q(n,2,this.length);const c=this[n]|this[n+1]<<8;return c&32768?c|4294901760:c},f.prototype.readInt16BE=function(n,i){n=n>>>0,i||Q(n,2,this.length);const c=this[n+1]|this[n]<<8;return c&32768?c|4294901760:c},f.prototype.readInt32LE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),this[n]|this[n+1]<<8|this[n+2]<<16|this[n+3]<<24},f.prototype.readInt32BE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),this[n]<<24|this[n+1]<<16|this[n+2]<<8|this[n+3]},f.prototype.readBigInt64LE=Re(function(n){n=n>>>0,M(n,"offset");const i=this[n],c=this[n+7];(i===void 0||c===void 0)&&C(n,this.length-8);const y=this[n+4]+this[n+5]*2**8+this[n+6]*2**16+(c<<24);return(BigInt(y)<<BigInt(32))+BigInt(i+this[++n]*2**8+this[++n]*2**16+this[++n]*2**24)}),f.prototype.readBigInt64BE=Re(function(n){n=n>>>0,M(n,"offset");const i=this[n],c=this[n+7];(i===void 0||c===void 0)&&C(n,this.length-8);const y=(i<<24)+this[++n]*2**16+this[++n]*2**8+this[++n];return(BigInt(y)<<BigInt(32))+BigInt(this[++n]*2**24+this[++n]*2**16+this[++n]*2**8+c)}),f.prototype.readFloatLE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),r.read(this,n,!0,23,4)},f.prototype.readFloatBE=function(n,i){return n=n>>>0,i||Q(n,4,this.length),r.read(this,n,!1,23,4)},f.prototype.readDoubleLE=function(n,i){return n=n>>>0,i||Q(n,8,this.length),r.read(this,n,!0,52,8)},f.prototype.readDoubleBE=function(n,i){return n=n>>>0,i||Q(n,8,this.length),r.read(this,n,!1,52,8)};function ee(u,n,i,c,y,b){if(!f.isBuffer(u))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>y||n<b)throw new RangeError('"value" argument is out of bounds');if(i+c>u.length)throw new RangeError("Index out of range")}f.prototype.writeUintLE=f.prototype.writeUIntLE=function(n,i,c,y){if(n=+n,i=i>>>0,c=c>>>0,!y){const Y=Math.pow(2,8*c)-1;ee(this,n,i,c,Y,0)}let b=1,R=0;for(this[i]=n&255;++R<c&&(b*=256);)this[i+R]=n/b&255;return i+c},f.prototype.writeUintBE=f.prototype.writeUIntBE=function(n,i,c,y){if(n=+n,i=i>>>0,c=c>>>0,!y){const Y=Math.pow(2,8*c)-1;ee(this,n,i,c,Y,0)}let b=c-1,R=1;for(this[i+b]=n&255;--b>=0&&(R*=256);)this[i+b]=n/R&255;return i+c},f.prototype.writeUint8=f.prototype.writeUInt8=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,1,255,0),this[i]=n&255,i+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,2,65535,0),this[i]=n&255,this[i+1]=n>>>8,i+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,2,65535,0),this[i]=n>>>8,this[i+1]=n&255,i+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,4,4294967295,0),this[i+3]=n>>>24,this[i+2]=n>>>16,this[i+1]=n>>>8,this[i]=n&255,i+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,4,4294967295,0),this[i]=n>>>24,this[i+1]=n>>>16,this[i+2]=n>>>8,this[i+3]=n&255,i+4};function ce(u,n,i,c,y){p(n,c,y,u,i,7);let b=Number(n&BigInt(4294967295));u[i++]=b,b=b>>8,u[i++]=b,b=b>>8,u[i++]=b,b=b>>8,u[i++]=b;let R=Number(n>>BigInt(32)&BigInt(4294967295));return u[i++]=R,R=R>>8,u[i++]=R,R=R>>8,u[i++]=R,R=R>>8,u[i++]=R,i}function ae(u,n,i,c,y){p(n,c,y,u,i,7);let b=Number(n&BigInt(4294967295));u[i+7]=b,b=b>>8,u[i+6]=b,b=b>>8,u[i+5]=b,b=b>>8,u[i+4]=b;let R=Number(n>>BigInt(32)&BigInt(4294967295));return u[i+3]=R,R=R>>8,u[i+2]=R,R=R>>8,u[i+1]=R,R=R>>8,u[i]=R,i+8}f.prototype.writeBigUInt64LE=Re(function(n,i=0){return ce(this,n,i,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=Re(function(n,i=0){return ae(this,n,i,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(n,i,c,y){if(n=+n,i=i>>>0,!y){const fe=Math.pow(2,8*c-1);ee(this,n,i,c,fe-1,-fe)}let b=0,R=1,Y=0;for(this[i]=n&255;++b<c&&(R*=256);)n<0&&Y===0&&this[i+b-1]!==0&&(Y=1),this[i+b]=(n/R>>0)-Y&255;return i+c},f.prototype.writeIntBE=function(n,i,c,y){if(n=+n,i=i>>>0,!y){const fe=Math.pow(2,8*c-1);ee(this,n,i,c,fe-1,-fe)}let b=c-1,R=1,Y=0;for(this[i+b]=n&255;--b>=0&&(R*=256);)n<0&&Y===0&&this[i+b+1]!==0&&(Y=1),this[i+b]=(n/R>>0)-Y&255;return i+c},f.prototype.writeInt8=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,1,127,-128),n<0&&(n=255+n+1),this[i]=n&255,i+1},f.prototype.writeInt16LE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,2,32767,-32768),this[i]=n&255,this[i+1]=n>>>8,i+2},f.prototype.writeInt16BE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,2,32767,-32768),this[i]=n>>>8,this[i+1]=n&255,i+2},f.prototype.writeInt32LE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,4,2147483647,-2147483648),this[i]=n&255,this[i+1]=n>>>8,this[i+2]=n>>>16,this[i+3]=n>>>24,i+4},f.prototype.writeInt32BE=function(n,i,c){return n=+n,i=i>>>0,c||ee(this,n,i,4,2147483647,-2147483648),n<0&&(n=4294967295+n+1),this[i]=n>>>24,this[i+1]=n>>>16,this[i+2]=n>>>8,this[i+3]=n&255,i+4},f.prototype.writeBigInt64LE=Re(function(n,i=0){return ce(this,n,i,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=Re(function(n,i=0){return ae(this,n,i,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ye(u,n,i,c,y,b){if(i+c>u.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function _(u,n,i,c,y){return n=+n,i=i>>>0,y||ye(u,n,i,4),r.write(u,n,i,c,23,4),i+4}f.prototype.writeFloatLE=function(n,i,c){return _(this,n,i,!0,c)},f.prototype.writeFloatBE=function(n,i,c){return _(this,n,i,!1,c)};function m(u,n,i,c,y){return n=+n,i=i>>>0,y||ye(u,n,i,8),r.write(u,n,i,c,52,8),i+8}f.prototype.writeDoubleLE=function(n,i,c){return m(this,n,i,!0,c)},f.prototype.writeDoubleBE=function(n,i,c){return m(this,n,i,!1,c)},f.prototype.copy=function(n,i,c,y){if(!f.isBuffer(n))throw new TypeError("argument should be a Buffer");if(c||(c=0),!y&&y!==0&&(y=this.length),i>=n.length&&(i=n.length),i||(i=0),y>0&&y<c&&(y=c),y===c||n.length===0||this.length===0)return 0;if(i<0)throw new RangeError("targetStart out of bounds");if(c<0||c>=this.length)throw new RangeError("Index out of range");if(y<0)throw new RangeError("sourceEnd out of bounds");y>this.length&&(y=this.length),n.length-i<y-c&&(y=n.length-i+c);const b=y-c;return this===n&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(i,c,y):Uint8Array.prototype.set.call(n,this.subarray(c,y),i),b},f.prototype.fill=function(n,i,c,y){if(typeof n=="string"){if(typeof i=="string"?(y=i,i=0,c=this.length):typeof c=="string"&&(y=c,c=this.length),y!==void 0&&typeof y!="string")throw new TypeError("encoding must be a string");if(typeof y=="string"&&!f.isEncoding(y))throw new TypeError("Unknown encoding: "+y);if(n.length===1){const R=n.charCodeAt(0);(y==="utf8"&&R<128||y==="latin1")&&(n=R)}}else typeof n=="number"?n=n&255:typeof n=="boolean"&&(n=Number(n));if(i<0||this.length<i||this.length<c)throw new RangeError("Out of range index");if(c<=i)return this;i=i>>>0,c=c===void 0?this.length:c>>>0,n||(n=0);let b;if(typeof n=="number")for(b=i;b<c;++b)this[b]=n;else{const R=f.isBuffer(n)?n:f.from(n,y),Y=R.length;if(Y===0)throw new TypeError('The value "'+n+'" is invalid for argument "value"');for(b=0;b<c-i;++b)this[b+i]=R[b%Y]}return this};const T={};function $(u,n,i){T[u]=class extends i{constructor(){super(),Object.defineProperty(this,"message",{value:n.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${u}]`,this.stack,delete this.name}get code(){return u}set code(y){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:y,writable:!0})}toString(){return`${this.name} [${u}]: ${this.message}`}}}$("ERR_BUFFER_OUT_OF_BOUNDS",function(u){return u?`${u} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),$("ERR_INVALID_ARG_TYPE",function(u,n){return`The "${u}" argument must be of type number. Received type ${typeof n}`},TypeError),$("ERR_OUT_OF_RANGE",function(u,n,i){let c=`The value of "${u}" is out of range.`,y=i;return Number.isInteger(i)&&Math.abs(i)>2**32?y=z(String(i)):typeof i=="bigint"&&(y=String(i),(i>BigInt(2)**BigInt(32)||i<-(BigInt(2)**BigInt(32)))&&(y=z(y)),y+="n"),c+=` It must be ${n}. Received ${y}`,c},RangeError);function z(u){let n="",i=u.length;const c=u[0]==="-"?1:0;for(;i>=c+4;i-=3)n=`_${u.slice(i-3,i)}${n}`;return`${u.slice(0,i)}${n}`}function d(u,n,i){M(n,"offset"),(u[n]===void 0||u[n+i]===void 0)&&C(n,u.length-(i+1))}function p(u,n,i,c,y,b){if(u>i||u<n){const R=typeof n=="bigint"?"n":"";let Y;throw b>3?n===0||n===BigInt(0)?Y=`>= 0${R} and < 2${R} ** ${(b+1)*8}${R}`:Y=`>= -(2${R} ** ${(b+1)*8-1}${R}) and < 2 ** ${(b+1)*8-1}${R}`:Y=`>= ${n}${R} and <= ${i}${R}`,new T.ERR_OUT_OF_RANGE("value",Y,u)}d(c,y,b)}function M(u,n){if(typeof u!="number")throw new T.ERR_INVALID_ARG_TYPE(n,"number",u)}function C(u,n,i){throw Math.floor(u)!==u?(M(u,i),new T.ERR_OUT_OF_RANGE(i||"offset","an integer",u)):n<0?new T.ERR_BUFFER_OUT_OF_BOUNDS:new T.ERR_OUT_OF_RANGE(i||"offset",`>= ${i?1:0} and <= ${n}`,u)}const re=/[^+/0-9A-Za-z-_]/g;function Z(u){if(u=u.split("=")[0],u=u.trim().replace(re,""),u.length<2)return"";for(;u.length%4!==0;)u=u+"=";return u}function V(u,n){n=n||1/0;let i;const c=u.length;let y=null;const b=[];for(let R=0;R<c;++R){if(i=u.charCodeAt(R),i>55295&&i<57344){if(!y){if(i>56319){(n-=3)>-1&&b.push(239,191,189);continue}else if(R+1===c){(n-=3)>-1&&b.push(239,191,189);continue}y=i;continue}if(i<56320){(n-=3)>-1&&b.push(239,191,189),y=i;continue}i=(y-55296<<10|i-56320)+65536}else y&&(n-=3)>-1&&b.push(239,191,189);if(y=null,i<128){if((n-=1)<0)break;b.push(i)}else if(i<2048){if((n-=2)<0)break;b.push(i>>6|192,i&63|128)}else if(i<65536){if((n-=3)<0)break;b.push(i>>12|224,i>>6&63|128,i&63|128)}else if(i<1114112){if((n-=4)<0)break;b.push(i>>18|240,i>>12&63|128,i>>6&63|128,i&63|128)}else throw new Error("Invalid code point")}return b}function Te(u){const n=[];for(let i=0;i<u.length;++i)n.push(u.charCodeAt(i)&255);return n}function Ye(u,n){let i,c,y;const b=[];for(let R=0;R<u.length&&!((n-=2)<0);++R)i=u.charCodeAt(R),c=i>>8,y=i%256,b.push(y),b.push(c);return b}function it(u){return t.toByteArray(Z(u))}function Qe(u,n,i,c){let y;for(y=0;y<c&&!(y+i>=n.length||y>=u.length);++y)n[y+i]=u[y];return y}function Ee(u,n){return u instanceof n||u!=null&&u.constructor!=null&&u.constructor.name!=null&&u.constructor.name===n.name}function ze(u){return u!==u}const at=function(){const u="0123456789abcdef",n=new Array(256);for(let i=0;i<16;++i){const c=i*16;for(let y=0;y<16;++y)n[c+y]=u[i]+u[y]}return n}();function Re(u){return typeof BigInt>"u"?qe:u}function qe(){throw new Error("BigInt not supported")}})(rt);var dr={exports:{}},et=typeof Reflect=="object"?Reflect:null,Ar=et&&typeof et.apply=="function"?et.apply:function(t,r,a){return Function.prototype.apply.call(t,r,a)},dt;et&&typeof et.ownKeys=="function"?dt=et.ownKeys:Object.getOwnPropertySymbols?dt=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:dt=function(t){return Object.getOwnPropertyNames(t)};function ka(e){console&&console.warn&&console.warn(e)}var Hn=Number.isNaN||function(t){return t!==t};function ne(){ne.init.call(this)}dr.exports=ne;dr.exports.once=$a;ne.EventEmitter=ne;ne.prototype._events=void 0;ne.prototype._eventsCount=0;ne.prototype._maxListeners=void 0;var Or=10;function St(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(ne,"defaultMaxListeners",{enumerable:!0,get:function(){return Or},set:function(e){if(typeof e!="number"||e<0||Hn(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Or=e}});ne.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ne.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Hn(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Zn(e){return e._maxListeners===void 0?ne.defaultMaxListeners:e._maxListeners}ne.prototype.getMaxListeners=function(){return Zn(this)};ne.prototype.emit=function(t){for(var r=[],a=1;a<arguments.length;a++)r.push(arguments[a]);var o=t==="error",s=this._events;if(s!==void 0)o=o&&s.error===void 0;else if(!o)return!1;if(o){var l;if(r.length>0&&(l=r[0]),l instanceof Error)throw l;var f=new Error("Unhandled error."+(l?" ("+l.message+")":""));throw f.context=l,f}var h=s[t];if(h===void 0)return!1;if(typeof h=="function")Ar(h,this,r);else for(var v=h.length,g=Kn(h,v),a=0;a<v;++a)Ar(g[a],this,r);return!0};function Xn(e,t,r,a){var o,s,l;if(St(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),l=s[t]),l===void 0)l=s[t]=r,++e._eventsCount;else if(typeof l=="function"?l=s[t]=a?[r,l]:[l,r]:a?l.unshift(r):l.push(r),o=Zn(e),o>0&&l.length>o&&!l.warned){l.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+l.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=l.length,ka(f)}return e}ne.prototype.addListener=function(t,r){return Xn(this,t,r,!1)};ne.prototype.on=ne.prototype.addListener;ne.prototype.prependListener=function(t,r){return Xn(this,t,r,!0)};function Fa(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Yn(e,t,r){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=Fa.bind(a);return o.listener=r,a.wrapFn=o,o}ne.prototype.once=function(t,r){return St(r),this.on(t,Yn(this,t,r)),this};ne.prototype.prependOnceListener=function(t,r){return St(r),this.prependListener(t,Yn(this,t,r)),this};ne.prototype.removeListener=function(t,r){var a,o,s,l,f;if(St(r),o=this._events,o===void 0)return this;if(a=o[t],a===void 0)return this;if(a===r||a.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete o[t],o.removeListener&&this.emit("removeListener",t,a.listener||r));else if(typeof a!="function"){for(s=-1,l=a.length-1;l>=0;l--)if(a[l]===r||a[l].listener===r){f=a[l].listener,s=l;break}if(s<0)return this;s===0?a.shift():Pa(a,s),a.length===1&&(o[t]=a[0]),o.removeListener!==void 0&&this.emit("removeListener",t,f||r)}return this};ne.prototype.off=ne.prototype.removeListener;ne.prototype.removeAllListeners=function(t){var r,a,o;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[t]),this;if(arguments.length===0){var s=Object.keys(a),l;for(o=0;o<s.length;++o)l=s[o],l!=="removeListener"&&this.removeAllListeners(l);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=a[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(o=r.length-1;o>=0;o--)this.removeListener(t,r[o]);return this};function Qn(e,t,r){var a=e._events;if(a===void 0)return[];var o=a[t];return o===void 0?[]:typeof o=="function"?r?[o.listener||o]:[o]:r?Ua(o):Kn(o,o.length)}ne.prototype.listeners=function(t){return Qn(this,t,!0)};ne.prototype.rawListeners=function(t){return Qn(this,t,!1)};ne.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Vn.call(e,t)};ne.prototype.listenerCount=Vn;function Vn(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}ne.prototype.eventNames=function(){return this._eventsCount>0?dt(this._events):[]};function Kn(e,t){for(var r=new Array(t),a=0;a<t;++a)r[a]=e[a];return r}function Pa(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Ua(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function $a(e,t){return new Promise(function(r,a){function o(l){e.removeListener(t,s),a(l)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",o),r([].slice.call(arguments))}Jn(e,t,s,{once:!0}),t!=="error"&&Da(e,o,{once:!0})})}function Da(e,t,r){typeof e.on=="function"&&Jn(e,"error",t,r)}function Jn(e,t,r,a){if(typeof e.on=="function")a.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function o(s){a.once&&e.removeEventListener(t,o),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var pr=dr.exports;const ja=hr(pr);var Mt={exports:{}},vr="_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ei="-0123456789"+vr,za=new RegExp("^[^"+vr+"]|[^\\"+ei+"]","g"),qa=12,Ga={random:ti,sanitize:ri,ensure:Wa};function ti(e){return e=e||qa,Br(1,vr)+Br(e-1,ei)}function ri(e){return e.replace(za,"_")}function Wa(e,t){return typeof e=="string"?ri(e):ti(t)}function Br(e,t){for(var r=t.length,a="";e>0;)e--,a+=t[Math.floor(Math.random()*r)];return a}var Ha=typeof he=="object"&&he&&he.Object===Object&&he,Za=typeof self=="object"&&self&&self.Object===Object&&self,Xa=Ha||Za||Function("return this")(),Ya=Xa.isFinite;function Qa(e){return typeof e=="number"&&Ya(e)}var ut=Qa,yt={},Zt={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=rt,a=r.Buffer;function o(l,f){for(var h in l)f[h]=l[h]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s);function s(l,f,h){return a(l,f,h)}s.prototype=Object.create(a.prototype),o(a,s),s.from=function(l,f,h){if(typeof l=="number")throw new TypeError("Argument must not be a number");return a(l,f,h)},s.alloc=function(l,f,h){if(typeof l!="number")throw new TypeError("Argument must be a number");var v=a(l);return f!==void 0?typeof h=="string"?v.fill(f,h):v.fill(f):v.fill(0),v},s.allocUnsafe=function(l){if(typeof l!="number")throw new TypeError("Argument must be a number");return a(l)},s.allocUnsafeSlow=function(l){if(typeof l!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(l)}})(Zt,Zt.exports);var Va=Zt.exports,gr=Va.Buffer,Ir=gr.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Ka(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function Ja(e){var t=Ka(e);if(typeof t!="string"&&(gr.isEncoding===Ir||!Ir(e)))throw new Error("Unknown encoding: "+e);return t||e}yt.StringDecoder=lt;function lt(e){this.encoding=Ja(e);var t;switch(this.encoding){case"utf16le":this.text=ao,this.end=oo,t=4;break;case"utf8":this.fillLast=ro,t=4;break;case"base64":this.text=so,this.end=fo,t=3;break;default:this.write=uo,this.end=lo;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=gr.allocUnsafe(t)}lt.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};lt.prototype.end=io;lt.prototype.text=no;lt.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function Nt(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function eo(e,t,r){var a=t.length-1;if(a<r)return 0;var o=Nt(t[a]);return o>=0?(o>0&&(e.lastNeed=o-1),o):--a<r||o===-2?0:(o=Nt(t[a]),o>=0?(o>0&&(e.lastNeed=o-2),o):--a<r||o===-2?0:(o=Nt(t[a]),o>=0?(o>0&&(o===2?o=0:e.lastNeed=o-3),o):0))}function to(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function ro(e){var t=this.lastTotal-this.lastNeed,r=to(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function no(e,t){var r=eo(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,a),e.toString("utf8",t,a)}function io(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function ao(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function oo(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function so(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function fo(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function uo(e){return e.toString(this.encoding)}function lo(e){return e&&e.length?this.write(e):""}var Xt={exports:{}};typeof Object.create=="function"?Xt.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Xt.exports=function(t,r){if(r){t.super_=r;var a=function(){};a.prototype=r.prototype,t.prototype=new a,t.prototype.constructor=t}};var $e=Xt.exports,Yt={exports:{}},ni=pr.EventEmitter;const ho={},co=Object.freeze(Object.defineProperty({__proto__:null,default:ho},Symbol.toStringTag,{value:"Module"})),ii=Ea(co);var Ct,Lr;function po(){if(Lr)return Ct;Lr=1;function e(x,S){var O=Object.keys(x);if(Object.getOwnPropertySymbols){var I=Object.getOwnPropertySymbols(x);S&&(I=I.filter(function(D){return Object.getOwnPropertyDescriptor(x,D).enumerable})),O.push.apply(O,I)}return O}function t(x){for(var S=1;S<arguments.length;S++){var O=arguments[S]!=null?arguments[S]:{};S%2?e(Object(O),!0).forEach(function(I){r(x,I,O[I])}):Object.getOwnPropertyDescriptors?Object.defineProperties(x,Object.getOwnPropertyDescriptors(O)):e(Object(O)).forEach(function(I){Object.defineProperty(x,I,Object.getOwnPropertyDescriptor(O,I))})}return x}function r(x,S,O){return S=l(S),S in x?Object.defineProperty(x,S,{value:O,enumerable:!0,configurable:!0,writable:!0}):x[S]=O,x}function a(x,S){if(!(x instanceof S))throw new TypeError("Cannot call a class as a function")}function o(x,S){for(var O=0;O<S.length;O++){var I=S[O];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(x,l(I.key),I)}}function s(x,S,O){return S&&o(x.prototype,S),O&&o(x,O),Object.defineProperty(x,"prototype",{writable:!1}),x}function l(x){var S=f(x,"string");return typeof S=="symbol"?S:String(S)}function f(x,S){if(typeof x!="object"||x===null)return x;var O=x[Symbol.toPrimitive];if(O!==void 0){var I=O.call(x,S||"default");if(typeof I!="object")return I;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(x)}var h=rt,v=h.Buffer,g=ii,w=g.inspect,E=w&&w.custom||"inspect";function A(x,S,O){v.prototype.copy.call(x,S,O)}return Ct=function(){function x(){a(this,x),this.head=null,this.tail=null,this.length=0}return s(x,[{key:"push",value:function(O){var I={data:O,next:null};this.length>0?this.tail.next=I:this.head=I,this.tail=I,++this.length}},{key:"unshift",value:function(O){var I={data:O,next:this.head};this.length===0&&(this.tail=I),this.head=I,++this.length}},{key:"shift",value:function(){if(this.length!==0){var O=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,O}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(O){if(this.length===0)return"";for(var I=this.head,D=""+I.data;I=I.next;)D+=O+I.data;return D}},{key:"concat",value:function(O){if(this.length===0)return v.alloc(0);for(var I=v.allocUnsafe(O>>>0),D=this.head,F=0;D;)A(D.data,I,F),F+=D.data.length,D=D.next;return I}},{key:"consume",value:function(O,I){var D;return O<this.head.data.length?(D=this.head.data.slice(0,O),this.head.data=this.head.data.slice(O)):O===this.head.data.length?D=this.shift():D=I?this._getString(O):this._getBuffer(O),D}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(O){var I=this.head,D=1,F=I.data;for(O-=F.length;I=I.next;){var k=I.data,P=O>k.length?k.length:O;if(P===k.length?F+=k:F+=k.slice(0,O),O-=P,O===0){P===k.length?(++D,I.next?this.head=I.next:this.head=this.tail=null):(this.head=I,I.data=k.slice(P));break}++D}return this.length-=D,F}},{key:"_getBuffer",value:function(O){var I=v.allocUnsafe(O),D=this.head,F=1;for(D.data.copy(I),O-=D.data.length;D=D.next;){var k=D.data,P=O>k.length?k.length:O;if(k.copy(I,I.length-O,0,P),O-=P,O===0){P===k.length?(++F,D.next?this.head=D.next:this.head=this.tail=null):(this.head=D,D.data=k.slice(P));break}++F}return this.length-=F,I}},{key:E,value:function(O,I){return w(this,t(t({},I),{},{depth:0,customInspect:!1}))}}]),x}(),Ct}function vo(e,t){var r=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Qt,this,e)):process.nextTick(Qt,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(pt,r):(r._writableState.errorEmitted=!0,process.nextTick(Nr,r,s)):process.nextTick(Nr,r,s):t?(process.nextTick(pt,r),t(s)):process.nextTick(pt,r)}),this)}function Nr(e,t){Qt(e,t),pt(e)}function pt(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function go(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Qt(e,t){e.emit("error",t)}function yo(e,t){var r=e._readableState,a=e._writableState;r&&r.autoDestroy||a&&a.autoDestroy?e.destroy(t):e.emit("error",t)}var ai={destroy:vo,undestroy:go,errorOrDestroy:yo},Xe={};function mo(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var oi={};function Me(e,t,r){r||(r=Error);function a(s,l,f){return typeof t=="string"?t:t(s,l,f)}var o=function(s){mo(l,s);function l(f,h,v){return s.call(this,a(f,h,v))||this}return l}(r);o.prototype.name=r.name,o.prototype.code=e,oi[e]=o}function Cr(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(a){return String(a)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function wo(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function _o(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function bo(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Me("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Me("ERR_INVALID_ARG_TYPE",function(e,t,r){var a;typeof t=="string"&&wo(t,"not ")?(a="must not be",t=t.replace(/^not /,"")):a="must be";var o;if(_o(e," argument"))o="The ".concat(e," ").concat(a," ").concat(Cr(t,"type"));else{var s=bo(e,".")?"property":"argument";o='The "'.concat(e,'" ').concat(s," ").concat(a," ").concat(Cr(t,"type"))}return o+=". Received type ".concat(typeof r),o},TypeError);Me("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Me("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Me("ERR_STREAM_PREMATURE_CLOSE","Premature close");Me("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Me("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Me("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Me("ERR_STREAM_WRITE_AFTER_END","write after end");Me("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Me("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Me("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Xe.codes=oi;var Eo=Xe.codes.ERR_INVALID_OPT_VALUE;function xo(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function Ro(e,t,r,a){var o=xo(t,a,r);if(o!=null){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=a?r:"highWaterMark";throw new Eo(s,o)}return Math.floor(o)}return e.objectMode?16:16*1024}var si={getHighWaterMark:Ro},So=Mo;function Mo(e,t){if(kt("noDeprecation"))return e;var r=!1;function a(){if(!r){if(kt("throwDeprecation"))throw new Error(t);kt("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return a}function kt(e){try{if(!he.localStorage)return!1}catch{return!1}var t=he.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Ft,kr;function fi(){if(kr)return Ft;kr=1,Ft=X;function e(_){var m=this;this.next=null,this.entry=null,this.finish=function(){ye(m,_)}}var t;X.WritableState=G;var r={deprecate:So},a=ni,o=rt.Buffer,s=(typeof he<"u"?he:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function l(_){return o.from(_)}function f(_){return o.isBuffer(_)||_ instanceof s}var h=ai,v=si,g=v.getHighWaterMark,w=Xe.codes,E=w.ERR_INVALID_ARG_TYPE,A=w.ERR_METHOD_NOT_IMPLEMENTED,x=w.ERR_MULTIPLE_CALLBACK,S=w.ERR_STREAM_CANNOT_PIPE,O=w.ERR_STREAM_DESTROYED,I=w.ERR_STREAM_NULL_VALUES,D=w.ERR_STREAM_WRITE_AFTER_END,F=w.ERR_UNKNOWN_ENCODING,k=h.errorOrDestroy;$e(X,a);function P(){}function G(_,m,T){t=t||tt(),_=_||{},typeof T!="boolean"&&(T=m instanceof t),this.objectMode=!!_.objectMode,T&&(this.objectMode=this.objectMode||!!_.writableObjectMode),this.highWaterMark=g(this,_,"writableHighWaterMark",T),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var $=_.decodeStrings===!1;this.decodeStrings=!$,this.defaultEncoding=_.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(z){W(m,z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=_.emitClose!==!1,this.autoDestroy=!!_.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}G.prototype.getBuffer=function(){for(var m=this.bufferedRequest,T=[];m;)T.push(m),m=m.next;return T},function(){try{Object.defineProperty(G.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var te;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(te=Function.prototype[Symbol.hasInstance],Object.defineProperty(X,Symbol.hasInstance,{value:function(m){return te.call(this,m)?!0:this!==X?!1:m&&m._writableState instanceof G}})):te=function(m){return m instanceof this};function X(_){t=t||tt();var m=this instanceof t;if(!m&&!te.call(X,this))return new X(_);this._writableState=new G(_,this,m),this.writable=!0,_&&(typeof _.write=="function"&&(this._write=_.write),typeof _.writev=="function"&&(this._writev=_.writev),typeof _.destroy=="function"&&(this._destroy=_.destroy),typeof _.final=="function"&&(this._final=_.final)),a.call(this)}X.prototype.pipe=function(){k(this,new S)};function q(_,m){var T=new D;k(_,T),process.nextTick(m,T)}function me(_,m,T,$){var z;return T===null?z=new I:typeof T!="string"&&!m.objectMode&&(z=new E("chunk",["string","Buffer"],T)),z?(k(_,z),process.nextTick($,z),!1):!0}X.prototype.write=function(_,m,T){var $=this._writableState,z=!1,d=!$.objectMode&&f(_);return d&&!o.isBuffer(_)&&(_=l(_)),typeof m=="function"&&(T=m,m=null),d?m="buffer":m||(m=$.defaultEncoding),typeof T!="function"&&(T=P),$.ending?q(this,T):(d||me(this,$,_,T))&&($.pendingcb++,z=L(this,$,d,_,m,T)),z},X.prototype.cork=function(){this._writableState.corked++},X.prototype.uncork=function(){var _=this._writableState;_.corked&&(_.corked--,!_.writing&&!_.corked&&!_.bufferProcessing&&_.bufferedRequest&&se(this,_))},X.prototype.setDefaultEncoding=function(m){if(typeof m=="string"&&(m=m.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((m+"").toLowerCase())>-1))throw new F(m);return this._writableState.defaultEncoding=m,this},Object.defineProperty(X.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function j(_,m,T){return!_.objectMode&&_.decodeStrings!==!1&&typeof m=="string"&&(m=o.from(m,T)),m}Object.defineProperty(X.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function L(_,m,T,$,z,d){if(!T){var p=j(m,$,z);$!==p&&(T=!0,z="buffer",$=p)}var M=m.objectMode?1:$.length;m.length+=M;var C=m.length<m.highWaterMark;if(C||(m.needDrain=!0),m.writing||m.corked){var re=m.lastBufferedRequest;m.lastBufferedRequest={chunk:$,encoding:z,isBuf:T,callback:d,next:null},re?re.next=m.lastBufferedRequest:m.bufferedRequest=m.lastBufferedRequest,m.bufferedRequestCount+=1}else N(_,m,!1,M,$,z,d);return C}function N(_,m,T,$,z,d,p){m.writelen=$,m.writecb=p,m.writing=!0,m.sync=!0,m.destroyed?m.onwrite(new O("write")):T?_._writev(z,m.onwrite):_._write(z,d,m.onwrite),m.sync=!1}function B(_,m,T,$,z){--m.pendingcb,T?(process.nextTick(z,$),process.nextTick(ce,_,m),_._writableState.errorEmitted=!0,k(_,$)):(z($),_._writableState.errorEmitted=!0,k(_,$),ce(_,m))}function U(_){_.writing=!1,_.writecb=null,_.length-=_.writelen,_.writelen=0}function W(_,m){var T=_._writableState,$=T.sync,z=T.writecb;if(typeof z!="function")throw new x;if(U(T),m)B(_,T,$,m,z);else{var d=_e(T)||_.destroyed;!d&&!T.corked&&!T.bufferProcessing&&T.bufferedRequest&&se(_,T),$?process.nextTick(H,_,T,d,z):H(_,T,d,z)}}function H(_,m,T,$){T||J(_,m),m.pendingcb--,$(),ce(_,m)}function J(_,m){m.length===0&&m.needDrain&&(m.needDrain=!1,_.emit("drain"))}function se(_,m){m.bufferProcessing=!0;var T=m.bufferedRequest;if(_._writev&&T&&T.next){var $=m.bufferedRequestCount,z=new Array($),d=m.corkedRequestsFree;d.entry=T;for(var p=0,M=!0;T;)z[p]=T,T.isBuf||(M=!1),T=T.next,p+=1;z.allBuffers=M,N(_,m,!0,m.length,z,"",d.finish),m.pendingcb++,m.lastBufferedRequest=null,d.next?(m.corkedRequestsFree=d.next,d.next=null):m.corkedRequestsFree=new e(m),m.bufferedRequestCount=0}else{for(;T;){var C=T.chunk,re=T.encoding,Z=T.callback,V=m.objectMode?1:C.length;if(N(_,m,!1,V,C,re,Z),T=T.next,m.bufferedRequestCount--,m.writing)break}T===null&&(m.lastBufferedRequest=null)}m.bufferedRequest=T,m.bufferProcessing=!1}X.prototype._write=function(_,m,T){T(new A("_write()"))},X.prototype._writev=null,X.prototype.end=function(_,m,T){var $=this._writableState;return typeof _=="function"?(T=_,_=null,m=null):typeof m=="function"&&(T=m,m=null),_!=null&&this.write(_,m),$.corked&&($.corked=1,this.uncork()),$.ending||ae(this,$,T),this},Object.defineProperty(X.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function _e(_){return _.ending&&_.length===0&&_.bufferedRequest===null&&!_.finished&&!_.writing}function Q(_,m){_._final(function(T){m.pendingcb--,T&&k(_,T),m.prefinished=!0,_.emit("prefinish"),ce(_,m)})}function ee(_,m){!m.prefinished&&!m.finalCalled&&(typeof _._final=="function"&&!m.destroyed?(m.pendingcb++,m.finalCalled=!0,process.nextTick(Q,_,m)):(m.prefinished=!0,_.emit("prefinish")))}function ce(_,m){var T=_e(m);if(T&&(ee(_,m),m.pendingcb===0&&(m.finished=!0,_.emit("finish"),m.autoDestroy))){var $=_._readableState;(!$||$.autoDestroy&&$.endEmitted)&&_.destroy()}return T}function ae(_,m,T){m.ending=!0,ce(_,m),T&&(m.finished?process.nextTick(T):_.once("finish",T)),m.ended=!0,_.writable=!1}function ye(_,m,T){var $=_.entry;for(_.entry=null;$;){var z=$.callback;m.pendingcb--,z(T),$=$.next}m.corkedRequestsFree.next=_}return Object.defineProperty(X.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(m){this._writableState&&(this._writableState.destroyed=m)}}),X.prototype.destroy=h.destroy,X.prototype._undestroy=h.undestroy,X.prototype._destroy=function(_,m){m(_)},Ft}var Pt,Fr;function tt(){if(Fr)return Pt;Fr=1;var e=Object.keys||function(v){var g=[];for(var w in v)g.push(w);return g};Pt=l;var t=li(),r=fi();$e(l,t);for(var a=e(r.prototype),o=0;o<a.length;o++){var s=a[o];l.prototype[s]||(l.prototype[s]=r.prototype[s])}function l(v){if(!(this instanceof l))return new l(v);t.call(this,v),r.call(this,v),this.allowHalfOpen=!0,v&&(v.readable===!1&&(this.readable=!1),v.writable===!1&&(this.writable=!1),v.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",f)))}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(l.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function f(){this._writableState.ended||process.nextTick(h,this)}function h(v){v.end()}return Object.defineProperty(l.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(g){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=g,this._writableState.destroyed=g)}}),Pt}var Pr=Xe.codes.ERR_STREAM_PREMATURE_CLOSE;function To(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];e.apply(this,a)}}}function Ao(){}function Oo(e){return e.setHeader&&typeof e.abort=="function"}function ui(e,t,r){if(typeof t=="function")return ui(e,null,t);t||(t={}),r=To(r||Ao);var a=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||f()},l=e._writableState&&e._writableState.finished,f=function(){o=!1,l=!0,a||r.call(e)},h=e._readableState&&e._readableState.endEmitted,v=function(){a=!1,h=!0,o||r.call(e)},g=function(x){r.call(e,x)},w=function(){var x;if(a&&!h)return(!e._readableState||!e._readableState.ended)&&(x=new Pr),r.call(e,x);if(o&&!l)return(!e._writableState||!e._writableState.ended)&&(x=new Pr),r.call(e,x)},E=function(){e.req.on("finish",f)};return Oo(e)?(e.on("complete",f),e.on("abort",w),e.req?E():e.on("request",E)):o&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",v),e.on("finish",f),t.error!==!1&&e.on("error",g),e.on("close",w),function(){e.removeListener("complete",f),e.removeListener("abort",w),e.removeListener("request",E),e.req&&e.req.removeListener("finish",f),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",f),e.removeListener("end",v),e.removeListener("error",g),e.removeListener("close",w)}}var yr=ui,Ut,Ur;function Bo(){if(Ur)return Ut;Ur=1;var e;function t(F,k,P){return k=r(k),k in F?Object.defineProperty(F,k,{value:P,enumerable:!0,configurable:!0,writable:!0}):F[k]=P,F}function r(F){var k=a(F,"string");return typeof k=="symbol"?k:String(k)}function a(F,k){if(typeof F!="object"||F===null)return F;var P=F[Symbol.toPrimitive];if(P!==void 0){var G=P.call(F,k||"default");if(typeof G!="object")return G;throw new TypeError("@@toPrimitive must return a primitive value.")}return(k==="string"?String:Number)(F)}var o=yr,s=Symbol("lastResolve"),l=Symbol("lastReject"),f=Symbol("error"),h=Symbol("ended"),v=Symbol("lastPromise"),g=Symbol("handlePromise"),w=Symbol("stream");function E(F,k){return{value:F,done:k}}function A(F){var k=F[s];if(k!==null){var P=F[w].read();P!==null&&(F[v]=null,F[s]=null,F[l]=null,k(E(P,!1)))}}function x(F){process.nextTick(A,F)}function S(F,k){return function(P,G){F.then(function(){if(k[h]){P(E(void 0,!0));return}k[g](P,G)},G)}}var O=Object.getPrototypeOf(function(){}),I=Object.setPrototypeOf((e={get stream(){return this[w]},next:function(){var k=this,P=this[f];if(P!==null)return Promise.reject(P);if(this[h])return Promise.resolve(E(void 0,!0));if(this[w].destroyed)return new Promise(function(q,me){process.nextTick(function(){k[f]?me(k[f]):q(E(void 0,!0))})});var G=this[v],te;if(G)te=new Promise(S(G,this));else{var X=this[w].read();if(X!==null)return Promise.resolve(E(X,!1));te=new Promise(this[g])}return this[v]=te,te}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var k=this;return new Promise(function(P,G){k[w].destroy(null,function(te){if(te){G(te);return}P(E(void 0,!0))})})}),e),O),D=function(k){var P,G=Object.create(I,(P={},t(P,w,{value:k,writable:!0}),t(P,s,{value:null,writable:!0}),t(P,l,{value:null,writable:!0}),t(P,f,{value:null,writable:!0}),t(P,h,{value:k._readableState.endEmitted,writable:!0}),t(P,g,{value:function(X,q){var me=G[w].read();me?(G[v]=null,G[s]=null,G[l]=null,X(E(me,!1))):(G[s]=X,G[l]=q)},writable:!0}),P));return G[v]=null,o(k,function(te){if(te&&te.code!=="ERR_STREAM_PREMATURE_CLOSE"){var X=G[l];X!==null&&(G[v]=null,G[s]=null,G[l]=null,X(te)),G[f]=te;return}var q=G[s];q!==null&&(G[v]=null,G[s]=null,G[l]=null,q(E(void 0,!0))),G[h]=!0}),k.on("readable",x.bind(null,G)),G};return Ut=D,Ut}var $t,$r;function Io(){return $r||($r=1,$t=function(){throw new Error("Readable.from is not available in the browser")}),$t}var Dt,Dr;function li(){if(Dr)return Dt;Dr=1,Dt=q;var e;q.ReadableState=X,pr.EventEmitter;var t=function(p,M){return p.listeners(M).length},r=ni,a=rt.Buffer,o=(typeof he<"u"?he:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(d){return a.from(d)}function l(d){return a.isBuffer(d)||d instanceof o}var f=ii,h;f&&f.debuglog?h=f.debuglog("stream"):h=function(){};var v=po(),g=ai,w=si,E=w.getHighWaterMark,A=Xe.codes,x=A.ERR_INVALID_ARG_TYPE,S=A.ERR_STREAM_PUSH_AFTER_EOF,O=A.ERR_METHOD_NOT_IMPLEMENTED,I=A.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,D,F,k;$e(q,r);var P=g.errorOrDestroy,G=["error","close","destroy","pause","resume"];function te(d,p,M){if(typeof d.prependListener=="function")return d.prependListener(p,M);!d._events||!d._events[p]?d.on(p,M):Array.isArray(d._events[p])?d._events[p].unshift(M):d._events[p]=[M,d._events[p]]}function X(d,p,M){e=e||tt(),d=d||{},typeof M!="boolean"&&(M=p instanceof e),this.objectMode=!!d.objectMode,M&&(this.objectMode=this.objectMode||!!d.readableObjectMode),this.highWaterMark=E(this,d,"readableHighWaterMark",M),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=d.emitClose!==!1,this.autoDestroy=!!d.autoDestroy,this.destroyed=!1,this.defaultEncoding=d.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,d.encoding&&(D||(D=yt.StringDecoder),this.decoder=new D(d.encoding),this.encoding=d.encoding)}function q(d){if(e=e||tt(),!(this instanceof q))return new q(d);var p=this instanceof e;this._readableState=new X(d,this,p),this.readable=!0,d&&(typeof d.read=="function"&&(this._read=d.read),typeof d.destroy=="function"&&(this._destroy=d.destroy)),r.call(this)}Object.defineProperty(q.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(p){this._readableState&&(this._readableState.destroyed=p)}}),q.prototype.destroy=g.destroy,q.prototype._undestroy=g.undestroy,q.prototype._destroy=function(d,p){p(d)},q.prototype.push=function(d,p){var M=this._readableState,C;return M.objectMode?C=!0:typeof d=="string"&&(p=p||M.defaultEncoding,p!==M.encoding&&(d=a.from(d,p),p=""),C=!0),me(this,d,p,!1,C)},q.prototype.unshift=function(d){return me(this,d,null,!0,!1)};function me(d,p,M,C,re){h("readableAddChunk",p);var Z=d._readableState;if(p===null)Z.reading=!1,W(d,Z);else{var V;if(re||(V=L(Z,p)),V)P(d,V);else if(Z.objectMode||p&&p.length>0)if(typeof p!="string"&&!Z.objectMode&&Object.getPrototypeOf(p)!==a.prototype&&(p=s(p)),C)Z.endEmitted?P(d,new I):j(d,Z,p,!0);else if(Z.ended)P(d,new S);else{if(Z.destroyed)return!1;Z.reading=!1,Z.decoder&&!M?(p=Z.decoder.write(p),Z.objectMode||p.length!==0?j(d,Z,p,!1):se(d,Z)):j(d,Z,p,!1)}else C||(Z.reading=!1,se(d,Z))}return!Z.ended&&(Z.length<Z.highWaterMark||Z.length===0)}function j(d,p,M,C){p.flowing&&p.length===0&&!p.sync?(p.awaitDrain=0,d.emit("data",M)):(p.length+=p.objectMode?1:M.length,C?p.buffer.unshift(M):p.buffer.push(M),p.needReadable&&H(d)),se(d,p)}function L(d,p){var M;return!l(p)&&typeof p!="string"&&p!==void 0&&!d.objectMode&&(M=new x("chunk",["string","Buffer","Uint8Array"],p)),M}q.prototype.isPaused=function(){return this._readableState.flowing===!1},q.prototype.setEncoding=function(d){D||(D=yt.StringDecoder);var p=new D(d);this._readableState.decoder=p,this._readableState.encoding=this._readableState.decoder.encoding;for(var M=this._readableState.buffer.head,C="";M!==null;)C+=p.write(M.data),M=M.next;return this._readableState.buffer.clear(),C!==""&&this._readableState.buffer.push(C),this._readableState.length=C.length,this};var N=1073741824;function B(d){return d>=N?d=N:(d--,d|=d>>>1,d|=d>>>2,d|=d>>>4,d|=d>>>8,d|=d>>>16,d++),d}function U(d,p){return d<=0||p.length===0&&p.ended?0:p.objectMode?1:d!==d?p.flowing&&p.length?p.buffer.head.data.length:p.length:(d>p.highWaterMark&&(p.highWaterMark=B(d)),d<=p.length?d:p.ended?p.length:(p.needReadable=!0,0))}q.prototype.read=function(d){h("read",d),d=parseInt(d,10);var p=this._readableState,M=d;if(d!==0&&(p.emittedReadable=!1),d===0&&p.needReadable&&((p.highWaterMark!==0?p.length>=p.highWaterMark:p.length>0)||p.ended))return h("read: emitReadable",p.length,p.ended),p.length===0&&p.ended?T(this):H(this),null;if(d=U(d,p),d===0&&p.ended)return p.length===0&&T(this),null;var C=p.needReadable;h("need readable",C),(p.length===0||p.length-d<p.highWaterMark)&&(C=!0,h("length less than watermark",C)),p.ended||p.reading?(C=!1,h("reading or ended",C)):C&&(h("do read"),p.reading=!0,p.sync=!0,p.length===0&&(p.needReadable=!0),this._read(p.highWaterMark),p.sync=!1,p.reading||(d=U(M,p)));var re;return d>0?re=m(d,p):re=null,re===null?(p.needReadable=p.length<=p.highWaterMark,d=0):(p.length-=d,p.awaitDrain=0),p.length===0&&(p.ended||(p.needReadable=!0),M!==d&&p.ended&&T(this)),re!==null&&this.emit("data",re),re};function W(d,p){if(h("onEofChunk"),!p.ended){if(p.decoder){var M=p.decoder.end();M&&M.length&&(p.buffer.push(M),p.length+=p.objectMode?1:M.length)}p.ended=!0,p.sync?H(d):(p.needReadable=!1,p.emittedReadable||(p.emittedReadable=!0,J(d)))}}function H(d){var p=d._readableState;h("emitReadable",p.needReadable,p.emittedReadable),p.needReadable=!1,p.emittedReadable||(h("emitReadable",p.flowing),p.emittedReadable=!0,process.nextTick(J,d))}function J(d){var p=d._readableState;h("emitReadable_",p.destroyed,p.length,p.ended),!p.destroyed&&(p.length||p.ended)&&(d.emit("readable"),p.emittedReadable=!1),p.needReadable=!p.flowing&&!p.ended&&p.length<=p.highWaterMark,_(d)}function se(d,p){p.readingMore||(p.readingMore=!0,process.nextTick(_e,d,p))}function _e(d,p){for(;!p.reading&&!p.ended&&(p.length<p.highWaterMark||p.flowing&&p.length===0);){var M=p.length;if(h("maybeReadMore read 0"),d.read(0),M===p.length)break}p.readingMore=!1}q.prototype._read=function(d){P(this,new O("_read()"))},q.prototype.pipe=function(d,p){var M=this,C=this._readableState;switch(C.pipesCount){case 0:C.pipes=d;break;case 1:C.pipes=[C.pipes,d];break;default:C.pipes.push(d);break}C.pipesCount+=1,h("pipe count=%d opts=%j",C.pipesCount,p);var re=(!p||p.end!==!1)&&d!==process.stdout&&d!==process.stderr,Z=re?Te:qe;C.endEmitted?process.nextTick(Z):M.once("end",Z),d.on("unpipe",V);function V(u,n){h("onunpipe"),u===M&&n&&n.hasUnpiped===!1&&(n.hasUnpiped=!0,Qe())}function Te(){h("onend"),d.end()}var Ye=Q(M);d.on("drain",Ye);var it=!1;function Qe(){h("cleanup"),d.removeListener("close",at),d.removeListener("finish",Re),d.removeListener("drain",Ye),d.removeListener("error",ze),d.removeListener("unpipe",V),M.removeListener("end",Te),M.removeListener("end",qe),M.removeListener("data",Ee),it=!0,C.awaitDrain&&(!d._writableState||d._writableState.needDrain)&&Ye()}M.on("data",Ee);function Ee(u){h("ondata");var n=d.write(u);h("dest.write",n),n===!1&&((C.pipesCount===1&&C.pipes===d||C.pipesCount>1&&z(C.pipes,d)!==-1)&&!it&&(h("false write response, pause",C.awaitDrain),C.awaitDrain++),M.pause())}function ze(u){h("onerror",u),qe(),d.removeListener("error",ze),t(d,"error")===0&&P(d,u)}te(d,"error",ze);function at(){d.removeListener("finish",Re),qe()}d.once("close",at);function Re(){h("onfinish"),d.removeListener("close",at),qe()}d.once("finish",Re);function qe(){h("unpipe"),M.unpipe(d)}return d.emit("pipe",M),C.flowing||(h("pipe resume"),M.resume()),d};function Q(d){return function(){var M=d._readableState;h("pipeOnDrain",M.awaitDrain),M.awaitDrain&&M.awaitDrain--,M.awaitDrain===0&&t(d,"data")&&(M.flowing=!0,_(d))}}q.prototype.unpipe=function(d){var p=this._readableState,M={hasUnpiped:!1};if(p.pipesCount===0)return this;if(p.pipesCount===1)return d&&d!==p.pipes?this:(d||(d=p.pipes),p.pipes=null,p.pipesCount=0,p.flowing=!1,d&&d.emit("unpipe",this,M),this);if(!d){var C=p.pipes,re=p.pipesCount;p.pipes=null,p.pipesCount=0,p.flowing=!1;for(var Z=0;Z<re;Z++)C[Z].emit("unpipe",this,{hasUnpiped:!1});return this}var V=z(p.pipes,d);return V===-1?this:(p.pipes.splice(V,1),p.pipesCount-=1,p.pipesCount===1&&(p.pipes=p.pipes[0]),d.emit("unpipe",this,M),this)},q.prototype.on=function(d,p){var M=r.prototype.on.call(this,d,p),C=this._readableState;return d==="data"?(C.readableListening=this.listenerCount("readable")>0,C.flowing!==!1&&this.resume()):d==="readable"&&!C.endEmitted&&!C.readableListening&&(C.readableListening=C.needReadable=!0,C.flowing=!1,C.emittedReadable=!1,h("on readable",C.length,C.reading),C.length?H(this):C.reading||process.nextTick(ce,this)),M},q.prototype.addListener=q.prototype.on,q.prototype.removeListener=function(d,p){var M=r.prototype.removeListener.call(this,d,p);return d==="readable"&&process.nextTick(ee,this),M},q.prototype.removeAllListeners=function(d){var p=r.prototype.removeAllListeners.apply(this,arguments);return(d==="readable"||d===void 0)&&process.nextTick(ee,this),p};function ee(d){var p=d._readableState;p.readableListening=d.listenerCount("readable")>0,p.resumeScheduled&&!p.paused?p.flowing=!0:d.listenerCount("data")>0&&d.resume()}function ce(d){h("readable nexttick read 0"),d.read(0)}q.prototype.resume=function(){var d=this._readableState;return d.flowing||(h("resume"),d.flowing=!d.readableListening,ae(this,d)),d.paused=!1,this};function ae(d,p){p.resumeScheduled||(p.resumeScheduled=!0,process.nextTick(ye,d,p))}function ye(d,p){h("resume",p.reading),p.reading||d.read(0),p.resumeScheduled=!1,d.emit("resume"),_(d),p.flowing&&!p.reading&&d.read(0)}q.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function _(d){var p=d._readableState;for(h("flow",p.flowing);p.flowing&&d.read()!==null;);}q.prototype.wrap=function(d){var p=this,M=this._readableState,C=!1;d.on("end",function(){if(h("wrapped end"),M.decoder&&!M.ended){var V=M.decoder.end();V&&V.length&&p.push(V)}p.push(null)}),d.on("data",function(V){if(h("wrapped data"),M.decoder&&(V=M.decoder.write(V)),!(M.objectMode&&V==null)&&!(!M.objectMode&&(!V||!V.length))){var Te=p.push(V);Te||(C=!0,d.pause())}});for(var re in d)this[re]===void 0&&typeof d[re]=="function"&&(this[re]=function(Te){return function(){return d[Te].apply(d,arguments)}}(re));for(var Z=0;Z<G.length;Z++)d.on(G[Z],this.emit.bind(this,G[Z]));return this._read=function(V){h("wrapped _read",V),C&&(C=!1,d.resume())},this},typeof Symbol=="function"&&(q.prototype[Symbol.asyncIterator]=function(){return F===void 0&&(F=Bo()),F(this)}),Object.defineProperty(q.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(q.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(q.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(p){this._readableState&&(this._readableState.flowing=p)}}),q._fromList=m,Object.defineProperty(q.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function m(d,p){if(p.length===0)return null;var M;return p.objectMode?M=p.buffer.shift():!d||d>=p.length?(p.decoder?M=p.buffer.join(""):p.buffer.length===1?M=p.buffer.first():M=p.buffer.concat(p.length),p.buffer.clear()):M=p.buffer.consume(d,p.decoder),M}function T(d){var p=d._readableState;h("endReadable",p.endEmitted),p.endEmitted||(p.ended=!0,process.nextTick($,p,d))}function $(d,p){if(h("endReadableNT",d.endEmitted,d.length),!d.endEmitted&&d.length===0&&(d.endEmitted=!0,p.readable=!1,p.emit("end"),d.autoDestroy)){var M=p._writableState;(!M||M.autoDestroy&&M.finished)&&p.destroy()}}typeof Symbol=="function"&&(q.from=function(d,p){return k===void 0&&(k=Io()),k(q,d,p)});function z(d,p){for(var M=0,C=d.length;M<C;M++)if(d[M]===p)return M;return-1}return Dt}var hi=ke,Tt=Xe.codes,Lo=Tt.ERR_METHOD_NOT_IMPLEMENTED,No=Tt.ERR_MULTIPLE_CALLBACK,Co=Tt.ERR_TRANSFORM_ALREADY_TRANSFORMING,ko=Tt.ERR_TRANSFORM_WITH_LENGTH_0,At=tt();$e(ke,At);function Fo(e,t){var r=this._transformState;r.transforming=!1;var a=r.writecb;if(a===null)return this.emit("error",new No);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),a(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function ke(e){if(!(this instanceof ke))return new ke(e);At.call(this,e),this._transformState={afterTransform:Fo.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Po)}function Po(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){jr(e,t,r)}):jr(this,null,null)}ke.prototype.push=function(e,t){return this._transformState.needTransform=!1,At.prototype.push.call(this,e,t)};ke.prototype._transform=function(e,t,r){r(new Lo("_transform()"))};ke.prototype._write=function(e,t,r){var a=this._transformState;if(a.writecb=r,a.writechunk=e,a.writeencoding=t,!a.transforming){var o=this._readableState;(a.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}};ke.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};ke.prototype._destroy=function(e,t){At.prototype._destroy.call(this,e,function(r){t(r)})};function jr(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new ko;if(e._transformState.transforming)throw new Co;return e.push(null)}var Uo=ft,ci=hi;$e(ft,ci);function ft(e){if(!(this instanceof ft))return new ft(e);ci.call(this,e)}ft.prototype._transform=function(e,t,r){r(null,e)};var jt;function $o(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var di=Xe.codes,Do=di.ERR_MISSING_ARGS,jo=di.ERR_STREAM_DESTROYED;function zr(e){if(e)throw e}function zo(e){return e.setHeader&&typeof e.abort=="function"}function qo(e,t,r,a){a=$o(a);var o=!1;e.on("close",function(){o=!0}),jt===void 0&&(jt=yr),jt(e,{readable:t,writable:r},function(l){if(l)return a(l);o=!0,a()});var s=!1;return function(l){if(!o&&!s){if(s=!0,zo(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();a(l||new jo("pipe"))}}}function qr(e){e()}function Go(e,t){return e.pipe(t)}function Wo(e){return!e.length||typeof e[e.length-1]!="function"?zr:e.pop()}function Ho(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=Wo(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Do("streams");var o,s=t.map(function(l,f){var h=f<t.length-1,v=f>0;return qo(l,h,v,function(g){o||(o=g),g&&s.forEach(qr),!h&&(s.forEach(qr),a(o))})});return t.reduce(Go)}var Zo=Ho;(function(e,t){t=e.exports=li(),t.Stream=t,t.Readable=t,t.Writable=fi(),t.Duplex=tt(),t.Transform=hi,t.PassThrough=Uo,t.finished=yr,t.pipeline=Zo})(Yt,Yt.exports);var mr=Yt.exports,Xo=function(e,t,r){for(var a=Math.min(r-t,e.length),o=[],s=null,l=-1;!s&&++l<a;){var f=e[l];f===`
`?o.length+l&&(s="drill",o=[]):(o.push(f),f==="*"&&o[0]!==";"&&(s="gerber",o=[]))}return s},Yo=Xo,Qo=function(e,t,r){if(e!=="gerber"&&e!=="drill")throw new Error('filetype to get next block must be "drill" or "gerber"');for(var a=t.length-r,o=e==="gerber"?"*":`
`,s=e==="gerber"?"%":"",l=!1,f=!1,h=!1,v=!1,g=[],w=0,E=0;!v&&w<a;){var A=t[r+w];A===`
`&&E++,A===s?f?(h=!0,g.pop()):(f=!0,g.push(A)):A===o?(l=!0,f&&g.push(A)):A>=" "&&A<="~"&&g.push(A),w++,v=l&&(!f||h)}var x=v?g.join("").trim():"",S=v?"":g.join("");return{lines:E,read:w,block:x,rem:S}},Vo=Qo,Ko=function(e){return{type:"done",line:e||-1}},Jo=function(e,t,r){return{type:"set",line:r||-1,prop:e,value:t}},es=function(e,t,r){return{type:"level",line:r||-1,level:e,value:t}},ts=function(e,t,r){return{type:"tool",line:r||-1,code:e,tool:t}},rs=function(e,t,r){return{type:"op",line:r||-1,op:e,coord:t}},ns=function(e,t,r){return{type:"macro",line:r||-1,name:e,blocks:t}},is={set:Jo,done:Ko,level:es,tool:ts,op:rs,macro:ns},pi=is,Vt=1/0,as=9007199254740991,os=17976931348623157e292,Gr=0/0,ss="[object Symbol]",fs=/^\s+|\s+$/g,us=/^[-+]0x[0-9a-f]+$/i,ls=/^0b[01]+$/i,hs=/^0o[0-7]+$/i,wr="\\ud800-\\udfff",vi="\\u0300-\\u036f\\ufe20-\\ufe23",gi="\\u20d0-\\u20f0",yi="\\ufe0e\\ufe0f",cs="["+wr+"]",Kt="["+vi+gi+"]",Jt="\\ud83c[\\udffb-\\udfff]",ds="(?:"+Kt+"|"+Jt+")",mi="[^"+wr+"]",wi="(?:\\ud83c[\\udde6-\\uddff]){2}",_i="[\\ud800-\\udbff][\\udc00-\\udfff]",bi="\\u200d",Ei=ds+"?",xi="["+yi+"]?",ps="(?:"+bi+"(?:"+[mi,wi,_i].join("|")+")"+xi+Ei+")*",vs=xi+Ei+ps,gs="(?:"+[mi+Kt+"?",Kt,wi,_i,cs].join("|")+")",er=RegExp(Jt+"(?="+Jt+")|"+gs+vs,"g"),ys=RegExp("["+bi+wr+vi+gi+yi+"]"),ms=parseInt,ws=typeof he=="object"&&he&&he.Object===Object&&he,_s=typeof self=="object"&&self&&self.Object===Object&&self,bs=ws||_s||Function("return this")(),Es=Rs("length");function xs(e){return e.split("")}function Rs(e){return function(t){return t==null?void 0:t[e]}}function _r(e){return ys.test(e)}function Ri(e){return _r(e)?Ms(e):Es(e)}function Ss(e){return _r(e)?Ts(e):xs(e)}function Ms(e){for(var t=er.lastIndex=0;er.test(e);)t++;return t}function Ts(e){return e.match(er)||[]}var As=Object.prototype,Os=As.toString,Wr=bs.Symbol,Bs=Math.ceil,Is=Math.floor,Hr=Wr?Wr.prototype:void 0,Zr=Hr?Hr.toString:void 0;function Xr(e,t){var r="";if(!e||t<1||t>as)return r;do t%2&&(r+=e),t=Is(t/2),t&&(e+=e);while(t);return r}function Ls(e,t,r){var a=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++a<o;)s[a]=e[a+t];return s}function Si(e){if(typeof e=="string")return e;if(Mi(e))return Zr?Zr.call(e):"";var t=e+"";return t=="0"&&1/e==-Vt?"-0":t}function Ns(e,t,r){var a=e.length;return r=r===void 0?a:r,!t&&r>=a?e:Ls(e,t,r)}function Cs(e,t){t=t===void 0?" ":Si(t);var r=t.length;if(r<2)return r?Xr(t,e):t;var a=Xr(t,Bs(e/Ri(t)));return _r(t)?Ns(Ss(a),0,e).join(""):a.slice(0,e)}function Yr(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function ks(e){return!!e&&typeof e=="object"}function Mi(e){return typeof e=="symbol"||ks(e)&&Os.call(e)==ss}function Fs(e){if(!e)return e===0?e:0;if(e=Us(e),e===Vt||e===-Vt){var t=e<0?-1:1;return t*os}return e===e?e:0}function Ps(e){var t=Fs(e),r=t%1;return t===t?r?t-r:t:0}function Us(e){if(typeof e=="number")return e;if(Mi(e))return Gr;if(Yr(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Yr(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(fs,"");var r=ls.test(e);return r||hs.test(e)?ms(e.slice(2),r?2:8):us.test(e)?Gr:+e}function $s(e){return e==null?"":Si(e)}function Ds(e,t,r){e=$s(e),t=Ps(t);var a=t?Ri(e):0;return t&&a<t?Cs(t-a,r)+e:e}var js=Ds,tr=1/0,zs=9007199254740991,qs=17976931348623157e292,Qr=0/0,Gs="[object Symbol]",Ws=/^\s+|\s+$/g,Hs=/^[-+]0x[0-9a-f]+$/i,Zs=/^0b[01]+$/i,Xs=/^0o[0-7]+$/i,br="\\ud800-\\udfff",Ti="\\u0300-\\u036f\\ufe20-\\ufe23",Ai="\\u20d0-\\u20f0",Oi="\\ufe0e\\ufe0f",Ys="["+br+"]",rr="["+Ti+Ai+"]",nr="\\ud83c[\\udffb-\\udfff]",Qs="(?:"+rr+"|"+nr+")",Bi="[^"+br+"]",Ii="(?:\\ud83c[\\udde6-\\uddff]){2}",Li="[\\ud800-\\udbff][\\udc00-\\udfff]",Ni="\\u200d",Ci=Qs+"?",ki="["+Oi+"]?",Vs="(?:"+Ni+"(?:"+[Bi,Ii,Li].join("|")+")"+ki+Ci+")*",Ks=ki+Ci+Vs,Js="(?:"+[Bi+rr+"?",rr,Ii,Li,Ys].join("|")+")",ir=RegExp(nr+"(?="+nr+")|"+Js+Ks,"g"),ef=RegExp("["+Ni+br+Ti+Ai+Oi+"]"),tf=parseInt,rf=typeof he=="object"&&he&&he.Object===Object&&he,nf=typeof self=="object"&&self&&self.Object===Object&&self,af=rf||nf||Function("return this")(),of=ff("length");function sf(e){return e.split("")}function ff(e){return function(t){return t==null?void 0:t[e]}}function Er(e){return ef.test(e)}function Fi(e){return Er(e)?lf(e):of(e)}function uf(e){return Er(e)?hf(e):sf(e)}function lf(e){for(var t=ir.lastIndex=0;ir.test(e);)t++;return t}function hf(e){return e.match(ir)||[]}var cf=Object.prototype,df=cf.toString,Vr=af.Symbol,pf=Math.ceil,vf=Math.floor,Kr=Vr?Vr.prototype:void 0,Jr=Kr?Kr.toString:void 0;function en(e,t){var r="";if(!e||t<1||t>zs)return r;do t%2&&(r+=e),t=vf(t/2),t&&(e+=e);while(t);return r}function gf(e,t,r){var a=-1,o=e.length;t<0&&(t=-t>o?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++a<o;)s[a]=e[a+t];return s}function Pi(e){if(typeof e=="string")return e;if(Ui(e))return Jr?Jr.call(e):"";var t=e+"";return t=="0"&&1/e==-tr?"-0":t}function yf(e,t,r){var a=e.length;return r=r===void 0?a:r,!t&&r>=a?e:gf(e,t,r)}function mf(e,t){t=t===void 0?" ":Pi(t);var r=t.length;if(r<2)return r?en(t,e):t;var a=en(t,pf(e/Fi(t)));return Er(t)?yf(uf(a),0,e).join(""):a.slice(0,e)}function tn(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function wf(e){return!!e&&typeof e=="object"}function Ui(e){return typeof e=="symbol"||wf(e)&&df.call(e)==Gs}function _f(e){if(!e)return e===0?e:0;if(e=Ef(e),e===tr||e===-tr){var t=e<0?-1:1;return t*qs}return e===e?e:0}function bf(e){var t=_f(e),r=t%1;return t===t?r?t-r:t:0}function Ef(e){if(typeof e=="number")return e;if(Ui(e))return Qr;if(tn(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=tn(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Ws,"");var r=Zs.test(e);return r||Xs.test(e)?tf(e.slice(2),r?2:8):Hs.test(e)?Qr:+e}function xf(e){return e==null?"":Pi(e)}function Rf(e,t,r){e=xf(e),t=bf(t);var a=t?Fi(e):0;return t&&a<t?e+mf(t-a,r):e}var Sf=Rf,rn=ut,Mf=js,Tf=Sf,Af=function(e,t){if(e==null)return NaN;var r=""+e,a="+";(r[0]==="-"||r[0]==="+")&&(a=r[0],r=r.slice(1));var o=r.indexOf(".")!==-1;if(o||t==null||t.zero==null)return Number(a+r);if(t.places==null||t.places.length!==2)return NaN;var s=t.places[0],l=t.places[1];if(!rn(s)||!rn(l))return NaN;if(t.zero==="T")r=Tf(r,s+l,"0");else if(t.zero==="L")r=Mf(r,s+l,"0");else return NaN;var f=r.slice(0,s),h=r.slice(s,s+l);return+(a+f+"."+h)},xr=Af,Of=xr,Bf=/[XY]0\d+/,If=/[XY]\d+0(?=\D|$)/,Lf=[{coord:"x",test:/X([+-]?[\d.]+)/},{coord:"y",test:/Y([+-]?[\d.]+)/},{coord:"i",test:/I([+-]?[\d.]+)/},{coord:"j",test:/J([+-]?[\d.]+)/},{coord:"a",test:/A([\d.]+)/}],Nf=function(e,t){if(e==null)return{};if(t.zero==null||t.places==null)throw new Error("cannot parse coordinate with format undefined");var r=Lf.reduce(function(a,o){var s=e.match(o.test);return s&&(a[o.coord]=Of(s[1],t)),a},{});return r},Cf=function(e){return If.test(e)?"L":Bf.test(e)?"T":null},$i={parse:Nf,detectZero:Cf},kf=/[+\-/xX()]/,Di=/[$\d.]+/,Ff=new RegExp([kf.source,Di.source].join("|"),"g"),Pf=function(t,r){var a=r.match(Ff),o,s=function(){var v=a.shift(),g;return Di.test(v)?g={type:"n",val:v}:(g=o(),a.shift()),g},l=function(){var v=s(),g=a[0];for(g==="X"&&(t._warn("multiplication in macros should use 'x', not 'X'"),g="x");g==="x"||g==="/";){a.shift();var w=s();v={type:g,left:v,right:w},g=a[0]}return v};o=function(){for(var v=l(),g=a[0];g==="+"||g==="-";){a.shift();var w=l();v={type:g,left:v,right:w},g=a[0]}return v};var f=o(),h=function(v,g){var w=function(A){return A[0]==="$"?Number(g[A]):Number(A)},E=v.type;return E==="n"?w(v.val):E==="+"?h(v.left,g)+h(v.right,g):E==="-"?h(v.left,g)-h(v.right,g):E==="x"?h(v.left,g)*h(v.right,g):h(v.left,g)/h(v.right,g)};return function(v){return h(f,v)}},nn=Pf,Uf=/^-?[\d.]+$/,an=/^(\$[\d+])=(.+)/,$f=function(e,t){if(t[0]==="0")return{type:"comment"};if(an.test(t)){var r=t.match(an),a=r[1],o=r[2],s=nn(e,o),l=function(w){return w[a]=s(w),w};return{type:"variable",set:l}}var f=function(w){return Uf.test(w)?Number(w):nn(e,w)},h=t.split(",").map(f),v=h[0],g=h[1];if(v===1)return{type:"circle",exp:g,dia:h[2],cx:h[3],cy:h[4],rot:h[5]||0};if(v===2&&e._warn("macro aperture vector primitives with code 2 are deprecated"),v===2||v===20)return{type:"vect",exp:g,width:h[2],x1:h[3],y1:h[4],x2:h[5],y2:h[6],rot:h[7]};if(v===21)return{type:"rect",exp:g,width:h[2],height:h[3],cx:h[4],cy:h[5],rot:h[6]};if(v===22)return e._warn("macro aperture lower-left rectangle primitives are deprecated"),{type:"rectLL",exp:g,width:h[2],height:h[3],x:h[4],y:h[5],rot:h[6]};if(v===4)return{type:"outline",exp:g,points:h.slice(3,-1),rot:h[h.length-1]};if(v===5)return{type:"poly",exp:g,vertices:h[2],cx:h[3],cy:h[4],dia:h[5],rot:h[6]};if(v===6)return{type:"moire",exp:1,cx:h[1],cy:h[2],dia:h[3],ringThx:h[4],ringGap:h[5],maxRings:h[6],crossThx:h[7],crossLen:h[8],rot:h[9]};if(v===7)return{type:"thermal",exp:1,cx:h[1],cy:h[2],outerDia:h[3],innerDia:h[4],gap:h[5],rot:h[6]};e._warn(v+" is an unrecognized primitive for a macro aperture")},Df=$f,be=pi,Ge=xr,jf=$i,zf=Df,on=/^G0*([123])/,sn=/^G3([67])/,fn=/^G7([45])/,un=/^G7([01])/,ln=/^G9([01])/,qf=/^G0*4/,Gf=/^%TO[^%*]*/,hn=/^(?:G54)?D0*([1-9]\d+)/,cn=/D0*([123])$/,dn=/^(?:G0*[123])?((?:[XYIJ][+-]?\d+){1,4})(?:D0*[123])?$/,pn=/^%MO(IN|MM)/,vn=/^%FS([LT]?)([AI]?)(.*)X([0-7])([0-7])Y\4\5/,gn=/^%LP([CD])/,yn=/^%SR(?:X(\d+)Y(\d+)I([\d.]+)J([\d.]+))?/,ji=/^%ADD0*(\d{2,})([A-Za-z_$][\w\-.]*)(?:,((?:X?[\d.-]+)*))?/,zi=/^%AM([A-Za-z_$][\w\-.]*)\*?(.*)/,mn=/\*MO(IN|MM)$/,wn=function(e,t){var r=t==="IN"?"in":"mm";return e._push(be.set("units",r))},Wf=function(e,t){var r={places:e.format.places},a=t.match(ji),o=a[1],s=a[2],l=a[3]?a[3].split("X"):[],f,h;s==="C"?(f="circle",h=3):s==="R"?(f="rect",h=4):s==="O"?(f="obround",h=4):s==="P"?(f="poly",h=5):(f=s,h=0);var v;f==="circle"?v=[Ge(l[0],r)]:f==="rect"||f==="obround"?v=[Ge(l[0],r),Ge(l[1],r)]:f==="poly"?(v=[Ge(l[0],r),Number(l[1]),0],l[2]&&(v[2]=Number(l[2]))):v=l.map(Number);var g=[];l[h-1]?g=[Ge(l[h-2],r),Ge(l[h-1],r)]:l[h-2]&&(g=[Ge(l[h-2],r)]);var w={shape:f,params:v,hole:g};return e._push(be.tool(o,w))},Hf=function(e,t){var r=t.match(zi),a=r[1];a.match(/-/)&&e._warn("hyphens in macro name are illegal: "+a);var o=r[2].length?r[2].split("*"):[],s=o.filter(Boolean).map(function(l){return zf(e,l)});return e._push(be.macro(a,s))},Zf=function(e,t){if(!(qf.test(t)||Gf.test(t))){if(t==="M02")return e._push(be.done());if(sn.test(t)){var r=t.match(sn)[1],a=r==="6";return e._push(be.set("region",a))}if(fn.test(t)){var o=t.match(fn)[1],s=o==="4"?"s":"m";return e._push(be.set("arc",s))}if(pn.test(t)){var l=t.match(pn)[1];return wn(e,l)}if(un.test(t)){var f=t.match(un)[1],h=f==="0"?"in":"mm";return e._push(be.set("backupUnits",h))}if(vn.test(t)){var v=t.match(vn),g=v[1],w=v[2],E=v[3],A=Number(v[4]),x=Number(v[5]),S=e.format;S.zero=S.zero||g,S.places||(S.places=[A,x]),S.zero?S.zero==="T"&&e._warn("trailing zero suppression has been deprecated"):(S.zero="L",e._warn("zero suppression missing from format; assuming leading")),E&&e._warn('unknown characters "'+E+'" in "'+t+'" were ignored');var O=1.5*Math.pow(10,-S.places[1]);if(e._push(be.set("nota",w)),e._push(be.set("epsilon",O)),mn.test(t)){var I=t.match(mn)[1];wn(e,I)}return}if(ln.test(t)){var D=t.match(ln)[1],F=D==="0"?"A":"I";return e._push(be.set("backupNota",F))}if(gn.test(t)){var k=t.match(gn)[1];return e._push(be.level("polarity",k))}if(yn.test(t)){var P=t.match(yn),G=P[1]||1,te=P[2]||1,X=P[3]||0,q=P[4]||0,me={x:Number(G),y:Number(te),i:Number(X),j:Number(q)};return e._push(be.level("stepRep",me))}if(hn.test(t)){var j=t.match(hn)[1];return e._push(be.set("tool",j))}if(ji.test(t))return Wf(e,t);if(zi.test(t))return Hf(e,t);if(cn.test(t)||on.test(t)||dn.test(t)){var L=t.match(cn),N=t.match(on),B=t.match(dn),U;if(N&&(N[1]==="1"?U="i":N[1]==="2"?U="cw":U="ccw",e._push(be.set("mode",U))),L||B){var W=L?L[1]:"",H=B?B[1]:"",J=jf.parse(H,e.format),se="last";W==="1"?se="int":W==="2"?se="move":W==="3"&&(se="flash"),e._push(be.op(se,J))}return}return e._warn('block "'+t+'" was not recognized and was ignored')}},Xf=Zf,qi={DRILL:"5",MOVE:"0",LINEAR:"1",CW_ARC:"2",CCW_ARC:"3"},_n=ut,le=pi,ot=qi,Yf=xr,ar=$i,bn=/;FILE_FORMAT=(\d):(\d)/,En=/;TYPE=(PLATED|NON_PLATED)/,xn=/;FORMAT={(.):(.)\/ (absolute|.+)? \/ (metric|inch) \/.+(trailing|leading|decimal|keep)/,Gi=/^(INCH|METRIC|M71|M72)/,Wi=/,([TL])Z/,Qf=/,(0{1,8})\.(0{1,8})/,Rn=/T0*(\d+)[\S]*C([\d.]+)/,Sn=/T0*(\d+)(?![\S]*C)/,Rr=/((?:[XYIJA][+-]?[\d.]+){1,4})(?:G85((?:[XY][+-]?[\d.]+){1,2}))?/,Mn=/^G0([01235])/,Vf=function(e,t,r){var a={};if(xn.test(t)){var o=t.match(xn),s=Number(o[1]),l=Number(o[2]),f=o[3],h=o[4],v=o[5];_n(s)&&_n(l)&&(a.places=[s,l]),f==="absolute"?e._push(le.set("backupNota","A",r)):e._push(le.set("backupNota","I",r)),h==="metric"?e._push(le.set("backupUnits","mm",r)):e._push(le.set("backupUnits","in",r)),v==="leading"||v==="keep"?a.zero="L":v==="trailing"?a.zero="T":a.zero="D"}else if(bn.test(t)){var g=t.match(bn);a.places=[Number(g[1]),Number(g[2])]}else if(En.test(t)){var w=t.match(En),E=w[1]==="PLATED"?"pth":"npth";e._push(le.set("holePlating",E,r))}return a},Kf=function(e,t,r){var a=t.match(Gi),o=t.match(Wi),s=t.match(Qf),l=a[1]==="METRIC"||a[1]==="M71"?"mm":"in",f=o&&o[1];e.format.zero==null&&f&&(e.format.zero=f==="T"?"L":"T"),e.format.places==null&&(s?e.format.places=[s[1].length,s[2].length]:e.format.places=l==="in"?[2,4]:[3,3]),e._push(le.set("units",l,r))},Jf=function(e,t,r){var a=t.match(Rr),o=ar.parse(a[1],e.format);if(a[2])return e._push(le.op("move",o,r)),e._push(le.set("mode","i",r)),o=ar.parse(a[2],e.format),e._push(le.op("int",o,r));switch(Mn.test(t)&&(e._drillMode=t.match(Mn)[1]),e._drillMode){case ot.DRILL:return e._push(le.op("flash",o,r));case ot.MOVE:return e._push(le.op("move",o,r));case ot.LINEAR:return e._push(le.set("mode","i",r)),e._push(le.op("int",o,r));case ot.CW_ARC:return e._push(le.set("mode","cw",r)),e._push(le.op("int",o,r));case ot.CCW_ARC:return e._push(le.set("mode","ccw",r)),e._push(le.op("int",o,r))}},Hi=function(e,t,r){if(Rn.test(t)){var a=t.match(Rn),o=a[1],s=Yf(a[2]),l={shape:"circle",params:[s],hole:[]};return e._push(le.tool(o,l,r))}if(Sn.test(t)){var f=t.match(Sn)[1];e._push(le.set("tool",f,r))}if(Rr.test(t))return e.format.places||(e.format.places=[2,4],e._warn("places format missing; assuming [2, 4]")),e.format.zero||(e.format.zero="T",e._warn("zero suppression missing; assuming trailing suppression")),Jf(e,t,r);if(t==="M00"||t==="M30")return e._push(le.done(r));if(t==="G90")return e._push(le.set("nota","A",r));if(t==="G91")return e._push(le.set("nota","I",r));if(Gi.test(t))return Kf(e,t,r)},Zi=function(e){e._drillStash.forEach(function(t){Hi(e,t.block,t.line)}),e._drillStash=[]},eu=function(e,t){if(t[0]===";"){var r=Vf(e,t,e.line);Object.keys(r).forEach(function(a){e.format[a]||(e.format[a]=r[a])})}else e.format.zero?Hi(e,t,e.line):(e._drillStash.push({line:e.line,block:t}),Rr.test(t)&&(e.format.zero=ar.detectZero(t),e.format.zero&&e._warn("zero suppression missing; detected "+(e.format.zero==="L"?"leading":"trailing")+" suppression")),(e.format.zero||Wi.test(t)||e._drillStash.length>=1e3)&&Zi(e))},tu={parse:eu,flush:Zi},ru=function(e,t){return{message:e,line:t}},nu=ru,iu=yt.StringDecoder,au=$e,Xi=mr.Transform,Yi=Yo,ou=Vo,su=Xf,Qi=tu,fu=nu,uu=qi,or=65535,De=function(e,t,r){Xi.call(this,{readableObjectMode:!0}),this._decoder=new iu("utf8"),this._stash="",this._index=0,this._drillMode=uu.DRILL,this._drillStash=[],this._syncResult=null,this.line=0,this.format={places:e,zero:t,filetype:r}};au(De,Xi);De.prototype._process=function(e,t){for(;this._index<e.length;){var r=ou(t,e,this._index);this._index+=r.read,this.line+=r.lines,this._stash+=r.rem,r.block&&(t==="gerber"?su(this,r.block):Qi.parse(this,r.block))}};De.prototype._transform=function(e,t,r){var a=this.format.filetype;if(e=this._decoder.write(e),!a)if(a=Yi(e,this._index,or),this._index+=e.length,a)this.format.filetype=a,this._index=0;else return this._index>=or?r(new Error("unable to determine filetype")):(this._stash+=e,r());e=this._stash+e,this._stash="",this._process(e,a),this._index=0,r()};De.prototype._flush=function(e){return this.format.filetype==="drill"&&Qi.flush(this),e&&e()};De.prototype._push=function(e){e.line===-1&&(e.line=this.line);var t=this._syncResult?this._syncResult:this;t.push(e)};De.prototype._warn=function(e){this.emit("warning",fu(e,this.line))};De.prototype.parseSync=function(e){var t=Yi(e,this._index,100*or);return this.format.filetype=t,this._syncResult=[],this._process(e,t),this._flush(),this._syncResult};var lu=De,Tn=ut,hu=lu,cu=function(e){if(Array.isArray(e)&&e.length===2&&Tn(e[0])&&Tn(e[1]))return e;throw new Error("places must be an array of two whole numbers")},du=function(e){if(e==="T"||e==="L")return e;throw new Error("zero suppression must be 'L' or 'T'")},pu=function(e){if(e==="gerber"||e==="drill")return e;throw new Error('filetype must be "drill" or "gerber"')},vu=function(e){e=e||{};var t=e.places?cu(e.places):null,r=e.zero?du(e.zero):null,a=e.filetype?pu(e.filetype):null;return new hu(t,r,a)},An=1/0,Vi=9007199254740991,gu=17976931348623157e292,On=0/0,yu=4294967295,mu="[object Function]",wu="[object GeneratorFunction]",_u="[object Symbol]",bu=/^\s+|\s+$/g,Eu=/^[-+]0x[0-9a-f]+$/i,xu=/^0b[01]+$/i,Ru=/^0o[0-7]+$/i,Su=/^(?:0|[1-9]\d*)$/,Mu=parseInt,Tu=Object.prototype,Ki=Tu.toString;function Au(e,t,r){return e===e&&(r!==void 0&&(e=e<=r?e:r),t!==void 0&&(e=e>=t?e:t)),e}function Ou(e,t,r,a){var o=e.length;for(r=sr(r),r<0&&(r=-r>o?0:o+r),a=a===void 0||a>o?o:sr(a),a<0&&(a+=o),a=r>a?0:Du(a);r<a;)e[r++]=t;return e}function Bu(e,t){return t=t??Vi,!!t&&(typeof e=="number"||Su.test(e))&&e>-1&&e%1==0&&e<t}function Iu(e,t,r){if(!mt(r))return!1;var a=typeof t;return(a=="number"?Cu(r)&&Bu(t,r.length):a=="string"&&t in r)?Nu(r[t],e):!1}function Lu(e,t,r,a){var o=e?e.length:0;return o?(r&&typeof r!="number"&&Iu(e,t,r)&&(r=0,a=o),Ou(e,t,r,a)):[]}function Nu(e,t){return e===t||e!==e&&t!==t}function Cu(e){return e!=null&&Fu(e.length)&&!ku(e)}function ku(e){var t=mt(e)?Ki.call(e):"";return t==mu||t==wu}function Fu(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vi}function mt(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function Pu(e){return!!e&&typeof e=="object"}function Uu(e){return typeof e=="symbol"||Pu(e)&&Ki.call(e)==_u}function $u(e){if(!e)return e===0?e:0;if(e=ju(e),e===An||e===-An){var t=e<0?-1:1;return t*gu}return e===e?e:0}function sr(e){var t=$u(e),r=t%1;return t===t?r?t-r:t:0}function Du(e){return e?Au(sr(e),0,yu):0}function ju(e){if(typeof e=="number")return e;if(Uu(e))return On;if(mt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=mt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(bu,"");var r=xu.test(e);return r||Ru.test(e)?Mu(e.slice(2),r?2:8):Eu.test(e)?On:+e}var zu=Lu,qu=zu,Gu=function(e,t){var r,a;for(a=0;a<e.length;a++)if(r=e[a],t(r))return r},Bn=function(e,t,r){var a=e.reduce(function(o,s){var l=Wu(t,s.position);return l<r&&l<o.distance?{point:s,distance:l}:o},{point:void 0,distance:1/0});return a.point},Wu=function(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))},Ze=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Hu=function(e,t){return e.type==="line"&&(Ze(e.start,t.start)&&Ze(e.end,t.end)||Ze(e.start,t.end)&&Ze(e.end,t.start))},Zu=function(e){var t={type:e.type,start:e.end,end:e.start};return e.type==="arc"&&(t.center=e.center,t.radius=e.radius,t.sweep=e.sweep,t.dir=e.dir==="cw"?"ccw":"cw"),t},Ot=function(e,t){this._edges=[],this._optimize=e,this._fillGaps=t,this.length=0};Ot.prototype.add=function(e){var t={segment:e,start:e.start,end:e.end};this._edges.push(t),this.length++};Ot.prototype._fillGapsAndOptimize=function(){var e=this._edges.map(function(x){return x.segment});this._edges=[],this.length=0;for(var t=e.reduce(function(x,S){return x.concat([{position:S.start,edges:[]},{position:S.end,edges:[]}])},[]),r=e.length,a=0;a<r;a++){var o=e[a],s,l,f=this._fillGaps,h=a*2,v=h+1,g=t.slice(0,h).concat(t.slice(v+1));s=Bn(g,o.start,f),l=Bn(g,o.end,f),s?f&&(o.start=s.position):s={position:o.start,edges:[]},l?f&&(o.end=l.position):l={position:o.end,edges:[]};var w=Gu(this._edges,function(x){return Hu(x.segment,o)});if(!w){var E=this._edges.length,A={segment:o,start:s,end:l};t[h].edges.push(E),t[h].position=A.start.position,t[v].edges.push(E),t[v].position=A.end.position,this._edges.push(A),this.length++}}this._edges.forEach(function(x){t.forEach(function(S){Ze(S.position,x.start.position)&&(x.start.edges=x.start.edges.concat(S.edges)),Ze(S.position,x.end.position)&&(x.end.edges=x.end.edges.concat(S.edges))})})};Ot.prototype.traverse=function(){if(!this._optimize)return this._edges.map(function(h){return h.segment});this._fillGapsAndOptimize();for(var e=qu(Array(this._edges.length),!1),t=[],r=[],a,o,s,l,f={position:[]};r.length<this._edges.length;)for(a=e.indexOf(!1),t.push(a);t.length;)a=t.pop(),e[a]||(e[a]=!0,o=this._edges[a],s=o.end,Ze(f.position,s.position)?(l=Zu(o.segment),f=o.start):(l=o.segment,f=o.end),f.edges.reverse().forEach(function(h){e[h]||t.push(h)}),r.push(l));return r};var Xu=Ot,Yu=function(e,t){return{message:e,line:t}},Qu=Yu,Vu="[object AsyncFunction]",Ku="[object Function]",Ju="[object GeneratorFunction]",el="[object Null]",tl="[object Proxy]",rl="[object Undefined]",nl=typeof he=="object"&&he&&he.Object===Object&&he,il=typeof self=="object"&&self&&self.Object===Object&&self,al=nl||il||Function("return this")(),Ji=Object.prototype,ol=Ji.hasOwnProperty,ea=Ji.toString,In=al.Symbol,We=In?In.toStringTag:void 0;function sl(e){return e==null?e===void 0?rl:el:We&&We in Object(e)?fl(e):ul(e)}function fl(e){var t=ol.call(e,We),r=e[We];try{e[We]=void 0;var a=!0}catch{}var o=ea.call(e);return a&&(t?e[We]=r:delete e[We]),o}function ul(e){return ea.call(e)}function ll(e){if(!hl(e))return!1;var t=sl(e);return t==Ku||t==Ju||t==Vu||t==tl}function hl(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var cl=ll,dl=function(){return[1/0,1/0,-1/0,-1/0]},ta=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[2]),Math.max(e[3],t[3])]},pl=function(e,t){return[Math.min(e[0],t[0]),Math.min(e[1],t[1]),Math.max(e[2],t[0]),Math.max(e[3],t[1])]},vl=function(e,t,r,a){return[Math.min(e[0],r-t),Math.min(e[1],a-t),Math.max(e[2],r+t),Math.max(e[3],a+t)]},ra=function(e,t){var r=t[0],a=t[1];return[e[0]+r,e[1]+a,e[2]+r,e[3]+a]},gl=function(e,t){return ta(e,ra(e,t))},Sr={new:dl,add:ta,addPoint:pl,addCircle:vl,translate:ra,repeat:gl},yl=cl,ml=ut,ge=Sr,ve=function(e){var t=Math.round(e*1e8)/1e8;return t===0?0:t},wl=function(e){return e*Math.PI/180},wt=function(e,t){t=wl(t);var r=Math.sin(t),a=Math.cos(t),o=e[0],s=e[1];return[ve(o*a-s*r),ve(o*r+s*a)]},_t=function(e,t,r,a){var o=e/2;if(t=t||0,r=r||0,a&&(t||r)){var s=wt([t,r],a);t=s[0],r=s[1]}return{shape:{type:"circle",cx:t,cy:r,r:e/2},box:ge.addCircle(ge.new(),o,t,r)}},na=function(e,t,r,a,o,s){if(s){var l=wt([e,t],s),f=wt([r,a],s);e=l[0],t=l[1],r=f[0],a=f[1]}var h=(a-t)/(r-e),v=o/2,g=v,w=v;ml(h)?(g*=h/Math.sqrt(1+Math.pow(h,2)),w*=1/Math.sqrt(1+Math.pow(h,2))):w=0;var E=[];E.push([ve(e+g),ve(t-w)]),E.push([ve(r+g),ve(a-w)]),E.push([ve(r-g),ve(a+w)]),E.push([ve(e-g),ve(t+w)]);var A=E.reduce(function(x,S){return ge.addPoint(x,S)},ge.new());return{shape:{type:"poly",points:E},box:A}},Oe=function(e,t,r,a,o,s){a=a||0,o=o||0,r=r||0,s=s||0;var l=e/2,f=t/2;if(s){var h=a-l,v=a+l,g=o,w=o;return na(h,g,v,w,t,s)}return{shape:{type:"rect",cx:a,cy:o,r,width:e,height:t},box:[-l+a,-f+o,l+a,f+o]}},_l=function(e,t){for(var r=[],a=ge.new(),o,s=0;s<e.length-2;s+=2)o=[e[s],e[s+1]],t&&(o=wt(o,t)),r.push(o),a=ge.addPoint(a,o);return{shape:{type:"poly",points:r},box:a}},ia=function(e,t,r,a,o){a=a||0,o=o||0;for(var s=[],l=ge.new(),f=e/2,h=r*Math.PI/180,v=2*Math.PI/t,g,w,E,A=0;A<t;A++)g=v*A+h,w=a+ve(f*Math.cos(g)),E=o+ve(f*Math.sin(g)),l=ge.addPoint(l,[w,E]),s.push([w,E]);return{shape:{type:"poly",points:s},box:l}},aa=function(e,t,r,a){return{type:"ring",cx:e,cy:t,r,width:a}},bl=function(e,t,r,a,o,s,l,f,h){for(var v=e/2,g=[],w=ge.addCircle(ge.new(),v,l,f),E=t/2,A=r+E;v>t&&g.length<a;)v-=E,g.push(aa(l,f,ve(v),t)),v-=A;v>0&&g.length<a&&g.push(_t(ve(2*v),l,f).shape);var x=Oe(s,o,0,l,f,h),S=Oe(o,s,0,l,f,h);return g.push(x.shape),g.push(S.shape),w=ge.add(w,x.box),w=ge.add(w,S.box),{shape:g,box:w}},El=function(e,t,r,a,o,s){var l=ve((r-o)/2),f=ve((r+o)/4),h=ve((r-a)/2),v=ve((r-h)/2),g=ge.addCircle(ge.new(),r/2,e,t),w=[Oe(l,l,0,e+f,t+f,s).shape,Oe(l,l,0,e-f,t+f,s).shape,Oe(l,l,0,e-f,t-f,s).shape,Oe(l,l,0,e+f,t-f,s).shape],E=aa(e,t,v,h);return{shape:{type:"clip",shape:w,clip:E},box:g}},xl=function(e,t){var r={shape:[],box:ge.new()},a=1;return t=t||[],t.reduce(function(o,s){var l;switch(s.type!=="variable"&&s.type!=="comment"&&(s=Object.keys(s).reduce(function(w,E){var A=s[E];return w[E]=x(A),w;function x(S){return Array.isArray(S)?S.map(x):yl(S)?S(e):S}},{})),s.exp!=null&&s.exp!==a&&(o.shape.push({type:"layer",polarity:s.exp===1?"dark":"clear",box:o.box.slice(0)}),a=s.exp),s.type){case"circle":l=_t(s.dia,s.cx,s.cy,s.rot);break;case"vect":l=na(s.x1,s.y1,s.x2,s.y2,s.width,s.rot);break;case"rect":l=Oe(s.width,s.height,0,s.cx,s.cy,s.rot);break;case"rectLL":var f=s.height/2,h=s.width/2,v=s.x+h,g=s.y+f;l=Oe(s.width,s.height,0,v,g,s.rot);break;case"outline":l=_l(s.points,s.rot);break;case"poly":l=ia(s.dia,s.vertices,s.rot,s.cx,s.cy);break;case"moire":l=bl(s.dia,s.ringThx,s.ringGap,s.maxRings,s.crossThx,s.crossLen,s.cx,s.cy,s.rot);break;case"thermal":l=El(s.cx,s.cy,s.outerDia,s.innerDia,s.gap,s.rot);break;case"variable":return e=s.set(e),o;default:return o}return o.shape=o.shape.concat(l.shape),a===1&&(o.box=ge.add(o.box,l.box)),o},r)},Rl=function(t,r){var a=[],o=ge.new(),s=t.shape,l=t.params,f,h;if(s==="circle")h=_t(l[0]);else if(s==="rect")h=Oe(l[0],l[1]);else if(s==="obround")h=Oe(l[0],l[1],Math.min(l[0],l[1])/2);else if(s==="poly")h=ia(l[0],l[1],l[2]);else{var v=l.reduce(function(g,w,E){return g["$"+(E+1)]=w,g},{});return xl(v,r[s])}return a.push(h.shape),o=ge.add(o,h.box),t.hole.length&&(f=t.hole.length===1?_t(t.hole[0]).shape:Oe(t.hole[0],t.hole[1]).shape,a.push({type:"layer",polarity:"clear",box:o},f)),{shape:a,box:o}},pe=Sr,we=Math.PI/2,Ln=Math.PI,xe=Math.PI*2,Ke=3*Math.PI/2,Sl=function(e,t,r,a){return r?(a._warn("flash in region ignored"),pe.new()):t?(t.flashed||(t.flashed=!0,a.push({type:"shape",tool:t.code,shape:t.pad})),a.push({type:"pad",tool:t.code,x:e[0],y:e[1]}),pe.translate(t.box,e)):(a._warn("flash with unknown tool ignored"),pe.new())},Ml=function(e,t,r,a,o){for(var s,l,f,h,v;v==null&&o.length>0;)h=o.pop(),s=Math.atan2(e[1]-h[1],e[0]-h[0]),l=Math.atan2(t[1]-h[1],t[0]-h[0]),r==="cw"?s=s>=l?s:s+xe:l=l>=s?l:l+xe,f=Math.abs(s-l),a==="s"?f<=we&&(v=h):v=h;if(v!=null)return s=s>=0?s:s+xe,s=s<xe?s:s-xe,l=l>=0?l:l+xe,l=l<xe?l:l-xe,{center:v,sweep:f,start:e.concat(s),end:t.concat(l)}},Tl=function(e,t,r,a,o){var s=e.start,l=e.end,f=e.center,h=e.sweep,v,g;o==="cw"?(v=l[2],g=s[2]):(v=s[2],g=l[2]);var w=[s,l];return(v>g||h===xe)&&w.push([f[0]+t,f[1]]),v=v>=we?v-we:v+Ke,g=g>=we?g-we:g+Ke,(v>g||h===xe)&&w.push([f[0],f[1]+t]),v=v>=we?v-we:v+Ke,g=g>=we?g-we:g+Ke,(v>g||h===xe)&&w.push([f[0]-t,f[1]]),v=v>=we?v-we:v+Ke,g=g>=we?g-we:g+Ke,(v>g||h===xe)&&w.push([f[0],f[1]-t]),w.reduce(function(E,A){if(!r){var x=pe.translate(a.box,A);return pe.add(E,x)}return pe.addPoint(E,A)},pe.new())},Nn=function(e,t){return e>=t?e:0},Al=function(e,t,r,a,o){var s=r==="ccw"?1:-1,l=(e[0]+t[0])/2,f=(e[1]+t[1])/2,h=t[0]-e[1],v=t[1]-e[1],g=Math.sqrt(Math.pow(h,2)+Math.pow(v,2)),w=g/2,E=Math.sqrt(Math.pow(o,2)-Math.pow(w,2)),A=-s*v*E/g,x=s*h*E/g;return[[Nn(l+A,a),Nn(f+x,a)]]},Ol=function(e,t,r,a,o,s,l,f,h,v){var g=r[2]||Math.sqrt(Math.pow(r[0],2)+Math.pow(r[1],2)),w=[],E=[],A=[];r[0]&&s==="s"?E.push(e[0]+r[0],e[0]-r[0]):E.push(e[0]+r[0]),r[1]&&s==="s"?A.push(e[1]+r[1],e[1]-r[1]):A.push(e[1]+r[1]);for(var x=0;x<E.length;x++)for(var S=0;S<A.length;S++)w.push([E[x],A[S]]);var O;r[2]?(s="m",O=Al(e,t,o,f,r[2])):s==="s"?O=w.filter(function(F){var k=Math.sqrt(Math.pow(F[0]-e[0],2)+Math.pow(F[1]-e[1],2)),P=Math.sqrt(Math.pow(F[0]-t[0],2)+Math.pow(F[1]-t[1],2));return Math.abs(k-g)<=f&&Math.abs(P-g)<=f}):O=w;var I=Ml(e,t,o,s,O);s==="m"&&e[0]===t[0]&&e[1]===t[1]&&(I.sweep=xe);var D=pe.new();return I!=null?(h.add({type:"arc",start:I.start,end:I.end,center:I.center,sweep:I.sweep,radius:g,dir:o}),D=Tl(I,g,l,a,o)):v._warn("skipping impossible arc"),D},Bl=function(e,t,r,a,o){if(o.add({type:"line",start:e,end:t}),!a){var s=pe.translate(r.box,e),l=pe.translate(r.box,t);return pe.add(s,l)}var f=pe.new();return f=pe.addPoint(f,e),f=pe.addPoint(f,t),f},Il=function(e,t,r,a,o){var s=r.trace[0]/2,l=r.trace[1]/2,f=Math.atan2(t[1]-e[1],t[0]-e[0]),h=e[0]-s,v=e[0]+s,g=e[1]-l,w=e[1]+l,E=t[0]-s,A=t[0]+s,x=t[1]-l,S=t[1]+l,O=[];return e[0]===t[0]&&e[1]===t[1]?O.push([h,g],[v,g],[v,w],[h,w]):f>=0&&f<we?O.push([h,g],[v,g],[A,x],[A,S],[E,S],[h,w]):f>=we&&f<=Ln?O.push([v,g],[v,w],[A,S],[E,S],[E,x],[h,g]):f>=-Ln&&f<-we?O.push([v,w],[h,w],[E,S],[E,x],[A,x],[v,g]):O.push([h,w],[h,g],[E,x],[A,x],[A,S],[v,w]),O.forEach(function(I,D){var F=D<O.length-1?D+1:0;a.add({type:"line",start:I,end:O[F]})}),o._finishPath(),pe.add(pe.translate(r.box,e),pe.translate(r.box,t))},Ll=function(e,t,r,a,o,s,l,f,h,v){var g=l||a&&a.trace.length>0,w=l||a&&a.trace.length===1,E=a?a.code:"[NO TOOL SET]";return g?o==="i"?l||a.trace.length===1?Bl(e,t,a,l,h):Il(e,t,a,h,v):w?Ol(e,t,r,a,o,s,l,f,h,v):(v._warn("cannot draw arc with non-circular tool "+E+"; ignoring interpolate"),pe.new()):(v._warn("tool "+E+" is not strokable; ignoring interpolate"),pe.new())},Nl=function(e,t,r,a,o,s,l,f,h,v){var g=[t.x!=null?t.x:r[0],t.y!=null?t.y:r[1]],w=[t.i!=null?t.i:0,t.j!=null?t.j:0,t.a],E;switch(e){case"flash":E=Sl(g,a,l,v);break;case"int":E=Ll(r,g,w,a,o,s,l,h,f,v);break;default:E=pe.new();break}return{pos:g,box:E}},Cl=Nl,oa=mr.Transform,kl=$e,sa=Xu,Fl=Qu,Pl=Rl,Ul=Cl,vt=Sr,$l=11e-5,Dl=function(e){return e==="units"||e==="backupUnits"||e==="nota"||e==="backupNota"},je=function(e,t,r,a,o,s){oa.call(this,{readableObjectMode:!0,writableObjectMode:!0}),this.format={units:e,backupUnits:t||"in",nota:r,backupNota:a||"A"},this._formatLock={units:e!=null,backupUnits:t!=null,nota:r!=null,backupNota:a!=null},this._plotAsOutline=s===!0?$l:s,(e||this.format.backupUnits)==="in"&&(this._plotAsOutline=this._plotAsOutline/25.4),this._optimizePaths=o||s,this._line=0,this._done=!1,this._tool=null,this._outTool=null,this._tools={},this._macros={},this._pos=[0,0],this._box=vt.new(),this._mode=null,this._arc=null,this._region=!1,this._path=new sa(this._optimizePaths,this._plotAsOutline),this._epsilon=null,this._lastOp=null,this._stepRep=[]};kl(je,oa);je.prototype._finishPath=function(e){var t=this._path.traverse();if(this._path=new sa(!e&&this._optimizePaths,this._plotAsOutline),t.length){var r=this._plotAsOutline?this._outTool:this._tool;!this._region&&r.trace.length===1?this.push({type:"stroke",width:r.trace[0],path:t}):this.push({type:"fill",path:t})}};je.prototype._warn=function(e){this.emit("warning",Fl(e,this._line))};je.prototype._checkFormat=function(){this.format.units||(this.format.units=this.format.backupUnits,this._warn("units not set; using backup units: "+this.format.units)),this.format.nota||(this.format.nota=this.format.backupNota,this._warn("notation not set; using backup notation: "+this.format.nota))};je.prototype._updateBox=function(e){var t=this._stepRep.length;if(!t)this._box=vt.add(this._box,e);else{var r=vt.repeat(e,this._stepRep[t-1]);this._box=vt.add(this._box,r)}};je.prototype._transform=function(e,t,r){var a=e.type;if(this._line=e.line,this._done)return this._warn("ignoring extra command recieved after done command"),r();if(a==="op"){this._checkFormat();var o=e.op,s=e.coord;if(this.nota==="I"){var l=this;s=Object.keys(s).reduce(function(F,k){var P=s[k];return k==="x"?F[k]=l._pos[0]+P:k==="y"?F[k]=l._pos[1]+P:F[k]=P,F},{})}o==="last"&&(this._warn("modal operation commands are deprecated"),o=this._lastOp),o==="int"&&(this._mode==null&&(this._warn("no interpolation mode specified; assuming linear"),this._mode="i"),this._arc==null&&this._mode.slice(-2)==="cw"&&!s.a&&(this._warn("quadrant mode unspecified; assuming single quadrant"),this._arc="s")),this._plotAsOutline&&(this._outTool=this._tool);var f=Ul(o,s,this._pos,this._tool,this._mode,this._arc,this._region||this._plotAsOutline,this._path,this._epsilon,this);this._lastOp=o,this._pos=f.pos,this._updateBox(f.box)}else if(a==="set"){var h=e.prop,v=e.value;h==="region"?(this._finishPath(v),this._region=v):Dl(h)&&!this._formatLock[h]?(this.format[h]=v,(h==="units"||h==="nota")&&(this._formatLock[h]=!0)):h==="tool"?this._region?this._warn("cannot change tool while region mode is on"):this._tools[v]?this._outTool||(this._finishPath(),this._tool=this._tools[v]):this._warn("tool "+v+" is not defined"):this["_"+h]=v}else if(a==="tool"){var g=e.code,w=e.tool;this._tools[g]&&this._warn("tool "+g+" is already defined; overwriting definition");var E=Pl(w,this._macros),A={code:g,trace:[],pad:E.shape,flashed:!1,box:E.box};(w.shape==="circle"||w.shape==="rect")&&w.hole.length===0&&(A.trace=w.params),this._outTool||(this._finishPath(),this._tools[g]=A,this._tool=A)}else if(a==="macro")this._macros[e.name]=e.blocks;else if(a==="level"){var x=e.level,S=e.value;if(this._finishPath(),x==="polarity")this.push({type:"polarity",polarity:S==="C"?"clear":"dark",box:this._box.slice(0)});else{var O=[];if(S.x>1||S.y>1)for(var I=0;I<S.x;I++)for(var D=0;D<S.y;D++)O.push([I*S.i,D*S.j]);this._stepRep=O,this.push({type:"repeat",offsets:this._stepRep.slice(0),box:this._box.slice(0)})}}else a==="done"&&(this._done=!0);return r()};je.prototype._flush=function(e){this._finishPath(),this.push({type:"size",box:this._box,units:this.format.units}),e()};var jl=je,zl=jl,Cn=function(e){if(e==="A"||e==="I")return e;throw new Error('notation must be "in" or "mm"')},kn=function(e){if(e==="in"||e==="mm")return e;throw new Error('units must be "in" or "mm"')},ql=function(t){t=t||{};var r=t.units?kn(t.units):null,a=t.backupUnits?kn(t.backupUnits):null,o=t.nota?Cn(t.nota):null,s=t.backupNota?Cn(t.backupNota):null;return new zl(r,a,o,s,t.optimizePaths,t.plotAsOutline)};/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
* Copyright(c) 2015 Andreas Lubbe
* Copyright(c) 2015 Tiancheng "Timothy" Gu
* MIT Licensed
*/var Gl=/["'&<>]/,Wl=Hl;function Hl(e){var t=""+e,r=Gl.exec(t);if(!r)return t;var a,o="",s=0,l=0;for(s=r.index;s<t.length;s++){switch(t.charCodeAt(s)){case 34:a="&quot;";break;case 38:a="&amp;";break;case 39:a="&#39;";break;case 60:a="&lt;";break;case 62:a="&gt;";break;default:continue}l!==s&&(o+=t.substring(l,s)),l=s+1,o+=a}return l!==s?o+t.substring(l,s):o}var zt=Wl,fa=function(t,r,a){r=r||{},a=a||[];var o="<"+zt(t),s=Object.keys(r).reduce(function(f,h){var v=r[h],g=v!=null?" "+zt(h)+'="'+zt(v)+'"':"";return f+g},""),l=a.length?">"+a.join("")+"</"+t+">":"/>";return o+s+l},st=function(e){return Math.round(1e10*e)/1e7},Zl=function(e,t,r){return r("rect",{x:st(e[0]),y:st(e[1]),width:st(e[2]-e[0]),height:st(e[3]-e[1]),fill:t})},Xl=function(e,t,r){var a="url(#"+e+")";return r("g",{mask:a},t)},Yl=function(e,t,r,a){r=[Zl(t,"#fff",a)].concat(r);var o={id:e,fill:"#000",stroke:"#000"};return a("mask",o,[a("g",{},r)])},Bt={shift:st,maskLayer:Xl,createMask:Yl},Mr=Bt,Ae=Mr.shift,Fn=Mr.createMask,Ql=Mr.maskLayer,It=function(e,t,r){return{tag:e,attr:t,children:r||[]}},fr=function(e,t,r,a){var o={cx:Ae(e),cy:Ae(t),r:Ae(r)};return a!=null&&(o["stroke-width"]=Ae(a),o.fill="none"),It("circle",o)},ua=function(e,t,r,a,o){var s={x:Ae(e-a/2),y:Ae(t-o/2),width:Ae(a),height:Ae(o)};return r&&(s.rx=Ae(r),s.ry=Ae(r)),It("rect",s)},la=function(e){var t=e.map(function(r){return r.map(Ae).join(",")}).join(" ");return It("polygon",{points:t})},Vl=function(e,t,r,a,o){var s=e+"mask-"+t,l="url(#"+s+")",f=fr(a.cx,a.cy,a.r,a.width),h=o("mask",{id:s,stroke:"#fff"},[o(f.tag,f.attr)]),v=r.map(function(w){var E=w.type==="rect"?ua(w.cx,w.cy,w.r,w.width,w.height):la(w.points);return o(E.tag,E.attr)}),g=It("g",{mask:l},v);return{mask:h,layer:g}},Kl=function(t,r,a,o){var s=t+"_pad-"+r,l=s+"_",f=a.reduce(function(h,v,g){var w;switch(v.type){case"circle":w=fr(v.cx,v.cy,v.r);break;case"ring":w=fr(v.cx,v.cy,v.r,v.width);break;case"rect":w=ua(v.cx,v.cy,v.r,v.width,v.height);break;case"poly":w=la(v.points);break;case"clip":var E=Vl(l,g,v.shape,v.clip,o);h.masks.push(E.mask),w=E.layer;break;case"layer":if(h.count++,h.last=v.polarity,v.polarity==="clear"){var A=l+h.count;h.maskId=A,h.maskBox=v.box.slice(0),h.maskChildren=[],h.layers=[Ql(A,h.layers,o)]}else{var x=Fn(h.maskId,h.maskBox,h.maskChildren,o);h.masks.push(x)}break}if(w){a.length===1&&(w.attr.id=s);var S=o(w.tag,w.attr,w.children);h.last==="dark"?h.layers.push(S):h.maskChildren.push(S)}return h},{count:0,last:"dark",layers:[],maskId:"",maskBox:[],maskChildren:[],masks:[]});return f.last==="clear"&&f.masks.push(Fn(f.maskId,f.maskBox,f.maskChildren,o)),a.length>1&&(f.layers=o("g",{id:s},f.layers)),f.masks.concat(f.layers)},Jl=Bt,Pn=Jl.shift,eh=function(t,r,a,o,s){var l="#"+t+"_pad-"+r;return s("use",{"xlink:href":l,x:Pn(a),y:Pn(o)})},th=Bt,Ue=th.shift,rh=function(e,t){return e[0]===t[0]&&e[1]===t[1]},nh=function(e){return"M "+Ue(e[0])+" "+Ue(e[1])},ha=function(e,t){var r=e==="L"||e==="M"?"":"L ";return r+Ue(t[0])+" "+Ue(t[1])},ur=function(e,t,r,a,o,s){if(r===0)return ha(e,o);if(r===2*Math.PI){var l=[2*s[0]-o[0],2*s[1]-o[1]],f=ur(e,t,Math.PI,a,l,s),h=ur("A",t,Math.PI,a,o,s);return f+" "+h}var v=e==="A"?"":"A ";return t=Ue(t),v+=t+" "+t+" 0 ",v+=r>Math.PI?"1 ":"0 ",v+=a==="ccw"?"1 ":"0 ",v+=Ue(o[0])+" "+Ue(o[1]),v},ih=function(e,t){var r=t.type,a=t.start,o=t.end;return rh(e.last,a)||(e.data+=(e.data?" ":"")+nh(a),e.lastCmd="M"),e.data+=" ",r==="line"?(e.data+=ha(e.lastCmd,o),e.lastCmd="L"):(e.data+=ur(e.lastCmd,t.radius,t.sweep,t.dir,o,t.center),e.lastCmd="A"),e.last=o,e},ah=function(t,r,a){var o=t.reduce(ih,{last:[],data:""}).data,s={d:o};return r!=null&&(s.fill="none",s["stroke-width"]=Ue(r)),a("path",s)},oh=fa,ca=function(e,t,r){var a=r||oh,o={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0","fill-rule":"evenodd",width:e.width+e.units,height:e.height+e.units,viewBox:e.viewBox.join(" ")};typeof t=="string"&&(t={id:t}),Object.keys(t||{}).forEach(function(h){var v=t[h];v!=null&&(o[h]=v)});var s=[];if(e.layer.length){e.defs.length&&s.push(a("defs",{},e.defs));var l=e.viewBox[3]+2*e.viewBox[1],f="translate(0,"+l+") scale(1,-1)";s.push(a("g",{transform:f,fill:"currentColor",stroke:"currentColor"},e.layer))}return a("svg",o,s)},da=mr.Transform,sh=$e,pa=ut,fh=Kl,uh=eh,Un=ah,Tr=Bt,lh=ca,Pe=Tr.shift,va=Tr.maskLayer,hh=Tr.createMask,ch=0,lr=1,ga=2,Ne=function(e,t,r,a){da.call(this,{writableObjectMode:!0,readableObjectMode:a}),this.id=e,this.attributes=t,this.defs=[],this.layer=[],this.viewBox=[0,0,0,0],this.width=0,this.height=0,this.units="",this._maskId="",this._maskBox=[],this._mask=[],this._blockMode=!1,this._blockBox=[],this._block=[],this._blockCount=0,this._blockLayerCount=0,this._offsets=[],this._clearCount=0,this._lastLayer=0,this._blockCount=0,this._blockCount=0,this._element=r};sh(Ne,da);Ne.prototype._transform=function(e,t,r){switch(e.type){case"shape":this.defs=this.defs.concat(fh(this.id,e.tool,e.shape,this._element));break;case"pad":this._draw(uh(this.id,e.tool,e.x,e.y,this._element));break;case"fill":this._draw(Un(e.path,null,this._element));break;case"stroke":this._draw(Un(e.path,e.width,this._element));break;case"polarity":this._handleNewPolarity(e.polarity,e.box);break;case"repeat":this._handleNewRepeat(e.offsets,e.box);break;case"size":this._handleSize(e.box,e.units)}r()};Ne.prototype._flush=function(e){this._handleNewRepeat([]),this.push(lh(this,this.attributes,this._element)),e()};Ne.prototype._finishBlockLayer=function(){if(this._block.length){this._blockLayerCount++;var e=this.id+"_block-"+this._blockCount+"-"+this._blockLayerCount;this.defs.push(this._element("g",{id:e},this._block)),this._block=[]}};Ne.prototype._finishClearLayer=function(){return this._maskId?(this.defs.push(hh(this._maskId,this._maskBox,this._mask,this._element)),this._maskId="",this._maskBox=[],this._mask=[],!0):!1};Ne.prototype._handleNewPolarity=function(e,t){if(this._blockMode)return this._blockLayerCount===0&&!this._block.length&&(this._blockMode=e==="dark"?lr:ga),this._finishBlockLayer();this._clearCount=e==="clear"?this._clearCount+1:this._clearCount;var r=this.id+"_clear-"+this._clearCount;e==="clear"?(this.layer=[va(r,this.layer,this._element)],this._maskId=r,this._maskBox=t.slice(0)):this._finishClearLayer(t)};Ne.prototype._handleNewRepeat=function(e,t){var r=e.length===0,a=this._finishClearLayer();this._finishBlockLayer();var o=this.layer,s=this._element,l=this._blockMode,f=this._blockLayerCount,h=this.id+"_block-"+this._blockCount+"-";if(this._offsets.forEach(function(g){for(var w=l;w<=f;w+=2)o.push(s("use",{"xlink:href":"#"+h+w,x:Pe(g[0]),y:Pe(g[1])}))}),f>2-l){var v=h+"clear";this.layer=[va(v,o,this._element)],this._maskId=v,this._maskBox=this._blockBox.slice(0),this._mask=this._offsets.reduce(function(g,w){for(var E,A=1;A<=f;A++){E=l===lr?A%2===1:A%2===0;var x={"xlink:href":"#"+h+A,x:Pe(w[0]),y:Pe(w[1])};E&&(x.fill="#fff",x.stroke="#fff"),g.push(s("use",x))}return g},[]),a=this._finishClearLayer()}this._offsets=e,r?this._blockMode=ch:(this._blockMode=a?ga:lr,this._blockCount++,this._blockLayerCount=0,this._blockBox=t.every(pa)?t:[0,0,0,0])};Ne.prototype._handleSize=function(e,t){if(e.every(pa)){var r=Pe(e[0]),a=Pe(e[1]),o=Pe(e[2]-e[0]),s=Pe(e[3]-e[1]);this.viewBox=[r,a,o,s],this.width=o/1e3,this.height=s/1e3,this.units=t}};Ne.prototype._draw=function(e){this._blockMode?this._block.push(e):this._maskId?this._mask.push(e):this.layer.push(e)};var dh=Ne,ph=["id","attributes","defs","layer","viewBox","width","height","units"],vh=function(t){return ph.reduce(function(r,a){var o=t[a];return o!=null&&(r[a]=t[a]),r},{})},gh=Ga,yh=vu,mh=ql,wh=fa,_h=dh,bh=ca,Eh=vh,xh=function(e){typeof e=="string"?e={id:e}:e||(e={});var t={id:gh.ensure(e.id),attributes:e.attributes||{},createElement:e.createElement||wh,objectMode:e.objectMode==null?!1:e.objectMode,parser:{places:e.places,zero:e.zero,filetype:e.filetype},plotter:{units:e.units,backupUnits:e.backupUnits,nota:e.nota,backupNota:e.backupNota,optimizePaths:e.optimizePaths,plotAsOutline:e.plotAsOutline}};return t};Mt.exports=function(t,r,a){typeof r=="function"&&(a=r,r=null);var o=xh(r),s=a!=null,l=new _h(o.id,o.attributes,o.createElement,o.objectMode),f=yh(o.parser),h=mh(o.plotter);if(l.parser=f,l.plotter=h,f.on("warning",function(E){l.emit("warning",E)}),h.on("warning",function(E){l.emit("warning",E)}),f.once("error",function(E){l.emit("error",E)}),h.once("error",function(E){l.emit("error",E)}),f.once("end",function(){l.filetype=f.format.filetype}),t.pipe?(t.setEncoding("utf8"),t.pipe(f)):process.nextTick(function(){f.write(t),f.end()}),f.pipe(h).pipe(l),s){var v="",g=function(){return a(null,v)};l.on("readable",function(){var E;do E=l.read()||"",v+=E;while(E)}),l.once("end",g),l.once("error",function(w){return l.removeListener("end",g),a(w)})}return l};Mt.exports.render=bh;Mt.exports.clone=Eh;var Rh=Mt.exports;const Sh=hr(Rh);var ya={};(function(e){(function(){var t=e||!1||this||window;t.default=t;var r="http://www.w3.org/2000/xmlns/",a="http://www.w3.org/1999/xhtml",o="http://www.w3.org/2000/svg",s='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp "&#160;">]>',l=/url\(["']?(.+?)["']?\)/,f={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},h=function(L){return L instanceof HTMLElement||L instanceof SVGElement},v=function(L){if(!h(L))throw new Error("an HTMLElement or SVGElement is required; got "+L)},g=function(L){return new Promise(function(N,B){h(L)?N(L):B(new Error("an HTMLElement or SVGElement is required; got "+L))})},w=function(L){return L&&L.lastIndexOf("http",0)===0&&L.lastIndexOf(window.location.host)===-1},E=function(L){var N=Object.keys(f).filter(function(B){return L.indexOf("."+B)>0}).map(function(B){return f[B]});return N?N[0]:(console.error("Unknown font format for "+L+". Fonts may not be working correctly."),"application/octet-stream")},A=function(L){for(var N="",B=new Uint8Array(L),U=0;U<B.byteLength;U++)N+=String.fromCharCode(B[U]);return window.btoa(N)},x=function(L,N,B){var U=L.viewBox&&L.viewBox.baseVal&&L.viewBox.baseVal[B]||N.getAttribute(B)!==null&&!N.getAttribute(B).match(/%$/)&&parseInt(N.getAttribute(B))||L.getBoundingClientRect()[B]||parseInt(N.style[B])||parseInt(window.getComputedStyle(L).getPropertyValue(B));return typeof U>"u"||U===null||isNaN(parseFloat(U))?0:U},S=function(L,N,B,U){if(L.tagName==="svg")return{width:B||x(L,N,"width"),height:U||x(L,N,"height")};if(L.getBBox){var W=L.getBBox(),H=W.x,J=W.y,se=W.width,_e=W.height;return{width:H+se,height:J+_e}}},O=function(L){return decodeURIComponent(encodeURIComponent(L).replace(/%([0-9A-F]{2})/g,function(N,B){var U=String.fromCharCode("0x"+B);return U==="%"?"%25":U}))},I=function(L){for(var N=window.atob(L.split(",")[1]),B=L.split(",")[0].split(":")[1].split(";")[0],U=new ArrayBuffer(N.length),W=new Uint8Array(U),H=0;H<N.length;H++)W[H]=N.charCodeAt(H);return new Blob([U],{type:B})},D=function(L,N){if(N)try{return L.querySelector(N)||L.parentNode&&L.parentNode.querySelector(N)}catch(B){console.warn('Invalid CSS selector "'+N+'"',B)}},F=function(L,N){var B=L.cssText.match(l),U=B&&B[1]||"";if(!(!U||U.match(/^data:/)||U==="about:blank")){var W=U.startsWith("../")?N+"/../"+U:U.startsWith("./")?N+"/."+U:U;return{text:L.cssText,format:E(W),url:W}}},k=function(L){return Promise.all(Array.from(L.querySelectorAll("image")).map(function(N){var B=N.getAttributeNS("http://www.w3.org/1999/xlink","href")||N.getAttribute("href");return B?(w(B)&&(B+=(B.indexOf("?")===-1?"?":"&")+"t="+new Date().valueOf()),new Promise(function(U,W){var H=document.createElement("canvas"),J=new Image;J.crossOrigin="anonymous",J.src=B,J.onerror=function(){return W(new Error("Could not load "+B))},J.onload=function(){H.width=J.width,H.height=J.height,H.getContext("2d").drawImage(J,0,0),N.setAttributeNS("http://www.w3.org/1999/xlink","href",H.toDataURL("image/png")),U(!0)}})):Promise.resolve(null)}))},P={},G=function(L){return Promise.all(L.map(function(N){return new Promise(function(B,U){if(P[N.url])return B(P[N.url]);var W=new XMLHttpRequest;W.addEventListener("load",function(){var H=A(W.response),J=N.text.replace(l,'url("data:'+N.format+";base64,"+H+'")')+`
`;P[N.url]=J,B(J)}),W.addEventListener("error",function(H){console.warn("Failed to load font from: "+N.url,H),P[N.url]=null,B(null)}),W.addEventListener("abort",function(H){console.warn("Aborted loading font from: "+N.url,H),B(null)}),W.open("GET",N.url),W.responseType="arraybuffer",W.send()})})).then(function(N){return N.filter(function(B){return B}).join("")})},te=null,X=function(){return te||(te=Array.from(document.styleSheets).map(function(L){try{return{rules:L.cssRules,href:L.href}}catch(N){return console.warn("Stylesheet could not be loaded: "+L.href,N),{}}}))},q=function(L,N){var B=N||{},U=B.selectorRemap,W=B.modifyStyle,H=B.modifyCss,J=B.fonts,se=B.excludeUnusedCss,_e=H||function(ae,ye){var _=U?U(ae):ae,m=W?W(ye):ye;return _+"{"+m+`}
`},Q=[],ee=typeof J>"u",ce=J||[];return X().forEach(function(ae){var ye=ae.rules,_=ae.href;ye&&Array.from(ye).forEach(function(m){if(typeof m.style<"u")if(D(L,m.selectorText))Q.push(_e(m.selectorText,m.style.cssText));else if(ee&&m.cssText.match(/^@font-face/)){var T=F(m,_);T&&ce.push(T)}else se||Q.push(m.cssText)})}),G(ce).then(function(ae){return Q.join(`
`)+ae})},me=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};t.prepareSvg=function(j,L,N){v(j);var B=L||{},U=B.left,W=U===void 0?0:U,H=B.top,J=H===void 0?0:H,se=B.width,_e=B.height,Q=B.scale,ee=Q===void 0?1:Q,ce=B.responsive,ae=ce===void 0?!1:ce,ye=B.excludeCss,_=ye===void 0?!1:ye;return k(j).then(function(){var m=j.cloneNode(!0);m.style.backgroundColor=(L||{}).backgroundColor||j.style.backgroundColor;var T=S(j,m,se,_e),$=T.width,z=T.height;if(j.tagName!=="svg")if(j.getBBox){m.getAttribute("transform")!=null&&m.setAttribute("transform",m.getAttribute("transform").replace(/translate\(.*?\)/,""));var d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.appendChild(m),m=d}else{console.error("Attempted to render non-SVG element",j);return}if(m.setAttribute("version","1.1"),m.setAttribute("viewBox",[W,J,$,z].join(" ")),m.getAttribute("xmlns")||m.setAttributeNS(r,"xmlns",o),m.getAttribute("xmlns:xlink")||m.setAttributeNS(r,"xmlns:xlink","http://www.w3.org/1999/xlink"),ae?(m.removeAttribute("width"),m.removeAttribute("height"),m.setAttribute("preserveAspectRatio","xMinYMin meet")):(m.setAttribute("width",$*ee),m.setAttribute("height",z*ee)),Array.from(m.querySelectorAll("foreignObject > *")).forEach(function(C){C.setAttributeNS(r,"xmlns",C.tagName==="svg"?o:a)}),_){var p=document.createElement("div");p.appendChild(m);var M=p.innerHTML;if(typeof N=="function")N(M,$,z);else return{src:M,width:$,height:z}}else return q(j,L).then(function(C){var re=document.createElement("style");re.setAttribute("type","text/css"),re.innerHTML=`<![CDATA[
`+C+`
]]>`;var Z=document.createElement("defs");Z.appendChild(re),m.insertBefore(Z,m.firstChild);var V=document.createElement("div");V.appendChild(m);var Te=V.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if(typeof N=="function")N(Te,$,z);else return{src:Te,width:$,height:z}})})},t.svgAsDataUri=function(j,L,N){return v(j),t.prepareSvg(j,L).then(function(B){var U=B.src,W=B.width,H=B.height,J="data:image/svg+xml;base64,"+window.btoa(O(s+U));return typeof N=="function"&&N(J,W,H),J})},t.svgAsPngUri=function(j,L,N){v(j);var B=L||{},U=B.encoderType,W=U===void 0?"image/png":U,H=B.encoderOptions,J=H===void 0?.8:H,se=B.canvg,_e=function(ee){var ce=ee.src,ae=ee.width,ye=ee.height,_=document.createElement("canvas"),m=_.getContext("2d"),T=window.devicePixelRatio||1;_.width=ae*T,_.height=ye*T,_.style.width=_.width+"px",_.style.height=_.height+"px",m.setTransform(T,0,0,T,0,0),se?se(_,ce):m.drawImage(ce,0,0);var $=void 0;try{$=_.toDataURL(W,J)}catch(z){if(typeof SecurityError<"u"&&z instanceof SecurityError||z.name==="SecurityError"){console.error("Rendered SVG images cannot be downloaded in this browser.");return}else throw z}return typeof N=="function"&&N($,_.width,_.height),Promise.resolve($)};return se?t.prepareSvg(j,L).then(_e):t.svgAsDataUri(j,L).then(function(Q){return new Promise(function(ee,ce){var ae=new Image;ae.onload=function(){return ee(_e({src:ae,width:ae.width,height:ae.height}))},ae.onerror=function(){ce(`There was an error loading the data URI as an image on the following SVG
`+window.atob(Q.slice(26))+`Open the following link to see browser's diagnosis
`+Q)},ae.src=Q})})},t.download=function(j,L,N){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(I(L),j);else{var B=document.createElement("a");if("download"in B){B.download=j,B.style.display="none",document.body.appendChild(B);try{var U=I(L),W=URL.createObjectURL(U);B.href=W,B.onclick=function(){return requestAnimationFrame(function(){return URL.revokeObjectURL(W)})}}catch(H){console.error(H),console.warn("Error while getting object URL. Falling back to string URL."),B.href=L}B.click(),document.body.removeChild(B)}else N&&N.popup&&(N.popup.document.title=j,N.popup.location.replace(L))}},t.saveSvg=function(j,L,N){var B=me();return g(j).then(function(U){return t.svgAsDataUri(U,N||{})}).then(function(U){return t.download(L,U,B)})},t.saveSvgAsPng=function(j,L,N){var B=me();return g(j).then(function(U){return t.svgAsPngUri(U,N||{})}).then(function(U){return t.download(L,U,B)})}})()})(ya);window.Buffer=rt.Buffer;window.process=Ma;window.EventEmitter=ja;document.getElementById("body");let gt=document.getElementById("previewSVG");const bt=["Edge_Cuts","profile","B_Cu","copper_bottom","F_Cu","copper_top","B_Mask","soldermask_bottom","F_Mask","soldermask_top","B_Paste","solderpaste_bottom","F_Paste","solderpaste_top","drill","B_Silkscreen","B_Silks","silkscreen_bottom","F_Silkscreen","F_Silks","silkscreen_top"],$n={Edge_Cuts:[70,105,58,1],profile:[70,105,58,1],B_Cu:[30,130,220,.8],copper_bottom:[30,130,220,.8],F_Cu:[89,165,82,.8],copper_top:[89,165,82,.8],B_Mask:[200,177,170,.6],soldermask_bottom:[200,177,170,.6],F_Mask:[239,177,58,1],soldermask_top:[239,177,58,1],B_Paste:[200,20,230,.2],solderpaste_bottom:[200,20,230,.2],F_Paste:[200,20,230,.3],solderpaste_top:[200,20,230,.3],drill:[120,120,120,1],B_Silkscreen:[255,255,255,.6],B_Silks:[255,255,255,.6],silkscreen_bottom:[255,255,255,.6],F_Silkscreen:[255,255,255,1],F_Silks:[255,255,255,1],silkscreen_top:[255,255,255,1]};let Et=[],xt=null,K={fillEdge:!0,asSVG:!1,dpi:1e3,svgOrig:[NaN,NaN],lockOrig:!1,svgDim:[NaN,NaN],lockDim:!1,svgMargin:[0,0]};function Dn(){if(xt===null)gt.outerHTML='<svg id="previewSVG"></svg>';else{let e=new XMLSerializer;gt.outerHTML=e.serializeToString(xt)}gt=document.getElementById("previewSVG")}function ht(e=!1){let t=new DOMParser;if(xt=t.parseFromString('<svg id="previewSVG" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>',"text/xml"),Et.length==0){Dn();return}let r=Et.toSorted((x,S)=>bt.indexOf(x[0])-bt.indexOf(S[0])),a,o,s=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=Number.MAX_VALUE,h=-Number.MAX_VALUE,v=xt.childNodes[0];v.setAttribute("stroke-linecap","round"),v.setAttribute("stroke-linejoin","round"),v.setAttribute("stroke-width","0"),v.setAttribute("fill-rule","evenodd");let g,w,E;for([a,o]of r)w=t.parseFromString(o,"text/xml"),E=w.childNodes[0],g=E.getAttribute("viewBox").split(" ").map(x=>Number(x)),E.childNodes.length!=0&&(s=Math.min(s,g[0]),l=Math.max(l,g[0]+g[2]),f=Math.min(f,g[1]),h=Math.max(h,g[1]+g[3]));e||((!K.lockOrig||isNaN(K.svgOrig[0]))&&(K.svgOrig[0]=s/1e3,K.svgOrig[1]=f/1e3),(!K.lockDim||isNaN(K.svgDim[0]))&&(K.svgDim[0]=(l-s)/1e3,K.svgDim[1]=(h-f)/1e3)),Th();let A=[K.svgOrig[0]-K.svgMargin[0],K.svgOrig[1]-K.svgMargin[1],K.svgDim[0]+2*K.svgMargin[0],K.svgDim[1]+2*K.svgMargin[1]].map(x=>x*1e3);v.setAttribute("viewBox",A.join(" ")),v.setAttribute("width",`${(A[2]/1e3).toFixed(3)}mm`),v.setAttribute("height",`${(A[3]/1e3).toFixed(3)}mm`);for([a,o]of r){w=t.parseFromString(o,"text/xml"),E=w.childNodes[0],g=E.getAttribute("viewBox").split(" ").map(O=>Number(O));let x="rgb("+$n[a].slice(0,3).join(",")+")",S=$n[a][3];for(let O of E.childNodes){if(O.tagName=="g"){const I=/translate\([-.\d]+,\s*([-.\d]+)\)/,D=O.getAttribute("transform").match(I);let F=Number(D[1]);F+=A[1]+A[3]-(g[1]+g[3]),F+=A[1]-g[1],O.setAttribute("transform",`translate(0, ${F}) scale(1, -1)`),O.setAttribute("opacity",S),O.setAttribute("fill",x),O.setAttribute("stroke",x),O.childNodes.forEach(k=>{["profile","Edge_Cuts"].includes(a)&&K.fillEdge&&(k.removeAttribute("fill"),k.setAttribute("stroke","none"))})}v.appendChild(O.cloneNode(!0))}}Dn()}function ma(e=!1){e||ya.saveSvgAsPng(gt,"diagram.png")}var nt=document.getElementById("dropZone");function Mh(){nt.style.visibility="visible"}function wa(){nt.style.visibility="hidden"}window.addEventListener("dragenter",e=>{Mh()});function _a(e){e.dataTransfer.dropEffect="copy",e.preventDefault()}nt.addEventListener("dragenter",_a);nt.addEventListener("dragover",_a);nt.addEventListener("dragleave",e=>{wa()});nt.addEventListener("drop",e=>{if(e.preventDefault(),wa(),!e.dataTransfer.items)return;let t=[];for(let r of e.dataTransfer.files){let a;if(r.name.endsWith(".xln")||r.name.endsWith(".drl"))a="drill";else{if(!r.name.endsWith(".gbr"))continue;let s=r.name.replace(".gbr",""),l=-1;for(let f in bt)if(a=bt[f],s.endsWith(a)){l=f;break}if(l==-1)continue}let o=new Promise((s,l)=>{const f=new FileReader;f.onload=h=>{const v={encoding:"utf8",optimizePaths:!0};Sh(f.result,v,(g,w)=>{s(g?null:[a,w])})},f.onerror=l,f.readAsText(r)});t.push(o)}Promise.all(t).then(r=>{Et=r,ht()})});function ba(){let e=document.getElementById("settingsFill"),t=document.getElementById("settingsAsSVG"),r=document.getElementById("settingsDPI"),a=document.getElementById("settingsOrigX"),o=document.getElementById("settingsOrigY"),s=document.getElementById("settingsDimX"),l=document.getElementById("settingsDimY"),f=document.getElementById("settingsMarginX"),h=document.getElementById("settingsMarginY");K.fillEdge=e.checked,K.asSVG=t.checked,K.dpi=Number(r.value),K.svgMargin=[Number(f.value),Number(h.value)],K.svgOrig=[Number(a.value),Number(o.value)],K.svgDim=[Number(s.value),Number(l.value)]}function Th(){let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY"),r=document.getElementById("settingsDimX"),a=document.getElementById("settingsDimY");e.value=K.svgOrig[0],t.value=K.svgOrig[1],r.value=K.svgDim[0],a.value=K.svgDim[1]}function Ah(){for(let e of["settingsFill","settingsAsSVG","settingsDPI","settingsOrigX","settingsOrigY","settingsDimX","settingsDimY","settingsMarginX","settingsMarginY"])document.getElementById(e).addEventListener("change",()=>{ba(),ht(!0)})}let qt=document.getElementById("settingsLockOrig"),Gt=document.getElementById("settingsLockDim");qt.addEventListener("click",()=>{let e=document.getElementById("settingsOrigX"),t=document.getElementById("settingsOrigY");K.lockOrig?(e.disabled=!1,t.disabled=!1,K.lockOrig=!1,qt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,K.lockOrig=!0,qt.innerHTML="🔒"),ht()});Gt.addEventListener("click",()=>{let e=document.getElementById("settingsDimX"),t=document.getElementById("settingsDimY");K.lockDim?(e.disabled=!1,t.disabled=!1,K.lockDim=!1,Gt.innerHTML="🔓"):(e.disabled=!0,t.disabled=!0,K.lockDim=!0,Gt.innerHTML="🔒"),ht()});document.getElementById("downloadRenderButton").addEventListener("click",()=>{ma(!1)});document.getElementById("downloadlayersButton").addEventListener("click",()=>{ma(!0)});ba();Ah();Et=JSON.parse('[["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"M7zzQZkyObU1_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"M7zzQZkyObU1_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"M7zzQZkyObU1_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"M7zzQZkyObU1_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"M7zzQZkyObU1_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"M7zzQZkyObU1_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"M7zzQZkyObU1_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"]]');ht();
......@@ -2,17 +2,19 @@
<!DOCTYPE html>
<html>
<head>
<link rel="icon" type="image/x-icon" href="images/logo.png">
<link rel="icon" type="image/x-icon" href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/logo-a252ba3f.png">
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<script type="module" crossorigin src="https://quentinbolsee.pages.cba.mit.edu/gerber2png/assets/main-e1885530.js"></script>
<link rel="stylesheet" href="https://quentinbolsee.pages.cba.mit.edu/gerber2png/assets/index-c5b4e48b.css">
<script type="module" crossorigin src="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/main-128b0f6a.js"></script>
<link rel="stylesheet" href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/index-591a036e.css">
</head>
<body style="background-color: rgb(255, 255, 255);">
<h1>gerber2png</h1>
<h1>gerber2img</h1>
<p>Drag and drop one or multiple Gerber files; lock origin and dimensions to preserve alignment between successive uploads.</p>
<p>For through-holes and vias, make sure to export drill file (.drl) as metric.</p>
<div id="dropZone"><p id="dropText"></p></div>
<input type="file" id="fileInput" multiple hidden></input>
<canvas id="canvas" hidden></canvas>
......@@ -25,7 +27,7 @@
<div>
<!-- <button class="interface" id="loadButton">Load file(s)...</button></input> -->
<button class="interface" id="downloadRenderButton">Download render</button>
<button class="interface" id="downloadlayersButton">Download layers</button>
<!-- <button class="interface" id="downloadlayersButton">Download layers</button> -->
</div>
</div>
<div class="panel">
......@@ -34,12 +36,22 @@
<h3>Rendering</h3>
<div>
<input type="checkbox" id="settingsFill" checked=checked>
<input type="checkbox" id="settingsFill" checked="checked">
<label for="settingsFill">Fill edge cut</label>
</div>
<div>
<input type="checkbox" id="settingsAsSVG" checked=unchecked>
<input type="checkbox" id="settingsBW">
<label for="settingsBW">Black and white</label>
</div>
<div>
<input type="checkbox" id="settingsTransparent">
<label for="settingsTransparent">Transparent background</label>
</div>
<div>
<input type="checkbox" id="settingsAsSVG">
<label for="settingsAsSVG">Download as SVG</label>
</div>
......@@ -70,13 +82,16 @@
<h3>Margins [mm]</h3>
<div>
<label for="settingsMarginX">x:</label>
<input id="settingsMarginX" step=0.1 min=0 type="number" value=3>
<input id="settingsMarginX" step=0.1 min=0 type="number" value=2>
<label for="settingsMarginY">y:</label>
<input id="settingsMarginY" step=0.1 min=0 type="number" value=3>
<input id="settingsMarginY" step=0.1 min=0 type="number" value=2>
</div>
</div>
</div>
</div>
<footer>
<img src="https://quentinbolsee.pages.cba.mit.edu/gerber2img/assets/logo-a252ba3f.png" height="24" style="margin-left:4px; margin-right:4px;"></img>Quentin Bolsée and Jake Read, MIT Center for Bits and Atoms, 2023
</footer>
</body>
</html>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg827"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="background.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview829"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.71446409"
inkscape:cx="390.50248"
inkscape:cy="366.0086"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs824" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910"
width="10"
height="10"
x="-1.7763568e-15"
y="-1.7763568e-15" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3"
width="10"
height="10"
x="10"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5"
width="10"
height="10"
x="10"
y="-2.0724143e-16" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2"
width="10"
height="10"
x="0"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39"
width="10"
height="10"
x="20"
y="-2.3841858e-07" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9"
width="10"
height="10"
x="30"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9"
width="10"
height="10"
x="30"
y="-2.3841858e-07" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0"
width="10"
height="10"
x="20"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0"
width="10"
height="10"
x="0"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4"
width="10"
height="10"
x="10"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6"
width="10"
height="10"
x="10"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7"
width="10"
height="10"
x="0"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5"
width="10"
height="10"
x="20"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9"
width="10"
height="10"
x="30"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3"
width="10"
height="10"
x="30"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7"
width="10"
height="10"
x="20"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2"
width="10"
height="10"
x="40"
y="1.7763568e-15" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3"
width="10"
height="10"
x="50"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63"
width="10"
height="10"
x="50"
y="1.7763568e-15" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1"
width="10"
height="10"
x="40"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58"
width="10"
height="10"
x="60"
y="-4.7683716e-07" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96"
width="10"
height="10"
x="70"
y="10" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8"
width="10"
height="10"
x="70"
y="-4.7683716e-07" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1"
width="10"
height="10"
x="60"
y="10" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8"
width="10"
height="10"
x="40"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4"
width="10"
height="10"
x="50"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7"
width="10"
height="10"
x="50"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1"
width="10"
height="10"
x="40"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9"
width="10"
height="10"
x="60"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1"
width="10"
height="10"
x="70"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3"
width="10"
height="10"
x="70"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4"
width="10"
height="10"
x="60"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6"
width="10"
height="10"
x="80"
y="0" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4"
width="10"
height="10"
x="90"
y="10.000002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7"
width="10"
height="10"
x="90"
y="0" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5"
width="10"
height="10"
x="80"
y="10.000002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8"
width="10"
height="10"
x="80"
y="20" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7"
width="10"
height="10"
x="90"
y="30" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7"
width="10"
height="10"
x="90"
y="20" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4"
width="10"
height="10"
x="80"
y="30" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34"
width="10"
height="10"
x="1.9073486e-06"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2"
width="10"
height="10"
x="10"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7"
width="10"
height="10"
x="10"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5"
width="10"
height="10"
x="1.9073486e-06"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4"
width="10"
height="10"
x="20"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3"
width="10"
height="10"
x="30"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38"
width="10"
height="10"
x="30"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6"
width="10"
height="10"
x="20"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9"
width="10"
height="10"
x="1.9073486e-06"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9"
width="10"
height="10"
x="10"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6"
width="10"
height="10"
x="10"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2"
width="10"
height="10"
x="1.9073486e-06"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8"
width="10"
height="10"
x="20"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3"
width="10"
height="10"
x="30"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2"
width="10"
height="10"
x="30"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0"
width="10"
height="10"
x="20"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4"
width="10"
height="10"
x="40"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1"
width="10"
height="10"
x="50"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9"
width="10"
height="10"
x="50"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2"
width="10"
height="10"
x="40"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0"
width="10"
height="10"
x="60"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3"
width="10"
height="10"
x="70"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8"
width="10"
height="10"
x="70"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1"
width="10"
height="10"
x="60"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0"
width="10"
height="10"
x="40"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7"
width="10"
height="10"
x="50"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5"
width="10"
height="10"
x="50"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3"
width="10"
height="10"
x="40"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81"
width="10"
height="10"
x="60"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5"
width="10"
height="10"
x="70"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4"
width="10"
height="10"
x="70"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7"
width="10"
height="10"
x="60"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6"
width="10"
height="10"
x="80"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4"
width="10"
height="10"
x="90"
y="50.000004" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0"
width="10"
height="10"
x="90"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1"
width="10"
height="10"
x="80"
y="50.000004" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5"
width="10"
height="10"
x="80"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5"
width="10"
height="10"
x="90"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9"
width="10"
height="10"
x="90"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3"
width="10"
height="10"
x="80"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6"
width="10"
height="10"
x="3.5527137e-15"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6"
width="10"
height="10"
x="10"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7"
width="10"
height="10"
x="10"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3"
width="10"
height="10"
x="3.5527137e-15"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6"
width="10"
height="10"
x="20"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7"
width="10"
height="10"
x="30"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5"
width="10"
height="10"
x="30"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5"
width="10"
height="10"
x="20"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9"
width="10"
height="10"
x="40"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4"
width="10"
height="10"
x="50"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8"
width="10"
height="10"
x="50"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9"
width="10"
height="10"
x="40"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4"
width="10"
height="10"
x="60"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3"
width="10"
height="10"
x="70"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0"
width="10"
height="10"
x="70"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2"
width="10"
height="10"
x="60"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3"
width="10"
height="10"
x="80"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6"
width="10"
height="10"
x="90"
y="90" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2"
width="10"
height="10"
x="90"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0"
width="10"
height="10"
x="80"
y="90" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-6"
width="10"
height="10"
x="100"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-7"
width="10"
height="10"
x="110"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-76"
width="10"
height="10"
x="110"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-6"
width="10"
height="10"
x="100"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-48"
width="10"
height="10"
x="120"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-7"
width="10"
height="10"
x="130"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-6"
width="10"
height="10"
x="130"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-0"
width="10"
height="10"
x="120"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-6"
width="10"
height="10"
x="100"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-3"
width="10"
height="10"
x="110"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-2"
width="10"
height="10"
x="110"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-8"
width="10"
height="10"
x="100"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-0"
width="10"
height="10"
x="120"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-2"
width="10"
height="10"
x="130"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-1"
width="10"
height="10"
x="130"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-3"
width="10"
height="10"
x="120"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-6"
width="10"
height="10"
x="140"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-0"
width="10"
height="10"
x="150"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-8"
width="10"
height="10"
x="150"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-9"
width="10"
height="10"
x="140"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-2"
width="10"
height="10"
x="160"
y="-6.1988831e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-43"
width="10"
height="10"
x="170"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-2"
width="10"
height="10"
x="170"
y="-6.1988831e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-52"
width="10"
height="10"
x="160"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-1"
width="10"
height="10"
x="140"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-6"
width="10"
height="10"
x="150"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-7"
width="10"
height="10"
x="150"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-0"
width="10"
height="10"
x="140"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-4"
width="10"
height="10"
x="160"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-3"
width="10"
height="10"
x="170"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-0"
width="10"
height="10"
x="170"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-41"
width="10"
height="10"
x="160"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-3"
width="10"
height="10"
x="180"
y="1.4305115e-06" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-6"
width="10"
height="10"
x="190"
y="10.000009" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-06"
width="10"
height="10"
x="190"
y="1.4305115e-06" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-3"
width="10"
height="10"
x="180"
y="10.000009" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-7"
width="10"
height="10"
x="180"
y="20.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-9"
width="10"
height="10"
x="190"
y="30.000008" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-8"
width="10"
height="10"
x="190"
y="20.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-5"
width="10"
height="10"
x="180"
y="30.000008" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-4"
width="10"
height="10"
x="100"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-9"
width="10"
height="10"
x="110"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-1"
width="10"
height="10"
x="110"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-6"
width="10"
height="10"
x="100"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-9"
width="10"
height="10"
x="120"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-7"
width="10"
height="10"
x="130"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-2"
width="10"
height="10"
x="130"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-5"
width="10"
height="10"
x="120"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-4"
width="10"
height="10"
x="100"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-0"
width="10"
height="10"
x="110"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-73"
width="10"
height="10"
x="110"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-2"
width="10"
height="10"
x="100"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-0"
width="10"
height="10"
x="120"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-0"
width="10"
height="10"
x="130"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-6"
width="10"
height="10"
x="130"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-7"
width="10"
height="10"
x="120"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-3"
width="10"
height="10"
x="140"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-2"
width="10"
height="10"
x="150"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-7"
width="10"
height="10"
x="150"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-9"
width="10"
height="10"
x="140"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-2"
width="10"
height="10"
x="160"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-2"
width="10"
height="10"
x="170"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-2"
width="10"
height="10"
x="170"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-8"
width="10"
height="10"
x="160"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-0"
width="10"
height="10"
x="140"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-5"
width="10"
height="10"
x="150"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-5"
width="10"
height="10"
x="150"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-7"
width="10"
height="10"
x="140"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-5"
width="10"
height="10"
x="160"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-8"
width="10"
height="10"
x="170"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-7"
width="10"
height="10"
x="170"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-1"
width="10"
height="10"
x="160"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-2"
width="10"
height="10"
x="180"
y="40" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-6"
width="10"
height="10"
x="190"
y="50" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-6"
width="10"
height="10"
x="190"
y="40" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-2"
width="10"
height="10"
x="180"
y="50" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-8"
width="10"
height="10"
x="180"
y="60" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-7"
width="10"
height="10"
x="190"
y="70" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-4"
width="10"
height="10"
x="190"
y="60" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-1"
width="10"
height="10"
x="180"
y="70" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-8"
width="10"
height="10"
x="100"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-9"
width="10"
height="10"
x="110"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-4"
width="10"
height="10"
x="110"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-2"
width="10"
height="10"
x="100"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-5"
width="10"
height="10"
x="120"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-5"
width="10"
height="10"
x="130"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-3"
width="10"
height="10"
x="130"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-5"
width="10"
height="10"
x="120"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-2"
width="10"
height="10"
x="140"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-0"
width="10"
height="10"
x="150"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-3"
width="10"
height="10"
x="150"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-9"
width="10"
height="10"
x="140"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-8"
width="10"
height="10"
x="160"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-7"
width="10"
height="10"
x="170"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-4"
width="10"
height="10"
x="170"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-5"
width="10"
height="10"
x="160"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-0"
width="10"
height="10"
x="180"
y="80" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-1"
width="10"
height="10"
x="190"
y="89.999985" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-2"
width="10"
height="10"
x="190"
y="80" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-3"
width="10"
height="10"
x="180"
y="89.999985" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-8"
width="10"
height="10"
x="0"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-90"
width="10"
height="10"
x="9.9999971"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-1"
width="10"
height="10"
x="9.9999971"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-68"
width="10"
height="10"
x="0"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-42"
width="10"
height="10"
x="20"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-6"
width="10"
height="10"
x="30"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-60"
width="10"
height="10"
x="30"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-5"
width="10"
height="10"
x="20"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-67"
width="10"
height="10"
x="0"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-44"
width="10"
height="10"
x="9.9999971"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-4"
width="10"
height="10"
x="9.9999971"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-6"
width="10"
height="10"
x="0"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-1"
width="10"
height="10"
x="20"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-7"
width="10"
height="10"
x="30"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-35"
width="10"
height="10"
x="30"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-00"
width="10"
height="10"
x="20"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-41"
width="10"
height="10"
x="40"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-7"
width="10"
height="10"
x="50"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-85"
width="10"
height="10"
x="50"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-7"
width="10"
height="10"
x="40"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-4"
width="10"
height="10"
x="60.000004"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-9"
width="10"
height="10"
x="69.999992"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-9"
width="10"
height="10"
x="69.999992"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-6"
width="10"
height="10"
x="60.000004"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-6"
width="10"
height="10"
x="40"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-4"
width="10"
height="10"
x="50"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-74"
width="10"
height="10"
x="50"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-8"
width="10"
height="10"
x="40"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-2"
width="10"
height="10"
x="60.000004"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-9"
width="10"
height="10"
x="69.999992"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-8"
width="10"
height="10"
x="69.999992"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-9"
width="10"
height="10"
x="60.000004"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-1"
width="10"
height="10"
x="79.999992"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-8"
width="10"
height="10"
x="89.999992"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-1"
width="10"
height="10"
x="89.999992"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-9"
width="10"
height="10"
x="79.999992"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-9"
width="10"
height="10"
x="79.999992"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-55"
width="10"
height="10"
x="89.999992"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-0"
width="10"
height="10"
x="89.999992"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-4"
width="10"
height="10"
x="79.999992"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-3"
width="10"
height="10"
x="1.9073486e-06"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-5"
width="10"
height="10"
x="9.9999971"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-16"
width="10"
height="10"
x="9.9999971"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-0"
width="10"
height="10"
x="1.9073486e-06"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-0"
width="10"
height="10"
x="20"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-1"
width="10"
height="10"
x="30"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-25"
width="10"
height="10"
x="30"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-3"
width="10"
height="10"
x="20"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-41"
width="10"
height="10"
x="1.9073486e-06"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-3"
width="10"
height="10"
x="9.9999971"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-2"
width="10"
height="10"
x="9.9999971"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-8"
width="10"
height="10"
x="1.9073486e-06"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-06"
width="10"
height="10"
x="20"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-1"
width="10"
height="10"
x="30"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-8"
width="10"
height="10"
x="30"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-1"
width="10"
height="10"
x="20"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-0"
width="10"
height="10"
x="40"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-4"
width="10"
height="10"
x="50"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-6"
width="10"
height="10"
x="50"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-0"
width="10"
height="10"
x="40"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-5"
width="10"
height="10"
x="60.000004"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-7"
width="10"
height="10"
x="69.999992"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-0"
width="10"
height="10"
x="69.999992"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-6"
width="10"
height="10"
x="60.000004"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-3"
width="10"
height="10"
x="40"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-6"
width="10"
height="10"
x="50"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-86"
width="10"
height="10"
x="50"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-1"
width="10"
height="10"
x="40"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-7"
width="10"
height="10"
x="60.000004"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-39"
width="10"
height="10"
x="69.999992"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-6"
width="10"
height="10"
x="69.999992"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-8"
width="10"
height="10"
x="60.000004"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-6"
width="10"
height="10"
x="79.999992"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-7"
width="10"
height="10"
x="89.999992"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-0"
width="10"
height="10"
x="89.999992"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-7"
width="10"
height="10"
x="79.999992"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-6"
width="10"
height="10"
x="79.999992"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-3"
width="10"
height="10"
x="89.999992"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-1"
width="10"
height="10"
x="89.999992"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-8"
width="10"
height="10"
x="79.999992"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-7"
width="10"
height="10"
x="0"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-6"
width="10"
height="10"
x="9.9999971"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-5"
width="10"
height="10"
x="9.9999971"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-1"
width="10"
height="10"
x="0"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-9"
width="10"
height="10"
x="20"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-8"
width="10"
height="10"
x="30"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-2"
width="10"
height="10"
x="30"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-6"
width="10"
height="10"
x="20"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-8"
width="10"
height="10"
x="40"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-6"
width="10"
height="10"
x="50"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-1"
width="10"
height="10"
x="50"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-8"
width="10"
height="10"
x="40"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-1"
width="10"
height="10"
x="60.000004"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-0"
width="10"
height="10"
x="69.999992"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-0"
width="10"
height="10"
x="69.999992"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-3"
width="10"
height="10"
x="60.000004"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-6"
width="10"
height="10"
x="79.999992"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-3"
width="10"
height="10"
x="89.999992"
y="190" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-22"
width="10"
height="10"
x="89.999992"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-8"
width="10"
height="10"
x="79.999992"
y="190" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-6-2"
width="10"
height="10"
x="100"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-7-5"
width="10"
height="10"
x="110"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-76-3"
width="10"
height="10"
x="110"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-6-7"
width="10"
height="10"
x="100"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-48-8"
width="10"
height="10"
x="120"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-7-0"
width="10"
height="10"
x="130"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-6-4"
width="10"
height="10"
x="130"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-0-8"
width="10"
height="10"
x="120"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-6-6"
width="10"
height="10"
x="100"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-3-5"
width="10"
height="10"
x="110"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-2-4"
width="10"
height="10"
x="110"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-8-7"
width="10"
height="10"
x="100"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-0-7"
width="10"
height="10"
x="120"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-2-7"
width="10"
height="10"
x="130"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-1-2"
width="10"
height="10"
x="130"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-3-7"
width="10"
height="10"
x="120"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-6-1"
width="10"
height="10"
x="140"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-0-6"
width="10"
height="10"
x="150"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-8-0"
width="10"
height="10"
x="150"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-9-7"
width="10"
height="10"
x="140"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-2-8"
width="10"
height="10"
x="160"
y="100" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-43-8"
width="10"
height="10"
x="170"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-2-8"
width="10"
height="10"
x="170"
y="100" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-52-5"
width="10"
height="10"
x="160"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-1-2"
width="10"
height="10"
x="140"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-6-7"
width="10"
height="10"
x="150"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-7-8"
width="10"
height="10"
x="150"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-0-7"
width="10"
height="10"
x="140"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-4-8"
width="10"
height="10"
x="160"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-3-4"
width="10"
height="10"
x="170"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-0-9"
width="10"
height="10"
x="170"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-41-3"
width="10"
height="10"
x="160"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-3-4"
width="10"
height="10"
x="180"
y="100.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-6-9"
width="10"
height="10"
x="190"
y="110.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-06-7"
width="10"
height="10"
x="190"
y="100.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-3-3"
width="10"
height="10"
x="180"
y="110.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-7-7"
width="10"
height="10"
x="180"
y="120.00001" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-9-0"
width="10"
height="10"
x="190"
y="130.00002" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-8-4"
width="10"
height="10"
x="190"
y="120.00001" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-5-4"
width="10"
height="10"
x="180"
y="130.00002" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-34-4-2"
width="10"
height="10"
x="100"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-2-9-0"
width="10"
height="10"
x="110"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-7-1-8"
width="10"
height="10"
x="110"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-5-6-1"
width="10"
height="10"
x="100"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-4-9-5"
width="10"
height="10"
x="120"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-3-7-6"
width="10"
height="10"
x="130"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-38-2-6"
width="10"
height="10"
x="130"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-6-5-0"
width="10"
height="10"
x="120"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-4-7"
width="10"
height="10"
x="100"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-0-4"
width="10"
height="10"
x="110"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-73-3"
width="10"
height="10"
x="110"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-2-7"
width="10"
height="10"
x="100"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-0-1"
width="10"
height="10"
x="120"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-0-2"
width="10"
height="10"
x="130"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-6-1"
width="10"
height="10"
x="130"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-7-2"
width="10"
height="10"
x="120"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-2-4-3-2"
width="10"
height="10"
x="140"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-3-1-2-2"
width="10"
height="10"
x="150"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-63-9-7-3"
width="10"
height="10"
x="150"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-1-2-9-6"
width="10"
height="10"
x="140"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-0-2-4"
width="10"
height="10"
x="160"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-3-2-3"
width="10"
height="10"
x="170"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-8-2-2"
width="10"
height="10"
x="170"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-1-8-4"
width="10"
height="10"
x="160"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-0-3"
width="10"
height="10"
x="140"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-5-8"
width="10"
height="10"
x="150"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-5-8"
width="10"
height="10"
x="150"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-7-0"
width="10"
height="10"
x="140"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-5-6"
width="10"
height="10"
x="160"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-8-7"
width="10"
height="10"
x="170"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-7-5"
width="10"
height="10"
x="170"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-1-1"
width="10"
height="10"
x="160"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-58-6-6-2-9"
width="10"
height="10"
x="180"
y="140" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-96-4-4-6-6"
width="10"
height="10"
x="190"
y="150" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-8-7-0-6-5"
width="10"
height="10"
x="190"
y="140" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-1-5-1-2-1"
width="10"
height="10"
x="180"
y="150" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-8-5"
width="10"
height="10"
x="180"
y="160" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-7-0"
width="10"
height="10"
x="190"
y="170" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-4-8"
width="10"
height="10"
x="190"
y="160" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-1-4"
width="10"
height="10"
x="180"
y="170" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-9-6-8-8"
width="10"
height="10"
x="100"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-9-6-9-5"
width="10"
height="10"
x="110"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-6-7-4-5"
width="10"
height="10"
x="110"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-2-3-2-9"
width="10"
height="10"
x="100"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-8-6-5-9"
width="10"
height="10"
x="120"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-3-7-5-2"
width="10"
height="10"
x="130"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-2-5-3-8"
width="10"
height="10"
x="130"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-0-5-5-3"
width="10"
height="10"
x="120"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-0-8-0-9-2-1"
width="10"
height="10"
x="140"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-4-4-7-4-0-4"
width="10"
height="10"
x="150"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-6-7-5-8-3-2"
width="10"
height="10"
x="150"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-7-1-3-9-9-6"
width="10"
height="10"
x="140"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-81-4-8-9"
width="10"
height="10"
x="160"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-5-3-7-9"
width="10"
height="10"
x="170"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-4-0-4-5"
width="10"
height="10"
x="170"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-7-2-5-1"
width="10"
height="10"
x="160"
y="189.99997" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-39-5-9-8-5-3-0-1"
width="10"
height="10"
x="180"
y="180" />
<rect
style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-9-9-1-7-5-6-1-1"
width="10"
height="10"
x="190"
y="189.99997" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-9-3-3-7-9-2-2-7"
width="10"
height="10"
x="190"
y="180" />
<rect
style="fill:#9a9a9a;fill-opacity:1;stroke:none;stroke-width:0.38"
id="rect910-3-5-2-0-7-4-4-3-0-3-2"
width="10"
height="10"
x="180"
y="189.99997" />
</g>
</svg>
img/logo.png

10.5 KiB

......@@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="icon" type="image/x-icon" href="images/logo.png">
<link rel="icon" type="image/x-icon" href="img/logo.png">
<link rel="stylesheet" type="text/css" href="src/style.css">
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
......@@ -10,7 +10,9 @@
<meta http-equiv="Expires" content="-1" />
</head>
<body style="background-color: rgb(255, 255, 255);">
<h1>gerber2png</h1>
<h1>gerber2img</h1>
<p>Drag and drop one or multiple Gerber files; lock origin and dimensions to preserve alignment between successive uploads.</p>
<p>For through-holes and vias, make sure to export drill file (.drl) as metric.</p>
<div id="dropZone"><p id="dropText"></p></div>
<input type="file" id="fileInput" multiple hidden></input>
<canvas id="canvas" hidden></canvas>
......@@ -23,7 +25,7 @@
<div>
<!-- <button class="interface" id="loadButton">Load file(s)...</button></input> -->
<button class="interface" id="downloadRenderButton">Download render</button>
<button class="interface" id="downloadlayersButton">Download layers</button>
<!-- <button class="interface" id="downloadlayersButton">Download layers</button> -->
</div>
</div>
<div class="panel">
......@@ -32,12 +34,22 @@
<h3>Rendering</h3>
<div>
<input type="checkbox" id="settingsFill" checked=checked>
<input type="checkbox" id="settingsFill" checked="checked">
<label for="settingsFill">Fill edge cut</label>
</div>
<div>
<input type="checkbox" id="settingsAsSVG" checked=unchecked>
<input type="checkbox" id="settingsBW">
<label for="settingsBW">Black and white</label>
</div>
<div>
<input type="checkbox" id="settingsTransparent">
<label for="settingsTransparent">Transparent background</label>
</div>
<div>
<input type="checkbox" id="settingsAsSVG">
<label for="settingsAsSVG">Download as SVG</label>
</div>
......@@ -68,13 +80,16 @@
<h3>Margins [mm]</h3>
<div>
<label for="settingsMarginX">x:</label>
<input id="settingsMarginX" step=0.1 min=0 type="number" value=3>
<input id="settingsMarginX" step=0.1 min=0 type="number" value=2>
<label for="settingsMarginY">y:</label>
<input id="settingsMarginY" step=0.1 min=0 type="number" value=3>
<input id="settingsMarginY" step=0.1 min=0 type="number" value=2>
</div>
</div>
</div>
</div>
<script type="module" src="/src/interface.js"></script>
<footer>
<img src="img/logo.png" height="24" style="margin-left:4px; margin-right:4px;"></img>Quentin Bolsée and Jake Read, MIT Center for Bits and Atoms, 2023
</footer>
</body>
</html>
# png-metadata
library to read and write PNG Metadata on NodeJS and Browser
w3 PNG Chunks specification: https://www.w3.org/TR/PNG-Chunks.html
The Metadata in PNG files: https://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_PNG_files
### example with buffers
```javascript
function loadFileAsBlob(url){
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status === 200) {
resolve(this.response);
// myBlob is now the blob that the object URL pointed to.
}else{
reject(this.response);
}
};
xhr.send();
})
};
//Browser
const blob = await loadFileAsBlob('1000ppcm.png');
const buffer = await blob.arrayBuffer();
//NodeJS
const buffer = fs.readFileSync('1000ppcm.png')
//read metadata
metadata = readMetadata(buffer);
```
### metadata format
image with 300 dpi
```javascript
{
"pHYs": {
"x": 30000,
"y": 30000,
"units": RESOLUTION_UNITS.INCHES
},
"tEXt": {
"Title": "Short (one line) title or caption for image",
"Author": "Name of image's creator",
"Description": "Description of image (possibly long)",
"Copyright": "Copyright notice",
"Software": "Software used to create the image",
"Disclaimer": "Legal disclaimer",
"Warning": "Warning of nature of content",
"Source": "Device used to create the image",
"Comment": "Miscellaneous comment"
}
}
```
### writing metadata
```javascript
writeMetadata(buffer,metadata);
```
### save image from canvas
```javascript
canvas.toBlob(blob => {
let newBlob = fabric.util.png.writeMetadataB(blob, metadata);
saveAs(newBlob, title);
});
```
/**
* library to read and write PNG Metadata
*
* References:
* w3 PNG Chunks specification: https://www.w3.org/TR/PNG-Chunks.html
* The Metadata in PNG files: https://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_PNG_files
*/
let crc32 = require('crc-32')
// Used for fast-ish conversion between uint8s and uint32s/int32s.
// Also required in order to remain agnostic for both Node Buffers and
// Uint8Arrays.
let uint8 = new Uint8Array(4)
let int32 = new Int32Array(uint8.buffer)
let uint32 = new Uint32Array(uint8.buffer)
const RESOLUTION_UNITS = {UNDEFINED: 0, METERS: 1, INCHES: 2};
/**
* https://github.com/aheckmann/sliced
* An Array.prototype.slice.call(arguments) alternative
* @param {Object} args something with a length
* @param {Number} slice
* @param {Number} sliceEnd
* @api public
*/
function sliced (args, slice, sliceEnd) {
var ret = [];
var len = args.length;
if (0 === len) return ret;
var start = slice < 0
? Math.max(0, slice + len)
: slice || 0;
if (sliceEnd !== undefined) {
len = sliceEnd < 0
? sliceEnd + len
: sliceEnd
}
while (len-- > start) {
ret[len - start] = args[len];
}
return ret;
}
/**
* https://github.com/hughsk/png-chunk-text
* Returns a chunk object containing the metadata for a given key and value:
* @param keyword
* @param content
* @param chunkName
* @returns {{data: Uint8Array, name: 'tEXt'}}
*/
function textEncode (keyword, content , chunkName = 'tEXt') {
keyword = String(keyword)
content = String(content)
if (content.length && (!/^[\x00-\xFF]+$/.test(keyword) || !/^[\x00-\xFF]+$/.test(content))) {
throw new Error('Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression')
}
if (keyword.length >= 80) {
throw new Error('Keyword "' + keyword + '" is longer than the 79-character limit imposed by the PNG specification')
}
let totalSize = keyword.length + content.length + 1
let output = new Uint8Array(totalSize)
let idx = 0
let code
for (let i = 0; i < keyword.length; i++) {
if (!(code = keyword.charCodeAt(i))) {
throw new Error('0x00 character is not permitted in tEXt keywords')
}
output[idx++] = code
}
output[idx++] = 0
for (let j = 0; j < content.length; j++) {
if (!(code = content.charCodeAt(j))) {
throw new Error('0x00 character is not permitted in tEXt content')
}
output[idx++] = code
}
return {
name: chunkName,
data: output
}
}
/**
* https://github.com/hughsk/png-chunk-text
* Reads a Uint8Array or Node.js Buffer instance containing a tEXt PNG chunk's data and returns its keyword/text:
* @param data
* @returns {{text: string, keyword: string}}
*/
function textDecode (data) {
if (data.data && data.name) {
data = data.data
}
let naming = true
let text = ''
let name = ''
for (let i = 0; i < data.length; i++) {
let code = data[i]
if (naming) {
if (code) {
name += String.fromCharCode(code)
} else {
naming = false
}
} else {
if (code) {
text += String.fromCharCode(code)
} else {
throw new Error('Invalid NULL character found. 0x00 character is not permitted in tEXt content')
}
}
}
return {
keyword: name,
text: text
}
}
/**
* https://github.com/hughsk/png-chunks-extract
* Extract the data chunks from a PNG file.
* Useful for reading the metadata of a PNG image, or as the base of a more complete PNG parser.
* Takes the raw image file data as a Uint8Array or Node.js Buffer, and returns an array of chunks. Each chunk has a name and data buffer:
* @param data {Uint8Array}
* @returns {[{name: String, data: Uint8Array}]}
*/
function extractChunks (data) {
if (data[0] !== 0x89) throw new Error('Invalid .png file header')
if (data[1] !== 0x50) throw new Error('Invalid .png file header')
if (data[2] !== 0x4E) throw new Error('Invalid .png file header')
if (data[3] !== 0x47) throw new Error('Invalid .png file header')
if (data[4] !== 0x0D) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
if (data[5] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
if (data[6] !== 0x1A) throw new Error('Invalid .png file header')
if (data[7] !== 0x0A) throw new Error('Invalid .png file header: possibly caused by DOS-Unix line ending conversion?')
let ended = false
let chunks = []
let idx = 8
while (idx < data.length) {
// Read the length of the current chunk,
// which is stored as a Uint32.
uint8[3] = data[idx++]
uint8[2] = data[idx++]
uint8[1] = data[idx++]
uint8[0] = data[idx++]
// Chunk includes name/type for CRC check (see below).
let length = uint32[0] + 4
let chunk = new Uint8Array(length)
chunk[0] = data[idx++]
chunk[1] = data[idx++]
chunk[2] = data[idx++]
chunk[3] = data[idx++]
// Get the name in ASCII for identification.
let name = (
String.fromCharCode(chunk[0]) +
String.fromCharCode(chunk[1]) +
String.fromCharCode(chunk[2]) +
String.fromCharCode(chunk[3])
)
// The IHDR header MUST come first.
if (!chunks.length && name !== 'IHDR') {
throw new Error('IHDR header missing')
}
// The IEND header marks the end of the file,
// so on discovering it break out of the loop.
if (name === 'IEND') {
ended = true
chunks.push({
name: name,
data: new Uint8Array(0)
})
break
}
// Read the contents of the chunk out of the main buffer.
for (let i = 4; i < length; i++) {
chunk[i] = data[idx++]
}
// Read out the CRC value for comparison.
// It's stored as an Int32.
uint8[3] = data[idx++]
uint8[2] = data[idx++]
uint8[1] = data[idx++]
uint8[0] = data[idx++]
let crcActual = int32[0]
let crcExpect = crc32.buf(chunk)
if (crcExpect !== crcActual) {
throw new Error(
'CRC values for ' + name + ' header do not match, PNG file is likely corrupted'
)
}
// The chunk data is now copied to remove the 4 preceding
// bytes used for the chunk name/type.
let chunkData = new Uint8Array(chunk.buffer.slice(4))
chunks.push({
name: name,
data: chunkData
})
}
if (!ended) {
throw new Error('.png file ended prematurely: no IEND header was found')
}
return chunks
}
/**
* https://github.com/hughsk/png-chunks-encode
* Return a fresh PNG buffer given a set of PNG chunks. Useful in combination with png-chunks-encode to easily modify or add to the data of a PNG file.
* Takes an array of chunks, each with a name and data:
* @param chunks {[{name: String, data: Uint8Array}]}
* @returns {Uint8Array}
*/
function encodeChunks (chunks) {
let totalSize = 8
let idx = totalSize
let i
for (i = 0; i < chunks.length; i++) {
totalSize += chunks[i].data.length
totalSize += 12
}
let output = new Uint8Array(totalSize)
output[0] = 0x89
output[1] = 0x50
output[2] = 0x4E
output[3] = 0x47
output[4] = 0x0D
output[5] = 0x0A
output[6] = 0x1A
output[7] = 0x0A
for (i = 0; i < chunks.length; i++) {
let chunk = chunks[i]
let name = chunk.name
let data = chunk.data
let size = data.length
let nameChars = [
name.charCodeAt(0),
name.charCodeAt(1),
name.charCodeAt(2),
name.charCodeAt(3)
]
uint32[0] = size
output[idx++] = uint8[3]
output[idx++] = uint8[2]
output[idx++] = uint8[1]
output[idx++] = uint8[0]
output[idx++] = nameChars[0]
output[idx++] = nameChars[1]
output[idx++] = nameChars[2]
output[idx++] = nameChars[3]
for (let j = 0; j < size;) {
output[idx++] = data[j++]
}
let crcCheck = nameChars.concat(sliced(data));
int32[0] = crc32.buf(crcCheck)
output[idx++] = uint8[3]
output[idx++] = uint8[2]
output[idx++] = uint8[1]
output[idx++] = uint8[0]
}
return output
}
/**
* read 4 bytes number from UInt8Array.
* @param uint8array
* @param offset
* @returns {number}
*/
function readUint32 (uint8array,offset) {
let byte1, byte2, byte3, byte4;
byte1 = uint8array[offset++];
byte2 = uint8array[offset++];
byte3 = uint8array[offset++];
byte4 = uint8array[offset];
return 0 | (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;
}
/**
* write 4 bytes number to UInt8Array.
* @param uint8array
* @param num
* @param offset
*/
function writeUInt32(uint8array, num, offset){
uint8array[offset] = (num & 0xff000000) >> 24;
uint8array[offset + 1] = (num & 0x00ff0000) >> 16;
uint8array[offset + 2] = (num & 0x0000ff00) >> 8;
uint8array[offset + 3] = (num & 0x000000ff);
}
/**
* Get object with PNG metadata. only tEXt and pHYs chunks are parsed
* @param buffer {Buffer}
* @returns {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}, [string]: true}}
*/
function readMetadata(buffer){
let result = {};
const chunks = extractChunks(buffer);
chunks.forEach( chunk => {
switch(chunk.name){
case 'tEXt':
if (!result.tEXt) {
result.tEXt = {};
}
let textChunk = textDecode(chunk.data);
result.tEXt[textChunk.keyword] = textChunk.text;
break
case 'pHYs':
result.pHYs = {
// Pixels per unit, X axis: 4 bytes (unsigned integer)
"x": readUint32(chunk.data, 0),
// Pixels per unit, Y axis: 4 bytes (unsigned integer)
"y": readUint32(chunk.data, 4),
"unit": chunk.data[8],
}
break
case 'gAMA':
case 'cHRM':
case 'sRGB':
case 'IHDR':
case 'iCCP':
default:
result[chunk.name] = true;
}
})
return result;
}
/**
* create new Buffer with metadata. only tEXt and pHYs chunks are supported.
* @param buffer {Buffer}
* @param metadata {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}}}
* @returns {Buffer}
*/
function writeMetadata(buffer,metadata){
const chunks = extractChunks(buffer);
insertMetadata(chunks,metadata);
return new Buffer.from(encodeChunks(chunks))
}
/**
* the same. but for Blobs
* @param blob {Blob}
* @param metadata {{tEXt: {keyword: value}, pHYs: {x: number, y: number, units: RESOLUTION_UNITS}}}
* @returns {Promise<Blob>} new blob
*/
export async function writeMetadataB(blob,metadata){
let arrayBuffer = await blob.arrayBuffer();
let uint8Array = new Uint8Array(arrayBuffer);
let newBuffer = await writeMetadata(uint8Array,metadata);
return new Blob([newBuffer], {type : blob.type});
}
function insertMetadata(chunks,metadata){
if(metadata.clear){
for(let i = chunks.length - 1; i--;){
switch(chunks[i].name){
case 'IHDR':
case 'IDAT':
case 'IEND':
break;
default:
chunks.splice(i,1);
}
}
}
if(metadata.tEXt){
for(var keyword in metadata.tEXt){
chunks.splice(-1, 0, textEncode(keyword, metadata.tEXt[keyword]))
}
}
if(metadata.pHYs){
const data = new Uint8Array(9);
writeUInt32(data,metadata.pHYs.x,0)
writeUInt32(data,metadata.pHYs.y,4)
data[8] = metadata.pHYs.units; // inches
let pHYs = chunks.find(chunk => chunk.name === "pHYs");
if(pHYs){
pHYs.data = data;
}
else{
chunks.splice(1, 0, {name: "pHYs",data: data})
}
}
console.log(metadata)
console.log("DONE")
}
// module.exports = {
// RESOLUTION_UNITS: RESOLUTION_UNITS,
// insertMetadata: insertMetadata,
// readMetadata: readMetadata,
// writeMetadata: writeMetadata,
// writeMetadataB: writeMetadataB,
// textEncode: textEncode,
// textDecode: textDecode,
// extractChunks: extractChunks,
// encodeChunks: encodeChunks
// };
{
"name": "png-metadata",
"version": "1.0.0",
"description": "library to read and write PNG Metadata",
"main": "index.js",
"dependencies": {
"crc-32": "^1.2.0"
}
}
{
"name": "gerber2png",
"version": "0.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "gerber2png",
"version": "0.0.0",
"dependencies": {
"browserify-zlib": "^0.2.0",
"buffer": "^6.0.0",
"events": "^3.0.0",
"gerber-to-svg": "^4.2.8",
"process": "^0.11.10",
"save-svg-as-png": "^1.4.0",
"stream-browserify": "^3.0.0",
"util": "^0.12.5"
},
"devDependencies": {
"typescript": "^5.0.2",
"vite": "^4.4.11"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
"integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
"integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
"integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
"integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
"integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
"integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
"integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
"integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
"integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
"integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
"integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
"cpu": [
"loong64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
"integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
"cpu": [
"mips64el"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
"integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
"integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
"cpu": [
"riscv64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
"integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
"cpu": [
"s390x"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
"integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
"integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
"integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
"integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
"integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
"integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
"integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@tracespace/xml-id": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/@tracespace/xml-id/-/xml-id-4.2.7.tgz",
"integrity": "sha512-4T7uAx5HB6qwKNH7jQDiij4EDe+uP+zlFcccMpZageZA5S2V2GFxm3g5lThJdTaQhp8Or4FLsmu8C/BRdYS7hg=="
},
"node_modules/@types/node": {
"version": "20.8.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.4.tgz",
"integrity": "sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"undici-types": "~5.25.1"
}
},
"node_modules/available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
"integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/browserify-zlib": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
"integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
"dependencies": {
"pako": "~1.0.5"
}
},
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/esbuild": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
"integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
"dev": true,
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.18.20",
"@esbuild/android-arm64": "0.18.20",
"@esbuild/android-x64": "0.18.20",
"@esbuild/darwin-arm64": "0.18.20",
"@esbuild/darwin-x64": "0.18.20",
"@esbuild/freebsd-arm64": "0.18.20",
"@esbuild/freebsd-x64": "0.18.20",
"@esbuild/linux-arm": "0.18.20",
"@esbuild/linux-arm64": "0.18.20",
"@esbuild/linux-ia32": "0.18.20",
"@esbuild/linux-loong64": "0.18.20",
"@esbuild/linux-mips64el": "0.18.20",
"@esbuild/linux-ppc64": "0.18.20",
"@esbuild/linux-riscv64": "0.18.20",
"@esbuild/linux-s390x": "0.18.20",
"@esbuild/linux-x64": "0.18.20",
"@esbuild/netbsd-x64": "0.18.20",
"@esbuild/openbsd-x64": "0.18.20",
"@esbuild/sunos-x64": "0.18.20",
"@esbuild/win32-arm64": "0.18.20",
"@esbuild/win32-ia32": "0.18.20",
"@esbuild/win32-x64": "0.18.20"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"engines": {
"node": ">=0.8.x"
}
},
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dependencies": {
"is-callable": "^1.1.3"
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/gerber-parser": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/gerber-parser/-/gerber-parser-4.2.7.tgz",
"integrity": "sha512-Docb3egdLPjqYu/oH9Zhhc25kb2Ub9qkVFXu3seg13nDNW+KxbglqvyDcC0CGxkXxCaTqP3iyWNBG38fssmGKw==",
"dependencies": {
"@types/node": "^13.1.6",
"inherits": "^2.0.4",
"lodash.isfinite": "^3.3.2",
"lodash.padend": "^4.6.1",
"lodash.padstart": "^4.6.1",
"readable-stream": "^3.4.0"
}
},
"node_modules/gerber-parser/node_modules/@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
},
"node_modules/gerber-plotter": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/gerber-plotter/-/gerber-plotter-4.2.8.tgz",
"integrity": "sha512-n+Kg4HJQzCVBvgh73Rit8xCrQOJFhnnIBV7psboURjlcIwuYum4eAEOTd6S3GyXXvxGGay3aOmp6HwQ373ciuQ==",
"dependencies": {
"@types/node": "^13.1.6",
"inherits": "^2.0.4",
"lodash.fill": "^3.4.0",
"lodash.isfinite": "^3.3.2",
"lodash.isfunction": "^3.0.9",
"readable-stream": "^3.4.0"
},
"peerDependencies": {
"gerber-parser": "^4.0.0"
}
},
"node_modules/gerber-plotter/node_modules/@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
},
"node_modules/gerber-to-svg": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/gerber-to-svg/-/gerber-to-svg-4.2.8.tgz",
"integrity": "sha512-EgUR5cJu5s1UgB2jy+we9UBGH5c2ecmcsBsv2AOEjeYRUijMx7jg7mCsHAuGoF8ogmBWmh6/ahDxDJe7d7zzIw==",
"dependencies": {
"@tracespace/xml-id": "^4.2.7",
"@types/node": "^13.1.6",
"escape-html": "^1.0.3",
"gerber-parser": "^4.2.7",
"gerber-plotter": "^4.2.8",
"inherits": "^2.0.4",
"lodash.isfinite": "^3.3.2",
"readable-stream": "^3.4.0",
"xml-element-string": "^1.0.0"
}
},
"node_modules/gerber-to-svg/node_modules/@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
},
"node_modules/get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dependencies": {
"get-intrinsic": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
"integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dependencies": {
"has-symbols": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-typed-array": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
"integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"dependencies": {
"which-typed-array": "^1.1.11"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/lodash.fill": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz",
"integrity": "sha512-YgunwHKIxPWOe3VnM65J3oi6oShakIxdLMeIZ9xxcsMxc8X/FQC2VlA4eJzMv+7GlC5gebQLn+U+qcNoG18iLA=="
},
"node_modules/lodash.isfinite": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
"integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA=="
},
"node_modules/lodash.isfunction": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
},
"node_modules/lodash.padend": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
"integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw=="
},
"node_modules/lodash.padstart": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
"integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw=="
},
"node_modules/nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
"nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/rollup": {
"version": "3.29.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
"node": ">=14.18.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/save-svg-as-png": {
"version": "1.4.17",
"resolved": "https://registry.npmjs.org/save-svg-as-png/-/save-svg-as-png-1.4.17.tgz",
"integrity": "sha512-7QDaqJsVhdFPwviCxkgHiGm9omeaMBe1VKbHySWU6oFB2LtnGCcYS13eVoslUgq6VZC6Tjq/HddBd1K6p2PGpA=="
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/stream-browserify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
"integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
"dependencies": {
"inherits": "~2.0.4",
"readable-stream": "^3.5.0"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/undici-types": {
"version": "5.25.3",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz",
"integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==",
"dev": true,
"optional": true,
"peer": true
},
"node_modules/util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/vite": {
"version": "4.4.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
"integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
"dev": true,
"dependencies": {
"esbuild": "^0.18.10",
"postcss": "^8.4.27",
"rollup": "^3.27.1"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
},
"peerDependencies": {
"@types/node": ">= 14",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
"stylus": "*",
"sugarss": "*",
"terser": "^5.4.0"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
"less": {
"optional": true
},
"lightningcss": {
"optional": true
},
"sass": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"terser": {
"optional": true
}
}
},
"node_modules/which-typed-array": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
"integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/xml-element-string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/xml-element-string/-/xml-element-string-1.0.0.tgz",
"integrity": "sha512-JhO/ZCCwce8c9rLVXEA/KAy3Kg5340Ey4QBglQ+9ScQrQdroothAXblTRtyGkJZRRqQkkJSMZx8Kd7DGPMBsAw==",
"dependencies": {
"escape-html": "^1.0.3"
}
}
},
"dependencies": {
"@esbuild/android-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
"integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
"integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
"integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
"integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
"integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
"integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
"integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
"integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
"integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
"integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
"integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
"integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
"integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
"integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
"integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
"integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
"integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
"integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
"integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
"integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
"integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
"integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
"dev": true,
"optional": true
},
"@tracespace/xml-id": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/@tracespace/xml-id/-/xml-id-4.2.7.tgz",
"integrity": "sha512-4T7uAx5HB6qwKNH7jQDiij4EDe+uP+zlFcccMpZageZA5S2V2GFxm3g5lThJdTaQhp8Or4FLsmu8C/BRdYS7hg=="
},
"@types/node": {
"version": "20.8.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.4.tgz",
"integrity": "sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"undici-types": "~5.25.1"
}
},
"available-typed-arrays": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
"integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"browserify-zlib": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
"integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
"requires": {
"pako": "~1.0.5"
}
},
"buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"esbuild": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
"integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.18.20",
"@esbuild/android-arm64": "0.18.20",
"@esbuild/android-x64": "0.18.20",
"@esbuild/darwin-arm64": "0.18.20",
"@esbuild/darwin-x64": "0.18.20",
"@esbuild/freebsd-arm64": "0.18.20",
"@esbuild/freebsd-x64": "0.18.20",
"@esbuild/linux-arm": "0.18.20",
"@esbuild/linux-arm64": "0.18.20",
"@esbuild/linux-ia32": "0.18.20",
"@esbuild/linux-loong64": "0.18.20",
"@esbuild/linux-mips64el": "0.18.20",
"@esbuild/linux-ppc64": "0.18.20",
"@esbuild/linux-riscv64": "0.18.20",
"@esbuild/linux-s390x": "0.18.20",
"@esbuild/linux-x64": "0.18.20",
"@esbuild/netbsd-x64": "0.18.20",
"@esbuild/openbsd-x64": "0.18.20",
"@esbuild/sunos-x64": "0.18.20",
"@esbuild/win32-arm64": "0.18.20",
"@esbuild/win32-ia32": "0.18.20",
"@esbuild/win32-x64": "0.18.20"
}
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
"for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"requires": {
"is-callable": "^1.1.3"
}
},
"fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"optional": true
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"gerber-parser": {
"version": "4.2.7",
"resolved": "https://registry.npmjs.org/gerber-parser/-/gerber-parser-4.2.7.tgz",
"integrity": "sha512-Docb3egdLPjqYu/oH9Zhhc25kb2Ub9qkVFXu3seg13nDNW+KxbglqvyDcC0CGxkXxCaTqP3iyWNBG38fssmGKw==",
"requires": {
"@types/node": "^13.1.6",
"inherits": "^2.0.4",
"lodash.isfinite": "^3.3.2",
"lodash.padend": "^4.6.1",
"lodash.padstart": "^4.6.1",
"readable-stream": "^3.4.0"
},
"dependencies": {
"@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
}
}
},
"gerber-plotter": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/gerber-plotter/-/gerber-plotter-4.2.8.tgz",
"integrity": "sha512-n+Kg4HJQzCVBvgh73Rit8xCrQOJFhnnIBV7psboURjlcIwuYum4eAEOTd6S3GyXXvxGGay3aOmp6HwQ373ciuQ==",
"requires": {
"@types/node": "^13.1.6",
"inherits": "^2.0.4",
"lodash.fill": "^3.4.0",
"lodash.isfinite": "^3.3.2",
"lodash.isfunction": "^3.0.9",
"readable-stream": "^3.4.0"
},
"dependencies": {
"@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
}
}
},
"gerber-to-svg": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/gerber-to-svg/-/gerber-to-svg-4.2.8.tgz",
"integrity": "sha512-EgUR5cJu5s1UgB2jy+we9UBGH5c2ecmcsBsv2AOEjeYRUijMx7jg7mCsHAuGoF8ogmBWmh6/ahDxDJe7d7zzIw==",
"requires": {
"@tracespace/xml-id": "^4.2.7",
"@types/node": "^13.1.6",
"escape-html": "^1.0.3",
"gerber-parser": "^4.2.7",
"gerber-plotter": "^4.2.8",
"inherits": "^2.0.4",
"lodash.isfinite": "^3.3.2",
"readable-stream": "^3.4.0",
"xml-element-string": "^1.0.0"
},
"dependencies": {
"@types/node": {
"version": "13.13.52",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
"integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ=="
}
}
},
"get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"requires": {
"get-intrinsic": "^1.1.3"
}
},
"has": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
"integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ=="
},
"has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
},
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"requires": {
"has-symbols": "^1.0.2"
}
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
}
},
"is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
},
"is-generator-function": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
"is-typed-array": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
"integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
"requires": {
"which-typed-array": "^1.1.11"
}
},
"lodash.fill": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz",
"integrity": "sha512-YgunwHKIxPWOe3VnM65J3oi6oShakIxdLMeIZ9xxcsMxc8X/FQC2VlA4eJzMv+7GlC5gebQLn+U+qcNoG18iLA=="
},
"lodash.isfinite": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
"integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA=="
},
"lodash.isfunction": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
},
"lodash.padend": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
"integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw=="
},
"lodash.padstart": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
"integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw=="
},
"nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true
},
"pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true,
"requires": {
"nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"rollup": {
"version": "3.29.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
"dev": true,
"requires": {
"fsevents": "~2.3.2"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"save-svg-as-png": {
"version": "1.4.17",
"resolved": "https://registry.npmjs.org/save-svg-as-png/-/save-svg-as-png-1.4.17.tgz",
"integrity": "sha512-7QDaqJsVhdFPwviCxkgHiGm9omeaMBe1VKbHySWU6oFB2LtnGCcYS13eVoslUgq6VZC6Tjq/HddBd1K6p2PGpA=="
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true
},
"stream-browserify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
"integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
"requires": {
"inherits": "~2.0.4",
"readable-stream": "^3.5.0"
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true
},
"undici-types": {
"version": "5.25.3",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz",
"integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==",
"dev": true,
"optional": true,
"peer": true
},
"util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"requires": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
"which-typed-array": "^1.1.2"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"vite": {
"version": "4.4.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
"integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
"dev": true,
"requires": {
"esbuild": "^0.18.10",
"fsevents": "~2.3.2",
"postcss": "^8.4.27",
"rollup": "^3.27.1"
}
},
"which-typed-array": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
"integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
"requires": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.0"
}
},
"xml-element-string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/xml-element-string/-/xml-element-string-1.0.0.tgz",
"integrity": "sha512-JhO/ZCCwce8c9rLVXEA/KAy3Kg5340Ey4QBglQ+9ScQrQdroothAXblTRtyGkJZRRqQkkJSMZx8Kd7DGPMBsAw==",
"requires": {
"escape-html": "^1.0.3"
}
}
}
}
......@@ -12,14 +12,15 @@
"buffer": "^6.0.0",
"events": "^3.0.0",
"gerber-to-svg": "^4.2.8",
"save-svg-as-png": "^1.4.0",
"browserify-zlib": "^0.2.0",
"process": "^0.11.10",
"stream-browserify": "^3.0.0",
"util": "^0.12.5"
"util": "^0.12.5",
"png-metadata": "file:lib/png-metadata"
},
"devDependencies": {
"typescript": "^5.0.2",
"vite": "^4.4.11"
"vite": "^4.4.11",
"vite-require": "^0.2.3"
}
}
// Quentin Bolsee and Jake Read, MIT Center for Bits and Atoms, 2023
// import * as saveSvgAsPng from 'save-svg-as-png'
// import * as downloadAsPng from 'save-svg-as-png'
// require('save-svg-as-png')
// require('process');
import process from "process";
// import { util } from "util";
import { Buffer } from "buffer";
import EventEmitter from "events";
......@@ -12,12 +9,13 @@ window.Buffer = Buffer;
window.process = process;
window.EventEmitter = EventEmitter;
import gerberToSvg from 'gerber-to-svg'
import * as saveSvg from 'save-svg-as-png'
import { writeMetadataB } from 'png-metadata';
import gerberToSvg from 'gerber-to-svg';
let sourceElem = document.getElementById("body");
let svgElem = document.getElementById("previewSVG");
// order of known layers, KiCAD and EAGLE namings
const lookupOrder = [
"Edge_Cuts", // KiCAD
......@@ -68,12 +66,14 @@ const lookupColor = {
};
let globalLayers = [];
let globalLayersXML = [];
let globalXML = null;
// units in mm
let globalSettings = {
fillEdge : true,
transparent : false,
blackAndWhite : false,
asSVG: false,
dpi: 1000,
svgOrig : [NaN, NaN],
......@@ -161,6 +161,22 @@ function updateSVG(fromSettingsChange=false) {
globalXMLRoot.setAttribute("viewBox", vb.join(' '));
globalXMLRoot.setAttribute("width", `${(vb[2]/1000).toFixed(3)}mm`);
globalXMLRoot.setAttribute("height", `${(vb[3]/1000).toFixed(3)}mm`);
let backgroundElem;
if (!globalSettings.transparent) {
backgroundElem = globalXMLRoot.ownerDocument.createElement("rect");
if (globalSettings.blackAndWhite) {
backgroundElem.setAttribute("fill", "rgb(0,0,0)");
} else {
backgroundElem.setAttribute("fill", "rgb(255,255,255)");
}
backgroundElem.setAttribute("x", vb[0]);
backgroundElem.setAttribute("y", vb[1]);
backgroundElem.setAttribute("width", vb[2]);
backgroundElem.setAttribute("height", vb[3]);
globalXMLRoot.appendChild(backgroundElem);
}
let only_drills = true;
for ([layerName, layerTxt] of layersSorted) {
layerXML = parser.parseFromString(layerTxt, "text/xml");
......@@ -181,9 +197,21 @@ function updateSVG(fromSettingsChange=false) {
g.setAttribute("transform", `translate(0, ${ty}) scale(1, -1)`);
// let ty = Number(m[1]) + (layerVB[3]-(yMax-yMin))/2;
if (globalSettings.blackAndWhite) {
g.setAttribute("opacity", 1.0);
if (layerName === "drill") {
g.setAttribute("fill", "rgb(0,0,0)");
g.setAttribute("stroke", "rgb(0,0,0)");
} else {
g.setAttribute("fill", "rgb(255,255,255)");
g.setAttribute("stroke", "rgb(255,255,255)");
only_drills = false;
}
} else {
g.setAttribute("opacity", layerOpacity);
g.setAttribute("fill", layerRGB);
g.setAttribute("stroke", layerRGB);
}
g.childNodes.forEach((p) => {
if (["profile", "Edge_Cuts"].includes(layerName) && globalSettings.fillEdge) {
// fill mode
......@@ -195,15 +223,13 @@ function updateSVG(fromSettingsChange=false) {
globalXMLRoot.appendChild(g.cloneNode(true));
}
}
if (!globalSettings.transparent && globalSettings.blackAndWhite && only_drills) {
backgroundElem.setAttribute("fill", "rgb(255,255,255)");
}
renderSVG();
}
function setDPI(canvas, dpi) {
// Set up CSS size.
canvas.style.width = canvas.style.width || canvas.width + 'px';
canvas.style.height = canvas.style.height || canvas.height + 'px';
// Resize canvas and scale future draws.
var scaleFactor = dpi / 96;
canvas.width = Math.ceil(canvas.width * scaleFactor);
......@@ -212,53 +238,97 @@ function setDPI(canvas, dpi) {
ctx.scale(scaleFactor, scaleFactor);
}
function downloadImage(separateLayers=false) {
function downloadBlob(blob, name = 'file.txt') {
if (
window.navigator &&
window.navigator.msSaveOrOpenBlob
) return window.navigator.msSaveOrOpenBlob(blob);
// For other browsers:
// Create a link pointing to the ObjectURL containing the blob.
const data = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = data;
link.download = name;
// this is necessary as link.click() does not work on the latest firefox
link.dispatchEvent(
new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
})
);
setTimeout(() => {
// For Firefox it is necessary to delay revoking the ObjectURL
window.URL.revokeObjectURL(data);
link.remove();
}, 100);
}
async function downloadImage(separateLayers=false) {
if (separateLayers) {
return;
}
saveSvg.saveSvgAsPng(svgElem, "diagram.png");
// if (isNaN(globalSettings.svgDim[0])) {
// return;
// }
// let svg = svgElem.closest('svg');
// let svgWidth = svg.attributes['width'].value;
// let svgHeight = svg.attributes['height'].value;
//
// let mmWidth = (globalSettings.svgDim[0]+2*globalSettings.svgMargin[0]);
// let mmHeight = (globalSettings.svgDim[1]+2*globalSettings.svgMargin[1]);
// let pxWidth = Math.round(globalSettings.dpi * mmWidth / 25.4);
// let pxHeight = Math.round(globalSettings.dpi * mmHeight / 25.4);
//
// let image = new Image();
// let canvas = document.getElementById('canvas');
// setDPI(canvas, globalSettings.dpi);
// // canvas.width = pxWidth;
// // canvas.height = pxHeight;
// let ctx = canvas.getContext('2d');
//
// image.addEventListener('load', (e) => {
// console.log(e.target.width)
// console.log(e.target.height)
// ctx.drawImage(e.target, 0, 0, e.target.width, e.target.height);
let svgTxt = new XMLSerializer().serializeToString(svgElem);
let svgURL = "data:image/svg+xml;charset=utf-8,"+encodeURIComponent(svgTxt);
if (globalSettings.asSVG) {
let downloadLink = document.createElement("a");
downloadLink.href = svgURL;
downloadLink.download = "render.svg";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
} else {
let scaleFactor = globalSettings.dpi / 96;
let image = new Image();
let canvas = document.getElementById('canvas');
let mmWidth = globalSettings.svgDim[0] + 2*globalSettings.svgMargin[0];
let mmHeight = globalSettings.svgDim[1] + 2*globalSettings.svgMargin[1];
let pxWidth = Math.floor(globalSettings.dpi * mmWidth / 25.4);
let pxHeight = Math.floor(globalSettings.dpi * mmHeight / 25.4);
// dummy resolution
canvas.width = pxWidth;
canvas.height = pxHeight;
let ctx = canvas.getContext('2d', { alpha: globalSettings.transparent });
ctx.scale(scaleFactor, scaleFactor);
image.addEventListener('load', async (e) => {
// fix transparent glitch
// ctx.fill =
// ctx.rect(0, 0, e.target.width, e.target.height);
// ctx.fill();
ctx.drawImage(e.target, 0, 0, e.target.width, e.target.height);
canvas.toBlob(async (blob) => {
let metadata = {
pHYs: {
x: Math.round(1000 * globalSettings.dpi / 25.4),
y: Math.round(1000 * globalSettings.dpi / 25.4),
units: 1 // inches
},
tExt: {
Software: "gerber2img"
}
}
let newBlob = await writeMetadataB(blob, metadata);
downloadBlob(newBlob, "render.png");
// saveAs(newBlob, title);
});
// writeMetadataB()
// const a = document.createElement('a');
// a.style.display = 'none';
// a.href = canvas.toDataURL("image/png");
// a.download = 'render.png';
// document.body.appendChild(a);
// a.click();
// });
// let svgURL = new XMLSerializer().serializeToString(svgElem);
// image.src = 'data:image/svg+xml; charset=utf8, ' + encodeURIComponent(svgURL);
// let txt = JSON.stringify(layers);
// var txtBlob = new Blob([txt], {
// type: 'text/plain'
// });
// const url = window.URL.createObjectURL(txtBlob);
// // the filename you want
// window.URL.revokeObjectURL(url);
//
// console.log(JSON.parse(txt))
});
image.src = svgURL;
}
}
var dropZone = document.getElementById('dropZone');
......@@ -350,6 +420,8 @@ dropZone.addEventListener('drop', (e) => {
function readSettings() {
let settingsFill = document.getElementById("settingsFill");
let settingsBW = document.getElementById("settingsBW");
let settingsTransparent = document.getElementById("settingsTransparent");
let settingsAsSVG = document.getElementById("settingsAsSVG");
let settingsDPI = document.getElementById("settingsDPI");
let settingsOrigX = document.getElementById("settingsOrigX");
......@@ -360,6 +432,8 @@ function readSettings() {
let settingsMarginY = document.getElementById("settingsMarginY");
globalSettings.fillEdge = settingsFill.checked;
globalSettings.blackAndWhite = settingsBW.checked;
globalSettings.transparent = settingsTransparent.checked;
globalSettings.asSVG = settingsAsSVG.checked;
globalSettings.dpi = Number(settingsDPI.value);
globalSettings.svgMargin = [
......@@ -397,6 +471,8 @@ function initListeners() {
for (let elementId of [
'settingsFill',
'settingsAsSVG',
'settingsBW',
'settingsTransparent',
'settingsDPI',
'settingsOrigX',
'settingsOrigY',
......@@ -428,7 +504,6 @@ lockOrigElem.addEventListener("click", () => {
globalSettings.lockOrig = true;
lockOrigElem.innerHTML = "🔒";
}
updateSVG();
});
lockDimElem.addEventListener("click", () => {
......@@ -445,20 +520,19 @@ lockDimElem.addEventListener("click", () => {
globalSettings.lockDim = true;
lockDimElem.innerHTML = "🔒";
}
updateSVG();
});
document.getElementById("downloadRenderButton").addEventListener("click", () => {
downloadImage(false);
document.getElementById("downloadRenderButton").addEventListener("click", async () => {
await downloadImage(false);
});
document.getElementById("downloadlayersButton").addEventListener("click", () => {
downloadImage(true);
});
// document.getElementById("downloadlayersButton").addEventListener("click", () => {
// downloadImage(true);
// });
readSettings();
initListeners();
readSettings();
globalLayers = JSON.parse('[["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"M7zzQZkyObU1_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"M7zzQZkyObU1_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"M7zzQZkyObU1_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"M7zzQZkyObU1_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"M7zzQZkyObU1_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"M7zzQZkyObU1_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"M7zzQZkyObU1_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#M7zzQZkyObU1_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"]]');
globalLayers = JSON.parse('[["Edge_Cuts","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"34.39mm\\" height=\\"38.835mm\\" viewBox=\\"52655 -71170 34390 38835\\"><g transform=\\"translate(0,-103505) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 86995 -34925 A 2540 2540 0 0 1 84455 -32385 L 55245 -32385 A 2540 2540 0 0 1 52705 -34925 L 52705 -68580 A 2540 2540 0 0 1 55245 -71120 L 84455 -71120 A 2540 2540 0 0 1 86995 -68580 L 86995 -34925\\" fill=\\"none\\" stroke-width=\\"100\\"/></g></svg>"],["F_Cu","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"32.531mm\\" height=\\"34.7mm\\" viewBox=\\"53775 -68780 32531 34700\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"uZojfCN5iBEs_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"uZojfCN5iBEs_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"uZojfCN5iBEs_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"uZojfCN5iBEs_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"uZojfCN5iBEs_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"uZojfCN5iBEs_pad-16\\"/></defs><g transform=\\"translate(0,-102860) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#uZojfCN5iBEs_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/><path d=\\"M 77765 -67310 78105 -66970 78105 -65450 79375 -65450 79375 -67050 79375 -66720 M 79375 -67050 79635 -67310 81280 -67310 81915 -66675 81915 -65450 83140 -65450 85090 -63500 85090 -48895 84995 -48800 82550 -48800 M 85090 -48895 85090 -42545 80645 -38100 77470 -38100 79450 -38100 M 56515 -67310 71120 -67310 77765 -67310 M 71215 -67215 71120 -67310 M 55270 -60915 55270 -61550 55270 -66065 56515 -67310 M 71215 -55880 71215 -67215 M 81915 -68580 86106 -64389 86106 -41910 79756 -35560 77470 -35560 79450 -35560 M 60039.002 -59404.002 54260.998 -59404.002 53975 -59690 53975 -66675 55880 -68580 81915 -68580 M 60350 -59715 60039.002 -59404.002 M 60350 -61550 60350 -59715 M 81915 -59690 81915 -61550 M 77470 -48260 74930 -50800 74930 -56504.295 76845.206 -58419.501 80644.501 -58419.501 81915 -59690 M 74120.499 -49069.501 74120.499 -56839.602 76509.9 -59229.002 77384.002 -59229.002 78105 -59950 78105 -61550 M 77470 -45720 74120.499 -49069.501 M 76835 -60960 73310.998 -57435.998 73310.998 -47339.002 77470 -43180 M 76835 -61550 76835 -60960 M 56515 -56385.488 57914.512 -57785 62300 -57785 65430 -60915 M 56515 -48990 56515 -56385.488 M 57785 -47720 56515 -48990 M 57229.704 -58245 57229 -58245 55372 -56388 55372 -43053 57785 -40640 62235 -40640 M 61769.501 -58594.501 57579.205 -58594.501 57229.704 -58245 M 62890 -59715 61769.501 -58594.501 M 62890 -60915 62890 -59715 M 62235 -48392 62235 -48260 M 58325 -43180 57785 -43720 M 62235 -43180 58325 -43180 M 59595 -51530 59595 -55880 M 60325 -50800 59595 -51530 M 62235 -50800 60325 -50800 M 63595 -55880 67215 -55880 M 77375 -50895 77375 -55880 M 79375 -50800 77470 -50800 77375 -50895 M 81375 -55880 81915 -55880 82550 -55245 82550 -52800\\" fill=\\"none\\" stroke-width=\\"400\\"/></g></svg>"],["F_Mask","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"28.765mm\\" height=\\"32.57mm\\" viewBox=\\"54635 -66650 28765 32570\\"><defs><rect x=\\"-635\\" y=\\"-1270\\" width=\\"1270\\" height=\\"2540\\" id=\\"rjjz4qFsGmhm_pad-10\\"/><rect x=\\"-850\\" y=\\"-1000\\" width=\\"1700\\" height=\\"2000\\" id=\\"rjjz4qFsGmhm_pad-11\\"/><rect x=\\"-1000\\" y=\\"-850\\" width=\\"2000\\" height=\\"1700\\" id=\\"rjjz4qFsGmhm_pad-12\\"/><rect x=\\"-1500\\" y=\\"-800\\" width=\\"3000\\" height=\\"1600\\" id=\\"rjjz4qFsGmhm_pad-13\\"/><rect x=\\"-600\\" y=\\"-1200\\" width=\\"1200\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-14\\"/><circle cx=\\"0\\" cy=\\"0\\" r=\\"600\\" id=\\"rjjz4qFsGmhm_pad-15\\"/><rect x=\\"-370\\" y=\\"-1200\\" width=\\"740\\" height=\\"2400\\" id=\\"rjjz4qFsGmhm_pad-16\\"/></defs><g transform=\\"translate(0,-100730) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"67970\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"65430\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"62890\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"60350\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"57810\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-10\\" x=\\"55270\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-48800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"82550\\" y=\\"-52800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"81375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"77375\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"63595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"59595\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"71215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-12\\" x=\\"67215\\" y=\\"-55880\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"61235\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-50800\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-48260\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-45720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-43180\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-40640\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-38100\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-13\\" x=\\"78470\\" y=\\"-35560\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"71125\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-14\\" x=\\"68585\\" y=\\"-52070\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"68580\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-37220\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-15\\" x=\\"71120\\" y=\\"-34680\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-47720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-11\\" x=\\"57785\\" y=\\"-43720\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"81915\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"80645\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"79375\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"78105\\" y=\\"-65450\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-61550\\"/><use xlink:href=\\"#rjjz4qFsGmhm_pad-16\\" x=\\"76835\\" y=\\"-65450\\"/></g></svg>"],["F_Silkscreen","<svg version=\\"1.1\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"0\\" fill-rule=\\"evenodd\\" width=\\"31.927400000000002mm\\" height=\\"41.975mm\\" viewBox=\\"53940 -73040 31927.4 41975\\"><g transform=\\"translate(0,-104105) scale(1,-1)\\" fill=\\"currentColor\\" stroke=\\"currentColor\\"><path d=\\"M 83026.2 -34999.533 83059.533 -34932.866 83126.2 -34866.2 83226.2 -34766.2 83259.533 -34699.533 83259.533 -34632.866 M 83192.866 -34932.866 83126.2 -34866.2 83092.866 -34799.533 83092.866 -34666.2 83126.2 -34599.533 83192.866 -34532.866 83326.2 -34499.533 83559.533 -34499.533 83692.866 -34532.866 83759.533 -34599.533 83792.866 -34666.2 83792.866 -34799.533 83759.533 -34866.2 83692.866 -34932.866 83559.533 -34966.2 83326.2 -34966.2 83192.866 -34932.866 M 83559.533 -35566.199 83092.866 -35566.199 M 83559.533 -35266.199 83192.866 -35266.199 83126.2 -35299.533 83092.866 -35366.199 83092.866 -35466.199 83126.2 -35532.866 83159.533 -35566.199 M 83126.2 -36166.199 83092.866 -36099.532 83092.866 -35966.199 83126.2 -35899.532 83192.866 -35866.199 83459.533 -35866.199 83526.2 -35899.532 83559.533 -35966.199 83559.533 -36099.532 83526.2 -36166.199 83459.533 -36199.532 83392.866 -36199.532 83326.2 -35866.199 M 83559.533 -36499.532 83092.866 -36499.532 M 83492.866 -36499.532 83526.2 -36532.866 83559.533 -36599.532 83559.533 -36699.532 83526.2 -36766.199 83459.533 -36799.532 83092.866 -36799.532 M 83559.533 -37032.865 83559.533 -37299.532 M 83792.866 -37132.865 83192.866 -37132.865 83126.2 -37166.199 83092.866 -37232.865 83092.866 -37299.532 M 83092.866 -37532.865 83559.533 -37532.865 M 83792.866 -37532.865 83759.533 -37499.532 83726.2 -37532.865 83759.533 -37566.199 83792.866 -37532.865 83726.2 -37532.865 M 83559.533 -37866.198 83092.866 -37866.198 M 83492.866 -37866.198 83526.2 -37899.532 83559.533 -37966.198 83559.533 -38066.198 83526.2 -38132.865 83459.533 -38166.198 83092.866 -38166.198 M 83459.533 -39266.198 83426.2 -39366.198 83392.866 -39399.531 83326.2 -39432.864 83226.2 -39432.864 83159.533 -39399.531 83126.2 -39366.198 83092.866 -39299.531 83092.866 -39032.864 83792.866 -39032.864 83792.866 -39266.198 83759.533 -39332.864 83726.2 -39366.198 83659.533 -39399.531 83592.866 -39399.531 83526.2 -39366.198 83492.866 -39332.864 83459.533 -39266.198 83459.533 -39032.864 M 83092.866 -39832.864 83126.2 -39766.198 83159.533 -39732.864 83226.2 -39699.531 83426.2 -39699.531 83492.866 -39732.864 83526.2 -39766.198 83559.533 -39832.864 83559.533 -39932.864 83526.2 -39999.531 83492.866 -40032.864 83426.2 -40066.198 83226.2 -40066.198 83159.533 -40032.864 83126.2 -39999.531 83092.866 -39932.864 83092.866 -39832.864 M 83092.866 -40466.197 83126.2 -40399.531 83192.866 -40366.197 83792.866 -40366.197 M 83126.2 -40699.531 83092.866 -40766.198 83092.866 -40899.531 83126.2 -40966.198 83192.866 -40999.531 83226.2 -40999.531 83292.866 -40966.198 83326.2 -40899.531 83326.2 -40799.531 83359.533 -40732.864 83426.2 -40699.531 83459.533 -40699.531 83526.2 -40732.864 83559.533 -40799.531 83559.533 -40899.531 83526.2 -40966.198 M 83126.2 -41566.198 83092.866 -41499.531 83092.866 -41366.198 83126.2 -41299.531 83192.866 -41266.198 83459.533 -41266.198 83526.2 -41299.531 83559.533 -41366.198 83559.533 -41499.531 83526.2 -41566.198 83459.533 -41599.531 83392.866 -41599.531 83326.2 -41266.198 M 83826.2 -41499.531 83726.2 -41399.531 M 83126.2 -42166.198 83092.866 -42099.531 83092.866 -41966.198 83126.2 -41899.531 83192.866 -41866.198 83459.533 -41866.198 83526.2 -41899.531 83559.533 -41966.198 83559.533 -42099.531 83526.2 -42166.198 83459.533 -42199.531 83392.866 -42199.531 83326.2 -41866.198 M 83726.2 -42999.531 83759.533 -43032.864 83792.866 -43099.531 83792.866 -43266.198 83759.533 -43332.864 83726.2 -43366.198 83659.533 -43399.531 83592.866 -43399.531 83492.866 -43366.198 83092.866 -42966.198 83092.866 -43399.531 M 83792.866 -43832.865 83792.866 -43899.531 83759.533 -43966.198 83726.2 -43999.531 83659.533 -44032.865 83526.2 -44066.198 83359.533 -44066.198 83226.2 -44032.865 83159.533 -43999.531 83126.2 -43966.198 83092.866 -43899.531 83092.866 -43832.865 83126.2 -43766.198 83159.533 -43732.865 83226.2 -43699.531 83359.533 -43666.198 83526.2 -43666.198 83659.533 -43699.531 83726.2 -43732.865 83759.533 -43766.198 83792.866 -43832.865 M 83726.2 -44332.865 83759.533 -44366.198 83792.866 -44432.865 83792.866 -44599.532 83759.533 -44666.198 83726.2 -44699.532 83659.533 -44732.865 83592.866 -44732.865 83492.866 -44699.532 83092.866 -44299.532 83092.866 -44732.865 M 83792.866 -44966.199 83792.866 -45399.532 83526.2 -45166.199 83526.2 -45266.199 83492.866 -45332.865 83459.533 -45366.199 83392.866 -45399.532 83226.2 -45399.532 83159.533 -45366.199 83126.2 -45332.865 83092.866 -45266.199 83092.866 -45066.199 83126.2 -44999.532 83159.533 -44966.199 M 78740 -69469 78740 -69215 M 80010 -69469 80010 -69215 M 78740 -69469 80010 -69469\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 81607.428 -58547.142 81893.142 -58347.142 M 81607.428 -58204.285 82207.428 -58204.285 82207.428 -58432.856 82178.857 -58489.999 82150.285 -58518.57 82093.142 -58547.142 82007.428 -58547.142 81950.285 -58518.57 81921.714 -58489.999 81893.142 -58432.856 81893.142 -58204.285 M 81636 -58775.713 81607.428 -58861.428 81607.428 -59004.285 81636 -59061.428 81664.571 -59089.999 81721.714 -59118.57 81778.857 -59118.57 81836 -59089.999 81864.571 -59061.428 81893.142 -59004.285 81921.714 -58889.999 81950.285 -58832.856 81978.857 -58804.285 82036 -58775.713 82093.142 -58775.713 82150.285 -58804.285 82178.857 -58832.856 82207.428 -58889.999 82207.428 -59032.856 82178.857 -59118.57 M 82207.428 -59289.999 82207.428 -59632.857 M 81607.428 -59461.428 82207.428 -59461.428 M 80337.428 -58604.286 80937.428 -58604.286 80337.428 -58947.143 80937.428 -58947.143 M 80394.571 -59575.714 80366 -59547.142 80337.428 -59461.428 80337.428 -59404.285 80366 -59318.571 80423.142 -59261.428 80480.285 -59232.857 80594.571 -59204.285 80680.285 -59204.285 80794.571 -59232.857 80851.714 -59261.428 80908.857 -59318.571 80937.428 -59404.285 80937.428 -59461.428 80908.857 -59547.142 80880.285 -59575.714\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 70707.742 -65522.999 69979.171 -65522.999 69893.457 -65565.856 69850.6 -65608.714 69807.742 -65694.428 69807.742 -65865.856 69850.6 -65951.571 69893.457 -65994.428 69979.171 -66037.285 70707.742 -66037.285 M 70064.885 -66422.999 70064.885 -66851.571 M 69807.742 -66337.285 70707.742 -66637.285 69807.742 -66937.285 M 69807.742 -67751.571 70236.314 -67451.571 M 69807.742 -67237.285 70707.742 -67237.285 70707.742 -67580.142 70664.885 -67665.857 70622.028 -67708.714 70536.314 -67751.571 70407.742 -67751.571 70322.028 -67708.714 70279.171 -67665.857 70236.314 -67580.142 70236.314 -67237.285 M 70707.742 -68008.714 70707.742 -68523 M 69807.742 -68265.857 70707.742 -68265.857 M 70150.6 -68822.999 70150.6 -69508.714 69979.171 -69337.285 M 70150.6 -69508.714 70322.028 -69337.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 78368.857 -67767.142 78397.428 -67710 78397.428 -67624.285 78368.857 -67538.571 78311.714 -67481.428 78254.571 -67452.857 78140.285 -67424.285 78054.571 -67424.285 77940.285 -67452.857 77883.142 -67481.428 77826 -67538.571 77797.428 -67624.285 77797.428 -67681.428 77826 -67767.142 77854.571 -67795.714 78054.571 -67795.714 78054.571 -67681.428 M 77797.428 -68052.857 78397.428 -68052.857 77797.428 -68395.714 78397.428 -68395.714 M 77797.428 -68681.428 78397.428 -68681.428 78397.428 -68824.285 78368.857 -68909.999 78311.714 -68967.142 78254.571 -68995.713 78140.285 -69024.285 78054.571 -69024.285 77940.285 -68995.713 77883.142 -68967.142 77826 -68909.999 77797.428 -68824.285 77797.428 -68681.428 M 77127.428 -67367.142 76527.428 -67567.142 77127.428 -67767.142 M 76584.571 -68310 76556 -68281.428 76527.428 -68195.714 76527.428 -68138.571 76556 -68052.857 76613.142 -67995.714 76670.285 -67967.143 76784.571 -67938.571 76870.285 -67938.571 76984.571 -67967.143 77041.714 -67995.714 77098.857 -68052.857 77127.428 -68138.571 77127.428 -68195.714 77098.857 -68281.428 77070.285 -68310 M 76584.571 -68910 76556 -68881.428 76527.428 -68795.714 76527.428 -68738.571 76556 -68652.857 76613.142 -68595.714 76670.285 -68567.143 76784.571 -68538.571 76870.285 -68538.571 76984.571 -68567.143 77041.714 -68595.714 77098.857 -68652.857 77127.428 -68738.571 77127.428 -68795.714 77098.857 -68881.428 77070.285 -68910\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 85107.4 -34550.333 85074.066 -34650.333 85074.066 -34817 85107.4 -34883.666 85140.733 -34917 85207.4 -34950.333 85274.066 -34950.333 85340.733 -34917 85374.066 -34883.666 85407.4 -34817 85440.733 -34683.666 85474.066 -34617 85507.4 -34583.666 85574.066 -34550.333 85640.733 -34550.333 85707.4 -34583.666 85740.733 -34617 85774.066 -34683.666 85774.066 -34850.333 85740.733 -34950.333 M 85774.066 -35183.667 85074.066 -35350.333 85574.066 -35483.667 85074.066 -35617 85774.066 -35783.667 M 85074.066 -36050.333 85774.066 -36050.333 85774.066 -36217 85740.733 -36317 85674.066 -36383.667 85607.4 -36417 85474.066 -36450.333 85374.066 -36450.333 85240.733 -36417 85174.066 -36383.667 85107.4 -36317 85074.066 -36217 85074.066 -36050.333 M 85807.4 -37250.333 84907.4 -36650.333 M 85774.066 -37483.666 85207.4 -37483.666 85140.733 -37517 85107.4 -37550.333 85074.066 -37617 85074.066 -37750.333 85107.4 -37817 85140.733 -37850.333 85207.4 -37883.666 85774.066 -37883.666 M 85274.066 -38183.666 85274.066 -38516.999 M 85074.066 -38116.999 85774.066 -38350.333 85074.066 -38583.666 M 85074.066 -39216.999 85407.4 -38983.666 M 85074.066 -38816.999 85774.066 -38816.999 85774.066 -39083.666 85740.733 -39150.333 85707.4 -39183.666 85640.733 -39216.999 85540.733 -39216.999 85474.066 -39183.666 85440.733 -39150.333 85407.4 -39083.666 85407.4 -38816.999 M 85774.066 -39416.999 85774.066 -39816.999 M 85074.066 -39616.999 85774.066 -39616.999 M 85074.066 -40883.665 85440.733 -40883.665 85507.4 -40850.332 85540.733 -40783.665 85540.733 -40650.332 85507.4 -40583.665 M 85107.4 -40883.665 85074.066 -40816.999 85074.066 -40650.332 85107.4 -40583.665 85174.066 -40550.332 85240.733 -40550.332 85307.4 -40583.665 85340.733 -40650.332 85340.733 -40816.999 85374.066 -40883.665 M 85074.066 -41516.998 85774.066 -41516.998 M 85107.4 -41516.998 85074.066 -41450.332 85074.066 -41316.998 85107.4 -41250.332 85140.733 -41216.998 85207.4 -41183.665 85407.4 -41183.665 85474.066 -41216.998 85507.4 -41250.332 85540.733 -41316.998 85540.733 -41450.332 85507.4 -41516.998 M 85074.066 -42150.331 85440.733 -42150.331 85507.4 -42116.998 85540.733 -42050.331 85540.733 -41916.998 85507.4 -41850.331 M 85107.4 -42150.331 85074.066 -42083.665 85074.066 -41916.998 85107.4 -41850.331 85174.066 -41816.998 85240.733 -41816.998 85307.4 -41850.331 85340.733 -41916.998 85340.733 -42083.665 85374.066 -42150.331 M 85540.733 -42483.664 84840.733 -42483.664 M 85507.4 -42483.664 85540.733 -42550.331 85540.733 -42683.664 85507.4 -42750.331 85474.066 -42783.664 85407.4 -42816.998 85207.4 -42816.998 85140.733 -42783.664 85107.4 -42750.331 85074.066 -42683.664 85074.066 -42550.331 85107.4 -42483.664 M 85540.733 -43016.997 85540.733 -43283.664 M 85774.066 -43116.997 85174.066 -43116.997 85107.4 -43150.331 85074.066 -43216.997 85074.066 -43283.664 M 85107.4 -43783.664 85074.066 -43716.997 85074.066 -43583.664 85107.4 -43516.997 85174.066 -43483.664 85440.733 -43483.664 85507.4 -43516.997 85540.733 -43583.664 85540.733 -43716.997 85507.4 -43783.664 85440.733 -43816.997 85374.066 -43816.997 85307.4 -43483.664 M 85074.066 -44116.997 85540.733 -44116.997 M 85407.4 -44116.997 85474.066 -44150.331 85507.4 -44183.664 85540.733 -44250.331 85540.733 -44316.997\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 77854.571 -58490 77826 -58461.428 77797.428 -58375.714 77797.428 -58318.571 77826 -58232.857 77883.142 -58175.714 77940.285 -58147.143 78054.571 -58118.571 78140.285 -58118.571 78254.571 -58147.143 78311.714 -58175.714 78368.857 -58232.857 78397.428 -58318.571 78397.428 -58375.714 78368.857 -58461.428 78340.285 -58490 M 77797.428 -59032.857 77797.428 -58747.143 78397.428 -58747.143 M 77797.428 -59232.857 78397.428 -59232.857 M 77797.428 -59575.714 78140.285 -59318.571 M 78397.428 -59575.714 78054.571 -59232.857 M 79638.857 -67767.142 79667.428 -67710 79667.428 -67624.285 79638.857 -67538.571 79581.714 -67481.428 79524.571 -67452.857 79410.285 -67424.285 79324.571 -67424.285 79210.285 -67452.857 79153.142 -67481.428 79096 -67538.571 79067.428 -67624.285 79067.428 -67681.428 79096 -67767.142 79124.571 -67795.714 79324.571 -67795.714 79324.571 -67681.428 M 79067.428 -68052.857 79667.428 -68052.857 79067.428 -68395.714 79667.428 -68395.714 M 79067.428 -68681.428 79667.428 -68681.428 79667.428 -68824.285 79638.857 -68909.999 79581.714 -68967.142 79524.571 -68995.713 79410.285 -69024.285 79324.571 -69024.285 79210.285 -68995.713 79153.142 -68967.142 79096 -68909.999 79067.428 -68824.285 79067.428 -68681.428 M 63157.428 -58718.57 63157.428 -59061.428 M 62557.428 -58889.999 63157.428 -58889.999 M 63157.428 -59204.285 62557.428 -59604.285 M 63157.428 -59604.285 62557.428 -59204.285\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 66394 -43156.333 66860.666 -43856.333 M 66860.666 -43156.333 66394 -43856.333 M 67127.333 -43856.333 67127.333 -43156.333 M 67427.333 -43656.333 67760.666 -43656.333 M 67360.666 -43856.333 67594 -43156.333 67827.333 -43856.333 M 68194 -43156.333 68327.333 -43156.333 68394 -43189.666 68460.666 -43256.333 68494 -43389.666 68494 -43623 68460.666 -43756.333 68394 -43823 68327.333 -43856.333 68194 -43856.333 68127.333 -43823 68060.666 -43756.333 68027.333 -43623 68027.333 -43389.666 68060.666 -43256.333 68127.333 -43189.666 68194 -43156.333 M 69727.332 -43856.333 69493.999 -43523 M 69327.332 -43856.333 69327.332 -43156.333 69593.999 -43156.333 69660.666 -43189.666 69693.999 -43223 69727.332 -43289.666 69727.332 -43389.666 69693.999 -43456.333 69660.666 -43489.666 69593.999 -43523 69327.332 -43523 M 70027.332 -43856.333 70027.332 -43156.333 70293.999 -43156.333 70360.666 -43189.666 70393.999 -43223 70427.332 -43289.666 70427.332 -43389.666 70393.999 -43456.333 70360.666 -43489.666 70293.999 -43523 70027.332 -43523 M 70693.999 -43223 70727.332 -43189.666 70793.999 -43156.333 70960.666 -43156.333 71027.332 -43189.666 71060.666 -43223 71093.999 -43289.666 71093.999 -43356.333 71060.666 -43456.333 70660.666 -43856.333 71093.999 -43856.333 M 71527.333 -43156.333 71593.999 -43156.333 71660.666 -43189.666 71693.999 -43223 71727.333 -43289.666 71760.666 -43423 71760.666 -43589.666 71727.333 -43723 71693.999 -43789.666 71660.666 -43823 71593.999 -43856.333 71527.333 -43856.333 71460.666 -43823 71427.333 -43789.666 71393.999 -43723 71360.666 -43589.666 71360.666 -43423 71393.999 -43289.666 71427.333 -43223 71460.666 -43189.666 71527.333 -43156.333 M 72360.666 -43389.666 72360.666 -43856.333 M 72194 -43123 72027.333 -43623 72460.666 -43623 M 72860.667 -43156.333 72927.333 -43156.333 72994 -43189.666 73027.333 -43223 73060.667 -43289.666 73094 -43423 73094 -43589.666 73060.667 -43723 73027.333 -43789.666 72994 -43823 72927.333 -43856.333 72860.667 -43856.333 72794 -43823 72760.667 -43789.666 72727.333 -43723 72694 -43589.666 72694 -43423 72727.333 -43289.666 72760.667 -43223 72794 -43189.666 72860.667 -43156.333\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 55508.857 -58318.571 55537.428 -58261.429 55537.428 -58175.714 55508.857 -58090 55451.714 -58032.857 55394.571 -58004.286 55280.285 -57975.714 55194.571 -57975.714 55080.285 -58004.286 55023.142 -58032.857 54966 -58090 54937.428 -58175.714 54937.428 -58232.857 54966 -58318.571 54994.571 -58347.143 55194.571 -58347.143 55194.571 -58232.857 M 54937.428 -58604.286 55537.428 -58604.286 54937.428 -58947.143 55537.428 -58947.143 M 54937.428 -59232.857 55537.428 -59232.857 55537.428 -59375.714 55508.857 -59461.428 55451.714 -59518.571 55394.571 -59547.142 55280.285 -59575.714 55194.571 -59575.714 55080.285 -59547.142 55023.142 -59518.571 54966 -59461.428 54937.428 -59375.714 54937.428 -59232.857\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 72924 -61721.428 72881.142 -61850 72881.142 -62064.285 72924 -62150 72966.857 -62192.857 73052.571 -62235.714 73138.285 -62235.714 73224 -62192.857 73266.857 -62150 73309.714 -62064.285 73352.571 -61892.857 73395.428 -61807.142 73438.285 -61764.285 73524 -61721.428 73609.714 -61721.428 73695.428 -61764.285 73738.285 -61807.142 73781.142 -61892.857 73781.142 -62107.142 73738.285 -62235.714 M 73781.142 -62535.714 72881.142 -62750 73524 -62921.428 72881.142 -63092.857 73781.142 -63307.143 M 72881.142 -63649.999 73781.142 -63649.999 73781.142 -63864.285 73738.285 -63992.856 73652.571 -64078.571 73566.857 -64121.428 73395.428 -64164.285 73266.857 -64164.285 73095.428 -64121.428 73009.714 -64078.571 72924 -63992.856 72881.142 -63864.285 72881.142 -63649.999 M 73224 -64549.999 73224 -65235.714 73052.571 -65064.285 M 73224 -65235.714 73395.428 -65064.285\\" fill=\\"none\\" stroke-width=\\"120\\"/><path d=\\"M 65097.428 -59004.285 65383.142 -58804.285 M 65097.428 -58661.428 65697.428 -58661.428 65697.428 -58889.999 65668.857 -58947.142 65640.285 -58975.713 65583.142 -59004.285 65497.428 -59004.285 65440.285 -58975.713 65411.714 -58947.142 65383.142 -58889.999 65383.142 -58661.428 M 65697.428 -59204.285 65097.428 -59604.285 M 65697.428 -59604.285 65097.428 -59204.285 M 79096 -57918.571 79067.428 -58004.286 79067.428 -58147.143 79096 -58204.286 79124.571 -58232.857 79181.714 -58261.428 79238.857 -58261.428 79296 -58232.857 79324.571 -58204.286 79353.142 -58147.143 79381.714 -58032.857 79410.285 -57975.714 79438.857 -57947.143 79496 -57918.571 79553.142 -57918.571 79610.285 -57947.143 79638.857 -57975.714 79667.428 -58032.857 79667.428 -58175.714 79638.857 -58261.428 M 79667.428 -58461.429 79067.428 -58604.286 79496 -58718.572 79067.428 -58832.857 79667.428 -58975.715 M 79667.428 -59318.571 79667.428 -59432.857 79638.857 -59490 79581.714 -59547.143 79467.428 -59575.714 79267.428 -59575.714 79153.142 -59547.143 79096 -59490 79067.428 -59432.857 79067.428 -59318.571 79096 -59261.429 79153.142 -59204.286 79267.428 -59175.714 79467.428 -59175.714 79581.714 -59204.286 79638.857 -59261.429 79667.428 -59318.571 M 82178.857 -67767.142 82207.428 -67710 82207.428 -67624.285 82178.857 -67538.571 82121.714 -67481.428 82064.571 -67452.857 81950.285 -67424.285 81864.571 -67424.285 81750.285 -67452.857 81693.142 -67481.428 81636 -67538.571 81607.428 -67624.285 81607.428 -67681.428 81636 -67767.142 81664.571 -67795.714 81864.571 -67795.714 81864.571 -67681.428 M 81607.428 -68052.857 82207.428 -68052.857 81607.428 -68395.714 82207.428 -68395.714 M 81607.428 -68681.428 82207.428 -68681.428 82207.428 -68824.285 82178.857 -68909.999 82121.714 -68967.142 82064.571 -68995.713 81950.285 -69024.285 81864.571 -69024.285 81750.285 -68995.713 81693.142 -68967.142 81636 -68909.999 81607.428 -68824.285 81607.428 -68681.428 M 76527.428 -58318.572 77127.428 -58318.572 77127.428 -58461.429 77098.857 -58547.143 77041.714 -58604.286 76984.571 -58632.857 76870.285 -58661.429 76784.571 -58661.429 76670.285 -58632.857 76613.142 -58604.286 76556 -58547.143 76527.428 -58461.429 76527.428 -58318.572 M 76527.428 -58918.572 77127.428 -58918.572 M 77127.428 -59318.571 77127.428 -59432.857 77098.857 -59490 77041.714 -59547.143 76927.428 -59575.714 76727.428 -59575.714 76613.142 -59547.143 76556 -59490 76527.428 -59432.857 76527.428 -59318.571 76556 -59261.429 76613.142 -59204.286 76727.428 -59175.714 76927.428 -59175.714 77041.714 -59204.286 77098.857 -59261.429 77127.428 -59318.571 M 67637.428 -58547.142 67923.142 -58347.142 M 67637.428 -58204.285 68237.428 -58204.285 68237.428 -58432.856 68208.857 -58489.999 68180.285 -58518.57 68123.142 -58547.142 68037.428 -58547.142 67980.285 -58518.57 67951.714 -58489.999 67923.142 -58432.856 67923.142 -58204.285 M 68237.428 -58718.57 68237.428 -59061.428 M 67637.428 -58889.999 68237.428 -58889.999 M 67666 -59232.856 67637.428 -59318.571 67637.428 -59461.428 67666 -59518.571 67694.571 -59547.142 67751.714 -59575.713 67808.857 -59575.713 67866 -59547.142 67894.571 -59518.571 67923.142 -59461.428 67951.714 -59347.142 67980.285 -59289.999 68008.857 -59261.428 68066 -59232.856 68123.142 -59232.856 68180.285 -59261.428 68208.857 -59289.999 68237.428 -59347.142 68237.428 -59489.999 68208.857 -59575.713 M 60617.428 -59032.856 60617.428 -58747.142 60331.714 -58718.57 60360.285 -58747.142 60388.857 -58804.285 60388.857 -58947.142 60360.285 -59004.285 60331.714 -59032.856 60274.571 -59061.427 60131.714 -59061.427 60074.571 -59032.856 60046 -59004.285 60017.428 -58947.142 60017.428 -58804.285 60046 -58747.142 60074.571 -58718.57 M 60617.428 -59232.856 60017.428 -59432.856 60617.428 -59632.856 M 57534.571 -58547.142 57506 -58518.57 57477.428 -58432.856 57477.428 -58375.713 57506 -58289.999 57563.142 -58232.856 57620.285 -58204.285 57734.571 -58175.713 57820.285 -58175.713 57934.571 -58204.285 57991.714 -58232.856 58048.857 -58289.999 58077.428 -58375.713 58077.428 -58432.856 58048.857 -58518.57 58020.285 -58547.142 M 58077.428 -58718.57 58077.428 -59061.428 M 57477.428 -58889.999 58077.428 -58889.999 M 57506 -59232.856 57477.428 -59318.571 57477.428 -59461.428 57506 -59518.571 57534.571 -59547.142 57591.714 -59575.713 57648.857 -59575.713 57706 -59547.142 57734.571 -59518.571 57763.142 -59461.428 57791.714 -59347.142 57820.285 -59289.999 57848.857 -59261.428 57906 -59232.856 57963.142 -59232.856 58020.285 -59261.428 58048.857 -59289.999 58077.428 -59347.142 58077.428 -59489.999 58048.857 -59575.713 M 80337.428 -67452.857 80937.428 -67452.857 M 80337.428 -67795.714 80680.285 -67538.571 M 80937.428 -67795.714 80594.571 -67452.857 M 80651.714 -68052.857 80651.714 -68252.857 M 80337.428 -68338.571 80337.428 -68052.857 80937.428 -68052.857 80937.428 -68338.571 M 80623.142 -68709.999 80337.428 -68709.999 M 80937.428 -68509.999 80623.142 -68709.999 80937.428 -68909.999 M 61326.666 -65663.833 61326.666 -66163.833 61293.333 -66263.833 61226.666 -66330.5 61126.666 -66363.833 61060 -66363.833 M 61626.666 -65730.5 61659.999 -65697.166 61726.666 -65663.833 61893.333 -65663.833 61959.999 -65697.166 61993.333 -65730.5 62026.666 -65797.166 62026.666 -65863.833 61993.333 -65963.833 61593.333 -66363.833 62026.666 -66363.833 M 84338.333 -48583.833 84105 -48250.5 M 83938.333 -48583.833 83938.333 -47883.833 84205 -47883.833 84271.667 -47917.166 84305 -47950.5 84338.333 -48017.166 84338.333 -48117.166 84305 -48183.833 84271.667 -48217.166 84205 -48250.5 83938.333 -48250.5 M 84571.667 -47883.833 85005 -47883.833 84771.667 -48150.5 84871.667 -48150.5 84938.333 -48183.833 84971.667 -48217.166 85005 -48283.833 85005 -48450.5 84971.667 -48517.166 84938.333 -48550.5 84871.667 -48583.833 84671.667 -48583.833 84605 -48550.5 84571.667 -48517.166 M 84371.666 -53663.833 83971.666 -53663.833 M 84171.666 -53663.833 84171.666 -52963.833 84104.999 -53063.833 84038.333 -53130.5 83971.666 -53163.833 M 84671.666 -53663.833 84671.666 -52963.833 M 84738.333 -53397.166 84938.333 -53663.833 M 84938.333 -53197.166 84671.666 -53463.833 M 82947.733 -55645.033 82947.733 -54945.033 83114.4 -54945.033 83214.4 -54978.366 83281.067 -55045.033 83314.4 -55111.7 83347.733 -55245.033 83347.733 -55345.033 83314.4 -55478.366 83281.067 -55545.033 83214.4 -55611.7 83114.4 -55645.033 82947.733 -55645.033 M 83614.4 -55011.7 83647.733 -54978.366 83714.4 -54945.033 83881.067 -54945.033 83947.733 -54978.366 83981.067 -55011.7 84014.4 -55078.366 84014.4 -55145.033 83981.067 -55245.033 83581.067 -55645.033 84014.4 -55645.033 M 56938.133 -55594.233 56938.133 -54894.233 57104.8 -54894.233 57204.8 -54927.566 57271.467 -54994.233 57304.8 -55060.9 57338.133 -55194.233 57338.133 -55294.233 57304.8 -55427.566 57271.467 -55494.233 57204.8 -55560.9 57104.8 -55594.233 56938.133 -55594.233 M 58004.8 -55594.233 57604.8 -55594.233 M 57804.8 -55594.233 57804.8 -54894.233 57738.133 -54994.233 57671.467 -55060.9 57604.8 -55094.233 M 73543.333 -55568.833 73310 -55235.5 M 73143.333 -55568.833 73143.333 -54868.833 73410 -54868.833 73476.667 -54902.166 73510 -54935.5 73543.333 -55002.166 73543.333 -55102.166 73510 -55168.833 73476.667 -55202.166 73410 -55235.5 73143.333 -55235.5 M 73810 -54935.5 73843.333 -54902.166 73910 -54868.833 74076.667 -54868.833 74143.333 -54902.166 74176.667 -54935.5 74210 -55002.166 74210 -55068.833 74176.667 -55168.833 73776.667 -55568.833 74210 -55568.833 M 73576.666 -56838.833 73176.666 -56838.833 M 73376.666 -56838.833 73376.666 -56138.833 73309.999 -56238.833 73243.333 -56305.5 73176.666 -56338.833 M 73876.666 -56838.833 73876.666 -56138.833 M 73943.333 -56572.166 74143.333 -56838.833 M 74143.333 -56372.166 73876.666 -56638.833 M 66721.5 -33484.476 66697.69 -33555.904 66697.69 -33674.952 66721.5 -33722.571 66745.309 -33746.38 66792.928 -33770.19 66840.547 -33770.19 66888.166 -33746.38 66911.976 -33722.571 66935.785 -33674.952 66959.595 -33579.714 66983.404 -33532.095 67007.214 -33508.285 67054.833 -33484.476 67102.452 -33484.476 67150.071 -33508.285 67173.88 -33532.095 67197.69 -33579.714 67197.69 -33698.761 67173.88 -33770.19 M 67197.69 -33936.856 66697.69 -34055.904 67054.833 -34151.142 66697.69 -34246.38 67197.69 -34365.428 M 66697.69 -34555.904 67197.69 -34555.904 67197.69 -34674.952 67173.88 -34746.38 67126.261 -34793.999 67078.642 -34817.809 66983.404 -34841.618 66911.976 -34841.618 66816.738 -34817.809 66769.119 -34793.999 66721.5 -34746.38 66697.69 -34674.952 66697.69 -34555.904 M 66697.69 -35055.904 67197.69 -35055.904 M 67197.69 -35389.237 67197.69 -35484.475 67173.88 -35532.094 67126.261 -35579.713 67031.023 -35603.523 66864.357 -35603.523 66769.119 -35579.713 66721.5 -35532.094 66697.69 -35484.475 66697.69 -35389.237 66721.5 -35341.618 66769.119 -35293.999 66864.357 -35270.19 67031.023 -35270.19 67126.261 -35293.999 67173.88 -35341.618 67197.69 -35389.237 M 72639.88 -51689.047 72663.69 -51641.428 72663.69 -51569.999 72639.88 -51498.571 72592.261 -51450.952 72544.642 -51427.142 72449.404 -51403.333 72377.976 -51403.333 72282.738 -51427.142 72235.119 -51450.952 72187.5 -51498.571 72163.69 -51569.999 72163.69 -51617.618 72187.5 -51689.047 72211.309 -51712.856 72377.976 -51712.856 72377.976 -51617.618 M 72163.69 -51927.142 72663.69 -51927.142 72163.69 -52212.856 72663.69 -52212.856 M 72163.69 -52450.952 72663.69 -52450.952 72663.69 -52570 72639.88 -52641.428 72592.261 -52689.047 72544.642 -52712.857 72449.404 -52736.666 72377.976 -52736.666 72282.738 -52712.857 72235.119 -52689.047 72187.5 -52641.428 72163.69 -52570 72163.69 -52450.952 M 67583.69 -51522.381 67083.69 -51689.047 67583.69 -51855.714 M 67083.69 -52022.38 67583.69 -52022.38 M 67083.69 -52260.475 67583.69 -52260.475 67083.69 -52546.189 67583.69 -52546.189 M 66697.69 -36484.809 66935.785 -36318.143 M 66697.69 -36199.095 67197.69 -36199.095 67197.69 -36389.571 67173.88 -36437.19 67150.071 -36461 67102.452 -36484.809 67031.023 -36484.809 66983.404 -36461 66959.595 -36437.19 66935.785 -36389.571 66935.785 -36199.095 M 66959.595 -36699.095 66959.595 -36865.762 M 66697.69 -36937.19 66697.69 -36699.095 67197.69 -36699.095 67197.69 -36937.19 M 66721.5 -37127.667 66697.69 -37199.095 66697.69 -37318.143 66721.5 -37365.762 66745.309 -37389.571 66792.928 -37413.381 66840.547 -37413.381 66888.166 -37389.571 66911.976 -37365.762 66935.785 -37318.143 66959.595 -37222.905 66983.404 -37175.286 67007.214 -37151.476 67054.833 -37127.667 67102.452 -37127.667 67150.071 -37151.476 67173.88 -37175.286 67197.69 -37222.905 67197.69 -37341.952 67173.88 -37413.381 M 66959.595 -37627.666 66959.595 -37794.333 M 66697.69 -37865.761 66697.69 -37627.666 67197.69 -37627.666 67197.69 -37865.761 M 67197.69 -38008.619 67197.69 -38294.333 M 66697.69 -38151.476 67197.69 -38151.476 M 72436.5 -33540.048 72412.69 -33611.476 72412.69 -33730.524 72436.5 -33778.143 72460.309 -33801.952 72507.928 -33825.762 72555.547 -33825.762 72603.166 -33801.952 72626.976 -33778.143 72650.785 -33730.524 72674.595 -33635.286 72698.404 -33587.667 72722.214 -33563.857 72769.833 -33540.048 72817.452 -33540.048 72865.071 -33563.857 72888.88 -33587.667 72912.69 -33635.286 72912.69 -33754.333 72888.88 -33825.762 M 72912.69 -33992.428 72412.69 -34111.476 72769.833 -34206.714 72412.69 -34301.952 72912.69 -34421 M 72460.309 -34897.19 72436.5 -34873.381 72412.69 -34801.952 72412.69 -34754.333 72436.5 -34682.905 72484.119 -34635.286 72531.738 -34611.476 72626.976 -34587.667 72698.404 -34587.667 72793.642 -34611.476 72841.261 -34635.286 72888.88 -34682.905 72912.69 -34754.333 72912.69 -34801.952 72888.88 -34873.381 72865.071 -34897.19 M 72412.69 -35349.571 72412.69 -35111.476 72912.69 -35111.476 M 72412.69 -35516.238 72912.69 -35516.238 M 72412.69 -35801.952 72698.404 -35587.667 M 72912.69 -35801.952 72626.976 -35516.238 M 72888.88 -36957.047 72912.69 -36909.428 72912.69 -36837.999 72888.88 -36766.571 72841.261 -36718.952 72793.642 -36695.142 72698.404 -36671.333 72626.976 -36671.333 72531.738 -36695.142 72484.119 -36718.952 72436.5 -36766.571 72412.69 -36837.999 72412.69 -36885.618 72436.5 -36957.047 72460.309 -36980.856 72626.976 -36980.856 72626.976 -36885.618 M 72412.69 -37195.142 72912.69 -37195.142 72412.69 -37480.856 72912.69 -37480.856 M 72412.69 -37718.952 72912.69 -37718.952 72912.69 -37838 72888.88 -37909.428 72841.261 -37957.047 72793.642 -37980.857 72698.404 -38004.666 72626.976 -38004.666 72531.738 -37980.857 72484.119 -37957.047 72436.5 -37909.428 72412.69 -37838 72412.69 -37718.952 M 55763.333 -43503.833 55530 -43170.5 M 55363.333 -43503.833 55363.333 -42803.833 55630 -42803.833 55696.667 -42837.166 55730 -42870.5 55763.333 -42937.166 55763.333 -43037.166 55730 -43103.833 55696.667 -43137.166 55630 -43170.5 55363.333 -43170.5 M 56430 -43503.833 56030 -43503.833 M 56230 -43503.833 56230 -42803.833 56163.333 -42903.833 56096.667 -42970.5 56030 -43003.833 M 55695.066 -48710.833 55295.066 -48710.833 M 55495.066 -48710.833 55495.066 -48010.833 55428.399 -48110.833 55361.733 -48177.5 55295.066 -48210.833 M 55995.066 -48710.833 55995.066 -48010.833 M 56061.733 -48444.166 56261.733 -48710.833 M 56261.733 -48244.166 55995.066 -48510.833 M 79141.666 -63123.833 79141.666 -63623.833 79108.333 -63723.833 79041.666 -63790.5 78941.666 -63823.833 78875 -63823.833 M 79841.666 -63823.833 79441.666 -63823.833 M 79641.666 -63823.833 79641.666 -63123.833 79574.999 -63223.833 79508.333 -63290.5 79441.666 -63323.833\\" fill=\\"none\\" stroke-width=\\"100\\"/><path d=\\"M 69240 -60280 69240 -61550 M 68224 -63328 67716 -63328 67716 -64090 M 65684 -63328 65176 -63328 65176 -64090 M 63144 -63328 62636 -63328 62636 -64090 M 60604 -63328 60096 -63328 60096 -64090 M 58064 -63328 57556 -63328 57556 -64090 M 55524 -63328 55016 -63328 55016 -64090 M 68224 -64090 68224 -63328 M 65684 -64090 65684 -63328 M 63144 -64090 63144 -63328 M 60604 -64090 60604 -63328 M 58064 -64090 58064 -63328 M 55524 -64090 55524 -63328 M 69240 -64090 54000 -64090 54000 -72980 69240 -72980 69240 -64090 M 83620 -49800 83620 -51800 M 81480 -51800 81480 -49800 M 82475 -56830 82475 -54930 77775 -54930 M 82475 -56830 77775 -56830 M 64695 -56830 64695 -54930 59995 -54930 M 64695 -56830 59995 -56830 M 70215 -56950 68215 -56950 M 68215 -54810 70215 -54810 M 60962.5 -52461 60962.5 -33919 A 1269.999 1269.999 0 0 0 62232.5 -32649 L 77472.5 -32649 A 1270 1270 0 0 0 78742.5 -33919 L 78742.5 -52461 A 1270 1270 0 0 0 77472.5 -53731 L 62232.5 -53731 A 1269.999 1269.999 0 0 0 60962.5 -52461 M 65352.5 -32649 74352.5 -32649 74352.5 -31125 65352.5 -31125 65352.5 -32649 M 56715 -46720 56715 -44720 M 58855 -44720 58855 -46720 M 82545 -60410 82545 -61735 84455 -61735 84455 -65265 82545 -65265 M 76205 -61735 74295 -61735 74295 -65265 76205 -65265\\" fill=\\"none\\" stroke-width=\\"120\\"/></g></svg>"]]');
updateSVG();
......@@ -16,6 +16,11 @@ h3 {
margin-bottom: 4px;
}
h1 {
margin-top: 4px;
margin-bottom: 8px;
}
p.lock {
cursor: default;
margin: 0;
......@@ -92,7 +97,6 @@ h2 {
.settings {
width: 35vh;
height: 65vh;
margin: 4px;
display: flex;
border-radius: 6px;
......@@ -114,7 +118,8 @@ div.preview {
height: 65vh;
margin: 4px;
border-radius: 6px;
background-color: rgb(255, 255, 255);
background-size: 100% 100%;
background-image: url("/img/background.svg");
border: 1px solid rgb(0, 0, 0);
display: flex;
align-items: center;
......@@ -134,3 +139,12 @@ div#dropZone {
align-items: center;
justify-content: center;
}
footer {
position:fixed;
left: 0px;
bottom: 0px;
height: 30px;
width: 100%;
font-size: 12px;
}
......@@ -19,5 +19,5 @@
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"]
"include": ["src", "img"]
}