diff options
author | W. Kosior <koszko@koszko.org> | 2025-09-19 12:47:44 +0200 |
---|---|---|
committer | W. Kosior <koszko@koszko.org> | 2025-09-19 13:09:45 +0200 |
commit | 7000b1f2bb2fca5b7707c9b1a9f58f43100212d3 (patch) | |
tree | cc5531b93b8e76c39e3c58d52574f68e86c3f05e | |
download | AGH-msc-thesis-magister.tar.gz AGH-msc-thesis-magister.zip |
142 files changed, 32054 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..90fe83d --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +agh_idub_pl_cmyk.pdf + +dependee_counts.svg +common_2019_2025_percent.svg +common_nondev_dev_percent.svg +dev_dependee_counts.svg +status-counts.svg +tree-size-stats.svg +tree-size-stats-no-bc.svg +unflattened-multiver-counts.svg +unflattened-multiver-counts-no-bc.svg + +definitions-computed-from-results.tex +tree-size-stats.csv +tree-size-stats-no-bc.csv +tree-sizes.csv +status-counts.csv +unflattened-multiver-counts.csv +unflattened-multiver-counts-no-bc.csv + +debian-rules-excerpt.txt + +svg-inkscape +*.nav +*.pdf +*.log +*.fls +*.fdb_latexmk +*.aux +*.toc +*.run.xml +*.pdf_original +*.out +*.lot +*.lol +*.lof +*.blg +*.bcf +*.bbl-SAVE-ERROR +*.bbl diff --git a/.gitignore.license b/.gitignore.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/.gitignore.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/Apache_Maven_logo.svg b/Apache_Maven_logo.svg new file mode 100644 index 0000000..1e32ef2 --- /dev/null +++ b/Apache_Maven_logo.svg @@ -0,0 +1,998 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + width="340" + height="86" + id="svg3055" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" + sodipodi:docname="maven.svg"> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1600" + inkscape:window-height="877" + id="namedview188" + showgrid="false" + inkscape:zoom="0.91176471" + inkscape:cx="170" + inkscape:cy="43" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg3055" /> + <metadata + id="metadata3061"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs3059"> + <linearGradient + x1="0" + y1="0" + x2="1" + y2="0" + id="linearGradient12648" + xlink:href="#linearGradient11392" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-44.21456,-9.8500092)" /> + <linearGradient + x1="-7708.7969" + y1="-803.36011" + x2="-7633.1528" + y2="-714.90741" + id="linearGradient5344" + xlink:href="#SVGID_1_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8268.6387" + y1="-813.12323" + x2="-7728.9585" + y2="-813.12323" + id="linearGradient5346" + xlink:href="#SVGID_2_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8203.4922" + y1="-758.99402" + x2="-7881.895" + y2="-758.99402" + id="linearGradient5348" + xlink:href="#SVGID_3_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-818.15222" + x2="-7698.647" + y2="-818.15222" + id="linearGradient5350" + xlink:href="#SVGID_4_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8198.9678" + y1="-810.85059" + x2="-7915.3501" + y2="-810.85059" + id="linearGradient5352" + xlink:href="#SVGID_5_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-762.29712" + x2="-7698.647" + y2="-762.29712" + id="linearGradient5354" + xlink:href="#SVGID_6_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8271.8057" + y1="-765.07068" + x2="-7732.125" + y2="-765.07068" + id="linearGradient5356" + xlink:href="#SVGID_7_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-745.68481" + x2="-7698.647" + y2="-745.68481" + id="linearGradient5358" + xlink:href="#SVGID_8_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-747.58557" + x2="-7698.647" + y2="-747.58557" + id="linearGradient5360" + xlink:href="#SVGID_9_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-7935.1431" + y1="-747.9668" + x2="-7815.856" + y2="-747.9668" + id="linearGradient5362" + xlink:href="#SVGID_10_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-7708.7969" + y1="-803.36011" + x2="-7633.1528" + y2="-714.90741" + id="linearGradient7396" + xlink:href="#SVGID_1_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8268.6387" + y1="-813.12323" + x2="-7728.9585" + y2="-813.12323" + id="linearGradient7398" + xlink:href="#SVGID_2_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8203.4922" + y1="-758.99402" + x2="-7881.895" + y2="-758.99402" + id="linearGradient7400" + xlink:href="#SVGID_3_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-818.15222" + x2="-7698.647" + y2="-818.15222" + id="linearGradient7402" + xlink:href="#SVGID_4_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8198.9678" + y1="-810.85059" + x2="-7915.3501" + y2="-810.85059" + id="linearGradient7404" + xlink:href="#SVGID_5_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-762.29712" + x2="-7698.647" + y2="-762.29712" + id="linearGradient7406" + xlink:href="#SVGID_6_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8271.8057" + y1="-765.07068" + x2="-7732.125" + y2="-765.07068" + id="linearGradient7408" + xlink:href="#SVGID_7_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-745.68481" + x2="-7698.647" + y2="-745.68481" + id="linearGradient7410" + xlink:href="#SVGID_8_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-8238.3281" + y1="-747.58557" + x2="-7698.647" + y2="-747.58557" + id="linearGradient7412" + xlink:href="#SVGID_9_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + <linearGradient + x1="-7935.1431" + y1="-747.9668" + x2="-7815.856" + y2="-747.9668" + id="linearGradient7414" + xlink:href="#SVGID_10_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)" /> + </defs> + <text + x="199.61313" + y="196.18768" + id="text11870" + xml:space="preserve" + style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:14px;line-height:0%;font-family:'Alte Haas Grotesk';-inkscape-font-specification:'Sans Italic';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient12648);fill-opacity:1;stroke:none"><tspan + x="199.61313" + y="196.18768" + id="tspan11872" + style="fill:url(#linearGradient12648);fill-opacity:1" /></text> + <g + id="g8927"> + <g + transform="matrix(0.09561334,-0.07017507,0.07017507,0.09561334,132.73733,36.368381)" + id="g7248"> + <linearGradient + x1="-7708.7969" + y1="-803.36011" + x2="-7633.1528" + y2="-714.90741" + id="linearGradient7250" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7252" + style="stop-color:#f69923;stop-opacity:1" + offset="0" /> + <stop + id="stop7254" + style="stop-color:#f79a23;stop-opacity:1" + offset="0.3123" /> + <stop + id="stop7256" + style="stop-color:#e97826;stop-opacity:1" + offset="0.83829999" /> + </linearGradient> + <path + d="m 267.1,19.6 c -8.4,5 -22.4,19 -39,39.3 l 15.3,28.9 c 10.7,-15.4 21.7,-29.2 32.7,-41 0.8,-0.9 1.3,-1.4 1.3,-1.4 -0.4,0.5 -0.9,0.9 -1.3,1.4 -3.6,3.9 -14.4,16.5 -30.7,41.6 15.7,-0.8 39.8,-4 59.5,-7.4 5.9,-32.8 -5.7,-47.8 -5.7,-47.8 0,0 -14.8,-23.9 -32.1,-13.6 z" + id="path7258" + style="fill:url(#linearGradient7396)" /> + <path + d="m 241.1,184.4 c 0.1,0 0.2,0 0.3,-0.1 l -2.2,0.2 c -0.1,0.1 -0.3,0.1 -0.4,0.2 0.8,-0.1 1.6,-0.2 2.3,-0.3 z" + id="path7260" + style="fill:none" /> + <path + d="m 225.5,236.1 c -1.2,0.3 -2.5,0.5 -3.8,0.7 1.3,-0.2 2.6,-0.4 3.8,-0.7 z" + id="path7262" + style="fill:none" /> + <path + d="m 119.3,352.2 c 0.2,-0.4 0.3,-0.9 0.5,-1.3 3.4,-8.9 6.7,-17.5 10,-26 3.7,-9.4 7.4,-18.6 11,-27.5 3.8,-9.3 7.6,-18.4 11.3,-27.1 3.9,-9.2 7.7,-18 11.5,-26.5 3.1,-6.9 6.1,-13.6 9.1,-20.1 1,-2.2 2,-4.3 3,-6.4 2,-4.2 3.9,-8.3 5.8,-12.3 1.8,-3.7 3.5,-7.3 5.2,-10.9 0.6,-1.2 1.2,-2.4 1.7,-3.5 0.1,-0.2 0.2,-0.4 0.3,-0.6 l -1.9,0.2 -1.5,-2.9 c -0.1,0.3 -0.3,0.6 -0.4,0.9 -2.7,5.3 -5.4,10.7 -8,16.2 -1.5,3.1 -3,6.3 -4.6,9.5 -4.2,8.8 -8.3,17.6 -12.3,26.6 -4.1,9 -8.1,18.1 -12,27.1 -3.9,8.9 -7.6,17.8 -11.3,26.7 -3.7,8.9 -7.3,17.7 -10.8,26.5 -3.7,9.2 -7.3,18.3 -10.7,27.3 -0.8,2 -1.6,4.1 -2.3,6.1 -2.8,7.3 -5.5,14.4 -8.1,21.5 l 2.4,4.7 2.1,-0.2 c 0.1,-0.2 0.2,-0.4 0.2,-0.6 3.1,-9.5 6.5,-18.6 9.8,-27.4 z" + id="path7264" + style="fill:none" /> + <path + d="m 220.7,236.9 0,0 c 0,0 0,0 0,0 0,0 0,0 0,0 z" + id="path7266" + style="fill:none" /> + <path + d="m 215.6,262.2 c -2,0.4 -4,0.7 -6,1 0,0 0,0 0,0 1,-0.1 2.1,-0.3 3.1,-0.5 1,-0.1 2,-0.3 2.9,-0.5 z" + id="path7268" + style="fill:#be202e" /> + <path + d="m 215.6,262.2 c -2,0.4 -4,0.7 -6,1 0,0 0,0 0,0 1,-0.1 2.1,-0.3 3.1,-0.5 1,-0.1 2,-0.3 2.9,-0.5 z" + id="path7270" + style="opacity:0.35;fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 -0.1,0 -0.1,0 0,0 0.3,0 0.6,-0.1 0.9,-0.1 1.3,-0.2 2.6,-0.4 3.8,-0.7 -1.5,0.3 -3.1,0.5 -4.7,0.8 l 0,0 0,0 z" + id="path7272" + style="fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 -0.1,0 -0.1,0 0,0 0.3,0 0.6,-0.1 0.9,-0.1 1.3,-0.2 2.6,-0.4 3.8,-0.7 -1.5,0.3 -3.1,0.5 -4.7,0.8 l 0,0 0,0 z" + id="path7274" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8268.6387" + y1="-813.12323" + x2="-7728.9585" + y2="-813.12323" + id="linearGradient7276" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7278" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7280" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7282" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7284" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 198.2,162.4 c 4.7,-8.7 9.4,-17.2 14.1,-25.5 4.9,-8.6 9.9,-16.9 15,-25 0.3,-0.5 0.6,-1 0.9,-1.4 5,-7.9 10,-15.5 15.1,-22.8 L 228,58.9 c -1.1,1.4 -2.3,2.8 -3.5,4.3 -4.4,5.5 -9,11.4 -13.7,17.7 -5.3,7.1 -10.7,14.6 -16.3,22.5 -5.1,7.3 -10.3,15 -15.5,22.9 -4.4,6.8 -8.8,13.7 -13.2,20.8 -0.2,0.3 -0.3,0.5 -0.5,0.8 l 19.9,39.3 c 4.4,-8.3 8.7,-16.6 13,-24.8 z" + id="path7286" + style="fill:url(#linearGradient7398)" /> + <linearGradient + x1="-8203.4922" + y1="-758.99402" + x2="-7881.895" + y2="-758.99402" + id="linearGradient7288" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7290" + style="stop-color:#282662;stop-opacity:1" + offset="0" /> + <stop + id="stop7292" + style="stop-color:#662e8d;stop-opacity:1" + offset="0.0954839" /> + <stop + id="stop7294" + style="stop-color:#9f2064;stop-opacity:1" + offset="0.78820002" /> + <stop + id="stop7296" + style="stop-color:#cd2032;stop-opacity:1" + offset="0.94870001" /> + </linearGradient> + <path + d="m 107.5,384.1 c -2.6,7.2 -5.3,14.6 -7.9,22.2 0,0.1 -0.1,0.2 -0.1,0.3 -0.4,1.1 -0.8,2.1 -1.1,3.2 -1.8,5.1 -3.3,9.7 -6.9,20.1 5.9,2.7 10.6,9.7 15,17.7 -0.5,-8.3 -3.9,-16.1 -10.4,-22.1 28.9,1.3 53.9,-6 66.7,-27.2 1.1,-1.9 2.2,-3.9 3.2,-6 -5.9,7.4 -13.1,10.6 -26.8,9.8 0,0 -0.1,0 -0.1,0 0,0 0.1,0 0.1,0 20.1,-9 30.2,-17.7 39.1,-32 2.1,-3.4 4.2,-7.1 6.3,-11.2 -17.6,18.1 -38,23.2 -59.5,19.3 L 109,380 c -0.5,1.4 -1,2.7 -1.5,4.1 z" + id="path7298" + style="fill:url(#linearGradient7400)" /> + <linearGradient + x1="-8238.3281" + y1="-818.15222" + x2="-7698.647" + y2="-818.15222" + id="linearGradient7300" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7302" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7304" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7306" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7308" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 115,348 c 3.5,-9 7.1,-18.1 10.7,-27.3 3.5,-8.8 7.1,-17.6 10.8,-26.5 3.7,-8.9 7.5,-17.8 11.3,-26.7 3.9,-9.1 7.9,-18.1 12,-27.1 4,-8.9 8.2,-17.8 12.3,-26.6 1.5,-3.2 3,-6.3 4.6,-9.5 2.6,-5.4 5.3,-10.8 8,-16.2 0.1,-0.3 0.3,-0.6 0.4,-0.9 L 165.4,148 c -0.3,0.5 -0.6,1.1 -1,1.6 -4.6,7.6 -9.3,15.3 -13.8,23.2 -4.6,8 -9.1,16.1 -13.5,24.4 -3.7,7 -7.3,14 -10.9,21.1 -0.7,1.4 -1.4,2.9 -2.1,4.3 -4.3,8.9 -8.3,17.6 -11.8,25.9 -4,9.4 -7.5,18.4 -10.6,26.9 -2,5.6 -3.9,11 -5.6,16.2 -1.4,4.4 -2.7,8.9 -4,13.3 -3,10.4 -5.5,20.8 -7.6,31.2 l 20,39.5 c 2.6,-7.1 5.4,-14.2 8.1,-21.5 0.8,-2 1.6,-4 2.4,-6.1 z" + id="path7310" + style="fill:url(#linearGradient7402)" /> + <linearGradient + x1="-8198.9678" + y1="-810.85059" + x2="-7915.3501" + y2="-810.85059" + id="linearGradient7312" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7314" + style="stop-color:#282662;stop-opacity:1" + offset="0" /> + <stop + id="stop7316" + style="stop-color:#662e8d;stop-opacity:1" + offset="0.0954839" /> + <stop + id="stop7318" + style="stop-color:#9f2064;stop-opacity:1" + offset="0.78820002" /> + <stop + id="stop7320" + style="stop-color:#cd2032;stop-opacity:1" + offset="0.94870001" /> + </linearGradient> + <path + d="m 84.2,337.5 c -2.5,12.6 -4.3,25.2 -5.2,37.8 0,0.4 -0.1,0.9 -0.1,1.3 -6.2,-10 -23,-19.8 -22.9,-19.7 12,17.4 21.1,34.6 22.4,51.5 -6.4,1.3 -15.2,-0.6 -25.3,-4.3 10.6,9.7 18.5,12.4 21.6,13.1 -9.7,0.6 -19.8,7.3 -30,15 14.9,-6.1 27,-8.5 35.6,-6.5 -13.7,38.7 -27.4,81.5 -41.1,126.9 4.2,-1.2 6.7,-4.1 8.1,-7.9 2.4,-8.2 18.7,-62.2 44.1,-133.1 0.7,-2 1.5,-4 2.2,-6.1 0.2,-0.6 0.4,-1.1 0.6,-1.7 2.7,-7.4 5.5,-15 8.4,-22.8 0.7,-1.8 1.3,-3.5 2,-5.3 0,0 0,-0.1 0,-0.1 l -20,-39.5 c -0.2,0.5 -0.3,0.9 -0.4,1.4 z" + id="path7322" + style="fill:url(#linearGradient7404)" /> + <linearGradient + x1="-8238.3281" + y1="-762.29712" + x2="-7698.647" + y2="-762.29712" + id="linearGradient7324" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7326" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7328" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7330" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7332" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 188.4,190.6 c -0.6,1.2 -1.1,2.3 -1.7,3.5 -1.7,3.6 -3.5,7.2 -5.2,10.9 -1.9,4 -3.8,8.1 -5.8,12.3 -1,2.1 -2,4.2 -3,6.4 -3,6.5 -6,13.2 -9.1,20.1 -3.8,8.5 -7.6,17.3 -11.5,26.5 -3.7,8.7 -7.5,17.8 -11.3,27.1 -3.6,8.9 -7.3,18 -11,27.5 -3.3,8.4 -6.6,17.1 -10,26 -0.2,0.4 -0.3,0.9 -0.5,1.3 -3.3,8.8 -6.7,17.9 -10.1,27.2 -0.1,0.2 -0.2,0.4 -0.2,0.6 l 16.1,-1.8 c -0.3,-0.1 -0.6,-0.1 -1,-0.2 19.3,-2.4 44.9,-16.8 61.4,-34.6 7.6,-8.2 14.5,-17.8 20.9,-29.1 4.8,-8.4 9.2,-17.7 13.5,-28.1 3.7,-9 7.3,-18.8 10.7,-29.4 -4.4,2.3 -9.5,4 -15.1,5.2 -1,0.2 -2,0.4 -3,0.6 -1,0.2 -2,0.3 -3.1,0.5 l 0,0 0,0 c 0,0 0,0 0,0 18,-6.9 29.3,-20.2 37.5,-36.6 -4.7,3.2 -12.4,7.4 -21.6,9.5 -1.2,0.3 -2.5,0.5 -3.8,0.7 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 0,0 c 0,0 0,0 0,0 0,0 0,0 0,0 l 0,0 c 6.2,-2.6 11.5,-5.5 16.1,-9 1,-0.7 1.9,-1.5 2.8,-2.3 1.4,-1.2 2.7,-2.5 4,-3.8 0.8,-0.9 1.6,-1.7 2.4,-2.6 1.8,-2.1 3.5,-4.4 5,-6.9 0.5,-0.8 1,-1.5 1.4,-2.3 0.6,-1.2 1.2,-2.3 1.7,-3.4 2.5,-5 4.5,-9.5 6.1,-13.5 0.8,-2 1.5,-3.8 2.1,-5.5 0.2,-0.7 0.5,-1.3 0.7,-2 0.6,-1.9 1.2,-3.6 1.6,-5.1 0.6,-2.2 1,-4 1.2,-5.3 l 0,0 0,0 c -0.6,0.5 -1.3,1 -2.1,1.4 -5.4,3.2 -14.7,6.2 -22.2,7.6 l 14.8,-1.6 -14.8,1.6 c -0.1,0 -0.2,0 -0.3,0.1 -0.7,0.1 -1.5,0.2 -2.3,0.4 0.1,-0.1 0.3,-0.1 0.4,-0.2 l -50.6,5.5 c 0.1,0.4 0,0.6 -0.1,0.7 z" + id="path7334" + style="fill:url(#linearGradient7406)" /> + <linearGradient + x1="-8271.8057" + y1="-765.07068" + x2="-7732.125" + y2="-765.07068" + id="linearGradient7336" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7338" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7340" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7342" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7344" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 245.4,88.4 c -4.5,6.9 -9.4,14.8 -14.7,23.6 -0.3,0.5 -0.6,0.9 -0.8,1.4 -4.6,7.7 -9.4,16.1 -14.5,25.4 -4.4,8 -9,16.5 -13.8,25.8 -4.2,8 -8.4,16.5 -12.9,25.5 l 50.6,-5.5 c 14.7,-6.8 21.3,-12.9 27.7,-21.8 1.7,-2.4 3.4,-5 5.1,-7.7 5.2,-8.1 10.3,-17 14.8,-25.9 4.4,-8.6 8.3,-17.1 11.2,-24.7 1.9,-4.9 3.4,-9.4 4.5,-13.4 0.9,-3.5 1.6,-6.8 2.2,-10 -19.6,3.3 -43.7,6.5 -59.4,7.3 z" + id="path7346" + style="fill:url(#linearGradient7408)" /> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path7348" + style="fill:#be202e" /> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path7350" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8238.3281" + y1="-745.68481" + x2="-7698.647" + y2="-745.68481" + id="linearGradient7352" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7354" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7356" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7358" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7360" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path7362" + style="fill:url(#linearGradient7410)" /> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path7364" + style="fill:#be202e" /> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path7366" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8238.3281" + y1="-747.58557" + x2="-7698.647" + y2="-747.58557" + id="linearGradient7368" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7370" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7372" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7374" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7376" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path7378" + style="fill:url(#linearGradient7412)" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path7380" + style="fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path7382" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-7935.1431" + y1="-747.9668" + x2="-7815.856" + y2="-747.9668" + id="linearGradient7384" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop7386" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop7388" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop7390" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop7392" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path7394" + style="fill:url(#linearGradient7414)" /> + </g> + <g + style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:100px;line-height:125%;font-family:'Alte Haas Grotesk';-inkscape-font-specification:'Sans Italic';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + id="text5492"> + <path + d="m 23.541406,2.7166473 13.1,0 q 1.6,0 3.2,0 1.7,0 2.4,0.7 0.6,0.5 0.7,1.5 0.1,0.9 0.3,1.8 0.2,1.6 0.4,3.2999997 0.3,1.6 0.5,3.3 1.1,6.3 1.8,12.8 0.8,6.5 1.9,12.9 0.4,2 0.6,4.1 0.2,2.1 0.6,4.1 0.1,0.5 0.2,1 0.1,0.5 0.5,0.8 0.2,0.1 0.3,0.2 0.2,0.1 0.5,-0.1 0.8,-0.2 1.3,-1.2 0.5,-1 1,-1.8 1.2,-2.3 2.3,-4.5 1.1,-2.3 2.4,-4.6 3.2,-6.1 6.4,-12.2 3.3,-6.2 6.5,-12.4 0.8,-1.6 1.6,-3.0999997 0.9,-1.6 1.7,-3.2 0.4,-0.8 0.9,-1.6 0.5,-0.8 1.4,-1.3 0.7,-0.5 1.6,-0.5 1,0 2,0 l 6.5,0 6.9,0 q 0.9,0 1.8,0 1,0 1.4,0.4 1,0.6 0.6,2.3 -0.3,1.6 -0.6,3.3 l -3,14.9999997 -7.5,37.2 -1.7,8.7 q -0.2,1.1 -0.5,2.2 -0.3,1 -1,1.5 -0.7,0.5 -1.6,0.6 -0.9,0 -2,0 l -4.8,0 -2.7,0 q -0.7,-0.2 -1.3,-0.3 -0.5,-0.1 -0.8,-0.7 -0.3,-0.5 -0.2,-1.3 0.2,-0.8 0.4,-1.7 l 1,-5.1 5.2,-25.7 q 0.2,-1.4 0.4,-2.6 0.3,-1.3 0.5,-2.6 0.2,-0.8 0.4,-1.6 0.2,-0.9 0.2,-1.7 -0.1,-0.7 0,-1.5 0.2,-0.8 -0.3,-1 -0.3,-0.1 -0.5,0.1 -0.2,0.2 -0.3,0.3 -0.5,0.4 -0.9,1 -0.3,0.5 -0.6,1 -0.9,1.5 -1.8,3.1 -0.8,1.6 -1.8,3.2 -0.3,0.6 -0.6,1.2 -0.2,0.6 -0.6,1.2 -0.8,1.3 -1.5,2.6 -0.6,1.3 -1.4,2.6 -0.2,0.3 -0.3,0.7 -0.1,0.3 -0.3,0.6 -0.6,0.9 -1.1,1.9 -0.4,1 -1.1,2 -0.6,0.9 -1.1,1.9 -0.4,1 -1,2 -1.8,2.9 -3.3,5.9 -1.5,2.9 -3.1,5.8 -0.3,0.3 -0.4,0.6 0,0.3 -0.3,0.6 -0.7,1.1 -1.3,2.3 -0.5,1.1 -1.2,2.2 -0.4,0.7 -0.8,1.3 -0.4,0.6 -0.9,1 -0.6,0.4 -1.1,0.5 -0.5,0 -1.3,0.2 l -2.3,0 q -0.7,0 -1.7,0.1 -0.9,0 -1.9,0 -0.9,0 -1.7,-0.1 -0.8,-0.1 -1.1,-0.4 -0.7,-0.5 -0.9,-1.1 -0.1,-0.7 -0.4,-1.6 -0.2,-1.2 -0.3,-2.4 -0.1,-1.3 -0.4,-2.5 l -0.1,-0.9 q -0.3,-1.2 -0.4,-2.5 -0.1,-1.4 -0.4,-2.6 0,-0.3 0,-0.5 0,-0.3 -0.1,-0.6 -0.3,-0.9 -0.4,-1.9 -0.1,-1 -0.3,-2 0,-0.2 0,-0.5 0,-0.3 -0.1,-0.5 -0.2,-1 -0.3,-2 0,-1 -0.3,-2 -0.4,-2 -0.7,-4.2 -0.2,-2.2 -0.6,-4.3 -0.4,-2.5 -0.7,-5.1 -0.2,-2.6 -0.9,-5 -0.2,-1.4 -0.6,-2.3 -0.2,-0.2 -0.4,-0.3 -0.1,-0.2 -0.4,0 -0.6,0.3 -0.8,1 -0.1,0.7 -0.4,1.4 -0.4,0.7 -0.5,1.5 -0.1,0.7 -0.2,1.5 -0.2,1.1 -0.5,2.2 -0.2,1.1 -0.5,2.2 l -5.3,26.6 -1,4.9 q -0.2,0.8 -0.4,1.6 -0.1,0.8 -0.6,1.3 -0.5,0.7 -1.7,0.9 -0.7,0.2 -1.5,0.2 -0.8,-0.1 -1.6,-0.1 l -5.2,0 q -1.1000002,0 -2.0000002,0 -0.9,-0.1 -1.4,-0.6 -0.5,-0.5 -0.4,-1.5 0.2,-1.1 0.4,-2.2 l 1.7,-8.8 7.5000002,-37.2 2.8,-13.9999997 q 0.1,-0.6 0.2,-1.4 0.2,-0.9 0.4,-1.7 0.2,-0.8 0.4,-1.5 0.3,-0.8 0.5,-1.2 0.6,-0.7 1.8,-1 0.3,-0.1 0.4,0 0.2,0 0.5,-0.1 z" + style="" + id="path4317" /> + <path + d="m 143.06641,70.016647 q 0,1.1 -0.2,2.2 -0.2,1.1 -1.3,1.5 -0.7,0.3 -1.5,0.3 -0.8,0 -1.6,0 l -5.4,0 q -0.9,0 -1.8,0 -0.8,-0.1 -1.2,-0.5 -0.6,-0.4 -0.8,-1.1 -0.2,-0.8 -0.7,-1.3 -0.2,-0.2 -0.5,-0.3 -0.2,-0.2 -0.7,-0.1 -0.6,0.2 -1.1,0.5 -0.5,0.3 -1,0.5 -0.6,0.4 -1.3,0.7 -0.6,0.3 -1.3,0.6 -1.4,0.6 -2.9,1 -1.5,0.3 -3,0.7 -0.8,0.2 -1.5,0.2 -0.6,0.1 -1.3,0.2 -0.3,0 -0.6,0 -0.3,0.1 -0.6,0.1 l -1.1,0 q -1.1,0.2 -2,0 l -0.9,0 q -0.7,-0.2 -1.4,-0.2 -0.6,0.1 -1.2,-0.1 -0.9,-0.2 -1.8,-0.4 -0.9,-0.1 -1.6,-0.5 -2.7,-1.1 -4.400004,-2.8 -1.7,-1.8 -2.3,-4.7 -0.2,-0.7 -0.3,-1.5 0,-0.8 -0.1,-1.7 -0.1,-0.5 0,-1 0.2,-0.5 0.2,-1 0,-0.3 0.1,-1.2 0.2,-1 0.4,-1.4 0.4,-1 0.5,-1.7 0.5,-1.1 1,-2.2 0.6,-1.2 1.3,-2.1 2.200004,-2.9 4.700004,-4.4 2.5,-1.5 6.2,-2.6 1.4,-0.5 2.8,-0.7 1.4,-0.2 2.9,-0.5 0.8,-0.2 1.7,-0.2 1,-0.1 1.9,-0.3 0.7,-0.2 1.4,-0.1 0.7,0 1.6,-0.2 0.7,-0.2 1.4,-0.2 0.7,0 1.5,-0.2 2.2,-0.5 4,-0.8 1.9,-0.4 3.6,-1.8 1,-0.9 1.6,-2 0.1,-0.3 0.1,-0.5 0,-0.2 0.1,-0.4 0.2,-0.2 0.2,-0.6 0.1,-0.4 0.2,-0.6 0,-0.4 0,-0.8 0,-0.4 0,-0.7 -0.4,-3 -3.4,-4.1 -0.8,-0.3 -2.1,-0.4 -1.2,-0.2 -2.5,-0.1 -1.3,0 -2.6,0.2 -1.2,0.2 -2.1,0.5 -0.7,0.2 -1.3,0.6 -0.6,0.3 -1.2,0.7 -0.6,0.4 -1.3,1.1 -0.7,0.7 -1,1.3 -0.7,1 -1.2,1.9 -0.5,0.9 -1.7,1.2 -0.8,0.2 -1.7,0.2 -0.9,0 -1.8,0 l -3.8,0 q -0.5,0 -1.1,0.1 -0.5,0 -0.8,-0.1 l -0.9,0 q -0.2,-0.1 -0.5,-0.1 -0.3,0 -0.5,-0.2 -0.7,-0.2 -0.8,-1.3 0,-0.5 0.2,-1 0.2,-0.5 0.4,-0.9 0.5,-1.1 1,-2 0.6,-1 1.2,-1.8 0.4,-0.5 0.8,-1 0.4,-0.5 0.8,-1 1,-1.1 2.4,-2.1 0.3,-0.1 0.7,-0.5 0.6,-0.4 1,-0.7 0.5,-0.3 1.1,-0.6 1.9,-1.1 3.9,-1.7 2.1,-0.7 4.2,-1.3 1.3,-0.3 2.6,-0.4 1.3,-0.1 2.7,-0.4 0.4,-0.1 1.2,0 0.8,0.1 1.1,-0.1 4.1,-0.1 7.7,0.3 3.7,0.4 6.5,1.5 2.9,1.1 4.7,3 1.9,1.8 2.5,4.7 0.3,1.7 0,3.9 -0.3,2.2 -0.8,4.5 l -4.5,22.3 q -0.3,1.9 -0.7,3.9 -0.4,1.9 -0.3,3.5 0,0.3 -0.1,0.7 0,0.3 0,0.6 z m -11.6,-15.4 q 0.2,-0.5 0.3,-1.1 0.1,-0.7 0.1,-1.2 0,-0.6 0.1,-1.1 0.1,-0.5 -0.3,-0.8 -0.4,-0.4 -1.4,-0.4 -0.4,0.1 -0.7,0.2 -0.3,0 -0.8,0.1 -0.7,0.2 -1.5,0.3 -0.8,0.1 -1.7,0.3 -0.3,0.1 -0.9,0.1 -1.4,0.3 -2.7,0.4 -1.3,0.1 -2.6,0.5 -0.8,0.2 -1.6,0.4 -0.7,0.1 -1.4,0.4 -2.3,0.9 -4.1,2.7 -1.8,1.8 -2.1,5 -0.1,1.7 0.6,2.8 0.4,1.1 1.7,1.8 1.3,0.6 2.9,0.9 1.6,0.3 3.4,0.2 1.9,-0.2 3.6,-0.7 2.8,-0.8 4.6,-2.5 1.9,-1.8 3.2,-4.4 0.3,-0.7 0.5,-1.4 0.2,-0.8 0.6,-1.6 l 0.2,-0.9 z" + style="" + id="path4319" /> + <path + d="m 161.28828,22.416647 7.3,0 q 1.1,0 2.1,0.1 1,0 1.6,0.4 1,0.7 1,2.6 0.1,1.8 0.4,3.2 0.4,3.3 0.7,6.8 0.3,3.4 0.7,6.8 0.4,2.4 0.6,4.9 0.2,2.5 0.6,4.8 0.1,0.9 0.2,1.9 0.2,1 1.3,1 0.3,-0.2 0.4,-0.2 0.1,-0.1 0.3,-0.3 0.4,-0.5 0.7,-1 0.3,-0.5 0.6,-1.1 0.8,-1.1 1.2,-2.3 0.5,-1.2 1.2,-2.3 2.2,-4.2 4.3,-8.4 2.1,-4.3 4.3,-8.5 0.8,-1.2 1.3,-2.4 0.6,-1.3 1.2,-2.4 0.4,-0.8 0.8,-1.6 0.5,-0.8 1.2,-1.3 0.3,-0.2 1.4,-0.6 0.6,-0.2 1.3,-0.1 0.7,0 1.3,0 l 4.9,0 q 1.1,0 2,0.1 1,0 1.4,0.5 0.5,0.5 0.1,1.5 -0.3,0.9 -0.6,1.5 -0.8,1.4 -1.6,3 -0.8,1.5 -1.6,2.9 -0.4,0.7 -0.7,1.4 -0.3,0.6 -0.6,1.2 -0.7,1.1 -1.3,2.2 -0.6,1.1 -1.2,2.2 -0.1,0.3 -0.3,0.7 -0.1,0.3 -0.3,0.6 -0.9,1.5 -1.7,3.1 -0.8,1.5 -1.6,3 -1.7,3 -3.3,6.2 -1.6,3.1 -3.4,6.1 -0.8,1.4 -1.5,2.8 -0.6,1.3 -1.4,2.7 -0.3,0.5 -0.5,0.9 -0.2,0.3 -0.5,0.8 -0.6,1.1 -1.2,2.3 -0.5,1.1 -1.2,2.2 -0.7,1.1 -1.3,2.1 -0.6,0.9 -1.7,1.3 -0.9,0.3 -1.8,0.3 -0.9,-0.1 -1.8,-0.1 l -6.5,0 q -1.1,0 -2.2,0 -1,0 -1.7,-0.4 -0.6,-0.5 -0.8,-1.2 -0.1,-0.8 -0.2,-1.7 -0.3,-1.2 -0.5,-2.5 -0.1,-1.3 -0.3,-2.5 -0.1,-0.4 -0.1,-0.7 0,-0.4 -0.1,-0.9 -0.3,-1.2 -0.4,-2.5 -0.1,-1.3 -0.4,-2.6 -0.1,-0.5 -0.1,-0.9 0,-0.5 -0.1,-1 -0.2,-0.9 -0.3,-1.8 -0.1,-1 -0.3,-1.9 -0.1,-0.3 -0.1,-0.6 0.1,-0.4 0,-0.7 -0.2,-0.9 -0.3,-1.8 -0.1,-0.9 -0.3,-1.9 -0.4,-2.3 -0.7,-4.7 -0.3,-2.5 -0.6,-4.9 -0.6,-2.7 -0.9,-5.4 -0.2,-2.8 -0.7,-5.5 l -0.3,-2.7 q -0.1,-0.3 -0.1,-0.7 0.1,-0.5 0.4,-0.9 0.4,-0.7 1.6,-1 0.5,0 0.7,-0.1 z" + style="fill:none;stroke:none" + id="path4321" /> + <path + d="m 259.04141,47.716647 q 0,0.8 -0.4,1.8 -0.4,1 -1,1.3 -0.5,0.4 -1.5,0.6 -1,0.1 -2.2,0.2 -1.1,0 -2.3,0 -1.1,-0.1 -2,-0.1 l -24.4,0 q -0.7,0 -1.4,0 -0.6,0 -1.1,0.2 -0.9,0.4 -1.2,0.8 -0.2,0.2 -0.6,0.8 -0.3,0.5 -0.3,1 0.1,0.6 0,1.2 0,0.5 0.1,1.1 0.3,2.4 1.1,4 0.9,1.5 2.6,2.7 0.7,0.5 1.5,0.7 0.9,0.1 1.7,0.4 0.8,0.2 2.1,0.3 1.4,0.1 2.5,-0.1 l 0.9,0 q 1,-0.2 1.9,-0.4 0.9,-0.3 1.8,-0.6 1.1,-0.5 2.5,-1.3 1.4,-0.8 2.2,-1.6 0.6,-0.7 1.3,-1.3 0.7,-0.7 1.5,-1 1.1,-0.5 2.6,-0.4 1.6,0 2.9,0 0.6,0 1.2,0 0.7,-0.1 1.2,0.1 l 1,0 q 0.9,0.2 1.3,0.5 0.3,0.2 0.2,0.9 0,0.7 -0.3,1.2 -0.8,1.4 -1.7,2.5 -0.8,1.1 -1.8,2.2 -2.8,3.3 -6,5.3 -3.2,2 -7.7,3.4 -1.2,0.4 -2.3,0.5 -1.1,0.1 -2.4,0.4 -0.4,0.1 -0.9,0 -0.4,0 -0.8,0.1 l -1.1,0 q -0.6,0.2 -1.2,0.1 -0.6,0 -1.1,-0.1 -0.8,-0.1 -1.4,0 -0.6,0.1 -1.3,-0.1 -0.5,-0.2 -1.1,-0.2 -0.6,0 -1,-0.2 -1.1,-0.2 -2.2,-0.5 -1,-0.2 -1.8,-0.7 -1,-0.4 -1.9,-0.7 -0.9,-0.4 -1.6,-0.9 -2.8,-2 -4.8,-4.6 -1.9,-2.7 -2.8,-6.2 -0.3,-1.1 -0.4,-2.2 0,-1.2 -0.3,-2.4 0,-0.4 0,-0.7 0.1,-0.4 0.1,-0.8 -0.1,-1.2 0,-2.6 0.2,-1.4 0.4,-2.8 0.1,-0.5 0.1,-1.1 0.1,-0.6 0.3,-1.1 l 0.3,-1.2 0.8,-2.4 q 0.7,-1.7 1.3,-3.3 0.6,-1.6 1.5,-3 6.4,-10.4 17.6,-14.7 1.5,-0.6 3,-0.8 1.5,-0.3 3.2,-0.7 0.8,-0.1 1.5,-0.1 0.7,0 1.5,-0.1 5.1,-0.1 8.5,1.2 3.4,1.2 5.9,3.2 0.8,0.6 1.5,1.4 0.8,0.7 1.3,1.5 0.2,0.5 0.7,0.8 0.6,1.1 1,2.3 0.5,1.1 1.1,2.3 0.3,0.9 0.4,1.9 0.2,0.9 0.4,2 0.2,1.3 0.2,2.7 0.1,1.4 0.2,2.8 0,0.8 -0.3,1.8 -0.2,0.9 -0.1,1.7 l -0.2,1.1 z m -13.9,-5.9 q 0.9,-1 0.6,-2.4 -0.2,-1.5 -0.3,-2.2 -0.9,-2.7 -2.9,-4.1 -2,-1.5 -6.1,-1.6 -0.3,0.2 -0.7,0.1 -0.4,-0.1 -0.7,0 -0.6,0.2 -1.2,0.3 -0.6,0 -1.1,0.2 -4.7,1.4 -7.6,5.5 -0.3,0.4 -0.7,1.1 -0.4,0.6 -0.6,1.3 -0.2,0.6 -0.2,1.2 0,0.6 0.5,1 0.7,0.5 2.1,0.5 1.4,0 2.7,0 l 11.1,0 q 1.4,0 2.9,0 1.6,-0.1 2.2,-0.9 z" + style="" + id="path4323" /> + <path + d="m 302.16328,21.116647 q 6,-0.2 9.6,1.7 3.7,1.9 5.2,5.6 0.5,1.1 0.6,2.4 0.2,1.2 0.3,2.5 0.1,0.8 0,1.5 -0.1,0.7 0,1.4 -0.2,0.6 -0.1,0.8 -0.1,1.4 -0.4,2.9 -0.3,1.5 -0.6,2.9 l -1.7,8.9 -3.3,16.2 q -0.4,1.9 -0.8,3.7 -0.4,1.7 -1.9,2.2 -0.6,0.2 -1.4,0.2 -0.8,0 -1.6,0 l -5.4,0 q -1.2,0 -2.1,-0.1 -0.9,-0.2 -1.3,-0.9 -0.3,-0.6 -0.2,-1.5 0.2,-1 0.4,-2.1 l 1.4,-7 3,-14.9 q 0.7,-3.7 1,-6.8 0.4,-3.2 -0.7,-5.4 -1,-2 -3.5,-2.8 -0.5,-0.2 -1.1,-0.2 -0.5,0 -1,-0.2 -0.5,-0.1 -1.3,0 -0.7,0 -1.1,0.1 -0.5,0.1 -0.8,0.1 -0.3,0 -0.6,0.1 -2.4,0.6 -4,1.6 -3.7,2.3 -5.2,6.7 -1.4,4.4 -2.5,9.9 l -2.5,12.5 -1.2,6.1 q -0.2,0.9 -0.4,1.8 -0.2,0.9 -0.6,1.5 -0.7,1.1 -1.9,1.3 -1.1,0.2 -2.7,0.2 l -5,0 q -1.1,0 -2.2,-0.1 -1.1,-0.1 -1.4,-0.7 -0.6,-0.9 -0.2,-2.6 0.4,-1.7 0.7,-3.2 l 2.7,-13.6 4.4,-22 1.1,-5.1 q 0.2,-1.1 0.4,-2 0.2,-0.9 0.9,-1.5 0.2,-0.3 0.7,-0.4 0.5,-0.2 1,-0.3 l 0.5,0 q 0.5,-0.1 1,-0.1 0.6,0 1.1,0 l 4.2,0 q 0.8,0 1.5,0.1 0.8,0 1.4,0.2 0.6,0.3 0.7,0.9 0.2,0.6 0.2,1.4 0,0.4 -0.1,0.7 -0.1,0.3 0,0.6 0.1,0.5 0.2,0.6 0.2,0.1 0.5,0.3 1,0.1 1.9,-0.7 0.9,-0.9 1.8,-1.4 3.1,-2 6.6,-3.2 1,-0.3 1.9,-0.4 1,-0.1 2.2,-0.3 0.3,-0.1 0.9,0 0.6,0 0.8,-0.1 z" + style="" + id="path4325" /> + </g> + <g + style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:20px;line-height:125%;font-family:'Alte Haas Grotesk';-inkscape-font-specification:'Sans Italic';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + id="text9112"> + <path + d="m 326.92482,21.038048 q 0.1,0.08 0.1,0.34 0,0.26 -0.1,0.48 l -0.02,0.16 q -0.08,0.18 -0.18,0.3 -0.08,0.1 -0.26,0.16 -0.18,0.04 -0.5,0.04 -0.32,-0.02 -0.54,-0.02 l -0.3,0 q -0.1,0.04 -0.18,0.02 -0.08,-0.02 -0.16,0.02 -0.22,0.08 -0.38,0.38 -0.06,0.1 -0.08,0.24 -0.02,0.14 -0.04,0.28 l -0.96,4.72 q -0.02,0.1 -0.02,0.18 0,0.08 -0.04,0.16 l -0.04,0.16 q -0.02,0.06 -0.04,0.12 0,0.06 -0.06,0.1 -0.08,0.16 -0.26,0.22 -0.1,0.04 -0.24,0.04 -0.12,0 -0.28,0 -0.28,0 -0.62,0 -0.34,0 -0.46,-0.16 -0.06,-0.12 -0.04,-0.28 0.04,-0.16 0.08,-0.36 l 0.94,-4.72 q 0.02,-0.1 0.04,-0.2 0.04,-0.1 0.02,-0.18 l 0.04,-0.28 q 0.02,-0.32 -0.2,-0.4 -0.18,-0.1 -0.54,-0.08 -0.34,0.02 -0.6,0.02 -0.1,0 -0.2,0.02 -0.08,0 -0.14,-0.02 -0.08,-0.04 -0.14,-0.02 -0.06,0 -0.12,-0.02 -0.2,-0.1 -0.18,-0.32 0.02,-0.22 0.08,-0.52 0.02,-0.12 0.04,-0.22 0.04,-0.1 0.1,-0.2 0.06,-0.1 0.16,-0.14 0.1,-0.06 0.2,-0.1 0.06,-0.02 0.08,0 0.04,0 0.1,-0.02 l 5.34,0 q 0.18,0 0.34,0.02 0.16,0 0.26,0.08 z m 10.64,0.04 q 0.08,0.14 0.04,0.32 -0.02,0.18 -0.06,0.4 l -1.3,6.5 q -0.04,0.22 -0.1,0.4 -0.04,0.16 -0.14,0.28 -0.14,0.16 -0.44,0.16 -0.28,0 -0.56,0 -0.12,0 -0.26,0.02 -0.12,0 -0.2,-0.04 -0.18,-0.06 -0.22,-0.18 -0.02,-0.12 -0.02,-0.3 l 0.06,-0.34 q 0,-0.06 0.02,-0.14 0.02,-0.1 0.04,-0.18 l 0.52,-2.54 q 0.04,-0.24 0.08,-0.48 0.06,-0.24 0.06,-0.44 -0.02,-0.1 -0.02,-0.16 0,-0.08 -0.06,-0.12 -0.02,-0.02 -0.06,-0.02 -0.06,0.04 -0.14,0.08 -0.2,0.24 -0.36,0.54 -0.16,0.3 -0.34,0.58 -0.36,0.62 -0.7,1.26 -0.34,0.62 -0.7,1.22 -0.16,0.28 -0.34,0.64 -0.18,0.34 -0.42,0.5 -0.12,0.08 -0.28,0.1 -0.16,0 -0.34,0 l -0.3,0 q -0.1,-0.04 -0.18,-0.06 -0.08,-0.04 -0.14,-0.1 -0.06,-0.06 -0.08,-0.16 -0.02,-0.1 -0.04,-0.2 -0.06,-0.18 -0.08,-0.36 -0.02,-0.2 -0.06,-0.4 -0.12,-0.58 -0.2,-1.18 -0.08,-0.62 -0.2,-1.2 -0.06,-0.34 -0.12,-0.68 -0.04,-0.34 -0.22,-0.58 -0.04,0 -0.06,0.02 -0.02,0 -0.04,0 -0.1,0.08 -0.14,0.18 -0.06,0.1 -0.08,0.2 0,0.08 -0.04,0.18 l -0.06,0.34 q -0.04,0.08 -0.06,0.16 -0.02,0.08 -0.02,0.14 l -0.48,2.32 q -0.04,0.26 -0.12,0.64 -0.06,0.36 -0.18,0.52 -0.06,0.04 -0.12,0.1 -0.04,0.04 -0.1,0.06 -0.1,0.04 -0.24,0.06 -0.12,0 -0.28,0 -0.26,0 -0.52,0 -0.26,0 -0.4,-0.12 -0.1,-0.08 -0.1,-0.26 0.02,-0.18 0.06,-0.4 l 1.32,-6.6 q 0.04,-0.18 0.08,-0.34 0.06,-0.18 0.14,-0.28 0.1,-0.14 0.32,-0.18 0.06,-0.02 0.08,0 0.04,0 0.1,-0.02 l 1.32,0 q 0.22,0 0.42,0 0.2,0 0.3,0.1 0.16,0.12 0.18,0.38 0.04,0.26 0.1,0.48 0.1,0.56 0.2,1.14 0.1,0.56 0.2,1.14 0.08,0.3 0.12,0.62 0.06,0.32 0.12,0.62 0.04,0.12 0.06,0.26 0.04,0.12 0.16,0.16 0.1,0.04 0.18,-0.04 0.1,-0.08 0.14,-0.14 0.2,-0.22 0.32,-0.46 0.14,-0.26 0.28,-0.5 0.42,-0.66 0.78,-1.34 0.38,-0.7 0.8,-1.36 0.16,-0.28 0.32,-0.58 0.18,-0.32 0.48,-0.44 0.14,-0.04 0.28,-0.04 0.16,0 0.32,0 l 0.88,0 q 0.12,0 0.24,0 0.12,-0.02 0.22,0 l 0.1,0 q 0.08,0.04 0.16,0.06 0.1,0.02 0.12,0.08 z" + style="" + id="path4328" /> + </g> + <g + transform="matrix(0.13272567,0.01947468,-0.01947468,0.13272567,170.19741,12.570146)" + id="g4701"> + <linearGradient + x1="-7708.7969" + y1="-803.36011" + x2="-7633.1528" + y2="-714.90741" + id="SVGID_1_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4704" + style="stop-color:#f69923;stop-opacity:1" + offset="0" /> + <stop + id="stop4706" + style="stop-color:#f79a23;stop-opacity:1" + offset="0.3123" /> + <stop + id="stop4708" + style="stop-color:#e97826;stop-opacity:1" + offset="0.83829999" /> + </linearGradient> + <path + d="m 267.1,19.6 c -8.4,5 -22.4,19 -39,39.3 l 15.3,28.9 c 10.7,-15.4 21.7,-29.2 32.7,-41 0.8,-0.9 1.3,-1.4 1.3,-1.4 -0.4,0.5 -0.9,0.9 -1.3,1.4 -3.6,3.9 -14.4,16.5 -30.7,41.6 15.7,-0.8 39.8,-4 59.5,-7.4 5.9,-32.8 -5.7,-47.8 -5.7,-47.8 0,0 -14.8,-23.9 -32.1,-13.6 z" + id="path4710" + style="fill:url(#linearGradient5344)" /> + <path + d="m 241.1,184.4 c 0.1,0 0.2,0 0.3,-0.1 l -2.2,0.2 c -0.1,0.1 -0.3,0.1 -0.4,0.2 0.8,-0.1 1.6,-0.2 2.3,-0.3 z" + id="path4712" + style="fill:none" /> + <path + d="m 225.5,236.1 c -1.2,0.3 -2.5,0.5 -3.8,0.7 1.3,-0.2 2.6,-0.4 3.8,-0.7 z" + id="path4714" + style="fill:none" /> + <path + d="m 119.3,352.2 c 0.2,-0.4 0.3,-0.9 0.5,-1.3 3.4,-8.9 6.7,-17.5 10,-26 3.7,-9.4 7.4,-18.6 11,-27.5 3.8,-9.3 7.6,-18.4 11.3,-27.1 3.9,-9.2 7.7,-18 11.5,-26.5 3.1,-6.9 6.1,-13.6 9.1,-20.1 1,-2.2 2,-4.3 3,-6.4 2,-4.2 3.9,-8.3 5.8,-12.3 1.8,-3.7 3.5,-7.3 5.2,-10.9 0.6,-1.2 1.2,-2.4 1.7,-3.5 0.1,-0.2 0.2,-0.4 0.3,-0.6 l -1.9,0.2 -1.5,-2.9 c -0.1,0.3 -0.3,0.6 -0.4,0.9 -2.7,5.3 -5.4,10.7 -8,16.2 -1.5,3.1 -3,6.3 -4.6,9.5 -4.2,8.8 -8.3,17.6 -12.3,26.6 -4.1,9 -8.1,18.1 -12,27.1 -3.9,8.9 -7.6,17.8 -11.3,26.7 -3.7,8.9 -7.3,17.7 -10.8,26.5 -3.7,9.2 -7.3,18.3 -10.7,27.3 -0.8,2 -1.6,4.1 -2.3,6.1 -2.8,7.3 -5.5,14.4 -8.1,21.5 l 2.4,4.7 2.1,-0.2 c 0.1,-0.2 0.2,-0.4 0.2,-0.6 3.1,-9.5 6.5,-18.6 9.8,-27.4 z" + id="path4716" + style="fill:none" /> + <path + d="m 220.7,236.9 0,0 c 0,0 0,0 0,0 0,0 0,0 0,0 z" + id="path4718" + style="fill:none" /> + <path + d="m 215.6,262.2 c -2,0.4 -4,0.7 -6,1 0,0 0,0 0,0 1,-0.1 2.1,-0.3 3.1,-0.5 1,-0.1 2,-0.3 2.9,-0.5 z" + id="path4720" + style="fill:#be202e" /> + <path + d="m 215.6,262.2 c -2,0.4 -4,0.7 -6,1 0,0 0,0 0,0 1,-0.1 2.1,-0.3 3.1,-0.5 1,-0.1 2,-0.3 2.9,-0.5 z" + id="path4722" + style="opacity:0.35;fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 -0.1,0 -0.1,0 0,0 0.3,0 0.6,-0.1 0.9,-0.1 1.3,-0.2 2.6,-0.4 3.8,-0.7 -1.5,0.3 -3.1,0.5 -4.7,0.8 l 0,0 0,0 z" + id="path4724" + style="fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 -0.1,0 -0.1,0 0,0 0.3,0 0.6,-0.1 0.9,-0.1 1.3,-0.2 2.6,-0.4 3.8,-0.7 -1.5,0.3 -3.1,0.5 -4.7,0.8 l 0,0 0,0 z" + id="path4726" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8268.6387" + y1="-813.12323" + x2="-7728.9585" + y2="-813.12323" + id="SVGID_2_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4729" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4731" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4733" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4735" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 198.2,162.4 c 4.7,-8.7 9.4,-17.2 14.1,-25.5 4.9,-8.6 9.9,-16.9 15,-25 0.3,-0.5 0.6,-1 0.9,-1.4 5,-7.9 10,-15.5 15.1,-22.8 L 228,58.9 c -1.1,1.4 -2.3,2.8 -3.5,4.3 -4.4,5.5 -9,11.4 -13.7,17.7 -5.3,7.1 -10.7,14.6 -16.3,22.5 -5.1,7.3 -10.3,15 -15.5,22.9 -4.4,6.8 -8.8,13.7 -13.2,20.8 -0.2,0.3 -0.3,0.5 -0.5,0.8 l 19.9,39.3 c 4.4,-8.3 8.7,-16.6 13,-24.8 z" + id="path4737" + style="fill:url(#linearGradient5346)" /> + <linearGradient + x1="-8203.4922" + y1="-758.99402" + x2="-7881.895" + y2="-758.99402" + id="SVGID_3_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4740" + style="stop-color:#282662;stop-opacity:1" + offset="0" /> + <stop + id="stop4742" + style="stop-color:#662e8d;stop-opacity:1" + offset="0.0954839" /> + <stop + id="stop4744" + style="stop-color:#9f2064;stop-opacity:1" + offset="0.78820002" /> + <stop + id="stop4746" + style="stop-color:#cd2032;stop-opacity:1" + offset="0.94870001" /> + </linearGradient> + <path + d="m 107.5,384.1 c -2.6,7.2 -5.3,14.6 -7.9,22.2 0,0.1 -0.1,0.2 -0.1,0.3 -0.4,1.1 -0.8,2.1 -1.1,3.2 -1.8,5.1 -3.3,9.7 -6.9,20.1 5.9,2.7 10.6,9.7 15,17.7 -0.5,-8.3 -3.9,-16.1 -10.4,-22.1 28.9,1.3 53.9,-6 66.7,-27.2 1.1,-1.9 2.2,-3.9 3.2,-6 -5.9,7.4 -13.1,10.6 -26.8,9.8 0,0 -0.1,0 -0.1,0 0,0 0.1,0 0.1,0 20.1,-9 30.2,-17.7 39.1,-32 2.1,-3.4 4.2,-7.1 6.3,-11.2 -17.6,18.1 -38,23.2 -59.5,19.3 L 109,380 c -0.5,1.4 -1,2.7 -1.5,4.1 z" + id="path4748" + style="fill:url(#linearGradient5348)" /> + <linearGradient + x1="-8238.3281" + y1="-818.15222" + x2="-7698.647" + y2="-818.15222" + id="SVGID_4_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4751" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4753" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4755" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4757" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 115,348 c 3.5,-9 7.1,-18.1 10.7,-27.3 3.5,-8.8 7.1,-17.6 10.8,-26.5 3.7,-8.9 7.5,-17.8 11.3,-26.7 3.9,-9.1 7.9,-18.1 12,-27.1 4,-8.9 8.2,-17.8 12.3,-26.6 1.5,-3.2 3,-6.3 4.6,-9.5 2.6,-5.4 5.3,-10.8 8,-16.2 0.1,-0.3 0.3,-0.6 0.4,-0.9 L 165.4,148 c -0.3,0.5 -0.6,1.1 -1,1.6 -4.6,7.6 -9.3,15.3 -13.8,23.2 -4.6,8 -9.1,16.1 -13.5,24.4 -3.7,7 -7.3,14 -10.9,21.1 -0.7,1.4 -1.4,2.9 -2.1,4.3 -4.3,8.9 -8.3,17.6 -11.8,25.9 -4,9.4 -7.5,18.4 -10.6,26.9 -2,5.6 -3.9,11 -5.6,16.2 -1.4,4.4 -2.7,8.9 -4,13.3 -3,10.4 -5.5,20.8 -7.6,31.2 l 20,39.5 c 2.6,-7.1 5.4,-14.2 8.1,-21.5 0.8,-2 1.6,-4 2.4,-6.1 z" + id="path4759" + style="fill:url(#linearGradient5350)" /> + <linearGradient + x1="-8198.9678" + y1="-810.85059" + x2="-7915.3501" + y2="-810.85059" + id="SVGID_5_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4762" + style="stop-color:#282662;stop-opacity:1" + offset="0" /> + <stop + id="stop4764" + style="stop-color:#662e8d;stop-opacity:1" + offset="0.0954839" /> + <stop + id="stop4766" + style="stop-color:#9f2064;stop-opacity:1" + offset="0.78820002" /> + <stop + id="stop4768" + style="stop-color:#cd2032;stop-opacity:1" + offset="0.94870001" /> + </linearGradient> + <path + d="m 84.2,337.5 c -2.5,12.6 -4.3,25.2 -5.2,37.8 0,0.4 -0.1,0.9 -0.1,1.3 -6.2,-10 -23,-19.8 -22.9,-19.7 12,17.4 21.1,34.6 22.4,51.5 -6.4,1.3 -15.2,-0.6 -25.3,-4.3 10.6,9.7 18.5,12.4 21.6,13.1 -9.7,0.6 -19.8,7.3 -30,15 14.9,-6.1 27,-8.5 35.6,-6.5 -13.7,38.7 -27.4,81.5 -41.1,126.9 4.2,-1.2 6.7,-4.1 8.1,-7.9 2.4,-8.2 18.7,-62.2 44.1,-133.1 0.7,-2 1.5,-4 2.2,-6.1 0.2,-0.6 0.4,-1.1 0.6,-1.7 2.7,-7.4 5.5,-15 8.4,-22.8 0.7,-1.8 1.3,-3.5 2,-5.3 0,0 0,-0.1 0,-0.1 l -20,-39.5 c -0.2,0.5 -0.3,0.9 -0.4,1.4 z" + id="path4770" + style="fill:url(#linearGradient5352)" /> + <linearGradient + x1="-8238.3281" + y1="-762.29712" + x2="-7698.647" + y2="-762.29712" + id="SVGID_6_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4773" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4775" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4777" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4779" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 188.4,190.6 c -0.6,1.2 -1.1,2.3 -1.7,3.5 -1.7,3.6 -3.5,7.2 -5.2,10.9 -1.9,4 -3.8,8.1 -5.8,12.3 -1,2.1 -2,4.2 -3,6.4 -3,6.5 -6,13.2 -9.1,20.1 -3.8,8.5 -7.6,17.3 -11.5,26.5 -3.7,8.7 -7.5,17.8 -11.3,27.1 -3.6,8.9 -7.3,18 -11,27.5 -3.3,8.4 -6.6,17.1 -10,26 -0.2,0.4 -0.3,0.9 -0.5,1.3 -3.3,8.8 -6.7,17.9 -10.1,27.2 -0.1,0.2 -0.2,0.4 -0.2,0.6 l 16.1,-1.8 c -0.3,-0.1 -0.6,-0.1 -1,-0.2 19.3,-2.4 44.9,-16.8 61.4,-34.6 7.6,-8.2 14.5,-17.8 20.9,-29.1 4.8,-8.4 9.2,-17.7 13.5,-28.1 3.7,-9 7.3,-18.8 10.7,-29.4 -4.4,2.3 -9.5,4 -15.1,5.2 -1,0.2 -2,0.4 -3,0.6 -1,0.2 -2,0.3 -3.1,0.5 l 0,0 0,0 c 0,0 0,0 0,0 18,-6.9 29.3,-20.2 37.5,-36.6 -4.7,3.2 -12.4,7.4 -21.6,9.5 -1.2,0.3 -2.5,0.5 -3.8,0.7 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 0,0 c 0,0 0,0 0,0 0,0 0,0 0,0 l 0,0 c 6.2,-2.6 11.5,-5.5 16.1,-9 1,-0.7 1.9,-1.5 2.8,-2.3 1.4,-1.2 2.7,-2.5 4,-3.8 0.8,-0.9 1.6,-1.7 2.4,-2.6 1.8,-2.1 3.5,-4.4 5,-6.9 0.5,-0.8 1,-1.5 1.4,-2.3 0.6,-1.2 1.2,-2.3 1.7,-3.4 2.5,-5 4.5,-9.5 6.1,-13.5 0.8,-2 1.5,-3.8 2.1,-5.5 0.2,-0.7 0.5,-1.3 0.7,-2 0.6,-1.9 1.2,-3.6 1.6,-5.1 0.6,-2.2 1,-4 1.2,-5.3 l 0,0 0,0 c -0.6,0.5 -1.3,1 -2.1,1.4 -5.4,3.2 -14.7,6.2 -22.2,7.6 l 14.8,-1.6 -14.8,1.6 c -0.1,0 -0.2,0 -0.3,0.1 -0.7,0.1 -1.5,0.2 -2.3,0.4 0.1,-0.1 0.3,-0.1 0.4,-0.2 l -50.6,5.5 c 0.1,0.4 0,0.6 -0.1,0.7 z" + id="path4781" + style="fill:url(#linearGradient5354)" /> + <linearGradient + x1="-8271.8057" + y1="-765.07068" + x2="-7732.125" + y2="-765.07068" + id="SVGID_7_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4784" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4786" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4788" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4790" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 245.4,88.4 c -4.5,6.9 -9.4,14.8 -14.7,23.6 -0.3,0.5 -0.6,0.9 -0.8,1.4 -4.6,7.7 -9.4,16.1 -14.5,25.4 -4.4,8 -9,16.5 -13.8,25.8 -4.2,8 -8.4,16.5 -12.9,25.5 l 50.6,-5.5 c 14.7,-6.8 21.3,-12.9 27.7,-21.8 1.7,-2.4 3.4,-5 5.1,-7.7 5.2,-8.1 10.3,-17 14.8,-25.9 4.4,-8.6 8.3,-17.1 11.2,-24.7 1.9,-4.9 3.4,-9.4 4.5,-13.4 0.9,-3.5 1.6,-6.8 2.2,-10 -19.6,3.3 -43.7,6.5 -59.4,7.3 z" + id="path4792" + style="fill:url(#linearGradient5356)" /> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path4794" + style="fill:#be202e" /> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path4796" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8238.3281" + y1="-745.68481" + x2="-7698.647" + y2="-745.68481" + id="SVGID_8_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4799" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4801" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4803" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4805" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 212.7,262.8 c -1,0.2 -2,0.3 -3.1,0.5 l 0,0 c 1,-0.2 2,-0.4 3.1,-0.5 z" + id="path4807" + style="fill:url(#linearGradient5358)" /> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path4809" + style="fill:#be202e" /> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path4811" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-8238.3281" + y1="-747.58557" + x2="-7698.647" + y2="-747.58557" + id="SVGID_9_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4814" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4816" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4818" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4820" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 220.7,236.9 c 0.3,0 0.6,-0.1 1,-0.1 -0.3,0 -0.6,0.1 -1,0.1 l 0,0 z" + id="path4822" + style="fill:url(#linearGradient5360)" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path4824" + style="fill:#be202e" /> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path4826" + style="opacity:0.35;fill:#be202e" /> + <linearGradient + x1="-7935.1431" + y1="-747.9668" + x2="-7815.856" + y2="-747.9668" + id="SVGID_10_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.4226,-0.9063,0.9063,0.4226,4226.9761,-6584.5938)"> + <stop + id="stop4829" + style="stop-color:#9e2064;stop-opacity:1" + offset="0.3233" /> + <stop + id="stop4831" + style="stop-color:#c92037;stop-opacity:1" + offset="0.63020003" /> + <stop + id="stop4833" + style="stop-color:#cd2335;stop-opacity:1" + offset="0.75139999" /> + <stop + id="stop4835" + style="stop-color:#e97826;stop-opacity:1" + offset="1" /> + </linearGradient> + <path + d="m 220.8,236.9 c 0,0 0,0 0,0 l 0,0 0,0 0,0 c 0,0 0,0 0,0 z" + id="path4837" + style="fill:url(#linearGradient5362)" /> + </g> + </g> + <g + transform="translate(385.61463,-191.53704)" + id="g4845" /> + <g + transform="translate(385.61463,-191.53704)" + id="g4847" /> + <g + transform="translate(385.61463,-191.53704)" + id="g4849" /> + <g + transform="translate(385.61463,-191.53704)" + id="g4851" /> + <g + transform="translate(385.61463,-191.53704)" + id="g4853" /> + <g + transform="translate(385.61463,-191.53704)" + id="g4855" /> +</svg> diff --git a/Apache_Maven_logo.svg.license b/Apache_Maven_logo.svg.license new file mode 100644 index 0000000..fe2b958 --- /dev/null +++ b/Apache_Maven_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: Apache-2.0 + +Copyright (C) Apache Software Foundation diff --git a/Archlinux-logo-standard-version.svg b/Archlinux-logo-standard-version.svg new file mode 100644 index 0000000..0a6cedb --- /dev/null +++ b/Archlinux-logo-standard-version.svg @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + version="1.0" + width="600" + height="199.41692" + id="svg2424" + xml:space="preserve" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs2426"><linearGradient + x1="112.49854" + y1="6.1372099" + x2="112.49853" + y2="129.3468" + id="path1082_2_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(287,-83)"><stop + id="stop193" + style="stop-color:#ffffff;stop-opacity:0" + offset="0" /><stop + id="stop195" + style="stop-color:#ffffff;stop-opacity:0.27450982" + offset="1" /><midPointStop + offset="0" + style="stop-color:#FFFFFF" + id="midPointStop197" /><midPointStop + offset="0.5" + style="stop-color:#FFFFFF" + id="midPointStop199" /><midPointStop + offset="1" + style="stop-color:#000000" + id="midPointStop201" /></linearGradient><linearGradient + x1="541.33502" + y1="104.50665" + x2="606.91248" + y2="303.14029" + id="linearGradient2544" + xlink:href="#path1082_2_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.3937741,0,0,0.393752,357.51969,122.00151)" /><linearGradient + id="linearGradient3388"><stop + id="stop3390" + style="stop-color:#000000;stop-opacity:0" + offset="0" /><stop + id="stop3392" + style="stop-color:#000000;stop-opacity:0.37113401" + offset="1" /></linearGradient><linearGradient + x1="490.72305" + y1="237.72447" + x2="490.72305" + y2="183.9644" + id="linearGradient4416" + xlink:href="#linearGradient3388" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.749107,0,0,0.749107,-35.459862,91.44108)" /></defs><g + transform="translate(-34.777313,-129.80241)" + id="layer1"><g + transform="matrix(0.8746356,0,0,0.8746356,14.730518,23.408954)" + id="g2424" + style="fill:#1a1a1a"><g + transform="matrix(0.6378586,0,0,0.6378586,36.486487,2.17139)" + id="g2809" + style="fill:#4d4d4d;fill-opacity:1"><path + d="m 339.96875,309.09375 c -14.47141,-0.0239 -26.4812,2.94367 -31.125,4.5625 l -4.78125,25.8125 c -0.0116,0.0951 23.79543,-6.34855 34.28125,-5.96875 17.36158,0.62381 18.95948,6.63541 18.65625,14.75 0.29595,0.47462 -4.47933,-7.33192 -19.5,-7.59375 -18.94961,-0.32687 -45.69284,6.70947 -45.65625,35.3125 -0.51086,32.17412 24.03361,41.63882 40.75,41.8125 15.02821,-0.27364 22.0777,-5.69136 25.9375,-8.59375 5.07124,-5.30236 10.87308,-10.63447 16.40625,-17.03125 -5.23567,9.51278 -9.77472,16.0898 -14.5,21.125 l 0,4.25 22.84375,-3.84375 0.15625,-62.09375 c -0.23141,-8.78839 5.04123,-42.41827 -43.46875,-42.5 z m -3.28125,54.0625 c 9.46889,0.12995 20.32788,4.79708 20.34375,16.03125 0.049,10.21821 -12.80005,15.71183 -21.15625,15.625 -8.35976,-0.0868 -19.45093,-6.56982 -19.5,-16.53125 0.16016,-8.90444 10.45953,-15.35418 20.3125,-15.125 z" + id="path2284" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 398.50106,314.83145 -0.15505,102.82693 26.61213,-5.12724 0.0449,-58.30157 c 0.006,-8.68089 12.40554,-18.82451 27.9627,-18.66287 3.30202,-5.97408 9.5087,-21.24219 11.02088,-24.71514 -34.75649,-0.0833 -35.19897,9.98993 -41.24398,14.94517 -0.0631,-9.45285 -0.0213,-15.12741 -0.0213,-15.12741 l -24.2202,4.16213 z" + id="path2286" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 548.2688,328.33058 c -0.25696,-0.12068 -13.87938,-15.93419 -41.26638,-16.0589 -25.65249,-0.42638 -54.42578,9.51895 -54.88631,52.5328 0.22457,37.81852 27.6402,52.59809 55.0314,52.88627 29.31292,0.30451 40.97654,-18.32947 41.67615,-18.79124 -3.49762,-3.0321 -16.59792,-16.0131 -16.59792,-16.0131 0,0 -8.18236,11.65102 -24.05802,11.79913 -15.87942,0.1512 -29.68245,-12.27325 -29.87805,-29.60905 -0.20349,-17.33595 12.68881,-26.72821 29.99725,-27.48687 14.98466,-0.003 23.6297,9.67334 23.6297,9.67334 l 16.35218,-18.93238 z" + id="path2288" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 581.8125,278.84375 -25.125,5.90625 0.1875,133.9375 24.75,-4.46875 0.28125,-63.03125 c 0.0529,-6.60927 9.56127,-16.75916 25.4375,-16.4375 15.17973,0.15775 18.57236,10.11767 18.53125,11.375 l 0.4375,72.96875 24.40625,-4.3125 0.0937,-77.375 c 0.1607,-7.44539 -16.30833,-23.16954 -42.78125,-23.28125 -12.58087,0.0202 -19.54815,2.86825 -23.09375,4.96875 -6.06656,4.68565 -12.9998,9.17543 -19.8125,14.90625 6.29809,-8.09099 11.58551,-13.68516 16.75,-17.84375 l -0.0625,-37.3125 z" + id="path2290" + style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g + transform="matrix(0.9443373,0,0.01336345,0.9443373,78.345657,-412.48879)" + id="g5326" + style="fill:#1793d1;fill-opacity:1;stroke:none"><path + d="m 400.67581,629.79609 7.68167,-1.91575 -0.92851,91.20792 -7.79574,1.32426 1.04258,-90.61643 z" + id="path2292" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 421.10266,657.01757 6.75064,-2.9867 -0.86808,65.39931 -6.49779,1.33915 0.61523,-63.75176 z m -1.26059,-23.58316 5.47167,-4.41533 4.42261,4.99952 -5.47558,4.53221 -4.4187,-5.1164 z" + id="path2294" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 440.44273,655.82614 7.67755,-1.56201 -0.1573,13.6722 c -0.007,0.58717 4.4194,-15.27364 24.68502,-14.92094 19.67986,0.10952 22.68401,15.34634 22.5291,18.76237 l -0.43759,48.0783 -6.73044,1.45631 0.63316,-47.489 c 0.0974,-1.38684 -2.88144,-13.11441 -16.78906,-13.15754 -13.90509,-0.0404 -23.68364,10.10048 -23.75821,16.57937 l -0.48127,41.83477 -7.80388,2.0313 0.63292,-65.28513 z" + id="path2296" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 561.53301,720.20203 -7.6776,1.56186 0.15737,-13.67198 c 0.007,-0.58742 -4.42201,15.27361 -24.68504,14.92086 -19.67983,-0.10944 -22.68399,-15.34626 -22.52908,-18.76229 l 0.43757,-48.07861 8.15674,-1.64226 -0.54644,47.48988 c -0.0149,1.29682 1.36845,13.29979 15.27604,13.3426 13.90511,0.0405 23.76622,-8.37359 24.01453,-21.04416 l 0.43105,-37.46902 7.5978,-1.93195 -0.63294,65.28507 z" + id="path2298" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /><path + d="m 577.45461,655.28678 -5.42715,4.20017 20.19894,26.93328 -22.39092,31.11622 5.63499,4.226 21.04365,-28.8967 20.8779,29.58159 5.32727,-4.20103 -22.37578,-31.62866 18.56963,-25.5775 -5.53193,-4.73429 -16.92109,23.66778 -19.00551,-24.68686 z" + id="path2300" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><path + d="m 105.8125,16.625 c -7.39687,18.135158 -11.858304,29.997682 -20.09375,47.59375 5.04936,5.35232 11.247211,11.585364 21.3125,18.625 C 96.210077,78.390904 88.828713,73.920352 83.3125,69.28125 72.7727,91.274163 56.259864,122.60209 22.75,182.8125 49.087628,167.60733 69.504089,158.23318 88.53125,154.65625 87.714216,151.1422 87.2497,147.34107 87.28125,143.375 l 0.03125,-0.84375 c 0.417917,-16.87382 9.195665,-29.84979 19.59375,-28.96875 10.39809,0.88104 18.48041,15.28242 18.0625,32.15625 -0.0786,3.17512 -0.43674,6.22955 -1.0625,9.0625 18.82058,3.68164 39.01873,13.03179 65,28.03125 -5.123,-9.4318 -9.69572,-17.93388 -14.0625,-26.03125 -6.87839,-5.33121 -14.05289,-12.2698 -28.6875,-19.78125 10.05899,2.61375 17.2611,5.62932 22.875,9 C 124.63297,63.338161 121.03766,52.354109 105.8125,16.625 z" + transform="matrix(1.1433333,0,0,1.1433333,22.920168,121.64318)" + id="path2518" + style="fill:#1793d1;fill-opacity:1;fill-rule:evenodd;stroke:none" /><g + id="text2634" + style="font-size:8.44138241px;font-style:normal;font-weight:normal;fill:#1793d1;fill-opacity:1;stroke:none;font-family:DejaVu Sans Mono"><path + d="m 685.46692,263.83624 0,-5.32944 -1.99082,0 0,-0.71307 4.7895,0 0,0.71307 -1.99906,0 0,5.32944 -0.79962,0" + id="path7858" + style="fill:#1793d1;fill-opacity:1" /><path + d="m 689.0982,263.83624 0,-6.04251 1.20355,0 1.43026,4.2784 c 0.13189,0.39843 0.22806,0.69658 0.28852,0.89442 0.0687,-0.21983 0.17586,-0.5427 0.3215,-0.96862 l 1.44674,-4.2042 1.07578,0 0,6.04251 -0.77077,0 0,-5.05741 -1.75587,5.05741 -0.72131,0 -1.74763,-5.14396 0,5.14396 -0.77077,0" + id="path7860" + style="fill:#1793d1;fill-opacity:1" /></g><g + id="text2638" + style="font-size:8.25130367px;font-style:normal;font-weight:normal;fill:#1793d1;fill-opacity:1;stroke:none;font-family:DejaVu Sans Mono"><path + d="m 239.84053,313.69965 0,-5.20945 -1.94598,0 0,-0.697 4.68164,0 0,0.697 -1.95404,0 0,5.20945 -0.78162,0" + id="path7853" + style="fill:#1793d1;fill-opacity:1" /><path + d="m 243.39004,313.69965 0,-5.90645 1.17646,0 1.39805,4.18205 c 0.12892,0.38947 0.22293,0.6809 0.28202,0.87429 0.0671,-0.21488 0.1719,-0.53048 0.31426,-0.94681 l 1.41417,-4.10953 1.05155,0 0,5.90645 -0.75341,0 0,-4.94353 -1.71634,4.94353 -0.70506,0 -1.70828,-5.02814 0,5.02814 -0.75342,0" + id="path7855" + style="fill:#1793d1;fill-opacity:1" /></g></g></g></svg> diff --git a/Archlinux-logo-standard-version.svg.license b/Archlinux-logo-standard-version.svg.license new file mode 100644 index 0000000..9e87244 --- /dev/null +++ b/Archlinux-logo-standard-version.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: GPL-2.0-or-later + +Copyright (C) 2002 Judd Vinet, Aaron Griffin and Levente Polyák diff --git a/Debian-OpenLogo.svg b/Debian-OpenLogo.svg new file mode 100644 index 0000000..99f2101 --- /dev/null +++ b/Debian-OpenLogo.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" width="108.76" height="144.13" viewBox="0 0 108.758 144.133"> + <path fill="#D70751" d="M60.969 47.645c-1.494.02.281.768 2.232 1.069.541-.422 1.027-.846 1.463-1.26-1.213.297-2.449.304-3.695.191m8.017-1.999c.893-1.229 1.541-2.573 1.77-3.963-.201.99-.736 1.845-1.244 2.749-2.793 1.759-.264-1.044-.002-2.111-3.002 3.783-.414 2.268-.524 3.325m2.963-7.704c.182-2.691-.529-1.839-.768-.814.278.146.499 1.898.768.814M55.301 1.163c.798.142 1.724.252 1.591.443.876-.193 1.073-.367-1.591-.443m1.592.443-.561.117.523-.048.038-.069"/> + <path fill="#D70751" d="M81.762 38.962c.09 2.416-.705 3.59-1.424 5.666l-1.293.643c-1.057 2.054.105 1.304-.652 2.937-1.652 1.467-5.006 4.589-6.08 4.875-.785-.017.531-.926.703-1.281-2.209 1.516-1.773 2.276-5.152 3.199l-.098-.221c-8.33 3.92-19.902-3.847-19.75-14.443-.088.672-.253.504-.437.774-.43-5.451 2.518-10.926 7.49-13.165 4.863-2.406 10.564-1.42 14.045 1.829-1.912-2.506-5.721-5.163-10.232-4.917-4.421.072-8.558 2.881-9.938 5.932-2.264 1.425-2.528 5.496-3.514 6.242-1.329 9.76 2.497 13.975 8.97 18.936 1.016.686.286.791.422 1.313-2.15-1.006-4.118-2.526-5.738-4.387.86 1.257 1.787 2.479 2.986 3.439-2.029-.685-4.738-4.913-5.527-5.085 3.495 6.258 14.178 10.975 19.775 8.634-2.59.096-5.879.053-8.787-1.022-1.225-.629-2.884-1.93-2.587-2.173 7.636 2.851 15.522 2.158 22.128-3.137 1.682-1.31 3.518-3.537 4.049-3.567-.799 1.202.137.578-.477 1.639 1.672-2.701-.729-1.1 1.73-4.664l.908 1.25c-.34-2.244 2.785-4.966 2.467-8.512.717-1.084.799 1.168.039 3.662 1.055-2.767.279-3.212.549-5.496.291.768.678 1.583.875 2.394-.688-2.675.703-4.503 1.049-6.058-.342-.15-1.061 1.182-1.227-1.976.025-1.372.383-.719.52-1.057-.268-.155-.975-1.207-1.404-3.224.309-.475.832 1.229 1.256 1.298-.273-1.603-.742-2.826-.762-4.057-1.24-2.59-.439.346-1.443-1.112-1.32-4.114 1.094-.955 1.258-2.823 1.998 2.895 3.137 7.385 3.662 9.244-.4-2.267-1.045-4.464-1.834-6.589.609.257-.979-4.663.791-1.405C87.189 15.552 81 9.062 75.305 6.018c.695.637 1.574 1.437 1.26 1.563-2.834-1.685-2.336-1.818-2.742-2.53-2.305-.939-2.459.077-3.984.002-4.35-2.308-5.188-2.063-9.191-3.507l.182.852c-2.881-.96-3.357.362-6.47.002-.189-.147.998-.536 1.976-.677-2.786.368-2.656-.55-5.382.101.671-.471 1.383-.784 2.099-1.184-2.271.138-5.424 1.322-4.451.244-3.705 1.654-10.286 3.975-13.979 7.438l-.116-.776c-1.692 2.031-7.379 6.066-7.832 8.699l-.453.105c-.879 1.491-1.45 3.18-2.148 4.713-1.151 1.963-1.688.756-1.524 1.064-2.265 4.592-3.392 8.45-4.363 11.616.692 1.035.017 6.232.278 10.391-1.136 20.544 14.418 40.489 31.42 45.093 2.492.893 6.197.861 9.349.949-3.718-1.064-4.198-.563-7.822-1.826-2.613-1.232-3.185-2.637-5.037-4.244l.733 1.295c-3.63-1.285-2.111-1.59-5.065-2.525l.783-1.021c-1.177-.09-3.117-1.982-3.647-3.033l-1.288.051c-1.546-1.906-2.371-3.283-2.31-4.35l-.416.742c-.471-.809-5.691-7.158-2.983-5.68-.503-.458-1.172-.747-1.897-2.066l.551-.629c-1.301-1.677-2.398-3.826-2.314-4.542.695.938 1.177 1.114 1.655 1.275-3.291-8.164-3.476-.449-5.967-8.31l.526-.042c-.403-.611-.65-1.27-.974-1.919l.23-2.285c-2.368-2.736-.662-11.645-.319-16.53.235-1.986 1.977-4.101 3.3-7.418l-.806-.138c1.542-2.688 8.802-10.799 12.166-10.383 1.629-2.046-.324-.008-.643-.522 3.579-3.703 4.704-2.616 7.119-3.283 2.603-1.545-2.235.604-1.001-.589 4.503-1.149 3.19-2.614 9.063-3.197.62.352-1.437.544-1.953 1.001 3.75-1.836 11.869-1.417 17.145 1.018 6.117 2.861 12.994 11.314 13.266 19.267l.309.083c-.156 3.162.484 6.819-.627 10.177l.751-1.591"/> + <path fill="#D70751" d="m44.658 49.695-.211 1.047c.983 1.335 1.763 2.781 3.016 3.821-.902-1.759-1.571-2.486-2.805-4.868m2.321-.09c-.52-.576-.826-1.268-1.172-1.956.33 1.211 1.006 2.252 1.633 3.312l-.461-1.356m41.084-8.93-.219.552c-.402 2.858-1.273 5.686-2.605 8.309 1.472-2.767 2.421-5.794 2.824-8.861M55.598.446C56.607.077 58.08.243 59.154 0c-1.398.117-2.789.187-4.162.362l.606.084M20.127 19.308c.233 2.154-1.62 2.991.41 1.569 1.09-2.454-.424-.677-.41-1.569m-2.388 9.974c.469-1.437.553-2.299.732-3.132-1.293 1.654-.596 2.007-.732 3.132"/> + <path d="M13.437 125.51c-.045.047-.045 7.506-.138 9.453-.092 1.574-.232 4.957-3.568 4.957-3.429 0-4.263-3.939-4.541-5.652-.324-1.9-.324-3.477-.324-4.17 0-2.225.139-8.436 5.375-8.436 1.576 0 2.456.465 3.151.834l.045 3.02zM0 130.98c0 13.066 6.951 13.066 7.97 13.066 2.873 0 4.727-1.576 5.514-4.309l.093 4.123c.881-.047 1.761-.139 3.197-.139.51 0 .926 0 1.298.047.371 0 .741.045 1.158.092-.741-1.482-1.297-4.818-1.297-12.049 0-7.043 0-18.951.602-22.566-1.667.789-3.105 1.299-6.256 1.576 1.251 1.344 1.251 2.039 1.251 8.154-.879-.277-1.992-.602-3.892-.602-8.294 0-9.638 7.23-9.638 12.61m25.13-2.373c.047-3.846.835-7.275 4.124-7.275 3.615 0 3.891 3.984 3.799 7.275H25.13zm12.51.46c0-5.422-1.065-10.752-7.923-10.752-9.452 0-9.452 10.475-9.452 12.697 0 9.406 4.216 13.113 11.306 13.113 3.149 0 4.68-.461 5.514-.695-.046-1.668.185-2.734.465-4.17-.975.604-2.226 1.391-5.006 1.391-7.229 0-7.322-6.582-7.322-8.852H37.55l.09-2.74m15.075 2.008c0 4.309-.787 10.102-6.162 10.102-.742 0-1.668-.141-2.27-.279-.093-1.668-.093-4.541-.093-7.877 0-3.986.416-6.068.742-7.09.972-3.289 3.15-3.334 3.566-3.334 3.522 0 4.217 4.86 4.217 8.48zm-13.298 5.05c0 3.43 0 5.375-.556 6.857 1.9.742 4.262 1.158 7.09 1.158 1.807 0 7.043 0 9.869-5.791 1.344-2.688 1.807-6.303 1.807-9.037 0-1.668-.186-5.328-1.529-7.646-1.296-2.176-3.382-3.289-5.605-3.289-4.449 0-5.746 3.707-6.44 5.607 0-2.363.045-10.611.415-14.828-3.011 1.391-4.866 1.621-6.857 1.807 1.807.74 1.807 3.801 1.807 13.764v11.397m27.117 7.741c-.928-.139-1.578-.232-2.922-.232-1.48 0-2.502.094-3.566.232.463-.881.648-1.299.787-4.309.186-4.125.232-15.154-.092-17.471-.232-1.762-.648-2.039-1.297-2.502 3.799-.371 4.865-.648 6.625-1.482-.369 2.037-.418 3.059-.418 6.162-.091 15.98-.138 17.7.883 19.6m14.838-13.118c-.092 2.92-.139 4.959-.928 6.58-.973 2.086-2.594 2.688-3.799 2.688-2.783 0-3.383-2.316-3.383-4.586 0-4.355 3.893-4.682 5.652-4.682h2.458zm-12.744 5.7c0 2.92.881 5.838 3.477 7.09 1.158.51 2.316.51 2.688.51 4.264 0 5.699-3.152 6.58-5.098-.047 2.039 0 3.289.139 4.912.834-.047 1.668-.139 3.059-.139.787 0 1.529.092 2.316.139-.51-.787-.787-1.252-.928-3.059-.092-1.76-.092-3.521-.092-5.977l.047-9.453c0-3.523-.928-6.998-7.879-6.998-4.586 0-7.273 1.391-8.617 2.086.557 1.02 1.02 1.898 1.436 3.893 1.809-1.576 4.172-2.41 6.58-2.41 3.848 0 3.848 2.549 3.848 6.162-.881-.045-1.623-.137-2.875-.137-5.887.01-9.779 2.28-9.779 8.49m39.431 2.819c.047 1.576.047 3.244.695 4.588-1.021-.092-1.623-.232-3.521-.232-1.113 0-1.715.094-2.596.232.184-.602.279-.834.371-1.623.139-1.064.232-4.633.232-5.885v-5.004c0-2.178 0-5.33-.141-6.441-.092-.787-.322-2.918-3.012-2.918-2.641 0-3.521 1.945-3.846 3.521-.369 1.621-.369 3.383-.369 10.24.045 5.932.045 6.486.508 8.109-.787-.092-1.76-.184-3.15-.184-1.113 0-1.854.045-2.779.184.324-.742.51-1.113.602-3.707.094-2.549.279-15.061-.141-18.025-.23-1.809-.695-2.225-1.203-2.688 3.754-.186 4.957-.789 6.117-1.389v4.91c.555-1.438 1.713-4.635 6.348-4.635 5.793 0 5.838 4.217 5.885 6.996v13.928"/> + <path fill="#D70751" d="m66.926 111.53-3.838 3.836-3.836-3.836 3.836-3.836 3.838 3.84"/> +</svg>
\ No newline at end of file diff --git a/Debian-OpenLogo.svg.license b/Debian-OpenLogo.svg.license new file mode 100644 index 0000000..8b9fca0 --- /dev/null +++ b/Debian-OpenLogo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LGPL-3.0-or-later or CC-BY-SA-3.0 + +Copyright (c) 1999 Software in the Public Interest, Inc diff --git a/Guix_logo.svg b/Guix_logo.svg new file mode 100644 index 0000000..9b9e8f6 --- /dev/null +++ b/Guix_logo.svg @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="70mm" + width="77mm" + viewBox="0 0 272.83464 248.0315" + id="svg3338" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="Guix-logo.svg"> + <defs + id="defs3344"> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4702-3" + id="linearGradient3936" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4874381,0,0,1.4874381,1284.8057,-24.050665)" + x1="142.96875" + y1="63.65625" + x2="176.60477" + y2="70.667412" /> + <linearGradient + id="linearGradient4702-3"> + <stop + style="stop-color:#ff0000;stop-opacity:0.58431375;" + offset="0" + id="stop4704-1" /> + <stop + style="stop-color:#ffcc00;stop-opacity:1;" + offset="1" + id="stop4706-8" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4702-3" + id="linearGradient3932" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4874381,0,0,1.4874381,1284.7576,-1291.8882)" + x1="113.5146" + y1="1004.8033" + x2="78.000107" + y2="922.07178" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4696-5" + id="linearGradient3929" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-0.83291399,0,0,0.83291399,1519.4606,-667.62588)" + x1="108.08774" + y1="1025.709" + x2="80.655251" + y2="1043.709" /> + <linearGradient + id="linearGradient4696-5"> + <stop + style="stop-color:#ffb638;stop-opacity:1;" + offset="0" + id="stop4698-6" /> + <stop + style="stop-color:#f0ae26;stop-opacity:1;" + offset="1" + id="stop4700-2" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4702-3" + id="linearGradient3926" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(-1.4874381,0,0,1.4874381,1586.895,-24.051145)" + x1="142.96875" + y1="63.65625" + x2="177.04297" + y2="69.791016" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1366" + inkscape:window-height="704" + id="namedview3342" + showgrid="false" + inkscape:zoom="1.8132778" + inkscape:cx="141.73228" + inkscape:cy="141.73228" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="svg3338" /> + <metadata + id="metadata3340"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="g3398" + transform="translate(-1299.1761,-41.051394)"> + <g + id="g3122" + transform="translate(1285.8501,-737.48576)"> + <path + inkscape:connector-curvature="0" + id="path3240" + style="font-style:normal;font-weight:bold;font-size:67.20256042px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#333333;fill-opacity:1;stroke:none" + d="m 114.29864,1016.2686 c -3.15017,1.5313 -6.4206,2.6798 -9.81131,3.4454 -3.39079,0.7657 -6.89092,1.1485 -10.500399,1.1485 -8.159708,0 -14.62401,-2.2751 -19.392927,-6.8253 -4.768937,-4.572 -7.153401,-10.7629 -7.153397,-18.57256 -4e-6,-7.89714 2.428211,-14.10987 7.284652,-18.63821 4.85642,-4.52825 11.506666,-6.79239 19.95076,-6.79244 3.259466,5e-5 6.376771,0.30631 9.351921,0.91878 2.99694,0.61258 5.81892,1.52042 8.46595,2.72354 l 0,10.13945 c -2.73453,-1.55314 -5.45807,-2.71256 -8.17063,-3.47825 -2.69076,-0.76562 -5.392426,-1.14844 -8.104994,-1.14849 -5.031469,5e-5 -8.914426,1.41104 -11.648882,4.23298 -2.712621,2.80014 -4.068921,6.81435 -4.068905,12.04264 -1.6e-5,5.18456 1.312533,9.18786 3.93765,12.00986 2.625077,2.822 6.354903,4.233 11.189489,4.233 1.312517,0 2.526625,-0.077 3.642326,-0.2297 1.137506,-0.175 2.154736,-0.4376 3.051676,-0.7876 l 0,-9.516 -7.711228,0 0,-8.46591 19.688248,0 0,23.56031" /> + <path + inkscape:connector-curvature="0" + id="path3242" + style="font-style:normal;font-weight:bold;font-size:67.20256042px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#333333;fill-opacity:1;stroke:none" + d="m 124.47091,1005.6041 0,-22.44461 11.81295,0 0,3.67514 c -2e-5,1.99073 -0.011,4.49551 -0.0328,7.51435 -0.0219,2.99701 -0.0328,4.99865 -0.0328,6.00492 -2e-5,2.9532 0.0765,5.0861 0.22969,6.3987 0.15311,1.2907 0.41563,2.2313 0.78753,2.822 0.48125,0.7656 1.10471,1.3563 1.87039,1.7719 0.78751,0.4156 1.68441,0.6235 2.69072,0.6235 2.45007,0 4.37514,-0.9407 5.77522,-2.822 1.40003,-1.8813 2.10005,-4.4955 2.10008,-7.8425 l 0,-18.14601 11.74732,0 0,36.75141 -11.74732,0 0,-5.3158 c -1.77197,2.1438 -3.65329,3.7298 -5.64396,4.758 -1.96885,1.0062 -4.14549,1.5094 -6.52994,1.5094 -4.24392,0 -7.48154,-1.3016 -9.71287,-3.9048 -2.20946,-2.6033 -3.31419,-6.3878 -3.31419,-11.3536" /> + <path + inkscape:connector-curvature="0" + id="path3244" + style="font-style:normal;font-weight:bold;font-size:67.20256042px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#333333;fill-opacity:1;stroke:none" + d="m 172.77274,983.15949 11.74732,0 0,36.75141 -11.74732,0 0,-36.75141 m 0,-14.3068 11.74732,0 0,9.58162 -11.74732,0 0,-9.58162" /> + <path + inkscape:connector-curvature="0" + id="path3246" + style="font-style:normal;font-weight:bold;font-size:67.20256042px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#333333;fill-opacity:1;stroke:none" + d="m 205.15991,1001.1086 -13.25675,-17.94911 12.43641,0 7.51435,10.89416 7.61279,-10.89416 12.43641,0 -13.25676,17.88351 13.91303,18.8679 -12.43641,0 -8.26906,-11.6161 -8.17063,11.6161 -12.43641,0 13.91303,-18.8023" /> + </g> + <path + inkscape:connector-curvature="0" + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#ffcc00;fill-opacity:1;stroke:none" + d="m 1557.9367,46.602435 c -2.6825,4.90263 -5.4059,8.89401 -8.1809,12.03897 -2.6825,3.05258 -5.6406,5.49427 -8.8781,7.34422 -3.1451,1.75757 -6.7135,3.02514 -10.691,3.76506 -3.885,0.64751 -8.3459,0.97629 -13.4334,0.9761 -3.7529,0 -7.1256,-0.1922 -10.0867,-0.55773 -0.012,0 -0.034,0 -0.047,0 -0.3754,-0.0273 -1.1508,-0.15334 -1.9523,-0.27891 -0.8442,-0.13218 -1.7071,-0.25955 -3.0678,-0.5113 -24.9421,-4.61489 -33.2141,12.7003 -35.0013,17.47744 -0.2797,0.74767 -0.4183,1.20845 -0.4183,1.20845 l -30.3066,84.505085 -18.593,31.60821 37.1395,0 c 15.2535,-33.96261 29.9183,-104.875515 45.5993,-111.139545 3.3988,0.47537 7.6118,0.69713 12.6897,0.69713 6.6601,0 12.6232,-0.79843 17.8957,-2.46349 5.2726,-1.66502 10.0151,-4.24757 14.2702,-7.76263 4.255,-3.60748 8.1051,-8.20868 11.5276,-13.75881 3.515,-5.54998 6.8486,-12.21732 9.9937,-19.98743 l -8.4597,-3.16082 z" + id="path3143" /> + <path + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3936);fill-opacity:1;stroke:none" + d="m 1557.9358,46.605905 c -2.6826,4.90263 -5.4057,8.8885 -8.1808,12.03346 -2.6824,3.05259 -5.6417,5.49543 -8.8792,7.34538 -0.7789,0.43527 -1.5819,0.83524 -2.4125,1.20983 -0.01,0.003 -0.014,0.0109 -0.022,0.0144 -1.0455,0.73525 -2.3902,1.36643 -4.2128,1.80033 -21.0208,5.00504 -35.3388,23.73821 -36.6837,25.5504 0.6098,-0.50134 1.2236,-0.91065 1.8364,-1.22422 0.092,-0.0488 0.1814,-0.093 0.2736,-0.13683 0.015,-0.007 0.029,-0.0148 0.043,-0.0216 0.1068,-0.0498 0.2172,-0.0941 0.3241,-0.13682 3.3988,0.47537 7.6109,0.69853 12.6888,0.69853 6.6601,0 12.6228,-0.805 17.8954,-2.47007 5.2725,-1.66501 10.0108,-4.2408 14.2658,-7.75586 4.2551,-3.60747 8.1069,-8.21164 11.5294,-13.76177 3.515,-5.55 6.8504,-12.22084 9.9955,-19.99096 l -8.4616,-3.1542 z" + id="path3145" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:#ffcc00;fill-opacity:1;stroke:none" + d="m 1313.7642,46.602455 c 2.6826,4.90263 5.4059,8.89399 8.1809,12.03895 2.6825,3.05258 5.6407,5.49427 8.8782,7.34422 3.145,1.75757 6.7134,3.02514 10.6909,3.76506 3.8851,0.6477 8.3459,0.97629 13.4334,0.9761 3.7529,0 7.1256,-0.1922 10.0867,-0.55773 0.012,0 0.035,0 0.047,0 0.3754,-0.0269 1.1508,-0.15333 1.9523,-0.27891 0.8442,-0.13218 1.7071,-0.25955 3.0678,-0.5113 24.9421,-4.61489 33.2141,12.7003 35.0013,17.47744 0.2797,0.74767 0.4183,1.20845 0.4183,1.20845 l 30.3066,84.505085 18.593,31.60821 -37.1395,0 c -15.2535,-33.96261 -29.9183,-104.875515 -45.5993,-111.139545 -3.3988,0.47537 -7.6118,0.69713 -12.6897,0.69713 -6.6601,0 -12.6232,-0.79843 -17.8957,-2.46349 -5.2726,-1.66502 -10.0151,-4.24757 -14.2702,-7.76263 -4.255,-3.60748 -8.105,-8.20867 -11.5276,-13.75881 -3.515,-5.54993 -6.8486,-12.21728 -9.9937,-19.98743 l 8.4598,-3.1608 z" + id="path3147" /> + <path + sodipodi:nodetypes="ccccccccsscccccccccccc" + id="path3149" + d="m 1313.7627,46.601235 c 2.6826,4.90262 5.4059,8.89399 8.1809,12.03894 2.6825,3.05259 5.6407,5.49427 8.8781,7.34422 3.1451,1.75757 6.7135,3.02514 10.691,3.76507 3.8851,0.64768 8.3459,0.97628 13.4334,0.97609 3.7529,0 7.1256,-0.19221 10.0867,-0.55772 0.012,0 0.035,0 0.047,0 0.3754,-0.027 1.1508,-0.15335 1.9523,-0.27892 0.8442,-0.13218 1.7071,-0.25955 3.0678,-0.5113 24.9421,-4.61489 33.2141,12.70029 35.0013,17.47744 0.2797,0.74767 0.4183,1.20845 0.4183,1.20845 l 30.3066,84.505095 15.6181,31.60819 -34.1646,0 c -15.2535,-33.9626 -29.9183,-104.875505 -45.5993,-111.139535 -3.3988,0.47537 -7.6118,0.69713 -12.6897,0.69713 -6.6601,0 -12.6232,-0.79843 -17.8957,-2.46349 -5.2726,-1.66502 -10.0151,-4.24758 -14.2701,-7.76263 -4.2551,-3.60748 -8.1051,-8.20867 -11.5277,-13.7588 -3.515,-5.54995 -6.8486,-12.21728 -9.9937,-19.98743 l 8.4598,-3.1608 z" + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3932);fill-opacity:1;stroke:none" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path3151" + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3929);fill-opacity:1;stroke:none" + d="m 1435.8193,172.5566 -18.52,31.62143 37.1209,0" + sodipodi:nodetypes="ccc" /> + <path + style="font-style:normal;font-weight:bold;font-size:144px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans Bold';letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3926);fill-opacity:1;stroke:none" + d="m 1313.7667,46.605905 -8.4616,3.1542 c 0.9829,2.42817 1.9835,4.75137 3.003,6.96371 0.2039,0.44246 0.4068,0.87683 0.6121,1.31064 8e-4,0.002 -8e-4,0.006 0,0.007 0.2044,0.4318 0.4135,0.85862 0.6193,1.28184 0.069,0.14106 0.1401,0.27758 0.2089,0.41768 0.3452,0.70349 0.6877,1.40177 1.037,2.08119 0,0.003 0.01,0.004 0.01,0.007 0.2082,0.40484 0.4169,0.80634 0.6265,1.20263 0.8454,1.59852 1.7025,3.12828 2.5709,4.58726 0.2168,0.36432 0.4298,0.7174 0.6481,1.073 0.085,0.13784 0.1672,0.27395 0.252,0.41048 0.1351,0.21746 0.2749,0.43399 0.4105,0.64812 0.2139,0.34687 0.4237,0.69034 0.6409,1.0298 0.3462,0.54084 0.7041,1.06956 1.0586,1.59149 0.09,0.13178 0.1764,0.26551 0.2665,0.39607 0.225,0.32622 0.4486,0.64634 0.6769,0.96499 0.4544,0.6341 0.9152,1.25393 1.3827,1.85795 0.2337,0.302 0.4687,0.59851 0.7057,0.89296 0.474,0.58892 0.9532,1.16257 1.4403,1.72113 0.3692,0.42348 0.7467,0.83988 1.1234,1.24584 0.119,0.12822 0.2403,0.2552 0.36,0.38166 0.5012,0.52939 1.0055,1.04257 1.5195,1.54109 0.2564,0.24866 0.511,0.49359 0.7706,0.73454 0.2608,0.24217 0.5209,0.47857 0.7849,0.71294 0.2628,0.23322 0.5262,0.45866 0.7922,0.68413 0.7978,0.65907 1.6161,1.28595 2.4484,1.87955 2.2197,1.58292 4.563,2.93443 7.0357,4.05436 0.3091,0.14 0.6159,0.27768 0.929,0.41048 0.6283,0.26652 1.2637,0.51855 1.9084,0.75614 0.3213,0.11842 0.6396,0.22723 0.965,0.33846 0.3254,0.11123 0.657,0.22 0.9866,0.32406 0.3295,0.10407 0.6588,0.20515 0.9937,0.30246 0.6699,0.19463 1.3538,0.37949 2.0452,0.5473 0.3458,0.0839 0.6931,0.16039 1.0442,0.23765 0.3512,0.0773 0.7021,0.15261 1.0586,0.22324 0.3588,0.0711 0.7159,0.13718 1.0802,0.20164 0.7239,0.12808 1.458,0.24373 2.2036,0.34566 1.1184,0.15292 2.2607,0.27964 3.4279,0.37447 0.7781,0.0633 1.5694,0.1135 2.3692,0.15123 0.7999,0.0377 1.6125,0.0595 2.4341,0.072 0.4108,0.006 0.8224,0.007 1.2386,0.007 0.6348,0 1.2574,-2.1e-4 1.8652,-0.007 1.2156,-0.014 2.3763,-0.0437 3.4854,-0.0864 0.5521,-0.0213 1.0943,-0.0435 1.6203,-0.072 0.5282,-0.0287 1.0462,-0.0646 1.5483,-0.10083 1.5062,-0.10864 2.895,-0.24661 4.1696,-0.42487 0.1069,0.0427 0.2173,0.087 0.3241,0.13682 0.015,0.006 0.028,0.0148 0.043,0.0216 0.092,0.0439 0.1815,0.088 0.2736,0.13682 0.6131,0.31376 1.2262,0.72249 1.8364,1.22423 -1.3421,-1.80851 -15.6604,-20.54497 -36.6837,-25.5504 -1.8226,-0.43396 -3.1673,-1.06505 -4.2128,-1.80034 -0.01,-0.003 -0.014,-0.0108 -0.022,-0.0144 -0.8287,-0.37374 -1.6352,-0.77569 -2.4125,-1.20983 0,-8e-4 -0.01,7.9e-4 -0.01,0 -0.2005,-0.11459 -0.3993,-0.23372 -0.5977,-0.35287 0,-8e-4 -0.01,8e-4 -0.01,0 -0.2001,-0.12025 -0.3925,-0.24238 -0.5905,-0.36726 -0.3976,-0.25081 -0.7922,-0.50819 -1.181,-0.77775 -0.1936,-0.13419 -0.3847,-0.27162 -0.5761,-0.41048 -0.3856,-0.27966 -0.7611,-0.56553 -1.1378,-0.86416 -0.1871,-0.14821 -0.3696,-0.29358 -0.5545,-0.44649 -0.1864,-0.15403 -0.3704,-0.30928 -0.5545,-0.46808 -0.1828,-0.15761 -0.3595,-0.32017 -0.5401,-0.4825 -0.9031,-0.81159 -1.7795,-1.67679 -2.6285,-2.60688 -0.1699,-0.18602 -0.3437,-0.37813 -0.5113,-0.56891 -0.6171,-0.6993 -1.2315,-1.4415 -1.8436,-2.22522 -0.076,-0.0976 -0.1471,-0.19638 -0.2232,-0.29525 -0.1719,-0.22327 -0.347,-0.44692 -0.5185,-0.67693 -0.8574,-1.15011 -1.7082,-2.38737 -2.5565,-3.70871 -0.3393,-0.52854 -0.6774,-1.07112 -1.0154,-1.62751 -0.169,-0.27819 -0.3354,-0.55736 -0.5041,-0.84255 -0.5043,-0.85289 -1.0109,-1.74117 -1.5123,-2.6573 z" + id="path3154" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/Guix_logo.svg.license b/Guix_logo.svg.license new file mode 100644 index 0000000..0c09d11 --- /dev/null +++ b/Guix_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 + +Copyright (C) 2015 Luis Felipe López Acevedo diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 0000000..137069b --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt new file mode 100644 index 0000000..13ca539 --- /dev/null +++ b/LICENSES/CC-BY-4.0.txt @@ -0,0 +1,156 @@ +Creative Commons Attribution 4.0 International + + Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + +Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. + +Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + + d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + + g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. + + i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + + 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. Downstream recipients. + + A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + + B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + +b. Other rights. + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified form), You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + + b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + + b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + + c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + + d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + + c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + + d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/LICENSES/CC-BY-SA-3.0.txt b/LICENSES/CC-BY-SA-3.0.txt new file mode 100644 index 0000000..604209a --- /dev/null +++ b/LICENSES/CC-BY-SA-3.0.txt @@ -0,0 +1,359 @@ +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR + DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY +BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS +CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND +CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. + c. "Creative Commons Compatible License" means a license that is listed + at https://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + d. to Distribute and Publicly Perform Adaptations. + e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that the + Licensor is a member of a collecting society that administers + voluntary licensing schemes, via that society, from any exercise + by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights in +other media and formats. Subject to Section 8(f), all rights not expressly +granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made +subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, +WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION +OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the + Work is licensed under the CCPL, Creative Commons does not authorize + the use by either party of the trademark "Creative Commons" or any + related trademark or logo of Creative Commons without the prior + written consent of Creative Commons. Any permitted use will be in + compliance with Creative Commons' then-current trademark usage + guidelines, as may be published on its website or otherwise made + available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/LICENSES/CC-BY-SA-4.0.txt b/LICENSES/CC-BY-SA-4.0.txt new file mode 100644 index 0000000..835a683 --- /dev/null +++ b/LICENSES/CC-BY-SA-4.0.txt @@ -0,0 +1,170 @@ +Creative Commons Attribution-ShareAlike 4.0 International + + Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + +Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. + +Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. + +Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. + +Creative Commons Attribution-ShareAlike 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + + e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + + i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. + + k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + + 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. Downstream recipients. + + A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + + B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. + + C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified form), You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + + b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. + + 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + + b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + + b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + + c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + + d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + + c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + + d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt new file mode 100644 index 0000000..17cb286 --- /dev/null +++ b/LICENSES/GPL-2.0-or-later.txt @@ -0,0 +1,117 @@ +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. + + c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice diff --git a/LICENSES/GPL-3.0-or-later.txt b/LICENSES/GPL-3.0-or-later.txt new file mode 100644 index 0000000..f6cdd22 --- /dev/null +++ b/LICENSES/GPL-3.0-or-later.txt @@ -0,0 +1,232 @@ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS + +0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>. + +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/LICENSES/LGPL-3.0-or-later.txt b/LICENSES/LGPL-3.0-or-later.txt new file mode 100644 index 0000000..513d1c0 --- /dev/null +++ b/LICENSES/LGPL-3.0-or-later.txt @@ -0,0 +1,304 @@ +GNU LESSER GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. + +0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. + +"The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". + +The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. +You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. +If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: + + a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. +The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license document. + +4. Combined Works. +You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: + + a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license document. + + c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. + + e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) + +5. Combined Libraries. +You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. + +6. Revised Versions of the GNU Lesser General Public License. +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. + +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS + +0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <http://www.gnu.org/licenses/>. + +The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/LICENSES/LicenseRef-binutils-debian-rules.txt b/LICENSES/LicenseRef-binutils-debian-rules.txt new file mode 100644 index 0000000..b128876 --- /dev/null +++ b/LICENSES/LicenseRef-binutils-debian-rules.txt @@ -0,0 +1,5 @@ +I hereby give you perpetual unlimited permission to copy, +modify and relicense this file, provided that you do not remove +my name from the file itself. (I assert my moral right of +paternity under the Copyright, Designs and Patents Act 1988.) +This file may have to be extensively modified diff --git a/LICENSES/LicenseRef-expat-composer.txt b/LICENSES/LicenseRef-expat-composer.txt new file mode 100644 index 0000000..62ecfd8 --- /dev/null +++ b/LICENSES/LicenseRef-expat-composer.txt @@ -0,0 +1,19 @@ +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/LICENSES/LicenseRef-expat-nodejs-debian-control.txt b/LICENSES/LicenseRef-expat-nodejs-debian-control.txt new file mode 100644 index 0000000..6398e54 --- /dev/null +++ b/LICENSES/LicenseRef-expat-nodejs-debian-control.txt @@ -0,0 +1,19 @@ +Copyright: 2009-2015 Jérémy Lal <kapouer@melix.org> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/LICENSES/LicenseRef-simple-logo-image.txt b/LICENSES/LicenseRef-simple-logo-image.txt new file mode 100644 index 0000000..3dc8387 --- /dev/null +++ b/LICENSES/LicenseRef-simple-logo-image.txt @@ -0,0 +1,4 @@ +This logo image consists only of simple geometric shapes or text. It does not +meet the threshold of originality needed for copyright protection, and is +therefore in the public domain. Although it is free of copyright restrictions, +this image may still be subject to other restrictions. diff --git a/LICENSES/LicenseRef-website-screenshot.txt b/LICENSES/LicenseRef-website-screenshot.txt new file mode 100644 index 0000000..a413289 --- /dev/null +++ b/LICENSES/LicenseRef-website-screenshot.txt @@ -0,0 +1,5 @@ +This image is a screenshot of a copyrighted web page, and the copyright for it +is most likely held by the owner of the website. It may also contain trademarked +logos, which are likely not affiliated with Wikipedia. It is believed that the +use of a limited number of such screenshots for identification and critical +commentary relating to the website in question qualifies as fair use. diff --git a/Logo-WIET-2021.png b/Logo-WIET-2021.png Binary files differnew file mode 100644 index 0000000..23802a7 --- /dev/null +++ b/Logo-WIET-2021.png diff --git a/Logo-WIET-2021.png.license b/Logo-WIET-2021.png.license new file mode 120000 index 0000000..8455c5a --- /dev/null +++ b/Logo-WIET-2021.png.license @@ -0,0 +1 @@ +agh.svg.license
\ No newline at end of file diff --git a/Loupe.svg b/Loupe.svg new file mode 100644 index 0000000..043fc8d --- /dev/null +++ b/Loupe.svg @@ -0,0 +1,317 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:ns1="http://sozi.baierouge.fr" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:dc="http://purl.org/dc/elements/1.1/" + id="svg2" + sodipodi:docname="Nouveau document 1" + viewBox="0 0 335.81 397.6" + version="1.1" + inkscape:version="0.48.2 r9819" + > + <defs + id="defs4" + > + <linearGradient + id="linearGradient3821" + > + <stop + id="stop3823" + style="stop-color:#dcdcdc" + offset="0" + /> + <stop + id="stop3835" + style="stop-color:#6a6a6a" + offset=".5" + /> + <stop + id="stop3825" + style="stop-color:#e4e4e4" + offset="1" + /> + </linearGradient + > + <linearGradient + id="linearGradient3907" + y2="467.12" + gradientUnits="userSpaceOnUse" + x2="353.89" + gradientTransform="translate(-557.66 15.868)" + y1="427.12" + x1="353.97" + inkscape:collect="always" + > + <stop + id="stop3813" + style="stop-color:#000000" + offset="0" + /> + <stop + id="stop3819" + style="stop-color:#393939" + offset=".5" + /> + <stop + id="stop3815" + style="stop-color:#000000" + offset="1" + /> + </linearGradient + > + <radialGradient + id="radialGradient3911" + gradientUnits="userSpaceOnUse" + cy="233.43" + cx="472.5" + r="109.48" + inkscape:collect="always" + > + <stop + id="stop3865" + style="stop-color:#c9c9c9;stop-opacity:.12057" + offset="0" + /> + <stop + id="stop3875" + style="stop-color:#dbe3e3;stop-opacity:.34118" + offset=".25" + /> + <stop + id="stop3871" + style="stop-color:#edfdfe;stop-opacity:.086275" + offset=".5" + /> + <stop + id="stop3873" + style="stop-color:#e4fcfd;stop-opacity:.12941" + offset=".75" + /> + <stop + id="stop3867" + style="stop-color:#929292;stop-opacity:.56028" + offset="1" + /> + </radialGradient + > + <linearGradient + id="linearGradient3939" + y2="457.83" + xlink:href="#linearGradient3821" + gradientUnits="userSpaceOnUse" + x2="477.88" + y1="436.4" + x1="478.38" + inkscape:collect="always" + /> + <linearGradient + id="linearGradient3941" + y2="462.36" + gradientUnits="userSpaceOnUse" + x2="485" + y1="432.36" + x1="485" + inkscape:collect="always" + > + <stop + id="stop3855" + style="stop-color:#dcdcdc" + offset="0" + /> + <stop + id="stop3857" + style="stop-color:#6a6a6a" + offset=".5" + /> + <stop + id="stop3859" + style="stop-color:#e4e4e4" + offset="1" + /> + </linearGradient + > + </defs + > + <sodipodi:namedview + id="base" + fit-margin-left="5" + inkscape:zoom="0.98994949" + borderopacity="1.0" + inkscape:current-layer="layer1" + inkscape:cx="132.58831" + inkscape:cy="174.44894" + inkscape:object-paths="false" + inkscape:window-maximized="1" + showgrid="false" + fit-margin-right="5" + inkscape:snap-midpoints="true" + inkscape:document-units="px" + bordercolor="#666666" + inkscape:window-x="66" + inkscape:window-y="24" + fit-margin-bottom="5" + inkscape:window-width="1614" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + pagecolor="#ffffff" + inkscape:window-height="1026" + fit-margin-top="5" + > + <inkscape:grid + id="grid3861" + enabled="true" + visible="true" + snapvisiblegridlinesonly="true" + type="xygrid" + empspacing="5" + /> + </sodipodi:namedview + > + <g + id="layer1" + inkscape:label="Calque 1" + inkscape:groupmode="layer" + transform="translate(-179.84 -121.04)" + > + <rect + id="rect3801" + style="stroke-linejoin:round;stroke:#000000;stroke-linecap:round;fill:url(#linearGradient3907)" + transform="rotate(-52.728)" + rx="7.8571" + ry="7.8571" + height="40" + width="175.71" + y="442.98" + x="-281.23" + /> + <g + id="g3837" + style="fill:url(#linearGradient3939)" + transform="matrix(.60560 -.79577 .79577 .60560 -325.09 453.38)" + > + <rect + id="rect3803" + style="stroke-linejoin:round;stroke:#000000;stroke-linecap:round;fill:url(#linearGradient3939)" + rx="7.8571" + ry="0" + height="26.429" + width="7.8571" + y="433.9" + x="452.86" + /> + <rect + id="rect3805" + style="stroke-linejoin:round;stroke:#000000;stroke-linecap:round;fill:url(#linearGradient3941)" + rx="2.8064" + ry="2.8064" + height="21.429" + width="42.857" + y="436.4" + x="460.71" + /> + <rect + id="rect3807" + style="stroke-linejoin:round;stroke:#000000;stroke-linecap:round;fill:url(#linearGradient3939)" + rx="7.8571" + ry="0" + height="26.429" + width="7.8571" + y="433.9" + x="503.25" + /> + <rect + id="rect3809" + style="stroke-linejoin:round;stroke:#000000;stroke-linecap:round;fill:url(#linearGradient3939)" + rx="7.8571" + ry="0" + height="18.106" + width="8.4492" + y="438.06" + x="511.11" + /> + </g + > + <path + id="path3031" + sodipodi:rx="107.5" + sodipodi:ry="107.5" + style="stroke:#000000;stroke-width:3.9574;fill:url(#radialGradient3911)" + sodipodi:type="arc" + d="m580 233.43c0 59.371-48.129 107.5-107.5 107.5s-107.5-48.129-107.5-107.5 48.129-107.5 107.5-107.5 107.5 48.129 107.5 107.5z" + transform="matrix(.57341 -.75347 .75347 .57341 -39.826 451.87)" + sodipodi:cy="233.43361" + sodipodi:cx="472.5" + /> + <text + id="text3917" + style="font-size:40px;font-family:Manga Temple;letter-spacing:0px;word-spacing:0px;line-height:125%;fill:#000000" + xml:space="preserve" + y="240.19954" + x="333.35034" + sodipodi:linespacing="125%" + > + <tspan + id="tspan3919" + sodipodi:role="line" + x="333.35034" + y="240.19954" + /> + </text + > + </g + > + <metadata + > + <rdf:RDF + > + <cc:Work + > + <dc:format + >image/svg+xml</dc:format + > + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/publicdomain/" + /> + <dc:publisher + > + <cc:Agent + rdf:about="http://openclipart.org/" + > + <dc:title + >Openclipart</dc:title + > + </cc:Agent + > + </dc:publisher + > + </cc:Work + > + <cc:License + rdf:about="http://creativecommons.org/licenses/publicdomain/" + > + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" + /> + </cc:License + > + </rdf:RDF + > + </metadata + > +</svg +> diff --git a/Loupe.svg.license b/Loupe.svg.license new file mode 100644 index 0000000..1757bf2 --- /dev/null +++ b/Loupe.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) spadassin diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b0e04f9 --- /dev/null +++ b/Makefile @@ -0,0 +1,168 @@ +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +AWK = awk +GNUPLOT = gnuplot +LATEXMK = latexmk +SED = sed + +DOC_RASTERS = \ + bookworm-stats-pkg-state.png \ + guix-pkg-repro-stats.png + +PRESENTATION_PLOTS = \ + dependee_counts.svg \ + status-counts.svg \ + tree-size-stats-no-bc.svg + +PRESENTATION_GRAPHICS = \ + $(PRESENTATION_PLOTS) \ + Logo-WIET-2021.png \ + agh_idub_pl_cmyk.pdf \ + build-process-overview.svg \ + boxes.svg \ + Guix_logo.svg \ + Debian-OpenLogo.svg \ + Archlinux-logo-standard-version.svg \ + NixOS_logo.svg \ + Npm-logo.svg \ + PyPI_logo.svg \ + Rust_programming_language_black_logo.svg \ + Apache_Maven_logo.svg \ + composer-seeklogo.svg \ + ecosystems-state.svg \ + construction-crane.svg + +DIAGRAMS = \ + build-process-overview.svg \ + rebuilds-no-contamination-diagram.svg \ + rebuilds-contamination-diagram.svg \ + rebuilds-contamination-1party.svg \ + rebuilds-inconclusive-diagram.svg + +PLOTS = \ + common_2019_2025_percent.svg \ + common_nondev_dev_percent.svg \ + dev_dependee_counts.svg \ + tree-size-stats.svg \ + unflattened-multiver-counts.svg \ + unflattened-multiver-counts-no-bc.svg \ + $(PRESENTATION_PLOTS) + +INCLUDES = \ + definitions-computed-from-results.tex + +PRESENTATION_OUTPUTS = \ + presentation-handouts.pdf \ + presentation-onlynotes.pdf \ + presentation-onlyslides.pdf \ + presentation-pympress.pdf \ + presentation-slidesandnotes.pdf + +OUTPUTS = \ + $(PRESENTATION_OUTPUTS) \ + doc.pdf + +all: $(OUTPUTS) +.POHONY: all + +agh_idub_pl_cmyk.pdf: agh_idub_pl_cmyk.pdf.nonpdf + rm -f $@ + ln -s $< $@ + +.SUFFIXES: .pdf .tex .svg .gnuplot + +common_nondev_dev_percent.svg: common_nondev_dev_percent.txt +common_2019_2025_percent.svg: common_2019_2025_percent.txt +dependee_counts.svg: dependencies.csv dependencies_2019.csv +dev_dependee_counts.svg: dependencies.csv devDependencies.csv + +status-counts.svg: status-counts.csv +tree-size-stats.svg: tree-size-stats.csv tree-sizes.csv +tree-size-stats-no-bc.svg: tree-size-stats-no-bc.csv tree-sizes.csv \ + tree-size-stats.gnuplot +unflattened-multiver-counts.svg: unflattened-multiver-counts.csv +unflattened-multiver-counts-no-bc.svg: unflattened-multiver-counts-no-bc.csv \ + unflattened-multiver-counts.gnuplot + +.gnuplot.svg: + $(GNUPLOT) $< + +definitions-computed-from-results.tex: compute-definitions-from-results.sh \ + experiment-results.csv status-counts.csv \ + tree-size-stats-no-bc.csv helper.sh + $(SHELL) $^ > $@ +tree-size-stats.csv: compute-tree-size-stats.sh experiment-results.csv helper.sh + $(SHELL) $^ > $@ +tree-size-stats-no-bc.csv: compute-tree-size-stats-no-bc.sh \ + experiment-results.csv compute-tree-size-stats.sh helper.sh + $(SHELL) $^ > $@ +tree-sizes.csv: compute-tree-sizes.sh experiment-results.csv helper.sh + $(SHELL) $^ > $@ + +status-counts.csv: compute-status-counts.awk experiment-results.csv + $(AWK) -f $^ > $@ | sort --numeric-sort > $@ + +unflattened-multiver-counts.csv: compute-unflattened-multiver-counts.sh \ + tree-sizes.csv helper.sh + $(SHELL) $^ > $@ | sort --numeric-sort > $@ +unflattened-multiver-counts-no-bc.csv: \ + compute-unflattened-multiver-counts-no-bc.sh tree-sizes.csv \ + compute-unflattened-multiver-counts.sh helper.sh + $(SHELL) $^ > $@ | sort --numeric-sort > $@ + +LISTING_INPUTS = \ + debian-control-excerpt.txt \ + debian-shc.patch \ + debian-rules-excerpt.txt \ + haskell-sth-buildinfo-excerpts.txt \ + guix-python-axolotl-package.scm \ + occurances-of-tslib.txt \ + guix-package-update-commits.txt \ + cpu-info.txt \ + npm-uninstall.txt \ + npm-ci.txt \ + npm-run-build.txt \ + npm-pack.txt \ + ssh-clone-fail.txt \ + eresolve-error.txt \ + newer-typescript-changes.diffoscope \ + warning-module-as-external.txt \ + removed-typescript-changes.diffoscope + +doc.pdf: doc.tex doc.bib $(DOC_RASTERS) $(DIAGRAMS) $(PLOTS) $(LISTING_INPUTS) \ + $(INCLUDES) copyright.txt + rm -rf $@ # Latexmk sees it as up-to-date despite, e.g., updated plots. + $(LATEXMK) -bibtex -pdf -lualatex -latexoption=-shell-escape $< + exiftool -@ copyright.txt $@ + +debian-rules-excerpt.txt: binutils-debian-rules + $(AWK) '\ + BEGIN {ldots = "(*\\itshape\\color{TEXTGRAY}{[...]}*)"} \ + /^stamps\/build[.]%:/{in_fragment = 1; print ldots; print ""} \ + {if (in_fragment) print} \ + /; do \\/{if (in_fragment) {print ldots; exit(0)}}' \ + $^ | $(SED) 's/\t/ /g' > $@ + +$(PRESENTATION_OUTPUTS): presentation.tex $(PRESENTATION_GRAPHICS) + rm -rf $@ # Latexmk sees it as up-to-date despite, e.g., updated plots. + DEST=$@; \ + $(LATEXMK) -pdf \ + -jobname="$$(printf %s "$$DEST" | $(SED) 's/[.]pdf$$//')" \ + -latexoption=-shell-escape \ + -use-make \ + $< + +TO_DELETE = \ + $(PLOTS) \ + definitions-computed-from-results.tex \ + tree-size-stats.csv tree-sizes.csv status-counts.csv \ + tree-size-stats.svg \ + debian-rules-excerpt.txt \ + svg-inkscape + +clean: + rm -rf $(TO_DELETE) + $(LATEXMK) -C +.PHONY: clean diff --git a/NixOS_logo.svg b/NixOS_logo.svg new file mode 100644 index 0000000..f58e58e --- /dev/null +++ b/NixOS_logo.svg @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="435.58978mm" height="136.68491mm" viewBox="0 0 1543.4284 484.31659" id="svg2" version="1.1" inkscape:version="0.92.0 r15299" sodipodi:docname="nixos-hex.svg"> + <defs id="defs4"> + <linearGradient inkscape:collect="always" id="linearGradient5562"> + <stop style="stop-color:#699ad7;stop-opacity:1" offset="0" id="stop5564"/> + <stop id="stop5566" offset="0.24345198" style="stop-color:#7eb1dd;stop-opacity:1"/> + <stop style="stop-color:#7ebae4;stop-opacity:1" offset="1" id="stop5568"/> + </linearGradient> + <linearGradient inkscape:collect="always" id="linearGradient5053"> + <stop style="stop-color:#415e9a;stop-opacity:1" offset="0" id="stop5055"/> + <stop id="stop5057" offset="0.23168644" style="stop-color:#4a6baf;stop-opacity:1"/> + <stop style="stop-color:#5277c3;stop-opacity:1" offset="1" id="stop5059"/> + </linearGradient> + <linearGradient id="linearGradient5960" inkscape:collect="always"> + <stop id="stop5962" offset="0" style="stop-color:#637ddf;stop-opacity:1"/> + <stop style="stop-color:#649afa;stop-opacity:1" offset="0.23168644" id="stop5964"/> + <stop id="stop5966" offset="1" style="stop-color:#719efa;stop-opacity:1"/> + </linearGradient> + <linearGradient y2="515.97058" x2="282.26105" y1="338.62445" x1="213.95642" gradientTransform="translate(983.36076,601.38885)" gradientUnits="userSpaceOnUse" id="linearGradient5855" xlink:href="#linearGradient5960" inkscape:collect="always"/> + <linearGradient inkscape:collect="always" xlink:href="#linearGradient5562" id="linearGradient5384" gradientUnits="userSpaceOnUse" gradientTransform="translate(70.650339,-1055.1511)" x1="200.59668" y1="351.41116" x2="290.08701" y2="506.18814"/> + <linearGradient inkscape:collect="always" xlink:href="#linearGradient5053" id="linearGradient5386" gradientUnits="userSpaceOnUse" gradientTransform="translate(864.69589,-1491.3405)" x1="-584.19934" y1="782.33563" x2="-496.29703" y2="937.71399"/> + </defs> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.34760742" inkscape:cx="803.54996" inkscape:cy="186.45699" inkscape:document-units="px" inkscape:current-layer="g5329" showgrid="false" inkscape:window-width="1366" inkscape:window-height="706" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:snap-global="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0"/> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <g inkscape:groupmode="layer" id="layer7" inkscape:label="bg" style="display:none"> + <rect transform="translate(-132.5822,958.04022)" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect5389" width="1543.4283" height="483.7439" x="132.5822" y="-957.77832"/> + </g> + <g inkscape:groupmode="layer" id="layer5" inkscape:label="guide" style="display:none;opacity:0.51599995" transform="translate(-132.5822,958.04022)"> + <rect y="-957.77832" x="132.5822" height="483.7439" width="1543.4283" id="rect5350" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d4d4d4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/> + <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect5346" width="1496.443" height="435.68069" x="155.77646" y="-933.38721" inkscape:export-xdpi="17.971878" inkscape:export-ydpi="17.971878"/> + <rect y="-851.65918" x="159.02695" height="272.58423" width="1492.5731" id="rect5348" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#848484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/> + </g> + <g inkscape:groupmode="layer" id="layer6" inkscape:label="logo-guide" style="display:none" transform="translate(-132.5822,958.04022)"> + <rect y="-958.02759" x="132.65129" height="484.30399" width="550.41602" id="rect5379" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5c201e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nix-wiki.png" inkscape:export-xdpi="22.07" inkscape:export-ydpi="22.07"/> + <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c24a46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect5372" width="501.94415" height="434.30405" x="156.12303" y="-933.02759" inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nixos-logo-only-hires-print.png" inkscape:export-xdpi="212.2" inkscape:export-ydpi="212.2"/> + <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d98d8a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect5381" width="24.939611" height="24.939611" x="658.02826" y="-958.04022"/> + </g> + <g inkscape:label="print-logo" inkscape:groupmode="layer" id="layer1" style="display:inline" sodipodi:insensitive="true" transform="translate(-132.5822,958.04022)"> + <path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z" id="path4861" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/> + <path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z" id="use4863" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/> + <path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z" id="use4865" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/> + <path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z" id="use4867" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/> + <path sodipodi:nodetypes="cccccccccc" inkscape:connector-curvature="0" id="path4873" d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/> + <path sodipodi:nodetypes="cccccccccc" inkscape:connector-curvature="0" id="use4875" d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/> + <path sodipodi:nodetypes="cccccccccc" inkscape:connector-curvature="0" id="use4877" d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"/> + <g id="layer2" inkscape:label="guides" style="display:none" transform="translate(72.039038,-1799.4476)"> + <path d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z" inkscape:randomized="0" inkscape:rounded="0" inkscape:flatsided="true" sodipodi:arg2="1.5707963" sodipodi:arg1="1.0471976" sodipodi:r2="217.25499" sodipodi:r1="250.86446" sodipodi:cy="377.47382" sodipodi:cx="335.17407" sodipodi:sides="6" id="path6032" style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.23600003;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" sodipodi:type="star"/> + <path transform="translate(0,-308.26772)" sodipodi:type="star" style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="path5875" sodipodi:sides="6" sodipodi:cx="335.17407" sodipodi:cy="685.74158" sodipodi:r1="100.83495" sodipodi:r2="87.32563" sodipodi:arg1="1.0471976" sodipodi:arg2="1.5707963" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 385.59154,773.06721 -100.83495,0 -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z"/> + <path transform="translate(0,-308.26772)" sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path5851" d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z" style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/> + <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.41499999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c53a3a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect5884" width="48.834862" height="226.22897" x="-34.74221" y="446.17056" transform="matrix(0.8660254,-0.5,0.5,0.8660254,0,0)"/> + <path transform="translate(0,-308.26772)" sodipodi:type="star" style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.50899999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="path3428" sodipodi:sides="6" sodipodi:cx="223.93674" sodipodi:cy="878.63831" sodipodi:r1="28.048939" sodipodi:r2="24.291094" sodipodi:arg1="0" sodipodi:arg2="0.52359878" inkscape:flatsided="true" inkscape:rounded="0" inkscape:randomized="0" d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z"/> + <use x="0" y="0" xlink:href="#rect5884" id="use4252" transform="matrix(0.5,0.8660254,-0.8660254,0.5,558.02636,12.372992)" width="100%" height="100%"/> + <rect style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:0.6507937;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" id="rect4254" width="5.3947482" height="115.12564" x="545.71014" y="467.07007" transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,-308.26772)"/> + </g> + </g> + <g inkscape:groupmode="layer" id="layer3" inkscape:label="gradient-logo" style="display:inline;opacity:1" sodipodi:insensitive="true" transform="translate(-132.5822,958.04022)"> + <path sodipodi:nodetypes="cccccccccc" inkscape:connector-curvature="0" id="path3336-6" d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z" style="opacity:1;fill:url(#linearGradient5384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/> + <use height="100%" width="100%" transform="rotate(60,407.11155,-715.78724)" id="use3439-6" inkscape:transform-center-y="151.59082" inkscape:transform-center-x="124.43045" xlink:href="#path3336-6" y="0" x="0"/> + <use height="100%" width="100%" transform="rotate(-60,407.31177,-715.70016)" id="use3445-0" inkscape:transform-center-y="75.573958" inkscape:transform-center-x="-168.20651" xlink:href="#path3336-6" y="0" x="0"/> + <use height="100%" width="100%" transform="rotate(180,407.41868,-715.7565)" id="use3449-5" inkscape:transform-center-y="-139.94592" inkscape:transform-center-x="59.669705" xlink:href="#path3336-6" y="0" x="0"/> + <path style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z" id="path4260-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/> + <use height="100%" width="100%" transform="rotate(120,407.33916,-716.08356)" id="use4354-5" xlink:href="#path4260-0" y="0" x="0" style="display:inline"/> + <use height="100%" width="100%" transform="rotate(-120,407.28823,-715.86995)" id="use4362-2" xlink:href="#path4260-0" y="0" x="0" style="display:inline"/> + </g> + <g style="display:inline" inkscape:label="text-vegur" id="g5329" inkscape:groupmode="layer" transform="translate(-132.5822,958.04022)"> + <g aria-label="Nix" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:395.09683228px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text5407"> + <path d="m 969.15319,-847.11833 h -30.81755 v 139.86428 c 0,19.75484 0.79019,50.96749 1.97548,85.73601 h -1.18529 c -15.40877,-28.84207 -32.79303,-56.49884 -45.04104,-75.46349 l -96.79872,-150.1368 h -42.27536 v 267.87565 h 30.81755 v -139.86427 c 0,-19.75485 -0.79019,-56.89395 -1.97548,-91.26737 h 1.18529 c 22.91561,39.90478 36.34891,62.0302 48.99201,80.99485 l 96.79872,150.13679 h 38.32439 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur" id="path4683"/> + <path d="m 1027.8251,-579.24268 h 33.1881 v -191.22686 h -33.1881 z m 16.594,-219.27874 c 11.4578,0 20.5451,-9.08722 20.5451,-20.54503 0,-11.45781 -9.0873,-20.54504 -20.5451,-20.54504 -11.4578,0 -20.545,9.08723 -20.545,20.54504 0,11.45781 9.0872,20.54503 20.545,20.54503 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur" id="path4685"/> + <path d="m 1267.7785,-770.46954 h -37.9293 l -46.6214,70.32723 h -1.1853 l -45.0411,-70.32723 h -41.09 l 68.3517,93.24285 v 1.18529 l -70.7223,96.79872 h 37.9293 l 49.7822,-75.85859 h 1.1853 l 49.7822,75.85859 h 41.09 l -72.3027,-98.37911 v -1.18529 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur" id="path4687"/> + </g> + <g aria-label="O" transform="scale(0.95067318,1.0518862)" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:367.48727417px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text5356"> + <path d="m 1468.5915,-800.79725 c -66.1477,0 -120.5358,48.14083 -120.5358,128.25306 0,80.11223 54.3881,128.25306 120.5358,128.25306 66.1477,0 120.5359,-48.14083 120.5359,-128.25306 0,-80.11223 -54.3882,-128.25306 -120.5359,-128.25306 z m 0,24.98914 c 49.2433,0 86.727,36.74872 86.727,103.26392 0,66.5152 -37.4837,103.26392 -86.727,103.26392 -49.2433,0 -86.727,-36.74872 -86.727,-103.26392 0,-66.5152 37.4837,-103.26392 86.727,-103.26392 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur" id="path4680"/> + </g> + <g aria-label="S" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:386.55480957px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="text5364"> + <path d="m 1523.761,-773.88643 c 0,37.10927 19.3277,57.21012 64.1681,75.37819 34.4034,13.91598 48.3193,26.28573 48.3193,51.79835 0,30.92438 -25.126,46.38657 -58.3697,46.38657 -17.395,0 -37.1093,-2.70588 -58.7564,-10.05042 l -3.479,26.67228 c 18.9412,6.95799 39.8152,9.66387 60.6891,9.66387 51.7984,0 95.0925,-26.28573 95.0925,-79.24374 0,-36.7227 -22.4202,-54.50422 -67.6471,-72.6723 -30.1512,-11.9832 -44.8403,-24.73951 -44.8403,-51.41179 0,-25.89917 22.4202,-40.2017 50.6387,-40.2017 16.6218,0 34.7899,4.2521 47.5462,9.27732 l 3.479,-26.28573 c -14.6891,-6.18488 -32.8572,-9.27732 -52.958,-9.27732 -47.5463,0 -83.8824,27.4454 -83.8824,69.96642 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur" id="path4677"/> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/NixOS_logo.svg.license b/NixOS_logo.svg.license new file mode 100644 index 0000000..7276c1f --- /dev/null +++ b/NixOS_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC-BY-4.0 + +Copyright (C) 2016 Tim Cuthbertson diff --git a/Npm-logo.svg b/Npm-logo.svg new file mode 100644 index 0000000..13c7900 --- /dev/null +++ b/Npm-logo.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="540px" height="210px" viewBox="0 0 18 7">
+<path fill="#CB3837" d="M0,0h18v6H9v1H5V6H0V0z M1,5h2V2h1v3h1V1H1V5z M6,1v5h2V5h2V1H6z M8,2h1v2H8V2z M11,1v4h2V2h1v3h1V2h1v3h1V1H11z"/>
+<polygon fill="#FFFFFF" points="1,5 3,5 3,2 4,2 4,5 5,5 5,1 1,1 "/>
+<path fill="#FFFFFF" d="M6,1v5h2V5h2V1H6z M9,4H8V2h1V4z"/>
+<polygon fill="#FFFFFF" points="11,1 11,5 13,5 13,2 14,2 14,5 15,5 15,2 16,2 16,5 17,5 17,1 "/>
+</svg>
diff --git a/Npm-logo.svg.license b/Npm-logo.svg.license new file mode 100644 index 0000000..8087750 --- /dev/null +++ b/Npm-logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-simple-logo-image + +Copyright (C) npm, Inc. diff --git a/PyPI_logo.svg b/PyPI_logo.svg new file mode 100644 index 0000000..e53853c --- /dev/null +++ b/PyPI_logo.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="247.808" height="185.85" viewBox="0 0 232.31983 174.23466"><path d="M15.801 114.616l15.555 5.662 15.786-5.746-15.555-5.662zm15.623-12.783l15.556 5.662 15.785-5.746-15.555-5.662z" fill="#f7f7f4" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M31.424 101.833l15.556 5.662v18.282l-15.556-5.661z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M.178 138.76l15.555 5.663 15.786-5.746-15.556-5.662z" fill="#f7f7f4" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M.178 138.76l15.555 5.663v18.282L.178 157.044z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M.178 112.76l15.555 5.663 15.786-5.746-15.556-5.662z" fill="#f7f7f4" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M15.733 118.423v18.282l15.786-5.745v-18.283z" fill="#fff" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M.178 112.76l15.555 5.663v18.282L.178 131.044z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M15.985 97.209l-.025.031a2.783 2.783 0 0 0-2.758 2.781 2.783 2.783 0 0 0 .053.532L1.51 114.937l7.647 9.364-3.87-9.364 9.985-12.228a2.783 2.783 0 0 0 .715.096 2.783 2.783 0 0 0 .715-.094l5.314 6.508 5.373 1.955-8.672-10.621a2.783 2.783 0 0 0 .051-.531 2.783 2.783 0 0 0-2.756-2.782l-.025-.03zm2.135-7.289a2.136 2.136 0 1 0-4.27 0v3.265a2.136 2.136 0 0 0 4.27 0V89.92zm-.98-.002v3.265a1.155 1.155 0 0 1-2.31 0v-3.265a1.154 1.154 0 1 1 2.31 0zm.98-11.211a2.136 2.136 0 1 0-4.27 0v3.266a2.136 2.136 0 0 0 4.27 0v-3.266zm-.98-.002v3.266a1.155 1.155 0 0 1-2.31 0v-3.266a1.154 1.154 0 1 1 2.31 0z" fill="#646464"/><path d="M16.505 82.697v6.498a.518.518 0 1 1-1.04 0v-6.498a.518.518 0 1 1 1.04 0zm0 11.213v6.498a.518.518 0 1 1-1.04 0V93.91a.518.518 0 1 1 1.04 0zm0-22.463v6.498a.518.518 0 1 1-1.04 0v-6.498a.518.518 0 1 1 1.04 0z" fill="#646464"/><path d="M15.8 144.442l15.556 5.662v18.283l-15.555-5.662z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M15.8 125.978l15.556 5.662 15.786-5.746-15.555-5.661z" fill="#f7f7f4" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M15.8 125.978l15.556 5.662v18.283l-15.555-5.662z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M93.85 138.741v18.283l15.785-5.745v-18.283z" fill="#fff" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M78.226 144.423v18.282l15.786-5.745v-18.283z" fill="#ffd242" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M91.151 148.88a2.617 3.737 35 0 1-3.032 4.33 2.617 3.737 35 0 1-3.031-2.122 2.617 3.737 35 0 1 3.031-4.33 2.617 3.737 35 0 1 3.032 2.123z" fill="#fff"/><path d="M62.603 150.104v18.283l15.786-5.746v-18.283z" fill="#ffd242" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M46.98 155.785v18.283l15.785-5.746V150.04z" fill="#fff" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M31.424 150.123l15.556 5.662v18.283l-15.556-5.662z" fill="#efeeea" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M93.85 120.278v18.282l15.785-5.745v-18.283z" fill="#ffd242" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M78.294 96.152l15.556 5.662 15.785-5.746-15.555-5.662z" fill="#ffc91d" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M93.85 101.814v18.282l15.785-5.745V96.068zm-15.624 24.145v18.282l15.786-5.745v-18.283z" fill="#ffd242" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M78.226 107.495v18.282l15.786-5.745v-18.283z" fill="#3775a9" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M62.671 83.369l15.555 5.662 15.786-5.746-15.555-5.661z" fill="#2f6491" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M78.226 89.03v18.283l15.786-5.745V83.285z" fill="#3775a9" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M62.603 131.64v18.283l15.786-5.746v-18.283z" fill="#ffd242" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M62.603 113.176v18.283l15.786-5.746V107.43zM46.98 137.321v18.283l15.785-5.746v-18.282z" fill="#3775a9" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M31.424 131.66l15.556 5.661v18.283l-15.556-5.662zm0-18.465l15.556 5.662 15.785-5.745-15.555-5.662z" fill="#2f6491" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M46.98 118.857v18.283l15.785-5.746v-18.282z" fill="#3775a9" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M31.424 113.195l15.556 5.662v18.283l-15.556-5.662zM47.048 89.05l15.555 5.662 15.786-5.746-15.556-5.661z" fill="#2f6491" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M62.603 94.712v18.283l15.786-5.746V88.966z" fill="#3775a9" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M47.048 89.05l15.555 5.662v18.283l-15.555-5.662z" fill="#2f6491" stroke="#ccc" stroke-width=".355" stroke-linejoin="bevel"/><path d="M71.528 100.584a2.617 3.737 35 0 1-3.032 4.33 2.617 3.737 35 0 1-3.032-2.123 2.617 3.737 35 0 1 3.032-4.33 2.617 3.737 35 0 1 3.032 2.123z" fill="#fff"/><path d="M36.661 38.858c0-9.645-2.75-14.597-8.25-14.868a15.497 15.497 0 0 0-6.405 1.052c-1.659.594-2.776 1.182-3.363 1.776v23.021c3.518 2.208 6.643 3.234 9.367 3.073 5.765-.38 8.651-5.061 8.651-14.054zm6.785.4c0 4.9-1.15 8.967-3.46 12.201-2.576 3.66-6.146 5.546-10.71 5.65-3.441.11-6.986-.97-10.633-3.229v20.924l-5.9-2.105V26.256c.968-1.188 2.213-2.208 3.724-3.073 3.512-2.047 7.78-3.099 12.802-3.15l.084.083c4.59-.058 8.128 1.827 10.613 5.65 2.318 3.505 3.48 7.998 3.48 13.492zM79.508 52.99c0 6.572-.658 11.123-1.975 13.654-1.324 2.53-3.841 4.55-7.56 6.055-3.015 1.188-6.275 1.834-9.774 1.943l-.975-3.718c3.557-.484 6.062-.969 7.515-1.453 2.86-.968 4.822-2.453 5.9-4.441.865-1.62 1.292-4.713 1.292-9.29v-1.537a30.317 30.317 0 0 1-12.686 2.744c-2.905 0-5.468-.91-7.676-2.744-2.48-1.995-3.719-4.525-3.719-7.592V22.053l5.9-2.02v24.719c0 2.64.853 4.674 2.557 6.1 1.705 1.427 3.913 2.112 6.618 2.06 2.705-.058 5.603-1.104 8.683-3.15V20.923h5.9V52.99zm23.035 3.796c-.704.058-1.35.083-1.943.083-3.338 0-5.94-.794-7.8-2.388-1.852-1.595-2.782-3.796-2.782-6.605v-23.24h-4.04v-3.713h4.04v-9.858l5.895-2.098v11.956h6.63v3.712h-6.63v23.08c0 2.214.594 3.783 1.781 4.7 1.02.755 2.64 1.188 4.849 1.297v3.073zm35.727-.485h-5.901V33.525c0-2.317-.543-4.312-1.62-5.978-1.247-1.885-2.977-2.828-5.198-2.828-2.705 0-6.087 1.427-10.148 4.28v27.302h-5.9V1.86l5.9-1.859v24.797c3.77-2.744 7.889-4.119 12.363-4.119 3.124 0 5.655 1.052 7.592 3.15 1.943 2.099 2.911 4.713 2.911 7.838V56.3zm31.362-18.373c0-3.706-.704-6.766-2.105-9.187-1.665-2.95-4.254-4.506-7.753-4.667-6.469.374-9.697 5.01-9.697 13.893 0 4.073.672 7.476 2.027 10.206 1.73 3.48 4.326 5.197 7.786 5.14 6.495-.052 9.742-5.178 9.742-15.385zm6.462.039c0 5.274-1.35 9.664-4.041 13.17-2.963 3.925-7.056 5.894-12.28 5.894-5.177 0-9.212-1.97-12.123-5.894-2.64-3.506-3.958-7.896-3.958-13.17 0-4.958 1.427-9.129 4.28-12.525 3.015-3.602 6.98-5.41 11.88-5.41s8.889 1.808 11.962 5.41c2.853 3.396 4.28 7.567 4.28 12.525zm33.829 18.334h-5.9V32.234c0-2.64-.795-4.7-2.383-6.185-1.588-1.478-3.706-2.195-6.346-2.137-2.802.052-5.468.969-7.999 2.744v29.645h-5.9V25.927c3.395-2.473 6.52-4.087 9.373-4.842 2.692-.704 5.068-1.053 7.115-1.053 1.4 0 2.717.136 3.957.407 2.318.536 4.203 1.53 5.655 2.99 1.62 1.613 2.428 3.55 2.428 5.816V56.3z" fill="#646464"/><path style="line-height:125%" d="M221.391 14.428h1.014V8.07h2.402v-.758h-5.817v.758h2.401v6.358m4.315 0h.866V8.621l1.88 5.807h.964l1.959-5.787v5.787h.945V7.312h-1.25l-2.141 6.097-1.826-6.097h-1.397v7.116" font-weight="400" font-size="15.164" font-family="Bitstream Vera Sans" fill="#646464"/><path style="line-height:125%;-inkscape-font-specification:'Source Sans Pro Semi-Bold'" d="M120.607 82.731h2.988v-6.183h2.679c3.632 0 6.415-1.726 6.415-5.461 0-3.916-2.731-5.204-6.415-5.204h-5.667v16.848zm2.988-8.578v-5.874h2.447c2.447 0 3.71.696 3.71 2.808 0 2.06-1.211 3.066-3.71 3.066h-2.447zm10.502 5.177c0 2.216 1.546 3.71 3.762 3.71 1.494 0 2.782-.747 3.915-1.7h.077l.232 1.391h2.422v-7.496c0-3.53-1.546-5.462-4.714-5.462-2.01 0-3.787.773-5.178 1.649l1.082 1.984c1.107-.67 2.292-1.237 3.555-1.237 1.7 0 2.266 1.133 2.292 2.473-5.178.567-7.445 1.984-7.445 4.689zm2.886-.231c0-1.263 1.133-2.164 4.56-2.602v2.834c-.928.875-1.727 1.39-2.757 1.39-1.056 0-1.803-.489-1.803-1.622zm10.315-2.679c0 4.199 2.654 6.62 6.106 6.62 1.442 0 2.962-.567 4.147-1.623l-1.236-1.88c-.696.566-1.572 1.082-2.602 1.082-1.984 0-3.375-1.675-3.375-4.2 0-2.55 1.417-4.224 3.452-4.224.799 0 1.469.335 2.138.927l1.417-1.88c-.85-.825-2.086-1.469-3.71-1.469-3.374 0-6.337 2.422-6.337 6.647zm12.749 6.311h2.911v-3.22l1.984-2.267 3.246 5.487h3.22l-4.766-7.496 4.328-5.153h-3.246l-4.688 5.822h-.078v-11.36h-2.91V82.73zm12.642-3.401c0 2.216 1.546 3.71 3.761 3.71 1.494 0 2.782-.747 3.916-1.7h.077l.232 1.391h2.421v-7.496c0-3.53-1.545-5.462-4.714-5.462-2.01 0-3.787.773-5.178 1.649l1.082 1.984c1.108-.67 2.293-1.237 3.555-1.237 1.7 0 2.267 1.133 2.293 2.473-5.178.567-7.445 1.984-7.445 4.689zm2.885-.231c0-1.263 1.134-2.164 4.56-2.602v2.834c-.928.875-1.726 1.39-2.757 1.39-1.056 0-1.803-.489-1.803-1.622zm12.763 5.487c0-.593.31-1.16.98-1.675.489.13 1.03.18 1.725.18h1.726c1.443 0 2.241.284 2.241 1.263 0 1.082-1.39 2.035-3.426 2.035-2.01 0-3.246-.67-3.246-1.803zm-2.473.438c0 2.215 2.241 3.297 5.255 3.297 4.122 0 6.75-1.958 6.75-4.456 0-2.19-1.597-3.118-4.637-3.118h-2.241c-1.546 0-2.061-.438-2.061-1.159 0-.567.232-.876.618-1.21a4.665 4.665 0 0 0 1.726.334c2.68 0 4.792-1.494 4.792-4.302 0-.876-.31-1.649-.722-2.138h2.319v-2.19h-4.534a5.7 5.7 0 0 0-1.855-.309c-2.653 0-4.998 1.623-4.998 4.534 0 1.494.799 2.705 1.649 3.35v.102c-.721.515-1.391 1.365-1.391 2.344 0 1.03.49 1.7 1.133 2.113v.103c-1.159.721-1.803 1.649-1.803 2.705zm5.41-8.167c-1.237 0-2.215-.927-2.215-2.55 0-1.597.978-2.499 2.215-2.499 1.236 0 2.19.928 2.19 2.5 0 1.622-.98 2.55-2.19 2.55zm7.597-.437c0 4.173 2.73 6.62 6.234 6.62 1.598 0 3.117-.567 4.328-1.365l-1.004-1.855c-.928.593-1.855.927-2.937.927-2.035 0-3.478-1.288-3.736-3.58h8.038c.077-.31.129-.825.129-1.391 0-3.53-1.804-6.003-5.23-6.003-2.962 0-5.822 2.525-5.822 6.647zm2.86-1.134c.257-2.112 1.545-3.22 3.04-3.22 1.725 0 2.576 1.21 2.576 3.22h-5.616zm-81.124 33.721h2.988V92.16h-2.988v16.848zm6.987 0h2.963v-8.836c1.056-1.03 1.777-1.571 2.885-1.571 1.391 0 1.984.772 1.984 2.86v7.547h2.962v-7.934c0-3.195-1.185-5.024-3.89-5.024-1.726 0-3.014.902-4.147 2.01h-.103l-.206-1.7h-2.448v12.648zm13.668-6.311c0 4.173 2.035 6.62 5.204 6.62 1.365 0 2.653-.747 3.58-1.674h.104l.206 1.365h2.447V90.82h-2.963v4.585l.103 2.035c-.979-.85-1.88-1.39-3.323-1.39-2.756 0-5.358 2.524-5.358 6.646zm3.065-.026c0-2.654 1.314-4.174 2.937-4.174.85 0 1.7.284 2.576 1.057v5.899c-.85.979-1.674 1.417-2.653 1.417-1.83 0-2.86-1.469-2.86-4.2zm11.424.026c0 4.173 2.731 6.62 6.234 6.62 1.598 0 3.118-.567 4.328-1.365l-1.004-1.855c-.928.593-1.855.927-2.937.927-2.035 0-3.478-1.288-3.735-3.58h8.037c.077-.31.129-.825.129-1.391 0-3.53-1.803-6.003-5.23-6.003-2.962 0-5.822 2.525-5.822 6.647zm2.86-1.134c.257-2.112 1.545-3.22 3.04-3.22 1.726 0 2.576 1.21 2.576 3.22h-5.616zm9.225 7.445h3.091l1.34-2.499c.36-.773.747-1.52 1.107-2.241h.103c.438.721.876 1.494 1.288 2.241l1.546 2.5h3.195l-4.02-6.26 3.736-6.39h-3.065l-1.211 2.396c-.31.696-.67 1.443-.98 2.138h-.102a87.248 87.248 0 0 1-1.16-2.138l-1.416-2.396h-3.195l3.761 6.054-4.018 6.595z" font-weight="600" font-family="Source Sans Pro" letter-spacing="0" word-spacing="0" fill="#646464"/></svg>
\ No newline at end of file diff --git a/PyPI_logo.svg.license b/PyPI_logo.svg.license new file mode 100644 index 0000000..33fcae7 --- /dev/null +++ b/PyPI_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: GPL-2.0-or-later + +Copyright (C) Python Software Foundation diff --git a/README.md b/README.md new file mode 100644 index 0000000..aa87a80 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +These are the sources of my Master's thesis in Cybersecurity, which I +successfully defended on 2025-09-18. The thesis, titled _"Software Provenance +Assurance through Reproducible Builds"_, addresses the problem of marrying +reproducible builds with the npm ecosystem. You can view the compiled thesis +pdf at [^1]. + +[^1]: https://koszko.org/sl/obrona-2025-09-18/doc.pdf + +## Copying + +This repository is compliant with version 3.3 of the REUSE Specification. +Please consult the SPDF identifiers to learn the copying terms of individual +files here. diff --git a/README.md.license b/README.md.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/README.md.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/Rust_programming_language_black_logo.svg b/Rust_programming_language_black_logo.svg new file mode 100644 index 0000000..dd830c2 --- /dev/null +++ b/Rust_programming_language_black_logo.svg @@ -0,0 +1,57 @@ +<svg version="1.1" height="106" width="106" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="logo" transform="translate(53, 53)"> + <path id="r" transform="translate(0.5, 0.5)" stroke="black" stroke-width="1" stroke-linejoin="round" d=" M -9,-15 H 4 C 12,-15 12,-7 4,-7 H -9 Z M -40,22 H 0 V 11 H -9 V 3 H 1 C 12,3 6,22 15,22 H 40 V 3 H 34 V 5 C 34,13 25,12 24,7 C 23,2 19,-2 18,-2 C 33,-10 24,-26 12,-26 H -35 V -15 H -25 V 11 H -40 Z"/> + <g id="gear" mask="url(#holes)"> + <circle r="43" fill="none" stroke="black" stroke-width="9"/> + <g id="cogs"> + <polygon id="cog" stroke="black" stroke-width="3" stroke-linejoin="round" points="46,3 51,0 46,-3"/> + <use xlink:href="#cog" transform="rotate(11.25)"/> + <use xlink:href="#cog" transform="rotate(22.50)"/> + <use xlink:href="#cog" transform="rotate(33.75)"/> + <use xlink:href="#cog" transform="rotate(45.00)"/> + <use xlink:href="#cog" transform="rotate(56.25)"/> + <use xlink:href="#cog" transform="rotate(67.50)"/> + <use xlink:href="#cog" transform="rotate(78.75)"/> + <use xlink:href="#cog" transform="rotate(90.00)"/> + <use xlink:href="#cog" transform="rotate(101.25)"/> + <use xlink:href="#cog" transform="rotate(112.50)"/> + <use xlink:href="#cog" transform="rotate(123.75)"/> + <use xlink:href="#cog" transform="rotate(135.00)"/> + <use xlink:href="#cog" transform="rotate(146.25)"/> + <use xlink:href="#cog" transform="rotate(157.50)"/> + <use xlink:href="#cog" transform="rotate(168.75)"/> + <use xlink:href="#cog" transform="rotate(180.00)"/> + <use xlink:href="#cog" transform="rotate(191.25)"/> + <use xlink:href="#cog" transform="rotate(202.50)"/> + <use xlink:href="#cog" transform="rotate(213.75)"/> + <use xlink:href="#cog" transform="rotate(225.00)"/> + <use xlink:href="#cog" transform="rotate(236.25)"/> + <use xlink:href="#cog" transform="rotate(247.50)"/> + <use xlink:href="#cog" transform="rotate(258.75)"/> + <use xlink:href="#cog" transform="rotate(270.00)"/> + <use xlink:href="#cog" transform="rotate(281.25)"/> + <use xlink:href="#cog" transform="rotate(292.50)"/> + <use xlink:href="#cog" transform="rotate(303.75)"/> + <use xlink:href="#cog" transform="rotate(315.00)"/> + <use xlink:href="#cog" transform="rotate(326.25)"/> + <use xlink:href="#cog" transform="rotate(337.50)"/> + <use xlink:href="#cog" transform="rotate(348.75)"/> + </g> + <g id="mounts"> + <polygon id="mount" stroke="black" stroke-width="6" stroke-linejoin="round" points="-7,-42 0,-35 7,-42"/> + <use xlink:href="#mount" transform="rotate(72)"/> + <use xlink:href="#mount" transform="rotate(144)"/> + <use xlink:href="#mount" transform="rotate(216)"/> + <use xlink:href="#mount" transform="rotate(288)"/> + </g> + </g> + <mask id="holes"> + <rect x="-60" y="-60" width="120" height="120" fill="white"/> + <circle id="hole" cy="-40" r="3"/> + <use xlink:href="#hole" transform="rotate(72)"/> + <use xlink:href="#hole" transform="rotate(144)"/> + <use xlink:href="#hole" transform="rotate(216)"/> + <use xlink:href="#hole" transform="rotate(288)"/> + </mask> +</g> +</svg>
\ No newline at end of file diff --git a/Rust_programming_language_black_logo.svg.license b/Rust_programming_language_black_logo.svg.license new file mode 100644 index 0000000..fca58ca --- /dev/null +++ b/Rust_programming_language_black_logo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC-BY-4.0 + +Copyright (C) Rust Foundation @@ -0,0 +1,261 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + version="1.1" + id="svg1" + width="283.48026" + height="550.28949" + viewBox="0 0 283.48025 550.28949" + sodipodi:docname="agh.svg" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + 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"> + <defs + id="defs1"> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-145.1323,-115.8029)" + id="path2" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath4"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-226.05031,-99.341)" + id="path4" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath6"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-287.46531,-145.08031)" + id="path6" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath8"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-262.4146,-195.0061)" + id="path8" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath10"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-273.75151,-195.0061)" + id="path10" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath12"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-253.7017,-195.0061)" + id="path12" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath14"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-185.7427,-501.71211)" + id="path14" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath16"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-197.0781,-501.71211)" + id="path16" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath18"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-177.0298,-501.71211)" + id="path18" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath20"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-175.2886,-195.0061)" + id="path20" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-163.9531,-195.0061)" + id="path22" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath24"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-184.0015,-195.0061)" + id="path24" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath26"> + <path + d="M 0,0 H 841.89 V 595.276 H 0 Z" + transform="translate(-400.48781,-502.54371)" + id="path26" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath28"> + <path + d="M 476.744,43 H 764.39 V 500.544 H 476.744 Z" + transform="translate(-738.01952,-309.36231)" + id="path28" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath32"> + <path + d="M 476.744,43 H 764.39 V 500.544 H 476.744 Z" + transform="translate(-526.80502,-94.1759)" + id="path32" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath34"> + <path + d="M 476.744,43 H 764.39 V 500.544 H 476.744 Z" + transform="translate(-501.75082,-174.8201)" + id="path34" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath36"> + <path + d="M 476.744,43 H 764.39 V 500.544 H 476.744 Z" + transform="translate(-541.84211,-224.96981)" + id="path36" /> + </clipPath> + </defs> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="0.49353239" + inkscape:cx="413.34673" + inkscape:cy="270.49896" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer-MC0"> + <inkscape:page + x="0" + y="0" + inkscape:label="1" + id="page1" + width="283.48026" + height="550.28949" + margin="0" + bleed="0" /> + </sodipodi:namedview> + <g + id="layer-MC0" + inkscape:groupmode="layer" + inkscape:label="Warstwa 1" + transform="translate(-147.73906,-124.75187)"> + <path + id="path1" + d="m 0,0 h -14.309 l 7.056,21.403 z m 8.591,-25.35 h 17.84 c 0,0 -19.742,55.512 -19.749,55.526 -2.217,6.244 -6.998,7.206 -8.532,7.206 h -17.239 c 2.645,-2.16 3.56,-3.572 3.56,-5.738 0,-1.317 -0.293,-2.325 -1.731,-6.581 l -17.068,-50.417 h 11.656 l 5.158,15.64 H 3.293 Z" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,193.50973,639.29747)" + clip-path="url(#clipPath2)" /> + <path + id="path3" + d="m 0,0 v 20.011 c 0,3.828 -0.813,5.787 -3.53,8.21 L 9.353,28.217 c 3.979,0 7.393,-3.226 7.393,-7.298 V -7.479 c -6.294,-1.85 -12.677,-2.867 -18.503,-2.867 -22.303,0 -36.437,13.006 -36.437,32.249 0,18.786 14.164,33.425 36.743,33.425 5.138,0 10.017,-0.899 14.441,-2.502 V 40.271 c -3.964,2.614 -8.98,4.177 -14.441,4.177 -10.825,0 -19.351,-7.462 -19.351,-21.248 0,-14.619 6.459,-23.572 16.823,-23.572 1.298,0 2.59,0.092 3.979,0.372" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,301.4004,661.24667)" + clip-path="url(#clipPath4)" /> + <path + id="path5" + d="m 0,0 c 0,4.477 -3.532,8.104 -7.887,8.104 h -12.486 c 2.719,-2.419 3.532,-4.381 3.532,-8.207 V -54.631 H 0 v 26.377 H 19.155 V -54.631 H 35.949 V 7.92 H 19.155 V -17.614 H 0 Z" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,383.28707,600.26093)" + clip-path="url(#clipPath6)" /> + <path + id="path7" + d="M 0,0 C 13.944,9.586 26.14,24.398 26.144,55.767 V 243.97 H 40.081 V 55.767 C 40.081,20.913 22.658,6.973 0,0" + style="fill:#b01028;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,349.88613,533.6932)" + clip-path="url(#clipPath8)" /> + <path + id="path9" + d="M 0,0 C 13.072,6.1 35.723,17.427 35.723,55.767 V 243.97 h 13.94 V 55.767 C 49.663,8.714 13.072,1.745 0,0" + style="fill:#b01028;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,365.002,533.6932)" + clip-path="url(#clipPath10)" /> + <path + id="path11" + d="M 0,0 C 10.405,10.462 13.94,31.367 13.94,59.252 V 243.97 H 27.884 V 55.767 C 27.884,24.491 17.43,8.714 0,0" + style="fill:#b01028;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,338.26893,533.6932)" + clip-path="url(#clipPath12)" /> + <path + id="path13" + d="M 0,0 C 13.943,-9.584 26.139,-24.398 26.14,-55.764 V -271.85 H 40.081 V -55.764 C 40.081,-20.913 22.654,-6.97 0,0" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,247.65693,124.75187)" + clip-path="url(#clipPath14)" /> + <path + id="path15" + d="M 0,0 C 13.068,-6.1 35.724,-17.428 35.724,-55.764 V -271.85 H 49.661 V -55.764 C 49.661,-8.715 13.068,-1.743 0,0" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,262.7708,124.75187)" + clip-path="url(#clipPath16)" /> + <path + id="path17" + d="m 0,0 c 10.402,-10.457 13.94,-31.369 13.94,-59.25 v -212.603 l 13.943,0.003 V -55.764 C 27.883,-24.491 17.426,-8.715 0,0" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,236.03973,124.75187)" + clip-path="url(#clipPath18)" /> + <path + id="path19" + d="M 0,0 C -13.943,9.586 -26.137,24.398 -26.14,55.767 V 243.97 H -40.081 V 55.767 C -40.081,20.913 -22.656,6.973 0,0" + style="fill:#006b3b;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,233.71813,533.6932)" + clip-path="url(#clipPath20)" /> + <path + id="path21" + d="M 0,0 C -13.07,6.1 -35.724,17.427 -35.724,55.767 V 243.97 H -49.665 V 55.767 C -49.665,8.714 -13.07,1.745 0,0" + style="fill:#006b3b;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,218.60413,533.6932)" + clip-path="url(#clipPath22)" /> + <path + id="path23" + d="M 0,0 C -10.403,10.462 -13.942,31.367 -13.942,59.252 V 243.97 H -27.883 V 55.767 C -27.883,24.491 -17.427,8.714 0,0" + style="fill:#006b3b;fill-opacity:1;fill-rule:nonzero;stroke:none" + transform="matrix(1.3333333,0,0,-1.3333333,245.33533,533.6932)" + clip-path="url(#clipPath24)" /> + </g> +</svg> diff --git a/agh.svg.license b/agh.svg.license new file mode 120000 index 0000000..90efdfd --- /dev/null +++ b/agh.svg.license @@ -0,0 +1 @@ +agh_idub_pl_cmyk.pdf.nonpdf.license
\ No newline at end of file diff --git a/agh_idub_pl_cmyk.pdf.nonpdf b/agh_idub_pl_cmyk.pdf.nonpdf new file mode 100644 index 0000000..a24fb6b --- /dev/null +++ b/agh_idub_pl_cmyk.pdf.nonpdf @@ -0,0 +1,198 @@ +%PDF-1.6
%
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 21456/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.a8731b9, 2021/09/09-00:37:38 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/" + xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" + xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/" + xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">agh_idub_pl_cmyk</rdf:li> + </rdf:Alt> + </dc:title> + <xmp:MetadataDate>2021-12-07T12:40:34+01:00</xmp:MetadataDate> + <xmp:ModifyDate>2021-12-07T12:40:34+01:00</xmp:ModifyDate> + <xmp:CreateDate>2021-12-07T12:40:34+02:00</xmp:CreateDate> + <xmp:CreatorTool>Adobe Illustrator 26.0 (Windows)</xmp:CreatorTool> + <xmp:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xmpGImg:width>256</xmpGImg:width> + <xmpGImg:height>184</xmpGImg:height> + <xmpGImg:format>JPEG</xmpGImg:format> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAuAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FUFrWpNpml3OoC2ku1tUM0lvDQysibv6amgZgtSFrv0xVgR/PXy6xsxb2st0dQUyaaIpI
gL1AwVhaPKY4nkRjxeGR45A2wU4qyXyf+Y3lLzb60WkXn+nWpIvNNuEaC7hZTRhJDIA2x2JFRXvi
rJcVdirsVdirsVdiqnbT+tGX48aPIlK1/u3KV+njiqpirsVdirsVY35z/MLyx5Qt0l1i4ImmBMFn
CvOeQDqQtQAPdiBlObURx8+bs+zuyM+skRiGw5k7AfjyYP8A9DM+R/8Aq36n/wAi7f8A6r5j/n4d
xd7/AKCtV/Ox/OX/ABLv+hmfI/8A1b9T/wCRdv8A9V8fz8O4r/oK1X87H85f8Sy3yV+anlDzfI1v
ps7w36qXNjdKI5So6stC6N/sWNO+XYtTCZoc3T9pdhanRjimAYfzo7j9Y+IZfmQ6d2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV8dSaBHL5v8+/lmwHpNLd6p5aToYby1U3EaR+HrWtY3+QPbAqUDWt
W1byfB+YGn3LW/nLyfcwWuq36H95cWlwClpcTbfG6spgflXmtOVcVfW35bec4fOfkvTPMMaiOS7j
IuoV6JPGSkqiu9Oakr7UwqybFXYq7FXYq7FUNp3+87/8Zp/+Tz4qicVdirsVdir4s896/ea95t1P
UrpyxkndIVPRIkYrGg/1VGc9OZmTI9X23svSR0+nhCP80X5k8yzTTv8AnHTz1fWFteC606BbmNJV
hllm9RQ6hgG4Qutd96E5kw0U5AHbd0mb2w0kJmNZDwmrAFf7pXb/AJxo8+BSRe6WxAqFE1xU+28A
GS/Iz8mA9tNJ/NyfKP8AxTzOzu9S0PWY7mBjb6jp0/JSDuskTbg0O4qKHxzCBrcPT5McM+IxO8Jj
7C+29LvRf6ZaXwXiLqGOcL4eogan450GOXFEHvD4dnx+HklD+aSPkicm1OxV2KuxV2KuxV2KuxV2
KuxV2KoabU9NhuUtZruGO5koI4HkVZG5Gi0UmpqemC2JkAataur6S00kC3sBmi5GWISoWTh9vkta
jj3r0xteMd6+01HT70MbO5iuQlA5hdZKV6V4k0w2okDyL5h1Im1/5zEX09+V1ADy8JtMQN0p/OcD
Jhn5a2yNo/5o6cvw2qaNNKsZ+Le1uA0fU12xV7P/AM4h3Ukn5d6lbuSVg1WX0yT0V4ITxA/1qn6c
KvaBqulm4a3F5AbhK84RInMcd2qtainfI8Y72zwp1dGlqazo8kMkyX1u0MPH1pFlQqnI0XkQaCp6
Vx4x3qcMwao2fJXtrq1uovVtpkniJIEkbB1qOu6kjCCDyYyiYmiKVcLF2KobTv8Aed/+M0//ACef
FUTirsVdirsVfC+qf8dO7/4zSf8AEznNx5PvGD+7j7g+29E/44th/wAw0P8AybGdBh+ge4Ph2p/v
Zf1j96NyxofD/mT/AJSLVP8AmLn/AOTrZzj7po/7mH9WP3Pszyp/yi+j/wDMDbf8mVze6f8Au4+4
fc+La/8Av8n9eX3pplziOxV2KuxV2KuxV2KuxV2KuxV2Kvnv80f/AFoDyv8A8ZtL/wCos5VL6nQ6
3/Gof5v3sd07/wAmp56/4w+YP1TYBzceP99k90/0sw/5xZ/3l8x/69p+qbJY3K7G/j+H6WHa7/62
JF/zF2f/AHTYsm7xif5Y/wBz+af/AGwb7/k6MVetf84ff8oJrP8A21G/6h4sKsZ03/yfHmX/ALfH
/UPLmvP1H/O/S9xk/wAQx/5n3hj3kz/yU35jf9ub/qMfJQ+mXwczWf43g/5Kf7l7h/zjj/5LOD/m
LuP+JDLtP9PxeX9ov8aP9UPUMyHRuxVDad/vO/8Axmn/AOTz4qicVdirsVdir4e8x2VxY+YNSs7h
eE9vdTRyL7q5H3ZznDWx6PumjyjJhhKPIxH3PdNL/wCck/LdtpFpbz6VeG7ggjjkCGL0y6KFPFiw
NNu65s8GsjtE7dLeB1fsfn4pTjKJFkgb3/b8WWfl3+cmk+d9YuNLs9PuLSW3t2uWeYoVKq6IR8Jr
WsmbjNppYwCSN3k8+lOMXfWnzB5k/wCUi1T/AJi5/wDk62co+1aP+5h/Vj9z6f1b8yNI8keUPLUu
o209wL6ziSIW4QkenBGTXmyfzZu8ZMcIkBdRFvk8OzpavV5IRlGJ45c/eWP/APQzXlD/AKteofdB
/wBVMx/z47nbf6CtT/Ph/sv1O/6Ga8of9WvUPug/6qY/nx3L/oK1P8+H+y/UiLL/AJyU8jTTCO4t
L+1Qn++aON1H+twkLfcDkhr49QWvJ7GauIuMoS+J/SHpGheYdE16wW/0e8jvLVtucZ3U9eLqaMre
zCuZePJGYuJea1Wky6efBkiYy/HzTHJuM7FXYq7FXYq7FXYq+e/zR/8AWgPK/wDxm0v/AKizlUvq
dDrf8ah/m/ex3Tv/ACannr/jD5g/VNgHNx4/32T3T/SzD/nFn/eXzH/r2n6psljcrsb+P4fpYdrv
/rYkX/MXZ/8AdNiybvGJ/lj/AHP5p/8AbBvv+ToxV61/zh9/ygms/wDbUb/qHiwqxnTf/J8eZf8A
t8f9Q8ua8/Uf879L3GT/ABDH/mfeGPeTP/JTfmN/25v+ox8lD6ZfBzNZ/jeD/kp/uXuH/OOP/ks4
P+Yu4/4kMu0/0/F5f2i/xo/1Q9QzIdG7FUNp3+87/wDGaf8A5PPiqJxV2KuxV2KvNPzN/JXTfN9y
dUsZ107WuIWWQryinCii+oBuGAFOQ7dQdswtRpOM2Ni9P2J7Sz0cfDmOPF9sfd+p5c//ADjb5/Vi
BcacwH7QmlofviBzEOiyeT1Q9stH3ZPkP+KZ3+Tf5SeZ/J3mW71PVZLVoJ7NrZRbyO7c2ljcEhkT
akZzbYcmTwhjn/DyPl3PIdu6/TaiXFh4gSbIIr48+rwDzJ/ykWqf8xc//J1s559S0f8Acw/qx+57
7+Y35e+YvOXkvyhHovomSytkeb1pPT2kgiC02P8ALnT9nZowgOIWDEPkc84x6jLZo8Z+wlgcf/OO
P5hugLPYRt3Uzv8A8axkZqdRovWfD+npb2Wm9sdOMYGQS4+tDb7wu/6Fu/MD/f2n/wDI6T/qllP5
LI3/AOjLR90/kP1pdr35Eef9G02XUHit7yGAF5ktJGeRUG5bgyoSB/k1OQnpZxFkbOTpfanR5piA
Mok8uIUPvKQ/l9541Hyf5ig1G3dmtHYJqFqD8M0NdxT+Za1U9j7VyvFlMJWHP7X7MhrMJhL6v4T3
H8c32TDNFPDHNEweKVQ8bjoVYVBHzGb4EEWHxiUTEkHmF+Fi7FXYq7FXYq7FXz3+aP8A60B5X/4z
aX/1FnKpfU6HW/41D/N+9junf+TU89f8YfMH6psA5uPH++ye6f6WYf8AOLP+8vmP/XtP1TZLG5XY
38fw/Sw7Xf8A1sSL/mLs/wDumxZN3jE/yx/ufzT/AO2Dff8AJ0Yq9a/5w+/5QTWf+2o3/UPFhVjO
m/8Ak+PMv/b4/wCoeXNefqP+d+l7jJ/iGP8AzPvDHvJn/kpvzG/7c3/UY+Sh9Mvg5ms/xvB/yU/3
L3D/AJxx/wDJZwf8xdx/xIZdp/p+Ly/tF/jR/qh6hmQ6N2KobTv953/4zT/8nnxVE4q7FXYq7FXY
q7FXYq+H/Mn/ACkWqf8AMXP/AMnWznH3TR/3MP6sfufZnlT/AJRfR/8AmBtv+TK5vdP/AHcfcPuf
Ftf/AH+T+vL700y5xHYq7FXxD5qt4bbzPrFvAgjhhvbmOJBsFVZWCgfIDOdkKL7noZmWDHI8zCP3
PsHyG7P5G8uu5LM2mWZZiakk26VJOb3D9EfcHxvtUVq8oH+qT/3RT3LXAdirsVdirsVdir57/NH/
ANaA8r/8ZtL/AOos5VL6nQ63/Gof5v3sd07/AMmp56/4w+YP1TYBzceP99k90/0sw/5xZ/3l8x/6
9p+qbJY3K7G/j+H6WHa7/wCtiRf8xdn/AN02LJu8Yn+WP9z+af8A2wb7/k6MVetf84ff8oJrP/bU
b/qHiwqxnTf/ACfHmX/t8f8AUPLmvP1H/O/S9xk/xDH/AJn3hj3kz/yU35jf9ub/AKjHyUPpl8HM
1n+N4P8Akp/uXuH/ADjj/wCSzg/5i7j/AIkMu0/0/F5f2i/xo/1Q9QzIdG7FUNp3+87/APGaf/k8
+KonFXYq7FXYq7FXYq7FXw/5k/5SLVP+Yuf/AJOtnOPumj/uYf1Y/c+zPKn/ACi+j/8AMDbf8mVz
e6f+7j7h9z4tr/7/ACf15femmXOI7FXYq+JfOX/KX65/20Lr/k+2c9PmX3Hs7/Fsf9SP+5D688gf
8oJ5b/7Zdl/1Dpm9w/RH3B8e7W/xvL/wyf8Auin2WOvdirsVdirsVdir57/NH/1oDyv/AMZtL/6i
zlUvqdDrf8ah/m/ex3Tv/Jqeev8AjD5g/VNgHNx4/wB9k90/0sw/5xZ/3l8x/wCvafqmyWNyuxv4
/h+lh2u/+tiRf8xdn/3TYsm7xif5Y/3P5p/9sG+/5OjFXrX/ADh9/wAoJrP/AG1G/wCoeLCrGdN/
8nx5l/7fH/UPLmvP1H/O/S9xk/xDH/mfeGPeTP8AyU35jf8Abm/6jHyUPpl8HM1n+N4P+Sn+5e4f
844/+Szg/wCYu4/4kMu0/wBPxeX9ov8AGj/VD1DMh0bsVQ2nf7zv/wAZp/8Ak8+KonFXYq7FXYq7
FXYq7FXw/wCZP+Ui1T/mLn/5OtnOPumj/uYf1Y/c+zPKn/KL6P8A8wNt/wAmVze6f+7j7h9z4tr/
AO/yf15femmXOI7FXYq+JfOX/KX65/20Lr/k+2c9PmX3Hs7/ABbH/Uj/ALkPrzyB/wAoJ5b/AO2X
Zf8AUOmb3D9EfcHx7tb/ABvL/wAMn/uin2WOvdirsVdirsVdir57/NH/ANaA8r/8ZtL/AOos5VL6
nQ63/Gof5v3sd07/AMmp56/4w+YP1TYBzceP99k90/0sw/5xZ/3l8x/69p+qbJY3K7G/j+H6WHa7
/wCtiRf8xdn/AN02LJu8Yn+WP9z+af8A2wb7/k6MVetf84ff8oJrP/bUb/qHiwqxnTf/ACfHmX/t
8f8AUPLmvP1H/O/S9xk/xDH/AJn3hj3kz/yU35jf9ub/AKjHyUPpl8HM1n+N4P8Akp/uXuH/ADjj
/wCSzg/5i7j/AIkMu0/0/F5f2i/xo/1Q9QzIdG7FUNp3+87/APGaf/k8+KonFXYq7FXYq7FXYq7F
Xx1+anlq58v+edUtZVIguJnu7Nz0aGdi60/1TVD7jNDmx8EiH2bsLWx1GkhIcwOE+8fi/i9E/Lr/
AJyCsNJ0K00bzFaTyfUkWC3vbYI9Yk2QSIzJTgtBUE18MycGs4RUhyec7Y9kp5sssuGQ9Rsg9/kd
+bMP+hjfy88L7/kQv/NeX/yhDuP2frdN/oP1n9D5/sd/0Mb+Xnhff8iF/wCa8f5Qh3H7P1r/AKD9
Z/Q+f7Ep8yf85K6AmnzJ5fs7mfUXUiGW5RI4UY7ciA7M3HrxoK+OQnrxXpG/m5mj9jMxmDmlEQ61
uT9jwPTtP1LXdZhsrZTcahqEwVa7lnkNSzHw7k5rgCTQfQM2WGDEZS2hAfYH2zpOnxabpVnp0O8N
lBFbxn/JiQIPwXOghHhiB3Ph2ozHLklM85En5m0Vkmp2KuxV2KuxV2Kvnv8ANH/1oDyv/wAZtL/6
izlUvqdDrf8AGof5v3sd07/yannr/jD5g/VNgHNx4/32T3T/AEsw/wCcWf8AeXzH/r2n6psljcrs
b+P4fpYdrv8A62JF/wAxdn/3TYsm7xif5Y/3P5p/9sG+/wCToxV61/zh9/ygms/9tRv+oeLCrGdN
/wDJ8eZf+3x/1Dy5rz9R/wA79L3GT/EMf+Z94Y95M/8AJTfmN/25v+ox8lD6ZfBzNZ/jeD/kp/uX
uH/OOP8A5LOD/mLuP+JDLtP9PxeX9ov8aP8AVD1DMh0bsVQ2nf7zv/xmn/5PPiqJxV2KuxV2KuxV
2KuxVjfnnyDoXnLTBZ6mhSaIlrS8joJYmPWhPVT+0p2Pzocoz4BkG/N2fZfauXRZOLHyPMdD+O94
bqn/ADjX50t52Gn3lnfW9fgdmeGSn+UhVlH0Oc10tFMct3u8HtnpZD1xnE/MfP8AYgf+hd/zG/kt
P+R//NuR/KZO77m//Rfou+X+ld/0Lv8AmN/Jaf8AI/8A5tx/KZO77l/0X6Lvl/pVe0/5xw8/zTBZ
5bK2jr8UjSs9B7BENcI0eQ9KYZPbHRgbCcj7v2vYvy4/KPQvJatdBzf6xIvF76RQoRT1WJKtwB7m
pJ+W2Z+DSiG53LxnbPtBl1vp+jGP4f197O8ynQOxV2KuxV2KuxV2KvnP89Xk0r82tB1iWq26R2k6
yDaht7li4B8QKH6cqnzdB2keHPGR5bfYUu06zeL88fMemSrV9V/S8UQrSou4JZo6f6ysKfPB1aoR
/wAJlE/xcX2glkP/ADixMK+ZYSdz9TdV+Xrhj+rJY2/sb+P4fpSXWvLvmB/+csI9WTTLttLF1aMb
8QSG3ounxoT6vHhswp165N3rF/y58qeabaH8yxcaPfQm80S9itPUtpl9V2lBVI6qObHsBir1H/nF
HRtX0ryVq0GqWNxYTPqRdIrqJ4WZfQiHIK4UkVHXCrCdJnRvzk86akTS30+HW55TUEFEWSGtfcsK
ZryPUfj+l7rLH/AsUesjjH3Fj3lyQ2f5RecZZNo9VvNMsrcn9qS3eS5cDfqEocQaifg5eoHFrMQH
8MZn50Hv/wCQGny2f5X6Y0oKtdPPcBT/ACtKyqendVBzKwD0vJdvZBLVSrpQ+x6Llzp3YqhtO/3n
f/jNP/yefFUTirsVdiqW+YfMFhoOmtqF8HNurKh9MBmqxoNiRiqE03zno+o602j24lF2sCXRLKAn
pyIki71O/GUdsVSlvza8prqZsf8ASCBJ6JuxGDDy5cevLlT/AGOKo3zD+YWh6BfGzvo7kyBVcvHG
GSjdPiLDfFVur/mLoGlw6fLcpcMNTgW5tljjDNwcAgMOQofi6Yqv1D8wNCsNGstXuEuFtb8ssKiM
eoCta8lLCnTFUf5m8z6b5csI73UBIYZJRCvpKGbkysw2JXaiHFUDa+ftBupdKii9YtrAY2h4Cg4M
UYP8W26nFUZZ+atMu/MV3oEQk+vWcfqzFlAj4/B0av8AxYO2Kpc35keXF8wfoI+t9d+sC15cB6fq
FuNOXKv2tumKspxV2KuxV2KuxV2KuxVgn5v/AJdf408urHa8V1iwLS6e7GgbkAHhYnoHoN/EDtXI
yjbha7SeNDb6hyeFXba9JqWm3wge08++WxFHdafMpEt5DaU9GeMEfvXVF4SKCSygMtRypW6OXEZA
8ssOnfXXz8+8Ms/KS9sNK/MlrqxNPL3muGVbA1oIbpSJjayeEkXxIB+0CrDZhhjsXL0MhHNcfony
9/Ovg+hMtd87FUHrOq2mkaTeapdsEtrKF55SSB8KKWoK9z0GRlKhbZhxHJMQHORp8pWtnrMOkalb
LH/zs/m4ia8DngLLS/U9d5bmRqLELiTifi/YWp+0M145PeynAzif8li5f0p8qHfw/efJNtE8kXvn
R9L8raAXHlDRnaTVNdKFI7m8kp68kXIDl8KiOJaVC7tSuTjAy2DRm1sdNxZcn99P6Y90egP3n7H0
5YWNrp9jb2NpGIrW1jSGCJeipGoVR9AGZwFCniMkzORkeZV8LB2KobTv953/AOM0/wDyefFUTirs
VdirCfzh/wCULl/4zw/8SxVj3kr/AMmZJ/2ybb/qFtsVSjyvJ5RTQ9R/xNC89sdSAhSMyV9T02p/
dsh6VxVk35iyPr3mfRvKEDH0y4ub8r+ytD+Kxhj9IxVBfmfDcJ5u8rw6d6cVyrRpZ8wfTVxMoj5A
A/CDSu2Ktfm+uor5Y0VdSeOS/ErfWHhr6Zbh+zUA0+jFU2/OtgvleyYgMF1CIlT0NIpdsVYT5dEl
r540nR5DvpeoXMKV/kJ2+8hjirL/AC5/5OTzB/zCH9dvirzSXVI/0jLrCxyGY6p9aE4X93x5GTjy
J+1XemKvpIEEAg1B3BHSmKuxV2KuxV2KuxV2KuxVL9X8vaFrMax6rYQXqpvGZo1dkPijEclPupwE
NeTFGf1AFCDyT5VBZv0fGZH4+pKxdpHaM8o5HkLF3kQ/YkYll7EY8IY/l4dyd4W52KobUNNsNRhW
C+hW4gV1lEUm6F0NVLL0bidxXvQ9RglEHmzx5JQNxNFKpfInlCYUm0uGZC/qyxy8nSWWtfUmRiVl
ep+3ICffIeFHucga7MOUiP0eQ7h5BO4YIYIkhgjWKGMBY40AVVA6AAbAZMCnFlIk2ea/Ch2KuxVD
ad/vO/8Axmn/AOTz4qicVdirsVQOtaLp+s6dLp1/GZLaWlQDxYFTUMpHQg4qlflnyF5f8uXEtzp6
SNcSr6ZlmfkQlQSq0CjcgdsVQDflR5QOp/X/AEpg3q+t9XEn7rlWtKU5Ur2riqJ1r8t/LGs6nNqV
7HK11Px9QrIVHwIEGw9lGKr9V/L3y3qkFjBdxymPToFtrYLIVIjUACvidsVdc/l75budFs9HljlN
lYs726iQhgZGLNVu+7HFWm/Lryy2hpohjl+opcfWlX1Dy9XiU+14UOKqzeRfL7eYf0/6cg1H1BLy
DkJyC8a8cVREPlTSIdbvNajVxfX0RhnfmePA8ei9j+7GKoAflx5YGiHRfSl+om4+t09Q8vV4enXl
/q4qySGJYoUiUkrGoVSTU0UU3OKr8VdirsVdirsVdiqE1bVbDSNNudT1GX0LG0Qy3MxVmCIvViFD
Gg77YqkHlv8ANP8AL7zNqH6O0PW7e8vipdbZeaOyruxUSKnKg3NMVZViqE1XV9K0ixkv9Uu4bGyh
FZbi4dY0Hh8TEbnsMVYC3/ORv5Ni6+r/AOIATXj6gtrsx1rSnP0qfT098Vei2tzb3VtDdW7iW3nR
ZYZF6MjjkrD2IOKsbm/M/wAhQeZP8M3GsQwa56q2/wBRmWSNjK9CihnVV+PkOO/xVFOuKph5o83+
W/Kunx6h5gvk0+zllFvHNIHYGVlZwvwBj9lGP0Yqq+XPM2heZNMXVNDu1vbB2ZFnQMAWQ0YUcKds
VTPFXYqhtO/3nf8A4zT/APJ58VROKuxV88eYLi3XW/MrS3lxFfx38g06ONiENbhhJzPbinTcYqzj
8wLrUB5D8vWck5a/vXthLKrci5EJ5HkpPL4mXeu+KqXkm7nH5e+arKWRmnsVvAGJ+IA25A7/AMyH
FWLaE93plz5W1K3u5/U1K5ZLqIyHgUjnWPiB4MrGta4qm/5tTXd35qeC2lZFsLBZJFUn+csx2/yX
GKo/zrfyy+QvK2rrI3OJ4FldSalvSPLr/lRd8VY4dVvIfN2p6o0r/VZ5NWijAYjeOB2UDttzSmKo
vUrm+tPyk0kpM6G+vZGmIYhmVTIApPh8AOKs28qeRtR05dXtbi+aTRtUg9O3USs06c1Ksx5IEVqN
1Fe2KpD+WWlo/nLVLqwuJptI04NBBJM/NpGc0BqAq0ojN08MVYzLqV5/jV9b9Z/qiayIwKnjwEpN
Nz/IMVe+4q7FXYq7FXYq7FXYq86/5yA81jy5+VuryI4S71JBptoK0Ja5qshXvVYebfRir5Oisdc/
LPzZ5W1y4B9SW3tNZiQDiTBMTzhav7XEMrfPAr7xs7u3vLSC7tnEttcxrLDIvRkdQysPmDhV8hfm
xrWsfmT+dcfk6O5aLSrTUBpdrEPsRsjcLqcr+0/JX+gAYFeseZvIf/OOfkTSLOw8z6esEV2rRxX0
sV7PNKyAcyZ7dX4PvWgK+wphV6t5XuNFuPLmmyaHcLdaQLeOOxuFPINFGvBdzTccaH3xV8m/n3Pb
2n/OQIup2EcEMmmyzyU6KiRlmNPBRgVlv/OSv5neRPNXkWx0/wAv6vFqF5FqkVxJDGsikRLbzoW+
NVH2nUfTirPv+cW//JSWn/MXdf8AJzCr1vFXYqhtO/3nf/jNP/yefFUTirsVeQap5F87yXvmGK1s
4GstauzL60kqclRJ2lQqOW1a77Yqm/mDyFrWo23lTS2RZbHTEWPU5UkC7H01fhy3NFQ02xVvQPI+
t6TB5usI4QLHUoJYtLrIpJ+GVYg2+3wyCpOKpRon5e+cnvNDh1KCC307R5zMJBIGdg0olZTxLVJK
0HTFUw138utU1vzPr2o3kP7iW2YaSVlUE3CIixch2X4TWuKq8/kzzDcfljDoMkC/pS2m5xx+ohBX
1Wb7deP2XOKpFdfll5pfytY20cCnUorq5muF9VB8E6RrXnyoa+kK4qn/AJg8h6ve/l9pOkWyoNQs
CkksJYBSSrBwG+zUM+Kr9C8v+eY4fMN5elYb6+tzFp9skvJVk4kclqzKlNu+Ku/LzRvOugRvp91p
9tHp5EkzTK4aZ5iAEBIk402p9nFWMf8AKpNfby+0rQD9Pm8rx9ZOBtvT3Na8eXqe+KvZbczG3iMw
4zFF9RdjRqbjbbriqpirsVdirsVdirsVfNX/ADkc2p+dfzH8uflzosifWUjaeX1GIiE06lqycQ7D
04IuWwOzYFYn+c/5Z/nFaeXofMHnLV7DV7LSitvELSokhSdgoNPq1uvDkFHU0rt3xV7V/wA4z+bv
09+WVrZzPyvNDc2EoPX0l+KA/IRsE/2OFXiH5p6Rq35bfninmv6u8mmXWojVrWVa8ZRI/qXUPI7B
+TMKeBB74FZH/wA5L/mF5N82+UPL7+X9UhvXF08stuppNGpiI/eRNR1323GKvWP+cbv/ACS/l3/o
8/6jp8KvBfz6t4bn/nIFLedBJBNJpscsbdGVljDA/MHArMv+cm/y88k+W/IVhfaFo1tp13JqsUEk
8C8WMbW9wxU79OSKfoxVnH/OLf8A5KS0/wCYu6/5OYVet4q7FUNp3+87/wDGaf8A5PPiqJxV2KsL
u/PV9bxaiWt4g1sJjaElqSehCZJAwr+yWj+/FU2GuagtnfXcq2/pxw3E1nGCQ/7hnWjgn4qhAarS
nTFUEvmrULu9ktbI26Fbw2yGRWkrGVlCueMiUPqW0g+VD81VL/G1+ixST2iQx3DosCMTzCwtxvi1
DT93xbjT598VRvlzzU+q6hLaukaL6KTW5UnkwIV3qD/Ks8Q+dcVQ0PmfWJDb2oS3+uXFrFfCUrII
hFJHI/ArzJ5coqV5dDWnbFVK889XNpSeW2UQN8SwFZBIUUqpdJDSJweXxUP7v9rriq+/8065aW80
ohtpmjl+qpGvMcpxbrPy5FvsGpXp4H2xVqfz4qtbtHGnpTCVm51DoFjUxKVrXk0r8SPY4qrzeatQ
RVuFt4/SWOD1IGqsjSTxNIKPyKqAQBuDiqnY65q/B4omima2JkuWuVlikZXkU8OEnAxsoc02II40
64qyPS7p7vTLS7cBXuIY5WVegLoGIFfniqJxV2KuxV2KuxV2KpDB5F8p2/mibzVFp0Y8wTgrLqBZ
2kIKBKULFR8Chdh0xVMda0XS9b0u40rVbdbvT7peFxbvXiwBDDoQeoBxVLPKnkDyh5SNyfLumpp3
1zh9ZEbyMH9PlwqHZunM4qmer6LpGs2L2GrWUN/ZSUL29wiyISOhowO47HFWCt/zjr+TTT+ufLic
+XKgubwJUf5Am4U9qUxVnWjaLpWiaZBpek2sdlp9sCILaEcUXkxdqD3ZiT74qkesflf5C1nXRr2p
6PFc6upjYXbNIGBhp6ZorBfh4jtiqY+aPKHlvzVp8en+YLFNQs4pRcRwyF1AlVWQN8BU/Zdh9OKq
vlzyzoXlvTF0vQ7RbKwRmdYELEBnNWNXLHfFUzxV2KtIiIKKAoJLUHixqT9JOKt4q7FUtuPLWh3E
TRTWiujO8jAlvtSxmFzWtfijNMVWSeV9CklaV7UGRyWJ5yftEllA5UCsWPJRse4xVWh0DRoZYZYb
VI5IKemy1B+EMATv8R+M7nxxV0ug6RKixyWqOiLOig12W6r6w6/t13xVda6JpVrKktvbJFLHz4yK
PipIasCepHsemKqA8saGLcW4tv3YpQ+pJzoqlAvPlz48WK8a0piqqugaQsvqi2HMNzSpYhWJqeCk
8V5Hdgo3PXFVJPLGhIfhtQAAFCc34igCii8uIIVQtQOgp0xVz+V/L7+uWsYyblg8p3qWEhlqDX4f
jYn4cVb/AMNaKQA0BkUIY+MkksgKEFaMHYhqK5Ar0HTFW38uaM/p87fmYzXkzyFmIII9Ri1ZKFFp
zr0GKo+CCK3gjghXhFEoSNB2VRQDf2xVfirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf/Z</xmpGImg:image> + </rdf:li> + </rdf:Alt> + </xmp:Thumbnails> + <xmpMM:InstanceID>uuid:a4f2bcc5-3df1-43f5-97cd-920143c33875</xmpMM:InstanceID> + <xmpMM:DocumentID>xmp.did:180cda3b-31f9-6446-bd83-63aad28db70a</xmpMM:DocumentID> + <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> + <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> + <xmpMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>uuid:7a5a63d9-c580-49bf-a0c4-bc5883be3895</stRef:instanceID> + <stRef:documentID>xmp.did:b461c16c-0ca6-c144-8448-459c2aadac0e</stRef:documentID> + <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID> + <stRef:renditionClass>proof:pdf</stRef:renditionClass> + </xmpMM:DerivedFrom> + <xmpMM:History> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:389b0e39-86bb-294a-b1a0-0e1db21bb17a</stEvt:instanceID> + <stEvt:when>2020-03-02T09:12:06+01:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator 24.0 (Windows)</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:180cda3b-31f9-6446-bd83-63aad28db70a</stEvt:instanceID> + <stEvt:when>2021-12-07T12:40:30+01:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator 26.0 (Windows)</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + </rdf:Seq> + </xmpMM:History> + <illustrator:StartupProfile>Print</illustrator:StartupProfile> + <illustrator:CreatorSubTool>Adobe Illustrator</illustrator:CreatorSubTool> + <xmpTPg:HasVisibleOverprint>True</xmpTPg:HasVisibleOverprint> + <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> + <xmpTPg:NPages>1</xmpTPg:NPages> + <xmpTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>841.890015</stDim:w> + <stDim:h>595.276001</stDim:h> + <stDim:unit>Points</stDim:unit> + </xmpTPg:MaxPageSize> + <xmpTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xmpTPg:PlateNames> + <xmpTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Domyślna grupa próbek</xmpG:groupName> + <xmpG:groupType>0</xmpG:groupType> + </rdf:li> + </rdf:Seq> + </xmpTPg:SwatchGroups> + <pdf:Producer>Adobe PDF library 16.03</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?>
+endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 841.89 595.276]/BleedBox[0.0 0.0 841.89 595.276]/Contents 8 0 R/CropBox[0.0 0.0 841.89 595.276]/LastModified(D:20211207124034+02'00')/MediaBox[0.0 0.0 841.89 595.276]/Parent 3 0 R/Resources<</ExtGState<</GS0 9 0 R/GS1 10 0 R>>/Properties<</MC0 5 0 R>>>>/Thumb 11 0 R/TrimBox[0.0 0.0 841.89 595.276]/Type/Page>>
endobj
8 0 obj
<</Filter/FlateDecode/Length 7633>>stream
+H|Ɏ$KE}!X%%H|?皻GUcQ>]_pGKl={}q?y +2cl.mxtFx3x&?ϐϘYʙ,(K8###OwF_XȒ'РNjx6tD<c<ȟ5>}o ++;7]Zynh Ipdg?
<ͺ:w&mN={G)T;jSo<}O+|<ccxJ:;>Yȝg=&ƅvugAJGxȟ5b{l07 9Gîp'0]iuAāfoI93TJ N|*\Ķt]0, +gŻ1QmB1*"@<{i1뫇ȽoYЪ-\6Pm]`kx@njPHG<+Q%%}- +5Գ#2e-6M7{p&<y̹rx߉펗`x99
E@j<|;?}s!pn$_bk]US +N$.'*u+*,[ה_k);|ՐPdgfrbFA/
gR"KݭF*8A&ʎbNƪqdRtV#S +ۊ9AiU+vq^iJdOd/E`+&ȞX+BS?XROyi.LqiM2T|jgHJuoU?'F?
ue^ϕ&YSsx~LVs?YZxNo4Vt +nwv.B^f+#b&aWBXZatxN3aɡcbt8s:Lx#AB[AS>*tG}wNةBukݛX}A,أhZ~6]mi|iMf.ik[9Hb䲥KK04Hzݗ-_(ѝ>2n7Qꪂ"9KyHJ%azmS:MjE/sDDG%b$h5aEڗxu*N3s9E&#%yߒ綻䰭T%L5kJd?k$Vd7L^ף ǘ@Gp~_.p 8QLKZu)knf"=|a<WlíUH*4VDM<*F{ό%x5=֏$\f*{'MpmaT+Gߩ0¨5 aG(6WɌƏdM9<?Cm*DN<~42@ahgIFDM]
߭Q #4j#i4SgC348pX#T0#}/c/x:MFЧ11%jMuc7T?@eS4AhJ*>`tgŮ +!89vR)'
S7dy{36qKҌ1"e)xr#-78r +օgB!ADĺ\`~↰bS +X^JGQdUpFU<!\o?eWḟ*݂bDsEFZFƐdHe=g~іPk!"'Ng:.;=ikkuggN^;#VtAEe(!g\U⍢2v,LSEUaD^%*U{b+Wr\!pX^G9(˦JM3][}_1A#ILA1h}A\baM(-7AfdrQѕlyT +CYP˙FL=v;htiݡZ0#Fibh*7Os6^ܬry%0zDŽ
wTk<fb˳u +Gf=!(|x͠([
/^"3q}6F;>4qQ%(-*:Yۖ"ޗ5\x 7ðҐfP%ʗis +<?T+qw%n}H#KƵ%^Ǫ7SLμ`¦ئTXwqHB`Sᔻ(dqF)q+!.m.(Ԅ䊫E%%W"?9X
bA&oBZuSm)"z;_aܶ\g.\čM>HZeiхY,*I4'puKʲ
-ibYM7DsS\'8 +sF
.AG!+%[N +|ES0 GUw6n,XܒD:G, +>{asGAV8*i/>BVm7$.q$9yFթf\T WՉFv}\:~bx+0) +MY4AY]9'E_U0LjORbI?O#
gMd",?҇v!:+eXLLPN}.X@Lf +z[X@LNC;y>'N0[\0c» +R#-4
psaVOV»qpWK
9|VHT.9MPP +Y/LHJd2D(#Itf \ +UG(fq96֯k(XG_OtsҜ! +<u_W|EwE8/_
~̠>E9˚^@;\$K``AcGZӉL/ +?1-hwᦆXdkqo.MLdž)HX3sk^?E +]zx̃cIJuPԮ(5r$a<a-kRC|qf7:N_i 1I-E l`Љ5!ӈW3a_AGc4#j59Ix1VjX႔!ŮT7Wc㉽+RU]}i0@y<c( 3DqBk[CvsXJSjp.ں5vX# pFv[+FjV1Ur*w2H qͬt'kJ5YKbUdW&,#( +"UPrg9SF HHяȚ
V0D%qFݢŦV4u86B+F,Nj(MxUyY%Ү[P +%B}v=َ.;:+T]ξ15<"`~)ΎHE=V"pKy('"{N8u{/<n۽}<Wô؎i%;~]t+О}+vk<qGm,-~W7hQ#p< ̛"i`1֓} +nj-H8G)00ٸ.p<WJ(ٮ_U}~vCvtE4>xH9G!y^zL}渺σL!W^`TKI0Y"ɳ?4gņ%Im"/nMV9[%a +tyfiqIШd܊NC3̥YqM2N,+R1jfv(6=̷E5?~[qs]2fQTa1')B"IfŁNjBQTtDj*6xwx'Kj&v;47 ղR\e.ODr-pT)ߊ>G|vwKl +WU +(Υ至{ +6vIX@Ijܗ+'!L_BBth:r=ګ#셳&f鈥k+`7K>j֜JGw@2t0'IQĔu>33yңX=w Skw@6-Rt1 w UNg1<f[LVa@uCI"w4k`i"{JgP +|;)M3t3bK"} XS{
EvNi!"7͡2kzM;|<dq`czxv#H0jT>M`G{p`GwG +5DۢfPq.NYem} +endstream
endobj
11 0 obj
<</BitsPerComponent 8/ColorSpace 12 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 74/Length 836/Width 105>>stream
+8;Z]!c#LWD&;AYb:JM51W=tnu$TE9;(SM?*P:OaHL!WTA/jIO:"bE23**CGq#W]!# +4?Ysq*^+iAph)=?_^IZHRuulCYPLTG3*o9*T?Vak=ah-UeV.$JM2DslSgL>Nn-j"X +?HC@j'=,'.,oXp[QAB4R/Td+T@N'eYctcOYP)/dG$B:u^iXmCBb(*)Gk<IWB7$%62 +^8CqT7u4lSG\L.@@Yc(D]Hj5E9MhdHk]MA>f$"aiVsijW^$gAVi7ZJY8URlg9)<3V +!GY=Boi3"EW[&@s\%c)jf+qBoY>Odd8L(:!@=iYk>KX!RJd<*S^Uc:Y3`i*-Ng0Y\ +3hM4hb!^e3<[FYAK9$ic*QSjnqhPsG50EZ#_+/?1/NtBMZMc2X5IL9bM5\Nd/iLH> +]T66P53O6II8o='-bC1DHcS^GT'm$L]L+l?c`DW#*tb<Q%k[Sj`$$3gWLYF,6U%N, +6U%N,H6:CH<gohp@*H%o6j4Y]AS*_i=r=TJ<64qbKI%g@-]-FKf9V""M3T'C&$(do +8DVL*holqGb1sn%CSa?m-%F5UOu/WV)J-XQ(s+6A0uQIL%6^I9Y,*Q`d\rDt)O<=/ +b.aZ';06@Wjl7RLg(U(!H\Hc[Ai^q<:ZT4K4JXnC*MW:X9](5mO"Pg&\/Mm6Loo6W +1b(mUj#gkm^gC4d_$UEi@'tWI\VF22`^V1J[*(sm,ERaM3'[/!<]b[3q[g2tR[bEs +7.I+kWa5+V?aBi)=N<F!0f$N9-O&.\5a`#:QAJN*6A]A$*3r%jQ#3!'&C-4CK4T,S +GbHD!4sJu+UsfXE:f.DbLai8fHM$FK@u]@H!6s-43r~>
+endstream
endobj
12 0 obj
[/Indexed/DeviceRGB 255 13 0 R]
endobj
13 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 +VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< +PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream
endobj
5 0 obj
<</Intent 14 0 R/Name(Warstwa 1)/Type/OCG/Usage 15 0 R>>
endobj
14 0 obj
[/View/Design]
endobj
15 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 26.0)/Subtype/Artwork>>>>
endobj
9 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
10 0 obj
<</AIS false/BM/Normal/CA 1.0/OP true/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op true>>
endobj
6 0 obj
[5 0 R]
endobj
16 0 obj
<</CreationDate(D:20211207124034+02'00')/Creator(Adobe Illustrator 26.0 \(Windows\))/ModDate(D:20211207124034+01'00')/Producer(Adobe PDF library 16.03)/Title(agh_idub_pl_cmyk)>>
endobj
xref
+0 17
+0000000000 65535 f
+0000000016 00000 n
+0000000144 00000 n
+0000021678 00000 n
+0000000000 00000 f
+0000031317 00000 n
+0000031728 00000 n
+0000021729 00000 n
+0000022073 00000 n
+0000031505 00000 n
+0000031617 00000 n
+0000029776 00000 n
+0000030755 00000 n
+0000030803 00000 n
+0000031389 00000 n
+0000031420 00000 n
+0000031751 00000 n
+trailer
+<</Size 17/Root 1 0 R/Info 16 0 R/ID[<168E0A95FE8DAD4C91F3E67725E7562C><12F68CA302847A40B85432B9AD1337EA>]>>
+startxref
+31945
+%%EOF
diff --git a/agh_idub_pl_cmyk.pdf.nonpdf.license b/agh_idub_pl_cmyk.pdf.nonpdf.license new file mode 100644 index 0000000..cf4d731 --- /dev/null +++ b/agh_idub_pl_cmyk.pdf.nonpdf.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-simple-logo-image + +Copyright (C) AGH diff --git a/binutils-debian-rules b/binutils-debian-rules new file mode 100755 index 0000000..83801a0 --- /dev/null +++ b/binutils-debian-rules @@ -0,0 +1,2069 @@ +#!/usr/bin/make -f +# debian/rules file - for binutils (2.29) +# Based on sample debian/rules file - for GNU Hello (1.3). +# Copyright 1994,1995 by Ian Jackson. +# Copyright 1998-2007 James Troup. +# Portions Copyright 2008-2023 Canonical Ltd. +# Portions Copyright 2008-2023 Matthias Klose. +# I hereby give you perpetual unlimited permission to copy, +# modify and relicense this file, provided that you do not remove +# my name from the file itself. (I assert my moral right of +# paternity under the Copyright, Designs and Patents Act 1988.) +# This file may have to be extensively modified + +############################################################################### + +include /usr/share/dpkg/pkg-info.mk + +vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1))) +DPKG_VARS := $(shell dpkg-architecture) +DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH) +DEB_HOST_GNU_CPU ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_CPU) +DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE) +DEB_HOST_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH) + +include debian/rules.defs + +ifeq (,$(filter no, $(DEB_RULES_REQUIRES_ROOT))) + require_root = yes +endif +ifeq ($(require_root),yes) + CHOWN = chown + DPKG_DEB = dpkg-deb +else + CHOWN = : chown + DPKG_DEB = dpkg-deb --root-owner-group +endif + +p_bin = binutils +p_com = $(p_bin)-common +p_lib = lib$(p_bin) +p_nat = $(p_bin)-$(subst _,-,$(DEB_HOST_GNU_TYPE)) +p_dev = $(p_bin)-dev +p_mul = $(p_bin)-multiarch +p_mdev = $(p_mul)-dev +p_doc = $(p_bin)-doc +p_hppa64 = $(p_bin)-hppa64-linux-gnu +p_src = $(p_bin)-source + +p_ctf = libctf0 +p_ctfn = libctf-nobfd0 +p_gpng = libgprofng0 +p_sfrm = libsframe2 +p_sfrd = libsframe-dev + +p_hst = $(p_bin)-for-host +p_bld = $(p_bin)-for-build + +p_cross = $(p_bin)-$(subst _,-,$(DEB_TARGET_GNU_TYPE)) + +# version used for p_bld/p_hst dependencies +min_ver = 2.30-2 + +distribution := $(shell lsb_release -is) +distrelease := $(shell lsb_release -cs) +ifeq ($(distrelease),n/a) + distrelease := sid +endif + +# BACKPORT is used for cross builds for a -source package not conflicting +# with the source package of the native package. +ifeq ($(BACKPORT),true) + p_src = $(p_bin)-$(VERSION)-source +else + p_src = $(p_bin)-source +endif + +pwd := $(shell pwd) +d = debian/tmp +d_bin = $(d) +d_com = debian/$(p_com) +d_lib = debian/$(p_lib) +d_nat = debian/$(p_nat) +d_dev = debian/$(p_dev) +d_mul = debian/$(p_mul) +d_mdev = debian/$(p_mdev) +d_doc = debian/$(p_doc) +d_hppa64 = debian/$(p_hppa64) +d_src = debian/$(p_src) + +d_ctf = debian/$(p_ctf) +d_ctfn = debian/$(p_ctfn) +d_gpng = debian/$(p_gpng) +d_sfrm = debian/$(p_sfrm) +d_sfrd = debian/$(p_sfrd) + +d_hst = debian/$(p_hst) +d_bld = debian/$(p_bld) + +d_cross = debian/$(p_cross) + +install_dir = install -d -m 755 +install_file = install -m 644 +install_script = install -m 755 +install_binary = install -m 755 -s --strip-program="$(STRIP)" + +NATIVE_ARCHS ?= amd64 i386 arm64 armhf armel ppc64el s390x +NATIVE_ARCHS += alpha arc hppa loong64 m68k powerpc ppc64 \ + riscv64 sh4 sparc sparc64 x32 +NATIVE_ARCHS += hurd-amd64 hurd-i386 +#NATIVE_ARCHS += nios2 or1k s390 sparc + +# don't generate the control file entries for native packages which are never +# built. Only valid for Ubuntu. The autopkg testers get confused otherwise +ifneq ($(distribution)-$(CROSS_ARCHS),Ubuntu-) + NATIVE_ARCHS += mips mipsel mips64 mips64el + NATIVE_ARCHS += mipsn32 mipsn32el + NATIVE_ARCHS += mipsn32r6 mipsn32r6el mipsr6 mipsr6el mips64r6 mips64r6el +endif + +with_cross = yes +ifeq ($(DEB_SOURCE),binutils) + with_native = yes + same_source = yes + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32)) + # DEB_HOST_ARCH is filtered-out later anyway, do not test here. + CROSS_ARCHS ?= amd64 i386 x32 \ + s390x ppc64el arm64 armhf armel \ + alpha arc hppa loong64 m68k \ + powerpc ppc64 sh4 sparc sparc64 \ + riscv64 \ + hurd-amd64 hurd-i386 + else ifeq ($(DEB_HOST_ARCH),arm64) + CROSS_ARCHS ?= amd64 armel armhf i386 powerpc ppc64el riscv64 s390x \ + alpha arc hppa loong64 m68k sh4 sparc sparc64 x32 + else ifeq ($(DEB_HOST_ARCH),ppc64) + CROSS_ARCHS ?= ppc64el + else ifeq ($(DEB_HOST_ARCH),ppc64el) + CROSS_ARCHS ?= powerpc ppc64 amd64 armel armhf arm64 i386 riscv64 s390x \ + alpha arc hppa loong64 m68k sh4 sparc sparc64 x32 + else ifeq ($(DEB_HOST_ARCH),s390x) + CROSS_ARCHS ?= amd64 armhf arm64 i386 riscv64 powerpc ppc64 ppc64el + endif +else ifeq ($(DEB_SOURCE),binutils-ports) + CROSS_ARCHS ?= m68k sh4 +else ifeq ($(DEB_SOURCE),binutils-mipsen) + with_native = + same_source = + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 x32 arm64 ppc64el)) + CROSS_ARCHS ?= mips mipsel mips64el mips64 mipsn32 mipsn32el \ + mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el + else ifneq (,$(filter $(DEB_HOST_ARCH), arm64 ppc64el)) + CROSS_ARCHS ?= mipsel mips64el + endif +else + $(error unexpected source package name: $(DEB_SOURCE)) +endif +# c-t-b passes this one ... +CROSS_ARCHS := $(filter-out $(DEB_HOST_ARCH),$(CROSS_ARCHS)) + +ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386 x32 hppa)) + with_hppa64 = yes +endif + +with_multiarch := yes + +# disabled: no build-needed restriction used in the autopkg test +ifeq (0,1) +# only build the basic package when running the autopkg tests +ifneq (,$(ADT_TEST_TRIGGERS)) + # c-t-b sets CROSS_ARCHS which has to be respected, can't unset it here + #CROSS_ARCHS := + with_hppa64 := + with_multiarch := +endif +endif + +HOST_ARCHS_armhf = amd64 i386 x32 arm64 ppc64el s390x +HOST_ARCHS_armel = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_arm64 = amd64 i386 x32 ppc64el s390x +HOST_ARCHS_powerpc = amd64 i386 x32 arm64 ppc64el s390x +HOST_ARCHS_ppc64el = amd64 i386 x32 ppc64 arm64 s390x +HOST_ARCHS_s390x = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_amd64 = arm64 i386 ppc64el x32 s390x +HOST_ARCHS_i386 = amd64 arm64 ppc64el x32 s390x +HOST_ARCHS_riscv64 = amd64 i386 x32 arm64 ppc64el s390x + +HOST_ARCHS_alpha = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_arc = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_hppa = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_loong64 = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_m68k = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_ppc64 = amd64 i386 x32 ppc64el s390x +HOST_ARCHS_sh4 = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_sparc = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_sparc64 = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_x32 = amd64 arm64 i386 ppc64el + +HOST_ARCHS_mips = amd64 i386 x32 +HOST_ARCHS_mipsel = amd64 i386 x32 arm64 ppc64el +HOST_ARCHS_mipsn32 = amd64 i386 x32 +HOST_ARCHS_mipsn32el = amd64 i386 x32 +HOST_ARCHS_mips64 = amd64 i386 x32 +HOST_ARCHS_mips64el = amd64 i386 x32 arm64 ppc64el + +HOST_ARCHS_mipsr6 = amd64 i386 x32 +HOST_ARCHS_mipsr6el = amd64 i386 x32 +HOST_ARCHS_mipsn32r6 = amd64 i386 x32 +HOST_ARCHS_mipsn32r6el = amd64 i386 x32 +HOST_ARCHS_mips64r6 = amd64 i386 x32 +HOST_ARCHS_mips64r6el = amd64 i386 x32 + +HOST_ARCHS_hurd-amd64 = amd64 i386 x32 +HOST_ARCHS_hurd-i386 = amd64 i386 x32 + +# Convenient shortcuts for {configure,build,install,binary}.%: generic recipes. +CROSS_ARCH = $(subst .,,$(suffix $@)) +CROSS_GNU_TYPE = $(call _gnu_type,$(CROSS_ARCH)) +P_CROSS = binutils-$(subst _,-,$(CROSS_GNU_TYPE)) +D_CROSS = debian/$(P_CROSS) + +# If $(TARGET) is not set, try reading debian/target +ifeq (,$(TARGET)) + ifneq (,$(wildcard debian/target)) + TARGET := $(shell cat debian/target 2>/dev/null) + endif +endif + +ifneq (,$(TARGET)) + with_native = + with_cross = disabled by TARGET + same_source = + # Support TARGET both as Debian architecture specification (e.g. arm), + # and as the target name (e.g. arm-linux-gnu). + DEB_TARGET_ARCH := $(or $(shell dpkg-architecture -f -t$(TARGET) -qDEB_HOST_ARCH 2>/dev/null),\ + $(TARGET)) + DEB_TARGET_GNU_TYPE = $(call _gnu_type,$(DEB_TARGET_ARCH)) + DEB_TARGET_MULTIARCH = $(call _multiarch,$(DEB_TARGET_ARCH)) + for_target = $(call run_dpkg_arch,$(DEB_TARGET_ARCH)) +else + for_target = +endif + +ifneq (,$(TARGET)) + APPEND_TOOLLIBDIR=yes + export APPEND_TOOLLIBDIR +endif + +ifeq (,$(DEB_HOST_MULTIARCH)) + ifeq ($(DEB_HOST_ARCH),i386) + DEB_HOST_MULTIARCH = i386-linux-gnu + else + DEB_HOST_MULTIARCH = $(DEB_HOST_GNU_TYPE) + endif +endif + +export SHELL = /bin/bash + +CFLAGS = -g -O2 -ffile-prefix-map=$(CURDIR)=. +CXXFLAGS = -g -O2 -ffile-prefix-map=$(CURDIR)=. +LDFLAGS = +CROSS := $(DEB_HOST_GNU_TYPE)- +CC = $(CROSS)gcc +CXX = $(CROSS)g++ +ifneq (,$(shell dpkg-buildflags | grep '^CFLAGS=.*-fno-omit-frame-pointer')) + CFLAGS += -fno-omit-frame-pointer + CXXFLAGS += -fno-omit-frame-pointer +endif +ifneq (,$(shell dpkg-buildflags | grep '^CFLAGS=.*-mbackchain')) + CFLAGS += -mbackchain + CXXFLAGS += -mbackchain +endif +STRIP = $(CROSS)strip -R .comment -R .note +STRIP_LTO = $(CROSS)strip -R .gnu.lto_* -R .gnu.debuglto_* -N __gnu_lto_slim -N __gnu_lto_v1 + +ifeq (,$(findstring nopgo,$(DEB_BUILD_OPTIONS))) + ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + ifeq (,$(filter $(DEB_HOST_ARCH), armel armhf mipsel)) + CONF_PGO = --enable-pgo-build=lto + endif + endif +endif + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS = -g -O0 + CONF_PGO = +endif + +# this outputs 0 or 1 depending on whether a macro appears in the *default* cpp +# -dM -P output; this is used to test the toolchain *default* configuration +check_cpp = $(shell $(CROSS)cpp -dM -P /dev/null | grep -q '^\#define $(1)' && echo 1 || echo 0) + +# testsuite doesn't expect to be built with -mthumb +# TODO if the testsuite is only broken with Thumb-2 (and not with "Thumb-1"), +# we should test for __thumb2__ instead +ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf)) + ifeq ($(call check_cpp,__thumb__),1) + CFLAGS += -marm + endif +endif + +SPACE = $(EMPTY) $(EMPTY) +COMMA = , + +DEB_SVERSION := $(shell echo $(DEB_VERSION) | sed 's/+b[0-9][0-9]*$$//') + +VERSION := $(shell sed -n 's/^ *VERSION=\(.*\)/\1/p' bfd/configure | head -1 | tr -d \') +DATE := $(shell sed -n 's/.* \([0-9]*\)$$/\1/p' bfd/version.h) +ifneq (,$(DATE)) +# DATE_EXT := .$(DATE) +endif +BUILD_DATE := $(shell dpkg-parsechangelog | sed -n -e 's/^Date: //p') +BUILD_DAY := $(shell date -Idate -u -d "$(BUILD_DATE)") + +# package metadata information +ifeq (,$(ELF_PACKAGE_METADATA)) + ELF_PACKAGE_METADATA := $(subst $(SPACE),,{ \ + "type":"deb", \ + "os":"$(shell awk -F= '/^ID=/ {print $$2}' /etc/os-release)", \ + "name":"$(DEB_SOURCE)", \ + "version":"$(DEB_VERSION)", \ + "architecture":"$(DEB_HOST_ARCH)" \ + $(if $(DEB_BUILD_DEBUG_INFO_URL),$(COMMA)"debugInfoUrl":"$(DEB_BUILD_DEBUG_INFO_URL)") \ + }) + export ELF_PACKAGE_METADATA +endif + +is_rc = yes +is_rc = + +ifneq ($(DEB_VERSION_UPSTREAM),$(VERSION)$(DATE_EXT)) + $(error upstream ($(VERSION)$(DATE_EXT)) and debian ($(DEB_VERSION_UPSTREAM)) version mismatch) +endif + +SINGLE_VERSION= -system +MULTI_VERSION = -multiarch +HPPA64_VERSION= -hppa64 + +ifeq (,$(filter $(distrelease),squeeze wheezy precise trusty)) + DPKG_DEV = dpkg-dev (>= 1.17.11), +endif +ifeq (,$(filter $(distrelease),squeeze wheezy stretch precise trusty xenial zesty artful)) + DPKG_DEV = dpkg-dev (>= 1.19.0.5), +endif + +NJOBS = +# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008) +ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) +endif +ifneq (,$(findstring nogold,$(DEB_BUILD_OPTIONS))) + with_gold = disabled in DEB_BUILD_OPTIONS +endif +ifneq (,$(findstring nomult,$(DEB_BUILD_OPTIONS))) + with_multiarch = disabled in DEB_BUILD_OPTIONS +endif +ifneq (,$(findstring nocross,$(DEB_BUILD_OPTIONS))) + with_cross = disabled in DEB_BUILD_OPTIONS +endif +ifneq (,$(findstring nohppa,$(DEB_BUILD_OPTIONS))) + with_hppa64 = disabled in DEB_BUILD_OPTIONS +endif + +# PF is the installation prefix for the package without the leading slash. +# It's "usr" for gcc releases, so use this if not explicitly set +ifeq ($(PF),) + PF = usr +endif + +# Don't include docs with GFDL invariant sections +GFDL_INVARIANT_FREE := yes +ifeq ($(distribution),Ubuntu) + GFDL_INVARIANT_FREE := no +endif + +gfdl_toplevel_texinfo_files = \ + bfd/doc/bfd.texi \ + bfd/doc/bfdint.texi \ + ld/ldint.texi + +gfdl_generated_files = \ + bfd/doc/bfd.info + + +######################################## + +CONFARGS = $(BINUTILS_BASECONF) \ + --prefix=/$(PF) \ + --sysconfdir=/etc \ + --enable-shared \ + --with-system-zlib \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --with-pkgversion="GNU Binutils for $(distribution)" + +# not yet ready for GCC 4.9 +CONFARGS += --disable-werror + +with_check := yes +ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + # override buildd admins to run the testsuite anyway ... + ifneq (,$(filter $(DEB_HOST_ARCH), m68k sh4)) + ifneq (,$(findstring nocheck,$(LOCAL_BUILD_OPTIONS))) + with_check := disabled through LOCAL_BUILD_OPTIONS + endif + else + with_check := disabled through DEB_BUILD_OPTIONS + endif +endif +ifneq (,$(filter $(DEB_HOST_ARCH), none)) + with_check := disabled for architecture $(DEB_HOST_ARCH) +endif +#with_check := disabled for this upload + +regression_archs = loong64 m68k riscv64 s390x sh4 x32 +#regression_archs = +ifneq (,$(filter $(DEB_HOST_ARCH), $(regression_archs))) + ignore_regressions := regressions ignored on architecture $(DEB_HOST_ARCH) +endif +ignore_regressions := regressions ignored on architecture $(DEB_HOST_ARCH) + +with_strip := yes +ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + with_strip := disabled through DEB_BUILD_OPTIONS +endif + +source_files = $(addprefix $(shell basename $(pwd))/, \ + $(filter-out stamps .pc CVS debian builddir-% test-summary%, $(wildcard *))) + +############################################################################### + +update-patches: export QUILT_PATCHES := debian/patches +update-patches: + while quilt push; do \ + quilt refresh --no-timestamps --no-index -pab --sort; \ + done + +############################################################################### + +################ +# clean target # +################ + +clean: + $(checkdir) + rm -rf stamps + rm -rf builddir-* + rm -rf stamps + find . -name \*.gmo -o -name \*~ -o -name \*.info ! -name sysroff.info | xargs -r rm -f + rm -f test-summary* + rm -rf $(d_bin) $(d_bin)-dbg $(d_com) $(d_lib) $(d_lib)-dbg $(d_nat) $(d_nat)-dbg \ + $(d_hst) $(d_dev) $(d_mul) $(d_mul)-dbg $(d_mdev) $(d_doc) \ + $(d_hppa64) $(d_hppa64)-dbg $(d_src) $(d_bld) \ + $(d_ctf) $(d_ctf)-dbg $(d_ctfn) $(d_ctfn)-dbg $(d_gpng) $(d_gpng)-dbg \ + $(d_sfrm) $(d_sfrm)-dbg $(d_sfrd) + rm -rf $(foreach ca,$(CROSS_ARCHS),debian/binutils-$(subst _,-,$(call _gnu_type,$(ca))){,-dbg}) + rm -rf debian/tmp debian/files* debian/substvars + rm -f debian/*.orig debian/*.rej + rm -f debian/files debian/substvars +ifneq (,$(TARGET)) + rm -rf $(d_cross) +endif + for i in debian/*.in; do \ + case "$$i" in debian/control*.in) continue; esac; \ + rm -f $${i%*.in}; \ + done + + rm -f *-stamp + +############################################################################### + +stamps/control: debian/control.in debian/control.cross.in +ifneq (,$(TARGET)) + sed -n -e 's/@dpkg_dev@/$(DPKG_DEV)/' \ + -e 's/@gold_archs@/$(gold_targets)/' \ + -e 's/@gprofng_archs@/$(gprofng_archs)/' \ + -e '/^Package: binutils-for-build$$/q;p' \ + < debian/control.in > debian/control + sed -e "s/@target@/$(subst _,-,$(DEB_TARGET_GNU_TYPE))/g" \ + -e "s/@host_archs@/any/" \ + -e 's/@binutils_alt_triplet@//' \ + < debian/control.cross.in >> debian/control +else + sed -e 's/@dpkg_dev@/$(DPKG_DEV)/' \ + -e 's/@gold_archs@/$(gold_targets)/' \ + -e 's/@gprofng_archs@/$(gprofng_archs)/' \ + debian/control.in > debian/control + $(foreach ca,$(NATIVE_ARCHS), \ + sed \ + -e 's/@host_archs@/$(ca)$(if $(and $(filter yes,$(with_cross)),$(filter $(ca),$(DEB_HOST_ARCH) $(CROSS_ARCHS))), $(HOST_ARCHS_$(ca)))/g' \ + -e 's/@target@/$(subst _,-,$(call _gnu_type,$(ca)))/g' \ + -e 's/@binutils_alt_triplet@/$(if $(findstring i386,$(ca)),binutils-$(call _gnu_type,$(ca)))/g' \ + -e '$(if $(filter yes,$(same_source)),/^Built-Using/d)' \ + debian/control.cross.in >> debian/control; \ + ) +endif + @mkdir -p stamps + touch $@ + +####################### +# single-arch targets # +####################### + +SINGLE_CONFARGS = $(CONFARGS) $(CONFARGS_TARGET_$(DEB_HOST_ARCH)) +ifeq ($(with_gold),yes) + SINGLE_CONFARGS += --enable-ld=default --enable-gold +else + SINGLE_CONFARGS += --enable-ld=default --disable-gold +endif +SINGLE_CONFARGS += $(CONF_PGO) $(CONF_GPROFNG) + +stamps/configure-single: + $(checkdir) + env + @echo BEGIN $@ +ifeq ($(with_check),yes) + @if echo "spawn true" | /usr/bin/expect -f - >/dev/null; then \ + : ; \ + else \ + echo "expect is failing on your system with the above error, which means the"; \ + echo "testsuite will fail. Please resolve the above issues and retry the build."; \ + echo "-----------------------------------------------------------------------------"; \ + exit 1; \ + fi +endif + + : # force regeneration, not needed for releases + rm -f ld/ldgram.c ld/ldgram.h ld/ldlex.c + + find -name '*.[1-8]' -size 0 | xargs -r rm -f + + rm -rf stamps/configure-single builddir-single + mkdir builddir-single + cd builddir-single && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + ../configure --with-sysroot=/ \ + --libdir=/$(PF)/lib/$(DEB_HOST_MULTIARCH) \ + $(SINGLE_CONFARGS) + @mkdir -p stamps + touch $@ + +stamps/build-single: stamps/configure-single + $(checkdir) + @echo BEGIN $@ + env BFD_SOVER_EXT="$(SINGLE_VERSION)" CTF_SOVER_EXT="" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + $(MAKE) $(NJOBS) -C builddir-single \ + LDFLAGS="-Wl,-z,relro" +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +ifeq ($(with_check),yes) + -env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + $(MAKE) -C builddir-single -k check + rm -f $(pwd)/test-summary + for f in \ + builddir-single/binutils/binutils.sum \ + builddir-single/gas/testsuite/gas.sum \ + builddir-single/ld/ld.sum \ + builddir-single/libctf/libctf.sum \ + builddir-single/gprofng/gprofng.sum \ + builddir-single/libsframe/libsframe.sum \ + ; do \ + [ -f $$f ] || continue; \ + cat $$f >> $(pwd)/test-summary; \ + done + set -e; \ + tsi=test-summary-installed; \ + rm -f $$tsi; \ + if [ -f /usr/share/doc/binutils/test-summary-$(DEB_HOST_ARCH).gz ]; then \ + zcat /usr/share/doc/binutils/test-summary-$(DEB_HOST_ARCH).gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary.gz ]; then \ + zcat /usr/share/doc/binutils/test-summary.gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary ]; then \ + cat /usr/share/doc/binutils/test-summary > $$tsi; \ + fi; \ + if [ ! -f $$tsi ]; then \ + echo "No test results available for the installed binutils version"; \ + elif [ -x /usr/bin/python3 ]; then \ + echo "Test results, compared with installed binutils:"; \ + if python3 debian/test-suite-compare.py $$tsi test-summary; then \ + : ; \ + elif [ -n "$(ignore_regressions)" ]; then \ + echo "$(ignore_regressions)"; \ + else \ + false; \ + fi; \ + else \ + echo "python3 not installed, not comparing test results."; \ + fi +endif +endif + touch $@ + + +############################################################################### + +####################### +# pic build # +####################### + +PIC_CONFARGS = $(CONFARGS) $(CONFARGS_TARGET_$(DEB_HOST_ARCH)) +PIC_CONFARGS += --enable-ld=default --disable-gold --disable-gprofng + +stamps/configure-pic: + $(checkdir) + find -name '*.[1-8]' -size 0 | xargs -r rm -f + + rm -rf stamps/configure-pic builddir-pic + mkdir builddir-pic + cd builddir-pic && env CC="$(CC)" CXX="$(CXX)" CFLAGS="-fPIC $(CFLAGS)" CXXFLAGS="-fPIC $(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + ../configure --with-sysroot=/ \ + --libdir=/$(PF)/lib/$(DEB_HOST_MULTIARCH) \ + $(PIC_CONFARGS) + @mkdir -p stamps + touch $@ + +stamps/build-pic: stamps/configure-pic + $(checkdir) + @echo BEGIN $@ + env BFD_SOVER_EXT="$(SINGLE_VERSION)" CTF_SOVER_EXT="" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + $(MAKE) $(NJOBS) -C builddir-pic \ + LDFLAGS="-Wl,-z,relro" + touch $@ + + +############################################################################### + +##################### +# multiarch targets # +##################### + +multiarch_targets = \ + aarch64-linux-gnu \ + aarch64_be-linux-gnu \ + alpha-linux-gnu \ + arm-linux-gnueabi \ + hppa-linux-gnu \ + i686-linux-gnu \ + loongarch64-linux-gnu \ + m32r-linux-gnu \ + m68k-linux-gnu \ + m68k-rtems \ + mips-linux-gnu \ + mipsel-linux-gnu \ + mips64-linux-gnuabin32 \ + mips64el-linux-gnuabin32 \ + mips64-linux-gnu \ + mips64el-linux-gnu \ + mipsisa32r6-linux-gnu \ + mipsisa32r6el-linux-gnu \ + mipsisa64r6-linux-gnuabin32 \ + mipsisa64r6el-linux-gnuabin32 \ + mipsisa64r6-linux-gnuabi64 \ + mipsisa64r6el-linux-gnuabi64 \ + powerpc-linux-gnu \ + powerpc64-linux-gnu \ + powerpc64le-linux-gnu \ + riscv64-linux-gnu \ + s390-linux-gnu \ + s390x-linux-gnu \ + sh-linux-gnu \ + sparc-linux-gnu \ + sparc64-linux-gnu \ + x86_64-linux-gnu \ + x86_64-linux-gnux32 \ + m32r-linux-gnu \ + x86_64-pep + +# try to work around #758830 +ifeq ($(DEB_HOST_ARCH),sh4) + multiarch_targets := $(filter-out hppa-linux-gnu, $(multiarch_targets)) +endif + +stamps/configure-multi: + $(checkdir) + @echo BEGIN $@ + rm -rf stamps/configure-multi \ + builddir-multi + mkdir builddir-multi + cd builddir-multi \ + && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + ../configure $(CONFARGS) $(CONF_PGO) $(CONF_GPROFNG) \ + $(filter-out --enable-targets=%, $(CONFARGS_TARGET_$(DEB_HOST_ARCH))) \ + --with-sysroot=/ \ + --libdir=/$(PF)/lib/$(DEB_HOST_MULTIARCH) \ + --enable-targets=$(subst $(SPACE),$(COMMA),$(multiarch_targets)) + @mkdir -p stamps + touch $@ + +stamps/build-multi: stamps/configure-multi + $(checkdir) + @echo BEGIN $@ + env BFD_SOVER_EXT="$(MULTI_VERSION)" CTF_SOVER_EXT="$(MULTI_VERSION)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_HOST_ARCH)) \ + $(MAKE) $(NJOBS) -C builddir-multi \ + LDFLAGS="-Wl,-z,relro" + touch $@ + +############################################################################### + +################# +# cross targets # +################# + +CROSS_CONFARGS = $(CONFARGS) --enable-initfini-array + +ifeq ($(with_gold),yes) + CROSS_CONFARGS += --enable-ld=default --enable-gold +else + CROSS_CONFARGS += --enable-ld=default --disable-gold +endif + +stamps/configure.%: + $(checkdir) + @echo BEGIN $@ + rm -rf $@ builddir-$* + mkdir builddir-$* + cd builddir-$* \ + && env CC="$(CC)" CXX="$(CXX)" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$*) \ + ../configure \ + $(CROSS_CONFARGS) \ + $(CONFARGS_TARGET_$(*)) \ + --with-sysroot=/ \ + --libdir=/$(PF)/lib/$(call _multiarch,$*) \ + $(if $(filter $*, $(gold_targets)),--enable-ld=default $(if $(filter yes,$(with_gold)),--enable-gold,--disable-gold),--disable-gold) \ + --target=$(CROSS_GNU_TYPE) + @mkdir -p stamps + touch $@ + +stamps/build.%: stamps/configure.% + $(checkdir) + @echo BEGIN $@ + env BFD_SOVER_EXT="-$*" CTF_SOVER_EXT="-$*" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$*) \ + $(MAKE) -C builddir-$* $(NJOBS) \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LDFLAGS="$(LDFLAGS) -Wl,-z,relro" +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +ifeq ($(with_check),yes) + -env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \ + $(call SET_BINUTILS_MULTIARCH_ENV,$*) \ + $(MAKE) -C builddir-$* -k check + rm -f $(pwd)/test-summary-$* + for f in \ + builddir-$*/binutils/binutils.sum \ + builddir-$*/gas/testsuite/gas.sum \ + builddir-$*/ld/ld.sum \ + builddir-$*/libctf/libctf.sum \ + builddir-$*/gprofng/gprofng.sum \ + builddir-$*/libsframe/libsframe.sum \ + ; do \ + [ -f $$f ] || continue; \ + cat $$f >> $(pwd)/test-summary-$*; \ + done + set -e; \ + tsi=test-summary-$*-installed; \ + rm -f $$tsi; \ + if [ -f /usr/share/doc/$(P_CROSS)/test-summary.gz ]; then \ + zcat /usr/share/doc/$(P_CROSS)/test-summary.gz > $$tsi; \ + elif [ -f /usr/share/doc/binutils/test-summary-$*.gz ]; then \ + zcat /usr/share/doc/binutils/test-summary-$*.gz > $$tsi; \ + fi; \ + if [ ! -f $$tsi ]; then \ + echo "No test results available for the installed $(P_CROSS) version"; \ + elif [ -x /usr/bin/python3 ]; then \ + echo "Test results, compared with installed binutils:"; \ + if python3 debian/test-suite-compare.py $$tsi test-summary-$*; then \ + : ; \ + elif echo $(regression_archs) | grep --word-regexp --silent "$*"; then \ + echo "regressions ignore for target $*"; \ + else \ + false; \ + fi; \ + else \ + echo "python3 not installed, not comparing test results."; \ + fi +endif +endif + touch $@ + +stamps/install.%: stamps/build.% + $(checkdir) + @echo BEGIN $@ + rm -rf $(D_CROSS) + env MAKE="$(MAKE) VERSION=$(VERSION)-$*" \ + $(MAKE) -C builddir-$* DESTDIR=$(CURDIR)/$(D_CROSS) install + + rm -rf \ + $(D_CROSS)/$(PF)/share/info \ + $(D_CROSS)/$(PF)/share/locale + + rm -rf \ + $(D_CROSS)/$(PF)/etc $(D_CROSS)/etc + + mkdir -p $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + set -e; \ + d_src=$(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib; \ + d_dst=$(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH); \ + for lib in libbfd libopcodes; do \ + so=$$(basename $$(echo $$d_src/$$lib*$**.so)); \ + mv $$d_src/$$so $$d_dst/.; \ + ln -sf ../../../lib/$(DEB_HOST_MULTIARCH)/$$so $$d_src/$$lib.so; \ + mv $$d_src/$$lib.a $$d_dst/$${lib}-$(VERSION)-$*.a; \ + ln -sf ../../../lib/$(DEB_HOST_MULTIARCH)/$$lib-$(VERSION)-$*.a $$d_src/$$lib.a; \ + done + mv $(D_CROSS)/$(PF)/lib/$(call _multiarch,$*)/libctf*.so* \ + $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + + : # replace hard links with soft links + for i in $(D_CROSS)/usr/$(CROSS_GNU_TYPE)/bin/*; do \ + ln -sf ../../bin/$(CROSS_GNU_TYPE)-$$(basename $$i) $$i; \ + done + ln -sf $(CROSS_GNU_TYPE)-ld.bfd $(D_CROSS)/usr/bin/$(CROSS_GNU_TYPE)-ld + + $(call strip_package, $(P_CROSS),$(D_CROSS),.) + chmod ugo-x $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so + chmod ugo-x $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + chmod ugo-x $(D_CROSS)/$(PF)/lib/*/bfd-plugins/*.so + + : # Get rid of .la files since libtool obviously has no idea about transient paths + rm -f $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib/*.la + + for i in $(D_CROSS)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a; do \ + echo "lto-stripping $(basename $$i) ..."; \ + $(STRIP_LTO) $$i; \ + if which strip-nondeterminism >/dev/null 2>&1; then \ + echo "strip-nondeterminism $(basename $$i) ..."; \ + strip-nondeterminism $$i; \ + fi; \ + done + + : # gold symlinks + $(if $(filter $*, $(gold_targets)),$(if $(filter yes,$(with_gold)), \ + ln -sf $(CROSS_GNU_TYPE)-ld.gold $(D_CROSS)/usr/bin/$(CROSS_GNU_TYPE)-gold; \ + ln -sf ../../bin/$(CROSS_GNU_TYPE)-gold $(D_CROSS)/usr/$(CROSS_GNU_TYPE)/bin/gold; \ + ln -sf ../../bin/$(CROSS_GNU_TYPE)-dwp $(D_CROSS)/usr/$(CROSS_GNU_TYPE)/bin/dwp \ + )) + + : # no spu toolchain + rm -f $(D_CROSS)/$(PF)/bin/*embedspu + + : # no gprofng in cross packages + rm -f $(D_CROSS)/$(PF)/bin/*-gprofng + rm -f $(D_CROSS)/$(PF)/bin/*-gp-* + rm -f $(D_CROSS)/$(PF)/bin/*-gprofng-* + rm -rf $(D_CROSS)/$(PF)/lib/*/gprofng + rm -f $(D_CROSS)/$(PF)/lib/$(call _multiarch,$*)/libgprofng* + rm -rf $(D_CROSS)/$(PF)/share/doc/gprofng + + rm -f $(D_CROSS)/$(PF)/lib/$(call _multiarch,$*)/libsframe* + : # symlinks installed without prefix ... + rm -f $(D_CROSS)/$(PF)/bin/gp-* + + : # Remove windows related manpages + rm -f $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-{dlltool,nlmconv,windmc,windres}.1 + + : # symlink man pages + mv $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.1 \ + $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.bfd.1 + gzip -9n $(D_CROSS)/$(PF)/share/man/man1/* + for i in $(D_CROSS)/$(PF)/share/man/man1/*; do \ + b=$$(basename $$i | sed 's/$(CROSS_GNU_TYPE)-//'); \ + ln -sf $$b $$i; \ + done + ln -sf $(CROSS_GNU_TYPE)-ld.bfd.1.gz \ + $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.1.gz + + : # gold man pages + $(if $(filter $*, $(gold_targets)),$(if $(filter yes,$(with_gold)), \ + ln -sf ld.gold.1.gz $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-gold.1.gz; \ + ln -sf ld.gold.1.gz $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-ld.gold.1.gz; \ + ln -sf dwp.1.gz $(D_CROSS)/$(PF)/share/man/man1/$(CROSS_GNU_TYPE)-dwp.1.gz; \ + )) + + : # Don't want /usr/<arch>-linux to exist in any package, don't ship development files + rm -rf $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE) + + rm -f $(D_CROSS)/$(PF)/lib/*.a $(D_CROSS)/$(PF)/lib/*/*.a + rm -f $(D_CROSS)/$(PF)/lib/*.la $(D_CROSS)/$(PF)/lib/*/*.la + rm -f $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib/*.a + rm -f $(D_CROSS)/$(PF)/$(DEB_HOST_GNU_TYPE)/$(CROSS_GNU_TYPE)/lib/libctf* + rm -f $(D_CROSS)/$(PF)/lib/$(CROSS_GNU_TYPE)/libctf* + rm -f $(D_CROSS)/$(PF)/lib/$(CROSS_GNU_TYPE)/libsframe* + rm -f $(D_CROSS)/$(PF)/include/*.h + + : # remove RPATH + chrpath -k -d $$(file $(D_CROSS)/usr/bin/*|awk -F: '/ ELF/ {print $$1}') + chrpath -k -d $$(file $(D_CROSS)/usr/lib/$(DEB_HOST_MULTIARCH)/lib*.so*|awk -F: '/ ELF/ {print $$1}') + + touch $@ + +############################################################################### + +################# +# hppa64 target # +################# + +stamps/configure-hppa64: + $(checkdir) + @echo BEGIN $@ + rm -rf stamps/configure-hppa64 \ + builddir-hppa64 + mkdir builddir-hppa64 + cd builddir-hppa64 \ + && env CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ../configure \ + $(filter-out --enable-targets=%, $(CONFARGS)) \ + --libdir=/$(PF)/lib/hppa64-linux-gnu \ + --target=hppa64-linux-gnu + @mkdir -p stamps + touch $@ + +stamps/build-hppa64: stamps/configure-hppa64 + $(checkdir) + @echo BEGIN $@ + env BFD_SOVER_EXT="$(HPPA64_VERSION)" CTF_SOVER_EXT="$(HPPA64_VERSION)" \ + $(MAKE) $(NJOBS) -C builddir-hppa64 \ + LDFLAGS="-Wl,-z,relro" + touch $@ + +############################################################################### + +pre-build: +#ifneq (,$(filter $(DEB_HOST_ARCH), armel powerpc)) +# @echo Build it ... +#else +# @echo Explicitely fail the build for architecture $(DEB_HOST_ARCH) +# false +#endif + +build_stamps = stamps/build-single +build_stamps += stamps/build-pic +ifeq ($(with_multiarch),yes) + build_stamps += stamps/build-multi +endif +ifeq ($(with_hppa64),yes) + build_stamps += stamps/build-hppa64 +endif +ifeq ($(with_cross),yes) + build_stamps += $(addprefix stamps/build.,$(CROSS_ARCHS)) +endif +ifneq (,$(TARGET)) + ifeq ($(DEB_TARGET_GNU_TYPE),hppa64-linux-gnu) + build_stamps = stamps/build-hppa64 + else + build_stamps = stamps/build.$(DEB_TARGET_ARCH) + endif +endif +ifeq ($(BACKPORT),true) + build_stamps := + with_check := no +endif + +build: pre-build stamps/build +build-arch: pre-build stamps/build +build-indep: pre-build stamps/build +stamps/build: $(build_stamps) + touch $@ + +############################################################################### + +################## +# install target # +################## + +install_stamps = +ifeq ($(with_hppa64),yes) + install_stamps += stamps/install-hppa64 +endif +ifeq ($(with_cross),yes) + install_stamps += $(addprefix stamps/install.,$(CROSS_ARCHS)) +endif + +ifneq (,$(TARGET)) + ifeq ($(DEB_TARGET_GNU_TYPE),hppa64-linux-gnu) + install_stamp = stamps/install-hppa64 + else + install_stamp = stamps/install.$(DEB_TARGET_ARCH) + endif +else + install_stamp = stamps/install +endif +ifeq ($(BACKPORT),true) + install_stamps := +endif +install: $(install_stamp) +stamps/install: checkroot stamps/build $(install_stamps) + $(checkdir) + + rm -fr $(d_bin) $(d_com) $(d_lib) $(d_nat) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src) $(d_bld) $(d_ctf) $(d_ctfn) $(d_gpng) + $(install_dir) $(d_bin) $(d_com) $(d_lib) $(d_nat) $(d_dev) $(d_mul) $(d_mdev) $(d_doc) $(d_src) $(d_bld) + + : # install binutils and -dev stuff + env MAKE="$(MAKE) VERSION=$(SINGLE_VERSION)" \ + $(MAKE) -C builddir-single \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + DESTDIR=$(CURDIR)/$(d_bin) install + + $(install_dir) $(d_com)/$(PF)/share + mv $(d_bin)/$(PF)/share/locale $(d_com)/$(PF)/share/locale + + $(install_dir) $(d_doc)/$(PF)/share + mv $(d_bin)/$(PF)/share/info $(d_doc)/$(PF)/share/info + + $(install_dir) $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/bfd-plugins \ + $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts \ + $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + + $(install_dir) $(d_com)/$(PF)/share/man/man1 + set -e; for f in $(d_bin)/$(PF)/share/man/man1/*.1; do \ + sed -i -e '/^\.TH /s/[0-9]*-[0-9]*-[0-9]*/$(BUILD_DAY)/' $$f; \ + case "$$f" in \ + *gprofng*) ;; \ + *) mv "$$f" '$(d_com)/$(PF)/share/man/man1/' ;; \ + esac; \ + done + +ifeq ($(with_gprofng),yes) + $(install_dir) $(d_doc)/$(PF)/share/doc/binutils + mv $(d_bin)/$(PF)/share/doc/gprofng $(d_doc)/$(PF)/share/doc/binutils/. + $(install_dir) $(d_doc)/$(PF)/share/doc/binutils-doc + ln -sf ../binutils/gprofng $(d_doc)/$(PF)/share/doc/binutils-doc/gprofng + + chrpath -k -d $$(file $(d_bin)/usr/bin/{gprofng,gprofng-*}|awk -F: '/ ELF/ {print $$1}') +endif + +ifeq ($(with_multiarch),yes) + : # now install binutils-multiarch stuff + env MAKE="$(MAKE) VERSION=$(MULTI_VERSION)" \ + $(MAKE) -C builddir-multi \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + DESTDIR=$(CURDIR)/$(d_mul) install +endif + + : # fix bfd.h, removing the safety inclusion guard + awk '/PR 14072/,/^#endif/ {next} {print}' $(d_bin)/$(PF)/include/bfd.h \ + > $(d_bin)/$(PF)/include/bfd.h.new + mv $(d_bin)/$(PF)/include/bfd.h.new $(d_bin)/$(PF)/include/bfd.h + + : # fix multilib conflicts of generated values by __WORDSIZE-based expressions + sed -i -e '/^#include "ansidecl.h"/{p;s~^.*$$~#include <bits/wordsize.h>~;}' \ + -e 's/^#define BFD_DEFAULT_TARGET_SIZE \(32\|64\) *$$/#define BFD_DEFAULT_TARGET_SIZE __WORDSIZE/' \ + -e 's/^#define BFD_HOST_64BIT_LONG [01] *$$/#define BFD_HOST_64BIT_LONG (__WORDSIZE == 64)/' \ + -e 's/^#define BFD_HOST_64_BIT \(long \)\?long *$$/#if __WORDSIZE == 32\ +#define BFD_HOST_64_BIT long long\ +#else\ +#define BFD_HOST_64_BIT long\ +#endif/' \ + -e 's/^#define BFD_HOST_U_64_BIT unsigned \(long \)\?long *$$/#define BFD_HOST_U_64_BIT unsigned BFD_HOST_64_BIT/' \ + $(d_bin)/$(PF)/include/bfd.h + + : # copy plugin-api.h ... + cp -f include/plugin-api.h $(d_bin)/$(PF)/include + + : # We don't need to distribute everything in binutils and -dev + rm -f $(d_bin)/$(PF)/include/obstack.h + rm -f $(d_doc)/$(PF)/share/info/configure.* $(d_doc)/$(PF)/share/info/standards.* + +ifneq (,$(filter $(DEB_HOST_ARCH),powerpc ppc64 ppc64el)) + rm -f $(d_bin)/$(PF)/bin/embedspu +endif + +ifeq ($(with_multiarch),yes) + : # Now get rid of just about everything in binutils-multiarch + rm -rf $(d_mul)/$(PF)/man $(d_mul)/$(PF)/info $(d_mul)/$(PF)/include + rm -rf $(d_mul)/$(PF)/share/man $(d_mul)/$(PF)/share/info $(d_mul)/$(PF)/share/locale + rm -rf $(d_mul)/$(PF)/etc $(d_mul)/etc + + : # elfedit (even with its --input-mach option) + : # is the same for all targets. + rm -f $(d_mul)/$(PF)/bin/elfedit + + : # c++filt does not link to libbfd for anything more than + : # the help message, and its behavior does not vary + : # between arches aside from the --version message. + rm -f $(d_mul)/$(PF)/bin/c++filt + + : # As gas/README points out (search for --enable-targets), + : # multi-arch gas is not ready yet. + rm -f $(d_mul)/$(PF)/bin/as + rm -f $(d_mul)/$(PF)/bin/ld + rm -f $(d_mul)/$(PF)/bin/ld.bfd + rm -f $(d_mul)/$(PF)/bin/ld.gold + + rm -f $(d_mul)/$(PF)/bin/gprofng + rm -f $(d_mul)/$(PF)/bin/gp-* + rm -f $(d_mul)/$(PF)/bin/gprofng-* + rm -rf $(d_mul)/$(PF)/lib/*/gprofng + rm -rf $(d_mul)/$(PF)/share/doc/gprofng + + ifneq (,$(filter $(DEB_HOST_ARCH),powerpc ppc64 ppc64el)) + rm -f $(d_mul)/$(PF)/bin/embedspu + endif + rm -rf $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts + rm -rf $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/bfd-plugins +endif + +# rm -rf debian/binutils-*-*-*/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts \ +# debian/binutils-*-gnu/$(PF)/lib/$(DEB_HOST_MULTIARCH)/ldscripts + + $(install_dir) $(d_sfrd)/$(PF)/include + mv $(d_bin)/$(PF)/include/sframe*.h $(d_sfrd)/$(PF)/include/ + + $(install_dir) $(d_dev)/$(PF)/include + mv $(d_bin)/$(PF)/include/* $(d_dev)/$(PF)/include/ + + $(install_dir) $(d_ctf)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libctf.so.* \ + $(d_ctf)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + $(install_dir) $(d_ctfn)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libctf-nobfd.so.* \ + $(d_ctfn)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. +ifeq ($(with_gprofng),yes) + $(install_dir) $(d_gpng)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libgprofng.so.* \ + $(d_gpng)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng/libgp-*.so \ + $(d_gpng)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng/. +endif + + $(install_dir) $(d_sfrd)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libsframe.a \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libsframe.so \ + $(d_sfrd)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + + $(install_dir) $(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH) $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd.so \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes.so \ + $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libctf*.so \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + cp builddir-pic/opcodes/.libs/libopcodes.a \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes_pic.a + cp builddir-pic/bfd/.libs/libbfd.a \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd_pic.a +ifeq ($(with_gprofng),yes) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libgprofng.so \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + $(install_dir) $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng/*.a \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng +endif + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so \ + $(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + $(install_dir) $(d_sfrm)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libsframe.so.* \ + $(d_sfrm)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + +ifeq ($(with_multiarch),yes) + $(install_dir) $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH) $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + mv $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd.so \ + $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-multiarch.so + mv $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes.so \ + $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-multiarch.so + mv $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libctf-*.so \ + $(d_mdev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + rm -f $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libsframe.so* + rm -f $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libgprofng.so* + rm -f $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.la \ + $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a + rm -f $(d_mul)/$(PF)/lib*/$(DEB_HOST_MULTIARCH)/libiberty* +endif + + : # Get rid of .la files since libtool obviously has no idea about transient paths + rm -f $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.la + rm -f $(d_bin)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng/*.la + + chmod ugo-x $(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so + chmod ugo-x $(d_ctf)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + chmod ugo-x $(d_ctfn)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + chmod ugo-x $(d_nat)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/bfd-plugins/*.so +ifeq ($(with_gprofng),yes) + chmod ugo-x $(d_gpng)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + chmod ugo-x $(d_gpng)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/gprofng/*.so +endif + chmod ugo-x $(d_sfrm)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* +ifeq ($(with_native),yes) + $(call strip_package, $(p_lib), $(d_lib)) + $(call strip_package, $(p_ctf), $(d_ctf)) + $(call strip_package, $(p_ctfn), $(d_ctfn)) + ifeq ($(with_gprofng),yes) + $(call strip_package, $(p_gpng), $(d_gpng)) + endif + $(call strip_package, $(p_sfrm), $(d_sfrm)) +endif +ifeq ($(with_multiarch),yes) + chmod ugo-x $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so + chmod ugo-x $(d_mul)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + $(call strip_package, $(p_mul), $(d_mul)) +endif + + for i in \ + $(d_dev)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a \ + $(d_sfrd)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.a; \ + do \ + echo "lto-stripping $(basename $$i) ..."; \ + $(STRIP_LTO) $$i; \ + if which strip-nondeterminism >/dev/null 2>&1; then \ + echo "strip-nondeterminism $(basename $$i) ..."; \ + strip-nondeterminism $$i; \ + fi; \ + done + + : # Don't want /usr/<arch>-linux to exist in any package + rm -rf $(d_bin)/$(PF)/$(DEB_HOST_GNU_TYPE) + + : # Remove windows related manpages + rm -f $(d_com)/$(PF)/share/man/man1/{dlltool,nlmconv,windmc,windres}.1 + +ifeq ($(with_multiarch),yes) + rm -rf $(d_mul)/$(PF)/$(DEB_HOST_GNU_TYPE) + rm -f $(d_mul)/$(PF)/share/man/man1/{dlltool,nlmconv,windmc,windres}.1 +endif + + rm -f $(d_bin)/$(PF)/bin/ld.bfd + mv $(d_bin)/$(PF)/bin/ld $(d_bin)/$(PF)/bin/ld.bfd + mv $(d_com)/$(PF)/share/man/man1/ld.1 \ + $(d_com)/$(PF)/share/man/man1/ld.bfd.1 + ln -sf $(DEB_HOST_GNU_TYPE)-ld.bfd $(d_bin)/$(PF)/bin/ld + $(install_dir) $(d_com)/$(PF)/share/man/man1 + ln -sf ld.bfd.1.gz $(d_com)/$(PF)/share/man/man1/ld.1.gz +ifeq ($(with_gold),yes) + ln -s ld.gold $(d_bin)/$(PF)/bin/gold + ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + find debian -name '*gold' -o -name '*dwp' + if which help2man >/dev/null 2>&1; then \ + help2man -N -n 'The GNU ELF linker' \ + $(d_bin)/$(PF)/bin/ld.gold \ + | sed -e 's,debian/.*-ld.gold,ld.gold,g' \ + -e 's/$(DEB_HOST_GNU_TYPE)-//g' \ + -e '/supported emulations/d' \ + -e '/supported targets/s/.*/Run gold --help for a list of supported targets and emulations./' \ + -e '/Keep files mapped across passes/s/passes.*$$/passes (default on 64bit architectures)/' \ + -e '/Map whole files to memory/s/memory.*$$/memory (default on 64bit architectures)/' \ + -e '/Map relevant file parts to memory/s/memory.*$$/memory (default on 32bit architectures)/' \ + -e '/Release mapped files after each pass/s/pass.*$$/pass (default on 32bit architectures)/' \ + > debian/ld.gold.1; \ + help2man -N -n 'The DWARF packaging utility' \ + $(d_bin)/$(PF)/bin/dwp \ + | sed -e 's,debian/.*-dwp,dwp,g' \ + -e 's/$(DEB_HOST_GNU_TYPE)-//g' \ + > debian/dwp.1; \ + fi + endif + cp debian/dwp.1 $(d_com)/$(PF)/share/man/man1/ + cp debian/ld.gold.1 $(d_com)/$(PF)/share/man/man1/ + ln -s ld.gold.1.gz $(d_com)/$(PF)/share/man/man1/gold.1.gz + + : # install a symlink for the gold linker + $(install_dir) $(d_bin)/$(PF)/lib/gold-ld + ln -s ../../bin/ld.gold $(d_bin)/$(PF)/lib/gold-ld/ld +endif + : # install a symlink for the bfd linker + $(install_dir) $(d_bin)/$(PF)/lib/compat-ld + ln -s ../../bin/ld.bfd $(d_bin)/$(PF)/lib/compat-ld/ld + + : # Remove empty directory + rmdir $(d_bin)/$(PF)/include/ + +ifeq ($(with_gprofng),yes) + : # Remove the gp-* compat symlinks + rm -f $(PF)/bin/gp-* +endif + : # Rename non-prefixed binaries to $(DEB_HOST_GNU_TYPE)- prefixed binaries + : # and provide symlinks to the prefixed binaries. + $(install_dir) $(d_nat)/$(PF)/bin $(d_nat)/$(PF)/share/man/man1 + for i in $(binutils_programs); do \ + mv $(d_bin)/$(PF)/bin/$$i $(d_nat)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-$$i; \ + ln -sf $(DEB_HOST_GNU_TYPE)-$$i $(d_bin)/$(PF)/bin/$$i; \ + done +ifeq ($(with_gold),yes) + ln -sf $(DEB_HOST_GNU_TYPE)-ld.gold $(d_nat)/usr/bin/$(DEB_HOST_GNU_TYPE)-gold +endif + for i in $(binutils_programs); do \ + ln -sf $$i.1.gz $(d_nat)/$(PF)/share/man/man1/$(DEB_HOST_GNU_TYPE)-$$i.1.gz; \ + done +ifeq ($(with_native),yes) + $(call strip_package, $(p_nat), $(d_nat)) + ifeq ($(with_gprofng),yes) + $(call strip_package, $(p_bin), $(d_bin)) + endif +endif +ifeq ($(with_multiarch),yes) + for i in \ + addr2line ar gprof \ + nm objcopy objdump ranlib readelf size strings strip; \ + do \ + mv $(d_mul)/$(PF)/bin/$$i $(d_mul)/$(PF)/bin/$(DEB_HOST_GNU_TYPE)-$$i; \ + done + rm -f $(d_mul)/$(PF)/bin/embedspu +endif + touch $@ + +stamps/install-hppa64: checkroot stamps/build-hppa64 + $(checkdir) + + rm -fr $(d_hppa64) + $(install_dir) $(d_hppa64) + $(install_dir) $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + + : # install binutils-hppa64 stuff + env MAKE="$(MAKE) VERSION=$(HPPA64_VERSION)" \ + $(MAKE) -C builddir-hppa64 \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + DESTDIR=$(CURDIR)/$(d_hppa64) install + + : # move shared libs to the standard path + mv $(d_hppa64)/$(PF)/$(DEB_HOST_GNU_TYPE)/hppa64-linux-gnu/lib/lib*-*.so \ + $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + mv $(d_hppa64)/$(PF)/lib/hppa64-linux-gnu/libctf*.so.* \ + $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/. + + : # Now get rid of just about everything in binutils-hppa64 + rm -rf $(d_hppa64)/$(PF)/man + rm -rf $(d_hppa64)/$(PF)/info + rm -rf $(d_hppa64)/$(PF)/include + rm -rf $(d_hppa64)/$(PF)/share + rm -rf $(d_hppa64)/$(PF)/hppa-linux-gnu + rm -rf $(d_hppa64)/$(PF)/lib/libiberty.a + rm -rf $(d_hppa64)/$(PF)/lib/hppa64-linux-gnu/libctf* + rm -rf $(d_hppa64)/$(PF)/lib/hppa64-linux-gnu/libsframe* + + : # replace hard links with soft links + for i in $(d_hppa64)/usr/hppa64-linux-gnu/bin/*; do \ + ln -sf ../../bin/hppa64-linux-gnu-$$(basename $$i) $$i; \ + done + ln -sf hppa64-linux-gnu-ld.bfd $(d_hppa64)/usr/bin/hppa64-linux-gnu-ld + + $(call strip_package, $(p_hppa64), $(d_hppa64)) + chmod ugo-x $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so + chmod ugo-x $(d_hppa64)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/*.so.* + chmod ugo-x $(d_hppa64)/$(PF)/lib/*/bfd-plugins/*.so + + : # remove RPATH + chrpath -k -d $$(file $(d_hppa64)/usr/bin/*|awk -F: '/ ELF/ {print $$1}') + chrpath -k -d $$(file $(d_hppa64)/usr/lib/$(DEB_HOST_MULTIARCH)/lib*.so*|awk -F: '/ ELF/ {print $$1}') + + : # Don't want /usr/<arch>-linux to exist in any package + rm -rf $(d_hppa64)/$(PF)/$(DEB_HOST_GNU_TYPE) + + touch $@ + +############################################################################### + +####################### +# binary-indep target # +####################### + +binary-indep: checkroot build install + $(checkdir) + + rm -f debian/files debian/substvars + +# Cross builds do not have documentation packages +ifeq (,$(TARGET)) + + $(install_dir) $(d_doc)/DEBIAN + +ifeq ($(GFDL_INVARIANT_FREE),yes) + rm -f $(d_doc)/$(PF)/share/info/bfd.info* + rm -f $(d_doc)/$(PF)/share/info/bfdint.info* + rm -f $(d_doc)/$(PF)/share/info/ldint.info* +endif + +ifneq ($(BACKPORT),true) + $(install_dir) $(d_doc)/$(PF)/share/doc/$(p_doc)/ + $(install_file) debian/changelog $(d_doc)/$(PF)/share/doc/$(p_doc)/changelog.Debian + $(install_file) debian/copyright $(d_doc)/$(PF)/share/doc/$(p_doc)/ + for i in bfd gas gprof ld; do \ + ln -sf ../$(p_bin)/$$i $(d_doc)/$(PF)/share/doc/$(p_doc)/$$i; \ + done + find $(d_doc)/$(PF)/share/doc/$(p_doc) -maxdepth 1 -type f ! -name copyright | xargs gzip -9n + gzip -9n $(d_doc)/$(PF)/share/info/* + + dpkg-gencontrol -P$(d_doc) -p$(p_doc) + $(CHOWN) -R root:root $(d_doc) + chmod -R go=rX $(d_doc) + find $(d_doc) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_doc) .. + + $(install_dir) $(d_src)/$(PF)/share/doc/$(p_src)/ + $(install_file) debian/changelog $(d_src)/$(PF)/share/doc/$(p_src)/changelog.Debian + $(install_file) debian/copyright $(d_src)/$(PF)/share/doc/$(p_src)/ + find $(d_src)/$(PF)/share/doc/$(p_src) -maxdepth 1 -type f ! -name copyright | xargs gzip -9n +endif # ifndef BACKPORT + + $(install_dir) $(d_src)/DEBIAN + $(install_dir) $(d_src)/$(PF)/src/binutils/patches + $(install_file) debian/patches/* $(d_src)/$(PF)/src/binutils/patches/ + cd .. && find $(source_files) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' && \ + find $(source_files) -type f -print0 | LC_ALL=C sort -z | \ + XZ_OPT=-9 tar --null -T - -c --xz --mode=go=rX,u+rw,a-s \ + --owner=0 --group=0 --numeric-owner --sort=name \ + --xform='s=^[^/]*\/=binutils-$(VERSION)/=' \ + -f $(pwd)/$(d_src)/$(PF)/src/binutils/binutils-$(VERSION).tar.xz \ + $(source_files) + + tar cf - $$(find './debian' -mindepth 1 \( \ + -path './debian/binutils*' -type d -prune -o \ + -path './debian/libbinutils' -type d -prune -o \ + -path './debian/binutils*-dbg' -type d -prune -o \ + -path './debian/libbinutils-dbg' -type d -prune -o \ + -path './debian/patches' -prune -o \ + -path './debian/libctf*' -type d -prune -o \ + -path './debian/libgprofng*' -type d -prune -o \ + -path './debian/libsframe*' -type d -prune -o \ + -path './debian/tmp*' -prune -o \ + -path './debian/.bzr*' -prune -o \ + -path './debian/files' -prune -o \ + -print \) ) \ + | tar -x -C $(d_src)/$(PF)/src/binutils -f - + -chmod 755 $(d_src)/$(PF)/src/binutils/debian/*.{pre,post}{inst,rm} + chmod 755 $(d_src)/$(PF)/src/binutils/debian/test-suite-compare.py + + dpkg-gencontrol -P$(d_src) -p$(p_src) + $(CHOWN) -R root:root $(d_src) + chmod -R go=rX $(d_src) + find $(d_src) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_src) .. + + + $(install_dir) $(d_bld)/DEBIAN $(d_bld)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_bld)/$(PF)/share/doc/$(p_bld) + dpkg-gencontrol -P$(d_bld) -p$(p_bld) -Vbinutils:minver=$(min_ver) + $(CHOWN) -R root:root $(d_bld) + chmod -R go=rX $(d_bld) + find $(d_bld) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_bld) .. +endif + +############################################################################### + +####################### +# binary-arch target # +####################### + +binary.%: stamps/install.% install + rm -rf $(D_CROSS)/$(PF)/share/info + + rm -rf $(D_CROSS)/DEBIAN $(D_CROSS)-dbg/DEBIAN + + : # make lintian happy + $(install_dir) $(D_CROSS)/$(PF)/share/lintian/overrides + sed 's/@PKG@/$(P_CROSS)/' debian/binutils-cross.overrides \ + > $(D_CROSS)/$(PF)/share/lintian/overrides/$(P_CROSS) + + : # install maintainer scripts + $(install_dir) $(D_CROSS)/$(PF)/share/doc/$(P_CROSS) + $(install_file) debian/changelog \ + $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/changelog.Debian + $(install_file) debian/copyright debian/README.cross \ + $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/ + gzip -9nf $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/changelog.Debian + +ifeq ($(with_check),yes) + : # remove user and date from test-summary for reproducible builds + sed -i -e '/Test run by/d' test-summary-$* + $(install_file) test-summary-$* \ + $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/test-summary + gzip -9nf $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/test-summary + $(install_dir) $(D_CROSS)/$(PF)/share/doc/$(p_bin) + ln -sf ../$(P_CROSS)/test-summary.gz \ + $(D_CROSS)/$(PF)/share/doc/$(p_bin)/test-summary-$*.gz +endif + + for pkg in bfd gas gprof ld; do \ + ln -sf ../binutils/$$pkg \ + $(D_CROSS)/$(PF)/share/doc/$(P_CROSS)/$$pkg; \ + done + + $(install_dir) $(D_CROSS)/DEBIAN $(D_CROSS)-dbg/DEBIAN + if [ "$(is_rc)" = yes ]; then \ + nver=$$(echo $(DEB_VERSION_UPSTREAM) | awk -F. '{ OFS="."; NF--; $$NF=$$NF+1; print }'); \ + else \ + nver=$$(echo $(DEB_VERSION_UPSTREAM) | awk -F. '{ OFS="."; if (NF > 2) $$NF=$$NF+1; else $$++NF=1; print }'); \ + fi; \ + date_ext=$(DATE_EXT); \ + [ "$(is_rc)" = yes ] && date_ext=; \ + $(install_file) debian/binutils.triggers $(D_CROSS)/DEBIAN/triggers + + rm -f debian/substvars + dpkg-shlibdeps $(D_CROSS)/$(PF)/bin/* -l$(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + dpkg-gencontrol -P$(D_CROSS) -p$(P_CROSS) \ + -VBuilt-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W binutils-source)" + cd $(D_CROSS) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(D_CROSS)-dbg -p$(P_CROSS)-dbg + cd $(D_CROSS)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + $(CHOWN) -R root:root $(D_CROSS) $(D_CROSS)-dbg + chmod -R go=rX $(D_CROSS) $(D_CROSS)-dbg + find $(D_CROSS) $(D_CROSS)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(D_CROSS) .. + $(DPKG_DEB) --build $(D_CROSS)-dbg .. + +binary-for-host: checkroot + $(checkdir) + + rm -fr $(d_hst) + $(install_dir) $(d_hst)/DEBIAN/ $(d_hst)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_hst)/$(PF)/share/doc/$(p_hst) + + rm -f debian/substvars + $(for_target) dpkg-gencontrol -P$(d_hst) -p$(p_hst) \ + -Vbinutils:native=$(if $(TARGET),$(p_cross),$(p_nat)) \ + -Vbinutils:minver=$(min_ver) + + $(CHOWN) -R root:root $(d_hst) + chmod -R go=rX $(d_hst) + + find $(d_hst) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_hst) .. + +binary-arch: checkroot binary-native binary-for-host \ + $(if $(filter yes, $(with_cross)),$(addprefix binary.,$(CROSS_ARCHS))) + $(checkdir) + +binary-native: checkroot build install $(checkdir) + +ifneq ($(BACKPORT),true) +# Process the following only if $(TARGET) is set +ifneq (,$(TARGET)) + rm -rf $(d_cross)/$(PF)/share/info $(d_cross)/$(PF)/share/man + + $(install_dir) $(d_cross)/DEBIAN + + $(install_dir) $(d_cross)/$(PF)/share/doc/$(p_cross)/ + $(install_file) debian/changelog $(d_cross)/$(PF)/share/doc/$(p_cross)/changelog.Debian + $(install_file) debian/copyright debian/README.cross $(d_cross)/$(PF)/share/doc/$(p_cross)/ + gzip -9nf $(d_cross)/$(PF)/share/doc/$(p_cross)/changelog.Debian + + for pkg in bfd gas gprof ld; do \ + ln -sf ../binutils/$$pkg $(d_cross)/$(PF)/share/doc/$(p_cross)/$$pkg; \ + done + + rm -f debian/substvars + dpkg-shlibdeps $(d_cross)/$(PF)/bin/* \ + -ldebian/tmp/$(PF)/lib/$(DEB_TARGET_MULTIARCH) -l$(d_lib)/$(PF)/lib/$(DEB_TARGET_MULTIARCH) + dpkg-gencontrol -P$(d_cross) -p$(p_cross) \ + -VBuilt-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W binutils-source)" + find $(d_cross) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_cross) .. + +else + : # generate some control & helper files + if [ "$(is_rc)" = yes ]; then \ + nver=$$(echo $(DEB_VERSION_UPSTREAM) | awk -F. '{ OFS="."; NF--; $$NF=$$NF+1; print }'); \ + else \ + nver=$$(echo $(DEB_VERSION_UPSTREAM) | awk -F. '{ OFS="."; if (NF > 2) $$NF=$$NF+1; else $$++NF=1; print }'); \ + fi; \ + for i in debian/*.in; do \ + case "$$i" in debian/control.in|debian/control.cross.in) continue; esac; \ + date_ext=$(DATE_EXT); \ + case "$$i" in debian/*.shlibs.in) [ "$(is_rc)" = yes ] && date_ext=; esac; \ + sed -e 's/@VER@/$(VERSION)/g' \ + -e 's/@DEB_VER@/$(DEB_VERSION)/g' \ + -e 's/@DEB_SVER@/$(DEB_SVERSION)/g' \ + -e 's/@DEB_UVER@/$(DEB_VERSION_UPSTREAM)/g' \ + -e "s/@DEB_NVER@/$$nver/g" \ + -e "s/@DATE_EXT@/$$date_ext/g" \ + -e 's/@DEB_ARCH@/$(DEB_HOST_ARCH)/g' \ + -e 's/@DEB_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ + -e 's/@DEB_TRIPLET@/$(DEB_HOST_GNU_TYPE)/g' \ + -e "s/@dpkg_dev@/$(DPKG_DEV)/" \ + $$i > $${i%*.in}; \ + case "$$i" in *.post*|*.pre*) chmod 755 $${i%*.in}; esac; \ + done + + : # install bug reporting information + $(install_file) -D debian/$(p_bin).presubj \ + $(d_bin)/$(PF)/share/bug/$(p_bin)/presubj +ifeq ($(with_multiarch),yes) + $(install_dir) $(d_mul)/$(PF)/share/bug + ln -sf $(p_bin) $(d_mul)/$(PF)/share/bug/$(p_mul) +endif +ifeq ($(with_hppa64),yes) + $(install_dir) $(d_hppa64)/$(PF)/share/bug + ln -sf $(p_bin) $(d_hppa64)/$(PF)/share/bug/$(p_hppa64) +endif + + : # make lintian happy + $(install_file) -D debian/$(p_com).overrides \ + $(d_com)/$(PF)/share/lintian/overrides/$(p_com) + $(install_file) -D debian/$(p_lib).overrides \ + $(d_lib)/$(PF)/share/lintian/overrides/$(p_lib) + $(install_file) -D debian/binutils.overrides \ + $(d_bin)/$(PF)/share/lintian/overrides/$(p_bin) + $(install_dir) $(d_nat)/$(PF)/share/lintian/overrides + sed 's/@PKG@/$(p_nat)/' debian/binutils-triplet.overrides \ + > $(d_nat)/$(PF)/share/lintian/overrides/$(p_nat) +ifeq ($(with_multiarch),yes) + $(install_file) -D debian/$(p_mul).overrides \ + $(d_mul)/$(PF)/share/lintian/overrides/$(p_mul) + $(install_file) -D debian/$(p_mdev).overrides \ + $(d_mdev)/$(PF)/share/lintian/overrides/$(p_mdev) +endif +ifeq ($(with_hppa64),yes) + $(install_file) -D debian/$(p_hppa64).overrides \ + $(d_hppa64)/$(PF)/share/lintian/overrides/$(p_hppa64) +endif + + : # install maintainer scripts + $(install_dir) $(d_bin)/DEBIAN $(d_bin)-dbg/DEBIAN + $(install_script) debian/binutils.preinst $(d_bin)/DEBIAN/preinst + + $(install_dir) $(d_lib)/DEBIAN $(d_lib)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_lib)/DEBIAN/triggers + $(install_file) debian/libbinutils.shlibs $(d_lib)/DEBIAN/shlibs + + $(install_dir) $(d_ctf)/DEBIAN $(d_ctf)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_ctf)/DEBIAN/triggers + $(install_file) debian/libctf0.shlibs $(d_ctf)/DEBIAN/shlibs + $(install_file) debian/libctf0.symbols $(d_ctf)/DEBIAN/symbols + + $(install_dir) $(d_ctfn)/DEBIAN $(d_ctfn)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_ctfn)/DEBIAN/triggers + $(install_file) debian/libctf-nobfd0.shlibs $(d_ctfn)/DEBIAN/shlibs + $(install_file) debian/libctf-nobfd0.symbols $(d_ctfn)/DEBIAN/symbols + + $(install_dir) $(d_com)/DEBIAN + $(install_file) debian/binutils-common.conffiles $(d_com)/DEBIAN/conffiles + +ifeq ($(with_gprofng),yes) + $(install_dir) $(d_gpng)/DEBIAN $(d_gpng)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_gpng)/DEBIAN/triggers + $(install_file) debian/libgprofng0.shlibs $(d_gpng)/DEBIAN/shlibs + + $(install_file) debian/binutils.conffiles $(d_bin)/DEBIAN/conffiles +endif + $(install_dir) $(d_sfrm)/DEBIAN $(d_sfrm)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_sfrm)/DEBIAN/triggers + $(install_file) debian/libsframe2.shlibs $(d_sfrm)/DEBIAN/shlibs + $(install_file) debian/libsframe2.symbols $(d_sfrm)/DEBIAN/symbols + + $(install_dir) $(d_sfrd)/DEBIAN + + $(install_dir) $(d_nat)/DEBIAN $(d_nat)-dbg/DEBIAN + + $(install_dir) $(d_dev)/DEBIAN + +ifeq ($(with_multiarch),yes) + $(install_dir) $(d_mul)/DEBIAN $(d_mul)-dbg/DEBIAN + $(install_script) debian/binutils-multiarch.preinst $(d_mul)/DEBIAN/preinst + $(install_script) debian/binutils-multiarch.postinst $(d_mul)/DEBIAN/postinst + $(install_script) debian/binutils-multiarch.prerm $(d_mul)/DEBIAN/prerm + $(install_script) debian/binutils-multiarch.postrm $(d_mul)/DEBIAN/postrm + $(install_file) debian/binutils-multiarch.shlibs $(d_mul)/DEBIAN/shlibs + $(install_file) debian/binutils.triggers $(d_mul)/DEBIAN/triggers + $(install_dir) $(d_mdev)/DEBIAN +endif + +ifeq ($(with_hppa64),yes) + $(install_dir) $(d_hppa64)/DEBIAN $(d_hppa64)-dbg/DEBIAN + $(install_file) debian/binutils.triggers $(d_hppa64)/DEBIAN/triggers +endif + + : # install docs + $(install_dir) $(d_bin)/$(PF)/share/doc/$(p_bin)/ + $(install_file) debian/changelog $(d_bin)/$(PF)/share/doc/$(p_bin)/changelog.Debian + $(install_file) debian/copyright $(d_bin)/$(PF)/share/doc/$(p_bin)/ + + $(install_dir) $(d_com)/$(PF)/share/doc/$(p_com)/ + $(install_file) debian/changelog $(d_com)/$(PF)/share/doc/$(p_com)/changelog.Debian + $(install_file) debian/copyright $(d_com)/$(PF)/share/doc/$(p_com)/ + + $(install_dir) $(d_lib)/$(PF)/share/doc/ + ln -sf $(p_com) $(d_lib)/$(PF)/share/doc/$(p_lib) + + $(install_dir) $(d_ctf)/$(PF)/share/doc/ + ln -sf $(p_lib) $(d_ctf)/$(PF)/share/doc/$(p_ctf) + + $(install_dir) $(d_ctfn)/$(PF)/share/doc/$(p_ctfn) + $(install_file) debian/changelog $(d_ctfn)/$(PF)/share/doc/$(p_ctfn)/changelog.Debian + $(install_file) debian/copyright $(d_ctfn)/$(PF)/share/doc/$(p_ctfn)/ + +ifeq ($(with_gprofng),yes) + $(install_dir) $(d_gpng)/$(PF)/share/doc/ + ln -sf $(p_lib) $(d_gpng)/$(PF)/share/doc/$(p_gpng) +endif + $(install_dir) $(d_sfrm)/$(PF)/share/doc/$(p_sfrm) + $(install_file) debian/changelog $(d_sfrm)/$(PF)/share/doc/$(p_sfrm)/changelog.Debian + $(install_file) debian/copyright $(d_sfrm)/$(PF)/share/doc/$(p_sfrm)/ + + $(install_dir) $(d_sfrd)/$(PF)/share/doc/ + ln -sf $(p_sfrm) $(d_sfrd)/$(PF)/share/doc/$(p_sfrd) + + $(install_dir) $(d_nat)/$(PF)/share/doc/ + ln -sf $(p_lib) $(d_nat)/$(PF)/share/doc/$(p_nat) + + $(install_dir) $(d_dev)/$(PF)/share/doc/ + ln -sf $(p_bin) $(d_dev)/$(PF)/share/doc/$(p_dev) +ifeq ($(with_multiarch),yes) + $(install_dir) $(d_mul)/$(PF)/share/doc/ + ln -sf $(p_bin) $(d_mul)/$(PF)/share/doc/$(p_mul) + $(install_dir) $(d_mdev)/$(PF)/share/doc/ + ln -sf $(p_mul) $(d_mdev)/$(PF)/share/doc/$(p_mdev) +endif +ifeq ($(with_hppa64),yes) + $(install_dir) $(d_hppa64)/$(PF)/share/doc/ + ln -sf $(p_bin) $(d_hppa64)/$(PF)/share/doc/$(p_hppa64) +endif + +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) +ifeq ($(with_check),yes) + : # remove user and date from test-summary for reproducible builds + sed -i -e '/Test run by/d' $(pwd)/test-summary + $(install_dir) $(d_nat)/$(PF)/share/doc/$(p_bin) + $(install_file) test-summary \ + $(d_nat)/$(PF)/share/doc/$(p_bin)/test-summary-$(DEB_HOST_ARCH) + gzip -9nf \ + $(d_nat)/$(PF)/share/doc/$(p_bin)/test-summary-$(DEB_HOST_ARCH) + + : # save log and sum files in $(p_dev) + $(install_dir) $(d_dev)/$(PF)/share/doc/$(p_bin)/tests + for i in $$(find builddir-single -name '*.sum'); do \ + b=$$(basename $$i .sum); \ + $(install_file) $$i $(d_dev)/$(PF)/share/doc/$(p_bin)/tests/$$b.sum; \ + sed -i -e '/Test run by/d' $(d_dev)/$(PF)/share/doc/$(p_bin)/tests/$$b.sum; \ + xz -9v $(d_dev)/$(PF)/share/doc/$(p_bin)/tests/$$b.sum; \ + $(install_file) $${i%.sum}.log $(d_dev)/$(PF)/share/doc/$(p_bin)/tests/$$b.log; \ + xz -9v $(d_dev)/$(PF)/share/doc/$(p_bin)/tests/$$b.log; \ + done +endif +endif + $(install_dir) $(d_com)/$(PF)/share/doc/$(p_bin) + $(install_file) binutils/NEWS debian/README.cross \ + $(d_com)/$(PF)/share/doc/$(p_bin)/ + + $(install_file) binutils/ChangeLog $(d_com)/$(PF)/share/doc/$(p_bin)/changelog + + for pkg in bfd gas gprof ld; do \ + $(install_dir) $(d_com)/$(PF)/share/doc/$(p_bin)/$$pkg; \ + done + $(install_file) bfd/ChangeLog bfd/PORTING bfd/TODO \ + $(d_com)/$(PF)/share/doc/$(p_bin)/bfd/ + $(install_file) gas/ChangeLog gas/NEWS $(d_com)/$(PF)/share/doc/$(p_bin)/gas/ + $(install_file) gprof/ChangeLog gprof/TODO gprof/TEST \ + $(d_com)/$(PF)/share/doc/$(p_bin)/gprof/ + $(install_file) ld/ChangeLog ld/TODO ld/NEWS \ + $(d_com)/$(PF)/share/doc/$(p_bin)/ld/ + + : # These only exist in H. J. Lu releases not GNU ones. + for dir in binutils bfd gas gprof ld; do \ + if [ -f $$dir/ChangeLog.linux ]; then \ + $(install_file) $$dir/ChangeLog.linux $(d_com)/$(PF)/share/doc/$(p_bin)/$$dir/; \ + fi; \ + done + + : # Copy bbconv.pl to the doc dir for use by interested people + $(install_file) gprof/bbconv.pl $(d_com)/$(PF)/share/doc/$(p_bin)/gprof/. + + : # Compress stuff that needs it + gzip -9n $(d_ctfn)/$(PF)/share/doc/$(p_ctfn)/changelog.Debian + + gzip -9n $(d_bin)/$(PF)/share/doc/$(p_bin)/changelog.Debian + find $(d_com)/$(PF)/share/doc/$(p_bin)/ -type f ! -name bbconv.pl | xargs gzip -9n + gzip -9n $(d_com)/$(PF)/share/doc/$(p_com)/changelog.Debian + gzip -9n $(d_com)/$(PF)/share/man/man1/*.1 +ifeq ($(with_gprofng),yes) + gzip -9n $(d_bin)/$(PF)/share/man/man1/*.1 +endif + + gzip -9n $(d_sfrm)/$(PF)/share/doc/$(p_sfrm)/changelog.Debian + + : # Finish it all up +ifeq ($(with_gprofng),yes) + find $(d_bin) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps +endif + dpkg-gencontrol -P$(d_bin) -p$(p_bin) \ + $(CONFLICTS_TARGET_$(DEB_HOST_ARCH)) $(gold_substvars) \ + -Vbinutils:native=$(p_nat) + cd $(d_bin) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + find $(d_lib) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_lib) -p$(p_lib) + cd $(d_lib) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_lib)-dbg -p$(p_lib)-dbg + cd $(d_lib)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + dpkg-gensymbols -P$(d_ctf) -p$(p_ctf) -l$(d_lib) + dpkg-gensymbols -P$(d_ctfn) -p$(p_ctfn) +ifeq ($(with_gprofng),yes) + -dpkg-gensymbols -P$(d_gpng) -p$(p_gpng) -l$(d_lib) +endif + dpkg-gensymbols -P$(d_sfrm) -p$(p_sfrm) + + rm -f debian/substvars + find $(d_ctf) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_ctf) -p$(p_ctf) + cd $(d_ctf) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_ctf)-dbg -p$(p_ctf)-dbg + cd $(d_ctf)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + find $(d_ctfn) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_ctfn) -p$(p_ctfn) + cd $(d_ctfn) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_ctfn)-dbg -p$(p_ctfn)-dbg + cd $(d_ctfn)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + +ifeq ($(with_gprofng),yes) + rm -f debian/substvars + find $(d_gpng) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_gpng) -p$(p_gpng) + cd $(d_gpng) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_gpng)-dbg -p$(p_gpng)-dbg + cd $(d_gpng)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_bin)-dbg -p$(p_bin)-dbg -Vbinutils:native=$(p_nat) + cd $(d_bin)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums +endif + + rm -f debian/substvars + find $(d_sfrm) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_sfrm) -p$(p_sfrm) + cd $(d_sfrm) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_sfrm)-dbg -p$(p_sfrm)-dbg + cd $(d_sfrm)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + dpkg-gencontrol -P$(d_sfrd) -p$(p_sfrd) + cd $(d_sfrd) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + mkdir -p $(d_com)/DEBIAN + dpkg-gencontrol -P$(d_com) -p$(p_com) + cd $(d_com) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + find $(d_nat) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps -l$(d_lib)/$(PF)/lib/$(DEB_HOST_MULTIARCH) + dpkg-gencontrol -P$(d_nat) -p$(p_nat) $(goldnat_substvars) \ + -VextraDepends='libbinutils (= $${binary:Version})' + cd $(d_nat) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_nat)-dbg -p$(p_nat)-dbg -VextraDepends='libbinutils (= $${binary:Version})' + cd $(d_nat)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + dpkg-gencontrol -P$(d_dev) -p$(p_dev) + cd $(d_dev) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + +ifeq ($(with_multiarch),yes) + rm -f debian/substvars + find $(d_mul) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_mul) -p$(p_mul) + cd $(d_mul) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_mul)-dbg -p$(p_mul)-dbg + cd $(d_mul)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + + rm -f debian/substvars + mkdir -p $(d_mdev)/DEBIAN + dpkg-gencontrol -P$(d_mdev) -p$(p_mdev) + cd $(d_mdev) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs -r md5sum > DEBIAN/md5sums +endif + +ifeq ($(with_hppa64),yes) + rm -f debian/substvars + find $(d_hppa64) -type f | xargs file | grep ELF | cut -d: -f 1 | xargs dpkg-shlibdeps + dpkg-gencontrol -P$(d_hppa64) -p$(p_hppa64) + cd $(d_hppa64) && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums + dpkg-gencontrol -P$(d_hppa64)-dbg -p$(p_hppa64)-dbg + cd $(d_hppa64)-dbg && find -type f ! -regex './DEBIAN/.*' -printf '%P\n' | LC_ALL=C sort | xargs md5sum > DEBIAN/md5sums +endif + + $(CHOWN) -R root:root $(d_bin) $(d_com) $(d_lib) $(d_lib)-dbg $(d_ctf) $(d_ctf)-dbg $(d_ctfn) $(d_ctfn)-dbg $(d_nat) $(d_nat)-dbg $(d_dev) $(d_sfrm) $(d_sfrm)-dbg $(d_sfrd) + chmod -R go=rX $(d_bin) $(d_com) $(d_lib) $(d_lib)-dbg $(d_ctf) $(d_ctf)-dbg $(d_ctfn) $(d_ctfn)-dbg $(d_nat) $(d_nat)-dbg $(d_dev) $(d_sfrm) $(d_sfrm)-dbg $(d_sfrd) + find $(d_bin) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_bin) .. + find $(d_com) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_com) .. + find $(d_ctf) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_ctf) .. + find $(d_ctf)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_ctf)-dbg .. + find $(d_ctfn) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_ctfn) .. + find $(d_ctfn)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_ctfn)-dbg .. +ifeq ($(with_gprofng),yes) + $(CHOWN) -R root:root $(d_gpng) $(d_gpng)-dbg $(d_bin)-dbg + chmod -R go=rX $(d_gpng) $(d_gpng)-dbg $(d_bin)-dbg + find $(d_gpng) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_gpng) .. + find $(d_gpng)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_gpng)-dbg .. + find $(d_bin)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_bin)-dbg .. +endif + find $(d_sfrm) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_sfrm) .. + find $(d_sfrm)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_sfrm)-dbg .. + find $(d_sfrd) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_sfrd) .. + find $(d_lib) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_lib) .. + find $(d_lib)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_lib)-dbg .. + find $(d_nat) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_nat) .. + find $(d_nat)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_nat)-dbg .. + find $(d_dev) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_dev) .. +ifeq ($(with_multiarch),yes) + $(CHOWN) -R root:root $(d_mul) $(d_mul)-dbg + chmod -R go=rX $(d_mul) $(d_mul)-dbg + find $(d_mul) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_mul) .. + find $(d_mul)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_mul)-dbg .. + + $(CHOWN) -R root:root $(d_mdev) + chmod -R go=rX $(d_mdev) + find $(d_mdev) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_mdev) .. +endif +ifeq ($(with_hppa64),yes) + $(CHOWN) -R root:root $(d_hppa64)-dbg + chmod -R go=rX $(d_hppa64) $(d_hppa64)-dbg + find $(d_hppa64) -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_hppa64) .. + find $(d_hppa64)-dbg -depth -newermt '$(BUILD_DATE)' -print0 | \ + xargs -0r touch --no-dereference --date='$(BUILD_DATE)' + $(DPKG_DEB) --build $(d_hppa64)-dbg .. +endif + @echo '==================== Build finished ====================' + ps aux + +endif # Process the following only if $(TARGET) is set +endif # ifndef BACKPORT + +############################################################################### + +define checkdir + test -f bfd/elf32.c -a -f debian/rules +endef + +# if which pkg_create_dbgsym >/dev/null 2>&1; then \ +# pkg_create_dbgsym $1 $2; \ +# fi + +ifeq ($(with_strip),yes) +# strip_package: <pkgname> <install-dir> <???> +define strip_package + $(install_dir) $(strip $2)-dbg/usr/share/doc/ + ln -sf $(strip $1) $(strip $2)-dbg/usr/share/doc/$(strip $1)-dbg + : # Strip shared libraries and binaries + set -e; \ + nfiles=0; \ + for i in \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libbfd-*so \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libopcodes-*so \ + $(strip $2)/$(PF)/lib/*/bfd-plugins/libdep.so \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libctf*.so.0.0.0 \ + $(strip $2)/$(PF)/lib/$(DEB_HOST_MULTIARCH)/libgprofng.so.0.0.0 \ + $(strip $2)/$(PF)/lib/*/gprofng/libgp-*.so \ + $(strip $2)/$(PF)/lib/*/libgprofng.so.0.0 \ + $(strip $2)/$(PF)/lib/*/libsframe.so.2.0.0 \ + $$(file $(strip $2)/$(PF)/bin/* |awk -F: '$$0 !~ /script/ {print $$1}'); \ + do \ + test ! -h $$i || continue; test -f $$i || continue; \ + files="$$files $$i"; \ + nfiles=$$(expr $$nfiles + 1); \ + done; \ + echo "Strip ($$nfiles): $$files"; \ + for i in $$files; do \ + id=$$(debugedit --build-id --build-id-seed='$(strip $1)-$(DEB_VERSION)' $$i); \ + done; \ + mkdir -p $(strip $2)-dbg/usr/lib/debug/.dwz/$(DEB_HOST_MULTIARCH); \ + dwz=usr/lib/debug/.dwz/$(DEB_HOST_MULTIARCH)/$(strip $1).debug; \ + if [ $$nfiles -eq 0 ]; then \ + : ; \ + elif [ $$nfiles -gt 1 ]; then \ + dwz -m $(strip $2)-dbg/$$dwz -M /$$dwz $$files; \ + $(CROSS)objcopy --compress-debug-sections $(strip $2)-dbg/$$dwz; \ + else \ + dwz $$files; \ + fi; \ + for i in $$files; do \ + b_id=$$(LC_ALL=C $(CROSS)readelf -n $$i | sed -n 's/ *Build ID: *\([0-9a-f][0-9a-f]*\)/\1/p'); \ + if [ -z "$$b_id" ]; then \ + id=$$(echo $$i | sed -r 's,debian/[^/]+,$2-dbg/usr/lib/debug,'); \ + echo strip $$i; \ + mkdir -p $$(dirname $$id); \ + $(CROSS)objcopy --only-keep-debug $$i $$id; \ + chmod 644 $$id; \ + $(STRIP) $$i; \ + $(CROSS)objcopy --add-gnu-debuglink $$id $$i; \ + else \ + echo "ID: $${b_id} -> $$(echo $$i | sed 's,$(strip $2),,')"; \ + d=usr/lib/debug/.build-id/$${b_id:0:2}; \ + f=$${b_id:2}.debug; \ + mkdir -p $(strip $2)-dbg/$$d; \ + $(CROSS)objcopy --only-keep-debug --compress-debug-sections $$i $(strip $2)-dbg/$$d/$$f; \ + chmod 644 $(strip $2)-dbg/$$d/$$f; \ + $(STRIP) $$i; \ + fi; \ + done +endef +else +define strip_package + $(install_dir) $(strip $2)-dbg/usr/share/doc/ + ln -sf $(strip $1) $(strip $2)-dbg/usr/share/doc/$(strip $1)-dbg +endef +endif + +remove-gfdl-files: + rm -rf .git* .cvs* gdb* libbacktrace libdecnumber readline sim +ifeq ($(GFDL_INVARIANT_FREE),yes) + for i in $(gfdl_toplevel_texinfo_files); do \ + if [ -f $$i ]; then \ + sed "s/@name@/$$(basename $$i)/g" debian/gfdl.texi > $$i; \ + fi; \ + done + rm -f $(gfdl_generated_files) + rm -f zlib/contrib/dotzlib/DotZLib.chm +endif + +# Below here is fairly generic really + +binary: binary-indep binary-arch + +checkroot: + $(checkdir) +ifeq ($(require_root),yes) + test root = "`whoami`" +endif + +.PHONY: binary binary-arch binary-indep clean checkroot + +.PRECIOUS: stamps/configure.% stamps/build.% stamps/install.% diff --git a/binutils-debian-rules.license b/binutils-debian-rules.license new file mode 100644 index 0000000..bd521fe --- /dev/null +++ b/binutils-debian-rules.license @@ -0,0 +1,6 @@ +SPDX-License-Identifier: LicenseRef-binutils-debian-rules + +Copyright 1994,1995 by Ian Jackson. +Copyright 1998-2007 James Troup. +Portions Copyright 2008-2023 Canonical Ltd. +Portions Copyright 2008-2023 Matthias Klose. diff --git a/bogdanco_Simple_cardboard_box.svg b/bogdanco_Simple_cardboard_box.svg new file mode 100644 index 0000000..363d58b --- /dev/null +++ b/bogdanco_Simple_cardboard_box.svg @@ -0,0 +1,349 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:ns1="http://sozi.baierouge.fr" + id="svg2" + sodipodi:modified="true" + viewBox="0 0 250 170" + sodipodi:docbase="C:\Documents and Settings\Bogdan\Desktop" + inkscape:export-ydpi="45" + inkscape:export-xdpi="45" + version="1.0" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + sodipodi:docname="cardboard_box.svg" + inkscape:export-filename="C:\Documents and Settings\Bogdan\Desktop\cardboard_box.png" + inkscape:version="0.45" + sodipodi:version="0.32" + > + <defs + id="defs4" + > + <linearGradient + id="linearGradient25701" + > + <stop + id="stop25703" + style="stop-color:#dcc06d" + offset="0" + /> + <stop + id="stop25705" + style="stop-color:#af7e32" + offset="1" + /> + </linearGradient + > + <filter + id="filter27663" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur27665" + stdDeviation="0.96741655" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter27667" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur27669" + stdDeviation="0.96741655" + inkscape:collect="always" + /> + </filter + > + <linearGradient + id="linearGradient4142" + y2="351.63" + gradientUnits="userSpaceOnUse" + x2="93.575" + y1="408.69" + x1="382.65" + inkscape:collect="always" + > + <stop + id="stop25687" + style="stop-color:#dcbb6c" + offset="0" + /> + <stop + id="stop25689" + style="stop-color:#af7e32" + offset="1" + /> + </linearGradient + > + <linearGradient + id="linearGradient4144" + y2="304.03" + gradientUnits="userSpaceOnUse" + x2="391.71" + y1="327.35" + x1="703.98" + inkscape:collect="always" + > + <stop + id="stop5164" + style="stop-color:#5b230a" + offset="0" + /> + <stop + id="stop5166" + style="stop-color:#8c5e22" + offset="1" + /> + </linearGradient + > + <linearGradient + id="linearGradient4146" + y2="69.749" + gradientUnits="userSpaceOnUse" + x2="431.2" + y1="170.98" + x1="241.54" + inkscape:collect="always" + > + <stop + id="stop25695" + style="stop-color:#dcc06d" + offset="0" + /> + <stop + id="stop25697" + style="stop-color:#af7e32" + offset="1" + /> + </linearGradient + > + <linearGradient + id="linearGradient4148" + y2="107.64" + xlink:href="#linearGradient25701" + gradientUnits="userSpaceOnUse" + x2="540.41" + y1="189.24" + x1="232.03" + inkscape:collect="always" + /> + <linearGradient + id="linearGradient4150" + y2="160.57" + xlink:href="#linearGradient25701" + gradientUnits="userSpaceOnUse" + x2="517.57" + y1="99.216" + x1="522.68" + inkscape:collect="always" + /> + </defs + > + <sodipodi:namedview + id="base" + inkscape:zoom="0.8149449" + height="170px" + borderopacity="1.0" + inkscape:current-layer="layer2" + inkscape:cx="307.78638" + inkscape:cy="186.13961" + width="250px" + inkscape:guide-bbox="true" + showguides="true" + bordercolor="#666666" + inkscape:window-x="-4" + guidetolerance="10" + objecttolerance="10" + inkscape:window-y="-4" + inkscape:window-width="1280" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + pagecolor="#ffffff" + gridtolerance="10000" + inkscape:document-units="px" + inkscape:window-height="923" + > + <sodipodi:guide + id="guide4152" + position="17.179076" + orientation="vertical" + /> + <sodipodi:guide + id="guide4154" + position="166.88245" + orientation="horizontal" + /> + <sodipodi:guide + id="guide4156" + position="234.37167" + orientation="vertical" + /> + <sodipodi:guide + id="guide4158" + position="4.9083073" + orientation="horizontal" + /> + </sodipodi:namedview + > + <g + id="layer2" + inkscape:label="Box" + inkscape:groupmode="layer" + > + <g + id="g4131" + transform="matrix(.33678 0 0 .33759 -5.6912 -16.583)" + > + <path + id="path2222" + style="stroke-linejoin:round;fill-rule:evenodd;stroke:#000000;stroke-width:1px;fill:url(#linearGradient4142)" + d="m68.407 144.23l319.78 135.17-10.72 256.31-302.47-163.18-6.593-228.3z" + /> + <path + id="path2224" + sodipodi:nodetypes="ccccc" + style="stroke-linejoin:round;stroke:#000000;stroke-width:1px;fill:url(#linearGradient4144)" + d="m388.19 278.57l323.9-125.27-11.54 216.75-322.48 165.71 10.12-257.19z" + /> + <path + id="path9122" + style="opacity:.64737;stroke-width:1px;fill-opacity:.086420;color:#000000;fill-rule:evenodd;filter:url(#filter27663);stroke:#ffffff;fill:#000000" + d="m194.31 197.02l-11.34 234.38 74.09 40.07 13.61-242.69-76.36-31.76z" + /> + <path + id="path22764" + sodipodi:nodetypes="ccccc" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1px;fill:url(#linearGradient4146)" + d="m68.41 143.83l158.6 66.88 310.45-111.05-135.29-40.801-333.76 84.971z" + /> + <path + id="path22766" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1px;fill:url(#linearGradient4148)" + d="m232.53 213.47l155.84 65.65 323.95-125.78-174.86-53.987-304.93 114.12z" + /> + <path + id="path6173" + sodipodi:nodetypes="ccccc" + style="opacity:.64737;fill-rule:evenodd;filter:url(#filter27667);stroke:#ffffff;stroke-width:1px;fill:url(#linearGradient4150)" + d="m194.32 197.35l317.53-105.42 63.51 18.9-304.79 118.38-76.25-31.86z" + /> + <path + id="path10093" + sodipodi:nodetypes="cccc" + style="fill-rule:evenodd;fill:#000000;fill-opacity:.63580" + d="m537.56 100.25l-311.82 109.95 8.1 3.35 303.72-113.3z" + /> + <path + id="path15008" + style="opacity:.14211;fill-rule:evenodd;fill:#ffe9ff" + d="m181.99 267.52l187.85 86.77-2.17 116.27-188.72-93.71 3.04-109.33z" + /> + <path + id="path16948" + style="opacity:.36316;stroke-linejoin:round;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;fill:#ffffff" + d="m186.76 276.63l176.14 82.43-0.44 102.82-179.17-87.63 3.47-97.62z" + /> + </g + > + </g + > + <metadata + > + <rdf:RDF + > + <cc:Work + > + <dc:format + >image/svg+xml</dc:format + > + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/publicdomain/" + /> + <dc:publisher + > + <cc:Agent + rdf:about="http://openclipart.org/" + > + <dc:title + >Openclipart</dc:title + > + </cc:Agent + > + </dc:publisher + > + <dc:title + >Simple cardboard box</dc:title + > + <dc:date + >2006-12-26T00:00:00</dc:date + > + <dc:description + /> + <dc:source + >https://openclipart.org/detail/3574/-by--3574</dc:source + > + <dc:creator + > + <cc:Agent + > + <dc:title + >bogdanco</dc:title + > + </cc:Agent + > + </dc:creator + > + <dc:subject + > + <rdf:Bag + > + <rdf:li + >box</rdf:li + > + <rdf:li + >cardboard</rdf:li + > + <rdf:li + >package</rdf:li + > + <rdf:li + >storage</rdf:li + > + </rdf:Bag + > + </dc:subject + > + </cc:Work + > + <cc:License + rdf:about="http://creativecommons.org/licenses/publicdomain/" + > + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" + /> + </cc:License + > + </rdf:RDF + > + </metadata + > +</svg +> diff --git a/bogdanco_Simple_cardboard_box.svg.license b/bogdanco_Simple_cardboard_box.svg.license new file mode 100644 index 0000000..02bf2d5 --- /dev/null +++ b/bogdanco_Simple_cardboard_box.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) bogdanco diff --git a/bookworm-stats-pkg-state.png b/bookworm-stats-pkg-state.png Binary files differnew file mode 100644 index 0000000..8d74115 --- /dev/null +++ b/bookworm-stats-pkg-state.png diff --git a/bookworm-stats-pkg-state.png.license b/bookworm-stats-pkg-state.png.license new file mode 100644 index 0000000..ba4719d --- /dev/null +++ b/bookworm-stats-pkg-state.png.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-website-screenshot + +Copyright 2014-2024 Holger Levsen and many others. diff --git a/boxes.svg b/boxes.svg new file mode 100644 index 0000000..70cc999 --- /dev/null +++ b/boxes.svg @@ -0,0 +1,715 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + id="svg2" + sodipodi:modified="true" + viewBox="0 0 967.89545 169.09442" + inkscape:export-ydpi="45" + inkscape:export-xdpi="45" + version="1.0" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + sodipodi:docname="boxes.svg" + inkscape:export-filename="C:\Documents and Settings\Bogdan\Desktop\cardboard_box.png" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:version="0.32" + xml:space="preserve" + width="967.89545" + height="169.09442" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><defs + id="defs4"><linearGradient + id="linearGradient25701"><stop + id="stop25703" + style="stop-color:#dcc06d" + offset="0" /><stop + id="stop25705" + style="stop-color:#af7e32" + offset="1" /></linearGradient><filter + id="filter27663" + inkscape:collect="always" + x="-0.032342318" + y="-0.011137692" + width="1.0647351" + height="1.0225655"><feGaussianBlur + id="feGaussianBlur27665" + stdDeviation="0.96741655" + inkscape:collect="always" /></filter><filter + id="filter27667" + inkscape:collect="always" + x="-0.0098338264" + y="-0.020730709" + width="1.019975" + height="1.0415702"><feGaussianBlur + id="feGaussianBlur27669" + stdDeviation="0.96741655" + inkscape:collect="always" /></filter><linearGradient + id="linearGradient4142" + y2="351.63" + gradientUnits="userSpaceOnUse" + x2="93.574997" + y1="408.69" + x1="382.64999" + inkscape:collect="always"><stop + id="stop25687" + style="stop-color:#dcbb6c" + offset="0" /><stop + id="stop25689" + style="stop-color:#af7e32" + offset="1" /></linearGradient><linearGradient + id="linearGradient4144" + y2="304.03" + gradientUnits="userSpaceOnUse" + x2="391.70999" + y1="327.35001" + x1="703.97998" + inkscape:collect="always"><stop + id="stop5164" + style="stop-color:#5b230a" + offset="0" /><stop + id="stop5166" + style="stop-color:#8c5e22" + offset="1" /></linearGradient><linearGradient + id="linearGradient4146" + y2="69.749001" + gradientUnits="userSpaceOnUse" + x2="431.20001" + y1="170.98" + x1="241.53999" + inkscape:collect="always"><stop + id="stop25695" + style="stop-color:#dcc06d" + offset="0" /><stop + id="stop25697" + style="stop-color:#af7e32" + offset="1" /></linearGradient><linearGradient + id="linearGradient4148" + y2="107.64" + xlink:href="#linearGradient25701" + gradientUnits="userSpaceOnUse" + x2="540.40997" + y1="189.24001" + x1="232.03" + inkscape:collect="always" /><linearGradient + id="linearGradient4150" + y2="160.57001" + xlink:href="#linearGradient25701" + gradientUnits="userSpaceOnUse" + x2="517.57001" + y1="99.216003" + x1="522.67999" + inkscape:collect="always" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="linearGradient10" + gradientUnits="userSpaceOnUse" + x1="382.64999" + y1="408.69" + x2="93.574997" + y2="351.63" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient11" + gradientUnits="userSpaceOnUse" + x1="703.97998" + y1="327.35001" + x2="391.70999" + y2="304.03" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4146" + id="linearGradient12" + gradientUnits="userSpaceOnUse" + x1="241.53999" + y1="170.98" + x2="431.20001" + y2="69.749001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient13" + gradientUnits="userSpaceOnUse" + x1="232.03" + y1="189.24001" + x2="540.40997" + y2="107.64" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient14" + gradientUnits="userSpaceOnUse" + x1="522.67999" + y1="99.216003" + x2="517.57001" + y2="160.57001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="linearGradient23" + gradientUnits="userSpaceOnUse" + x1="382.64999" + y1="408.69" + x2="93.574997" + y2="351.63" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient24" + gradientUnits="userSpaceOnUse" + x1="703.97998" + y1="327.35001" + x2="391.70999" + y2="304.03" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4146" + id="linearGradient25" + gradientUnits="userSpaceOnUse" + x1="241.53999" + y1="170.98" + x2="431.20001" + y2="69.749001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient26" + gradientUnits="userSpaceOnUse" + x1="232.03" + y1="189.24001" + x2="540.40997" + y2="107.64" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient27" + gradientUnits="userSpaceOnUse" + x1="522.67999" + y1="99.216003" + x2="517.57001" + y2="160.57001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="linearGradient36" + gradientUnits="userSpaceOnUse" + x1="382.64999" + y1="408.69" + x2="93.574997" + y2="351.63" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient37" + gradientUnits="userSpaceOnUse" + x1="703.97998" + y1="327.35001" + x2="391.70999" + y2="304.03" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4146" + id="linearGradient38" + gradientUnits="userSpaceOnUse" + x1="241.53999" + y1="170.98" + x2="431.20001" + y2="69.749001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient39" + gradientUnits="userSpaceOnUse" + x1="232.03" + y1="189.24001" + x2="540.40997" + y2="107.64" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient40" + gradientUnits="userSpaceOnUse" + x1="522.67999" + y1="99.216003" + x2="517.57001" + y2="160.57001" /><linearGradient + id="linearGradient3821"><stop + id="stop3823" + style="stop-color:#dcdcdc" + offset="0" /><stop + id="stop3835" + style="stop-color:#6a6a6a" + offset=".5" /><stop + id="stop3825" + style="stop-color:#e4e4e4" + offset="1" /></linearGradient><linearGradient + id="linearGradient3907" + y2="467.12" + gradientUnits="userSpaceOnUse" + x2="353.89001" + gradientTransform="translate(-557.66,15.868)" + y1="427.12" + x1="353.97" + inkscape:collect="always"><stop + id="stop3813" + style="stop-color:#000000" + offset="0" /><stop + id="stop3819" + style="stop-color:#393939" + offset=".5" /><stop + id="stop3815" + style="stop-color:#000000" + offset="1" /></linearGradient><radialGradient + id="radialGradient3911" + gradientUnits="userSpaceOnUse" + cy="233.42999" + cx="472.5" + r="109.48" + inkscape:collect="always"><stop + id="stop3865" + style="stop-color:#c9c9c9;stop-opacity:.12057" + offset="0" /><stop + id="stop3875" + style="stop-color:#dbe3e3;stop-opacity:.34118" + offset=".25" /><stop + id="stop3871" + style="stop-color:#edfdfe;stop-opacity:.086275" + offset=".5" /><stop + id="stop3873" + style="stop-color:#e4fcfd;stop-opacity:.12941" + offset=".75" /><stop + id="stop3867" + style="stop-color:#929292;stop-opacity:.56028" + offset="1" /></radialGradient><linearGradient + id="linearGradient3939" + y2="457.82999" + xlink:href="#linearGradient3821" + gradientUnits="userSpaceOnUse" + x2="477.88" + y1="436.39999" + x1="478.38" + inkscape:collect="always" /><linearGradient + id="linearGradient3941" + y2="462.35999" + gradientUnits="userSpaceOnUse" + x2="485" + y1="432.35999" + x1="485" + inkscape:collect="always"><stop + id="stop3855" + style="stop-color:#dcdcdc" + offset="0" /><stop + id="stop3857" + style="stop-color:#6a6a6a" + offset=".5" /><stop + id="stop3859" + style="stop-color:#e4e4e4" + offset="1" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3821" + id="linearGradient41" + gradientUnits="userSpaceOnUse" + x1="478.38" + y1="436.39999" + x2="477.88" + y2="457.82999" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3821" + id="linearGradient42" + gradientUnits="userSpaceOnUse" + x1="478.38" + y1="436.39999" + x2="477.88" + y2="457.82999" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3821" + id="linearGradient43" + gradientUnits="userSpaceOnUse" + x1="478.38" + y1="436.39999" + x2="477.88" + y2="457.82999" /><radialGradient + inkscape:collect="always" + xlink:href="#radialGradient3911" + id="radialGradient44" + gradientUnits="userSpaceOnUse" + cx="472.5" + cy="233.42999" + r="109.48" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath61"><circle + id="circle61" + style="fill:url(#radialGradient61);stroke:#000000;stroke-width:1.08179" + transform="matrix(-0.86934037,-0.49421384,-0.49421384,0.86934037,0,0)" + cx="-129.1498" + cy="7.9140573" + r="29.385996" + inkscape:label="circle43" /></clipPath><radialGradient + inkscape:collect="always" + xlink:href="#radialGradient3911" + id="radialGradient61" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.27335809,0,0,0.27335809,-258.31149,-55.896906)" + cx="472.5" + cy="233.42999" + r="109.48" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="linearGradient61" + gradientUnits="userSpaceOnUse" + x1="382.64999" + y1="408.69" + x2="93.574997" + y2="351.63" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient62" + gradientUnits="userSpaceOnUse" + x1="703.97998" + y1="327.35001" + x2="391.70999" + y2="304.03" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4146" + id="linearGradient63" + gradientUnits="userSpaceOnUse" + x1="241.53999" + y1="170.98" + x2="431.20001" + y2="69.749001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient64" + gradientUnits="userSpaceOnUse" + x1="232.03" + y1="189.24001" + x2="540.40997" + y2="107.64" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient25701" + id="linearGradient65" + gradientUnits="userSpaceOnUse" + x1="522.67999" + y1="99.216003" + x2="517.57001" + y2="160.57001" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4142" + id="linearGradient66" + gradientUnits="userSpaceOnUse" + x1="382.64999" + y1="408.69" + x2="93.574997" + y2="351.63" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4144" + id="linearGradient67" + gradientUnits="userSpaceOnUse" + x1="703.97998" + y1="327.35001" + x2="391.70999" + y2="304.03" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4146" + id="linearGradient68" + gradientUnits="userSpaceOnUse" + x1="241.53999" + y1="170.98" + x2="431.20001" + y2="69.749001" /></defs><sodipodi:namedview + id="base" + inkscape:zoom="0.41668763" + height="170px" + borderopacity="1.0" + inkscape:current-layer="layer3" + inkscape:cx="339.58292" + inkscape:cy="-99.59499" + width="250px" + inkscape:guide-bbox="true" + showguides="true" + bordercolor="#666666" + inkscape:window-x="0" + guidetolerance="10" + objecttolerance="10" + inkscape:window-y="27" + inkscape:window-width="1280" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + pagecolor="#ffffff" + gridtolerance="10000" + inkscape:document-units="px" + inkscape:window-height="749" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:window-maximized="1"><sodipodi:guide + id="guide4152" + position="0.35832322,-4.6414256" + orientation="vertical" + inkscape:locked="false" /><sodipodi:guide + id="guide4154" + position="-16.820753,162.24102" + orientation="horizontal" + inkscape:locked="false" /><sodipodi:guide + id="guide4156" + position="217.55092,-4.6414256" + orientation="vertical" + inkscape:locked="false" /><sodipodi:guide + id="guide4158" + position="-16.820753,0.26688172" + orientation="horizontal" + inkscape:locked="false" /></sodipodi:namedview><g + id="layer2" + inkscape:label="Box" + inkscape:groupmode="layer" + style="display:inline" + transform="translate(-16.820753,4.6414256)"><g + id="g4131" + transform="matrix(0.33678,0,0,0.33759,-5.6912,-16.583)" + style="display:inline"><path + id="path2222" + style="fill:url(#linearGradient66);fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 68.407,144.23 388.187,279.4 377.467,535.71 74.997,372.53 68.404,144.23 Z" /><path + id="path2224" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient67);stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 388.19,278.57 712.09,153.3 700.55,370.05 378.07,535.76 Z" /><path + id="path9122" + style="color:#000000;opacity:0.64737;fill:#000000;fill-opacity:0.08642;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27663)" + d="m 194.31,197.02 -11.34,234.38 74.09,40.07 13.61,-242.69 z" /><path + id="path22764" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient68);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 68.41,143.83 227.01,210.71 537.46,99.66 402.17,58.859 Z" /><path + id="path22766" + style="fill:url(#linearGradient4148);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 232.53,213.47 388.37,279.12 712.32,153.34 537.46,99.353 232.53,213.473 Z" /><path + id="path6173" + sodipodi:nodetypes="ccccc" + style="opacity:0.64737;fill:url(#linearGradient4150);fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27667)" + d="M 194.32,197.35 511.85,91.93 575.36,110.83 270.57,229.21 Z" /><path + id="path10093" + sodipodi:nodetypes="cccc" + style="fill:#000000;fill-opacity:0.6358;fill-rule:evenodd" + d="m 537.56,100.25 -311.82,109.95 8.1,3.35 z" /><path + id="path15008" + style="opacity:0.14211;fill:#ffe9ff;fill-rule:evenodd" + d="m 181.99,267.52 187.85,86.77 -2.17,116.27 -188.72,-93.71 z" /><path + id="path16948" + style="opacity:0.36316;fill:#ffffff;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;stroke-linejoin:round" + d="M 186.76,276.63 362.9,359.06 362.46,461.88 183.29,374.25 Z" /></g></g><metadata + id="metadata1"><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><cc:license + rdf:resource="http://creativecommons.org/licenses/publicdomain/" /><dc:publisher><cc:Agent + rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:date>2006-12-26T00:00:00</dc:date><dc:description /><dc:source>https://openclipart.org/detail/3574/-by--3574</dc:source><dc:creator><cc:Agent><dc:title>bogdanco</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>box</rdf:li><rdf:li>cardboard</rdf:li><rdf:li>package</rdf:li><rdf:li>storage</rdf:li></rdf:Bag></dc:subject></cc:Work><cc:License + rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata><g + id="g10" + inkscape:label="Box" + inkscape:groupmode="layer" + transform="translate(233.1795,4.6414256)" + style="display:inline"><g + id="g9" + transform="matrix(0.33678,0,0,0.33759,-5.6912,-16.583)"><path + id="path1" + style="fill:url(#linearGradient10);fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 68.407,144.23 388.187,279.4 377.467,535.71 74.997,372.53 68.404,144.23 Z" /><path + id="path2" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient11);stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 388.19,278.57 712.09,153.3 700.55,370.05 378.07,535.76 Z" /><path + id="path3" + style="color:#000000;opacity:0.64737;fill:#000000;fill-opacity:0.08642;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27663)" + d="m 194.31,197.02 -11.34,234.38 74.09,40.07 13.61,-242.69 z" /><path + id="path4" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient12);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 68.41,143.83 227.01,210.71 537.46,99.66 402.17,58.859 Z" /><path + id="path5" + style="fill:url(#linearGradient13);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 232.53,213.47 388.37,279.12 712.32,153.34 537.46,99.353 232.53,213.473 Z" /><path + id="path6" + sodipodi:nodetypes="ccccc" + style="opacity:0.64737;fill:url(#linearGradient14);fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27667)" + d="M 194.32,197.35 511.85,91.93 575.36,110.83 270.57,229.21 Z" /><path + id="path7" + sodipodi:nodetypes="cccc" + style="fill:#000000;fill-opacity:0.6358;fill-rule:evenodd" + d="m 537.56,100.25 -311.82,109.95 8.1,3.35 z" /><path + id="path8" + style="opacity:0.14211;fill:#ffe9ff;fill-rule:evenodd" + d="m 181.99,267.52 187.85,86.77 -2.17,116.27 -188.72,-93.71 z" /><path + id="path9" + style="opacity:0.36316;fill:#ffffff;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;stroke-linejoin:round" + d="M 186.76,276.63 362.9,359.06 362.46,461.88 183.29,374.25 Z" /></g></g><g + id="g23" + inkscape:label="Box" + inkscape:groupmode="layer" + transform="translate(483.1795,4.6414256)" + style="display:inline"><g + id="g22" + transform="matrix(0.33678,0,0,0.33759,-5.6912,-16.583)"><path + id="path14" + style="fill:url(#linearGradient23);fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 68.407,144.23 388.187,279.4 377.467,535.71 74.997,372.53 68.404,144.23 Z" /><path + id="path15" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient24);stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 388.19,278.57 712.09,153.3 700.55,370.05 378.07,535.76 Z" /><path + id="path16" + style="color:#000000;opacity:0.64737;fill:#000000;fill-opacity:0.08642;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27663)" + d="m 194.31,197.02 -11.34,234.38 74.09,40.07 13.61,-242.69 z" /><path + id="path17" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient25);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 68.41,143.83 227.01,210.71 537.46,99.66 402.17,58.859 Z" /><path + id="path18" + style="fill:url(#linearGradient26);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 232.53,213.47 388.37,279.12 712.32,153.34 537.46,99.353 232.53,213.473 Z" /><path + id="path19" + sodipodi:nodetypes="ccccc" + style="opacity:0.64737;fill:url(#linearGradient27);fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27667)" + d="M 194.32,197.35 511.85,91.93 575.36,110.83 270.57,229.21 Z" /><path + id="path20" + sodipodi:nodetypes="cccc" + style="fill:#000000;fill-opacity:0.6358;fill-rule:evenodd" + d="m 537.56,100.25 -311.82,109.95 8.1,3.35 z" /><path + id="path21" + style="opacity:0.14211;fill:#ffe9ff;fill-rule:evenodd" + d="m 181.99,267.52 187.85,86.77 -2.17,116.27 -188.72,-93.71 z" /><path + id="path22" + style="opacity:0.36316;fill:#ffffff;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;stroke-linejoin:round" + d="M 186.76,276.63 362.9,359.06 362.46,461.88 183.29,374.25 Z" /></g></g><g + id="g36" + inkscape:label="Box" + inkscape:groupmode="layer" + transform="translate(733.1795,4.6414256)" + style="display:inline"><g + id="g35" + transform="matrix(0.33678,0,0,0.33759,-5.6912,-16.583)"><path + id="path27" + style="fill:url(#linearGradient36);fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 68.407,144.23 388.187,279.4 377.467,535.71 74.997,372.53 68.404,144.23 Z" /><path + id="path28" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient37);stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 388.19,278.57 712.09,153.3 700.55,370.05 378.07,535.76 Z" /><path + id="path29" + style="color:#000000;opacity:0.64737;fill:#000000;fill-opacity:0.08642;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27663)" + d="m 194.31,197.02 -11.34,234.38 74.09,40.07 13.61,-242.69 z" /><path + id="path30" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient38);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 68.41,143.83 227.01,210.71 537.46,99.66 402.17,58.859 Z" /><path + id="path31" + style="fill:url(#linearGradient39);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 232.53,213.47 388.37,279.12 712.32,153.34 537.46,99.353 232.53,213.473 Z" /><path + id="path32" + sodipodi:nodetypes="ccccc" + style="opacity:0.64737;fill:url(#linearGradient40);fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27667)" + d="M 194.32,197.35 511.85,91.93 575.36,110.83 270.57,229.21 Z" /><path + id="path33" + sodipodi:nodetypes="cccc" + style="fill:#000000;fill-opacity:0.6358;fill-rule:evenodd" + d="m 537.56,100.25 -311.82,109.95 8.1,3.35 z" /><path + id="path34" + style="opacity:0.14211;fill:#ffe9ff;fill-rule:evenodd" + d="m 181.99,267.52 187.85,86.77 -2.17,116.27 -188.72,-93.71 z" /><path + id="path35" + style="opacity:0.36316;fill:#ffffff;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;stroke-linejoin:round" + d="M 186.76,276.63 362.9,359.06 362.46,461.88 183.29,374.25 Z" /></g></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="glass" + style="display:inline" + transform="translate(-16.820753,4.6414256)"><g + id="layer1" + inkscape:label="Calque 1" + transform="matrix(-0.53574642,0.22862585,0.22862585,0.53574642,512.03565,-160.37095)"><g + id="g61" + inkscape:label="Box" + inkscape:groupmode="layer" + transform="matrix(-3.2258036,1.376588,1.376588,3.2258036,659.22082,-147.55276)" + clip-path="url(#clipPath61)"><g + id="g60" + transform="matrix(0.33678,0,0,0.33759,-5.6912,-16.583)"><path + id="path52" + style="fill:url(#linearGradient61);fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 68.407,144.23 388.187,279.4 377.467,535.71 74.997,372.53 68.404,144.23 Z" /><path + id="path53" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient62);stroke:#000000;stroke-width:1px;stroke-linejoin:round" + d="M 388.19,278.57 712.09,153.3 700.55,370.05 378.07,535.76 Z" /><path + id="path54" + style="color:#000000;opacity:0.64737;fill:#000000;fill-opacity:0.08642;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27663)" + d="m 194.31,197.02 -11.34,234.38 74.09,40.07 13.61,-242.69 z" /><path + id="path55" + sodipodi:nodetypes="ccccc" + style="fill:url(#linearGradient63);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 68.41,143.83 227.01,210.71 537.46,99.66 402.17,58.859 Z" /><path + id="path56" + style="fill:url(#linearGradient64);fill-rule:evenodd;stroke:#000000;stroke-width:1px" + d="M 232.53,213.47 388.37,279.12 712.32,153.34 537.46,99.353 232.53,213.473 Z" /><path + id="path57" + sodipodi:nodetypes="ccccc" + style="opacity:0.64737;fill:url(#linearGradient65);fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;filter:url(#filter27667)" + d="M 194.32,197.35 511.85,91.93 575.36,110.83 270.57,229.21 Z" /><path + id="path58" + sodipodi:nodetypes="cccc" + style="fill:#000000;fill-opacity:0.6358;fill-rule:evenodd" + d="m 537.56,100.25 -311.82,109.95 8.1,3.35 z" /><path + id="path59" + style="opacity:0.14211;fill:#ffe9ff;fill-rule:evenodd" + d="m 181.99,267.52 187.85,86.77 -2.17,116.27 -188.72,-93.71 z" /><path + id="path60" + style="opacity:0.36316;fill:#ffffff;fill-rule:evenodd;stroke:#002278;stroke-width:1.9;stroke-linejoin:round" + d="M 186.76,276.63 362.9,359.06 362.46,461.88 183.29,374.25 Z" /></g></g><rect + id="rect3801" + style="fill:url(#linearGradient3907);stroke:#000000;stroke-linecap:round;stroke-linejoin:round" + transform="rotate(-52.728)" + rx="7.8571" + ry="7.8571" + height="40" + width="175.71001" + y="442.98001" + x="-281.23001" /><g + id="g3837" + style="fill:url(#linearGradient3939)" + transform="matrix(0.6056,-0.79577,0.79577,0.6056,-325.09,453.38)"><rect + id="rect3803" + style="fill:url(#linearGradient41);stroke:#000000;stroke-linecap:round;stroke-linejoin:round" + rx="7.8571" + ry="0" + height="26.429001" + width="7.8571" + y="433.89999" + x="452.85999" /><rect + id="rect3805" + style="fill:url(#linearGradient3941);stroke:#000000;stroke-linecap:round;stroke-linejoin:round" + rx="2.8064001" + ry="2.8064001" + height="21.429001" + width="42.856998" + y="436.39999" + x="460.70999" /><rect + id="rect3807" + style="fill:url(#linearGradient42);stroke:#000000;stroke-linecap:round;stroke-linejoin:round" + rx="7.8571" + ry="0" + height="26.429001" + width="7.8571" + y="433.89999" + x="503.25" /><rect + id="rect3809" + style="fill:url(#linearGradient43);stroke:#000000;stroke-linecap:round;stroke-linejoin:round" + rx="7.8571" + ry="0" + height="18.106001" + width="8.4491997" + y="438.06" + x="511.10999" /></g><circle + id="path3031" + style="fill:url(#radialGradient44);stroke:#000000;stroke-width:3.9574" + transform="matrix(0.57341,-0.75347,0.75347,0.57341,-39.826,451.87)" + cx="472.5" + cy="233.43361" + r="107.5" /><text + id="text3917" + style="line-height:0%;font-family:'Manga Temple';letter-spacing:0px;word-spacing:0px;fill:#000000" + xml:space="preserve" + y="240.19954" + x="333.35034"> </text></g></g></svg> diff --git a/boxes.svg.license b/boxes.svg.license new file mode 100644 index 0000000..13e9b8c --- /dev/null +++ b/boxes.svg.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> +Copyright (C) bogdanco +Copyright (C) spadassin diff --git a/build-process-overview.svg b/build-process-overview.svg new file mode 100644 index 0000000..42333a7 --- /dev/null +++ b/build-process-overview.svg @@ -0,0 +1,733 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="build-process-overview.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="0.93382748" + inkscape:cx="874.89394" + inkscape:cy="458.8642" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="437" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + showgrid="false" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="marker33" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33" /> + </marker> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="ArrowWide" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4" /> + </marker> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29"> + <path + id="mask-powermask-path-effect29_box" + style="fill:#ffffff;fill-opacity:1" + d="m 549.816,152.95576 h 12.25568 v 15.46558 H 549.816 Z" /> + </mask> + <filter + id="mask-powermask-path-effect29_inverse" + inkscape:label="filtermask-powermask-path-effect29" + style="color-interpolation-filters:sRGB" + height="100" + width="100" + x="-50" + y="-50"> + <feColorMatrix + id="mask-powermask-path-effect29_primitive1" + values="1" + type="saturate" + result="fbSourceGraphic" /> + <feColorMatrix + id="mask-powermask-path-effect29_primitive2" + values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " + in="fbSourceGraphic" /> + </filter> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;fill-opacity:0" + id="rect4" + width="800" + height="400" + x="0" + y="0" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 250.0004,0 V 400" + id="path1" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 550.0004,0 V 400" + id="path2" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="124.96097" + y="21.935524" + id="text3" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="124.74347" + y="21.935524">sample inputs</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.78296" + y="21.935452" + id="text4"><tspan + sodipodi:role="line" + id="tspan4" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.78296" + y="21.935452">build</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.78296" + y="21.935452" + id="tspan5" /><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.78296" + y="21.935452" + id="tspan6" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434998px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999991;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99998, 3.99998;stroke-dashoffset:0;stroke-opacity:1" + x="674.97351" + y="21.935322" + id="text7"><tspan + sodipodi:role="line" + id="tspan7" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999994" + x="674.75598" + y="21.935322">sample outputs</tspan></text> + <g + id="g17" + transform="translate(339.79555,-77.62585)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text16"><tspan + sodipodi:role="line" + id="tspan16" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">authors list generation</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect16" + width="126.886" + height="14.5" + x="-3.1638067" + y="214.58408" /> + </g> + <g + id="g18" + transform="translate(339.82176,-38.62585)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text17"><tspan + sodipodi:role="line" + id="tspan17" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">code compilation</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect17" + width="99.802002" + height="14.5" + x="10.351642" + y="214.58408" /> + </g> + <g + id="g19" + transform="translate(339.74776,0.37415)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text18"><tspan + sodipodi:role="line" + id="tspan18" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="224.83426">documentation generation</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect18" + width="147.936" + height="14.5" + x="-13.715362" + y="214.58408" /> + </g> + <g + id="g20" + transform="translate(339.74775,39.37415)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text19"><tspan + sodipodi:role="line" + id="tspan19" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="224.83426">compressed archive generation</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect19" + width="172.746" + height="14.5" + x="-26.120354" + y="214.58408" /> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect1" + width="225.9129" + height="314.09848" + x="287.04395" + y="68.95076" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="400.21014" + y="342.2084" + id="text16-5"><tspan + sodipodi:role="line" + id="tspan16-3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.99265" + y="342.2084">operating system kernel</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.79596" + y="372.26245" + id="text1"><tspan + sodipodi:role="line" + id="tspan1" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.57846" + y="372.26245">machine</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect2" + width="225.9129" + height="29" + x="287.04395" + y="353.70822" /> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect3" + width="225.9129" + height="29" + x="287.04395" + y="324.70822" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide)" + d="m 400.0004,229.45823 v 22.5933" + id="path3" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="372.06009" + y="84.822449" + id="text21"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="371.84259" + y="84.822449" + id="tspan21">build environment</tspan></text> + <g + id="g30" + transform="rotate(-8.2961068,81.952331,528.47008)"> + <g + id="g29"> + <path + style="fill:#555555;fill-opacity:1;stroke:#555555;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 551.066,155.248 -60.68587,8.50785 -0.0196,4.10015 0.88347,1.18 v -1.18 l 0.76496,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11468,-1.18 0.76505,1.18 0.11513,-1.18 z" + id="path24" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" /> + <path + style="fill:#888888;fill-opacity:1;stroke:#888888;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 551.066,155.248 c 0,-0.47774 2.21546,-1.006 7.05737,-1.04206 3.34181,-0.0249 2.34794,2.57139 2.51566,6.13408 0.16676,3.5424 0.91914,6.76006 -2.64992,6.82205 -3.73682,0.0649 -6.92311,-0.21327 -6.92311,-0.80607 z" + id="path25" + sodipodi:nodetypes="ssssss" + mask="url(#mask-powermask-path-effect29)" + inkscape:path-effect="#path-effect29" + inkscape:original-d="m 551.066,155.248 c 0,-0.47774 2.21546,-1.006 7.05737,-1.04206 3.34181,-0.0249 2.34794,2.57139 2.51566,6.13408 0.16676,3.5424 0.91914,6.76006 -2.64992,6.82205 -3.73682,0.0649 -6.92311,-0.21327 -6.92311,-0.80607 z" /> + </g> + <g + id="g28" + transform="rotate(38.323193,517.05866,217.61253)"> + <rect + style="fill:#888888;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect23" + width="3.0870507" + height="24.403915" + x="466.26218" + y="163.784" /> + <path + id="rect22" + style="fill:#555555;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 462.178,155.748 h 13.09983 v 8.036 H 462.178 l -6.27267,-4.0177 z" + sodipodi:nodetypes="cccccc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide)" + d="m 400.0744,190.45823 v 22.5933" + id="path30" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide)" + d="m 400.07475,151.45823 v 22.5933" + id="path31" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 143.15967,108.06 h 80.08246 l 118.639,28.898" + id="path32" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 190.0374,147.05999 h 25.955 l 118.639,4.39824" + id="path34" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 80.326402,186.06 H 215.9924 l 132.181,-10.102" + id="path35" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 77.926402,225.06 H 215.9924 l 132.181,-44.26867" + id="path36" + sodipodi:nodetypes="ccc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect16-7" + width="197.21127" + height="194.089" + x="301.46912" + y="123.45822" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 99.454401,69.059994 215.9924,69.06 335.50555,120.958" + id="path37" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text37" + transform="translate(0.48467421,-3.4082491)"><textPath + xlink:href="#path37" + startOffset="50%" + id="textPath37"><tspan + id="tspan37" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«orchestrate process» </tspan></textPath></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 77.268402,264.06 H 215.9924 l 132.181,-78.435" + id="path38" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 77.581402,303.06 H 215.9924 l 132.181,-112.60177" + id="path39" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 132.7934,342.06 h 83.199 L 324.0319,223.70823" + id="path40" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 95.573401,381.06 H 215.9924 l 95.635,-119.85177" + id="path41" + sodipodi:nodetypes="ccc" /> + <g + id="g31" + transform="translate(339.74774,78.37415)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text30"><tspan + sodipodi:role="line" + id="tspan30" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="224.83426">build metadata recording</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect30" + width="140.438" + height="14.5" + x="-9.8044004" + y="214.58408" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide)" + d="m 400.00039,268.45823 v 22.5933" + id="path42" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 475.9684,222.20823 108.04,-38.64723 h 38.129" + id="path43" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 488.3734,261.20823 95.635,-38.64723 38.129,0.11802" + id="path44" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 472.3814,300.20823 111.627,-31.39768 38.129,4.5e-4" + id="path45" + sodipodi:nodetypes="ccc" /> + <g + id="g26"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.763817" + y="72.060181" + id="text36"><tspan + sodipodi:role="line" + id="tspan36" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.546318" + y="72.060181">build system</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,72.987863 H 92.204" + id="path23" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g32"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="82.643364" + y="112.11423" + id="text2"><tspan + sodipodi:role="line" + id="tspan2" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="82.425865" + y="112.11423">software source code</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,113.042 H 135.91" + id="path26" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g46"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="106.43521" + y="150.06018" + id="text9"><tspan + sodipodi:role="line" + id="tspan9" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="106.21771" + y="150.06018">version control integration tool</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 29.387,150.988 h 153.4" + id="path28" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g47"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="50.931877" + y="189.06018" + id="text10"><tspan + sodipodi:role="line" + id="tspan10" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="50.714378" + y="189.06018">compiler</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,189.988 H 73.076" + id="path46" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g48"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="50.931877" + y="228.06018" + id="text11"><tspan + sodipodi:role="line" + id="tspan11" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="50.714378" + y="228.06018">library A</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,228.988 H 70.676" + id="path47" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g49"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="49.575459" + y="267.06018" + id="text12"><tspan + sodipodi:role="line" + id="tspan12" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.35796" + y="267.06018">library B</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,267.988 H 70.018" + id="path48" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g50"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="49.641689" + y="306.06018" + id="text13"><tspan + sodipodi:role="line" + id="tspan13" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.424191" + y="306.06018">library C</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,306.988 H 70.331" + id="path49" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g51"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="77.781349" + y="345.06018" + id="text14"><tspan + sodipodi:role="line" + id="tspan14" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="77.56385" + y="345.06018">typesetting system</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 29.387,345.988 h 96.156" + id="path50" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g52"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="58.730614" + y="385.11423" + id="text15"><tspan + sodipodi:role="line" + id="tspan15" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="58.513115" + y="385.11423">file archiver</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 29.387,386.042 H 88.323" + id="path51" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g53"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="678.34424" + y="187.61523" + id="text8"><tspan + sodipodi:role="line" + id="tspan8" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="678.12677" + y="187.61523">PDF documentation</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 629.38741,188.543 h 98.057" + id="path52" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g54"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="681.78845" + y="225.56119" + id="text22"><tspan + sodipodi:role="line" + id="tspan22" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="681.57092" + y="225.56119">program files archive</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 629.38741,226.489 h 105.211" + id="path53" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g1"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:start;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="628.45288" + y="265.4285" + id="text24"><tspan + sodipodi:role="line" + id="tspan24" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="628.45288" + y="265.4285">build metadata files</tspan><tspan + sodipodi:role="line" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="628.45288" + y="279.02225" + id="tspan29">(bill of materials, etc.)</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 629.38741,266.356 h 107.9" + id="path54" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 629.38745,279.95097 h 107.9" + id="path55" + sodipodi:nodetypes="cc" /> + </g> + </g> +</svg> diff --git a/build-process-overview.svg.license b/build-process-overview.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/build-process-overview.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/common_2019_2025_percent.gnuplot b/common_2019_2025_percent.gnuplot new file mode 100755 index 0000000..4726c3a --- /dev/null +++ b/common_2019_2025_percent.gnuplot @@ -0,0 +1,16 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set terminal svg size 800,400 font "DejaVu,sans,14.5"; +set output "common_2019_2025_percent.svg"; +set ylabel "Common packages [%]"; +set xlabel "Number analyzed packages having the most dependees"; +set key noautotitle; +set linetype 1 linecolor rgb "0x333333"; +set style data lines; +set grid; +set yrange [0:100]; +plot "common_2019_2025_percent.txt" using 0:1; diff --git a/common_2019_2025_percent.txt b/common_2019_2025_percent.txt new file mode 100644 index 0000000..c361543 --- /dev/null +++ b/common_2019_2025_percent.txt @@ -0,0 +1,1000 @@ +0.0 +0.0 +33.333333333333336 +25.0 +60.0 +50.0 +42.857142857142854 +37.5 +44.44444444444444 +40.0 +45.45454545454545 +58.333333333333336 +61.53846153846154 +57.142857142857146 +66.66666666666667 +68.75 +70.58823529411765 +72.22222222222223 +73.6842105263158 +70.0 +66.66666666666667 +72.72727272727273 +69.56521739130434 +70.83333333333333 +68.0 +65.38461538461539 +62.96296296296296 +64.28571428571429 +65.51724137931035 +63.333333333333336 +61.29032258064516 +59.375 +60.60606060606061 +64.70588235294117 +65.71428571428571 +66.66666666666667 +64.86486486486487 +63.1578947368421 +64.1025641025641 +65.0 +65.85365853658537 +64.28571428571429 +67.44186046511628 +70.45454545454545 +73.33333333333333 +71.73913043478261 +70.2127659574468 +70.83333333333333 +69.38775510204081 +70.0 +68.62745098039215 +69.23076923076923 +67.9245283018868 +66.66666666666667 +67.27272727272727 +67.85714285714286 +66.66666666666667 +68.96551724137932 +69.49152542372882 +68.33333333333333 +70.49180327868852 +69.35483870967742 +68.25396825396825 +67.1875 +66.15384615384616 +65.15151515151516 +64.17910447761194 +64.70588235294117 +63.768115942028984 +64.28571428571429 +63.38028169014085 +62.5 +63.013698630136986 +63.513513513513516 +65.33333333333333 +65.78947368421052 +66.23376623376623 +65.38461538461539 +64.55696202531645 +65.0 +65.4320987654321 +64.63414634146342 +65.06024096385542 +65.47619047619048 +64.70588235294117 +65.11627906976744 +65.51724137931035 +65.9090909090909 +66.29213483146067 +65.55555555555556 +67.03296703296704 +66.30434782608695 +66.66666666666667 +67.02127659574468 +66.3157894736842 +67.70833333333333 +68.04123711340206 +67.34693877551021 +67.67676767676768 +68.0 +68.31683168316832 +67.6470588235294 +66.99029126213593 +66.34615384615384 +66.66666666666667 +66.0377358490566 +65.42056074766356 +64.81481481481481 +65.13761467889908 +65.45454545454545 +65.76576576576576 +66.96428571428571 +67.2566371681416 +68.42105263157895 +68.69565217391305 +68.96551724137932 +68.37606837606837 +68.64406779661017 +68.0672268907563 +68.33333333333333 +68.59504132231405 +68.85245901639344 +69.10569105691057 +70.16129032258064 +71.2 +70.63492063492063 +70.07874015748031 +70.3125 +70.54263565891473 +70.76923076923077 +70.99236641221374 +70.45454545454545 +69.92481203007519 +69.40298507462687 +69.62962962962963 +69.8529411764706 +69.34306569343066 +69.56521739130434 +69.06474820143885 +68.57142857142857 +69.50354609929079 +69.01408450704226 +68.53146853146853 +69.44444444444444 +69.65517241379311 +69.17808219178082 +69.38775510204081 +68.91891891891892 +68.45637583892618 +68.0 +67.54966887417218 +67.10526315789474 +66.66666666666667 +66.23376623376623 +65.80645161290323 +65.38461538461539 +64.96815286624204 +64.55696202531645 +64.15094339622641 +63.75 +63.35403726708075 +62.96296296296296 +63.190184049079754 +62.80487804878049 +62.42424242424242 +62.04819277108434 +61.67664670658683 +61.904761904761905 +62.1301775147929 +61.76470588235294 +61.40350877192982 +61.627906976744185 +61.27167630057804 +60.91954022988506 +60.57142857142857 +60.22727272727273 +59.887005649717516 +60.1123595505618 +59.77653631284916 +59.44444444444444 +59.11602209944751 +58.79120879120879 +59.01639344262295 +58.69565217391305 +58.37837837837838 +58.60215053763441 +58.8235294117647 +58.51063829787234 +59.25925925925926 +58.94736842105263 +58.638743455497384 +59.375 +59.067357512953365 +58.76288659793814 +58.97435897435897 +58.673469387755105 +58.3756345177665 +58.08080808080808 +57.78894472361809 +57.5 +57.21393034825871 +57.92079207920792 +57.635467980295566 +57.35294117647059 +57.073170731707314 +56.79611650485437 +57.00483091787439 +56.73076923076923 +56.45933014354067 +56.666666666666664 +56.39810426540284 +56.132075471698116 +55.86854460093897 +55.60747663551402 +55.348837209302324 +55.092592592592595 +54.83870967741935 +54.58715596330275 +54.337899543378995 +54.09090909090909 +54.29864253393665 +54.054054054054056 +53.81165919282511 +53.57142857142857 +53.333333333333336 +53.097345132743364 +52.863436123348016 +52.63157894736842 +52.40174672489083 +52.17391304347826 +51.94805194805195 +51.724137931034484 +51.502145922746784 +51.282051282051285 +51.06382978723404 +50.847457627118644 +50.63291139240506 +50.42016806722689 +50.2092050209205 +50.0 +49.79253112033195 +49.586776859504134 +49.794238683127574 +49.59016393442623 +49.795918367346935 +49.59349593495935 +49.392712550607285 +49.193548387096776 +48.99598393574297 +49.2 +49.00398406374502 +48.80952380952381 +48.616600790513836 +48.425196850393704 +48.23529411764706 +48.046875 +47.85992217898833 +47.674418604651166 +47.49034749034749 +47.30769230769231 +47.12643678160919 +46.94656488549618 +46.7680608365019 +46.59090909090909 +46.41509433962264 +46.2406015037594 +46.06741573033708 +45.8955223880597 +45.72490706319702 +45.925925925925924 +45.75645756457565 +45.588235294117645 +45.42124542124542 +45.25547445255474 +45.09090909090909 +44.927536231884055 +44.765342960288805 +44.60431654676259 +44.44444444444444 +44.285714285714285 +44.12811387900356 +43.97163120567376 +43.81625441696113 +43.66197183098591 +43.50877192982456 +43.35664335664335 +43.20557491289198 +43.05555555555556 +42.90657439446367 +42.758620689655174 +42.61168384879725 +42.465753424657535 +42.32081911262799 +42.17687074829932 +42.03389830508475 +41.891891891891895 +41.75084175084175 +41.61073825503356 +41.47157190635451 +41.333333333333336 +41.19601328903654 +41.05960264900662 +40.92409240924093 +40.78947368421053 +40.65573770491803 +40.52287581699346 +40.39087947882736 +40.25974025974026 +40.1294498381877 +40.0 +39.87138263665595 +39.743589743589745 +39.61661341853035 +39.49044585987261 +39.36507936507937 +39.24050632911393 +39.11671924290221 +38.9937106918239 +38.87147335423197 +39.0625 +38.940809968847354 +38.81987577639752 +38.69969040247678 +38.58024691358025 +38.46153846153846 +38.65030674846626 +38.53211009174312 +38.41463414634146 +38.297872340425535 +38.18181818181818 +38.066465256797585 +37.95180722891566 +37.83783783783784 +37.724550898203596 +37.61194029850746 +37.5 +37.388724035608305 +37.27810650887574 +37.16814159292036 +37.05882352941177 +36.950146627565985 +36.8421052631579 +37.02623906705539 +36.91860465116279 +36.81159420289855 +36.70520231213873 +36.887608069164266 +36.7816091954023 +36.67621776504298 +36.57142857142857 +36.46723646723647 +36.36363636363637 +36.26062322946176 +36.15819209039548 +36.056338028169016 +35.95505617977528 +35.85434173669468 +35.754189944134076 +35.65459610027855 +35.55555555555556 +35.45706371191136 +35.35911602209945 +35.26170798898072 +35.16483516483517 +35.06849315068493 +34.97267759562842 +34.87738419618529 +34.78260869565217 +34.68834688346883 +34.5945945945946 +34.501347708894876 +34.40860215053763 +34.316353887399465 +34.224598930481285 +34.13333333333333 +34.04255319148936 +33.95225464190982 +33.86243386243386 +33.773087071240106 +33.68421052631579 +33.59580052493438 +33.50785340314136 +33.420365535248045 +33.333333333333336 +33.246753246753244 +33.16062176165803 +33.07493540051679 +32.98969072164948 +32.904884318766065 +32.82051282051282 +32.73657289002558 +32.6530612244898 +32.56997455470738 +32.48730964467005 +32.40506329113924 +32.323232323232325 +32.241813602015114 +32.1608040201005 +32.08020050125313 +32.0 +31.920199501246884 +31.8407960199005 +31.76178660049628 +31.683168316831683 +31.604938271604937 +31.527093596059114 +31.44963144963145 +31.372549019607842 +31.295843520782395 +31.21951219512195 +31.143552311435524 +31.067961165048544 +30.99273607748184 +30.917874396135264 +30.843373493975903 +30.76923076923077 +30.695443645083934 +30.62200956937799 +30.548926014319807 +30.476190476190474 +30.40380047505938 +30.33175355450237 +30.260047281323878 +30.18867924528302 +30.11764705882353 +30.046948356807512 +29.97658079625293 +29.906542056074766 +29.836829836829835 +29.767441860465116 +29.698375870069604 +29.62962962962963 +29.561200923787528 +29.493087557603687 +29.42528735632184 +29.357798165137616 +29.290617848970253 +29.22374429223744 +29.157175398633257 +29.09090909090909 +29.024943310657598 +28.959276018099548 +28.89390519187359 +28.82882882882883 +28.764044943820224 +28.699551569506728 +28.635346756152124 +28.571428571428573 +28.50779510022272 +28.444444444444443 +28.38137472283814 +28.31858407079646 +28.2560706401766 +28.19383259911894 +28.13186813186813 +28.07017543859649 +28.00875273522976 +27.94759825327511 +27.886710239651418 +27.82608695652174 +27.765726681127983 +27.705627705627705 +27.645788336933045 +27.586206896551722 +27.526881720430108 +27.467811158798284 +27.40899357601713 +27.35042735042735 +27.292110874200425 +27.23404255319149 +27.176220806794056 +27.11864406779661 +27.061310782241016 +27.0042194092827 +26.94736842105263 +26.89075630252101 +26.834381551362682 +26.778242677824267 +26.7223382045929 +26.666666666666668 +26.611226611226613 +26.556016597510375 +26.501035196687372 +26.446280991735538 +26.391752577319586 +26.337448559670783 +26.28336755646817 +26.229508196721312 +26.175869120654397 +26.122448979591837 +26.069246435845216 +26.016260162601625 +25.963488843813387 +25.910931174089068 +25.858585858585858 +25.806451612903224 +25.75452716297787 +25.70281124497992 +25.65130260521042 +25.6 +25.548902195608783 +25.49800796812749 +25.447316103379723 +25.396825396825395 +25.346534653465348 +25.296442687747035 +25.2465483234714 +25.19685039370079 +25.147347740667975 +25.098039215686274 +25.048923679060664 +25.0 +24.951267056530213 +24.90272373540856 +24.854368932038835 +24.8062015503876 +24.758220502901352 +24.71042471042471 +24.66281310211946 +24.807692307692307 +24.760076775431862 +24.71264367816092 +24.665391969407267 +24.61832061068702 +24.571428571428573 +24.524714828897338 +24.47817836812144 +24.431818181818183 +24.38563327032136 +24.339622641509433 +24.293785310734464 +24.24812030075188 +24.202626641651033 +24.15730337078652 +24.11214953271028 +24.067164179104477 +24.022346368715084 +23.977695167286246 +23.93320964749536 +23.88888888888889 +23.844731977818853 +23.800738007380073 +23.756906077348066 +23.71323529411765 +23.6697247706422 +23.626373626373628 +23.583180987202926 +23.54014598540146 +23.497267759562842 +23.454545454545453 +23.41197822141561 +23.369565217391305 +23.32730560578662 +23.28519855595668 +23.243243243243242 +23.201438848920862 +23.159784560143628 +23.118279569892472 +23.076923076923077 +23.035714285714285 +22.994652406417114 +22.95373665480427 +22.912966252220247 +22.872340425531913 +22.831858407079647 +22.791519434628974 +22.75132275132275 +22.711267605633804 +22.671353251318102 +22.63157894736842 +22.591943957968475 +22.552447552447553 +22.513089005235603 +22.473867595818817 +22.434782608695652 +22.395833333333332 +22.357019064124785 +22.31833910034602 +22.27979274611399 +22.24137931034483 +22.203098106712563 +22.164948453608247 +22.126929674099486 +22.089041095890412 +22.05128205128205 +22.013651877133107 +21.976149914821125 +21.93877551020408 +21.901528013582343 +21.864406779661017 +21.82741116751269 +21.79054054054054 +21.753794266441822 +21.717171717171716 +21.680672268907564 +21.644295302013422 +21.608040201005025 +21.57190635451505 +21.535893155258766 +21.5 +21.630615640599 +21.760797342192692 +21.724709784411278 +21.85430463576159 +21.818181818181817 +21.94719471947195 +22.075782537067546 +22.20394736842105 +22.33169129720854 +22.459016393442624 +22.585924713584287 +22.712418300653596 +22.838499184339316 +22.80130293159609 +22.926829268292682 +22.88961038961039 +23.014586709886547 +23.13915857605178 +23.263327948303715 +23.387096774193548 +23.349436392914654 +23.311897106109324 +23.274478330658106 +23.237179487179485 +23.2 +23.162939297124602 +23.125996810207337 +23.089171974522294 +23.052464228934817 +23.015873015873016 +22.979397781299525 +22.943037974683545 +22.906793048973142 +22.870662460567825 +22.834645669291337 +22.79874213836478 +22.762951334379906 +22.727272727272727 +22.69170579029734 +22.65625 +22.620904836193446 +22.897196261682243 +23.017107309486782 +23.13664596273292 +23.25581395348837 +23.374613003095977 +23.338485316846985 +23.30246913580247 +23.266563944530045 +23.384615384615383 +23.502304147465438 +23.619631901840492 +23.736600306278714 +23.853211009174313 +23.81679389312977 +23.932926829268293 +24.048706240487064 +24.164133738601823 +24.279210925644918 +24.242424242424242 +24.20574886535552 +24.169184290030213 +24.132730015082956 +24.096385542168676 +24.06015037593985 +24.024024024024023 +23.988005997001498 +24.101796407185628 +24.2152466367713 +24.328358208955223 +24.29210134128167 +24.25595238095238 +24.368499257057948 +24.480712166172108 +24.59259259259259 +24.70414201183432 +24.815361890694238 +24.778761061946902 +24.742268041237114 +24.852941176470587 +24.963289280469898 +24.926686217008797 +24.890190336749633 +25.0 +24.963503649635037 +25.072886297376094 +25.036390101892284 +25.1453488372093 +25.25399129172714 +25.36231884057971 +25.470332850940665 +25.578034682080926 +25.541125541125542 +25.64841498559078 +25.755395683453237 +25.862068965517242 +25.968436154949785 +26.074498567335244 +26.180257510729614 +26.142857142857142 +26.24821683309558 +26.210826210826212 +26.31578947368421 +26.420454545454547 +26.382978723404257 +26.345609065155806 +26.30834512022631 +26.55367231638418 +26.516220028208746 +26.47887323943662 +26.441631504922643 +26.40449438202247 +26.507713884992988 +26.610644257703083 +26.573426573426573 +26.536312849162012 +26.499302649930264 +26.462395543175486 +26.42559109874826 +26.38888888888889 +26.352288488210817 +26.31578947368421 +26.27939142461964 +26.243093922651934 +26.20689655172414 +26.170798898071624 +26.13480055020633 +26.0989010989011 +26.06310013717421 +26.027397260273972 +25.991792065663475 +25.956284153005466 +25.920873124147338 +25.885558583106267 +25.85034013605442 +25.815217391304348 +25.780189959294436 +25.745257452574524 +25.71041948579161 +25.675675675675677 +25.641025641025642 +25.606469002695416 +25.57200538358008 +25.537634408602152 +25.503355704697988 +25.469168900804288 +25.435073627844712 +25.40106951871658 +25.367156208277702 +25.333333333333332 +25.29960053262317 +25.26595744680851 +25.232403718459494 +25.19893899204244 +25.165562913907284 +25.132275132275133 +25.09907529722589 +25.065963060686016 +25.032938076416336 +25.0 +24.967148488830485 +24.93438320209974 +24.90170380078637 +24.869109947643977 +24.836601307189543 +24.804177545691907 +24.771838331160364 +24.739583333333332 +24.7074122236671 +24.675324675324674 +24.643320363164722 +24.61139896373057 +24.579560155239328 +24.54780361757106 +24.516129032258064 +24.484536082474225 +24.453024453024454 +24.42159383033419 +24.390243902439025 +24.358974358974358 +24.327784891165173 +24.296675191815858 +24.26564495530013 +24.23469387755102 +24.203821656050955 +24.173027989821882 +24.269377382465056 +24.238578680203045 +24.20785804816223 +24.17721518987342 +24.146649810366625 +24.116161616161616 +24.08575031525851 +24.055415617128464 +24.0251572327044 +23.99497487437186 +23.96486825595985 +23.93483709273183 +23.90488110137672 +23.875 +23.845193508114857 +23.940149625935163 +23.910336239103362 +23.880597014925375 +23.850931677018632 +23.82133995037221 +23.79182156133829 +23.762376237623762 +23.733003708281828 +23.703703703703702 +23.674475955610358 +23.645320197044335 +23.616236162361623 +23.587223587223587 +23.558282208588956 +23.529411764705884 +23.500611995104038 +23.4718826405868 +23.44322344322344 +23.414634146341463 +23.38611449451888 +23.357664233576642 +23.329283110571083 +23.300970873786408 +23.272727272727273 +23.24455205811138 +23.216444981862153 +23.18840579710145 +23.16043425814234 +23.132530120481928 +23.104693140794225 +23.076923076923077 +23.04921968787515 +23.02158273381295 +22.994011976047904 +22.966507177033492 +22.939068100358423 +22.911694510739856 +22.884386174016687 +22.857142857142858 +22.829964328180736 +22.802850356294538 +22.775800711743774 +22.748815165876778 +22.72189349112426 +22.69503546099291 +22.668240850059032 +22.641509433962263 +22.614840989399294 +22.58823529411765 +22.561692126909517 +22.535211267605632 +22.626025791324736 +22.59953161592506 +22.690058479532162 +22.7803738317757 +22.870478413068845 +22.96037296037296 +22.933643771827708 +22.906976744186046 +22.880371660859467 +22.96983758700696 +23.05909617612978 +23.03240740740741 +23.121387283236995 +23.21016166281755 +23.18339100346021 +23.15668202764977 +23.130034522439587 +23.2183908045977 +23.30654420206659 +23.394495412844037 +23.482245131729666 +23.569794050343248 +23.65714285714286 +23.744292237442924 +23.831242873432156 +23.917995444191344 +24.004550625711037 +24.09090909090909 +24.177071509648126 +24.263038548752835 +24.34881087202718 +24.32126696832579 +24.406779661016948 +24.492099322799096 +24.577226606538897 +24.54954954954955 +24.634420697412825 +24.719101123595507 +24.803591470258137 +24.887892376681613 +24.972004479283314 +24.94407158836689 +24.916201117318437 +25.0 +24.972129319955407 +25.05567928730512 +25.13904338153504 +25.22222222222222 +25.30521642619312 +25.277161862527716 +25.359911406423034 +25.331858407079647 +25.414364640883978 +25.496688741721854 +25.468577728776186 +25.550660792951543 +25.632563256325632 +25.604395604395606 +25.686059275521405 +25.767543859649123 +25.848849945235486 +25.820568927789935 +25.792349726775956 +25.87336244541485 +25.954198473282442 +25.925925925925927 +25.89771490750816 +25.869565217391305 +25.841476655808904 +25.92190889370933 +25.89382448537378 +25.865800865800868 +26.054054054054053 +26.025917926565874 +25.997842502696873 +26.07758620689655 +26.157158234660926 +26.129032258064516 +26.100966702470462 +26.07296137339056 +26.04501607717042 +26.124197002141326 +26.203208556149733 +26.175213675213676 +26.25400213447172 +26.226012793176974 +26.30457933972311 +26.27659574468085 +26.248671625929862 +26.326963906581742 +26.299045599151643 +26.271186440677965 +26.349206349206348 +26.32135306553911 +26.399155227032736 +26.371308016877638 +26.55426765015806 +26.526315789473685 +26.498422712933753 +26.470588235294116 +26.442812172088143 +26.51991614255765 +26.596858638743456 +26.569037656903767 +26.645768025078368 +26.7223382045929 +26.694473409801876 +26.770833333333332 +26.742976066597294 +26.715176715176714 +26.79127725856698 +26.763485477178424 +26.83937823834197 +26.91511387163561 +26.88728024819028 +26.962809917355372 +26.934984520123837 +27.010309278350515 +26.98249227600412 +26.954732510288064 +26.927029804727646 +26.899383983572896 +26.974358974358974 +26.94672131147541 +26.91914022517912 +26.89161554192229 +26.86414708886619 +26.93877551020408 +27.013251783893985 +27.087576374745417 +27.161749745676502 +27.134146341463413 +27.20812182741117 +27.281947261663287 +27.35562310030395 +27.42914979757085 +27.50252780586451 +27.575757575757574 +27.749747729566096 +27.822580645161292 +27.895266868076536 +27.867203219315897 +27.839195979899497 +27.91164658634538 +27.9839518555667 +28.0561122244489 +28.12812812812813 +28.2
\ No newline at end of file diff --git a/common_2019_2025_percent.txt.license b/common_2019_2025_percent.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/common_2019_2025_percent.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/common_nondev_dev_percent.gnuplot b/common_nondev_dev_percent.gnuplot new file mode 100755 index 0000000..4e12d99 --- /dev/null +++ b/common_nondev_dev_percent.gnuplot @@ -0,0 +1,16 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set terminal svg size 800,400 font "DejaVu,sans,14.5"; +set output "common_nondev_dev_percent.svg"; +set ylabel "Common packages [%]"; +set xlabel "Number of the most (dev)depended packages analyzed"; +set key noautotitle; +set linetype 1 linecolor rgb "0x333333"; +set style data lines; +set grid; +set yrange [0:100]; +plot "common_nondev_dev_percent.txt" using 0:1; diff --git a/common_nondev_dev_percent.txt b/common_nondev_dev_percent.txt new file mode 100644 index 0000000..9346d30 --- /dev/null +++ b/common_nondev_dev_percent.txt @@ -0,0 +1,1000 @@ +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +0.0 +7.142857142857143 +6.666666666666667 +6.25 +11.764705882352942 +11.11111111111111 +10.526315789473685 +10.0 +9.523809523809524 +9.090909090909092 +13.043478260869565 +12.5 +12.0 +11.538461538461538 +11.11111111111111 +14.285714285714286 +13.793103448275861 +13.333333333333334 +12.903225806451612 +12.5 +15.151515151515152 +14.705882352941176 +14.285714285714286 +13.88888888888889 +13.513513513513514 +13.157894736842104 +12.820512820512821 +12.5 +12.195121951219512 +11.904761904761905 +11.627906976744185 +11.363636363636363 +11.11111111111111 +10.869565217391305 +10.638297872340425 +10.416666666666666 +10.204081632653061 +12.0 +13.72549019607843 +15.384615384615385 +15.09433962264151 +14.814814814814815 +16.363636363636363 +16.071428571428573 +15.789473684210526 +15.517241379310345 +15.254237288135593 +15.0 +14.754098360655737 +14.516129032258064 +14.285714285714286 +14.0625 +13.846153846153847 +13.636363636363637 +13.432835820895523 +13.235294117647058 +15.942028985507246 +15.714285714285714 +15.492957746478874 +15.277777777777779 +15.068493150684931 +14.864864864864865 +16.0 +17.105263157894736 +16.883116883116884 +16.666666666666668 +16.455696202531644 +16.25 +16.049382716049383 +15.853658536585366 +15.662650602409638 +15.476190476190476 +15.294117647058824 +15.116279069767442 +16.091954022988507 +15.909090909090908 +15.730337078651685 +15.555555555555555 +17.582417582417584 +17.391304347826086 +17.204301075268816 +17.02127659574468 +16.842105263157894 +16.666666666666668 +16.49484536082474 +16.3265306122449 +16.161616161616163 +17.0 +18.81188118811881 +19.607843137254903 +20.388349514563107 +20.192307692307693 +20.0 +19.81132075471698 +20.560747663551403 +20.37037037037037 +21.10091743119266 +21.818181818181817 +22.52252252252252 +22.321428571428573 +23.008849557522122 +23.68421052631579 +24.347826086956523 +25.862068965517242 +25.641025641025642 +25.423728813559322 +25.210084033613445 +25.0 +25.619834710743802 +25.40983606557377 +26.016260162601625 +26.612903225806452 +27.2 +26.984126984126984 +26.771653543307085 +27.34375 +27.131782945736433 +27.692307692307693 +28.244274809160306 +28.03030303030303 +27.81954887218045 +28.35820895522388 +28.14814814814815 +28.676470588235293 +28.467153284671532 +29.71014492753623 +29.496402877697843 +29.285714285714285 +29.78723404255319 +29.577464788732396 +29.37062937062937 +30.555555555555557 +31.03448275862069 +30.82191780821918 +30.612244897959183 +30.405405405405407 +30.201342281879196 +30.0 +29.801324503311257 +30.263157894736842 +30.065359477124183 +29.87012987012987 +29.677419354838708 +29.487179487179485 +29.29936305732484 +29.11392405063291 +28.930817610062892 +28.75 +29.19254658385093 +29.012345679012345 +29.447852760736197 +29.26829268292683 +29.09090909090909 +28.91566265060241 +28.74251497005988 +28.571428571428573 +28.402366863905325 +28.823529411764707 +28.65497076023392 +29.069767441860463 +29.479768786127167 +29.310344827586206 +29.142857142857142 +29.545454545454547 +29.943502824858758 +29.775280898876403 +30.16759776536313 +30.0 +29.834254143646408 +29.67032967032967 +29.508196721311474 +29.347826086956523 +29.18918918918919 +29.032258064516128 +28.877005347593585 +28.72340425531915 +28.571428571428573 +28.42105263157895 +28.79581151832461 +28.645833333333332 +28.497409326424872 +28.350515463917525 +28.205128205128204 +28.06122448979592 +27.918781725888326 +27.77777777777778 +28.14070351758794 +28.0 +27.860696517412936 +27.722772277227723 +27.586206896551722 +27.45098039215686 +27.317073170731707 +27.66990291262136 +27.536231884057973 +27.403846153846153 +27.272727272727273 +27.142857142857142 +27.01421800947867 +26.88679245283019 +26.760563380281692 +26.635514018691588 +26.511627906976745 +26.38888888888889 +26.267281105990783 +26.146788990825687 +26.027397260273972 +25.90909090909091 +25.79185520361991 +25.675675675675677 +26.00896860986547 +25.892857142857142 +26.22222222222222 +26.106194690265486 +25.991189427312776 +25.87719298245614 +25.76419213973799 +25.652173913043477 +25.541125541125542 +25.43103448275862 +25.751072961373392 +26.068376068376068 +25.95744680851064 +25.847457627118644 +25.738396624472575 +25.630252100840337 +25.523012552301257 +25.416666666666668 +25.311203319502074 +25.206611570247933 +25.102880658436213 +25.0 +24.897959183673468 +25.203252032520325 +25.101214574898787 +25.0 +24.899598393574298 +24.8 +24.701195219123505 +24.603174603174605 +24.50592885375494 +24.409448818897637 +24.313725490196077 +24.21875 +24.124513618677042 +24.031007751937985 +23.93822393822394 +23.846153846153847 +23.754789272030653 +23.66412213740458 +23.574144486692017 +23.484848484848484 +23.39622641509434 +23.30827067669173 +23.59550561797753 +23.507462686567163 +23.42007434944238 +23.333333333333332 +23.247232472324722 +23.16176470588235 +23.076923076923077 +22.99270072992701 +22.90909090909091 +23.18840579710145 +23.104693140794225 +23.02158273381295 +22.939068100358423 +22.857142857142858 +22.775800711743774 +22.69503546099291 +22.614840989399294 +22.535211267605632 +22.45614035087719 +22.727272727272727 +22.99651567944251 +22.916666666666668 +23.18339100346021 +23.448275862068964 +23.367697594501717 +23.28767123287671 +23.208191126279864 +23.12925170068027 +23.050847457627118 +22.972972972972972 +22.895622895622896 +22.818791946308725 +22.74247491638796 +22.666666666666668 +22.591362126245848 +22.516556291390728 +22.442244224422442 +22.36842105263158 +22.295081967213115 +22.22222222222222 +22.149837133550488 +22.4025974025974 +22.653721682847895 +22.580645161290324 +22.508038585209004 +22.756410256410255 +22.68370607028754 +22.611464968152866 +22.53968253968254 +22.468354430379748 +22.71293375394322 +22.641509433962263 +22.570532915360502 +22.8125 +22.741433021806852 +22.67080745341615 +22.60061919504644 +22.530864197530864 +22.46153846153846 +22.699386503067483 +22.629969418960243 +22.865853658536587 +22.796352583586625 +22.727272727272727 +22.658610271903324 +22.59036144578313 +22.822822822822822 +22.75449101796407 +22.686567164179106 +22.61904761904762 +22.551928783382788 +22.485207100591715 +22.4188790560472 +22.352941176470587 +22.287390029325515 +22.514619883040936 +22.448979591836736 +22.38372093023256 +22.318840579710145 +22.254335260115607 +22.19020172910663 +22.413793103448278 +22.349570200573066 +22.285714285714285 +22.22222222222222 +22.15909090909091 +22.096317280453256 +22.033898305084747 +21.971830985915492 +21.910112359550563 +21.84873949579832 +21.787709497206706 +21.72701949860724 +21.666666666666668 +21.606648199445985 +21.54696132596685 +21.487603305785125 +21.428571428571427 +21.36986301369863 +21.311475409836067 +21.25340599455041 +21.195652173913043 +21.40921409214092 +21.62162162162162 +21.5633423180593 +21.50537634408602 +21.447721179624665 +21.657754010695186 +21.6 +21.54255319148936 +21.485411140583555 +21.693121693121693 +21.63588390501319 +21.57894736842105 +21.522309711286088 +21.465968586387433 +21.409921671018278 +21.354166666666668 +21.2987012987013 +21.243523316062177 +21.188630490956072 +21.1340206185567 +21.079691516709513 +21.025641025641026 +21.22762148337596 +21.1734693877551 +21.119592875318066 +21.065989847715738 +21.0126582278481 +20.95959595959596 +20.906801007556677 +20.85427135678392 +20.80200501253133 +20.75 +20.947630922693268 +20.895522388059703 +20.843672456575682 +20.792079207920793 +20.74074074074074 +20.689655172413794 +20.63882063882064 +20.58823529411765 +20.78239608801956 +20.73170731707317 +20.68126520681265 +20.631067961165048 +20.581113801452783 +20.531400966183575 +20.72289156626506 +20.673076923076923 +20.623501199040767 +20.574162679425836 +20.525059665871122 +20.476190476190474 +20.42755344418052 +20.61611374407583 +20.56737588652482 +20.5188679245283 +20.470588235294116 +20.422535211267604 +20.374707259953162 +20.327102803738317 +20.27972027972028 +20.46511627906977 +20.417633410672853 +20.37037037037037 +20.554272517321017 +20.506912442396313 +20.45977011494253 +20.412844036697248 +20.594965675057207 +20.54794520547945 +20.72892938496583 +20.681818181818183 +20.634920634920636 +20.58823529411765 +20.54176072234763 +20.495495495495497 +20.44943820224719 +20.62780269058296 +20.58165548098434 +20.758928571428573 +20.71269487750557 +20.666666666666668 +20.620842572062084 +20.575221238938052 +20.52980132450331 +20.484581497797357 +20.439560439560438 +20.394736842105264 +20.35010940919037 +20.305676855895197 +20.47930283224401 +20.652173913043477 +20.607375271149674 +20.562770562770563 +20.518358531317496 +20.474137931034484 +20.43010752688172 +20.386266094420602 +20.342612419700213 +20.299145299145298 +20.255863539445627 +20.21276595744681 +20.169851380042463 +20.338983050847457 +20.29598308668076 +20.253164556962027 +20.210526315789473 +20.168067226890756 +20.12578616352201 +20.0836820083682 +20.25052192066806 +20.208333333333332 +20.166320166320165 +20.12448132780083 +20.082815734989648 +20.041322314049587 +20.0 +19.958847736625515 +19.917864476386036 +19.87704918032787 +19.83640081799591 +19.79591836734694 +19.75560081466395 +19.715447154471544 +19.675456389452332 +19.635627530364374 +19.595959595959595 +19.556451612903224 +19.517102615694164 +19.67871485943775 +19.639278557114228 +19.6 +19.560878243512974 +19.52191235059761 +19.681908548707753 +19.642857142857142 +19.603960396039604 +19.565217391304348 +19.526627218934912 +19.488188976377952 +19.44990176817289 +19.41176470588235 +19.373776908023483 +19.3359375 +19.29824561403509 +19.260700389105057 +19.223300970873787 +19.186046511627907 +19.148936170212767 +19.111969111969113 +19.07514450867052 +19.03846153846154 +19.001919385796544 +18.96551724137931 +18.92925430210325 +18.893129770992367 +18.857142857142858 +19.011406844106464 +18.975332068311197 +18.939393939393938 +18.90359168241966 +18.867924528301888 +18.832391713747647 +18.796992481203006 +18.76172607879925 +18.726591760299627 +18.69158878504673 +18.65671641791045 +18.6219739292365 +18.587360594795538 +18.552875695732837 +18.51851851851852 +18.484288354898336 +18.45018450184502 +18.41620626151013 +18.38235294117647 +18.34862385321101 +18.315018315018314 +18.281535648994517 +18.248175182481752 +18.214936247723134 +18.181818181818183 +18.148820326678766 +18.115942028985508 +18.083182640144667 +18.050541516245488 +18.01801801801802 +17.985611510791365 +17.953321364452425 +17.921146953405017 +17.88908765652952 +17.857142857142858 +17.825311942959 +17.793594306049823 +17.939609236234457 +17.907801418439718 +17.876106194690266 +17.84452296819788 +17.81305114638448 +17.781690140845072 +17.75043936731107 +17.719298245614034 +17.68826619964974 +17.657342657342657 +17.62652705061082 +17.59581881533101 +17.565217391304348 +17.53472222222222 +17.504332755632582 +17.474048442906575 +17.443868739205527 +17.413793103448278 +17.38382099827883 +17.353951890034363 +17.32418524871355 +17.294520547945204 +17.264957264957264 +17.235494880546074 +17.37649063032368 +17.346938775510203 +17.31748726655348 +17.28813559322034 +17.258883248730964 +17.22972972972973 +17.200674536256322 +17.171717171717173 +17.142857142857142 +17.114093959731544 +17.08542713567839 +17.05685618729097 +17.02838063439065 +17.0 +17.13810316139767 +17.109634551495017 +17.081260364842453 +17.05298013245033 +17.024793388429753 +17.16171617161716 +17.133443163097198 +17.105263157894736 +17.24137931034483 +17.21311475409836 +17.18494271685761 +17.320261437908496 +17.29200652528548 +17.263843648208468 +17.398373983739837 +17.37012987012987 +17.504051863857374 +17.637540453074433 +17.77059773828756 +17.741935483870968 +17.713365539452496 +17.684887459807072 +17.656500802568218 +17.628205128205128 +17.6 +17.57188498402556 +17.54385964912281 +17.515923566878982 +17.488076311605724 +17.46031746031746 +17.432646592709983 +17.40506329113924 +17.377567140600316 +17.50788643533123 +17.480314960629922 +17.452830188679247 +17.425431711145997 +17.398119122257054 +17.370892018779344 +17.34375 +17.316692667706707 +17.289719626168225 +17.262830482115085 +17.391304347826086 +17.364341085271317 +17.492260061919506 +17.465224111282843 +17.438271604938272 +17.41140215716487 +17.384615384615383 +17.51152073732719 +17.484662576687118 +17.457886676875958 +17.431192660550458 +17.404580152671755 +17.53048780487805 +17.65601217656012 +17.78115501519757 +17.754172989377846 +17.727272727272727 +17.700453857791224 +17.673716012084594 +17.647058823529413 +17.771084337349397 +17.74436090225564 +17.71771771771772 +17.841079460269864 +18.11377245508982 +18.236173393124066 +18.208955223880597 +18.181818181818183 +18.154761904761905 +18.12778603268945 +18.24925816023739 +18.22222222222222 +18.19526627218935 +18.31610044313146 +18.289085545722713 +18.262150220913107 +18.235294117647058 +18.355359765051396 +18.328445747800586 +18.301610541727673 +18.42105263157895 +18.394160583941606 +18.513119533527696 +18.486171761280932 +18.6046511627907 +18.722786647314948 +18.695652173913043 +18.66859623733719 +18.641618497109828 +18.614718614718615 +18.876080691642652 +18.848920863309353 +18.96551724137931 +19.08177905308465 +19.197707736389685 +19.45636623748212 +19.428571428571427 +19.40085592011412 +19.373219373219374 +19.34566145092461 +19.318181818181817 +19.29078014184397 +19.26345609065156 +19.236209335219236 +19.350282485875706 +19.322990126939352 +19.295774647887324 +19.268635724331926 +19.382022471910112 +19.49509116409537 +19.607843137254903 +19.72027972027972 +19.692737430167597 +19.665271966527197 +19.637883008356546 +19.6105702364395 +19.583333333333332 +19.55617198335645 +19.52908587257618 +19.502074688796682 +19.475138121546962 +19.448275862068964 +19.421487603305785 +19.39477303988996 +19.36813186813187 +19.34156378600823 +19.315068493150687 +19.425444596443228 +19.398907103825138 +19.37244201909959 +19.346049046321525 +19.31972789115646 +19.293478260869566 +19.26729986431479 +19.241192411924118 +19.215155615696887 +19.18918918918919 +19.163292847503374 +19.137466307277627 +19.11170928667564 +19.086021505376344 +19.06040268456376 +19.168900804289546 +19.143239625167336 +19.11764705882353 +19.092122830440587 +19.066666666666666 +19.04127829560586 +19.01595744680851 +18.99070385126162 +18.96551724137931 +19.072847682119207 +19.17989417989418 +19.15455746367239 +19.12928759894459 +19.104084321475625 +19.07894736842105 +19.053876478318003 +19.028871391076116 +19.003931847968545 +18.979057591623036 +18.954248366013072 +18.929503916449086 +18.904823989569753 +18.880208333333332 +18.855656697009103 +18.83116883116883 +18.80674448767834 +18.78238341968912 +18.758085381630014 +18.733850129198967 +18.70967741935484 +18.685567010309278 +18.661518661518663 +18.637532133676093 +18.613607188703465 +18.58974358974359 +18.56594110115237 +18.542199488491047 +18.51851851851852 +18.494897959183675 +18.471337579617835 +18.447837150127228 +18.424396442185515 +18.401015228426395 +18.377693282636248 +18.354430379746834 +18.331226295828067 +18.434343434343436 +18.41109709962169 +18.387909319899244 +18.364779874213838 +18.34170854271357 +18.318695106649937 +18.295739348370926 +18.272841051314142 +18.25 +18.22721598002497 +18.204488778054863 +18.181818181818183 +18.1592039800995 +18.13664596273292 +18.114143920595534 +18.09169764560099 +18.06930693069307 +18.046971569839307 +18.02469135802469 +18.002466091245378 +17.980295566502463 +17.958179581795818 +17.936117936117935 +17.914110429447852 +17.892156862745097 +17.870257037943695 +17.848410757946212 +17.826617826617827 +17.926829268292682 +17.90499390986602 +17.883211678832115 +17.861482381530983 +17.839805825242717 +17.818181818181817 +17.796610169491526 +17.775090689238212 +17.753623188405797 +17.732207478890228 +17.710843373493976 +17.689530685920577 +17.66826923076923 +17.647058823529413 +17.62589928057554 +17.604790419161677 +17.583732057416267 +17.56272401433692 +17.541766109785204 +17.520858164481524 +17.5 +17.598097502972653 +17.577197149643705 +17.556346381969156 +17.53554502369668 +17.514792899408285 +17.494089834515368 +17.591499409681226 +17.57075471698113 +17.550058892815077 +17.529411764705884 +17.626321974148063 +17.6056338028169 +17.584994138335286 +17.56440281030445 +17.54385964912281 +17.523364485981308 +17.50291715285881 +17.482517482517483 +17.57857974388824 +17.674418604651162 +17.653890824622533 +17.633410672853827 +17.61297798377752 +17.59259259259259 +17.6878612716763 +17.66743648960739 +17.647058823529413 +17.62672811059908 +17.60644418872267 +17.701149425287355 +17.680826636050515 +17.660550458715598 +17.75486827033219 +17.848970251716246 +17.942857142857143 +18.036529680365298 +18.244013683010262 +18.223234624145785 +18.20250284414107 +18.181818181818183 +18.161180476730987 +18.140589569160998 +18.23329558323896 +18.212669683257918 +18.305084745762713 +18.284424379232505 +18.376550169109358 +18.355855855855857 +18.44769403824522 +18.53932584269663 +18.51851851851852 +18.49775784753363 +18.477043673012318 +18.456375838926174 +18.435754189944134 +18.415178571428573 +18.50613154960981 +18.596881959910913 +18.68743047830923 +18.77777777777778 +18.867924528301888 +18.8470066518847 +18.93687707641196 +18.91592920353982 +19.005524861878452 +18.984547461368653 +18.96361631753032 +18.94273127753304 +18.921892189218923 +19.01098901098901 +19.099890230515918 +19.18859649122807 +19.27710843373494 +19.25601750547046 +19.23497267759563 +19.213973799126638 +19.302071973827697 +19.281045751633986 +19.26006528835691 +19.23913043478261 +19.218241042345277 +19.197396963123644 +19.176598049837487 +19.155844155844157 +19.243243243243242 +19.22246220302376 +19.2017259978425 +19.18103448275862 +19.16038751345533 +19.13978494623656 +19.11922663802363 +19.098712446351932 +19.078242229367632 +19.05781584582441 +19.144385026737968 +19.123931623931625 +19.103521878335112 +19.189765458422176 +19.169329073482427 +19.148936170212767 +19.128586609989373 +19.10828025477707 +19.088016967126194 +19.06779661016949 +19.047619047619047 +19.133192389006343 +19.1129883843717 +19.09282700421941 +19.072708113804005 +19.05263157894737 +19.03259726603575 +19.11764705882353 +19.097586568730325 +19.07756813417191 +19.05759162303665 +19.03765690376569 +19.017763845350053 +18.997912317327767 +18.978102189781023 +19.0625 +19.146722164412072 +19.126819126819125 +19.21079958463136 +19.190871369294605 +19.27461139896373 +19.461697722567287 +19.54498448810755 +19.628099173553718 +19.607843137254903 +19.690721649484537 +19.670442842430486 +19.753086419753085 +19.7327852004111 +19.71252566735113 +19.692307692307693 +19.672131147540984 +19.651995905834188 +19.631901840490798 +19.611848825331972 +19.591836734693878 +19.775739041794086 +19.85743380855397 +19.938962360122076 +19.91869918699187 +19.898477157360407 +19.878296146044626 +19.858156028368793 +19.838056680161944 +19.919110212335692 +19.8989898989899 +19.87891019172553 +19.95967741935484 +20.14098690835851 +20.120724346076457 +20.100502512562816 +20.080321285140563 +20.060180541624874 +20.140280561122246 +20.12012012012012 +20.3
\ No newline at end of file diff --git a/common_nondev_dev_percent.txt.license b/common_nondev_dev_percent.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/common_nondev_dev_percent.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/composer-seeklogo.svg b/composer-seeklogo.svg new file mode 100644 index 0000000..273d7ef --- /dev/null +++ b/composer-seeklogo.svg @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="256px" height="339px" viewBox="0 0 256 339" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid"> + <g> + <path d="M180.071,280.973 L225.08,262.631 L225.825,246.725 L233.642,230.583 L235.368,212.715 L244.167,185.811 L253.947,163.307 L253.202,157.926 L251.747,153.019 L252.728,147.401 L251.003,140.802 L251.984,136.166 L243.185,125.404 L204.031,139.11 L205.757,144.254 L202.102,150.379 L205.52,160.904 L200.139,171.429 L207.72,194.17 L223.862,202.732 C223.117,202.969 203.32,201.006 203.32,201.006 L207.956,210.549 L202.576,225.473 L196.214,228.654 L190.833,230.38 L180.308,242.597 L172.491,261.886 L179.09,280.973 L180.071,280.973 Z M14.52,145.878 L54.453,150.447 L59.596,175.828 L50.967,196.336 L55.806,199.855 L64.165,223.07 L73.911,233.866 L80.646,237.927 L92.524,249.263 L106.297,259.517 L101.424,270.042 L102.236,277.859 L100.612,282.191 L97.634,290.55 L68.767,282.191 L69.58,277.318 L65.519,271.937 L66.872,266.793 L27.481,237.927 L24.503,230.617 L15.874,227.943 L15.603,166.115 L12.083,157.215 L14.52,145.878 Z" fill="#7D6A4C"></path> + <path d="M217.466,191.53 C216.823,191.395 216.011,191.259 215.266,191.226 C215.029,191.226 214.792,191.226 214.589,191.259 C213.676,191.395 213.473,191.835 213.27,192.309 C213.168,192.579 213.134,192.884 213.066,193.188 C213.033,193.29 213.033,193.391 213.033,193.493 C214.995,194.204 216.958,194.948 218.955,195.659 C218.989,195.659 219.023,195.693 219.09,195.693 C219.056,193.865 219.598,192.004 217.466,191.53 Z M216.044,211.666 C216.112,211.767 216.214,211.869 216.281,212.004 C216.383,212.173 216.451,212.309 216.518,212.478 C217.398,213.493 218.244,214.508 218.989,215.625 C218.989,215.625 218.989,215.625 218.989,215.659 C219.023,215.693 219.056,215.727 219.056,215.761 C219.09,214.948 219.53,212.918 218.955,212.241 C218.346,211.429 216.958,211.632 216.044,211.666 Z M233.134,190.752 C232.661,190.617 232.491,191.293 232.965,191.395 C233.405,191.429 233.507,190.853 233.134,190.752 Z M233.168,153.831 C233.236,155.828 233.1,157.012 235.402,157.012 C237.669,157.012 239.226,157.181 239.327,154.643 C239.361,153.763 239.598,152.037 238.854,151.361 C238.278,150.819 236.789,151.056 236.045,150.989 C233.54,150.785 232.999,151.259 233.168,153.831 Z M225.554,170.041 C225.96,169.533 225.723,168.214 225.689,167.638 C225.588,166.961 225.723,165.269 225.317,164.728 C224.64,163.848 221.324,164.119 220.478,164.762 C219.564,165.439 219.293,169.669 220.545,170.177 C221.256,170.447 224.945,170.752 225.554,170.041 Z M97.194,271.362 C97.262,271.362 97.296,271.159 97.329,271.091 C97.431,270.888 97.465,270.617 97.465,270.38 C97.465,270.076 97.397,269.704 97.363,269.365 C97.363,269.128 97.329,268.857 97.296,268.621 C97.228,268.553 97.16,268.451 97.16,268.35 L97.16,268.214 C97.194,268.011 97.194,267.808 97.194,267.605 C97.194,266.996 97.126,266.421 97.059,265.812 L96.044,265.812 C94.927,265.778 93.099,265.304 92.118,265.778 C91.441,266.116 91.34,266.895 91.306,267.707 C91.306,268.181 91.373,268.654 91.373,269.061 C91.373,269.162 91.34,269.23 91.34,269.297 C91.34,270.516 91.373,271.294 92.659,271.666 C93.37,271.869 95.468,272.039 96.585,271.666 C96.653,271.463 96.822,271.362 97.093,271.362 L97.194,271.362 Z M101.12,266.286 C100.95,266.218 100.781,266.184 100.646,266.15 C99.901,266.387 99.191,266.489 98.175,266.523 C98.175,266.793 98.311,267.098 98.311,267.368 C98.311,267.639 98.345,267.944 98.311,268.214 C98.311,268.35 98.277,268.417 98.209,268.519 C98.243,268.857 98.243,269.162 98.243,269.297 L98.243,269.365 C98.243,269.467 98.243,269.568 98.277,269.67 C98.277,269.737 98.277,269.771 98.311,269.839 C98.345,270.076 98.379,270.38 98.446,270.685 C98.48,270.888 98.514,271.023 98.548,271.362 L99.123,271.362 C99.123,270.685 99.258,270.245 99.495,269.704 C100.003,268.553 100.849,267.402 101.323,266.319 C101.255,266.319 101.187,266.286 101.154,266.286 L101.12,266.286 Z M98.615,273.054 C98.615,273.054 98.582,273.189 98.548,273.291 C98.548,273.358 98.514,273.392 98.514,273.392 L98.074,273.392 C98.04,274.407 98.006,275.423 98.006,276.404 C98.006,276.743 98.006,277.081 98.04,277.419 C98.277,277.995 98.751,278.062 99.191,278.198 C99.664,278.13 100.138,278.096 100.612,278.062 L100.612,278.029 C100.477,276.336 99.935,274.407 99.495,273.054 L98.615,273.054 Z M99.055,279.382 C98.751,279.484 98.48,279.585 98.345,279.754 C97.905,280.364 98.142,281.852 98.175,282.665 L98.175,282.902 C98.818,282.597 99.292,282.225 99.664,281.785 C100.274,281.074 100.544,280.16 100.612,279.213 C100.172,279.281 99.698,279.315 99.258,279.382 L99.055,279.382 Z M181.256,271.836 C182.609,271.903 184.064,272.106 184.877,271.396 C185.215,271.091 185.418,269.873 185.418,268.688 C185.418,267.504 185.249,266.319 184.911,265.981 C184.403,265.507 180.342,265.406 179.868,265.744 C179.327,266.116 179.225,266.861 179.225,267.673 C179.225,268.079 179.259,268.519 179.259,268.925 C179.259,269.331 179.225,269.737 179.158,270.076 C179.191,270.11 179.191,270.211 179.225,270.245 C179.327,270.651 179.462,271.057 179.598,271.429 C179.631,271.497 179.631,271.362 179.631,271.7 L180.816,271.7 C181.019,271.7 181.188,271.7 181.256,271.836 Z M237.263,191.395 C236.112,191.226 233.777,191.023 233.168,192.106 C232.796,192.715 232.898,196.2 233.439,196.877 C234.082,197.689 236.045,197.52 237.432,197.419 C237.669,197.385 237.872,197.385 238.075,197.385 C237.94,197.182 237.872,196.979 237.804,196.776 C237.771,196.64 237.771,196.505 237.737,196.37 C237.703,195.794 237.906,195.219 238.177,194.677 C238.21,194.61 238.244,194.542 238.278,194.474 L238.21,194.474 L238.21,194.441 C237.703,193.019 239.361,191.733 237.263,191.395 Z M31.407,156.708 C32.388,157.215 36.111,157.249 36.584,156.098 C37.024,155.049 35.603,151.158 37.464,150.853 C37.024,150.582 36.551,150.582 36.077,150.616 C34.655,151.631 32.05,149.939 30.933,151.327 C30.188,152.207 30.324,156.132 31.407,156.708 Z M218.65,259.45 C218.413,259.213 218.075,259.044 217.601,258.976 C216.451,258.807 214.217,258.637 213.507,259.585 C212.965,260.296 212.694,263.646 213.337,264.424 C213.71,264.864 214.251,264.966 214.894,265 C215.571,265 216.349,264.898 216.992,265 C217.127,265 217.263,264.966 217.398,264.966 C217.737,264.932 218.109,264.898 218.447,264.898 C218.583,264.83 218.718,264.797 218.82,264.729 C218.786,264.323 218.752,263.883 218.718,263.477 C218.617,262.123 218.65,260.803 218.65,259.45 Z M201.087,252.072 C200.951,252.072 200.884,252.14 200.85,252.14 C200.884,252.14 200.985,252.174 201.087,252.174 C199.225,252.242 199.632,254.069 199.665,255.422 C199.699,257.453 199.496,258.062 201.594,258.13 C202.745,258.164 204.741,258.536 205.486,257.385 C206.129,256.336 205.452,254.644 205.689,253.291 C205.723,253.087 205.757,252.986 205.858,252.817 C205.621,252.546 205.351,252.038 205.114,252.038 C204.945,252.038 204.775,252.038 204.572,252.072 C203.388,252.411 202.237,252.072 201.087,252.072 Z M62.134,252.242 C61.153,252.14 58.581,251.869 57.972,252.749 C57.329,253.629 57.668,256.269 57.735,257.555 C57.837,257.622 57.972,257.69 58.074,257.724 C58.175,257.622 58.277,257.521 58.311,257.351 C58.277,257.453 58.277,257.555 58.243,257.656 C58.209,257.69 58.175,257.758 58.141,257.791 C58.412,257.961 58.649,258.13 58.886,258.299 C60.036,258.028 61.187,258.13 62.338,258.198 C64.131,258.299 63.691,256.404 63.691,255.152 C63.657,253.561 63.996,252.411 62.134,252.242 Z M209.885,143.239 C210.359,143.239 210.833,143.239 211.307,143.205 C211.51,142.9 211.814,142.664 212.254,142.63 C212.322,142.427 212.356,142.19 212.39,141.919 C212.288,141.817 212.254,141.716 212.221,141.547 C212.153,140.768 212.051,139.99 211.882,139.212 L211.848,139.212 C210.258,140.193 209.344,139.482 209.852,142.054 C209.919,142.46 209.919,142.867 209.885,143.239 Z M210.867,150.007 C212.153,150.075 211.984,147.164 211.984,146.386 C211.984,146.048 212.119,145.641 212.119,145.269 C211.611,145.168 211.273,144.795 211.171,144.356 C210.664,144.389 210.122,144.389 209.615,144.389 C208.904,146.149 207.246,147.672 206.061,149.195 C206.061,149.466 206.061,149.736 206.027,150.007 C207.55,150.21 209.445,149.906 210.867,150.007 Z M225.452,191.666 C224.843,191.09 221.019,191.057 220.376,191.598 C219.192,192.579 220.275,194.745 219.564,196.031 C220.038,196.336 220.512,196.674 220.985,196.979 C221.188,197.114 221.425,197.249 221.628,197.419 C221.696,197.452 221.764,197.52 221.831,197.554 C221.865,197.52 221.899,197.486 221.933,197.452 C222.204,197.216 222.542,197.283 222.745,197.486 C223.659,197.013 225.013,197.825 225.689,196.809 C226.163,196.099 226.061,192.275 225.452,191.666 Z M22.676,218.671 C21.66,217.757 19.258,218.773 17.938,218.13 C17.599,219.652 17.092,221.175 17.024,222.732 C17.024,223.273 17.058,223.815 17.193,224.39 L17.261,224.39 C18.852,224.424 23.42,225.236 23.149,222.732 C23.014,221.547 23.623,219.517 22.676,218.671 Z M225.385,217.317 C226.298,216.505 225.791,213.832 225.791,212.85 C225.791,211.192 221.865,211.327 220.782,211.801 C219.158,212.546 220.207,215.084 219.564,216.539 C219.733,216.945 219.97,217.351 220.342,217.622 C221.493,217.622 224.403,218.163 225.385,217.317 Z M238.109,136.674 C238.989,136.674 239.395,135.591 239.497,134.474 C239.53,134.914 239.632,135.286 239.733,135.557 C239.749,135.601 239.772,135.63 239.79,135.671 C239.856,135.844 239.832,135.782 239.792,135.676 C240.264,136.747 241.316,136.572 241.967,136.572 C243.321,136.572 245.148,136.91 245.588,135.625 C245.757,135.151 245.892,131.868 245.723,131.157 C245.656,131.09 245.351,130.785 245.08,130.684 C244.539,130.481 243.625,130.65 243.05,130.65 C242.204,130.65 240.546,130.548 240.004,131.327 C239.699,131.699 239.53,132.342 239.463,133.053 C239.395,132.443 239.26,131.902 239.09,131.564 C238.177,129.973 236.079,131.462 235.232,130.379 C235.03,130.447 234.826,130.548 234.623,130.616 C234.488,131.191 233.913,131.733 233.303,131.665 C233.236,132.376 233.134,133.459 233.134,134.372 C233.168,135.117 233.27,135.794 233.507,136.166 C234.251,137.181 237.094,136.674 238.109,136.674 Z M73.031,278.468 C74.385,278.435 75.976,278.874 76.822,277.859 C77.431,277.149 77.397,273.629 76.991,272.986 C76.551,272.242 72.93,272.174 72.118,272.58 C70.764,273.257 71.407,275.321 71.069,276.709 C71.238,277.487 72.253,278.062 72.896,278.401 C72.93,278.435 72.998,278.435 73.031,278.468 Z M187.246,245.642 C186.332,245.642 186.129,246.455 186.129,247.368 C186.129,247.977 186.197,248.553 186.197,248.993 L186.197,249.162 C186.197,249.466 186.163,249.703 186.163,249.94 C186.197,250.922 186.501,251.294 187.923,251.395 C188.633,251.429 190.9,251.801 191.577,251.226 C191.645,251.158 191.679,251.125 191.747,251.057 C192.22,250.414 192.22,249.162 192.389,248.451 C192.356,247.504 191.95,246.624 191.95,245.744 L191.95,245.778 C191.273,245.676 191.002,245.642 190.596,245.642 L187.246,245.642 Z M42.304,238.705 C41.322,238.705 38.649,238.197 37.803,238.942 C37.193,239.483 37.329,241.886 37.43,243.003 C37.43,243.138 37.464,243.24 37.464,243.341 C38.006,243.849 38.581,244.289 39.19,244.661 C39.427,244.627 39.664,244.661 39.901,244.763 L39.935,244.763 C41.457,244.221 43.184,245.372 43.387,243.037 C43.488,241.92 43.996,238.705 42.304,238.705 Z M225.554,207.131 C225.486,206.691 225.419,206.285 225.419,205.845 C224.031,205.304 222.61,204.931 221.121,204.762 C220.782,204.762 220.444,204.728 220.105,204.728 C219.733,205.981 219.496,208.485 220.038,209.771 C220.444,210.718 221.155,210.786 222.136,210.854 C222.982,210.921 224.979,211.226 225.588,210.515 C226.231,209.703 225.723,208.485 225.757,207.469 C225.655,207.402 225.588,207.3 225.554,207.131 Z M205.486,269.263 C205.452,268.316 205.824,267.166 205.452,266.523 C204.877,265.541 202.474,265.643 201.29,265.71 C201.256,265.676 201.256,265.676 201.222,265.643 C200.748,266.116 200.41,265.609 200.173,265.507 C200.173,265.507 200.173,265.473 200.139,265.507 C200.139,265.507 200.139,265.541 200.105,265.541 C199.395,266.658 199.259,269.331 199.598,270.617 C199.733,271.125 199.936,271.396 200.173,271.531 C200.545,271.734 201.019,271.599 201.561,271.632 C201.831,271.497 202.136,271.396 202.44,271.328 C203.049,271.192 203.693,271.125 204.335,271.159 C204.911,270.888 205.52,270.617 206.095,270.346 C205.96,270.414 205.791,270.448 205.655,270.414 C205.824,270.414 205.96,270.38 206.095,270.346 C205.655,270.11 205.52,269.703 205.486,269.263 Z M184.986,252.397 C184.918,252.374 184.853,252.352 184.793,252.332 C184.833,252.345 184.9,252.37 184.956,252.389 C183.567,252.026 182.126,252.302 180.714,252.208 C180.173,253.392 179.631,254.576 179.09,255.727 C179.361,256.607 179.191,257.555 180.105,258.062 C180.782,258.434 183.117,258.299 183.794,258.164 C186.264,257.69 184.911,254.949 185.554,253.02 C185.452,252.851 185.35,252.681 185.283,252.478 C185.184,252.445 185.085,252.424 184.986,252.397 Z M50.256,187.571 C50.087,186.556 50.29,184.694 49.207,184.694 C48.158,184.694 45.891,184.254 44.977,184.762 C44.029,185.27 44.334,186.657 44.266,187.672 C44.232,188.552 43.928,189.737 44.673,190.413 C45.383,191.023 46.669,190.989 47.752,191.158 C48.26,190.515 48.801,189.906 49.41,189.331 C49.444,189.297 49.512,189.229 49.546,189.195 L49.579,189.161 C49.816,188.654 50.019,188.112 50.256,187.605 L50.256,187.571 Z M96.822,279.45 C95.807,278.908 93.911,279.044 92.829,279.247 C91.678,279.484 91.61,279.822 91.509,281.006 C91.441,281.785 91.103,284.221 91.712,284.831 C92.321,285.474 94.961,285.203 95.807,285.203 L95.84,285.203 C96.179,284.188 97.059,283.883 97.735,283.274 C97.702,283.206 97.668,283.105 97.668,283.037 C97.363,281.92 97.972,280.093 96.822,279.45 Z M219.023,209.737 C219.361,208.654 219.429,205.71 218.38,205.067 C217.737,204.661 214.217,204.627 213.608,205.134 C212.897,205.744 213.202,206.657 213.27,207.503 C213.303,207.571 213.303,207.605 213.303,207.672 C213.337,208.214 213.303,208.789 213.202,209.331 C213.777,209.838 214.319,210.346 214.894,210.854 C215.063,210.921 215.232,211.023 215.368,211.09 C216.823,210.38 218.447,211.598 219.023,209.737 Z M28.192,218.434 C25.552,218.671 24.199,217.926 23.996,221.141 C23.928,221.987 23.589,223.443 24.3,224.086 C24.605,224.39 25.011,224.39 25.417,224.356 L25.485,224.356 C25.958,224.322 26.432,224.255 26.804,224.559 C26.838,224.593 26.906,224.627 26.94,224.695 C27.617,224.187 29.105,222.935 29.309,224.187 C29.376,224.289 29.376,224.458 29.342,224.661 C30.222,223.239 30.865,218.197 28.192,218.434 Z M213.1,142.021 C213.202,142.934 213.71,143.171 214.657,143.306 C215.605,143.442 218.21,143.577 218.853,142.799 C219.327,142.19 219.124,139.652 219.09,138.907 C219.023,137.79 218.752,137.114 217.432,137.08 C216.552,137.351 215.638,137.655 214.792,137.993 C214.217,138.332 213.608,138.602 212.999,138.806 C213.202,139.685 213.337,140.599 213.371,141.513 C213.405,141.784 213.27,141.953 213.1,142.021 Z M65.451,259.044 C64.063,259.517 64.605,260.837 64.436,262.021 C64.436,262.191 64.47,262.394 64.47,262.563 L64.47,262.766 C64.706,262.935 64.943,263.172 65.146,263.409 C65.18,263.443 65.214,263.511 65.248,263.544 C65.857,264.018 66.5,264.492 67.109,264.932 C67.211,264.864 67.312,264.83 67.414,264.797 C67.549,264.763 67.684,264.729 67.854,264.729 C68.158,264.763 68.395,264.83 68.598,264.932 C69.207,264.932 69.816,264.966 70.257,264.458 C70.866,263.781 70.426,261.006 70.426,260.127 C70.426,258.333 66.534,258.671 65.451,259.044 Z M82.473,279.145 C81.729,279.01 79.563,278.976 78.852,279.281 C77.532,279.89 77.905,282.089 77.972,283.477 L77.972,283.883 C79.901,284.628 81.932,284.898 83.928,285.44 C83.895,285.304 83.895,285.203 83.895,285.067 C83.861,284.458 84.03,283.815 83.996,283.172 C83.895,281.48 84.504,279.484 82.473,279.145 Z M199.564,259.551 C199.902,261.446 199.97,263.443 200.951,265.203 C201.967,264.729 203.083,264.966 204.132,264.932 C205.148,264.898 205.351,264.424 205.52,263.544 C205.655,262.834 205.824,260.431 205.486,259.754 C204.843,258.333 200.782,258.807 199.564,259.551 Z M187.956,244.729 C188.735,244.627 189.547,244.458 190.359,244.593 C190.833,244.661 191.307,244.83 191.713,245.202 C191.51,243.409 191.07,241.649 190.968,239.855 C190.934,239.179 191.713,236.065 190.833,235.761 C190.596,235.693 190.19,236.065 189.682,236.641 C188.295,238.265 186.298,241.649 185.757,242.191 C186.264,243.68 185.926,244.966 187.956,244.729 Z M251.679,158.231 C251.375,157.994 251.07,157.824 250.698,157.689 L250.698,157.655 L250.664,157.655 L250.63,157.621 C250.563,157.621 250.461,157.588 250.36,157.588 C250.19,157.588 250.021,157.554 249.818,157.554 C249.581,157.554 249.311,157.52 249.04,157.52 C249.006,157.554 248.938,157.588 248.904,157.621 C248.295,158.061 247.618,158.4 246.908,158.569 C246.738,159.449 246.908,160.735 246.942,161.344 C246.942,162.19 246.806,163.036 247.618,163.51 C248.194,163.848 249.378,163.814 250.393,163.713 C250.969,163.645 251.476,163.544 251.781,163.476 L251.781,164.39 C251.341,164.39 250.766,164.322 250.156,164.288 C249.209,164.22 248.16,164.187 247.551,164.525 C246.468,165.134 247.043,166.488 247.077,167.503 C247.145,169.364 247.009,169.736 247.788,170.075 C248.126,170.21 248.6,170.379 249.344,170.616 C250.156,168.552 251.781,166.826 251.781,164.457 C252.018,164.119 252.052,163.747 252.052,163.34 C252.356,161.852 252.695,160.362 253.067,158.907 C252.525,158.84 252.119,158.535 251.679,158.231 Z M210.833,171.124 C209.885,171.09 208.938,171.293 207.99,171.056 C207.55,172.647 207.043,174.237 206.84,175.862 C207.314,176.2 207.719,176.606 207.99,177.114 C209.31,177.215 211.51,177.52 212.153,176.505 C212.457,175.997 212.288,174.88 212.288,174.305 C212.288,172.985 212.66,171.192 210.833,171.124 Z M192.122,273.614 C192.126,273.68 192.153,273.767 192.153,273.798 C192.153,273.767 192.148,273.7 192.121,273.611 C192.119,273.584 192.122,273.554 192.119,273.528 C192.111,273.503 192.109,273.493 192.105,273.475 C192.105,273.478 192.105,273.482 192.106,273.485 C191.851,272.254 190.819,272.479 189.75,272.479 C188.904,272.479 187.076,272.106 186.4,272.851 C185.655,273.629 185.723,276.133 186.332,277.622 C186.535,278.13 186.839,278.502 187.178,278.671 L187.178,278.739 C188.87,277.927 190.765,277.081 192.592,276.404 C192.153,276.066 192.017,275.592 192.017,275.152 C192.017,274.704 192.163,274.107 192.122,273.614 Z M210.934,232.004 C209.682,232.14 208.43,232.106 207.212,231.7 C207.077,233.933 206.637,236.268 207.178,238.468 C207.347,236.844 211.341,238.773 212.187,237.216 C212.627,236.404 212.423,234.407 212.39,233.527 C212.356,232.444 212.254,231.869 210.934,232.004 Z M212.221,151.428 C212.322,150.819 206.535,150.075 206.061,152.274 C206.772,153.966 207.483,155.659 208.735,157.012 C209.175,156.843 209.581,156.708 210.021,156.572 C210.292,156.505 210.495,156.606 210.63,156.809 C211.138,156.809 211.645,156.809 212.017,156.403 C212.897,155.422 212.017,152.579 212.221,151.428 Z M227.821,198.197 C225.825,198.739 227.449,200.194 226.637,201.378 C226.738,201.513 226.84,201.615 226.941,201.75 C227.517,201.886 228.058,202.055 228.6,202.326 C229.344,202.664 229.852,203.409 229.919,204.119 C230.799,204.085 231.916,204.39 232.457,203.679 C232.864,203.104 232.796,199.144 232.322,198.603 C231.611,197.791 228.803,197.926 227.821,198.197 Z M53.911,226.387 C52.93,226.556 51.915,226.522 50.933,226.522 C50.764,227.673 50.831,229.365 50.933,229.906 C51.204,231.226 52.185,231.091 53.37,231.124 C55.062,231.192 57.024,231.463 57.194,229.229 C56.618,228.113 55.739,227.165 55.197,226.014 C54.791,226.184 54.351,226.319 53.911,226.387 Z M46.872,211.395 C45.789,212.952 44.808,214.576 43.962,216.302 C44.334,217.622 45.282,217.622 46.432,217.622 C47.481,217.656 49.444,218.062 50.087,216.979 C50.493,216.268 50.425,213.087 50.121,212.444 C49.478,211.09 47.989,212.072 46.872,211.395 Z M66.974,235.896 C67.177,236.031 67.278,236.167 67.312,236.268 C67.38,236.573 67.075,236.81 66.669,236.979 C65.959,237.25 65.248,236.674 64.605,236.573 L64.503,236.573 C64.706,236.573 64.605,236.607 64.639,236.607 C64.673,238.163 68.327,238.502 69.444,237.96 C70.358,237.52 70.46,236.471 70.426,235.49 C69.85,235.388 69.41,234.949 69.444,234.204 C69.444,234.035 69.444,233.899 69.478,233.73 C67.448,232.309 65.992,230.278 64.3,228.485 L64.266,228.451 C64.605,231.158 64.199,234.102 66.974,235.896 Z M210.934,238.536 C209.682,238.874 208.43,238.637 207.178,238.637 L207.178,240.126 C207.178,241.615 207.144,243.138 207.483,244.627 C209.175,244.627 211.984,245.439 212.322,243.274 C212.39,242.766 212.491,241.92 212.491,241.141 C212.491,239.856 212.153,238.536 210.934,238.536 Z M211.171,258.13 C212.627,257.588 212.254,256.506 212.288,255.084 C212.288,253.967 212.83,252.208 211.205,252.208 C210.224,252.208 209.242,252.377 208.295,251.937 C208.464,253.155 208.6,254.373 208.769,255.795 C208.261,255.287 207.787,254.847 207.347,254.441 C207.009,254.137 206.704,253.832 206.4,253.528 C206.4,253.629 206.4,253.798 206.366,253.967 C206.264,255.152 205.926,257.385 206.772,257.961 C207.347,258.367 210.596,258.333 211.171,258.13 Z M210.461,225.338 C209.615,224.999 208.599,225.642 207.956,224.695 C207.246,226.928 207.144,229.128 207.178,231.429 C209.344,230.414 212.153,232.343 212.288,229.196 C212.322,228.756 212.457,227.774 212.457,226.928 C212.457,226.454 212.423,226.082 212.288,225.845 C211.916,225.169 211.171,225.338 210.461,225.338 Z M38.107,205.033 C37.092,205.642 37.43,207.368 37.464,208.417 C37.498,211.192 38.716,210.786 41.153,210.786 L41.288,210.786 C42.062,209.104 42.701,207.12 43.041,205.168 C43.04,205.168 43.041,205.168 43.014,205.168 C41.965,204.762 39.089,204.458 38.107,205.033 Z M244.234,178.535 C243.964,178.569 243.693,178.569 243.49,178.569 L243.388,178.569 C243.625,178.569 243.828,178.569 243.997,178.501 C243.794,178.468 243.557,178.468 243.354,178.468 C242.982,178.468 242.813,178.163 242.779,177.892 L242.779,177.757 C241.222,177.621 239.598,177.689 239.497,179.381 C239.463,179.686 239.463,180.092 239.463,180.532 C239.463,181.513 239.564,182.698 239.936,183.273 C240.139,183.578 240.444,183.781 240.816,183.882 C240.918,183.747 241.053,183.713 241.256,183.713 L243.151,183.713 C242.982,183.375 242.644,183.408 242.271,183.341 C242.678,183.408 243.117,183.375 243.287,183.713 L243.625,183.713 C244.437,182.021 245.283,180.498 245.859,178.806 C245.317,178.772 244.674,178.637 244.336,178.569 C244.37,178.535 244.268,178.535 244.234,178.535 Z M91.915,252.005 L91.881,252.005 L91.78,252.005 C91.407,253.392 90.663,257.859 92.558,258.096 C93.573,258.231 95.705,258.434 96.72,258.062 C98.04,257.521 97.092,256.675 97.735,255.761 C96.213,253.832 93.945,253.087 91.915,252.005 Z M227.381,138.636 C227.517,138.264 227.889,137.96 228.126,137.621 C227.72,137.621 227.28,137.655 226.874,137.723 C226.637,138.061 226.569,138.467 226.603,138.975 C226.975,138.602 226.874,138.501 227.381,138.636 Z M227.043,136.437 C227.077,136.471 227.111,136.504 227.178,136.538 C227.821,136.504 228.464,136.471 229.107,136.471 C230.19,136.471 231.239,136.471 232.322,136.504 C232.898,135.523 232.559,133.628 232.593,132.613 L231.172,132.613 L231.172,131.496 C230.495,131.699 229.987,131.936 229.446,132.206 C229.412,132.274 229.31,132.308 229.243,132.376 C228.397,133.222 227.449,133.797 226.434,134.203 L226.434,135.828 C226.434,135.861 226.535,135.861 226.535,135.895 C226.637,136.065 226.84,136.267 227.043,136.437 Z M228.633,143.306 C230.021,143.34 232.153,143.814 232.525,142.122 C232.762,141.141 232.288,139.99 232.288,139.009 C232.288,138.433 232.356,137.993 232.221,137.723 C231.679,137.723 231.138,137.689 230.596,137.655 C230.393,137.756 230.19,137.892 230.021,137.993 C230.224,137.892 230.258,137.756 230.326,137.655 C229.615,137.621 228.87,137.621 228.16,137.655 C227.923,137.993 227.517,138.298 227.381,138.67 C226.908,138.535 226.975,138.636 226.603,139.009 C226.671,141.242 225.926,143.239 228.633,143.306 Z M193.98,257.927 C194.014,257.927 194.081,257.893 194.115,257.893 C194.217,257.893 194.318,257.893 194.42,257.859 C194.725,257.825 195.063,257.825 195.368,257.825 C194.725,255.829 193.946,253.866 193.168,251.903 C192.999,252.343 192.863,253.02 192.796,253.697 C192.626,254.813 192.626,256.066 192.931,256.844 C193.134,257.385 193.506,257.69 193.98,257.927 Z M195.063,259.01 C194.725,259.01 194.386,259.043 194.048,259.077 C193.98,259.077 193.912,259.044 193.811,259.01 C193.54,259.044 193.269,259.145 193.066,259.382 C192.423,260.16 192.863,262.394 192.897,263.274 C192.897,263.612 192.965,263.883 192.999,264.086 C193.202,264.255 193.337,264.458 193.439,264.695 C193.811,264.932 194.386,264.898 195.266,264.898 C196.349,264.898 197.77,265.169 198.684,264.458 C198.819,264.357 198.921,264.255 199.022,264.12 C197.973,262.394 196.924,260.702 195.841,258.976 C195.571,258.976 195.334,258.976 195.063,259.01 Z M50.358,152.68 C48.226,152.342 46.06,152.037 44.029,151.699 C41.999,151.428 39.63,151.158 37.6,150.887 C37.261,152.274 37.566,153.899 37.6,155.354 C37.667,157.215 38.716,156.809 40.408,156.741 C41.559,156.708 42.913,157.08 43.353,155.794 C43.826,154.508 43.014,153.256 43.928,151.902 C44.977,154.271 42.98,156.741 46.432,156.775 C47.278,156.775 49.072,157.148 49.782,156.606 C50.493,156.031 50.324,153.527 50.425,152.714 C50.425,152.68 50.459,152.613 50.459,152.613 L50.459,152.579 L50.425,152.579 C50.392,152.579 50.392,152.647 50.358,152.68 Z M20.95,217.588 C23.522,217.825 23.183,215.693 23.149,213.561 C23.082,211.124 21.085,211.7 19.088,211.666 C18.479,213.595 18.242,215.625 18.006,217.622 C18.987,217.656 19.968,217.487 20.95,217.588 Z M47.312,245.304 L47.244,245.304 C44.774,245.304 44.673,245.405 44.029,247.504 C43.996,247.605 43.996,247.74 43.996,247.842 L43.996,247.876 C45.688,249.128 47.38,250.414 49.41,251.666 C49.41,251.632 49.478,251.598 49.512,251.531 C50.121,250.922 50.358,249.466 50.358,248.214 C50.358,247.47 50.29,246.692 50.121,246.285 C49.647,245.067 48.53,245.304 47.312,245.304 Z M55.502,177.114 C55.603,176.369 55.637,175.591 55.671,174.813 C55.468,173.594 55.231,172.342 55.028,171.124 C54.114,171.124 53.234,171.158 52.321,171.124 C51.407,171.124 51.204,171.564 51.001,172.275 C50.865,172.816 50.832,175.456 51.001,175.997 C51.474,177.588 53.877,177.215 55.502,177.114 Z M183.963,272.479 C183.049,272.512 182.136,272.512 181.188,272.512 C181.086,272.614 180.951,272.715 180.748,272.715 L179.868,272.715 C180.274,274.069 180.613,276.641 181.527,278.062 C181.899,278.13 182.271,278.198 182.643,278.299 C183.422,277.995 184.809,278.841 185.215,277.216 C185.215,277.182 185.249,277.149 185.249,277.081 C185.35,276.607 185.452,275.896 185.452,275.152 C185.486,273.832 185.148,272.445 183.963,272.479 Z M211.07,245.473 L207.449,245.473 C207.719,247.537 207.99,249.602 208.295,251.7 C209.716,251.057 211.78,252.174 212.288,250.313 C212.593,249.094 212.863,245.439 211.07,245.473 Z M212.187,220.329 C212.187,220.092 212.187,219.889 212.254,219.686 C212.254,219.314 212.085,219.009 211.577,219.043 C211.476,219.043 211.408,219.009 211.341,219.009 C209.953,219.517 208.836,220.498 208.363,222.157 C208.329,222.224 208.329,222.292 208.295,222.36 C208.193,223.07 208.092,223.747 207.99,224.458 C209.073,224.39 211.205,224.762 212.119,223.815 C212.018,222.935 211.95,222.055 212.018,221.209 C212.051,220.972 212.119,220.634 212.187,220.329 Z M229.784,204.931 C229.75,204.965 229.75,204.999 229.716,205.033 C230.292,205.744 232.356,207.943 231.07,208.112 C230.698,208.146 229.649,207.368 229.31,207.233 C228.43,206.86 227.551,206.488 226.637,206.285 L226.637,206.42 C226.637,206.556 226.671,206.691 226.704,206.826 C226.738,207.03 226.671,207.199 226.569,207.3 C226.468,208.519 226.4,210.109 227.28,210.684 C228.024,211.192 231.307,211.158 232.018,210.583 C232.931,209.872 232.762,207.03 232.525,206.014 C232.221,204.593 231.07,204.898 229.784,204.931 Z M19.63,204.898 C19.427,205.608 19.122,206.285 18.75,206.86 L19.055,210.515 L19.088,210.82 L19.088,210.888 C21.39,210.854 23.082,211.429 23.149,208.755 C23.183,207.706 23.556,205.777 22.676,205.067 C21.863,204.424 20.611,205.033 19.63,204.898 Z M59.123,231.869 C59.028,231.774 58.938,231.712 58.898,231.676 C58.882,231.662 58.868,231.646 58.852,231.632 C57.566,232.343 56.889,236.641 58.175,237.656 C58.683,238.062 59.935,237.859 60.544,237.859 C61.999,237.859 63.691,238.096 63.962,236.235 C62.053,234.962 60.574,233.193 58.903,231.681 C58.97,231.77 59.06,231.838 59.123,231.869 Z M100.781,258.773 C100.747,258.739 100.714,258.739 100.68,258.705 C100.037,259.111 99.157,258.773 98.683,259.382 C98.175,260.025 98.379,261.818 98.345,262.563 C98.209,265 99.123,264.593 100.443,264.864 C100.578,264.83 100.714,264.83 100.849,264.932 C101.154,265.067 101.458,265.135 101.763,265.169 L101.966,265.169 C102.744,263.883 103.116,262.935 103.082,262.055 C102.981,260.972 102.27,259.991 100.781,258.773 Z M251.003,145.134 C250.935,145.235 250.833,145.303 250.664,145.337 L250.529,145.337 C249.953,145.405 248.837,145.235 248.363,145.641 C247.957,145.98 247.957,146.86 247.855,147.367 C247.788,147.672 247.72,147.977 247.652,148.281 C247.618,148.417 247.585,148.586 247.551,148.721 C248.735,149.161 250.596,149.939 251.273,149.432 C251.612,149.195 251.781,147.401 251.849,146.961 C251.916,146.521 251.95,146.115 251.95,145.709 C251.747,145.269 251.612,144.762 251.578,144.288 L251.409,144.288 C251.409,144.288 251.409,144.322 251.375,144.322 C251.51,144.626 251.375,145.032 251.003,145.134 Z M89.952,258.028 C90.832,256.81 90.967,253.663 89.411,253.257 C89.207,253.358 88.971,253.46 88.734,253.494 C88.395,253.527 88.023,253.561 87.685,253.595 C87.312,253.629 86.94,253.629 86.568,253.595 C86.06,254.306 85.553,255.016 85.011,255.693 C85.248,256.269 85.079,257.013 84.571,257.385 C84.504,257.656 84.334,257.893 84.098,258.062 C84.098,258.096 84.098,258.096 84.064,258.13 C84.098,258.13 84.098,258.164 84.131,258.164 C84.131,258.164 84.165,258.164 84.165,258.198 C85.79,258.637 89.207,259.044 89.952,258.028 Z M211.138,164.356 C211.07,164.423 210.968,164.457 210.833,164.491 C210.528,164.525 210.258,164.559 209.953,164.559 C209.784,164.897 209.479,165.168 209.039,165.236 C209.006,165.337 208.972,165.439 208.938,165.506 L208.938,165.574 C208.972,167.232 208.599,168.823 208.193,170.379 C209.716,170.312 211.679,170.819 212.187,169.263 C212.525,168.146 212.83,164.39 211.138,164.356 Z M212.221,161.276 C212.221,160.532 212.593,158.67 212.051,158.028 C211.747,157.655 211.138,157.588 210.528,157.588 C210.461,157.655 210.393,157.689 210.292,157.723 C209.987,157.791 209.716,157.892 209.445,157.994 C210.359,159.719 211.07,161.479 209.987,163.307 C209.987,163.34 210.021,163.442 210.021,163.442 C210.292,163.442 210.562,163.408 210.833,163.374 L210.934,163.374 C211.027,163.374 211.089,163.405 211.151,163.436 C211.952,163.133 212.221,162.79 212.221,161.276 Z M246.062,145.371 C246.062,144.22 244.776,144.017 243.557,144.017 C242.914,144.017 242.271,144.085 241.798,144.119 C240.207,144.22 239.767,145.777 240.004,147.266 C240.072,147.807 240.241,148.315 240.478,148.755 C242.271,147.029 244.268,148.01 246.366,148.416 C246.265,148.213 246.231,148.01 246.163,147.807 C245.994,146.995 246.062,146.183 246.062,145.371 Z M203.929,251.429 C204.2,251.395 204.471,251.395 204.674,251.395 C203.32,249.737 202.813,247.199 202.102,245.169 C201.831,245.236 201.561,245.338 201.357,245.507 C201.324,245.541 201.256,245.575 201.188,245.609 C200.951,245.71 200.681,245.642 200.511,245.473 C199.632,245.642 199.395,246.793 199.395,247.977 C199.462,248.891 199.598,249.839 199.699,250.312 C200.072,251.903 202.305,251.565 203.929,251.429 Z M209.378,184.085 C210.224,183.544 211.171,184.221 211.916,183.442 C212.627,182.63 212.187,180.227 212.254,179.246 C212.356,177.385 209.784,178.095 208.329,178.129 C208.329,178.231 208.363,178.366 208.363,178.501 C208.363,178.806 208.261,179.077 208.058,179.314 C208.498,180.938 208.904,182.461 209.378,184.085 Z M225.825,219.991 C225.791,219.889 225.757,219.788 225.791,219.72 C225.859,217.656 222.204,218.434 220.918,218.468 C220.918,218.468 220.918,218.502 220.952,218.502 C222.136,220.329 222.474,222.461 223.388,224.39 L223.253,224.39 C223.151,224.356 223.117,224.356 223.117,224.39 C223.93,224.39 225.08,224.627 225.622,223.916 C226.197,223.172 225.859,221.107 225.825,219.991 Z M52.76,164.356 C50.425,164.153 50.967,166.826 51.001,168.383 C51.035,171.259 53.031,169.669 54.994,170.616 C54.554,168.281 54.114,165.946 53.674,163.577 C53.607,164.119 53.268,164.423 52.76,164.356 Z M184.674,251.159 C185.452,250.549 185.181,249.23 185.181,248.35 L185.249,248.35 C185.249,246.996 185.283,246.252 184.741,245.845 C184.64,245.778 184.572,245.642 184.437,245.642 L182.88,245.642 C182.136,247.673 181.56,249.433 180.985,251.362 L180.985,251.395 C181.899,251.395 183.861,251.768 184.674,251.159 Z M77.094,280.437 C77.127,280.711 77.168,281.041 77.092,280.397 C77.051,280.07 77.066,280.195 77.088,280.384 C76.906,278.878 74.684,279.044 73.099,279.179 C72.93,279.382 72.659,279.517 72.355,279.382 C72.253,279.348 72.185,279.281 72.084,279.247 C72.084,279.89 71.982,280.567 72.05,281.176 C72.05,281.243 72.05,281.311 72.084,281.379 L72.084,281.413 C72.185,281.92 72.388,282.36 72.896,282.698 C73.945,283.409 76.246,283.511 77.498,283.815 C77.431,283.714 77.397,283.612 77.363,283.511 C76.895,282.508 77.185,281.473 77.094,280.437 Z M51.305,223.849 C52.05,223.882 52.828,223.882 53.539,223.747 C53.911,223.679 54.25,223.51 54.588,223.307 C54.419,222.021 54.216,220.769 53.945,219.483 C53.708,219.246 53.471,219.009 53.302,218.739 C53.2,218.603 53.133,218.468 53.065,218.332 C52.287,218.468 51.407,218.536 51.035,219.246 C50.629,219.991 50.899,221.987 50.967,222.833 C51.001,223.273 51.136,223.578 51.305,223.849 Z M211.171,265.71 C210.156,265.778 207.584,265.203 206.738,265.947 C206.298,266.319 206.231,267.741 206.264,268.891 C206.264,269.467 206.332,270.008 206.332,270.279 C208.092,269.5 209.852,268.688 211.611,267.91 C211.713,267.402 211.916,266.962 212.288,266.556 C212.254,266.455 212.187,266.319 212.153,266.218 C211.95,265.913 211.713,265.676 211.171,265.71 Z M247.382,142.968 C247.754,143.306 248.431,143.408 249.141,143.408 C249.209,143.306 249.277,143.239 249.412,143.205 C249.649,143.104 249.886,143.036 250.089,143.002 C250.156,143.002 250.224,142.968 250.292,142.968 C249.818,142.257 249.683,141.547 249.683,140.701 C249.48,139.787 249.649,138.839 250.427,137.892 C250.461,137.723 250.529,137.553 250.596,137.351 C250.055,137.317 249.48,137.249 248.904,137.283 C248.6,137.283 248.329,137.317 248.092,137.384 C246.738,137.756 246.908,138.467 246.908,139.787 C246.908,140.735 246.603,142.257 247.382,142.968 Z M51.508,156.437 C51.847,156.471 52.151,156.437 52.456,156.369 C52.524,156.369 52.591,156.335 52.659,156.335 C52.49,155.591 52.321,154.88 52.118,154.339 C51.915,153.797 51.711,153.391 51.474,153.12 C51.305,153.019 51.136,152.951 50.967,152.883 C51.102,153.628 50.865,154.339 50.899,155.049 C50.899,155.489 51.238,155.997 51.508,156.437 Z M51,160.878 C51,160.875 51,160.872 51.001,160.87 C51,160.925 50.999,160.972 50.997,161.024 C50.998,160.977 51,160.931 51,160.878 C50.967,161.115 50.967,161.481 50.967,161.682 C50.967,161.558 50.985,161.396 50.995,161.145 C50.942,163.57 51.097,163.577 53.674,163.577 C53.64,163.476 53.64,163.307 53.607,163.137 C53.471,161.987 53.234,159.652 52.862,157.452 C52.794,157.486 52.727,157.486 52.659,157.486 C52.354,157.554 52.016,157.588 51.711,157.588 C51.508,157.892 51.136,158.163 51.001,158.535 C50.73,159.246 51.035,160.092 51.001,160.836 C51.001,160.852 51,160.863 51,160.878 Z M44.165,195.456 C44.165,195.487 44.114,195.492 44.104,195.517 C44.146,196.456 44.384,196.984 45.045,197.216 C45.045,196.843 45.214,196.573 45.315,196.234 C45.315,196.234 45.349,196.099 45.349,196.031 C45.755,194.61 46.331,193.256 47.109,192.072 C45.958,192.275 44.842,192.139 44.876,193.933 C44.876,193.798 44.943,193.628 44.943,193.527 C44.943,193.586 44.989,193.687 45.002,193.865 L44.943,193.865 C44.943,194.542 44.943,195.219 45.214,195.862 C45.146,195.76 45.079,195.693 45.045,195.625 C44.842,195.016 44.673,193.798 44.876,193.155 C45.248,192.004 46.229,192.173 47.143,191.936 C47.244,191.767 47.38,191.598 47.515,191.429 C46.568,191.395 44.909,191.361 44.605,191.564 C44.402,191.7 44.266,191.869 44.199,192.106 C43.826,193.019 44.131,194.677 44.165,195.456 Z M52.93,252.208 C52.287,252.208 51.61,252.106 51.102,252.648 C51.068,252.681 51.035,252.749 50.967,252.783 C52.693,254.34 54.622,255.626 56.517,257.013 C56.652,257.047 56.788,257.115 56.923,257.182 L56.923,257.115 C56.889,256.505 57.024,255.693 57.024,254.949 C57.024,254.17 56.957,253.426 56.618,252.952 C55.874,251.903 54.013,252.208 52.93,252.208 Z M51.779,184.424 L51.779,184.356 C52.625,182.292 53.843,180.43 55.231,178.772 C55.265,178.671 55.265,178.535 55.299,178.434 C55.332,178.298 55.332,178.197 55.366,178.062 C54.283,178.028 53.234,177.926 52.185,178.197 C50.155,178.705 50.73,182.901 51.678,184.288 C51.711,184.322 51.745,184.356 51.779,184.424 Z M83.658,259.213 C82.033,261.175 80.273,263.037 78.48,264.864 C79.8,264.864 82.778,265.473 83.725,264.39 C84.436,263.544 84.03,260.803 83.928,259.348 C83.827,259.348 83.759,259.281 83.658,259.213 Z M213.439,219.416 L213.439,219.517 C213.405,220.058 213.236,220.6 213.168,221.175 C213.1,221.987 213.134,222.8 213.236,223.578 C213.473,224.052 213.845,224.39 214.488,224.356 C215.672,224.322 216.857,224.356 218.041,224.356 L218.515,224.356 C216.958,222.563 215.537,220.634 213.439,219.416 Z M199.632,244.086 C199.733,244.289 199.868,244.424 200.038,244.526 C200.207,244.627 200.376,244.661 200.545,244.695 C200.545,244.695 200.545,244.695 200.579,244.661 C200.681,244.593 200.748,244.526 200.85,244.458 C201.019,244.356 201.222,244.255 201.391,244.187 C200.985,243.883 200.681,243.477 200.478,243.037 C200.342,242.732 200.275,242.394 200.275,242.021 C200.275,242.36 200.342,242.664 200.478,242.969 C200.68,243.443 201.019,243.849 201.425,244.187 C201.594,244.12 201.73,244.086 201.899,244.052 C201.154,240.6 200.816,237.081 200.951,233.527 C200.85,233.527 200.714,233.629 200.613,233.629 C200.342,235.152 200.038,236.776 199.767,238.333 C199.632,239.077 199.496,239.754 199.361,240.397 L199.361,240.938 L199.361,241.548 C199.395,241.209 199.428,241.006 199.462,240.972 C200.376,241.615 199.124,243.172 199.632,244.086 Z M197.838,272.614 C197.77,272.614 197.736,272.58 197.669,272.58 C197.682,272.553 197.696,272.549 197.709,272.546 L197.669,272.546 C196.417,272.445 193.912,271.836 192.999,273.155 C192.694,273.595 192.694,274.204 192.728,274.847 C192.762,275.355 192.863,275.863 192.829,276.269 C194.826,275.389 196.789,274.509 198.785,273.629 C198.515,273.257 198.346,272.749 197.838,272.614 Z M212.254,187.232 C212.254,184.879 211.618,185.097 209.618,184.435 C210.158,186.327 210.664,188.218 210.731,190.21 C210.765,191.023 210.698,191.902 211.002,192.545 C211.171,192.884 211.408,193.155 211.882,193.29 C211.916,193.155 211.916,193.019 211.916,192.85 C211.882,192.681 211.984,192.545 212.018,192.41 C211.747,191.835 211.374,191.327 211.577,190.549 C211.713,190.007 212.221,189.703 212.356,189.128 C212.491,188.518 212.254,187.808 212.254,187.232 Z M52.862,211.395 C51.271,211.903 50.831,212.85 50.865,214.475 C50.899,216.539 51.271,217.351 52.828,217.554 C52.727,216.877 52.93,216.201 53.404,215.659 C53.234,214.238 53.031,212.816 52.862,211.395 Z M248.329,136.403 C248.634,136.403 249.006,136.369 249.311,136.369 L249.581,136.369 C249.987,136.403 250.427,136.471 250.901,136.674 C251.003,136.504 251.104,136.335 251.206,136.166 C250.529,134.711 247.382,131.733 246.874,131.157 C246.975,131.462 247.009,131.733 247.009,132.037 C247.043,132.816 246.806,133.628 246.806,134.305 L246.738,134.305 L246.738,134.339 C246.738,136.2 247.415,136.403 248.329,136.403 Z M35.095,239.213 C34.215,239.246 33.369,239.145 32.49,239.077 C32.93,239.551 33.336,240.059 33.64,240.634 C33.843,240.972 34.012,241.311 34.148,241.683 C34.926,242.258 35.704,242.8 36.449,243.274 C36.483,243.341 36.551,243.646 36.584,243.984 C36.584,243.646 36.618,243.104 36.652,242.529 C36.787,240.938 36.72,239.179 35.095,239.213 Z M29.309,224.932 C28.463,226.996 27.447,228.959 26.94,231.158 C27.583,231.158 29.004,231.328 29.512,230.888 C30.155,230.346 29.85,229.094 29.85,228.079 L29.821,228.079 C29.849,227.114 30.15,225.546 29.309,224.932 Z M53.031,204.728 L52.997,204.728 L52.794,204.728 C52.219,204.965 51.542,204.83 51.17,205.473 C50.798,206.116 51.136,207.537 51.102,208.248 C51.068,210.075 50.967,210.447 52.794,211.124 C52.388,210.245 51.711,209.635 51.711,208.586 C51.711,209.568 52.422,210.245 52.794,211.057 C52.794,211.057 52.794,211.057 52.794,211.09 C52.828,208.992 52.76,206.826 53.031,204.728 Z M17.464,225.202 L17.396,225.202 C17.532,226.014 20.036,227.402 21.796,227.842 C21.897,227.774 21.999,227.673 22.066,227.605 C22.371,227.334 22.608,226.962 22.811,226.522 C22.912,226.421 22.98,226.251 23.082,226.082 C22.54,224.492 18.818,225.202 17.464,225.202 Z M241.256,184.694 L241.256,184.728 C241.189,184.728 241.121,184.762 241.087,184.728 C240.478,184.931 240.173,185.439 240.139,186.691 L240.139,186.725 L240.139,187.131 L240.139,187.842 C240.139,189.026 240.207,190.177 240.41,191.361 C241.29,189.161 242.17,187.063 243.084,184.694 L241.256,184.694 Z M28.293,231.937 C27.752,231.971 27.21,231.971 26.872,231.395 C26.635,231.768 26.601,232.174 26.737,232.647 C26.838,233.155 27.109,233.696 27.447,234.238 C27.819,234.644 28.192,235.084 28.564,235.524 C28.699,235.693 28.869,235.862 29.038,236.031 C29.309,236.302 29.579,236.539 29.85,236.776 C29.985,235.118 30.594,231.734 28.293,231.937 Z M94.453,285.981 C94.453,285.981 94.419,285.981 94.385,285.947 L94.487,285.947 C94.357,285.935 94.23,285.928 94.103,285.921 C94.118,285.92 94.129,285.923 94.148,285.913 L94.013,285.913 C94.015,285.913 94.017,285.915 94.019,285.915 C92.753,285.852 91.638,286.075 91.035,287.403 C91.001,287.47 90.967,287.538 90.933,287.639 C91.61,287.978 93.708,289.162 94.554,288.824 C95.468,288.452 95.604,286.489 95.773,285.71 C95.739,285.71 95.705,285.71 95.671,285.744 C95.265,285.846 94.859,286.015 94.453,285.981 Z M72.118,237.825 C72.896,238.163 74.52,238.096 75.739,237.893 C75.671,237.791 75.603,237.69 75.536,237.588 C75.333,237.554 75.163,237.554 74.96,237.52 C75.062,237.52 75.265,237.554 75.502,237.554 C75.299,237.25 75.13,236.945 74.994,236.641 C73.945,236.099 72.862,235.558 71.813,235.016 C71.712,235.152 71.576,235.253 71.441,235.321 C72.016,236.708 73.065,237.419 74.622,237.453 C73.099,237.453 71.949,236.708 71.339,235.388 C71.272,235.422 71.204,235.456 71.103,235.456 C71.103,236.438 71.204,237.419 72.118,237.825 Z M78.412,250.955 C78.669,251.405 79.101,251.618 79.29,252.072 L79.224,252.072 L79.224,252.105 C77.902,252.463 78.209,253.325 78.209,254.543 C78.209,255.152 77.871,256.235 78.006,257.081 C78.074,257.588 78.277,257.994 78.784,258.164 L78.818,258.164 C78.954,257.622 78.988,257.351 78.954,257.284 C79.089,256.201 79.224,254.34 79.326,253.189 C79.349,252.745 79.371,252.395 79.372,252.213 C79.492,252.019 79.527,251.826 79.495,251.632 C79.495,251.599 79.495,251.565 79.461,251.531 C79.461,251.463 79.461,251.395 79.495,251.362 C79.63,250.38 79.698,249.365 79.698,248.35 C79.698,247.741 79.664,247.098 79.63,246.488 C79.089,246.353 78.818,246.015 78.683,245.609 C78.311,245.812 78.108,246.15 78.006,246.556 C77.972,246.692 77.938,246.827 77.938,246.996 L77.938,247.233 C77.905,247.774 77.972,248.316 77.972,248.756 C77.972,249.5 78.006,250.279 78.412,250.955 Z M223.117,136.606 C223.185,136.606 223.219,136.572 223.287,136.572 L223.117,136.572 C224.539,136.504 225.08,136.234 225.419,135.591 L225.419,134.542 C224.742,134.711 223.963,134.812 223.219,134.88 C222.677,135.083 222.102,135.286 221.561,135.489 C220.918,135.726 220.275,135.997 219.632,136.267 C219.598,136.267 219.598,136.369 219.564,136.369 C220.715,136.708 221.865,136.674 223.05,136.674 C223.083,136.674 223.083,136.606 223.117,136.606 Z M223.354,226.353 L223.32,226.353 C224.166,228.045 224.674,229.872 224.674,232.038 C225.825,231.158 225.892,229.06 225.622,227.706 C225.419,226.421 224.606,226.353 223.354,226.353 Z M18.256,148.943 C18.258,148.916 18.258,148.913 18.253,148.967 C18.25,148.998 18.245,149.029 18.242,149.059 L18.242,149.195 C18.479,150.278 20.273,150.142 21.187,150.109 C22.426,150.075 23.07,149.083 24.166,148.964 C24.202,149.67 24.607,149.974 25.248,150.075 C26.838,150.346 28.361,149.838 29.884,149.77 C29.715,149.669 29.545,149.635 29.342,149.635 C27.659,149.264 25.941,149.029 24.19,148.96 C24.193,148.959 24.196,148.958 24.199,148.958 C22.236,148.383 20.171,148.417 18.175,147.943 C18.357,148.276 18.295,148.609 18.256,148.943 Z M210.901,204.931 C209.852,204.965 208.769,204.931 207.719,204.931 C209.209,206.082 210.698,207.233 212.187,208.383 L212.187,207.706 C212.187,207.503 212.254,207.368 212.356,207.266 C212.39,206.082 212.322,204.864 210.901,204.931 Z M61.965,259.45 C61.255,259.551 60.544,259.348 59.833,259.281 L59.732,259.281 C59.833,259.416 59.935,259.585 60.036,259.754 C60.07,259.788 60.07,259.856 60.104,259.89 C60.849,260.634 61.627,261.379 62.439,262.022 C62.71,262.055 62.981,262.123 63.251,262.191 C63.251,262.055 63.251,261.92 63.217,261.785 L63.217,261.717 C63.251,261.412 63.454,261.243 63.657,261.175 C63.556,260.127 63.217,259.281 61.965,259.45 Z M242.711,129.804 C243.524,129.736 244.302,129.77 245.114,129.804 L245.486,129.804 C244.81,128.89 244.065,128.247 243.287,127.976 C242.271,127.638 241.121,127.841 239.835,128.687 C240.546,129.702 241.561,129.905 242.711,129.804 Z M47.177,210.888 C48.97,210.888 50.121,211.192 50.155,209.128 L50.155,206.387 C50.053,206.454 49.952,206.488 49.884,206.488 C49.884,206.488 49.884,206.488 49.85,206.488 C48.903,207.909 47.989,209.365 47.177,210.888 Z M219.936,227.47 C219.767,228.383 219.564,229.466 219.936,230.109 C220.241,230.617 220.85,230.82 221.459,230.955 C221.831,231.023 222.238,231.091 222.542,231.158 C222.001,229.466 221.188,227.943 220.139,226.522 C220.105,226.793 220.038,227.131 219.936,227.47 Z M219.801,260.634 C219.801,261.446 219.801,262.258 219.835,263.071 C219.869,263.443 219.869,263.815 219.902,264.187 C220.105,263.984 220.309,263.781 220.512,263.578 C220.613,263.477 220.749,263.375 220.884,263.274 C220.85,263.104 220.816,262.901 220.816,262.665 C220.782,261.311 221.155,259.416 221.188,258.705 C220.376,258.942 219.97,259.72 219.801,260.634 Z M246.84,172.545 C246.84,172.748 246.772,172.951 246.772,173.222 C246.772,173.201 246.771,173.176 246.77,173.153 C246.771,173.188 246.772,173.217 246.772,173.256 C246.772,173.493 246.806,173.425 246.806,173.256 C246.806,174 246.84,174.779 246.84,175.557 C247.652,174.204 248.363,172.613 248.904,171.259 C248.092,171.259 247.618,171.293 247.314,171.462 C246.975,171.564 246.874,171.869 246.84,172.545 Z M89.072,286.015 C89.106,286.015 89.14,285.981 89.174,285.981 C89.14,285.981 89.106,285.947 89.072,285.947 C88.328,285.947 87.583,286.015 86.839,286.015 L86.094,286.015 C87.583,286.624 89.106,287.233 90.697,287.639 C90.697,287.538 90.73,287.47 90.73,287.369 L90.73,287.166 C90.697,286.252 90.121,285.913 89.072,286.015 Z M223.727,198.163 L222.847,198.163 C222.847,198.163 222.847,198.163 222.847,198.197 C223.727,199.144 224.776,199.855 225.825,200.6 C226.129,198.569 225.791,198.163 223.727,198.163 Z M41.627,246.082 L41.457,246.082 C41.322,246.082 41.153,245.981 41.018,245.913 C41.119,246.015 41.221,246.15 41.322,246.252 C41.931,246.827 42.574,247.605 43.285,247.944 C43.285,247.977 43.319,248.079 43.319,248.214 L43.353,248.248 C43.353,247.808 43.353,247.436 43.285,247.131 C43.15,246.387 42.743,246.116 41.627,246.082 Z M100.138,258.198 C99.834,257.758 99.495,257.385 99.123,257.047 C98.751,256.912 98.514,256.675 98.345,256.37 C98.311,256.336 98.277,256.302 98.243,256.302 C98.311,258.096 98.345,258.13 100.138,258.198 Z M74.217,271.666 L74.25,271.666 C76.889,271.666 77.092,271.091 77.228,268.519 L77.228,268.045 C77.228,265.981 76.585,265.913 74.284,265.913 C72.084,265.913 71.305,265.981 71.238,268.35 L71.238,269.06 C71.238,269.873 71.272,270.448 71.475,270.854 C71.678,271.26 71.982,271.497 72.591,271.599 C72.991,271.665 73.523,271.666 74.217,271.666 L74.216,271.666 L74.217,271.666 Z M47.278,164.39 L46.906,164.39 C44.74,164.423 44.368,164.863 44.368,167.3 L44.368,167.435 L44.3,167.435 C44.3,169.804 44.639,170.346 47.244,170.379 C49.918,170.413 50.155,170.041 50.29,167.435 C50.425,164.897 49.816,164.423 47.278,164.39 Z M44.334,235.761 C44.368,237.047 44.232,237.588 45.586,237.859 C46.5,238.028 47.955,237.994 48.869,237.859 C50.595,237.588 50.155,236.235 50.155,234.712 C50.155,232.817 50.155,232.004 48.124,231.937 C47.244,231.903 45.315,231.564 44.571,232.241 C43.793,232.952 44.3,234.847 44.334,235.761 Z M40.375,225.338 C37.836,225.338 37.6,225.608 37.6,228.146 C37.6,230.042 37.464,230.955 39.495,231.124 C40.442,231.192 42.202,231.463 42.947,230.955 C43.657,230.448 43.522,228.925 43.59,228.079 L43.59,227.706 C43.556,225.608 42.608,225.338 40.375,225.338 Z M88.734,265.744 C87.922,265.744 85.823,265.372 85.18,265.947 C84.3,266.725 84.842,268.756 84.774,269.737 C84.639,272.039 86.365,271.7 88.192,271.666 C89.783,271.632 90.561,271.599 90.697,269.873 C90.866,267.842 91.204,265.744 88.734,265.744 Z M30.696,167.875 C30.764,170.583 32.016,170.379 34.452,170.346 C36.381,170.312 36.584,169.703 36.584,168.315 L36.584,168.18 C36.584,167.841 36.618,167.469 36.618,167.063 C36.618,164.423 36.246,164.423 33.674,164.423 L33.64,164.423 C31.068,164.423 30.696,164.999 30.696,167.165 L30.696,167.875 Z M33.708,210.921 C36.178,211.09 36.618,210.718 36.618,208.248 L36.618,207.808 C36.618,205.541 36.347,205.033 33.742,205.033 C31.17,205.033 30.899,205.371 30.831,207.876 C30.831,208.18 30.798,208.417 30.831,208.688 C30.865,210.549 31.373,210.752 33.708,210.921 Z M83.928,268.756 C83.928,266.827 83.996,265.744 81.898,265.71 C80.95,265.676 79.292,265.44 78.514,266.015 C78.108,266.353 78.006,266.962 78.006,267.572 C78.006,267.978 78.04,268.418 78.04,268.756 L78.04,268.925 L78.04,269.365 C78.04,271.227 78.548,271.545 80.332,271.64 C80.459,271.663 80.612,271.666 80.849,271.666 C80.642,271.666 80.47,271.662 80.337,271.64 C80.531,271.65 80.726,271.66 80.95,271.666 C83.556,271.7 83.928,271.362 83.928,268.756 Z M44.199,181.581 C44.266,184.119 45.485,183.882 47.82,183.848 C50.087,183.814 50.155,183.442 50.155,181.243 C50.155,178.535 50.155,177.791 47.244,177.926 C44.334,178.062 44.131,178.738 44.199,181.581 Z M36.652,214.508 C36.415,212.072 36.111,211.7 33.64,211.7 C31.102,211.7 30.696,212.072 30.696,214.644 C30.696,216.975 31.118,217.444 33.198,217.599 C33.354,217.605 33.527,217.613 33.742,217.622 C36.449,217.622 36.889,217.182 36.652,214.508 Z M40.341,170.515 C43.014,170.515 43.387,170.109 43.387,167.469 C43.387,164.762 42.913,164.423 40.205,164.423 C37.667,164.457 37.464,165.066 37.464,167.503 C37.43,170.177 37.6,170.515 40.341,170.515 Z M87.854,264.932 C90.358,264.932 90.697,264.492 90.697,262.022 C90.73,259.754 90.697,259.01 88.294,258.976 L87.279,258.976 C85.248,258.942 84.639,259.281 84.639,261.852 L84.707,261.852 C84.707,264.56 85.147,264.932 87.854,264.932 Z M40.408,157.655 C37.667,157.655 37.532,158.433 37.43,161.005 L37.43,161.242 C37.397,163.645 38.513,163.577 40.882,163.611 C43.251,163.645 43.387,162.799 43.387,160.904 L43.387,160.058 C43.387,157.621 42.811,157.655 40.408,157.655 Z M97.296,259.484 C96.788,258.705 95.604,259.044 94.825,259.077 C92.219,259.145 91.069,258.637 91.069,261.649 C91.069,264.39 91.576,264.932 94.351,264.932 L94.791,264.932 C96.822,264.932 97.329,264.83 97.363,262.495 C97.363,262.055 97.499,261.209 97.499,260.533 C97.499,260.127 97.431,259.72 97.296,259.484 Z M77.194,261.243 L77.194,261.988 C77.194,259.348 76.822,258.841 74.182,258.841 C71.678,258.841 71.238,259.281 71.238,261.818 C71.238,264.018 71.373,264.83 73.674,264.864 C73.945,264.864 74.182,264.898 74.419,264.898 C76.619,264.898 77.228,264.593 77.228,261.988 C77.194,261.615 77.194,261.379 77.194,261.243 Z M54.013,238.739 C51.373,238.739 51.001,239.077 51.001,241.717 C50.967,244.593 51.644,244.695 54.453,244.661 C56.788,244.627 56.923,243.883 56.923,241.683 C56.923,239.179 56.517,238.739 54.013,238.739 Z M60.781,245.473 L59.766,245.473 C58.209,245.507 57.803,245.845 57.769,247.842 C57.701,250.583 57.6,251.531 60.578,251.565 C61.288,251.565 62.845,251.869 63.387,251.159 C63.861,250.516 63.556,248.587 63.623,247.842 C63.894,245.236 63.15,245.507 60.781,245.473 Z M33.031,197.351 L33.64,197.351 L34.385,197.351 L34.588,197.351 C36.246,197.317 36.652,197.046 36.652,194.881 C36.652,192.139 36.111,191.327 33.268,191.361 C30.696,191.395 30.73,192.139 30.73,194.441 C30.73,196.911 30.899,197.283 33.031,197.351 Z M47.346,238.874 C44.706,238.874 44.3,239.179 44.199,241.784 L44.199,242.191 C44.165,244.492 44.808,244.695 47.38,244.661 C49.952,244.627 50.121,244.052 50.155,241.581 L50.155,241.209 C50.155,239.043 49.816,238.536 47.346,238.874 Z M49.376,225.642 C48.937,225.405 48.26,225.371 47.211,225.371 C44.943,225.371 44.131,225.405 44.199,227.842 C44.266,230.414 44.469,231.226 47.143,231.226 C49.85,231.226 50.222,230.786 50.155,228.079 C50.15,227.897 50.147,227.759 50.145,227.646 C50.123,227.096 50.06,226.678 49.952,226.353 C49.647,226.218 49.478,225.947 49.376,225.642 Z M44.165,159.313 C44.097,159.956 43.928,162.325 44.3,162.934 C44.943,164.051 47.346,163.747 48.564,163.577 C50.527,163.34 50.222,161.682 50.189,160.024 C50.087,157.588 49.376,157.554 47.041,157.757 C45.383,157.892 44.436,157.08 44.165,159.313 Z M66.534,244.661 C68.632,244.763 70.257,245.033 70.392,242.664 C70.561,240.025 70.561,239.01 67.82,238.773 C65.722,238.604 64.605,238.367 64.47,240.702 C64.368,242.834 64.097,244.526 66.534,244.661 Z M47.989,218.434 L47.075,218.434 C44.232,218.434 43.962,219.923 44.232,222.563 C44.436,224.762 45.992,224.39 47.921,224.356 C48.767,224.356 49.512,224.492 50.019,223.781 C50.527,223.036 50.324,221.243 50.29,220.397 C50.155,218.637 49.343,218.434 47.989,218.434 Z M72.795,238.705 C70.899,238.739 71.305,239.788 71.305,241.277 C71.339,242.529 70.764,244.086 72.185,244.593 C72.93,244.864 75.603,244.864 76.348,244.559 C77.532,244.086 77.16,242.834 77.025,241.717 C77.059,241.345 77.16,240.871 77.16,240.397 C77.16,240.397 77.16,240.397 77.16,240.363 C77.126,240.228 77.126,240.126 77.16,240.025 C77.16,239.923 77.16,239.822 77.126,239.72 C76.889,239.382 76.619,239.077 76.348,238.739 C75.4,238.4 73.573,238.705 72.795,238.705 Z M86.568,279.247 C84.334,279.45 84.605,281.277 84.741,283.24 C84.91,285.474 86.365,285.237 88.328,285.203 C90.9,285.135 90.9,284.221 90.629,281.819 C90.324,279.111 89.241,278.976 86.568,279.247 Z M47.211,171.158 C44.774,171.158 44.334,171.564 44.199,174 C44.199,174.305 44.165,174.61 44.165,174.88 C44.165,176.776 44.706,177.114 47.075,177.114 C49.715,177.114 50.087,176.776 50.087,174.136 L50.087,174.102 C50.121,171.564 49.749,171.158 47.211,171.158 Z M33.742,190.583 C36.28,190.583 36.652,190.143 36.652,187.638 C36.652,184.965 36.584,184.66 33.843,184.66 C31.204,184.66 30.831,184.999 30.798,187.638 C30.764,190.177 31.204,190.583 33.742,190.583 Z M74.385,245.642 C73.539,245.642 72.355,245.405 71.745,246.116 C71.272,246.692 71.272,248.417 71.238,249.128 C71.035,252.005 72.727,251.395 75.13,251.328 C77.295,251.26 77.194,251.023 77.194,248.891 C77.194,246.285 77.16,245.642 74.385,245.642 Z M26.297,217.554 C26.737,217.554 27.177,217.622 27.583,217.622 C28.801,217.622 29.749,217.453 29.884,215.862 C30.087,213.696 30.358,211.733 27.921,211.7 L27.684,211.7 L27.549,211.7 C27.143,211.7 26.364,211.632 25.688,211.632 C25.078,211.632 24.571,211.7 24.334,211.903 C23.735,212.439 24.014,213.731 24.055,214.508 L23.996,214.508 C23.996,216.877 24.029,217.487 26.297,217.554 Z M28.463,191.395 C27.413,191.429 25.552,191.023 24.605,191.53 C23.522,192.139 24.063,193.595 24.063,194.576 C24.097,196.945 23.996,197.317 26.534,197.351 C27.819,197.351 29.207,197.656 29.749,196.302 C30.29,194.948 30.527,191.327 28.463,191.395 Z M96.957,272.851 L96.957,272.783 C96.653,272.58 96.213,272.377 95.57,272.377 C95.265,272.377 94.927,272.445 94.453,272.445 C93.505,272.546 91.982,272.106 91.509,273.291 C91.238,273.934 91.543,275.761 91.509,276.506 C91.407,278.435 92.389,278.468 94.081,278.435 C95.197,278.401 96.28,278.468 96.923,277.995 C96.856,277.352 96.822,276.709 96.856,276.066 C96.856,274.983 96.923,273.934 96.957,272.851 Z M54.114,231.971 C51.339,231.937 51.136,232.613 50.967,235.355 C50.832,237.724 51.61,237.893 53.843,237.893 C56.077,237.893 56.855,237.724 56.889,235.388 C56.923,232.715 56.889,231.971 54.114,231.971 Z M33.776,237.893 C36.28,237.859 36.415,237.216 36.618,234.779 C36.821,232.207 36.347,231.937 33.809,231.937 C30.865,231.937 30.662,232.749 30.696,235.592 C30.73,238.062 31.407,237.927 33.776,237.893 Z M43.42,179.449 C43.387,178.603 43.116,177.96 41.965,177.96 C40.442,177.96 38.04,177.08 37.498,178.874 C37.43,179.11 37.464,179.449 37.498,179.855 C37.464,180.566 37.6,181.344 37.6,181.818 C37.6,181.987 37.532,182.122 37.532,182.258 C37.532,182.732 37.532,183.205 37.904,183.544 C38.581,184.187 41.695,184.051 42.507,183.747 C43.285,183.442 43.454,182.901 43.454,182.258 C43.454,181.885 43.353,181.446 43.319,180.972 C43.319,180.972 43.319,180.972 43.319,180.938 C43.353,180.464 43.42,179.956 43.42,179.449 Z M33.539,163.577 L33.776,163.577 L34.182,163.577 C36.483,163.544 36.652,163.273 36.652,160.667 C36.652,157.892 35.941,157.655 33.2,157.621 C30.865,157.588 30.73,158.366 30.73,160.599 C30.73,163.137 31.102,163.544 33.539,163.577 Z M36.314,218.637 C35.603,218.062 33.945,218.468 33.133,218.502 C30.798,218.637 30.594,218.773 30.73,221.074 C30.764,221.717 30.493,223.646 31.068,224.153 C31.61,224.661 32.93,224.356 33.606,224.356 C34.689,224.356 34.757,224.356 34.452,224.322 C36.551,224.221 36.821,223.578 36.72,221.04 C36.686,220.464 36.889,219.111 36.314,218.637 Z M30.696,174.474 C30.764,175.185 30.933,176.505 31.542,176.979 C32.253,177.486 33.336,176.979 34.114,177.114 C34.215,177.114 34.351,177.182 34.452,177.182 C34.486,177.148 34.52,177.215 34.554,177.215 C34.622,177.046 34.791,176.945 35.062,176.945 L36.145,176.945 L36.178,176.877 C36.381,176.133 36.787,175.286 36.821,174.677 C36.889,173.831 36.889,172.748 36.449,171.97 C35.704,170.583 33.809,170.955 32.422,171.192 C30.662,171.462 30.527,172.714 30.696,174.474 Z M31.677,183.814 C32.76,184.153 35.941,184.288 36.551,183.138 C36.754,182.732 36.889,181.885 36.889,180.938 C36.889,179.753 36.72,178.434 36.212,177.96 L36.145,177.96 L35.062,177.96 C34.926,177.96 34.791,177.926 34.723,177.858 C33.369,177.757 31.339,177.486 30.764,178.705 C30.561,179.11 30.459,179.787 30.459,180.498 C30.459,181.919 30.798,183.51 31.677,183.814 Z M60.713,238.705 C59.326,238.705 58.107,238.434 57.701,239.957 C57.465,240.905 57.431,243.544 58.175,244.289 C58.886,245 61.322,244.83 62.27,244.695 C63.928,244.458 63.725,243.24 63.59,241.751 C63.861,238.231 63.59,238.739 60.713,238.705 Z M67.38,258.062 C69.884,258.028 70.426,257.825 70.46,255.253 C70.426,252.783 70.223,252.242 67.718,252.208 C65.214,252.174 64.537,252.275 64.503,254.881 C64.47,257.555 64.639,258.096 67.38,258.062 Z M37.836,184.864 C37.058,185.574 36.889,188.112 36.957,189.026 C37.092,190.752 37.261,190.752 38.953,190.752 C38.953,190.786 38.953,190.583 38.953,190.583 L41.491,190.583 C42.845,190.583 43.014,189.398 43.014,188.383 C43.014,187.605 43.59,185.439 42.913,184.897 C42.337,184.424 38.513,184.254 37.836,184.864 Z M36.652,200.667 C36.686,199.348 37.092,198.095 35.299,198.163 C32.727,198.265 30.967,197.486 30.798,200.6 C30.662,203.172 30.696,204.052 33.437,204.119 C34.148,204.153 35.738,204.424 36.314,203.848 C36.991,203.205 36.652,201.48 36.652,200.667 Z M74.724,258.333 C77.025,258.265 77.194,257.385 77.194,255.524 L77.194,254.712 C77.194,252.275 76.652,252.208 74.25,252.208 C71.475,252.208 71.576,252.681 71.441,255.186 C71.407,255.693 71.272,256.302 71.238,256.844 C71.204,257.318 71.305,257.758 71.644,258.062 C72.253,258.637 73.979,258.367 74.724,258.333 Z M40.611,231.937 C38.716,231.937 37.363,231.734 37.498,233.899 C37.532,234.441 37.769,235.016 37.769,235.558 C37.769,235.896 37.498,236.607 37.6,236.911 C38.04,238.299 40.375,237.927 41.627,237.859 C43.86,237.791 43.387,236.641 43.454,234.745 C43.556,232.207 43.217,231.937 40.611,231.937 Z M25.62,183.814 C27.007,183.916 29.478,184.356 29.884,182.732 C30.121,181.818 29.951,180.396 29.985,179.449 C30.019,178.603 30.155,177.994 29.072,177.96 C27.921,177.926 26.737,178.231 26.094,177.994 C24.165,177.655 23.962,178.603 24.029,180.261 C24.063,182.055 23.454,183.679 25.62,183.814 Z M88.632,272.512 C87.786,272.479 85.993,272.14 85.316,272.648 C84.199,273.426 84.943,274.983 84.876,276.099 C84.842,276.506 84.808,276.743 84.808,276.878 C84.83,276.769 84.851,276.55 84.864,276.361 C84.75,278.907 86.313,278.532 88.768,278.401 C91.001,278.265 90.595,277.589 90.663,275.558 C90.697,273.629 90.73,272.614 88.632,272.512 Z M28.192,171.158 C27.21,171.226 25.992,170.955 25.078,171.158 C23.589,171.463 23.86,173.087 23.928,174.271 C24.029,176.572 23.86,176.911 26.161,176.945 C27.752,176.945 29.376,177.757 29.85,175.896 C30.222,174.339 30.392,170.955 28.192,171.158 Z M23.826,154.237 C23.826,154.745 23.86,155.252 23.894,155.523 C24.063,156.775 24.74,156.978 25.823,156.978 L26.33,156.978 C29.309,156.978 29.816,156.911 29.816,153.831 C29.816,152.613 29.782,151.665 28.564,151.225 C27.617,150.887 25.18,150.312 24.402,151.191 C23.962,151.665 23.826,153.12 23.826,154.237 Z M29.579,168.484 L29.85,168.484 C29.85,167.131 30.222,165.405 28.801,164.931 C27.786,164.559 24.469,164.322 24.097,165.371 C23.86,165.98 23.996,167.334 23.962,168.044 C23.928,168.451 23.792,169.398 23.962,169.804 C24.402,170.718 25.18,170.82 26.161,170.786 C26.161,170.786 26.161,170.786 26.127,170.786 L26.161,170.718 C28.767,170.616 29.579,171.53 29.579,168.484 Z M24.808,210.718 C25.518,211.09 28.767,211.192 29.444,210.684 C30.425,209.94 29.884,206.996 29.85,205.913 C29.816,204.525 27.752,205.033 26.77,204.965 C25.958,204.931 24.672,204.627 24.097,205.405 C23.454,206.285 23.759,210.177 24.808,210.718 Z M17.735,156.437 C18.039,156.64 18.446,156.775 19.088,156.775 C19.968,156.843 21.897,157.181 22.608,156.606 C23.454,155.963 23.116,154.406 23.116,153.425 C23.116,152.477 23.386,151.428 22.439,150.921 C21.457,150.379 18.852,150.853 17.769,150.853 C17.566,151.158 17.464,151.53 17.464,151.902 C17.566,152.714 17.363,153.594 17.261,154.406 C17.43,155.083 17.633,155.76 17.735,156.437 Z M70.426,247.368 C70.46,245.439 69.613,245.27 67.515,245.27 C65.282,245.27 64.436,245.507 64.436,247.537 L64.436,248.045 C64.571,250.651 64.774,251.328 67.414,251.362 C68.124,251.362 69.613,251.632 70.121,251.023 C70.358,250.786 70.392,250.143 70.392,249.5 C70.426,249.027 70.392,248.519 70.392,248.18 L70.392,247.91 C70.392,247.741 70.426,247.504 70.426,247.368 Z M43.387,195.084 C43.454,192.816 43.623,191.496 41.119,191.429 C39.055,191.361 37.803,190.853 37.566,193.087 C37.295,195.727 37.092,196.843 39.901,197.216 C42.304,197.486 43.285,197.757 43.387,195.084 Z M27.109,198.265 C24.063,198.265 24.334,198.975 24.131,201.581 C24.097,201.886 24.063,202.156 24.063,202.427 C24.097,204.187 24.841,204.322 27.143,204.288 C29.309,204.255 29.951,203.882 29.918,201.953 L29.918,201.615 C29.782,199.077 29.647,198.299 26.974,198.299 L27.109,198.299 L27.109,198.265 Z M32.185,231.124 C33.539,231.091 35.366,231.497 35.975,230.211 C36.347,229.432 36.686,227.842 36.517,227.03 C36.043,224.999 34.114,225.101 32.422,225.169 C30.188,225.236 30.29,228.045 30.324,229.635 C30.358,231.395 30.831,231.124 32.185,231.124 Z M24.537,190.989 C25.383,191.496 28.496,191.124 29.275,190.481 C30.358,189.567 30.662,184.559 28.598,184.66 L28.564,184.66 C27.617,184.694 25.248,184.796 24.435,185.371 C23.623,185.913 23.928,187.774 23.928,188.789 L23.962,188.789 C23.962,189.804 23.657,190.481 24.537,190.989 Z M42.371,171.259 C41.424,170.921 38.276,170.887 37.701,171.801 C37.261,172.478 37.43,174.44 37.464,175.354 C37.498,176.302 37.6,177.114 38.75,177.114 C39.63,177.08 41.897,177.419 42.642,177.012 C43.522,176.505 43.353,175.05 43.387,173.967 C43.42,172.782 43.59,171.699 42.371,171.259 Z M43.42,200.803 C43.387,199.077 43.15,198.231 40.984,198.163 C39.156,198.129 37.261,197.825 37.261,200.058 C37.6,202.461 37.667,204.018 40.205,204.119 C40.172,204.119 40.138,204.085 40.104,204.051 C40.138,204.051 40.239,204.018 40.307,204.018 C40.848,204.018 41.322,204.085 41.728,204.051 C42.27,204.018 42.676,203.916 42.947,203.612 C43.285,203.239 43.42,202.664 43.454,201.649 C43.454,201.344 43.42,201.073 43.42,200.803 Z M81.878,272.477 C81.788,272.454 81.721,272.479 81.627,272.479 C79.427,272.58 78.446,272.512 78.209,274.881 C78.04,276.844 77.668,278.536 80.07,278.468 C81.898,278.435 83.691,278.604 83.928,276.539 C84.223,274.184 84.288,272.467 81.878,272.477 Z M51.035,248.553 C51.238,250.989 51.915,251.26 54.317,251.395 C56.517,251.497 57.126,250.854 56.957,248.654 C56.72,246.082 56.382,245.439 53.776,245.473 C51.238,245.507 50.832,246.049 51.035,248.553 Z M19.968,163.374 C20.374,163.713 21.863,163.747 22.337,163.544 C23.488,163.002 23.691,157.723 22.303,157.723 C20.848,157.723 19.359,157.351 17.938,157.994 C18.378,158.772 18.818,159.55 19.258,160.362 C20.002,161.175 19.122,162.664 19.968,163.374 Z M21.288,184.66 C18.953,184.66 19.359,185.98 19.359,187.977 C19.359,189.94 19.495,190.989 21.83,190.583 C23.657,190.278 23.149,188.485 23.116,186.894 C23.082,185.236 23.014,184.66 21.288,184.66 Z M21.897,191.429 C21.706,191.396 21.527,191.37 21.352,191.349 C21.282,191.336 21.221,191.327 21.187,191.327 C21.216,191.327 21.263,191.336 21.316,191.346 C20.427,191.245 19.763,191.374 19.427,192.41 C19.088,193.391 18.953,196.471 19.799,197.182 C20.984,198.163 22.912,197.283 23.116,195.964 C23.353,194.576 23.725,191.733 21.897,191.429 Z M21.085,204.119 C23.826,204.119 23.149,201.75 23.116,199.584 C23.082,198.265 20.747,197.486 19.765,198.332 C19.19,198.806 19.224,200.024 19.292,201.006 C19.833,201.852 19.968,202.867 19.833,203.916 C20.104,204.052 20.476,204.119 21.085,204.119 Z M23.116,179.178 C23.149,177.926 21.593,177.689 20.611,178.129 C19.562,178.603 19.765,179.618 19.325,180.599 L19.325,181.615 C19.427,183.341 19.596,183.95 21.457,183.848 C23.928,183.713 23.082,181.141 23.116,179.178 Z M20.138,170.752 C20.51,170.989 22.1,171.056 22.507,170.786 C23.014,170.481 23.319,169.127 23.319,167.774 C23.319,166.488 23.048,165.236 22.405,165.033 C22.507,165.066 22.507,165.1 22.405,165.1 L22.405,164.931 C22.229,164.88 22.068,164.848 21.913,164.826 C21.874,164.816 21.822,164.804 21.796,164.796 C21.823,164.803 21.861,164.814 21.9,164.825 C19.924,164.555 19.63,166.604 19.63,168.484 C19.63,169.5 19.325,170.244 20.138,170.752 Z M21.728,171.124 C20.476,171.09 19.833,171.09 19.63,172.444 C19.461,173.628 19.088,176.539 20.442,177.08 C21.66,177.554 22.912,176.809 23.116,175.693 C23.386,174.271 23.759,171.158 21.728,171.124 Z M37.633,223.95 C38.276,224.762 41.931,224.695 42.642,224.322 C44.097,223.544 43.454,219.483 43.082,218.163 C42.202,219.923 41.288,221.683 40.408,223.409 C40.307,223.375 40.205,223.341 40.104,223.307 L40.104,223.003 C40.273,219.585 40.476,216.167 40.645,212.715 C40.747,212.376 40.848,212.004 40.95,211.666 C40.916,211.7 40.848,211.733 40.815,211.767 C40.645,211.869 40.409,211.937 40.307,212.004 C40.375,212.004 40.036,211.835 40.036,211.7 C39.495,211.7 38.276,211.632 37.261,211.632 L37.261,211.767 C37.261,211.869 37.363,211.903 37.092,211.97 C36.618,212.918 36.754,215.794 37.227,216.81 C37.701,217.791 39.123,217.554 40.104,217.554 C39.969,218.908 38.987,218.096 38.276,218.332 C37.16,218.705 38.073,218.502 37.904,219.246 C37.667,220.295 36.754,222.901 37.633,223.95 Z M216.451,156.437 C216.721,156.437 216.891,156.606 216.992,156.809 C217.297,156.843 217.567,156.843 217.703,156.809 C218.921,156.606 218.989,156.234 219.023,155.016 C219.056,154.17 219.26,152.714 218.989,151.902 C218.617,150.752 217.973,151.056 216.891,151.056 C214.995,151.056 213.236,150.244 213.168,152.613 C213.134,153.831 212.796,155.523 213.506,156.539 C214.488,156.471 215.469,156.437 216.451,156.437 Z M218.617,157.79 C218.38,157.588 216.823,157.757 216.078,157.588 C215.3,157.588 214.488,157.621 213.71,157.655 C212.965,158.264 213.033,159.212 213.202,160.126 C213.54,161.919 212.423,163.408 214.86,163.577 C216.552,163.679 218.718,164.187 219.056,162.258 C219.192,161.378 219.462,158.433 218.617,157.79 Z M237.872,184.66 C237.398,184.66 236.925,184.728 236.586,184.728 C236.214,184.728 235.639,184.627 235.097,184.627 C234.556,184.627 234.014,184.694 233.71,184.999 C233.033,185.676 233.405,187.638 233.405,188.485 C233.27,188.992 233.134,189.161 233.033,189.161 C232.762,189.128 232.559,187.875 232.559,187.368 C232.559,187.368 232.559,187.368 232.559,187.334 C232.559,185.439 232.525,184.762 230.529,184.694 C230.089,184.694 229.615,184.627 229.107,184.627 C228.024,184.627 226.975,184.83 226.637,185.913 C226.332,186.928 226.434,189.872 227.415,190.515 C229.344,191.7 232.356,189.601 234.488,190.617 C235.469,190.617 237.703,191.023 238.617,190.549 C239.497,190.075 239.361,189.297 239.395,188.349 C239.429,187.571 239.869,185.845 239.429,185.168 C239.09,184.728 238.481,184.66 237.872,184.66 Z M233.303,148.18 C233.303,148.023 233.329,147.841 233.356,147.659 C233.362,147.81 233.398,147.98 233.54,148.18 C233.54,148.18 233.54,148.18 233.54,148.213 C233.54,149.229 233.405,149.838 234.387,150.109 C234.691,150.21 235.131,150.21 235.605,150.21 C236.451,150.21 237.365,150.075 237.906,149.973 C238.752,149.804 239.158,149.127 239.327,148.45 L239.226,148.45 C239.294,148.112 239.26,147.875 239.26,147.57 C239.598,146.826 239.26,146.048 239.192,145.405 C239.057,144.322 238.481,143.983 237.635,143.949 C236.992,143.949 236.146,144.119 235.402,144.22 C233.574,144.525 233.54,145.472 233.202,146.894 C233.202,147.3 233.303,147.74 233.303,148.18 Z M229.615,217.622 C232.085,217.622 232.525,217.25 232.525,214.779 L232.525,214.745 C232.525,212.106 232.187,211.666 229.513,211.666 C226.908,211.666 226.603,212.241 226.603,214.407 L226.603,215.185 C226.637,217.487 227.381,217.622 229.615,217.622 Z M223.287,150.887 C221.222,150.887 219.97,150.481 219.835,152.816 C219.801,153.357 219.767,153.865 219.767,154.339 C219.767,155.828 220.072,156.945 222.034,156.911 C224.234,156.877 225.723,156.877 225.791,154.474 C225.791,154 225.825,153.56 225.825,153.188 C225.825,151.598 225.486,150.887 223.287,150.887 Z M228.532,197.419 C229.344,197.486 231.307,197.622 232.018,197.148 C233.067,196.437 232.559,195.185 232.627,194.17 C232.641,193.894 232.647,193.646 232.646,193.414 C232.653,193.348 232.661,193.281 232.661,193.222 C232.661,193.269 232.653,193.326 232.645,193.39 C232.633,192.016 232.258,191.395 230.529,191.395 C229.04,191.395 227.111,191.057 226.671,192.748 C226.163,194.711 226.231,197.182 228.532,197.419 Z M214.589,150.007 L214.589,150.075 C215.943,150.075 218.65,150.616 218.684,148.755 C218.684,148.856 218.921,148.823 218.921,148.721 C218.887,148.518 219.124,148.281 219.09,148.078 C219.023,147.232 219.53,144.829 218.549,144.423 C217.973,143.747 215.571,143.611 214.116,144.186 C214.195,144.168 214.281,144.162 214.364,144.149 C214.156,144.187 213.956,144.24 213.777,144.322 C213.71,144.356 213.676,144.39 213.608,144.423 C213.507,144.694 213.303,144.931 213.066,145.1 C213.066,145.134 213.033,145.168 213.033,145.168 C212.627,146.217 212.728,147.875 212.593,148.924 C212.254,150.515 213.574,150.007 214.589,150.007 Z M236.146,157.621 C235.165,157.621 234.183,157.452 233.642,158.366 C233.202,159.144 233.27,160.87 233.337,161.716 C233.473,163.984 235.402,163.645 237.365,163.544 C239.767,163.442 239.327,161.852 239.327,159.719 C239.294,157.351 238.346,157.655 236.146,157.621 Z M224.539,184.796 C223.997,184.694 222.914,184.525 221.967,184.491 C221.222,184.491 220.512,184.593 220.207,184.965 C219.53,185.71 219.666,188.518 219.936,189.432 C220.275,190.515 221.121,190.617 222.068,190.617 C222.407,190.617 222.711,190.583 223.05,190.583 L223.32,190.583 C223.693,190.583 224.099,190.651 224.471,190.651 C224.877,190.651 225.249,190.583 225.52,190.278 C226.061,189.737 225.622,188.18 225.723,187.435 C225.757,187.131 225.757,186.86 225.757,186.623 L225.757,186.759 L225.825,186.759 L225.859,186.691 L225.892,186.657 C225.897,186.611 225.898,186.57 225.902,186.526 C225.949,186.218 225.931,186.303 225.904,186.503 C225.977,185.583 225.82,185.02 224.539,184.796 Z M230.359,156.877 C232.39,156.843 232.559,156.234 232.559,154.779 L232.559,153.662 C232.559,150.989 232.221,150.887 229.615,150.887 C227.009,150.887 226.603,151.293 226.603,153.899 C226.603,154.203 226.569,154.576 226.569,154.982 C226.569,155.625 226.671,156.268 227.145,156.64 C227.855,157.181 229.547,156.877 230.359,156.877 Z M218.176,171.226 C217.432,170.887 215.537,171.056 214.792,171.158 C213.608,171.293 213.303,171.429 213.134,172.681 C213.1,173.087 213.033,173.933 213.033,174.711 C213.033,175.32 213.033,175.896 213.168,176.234 C213.439,176.978 213.946,177.08 214.623,177.114 L214.623,177.046 C214.962,177.046 215.029,176.978 215.232,176.978 L215.266,176.978 L215.334,176.978 L215.334,177.046 C216.687,177.046 218.718,177.621 219.124,175.862 C219.158,175.794 219.158,175.726 219.158,175.625 C219.226,175.185 219.293,174.61 219.293,174.034 C219.226,172.85 218.989,171.632 218.176,171.226 Z M220.275,183.679 C221.087,184.39 225.114,184.458 225.622,183.239 C225.926,182.596 225.825,181.682 225.825,181.006 C225.825,181.716 225.791,182.461 225.486,183.104 C225.791,182.325 225.859,179.144 225.554,178.366 C225.182,177.926 221.053,177.757 220.41,178.028 C219.361,178.468 218.887,183.138 220.275,183.679 Z M229.547,177.892 C226.671,177.892 226.569,178.637 226.637,181.412 C226.704,183.882 227.618,183.848 229.987,183.848 C232.559,183.848 232.593,183.408 232.559,180.904 C232.525,178.298 232.221,177.892 229.547,177.892 Z M232.424,145.032 C231.882,144.186 230.867,144.457 229.919,144.119 C227.28,144.119 226.738,143.916 226.603,146.691 C226.569,147.097 226.569,147.537 226.569,147.841 C226.569,149.263 226.941,149.939 228.904,150.007 C230.969,150.075 232.424,150.515 232.559,148.213 C232.593,147.807 232.661,147.029 232.661,146.352 C232.661,145.878 232.593,145.337 232.424,145.032 Z M214.251,183.848 C214.623,183.848 215.165,184.051 215.808,183.713 L215.875,183.713 C216.18,183.713 216.518,183.781 216.789,183.781 C217.703,183.781 218.447,183.679 218.752,182.562 C218.955,181.784 219.124,178.941 218.583,178.264 C218.244,177.858 217.398,177.723 216.518,177.723 C215.638,177.723 214.725,177.825 214.285,177.96 C212.796,178.4 212.931,179.652 212.931,181.04 L212.931,181.107 C212.897,183.51 212.863,183.882 214.251,183.848 Z M244.616,137.486 L244.674,137.486 C244.629,137.463 244.558,137.47 244.472,137.477 C244.298,137.474 244.108,137.478 243.896,137.486 C241.662,137.587 240.241,136.978 240.139,139.584 C240.004,142.291 240.004,143.239 242.847,143.171 C243.625,143.205 245.249,143.577 245.859,142.9 C246.4,142.291 246.231,140.227 246.197,139.449 C246.083,137.935 245.766,137.535 244.616,137.486 Z M220.139,157.994 C219.496,158.637 219.936,160.159 219.97,160.904 C220.038,162.055 219.598,163.51 221.121,163.577 C222.88,163.645 225.351,164.423 225.757,162.19 C225.96,161.208 226.231,158.433 225.249,157.723 C224.505,157.215 220.681,157.452 220.139,157.994 Z M239.361,173.053 C239.26,170.921 238.346,171.192 236.349,171.192 C233.777,171.192 233.405,171.53 233.371,174.102 L233.371,174.407 C233.371,176.099 233.405,176.945 235.334,177.08 C236.315,177.148 238.109,177.385 238.854,176.674 C239.327,176.234 239.429,175.456 239.429,174.677 C239.429,174.102 239.361,173.527 239.361,173.053 Z M229.75,171.158 C227.077,171.158 226.704,171.564 226.637,174.17 C226.569,176.843 227.043,177.114 229.75,177.08 C232.356,177.046 232.559,176.505 232.593,174 C232.627,171.395 232.424,171.158 229.75,171.158 Z M218.82,164.762 C218.38,164.119 216.654,164.39 216.011,164.423 C214.014,164.423 213.202,164.423 213.1,166.555 C212.999,168.857 212.694,170.278 215.266,170.379 C216.011,170.413 218.143,170.819 218.718,170.278 C219.327,169.703 219.124,167.638 218.718,167.029 C218.278,166.318 219.26,165.439 218.82,164.762 Z M216.552,184.627 C214.386,184.66 213.168,184.66 213.1,187.063 C213.033,189.872 213.168,190.583 216.078,190.583 C218.718,190.583 219.056,190.177 219.056,187.537 C219.056,185.303 218.921,184.593 216.552,184.627 Z M222.88,171.158 C220.512,171.226 219.936,170.853 219.902,173.459 C219.835,176.031 220.004,177.182 222.813,177.08 C225.689,177.012 225.825,176.369 225.825,173.594 C225.825,171.124 225.283,171.158 222.88,171.158 Z M222.914,137.351 C222.136,137.351 220.647,137.114 220.105,137.79 C219.564,138.433 219.902,140.295 219.936,141.005 C220.072,142.765 220.207,143.205 222.001,143.273 C222.745,143.306 224.2,143.543 224.911,143.171 C226.231,142.494 225.859,140.43 225.791,139.178 C225.723,137.114 224.809,137.384 222.914,137.351 Z M244.471,171.124 C241.967,171.327 240.342,170.379 240.275,173.357 C240.207,176.099 240.106,177.08 243.151,177.08 C243.76,177.08 244.302,177.114 244.776,177.046 C245.419,176.945 245.926,176.606 246.062,175.659 C246.163,175.185 246.231,174.508 246.265,173.797 C246.265,172.444 245.96,171.022 244.471,171.124 Z M223.963,144.119 C220.715,143.949 220.004,144.491 220.004,147.774 L220.004,147.807 C220.004,150.041 220.749,150.176 222.813,150.176 L223.253,150.176 L223.388,150.176 L223.388,150.109 C224.742,150.109 225.723,149.973 225.859,148.112 C225.926,147.435 225.994,146.758 225.994,146.217 C225.994,145.032 225.622,144.22 223.963,144.119 Z M234.014,183.645 C234.759,184.119 237.838,184.153 238.583,183.814 C239.26,183.476 239.361,182.935 239.361,182.258 C239.327,181.987 239.327,181.716 239.327,181.446 L239.327,181.073 L239.327,180.498 C239.327,177.926 239.158,177.926 236.349,177.926 C234.522,177.926 233.845,177.994 233.54,179.855 C233.439,180.43 233.27,181.175 233.27,181.886 C233.27,182.596 233.405,183.273 234.014,183.645 Z M226.908,163.34 C227.618,163.984 230.596,163.747 231.408,163.577 C232.965,163.239 232.559,161.885 232.559,160.464 C232.457,159.686 232.931,158.603 232.288,157.96 C231.578,157.249 230.799,157.892 229.987,157.824 C228.532,157.689 227.077,157.317 226.704,159.009 C226.569,159.686 226.298,162.765 226.908,163.34 Z M239.057,142.867 C239.632,142.19 239.327,140.227 239.294,139.482 C239.294,138.23 239.226,137.215 237.601,137.351 C236.146,137.486 234.353,136.843 233.676,138.433 C233.27,139.415 232.999,142.427 233.98,143.104 C234.793,143.645 238.447,143.611 239.057,142.867 Z M237.703,164.356 C236.721,164.525 234.962,163.95 234.082,164.593 C233.134,165.303 233.439,166.86 233.507,167.841 C233.71,170.346 234.522,170.346 236.925,170.346 C238.414,170.346 239.124,170.481 239.294,168.89 C239.463,167.368 240.072,163.95 237.703,164.356 Z M230.799,218.434 C229.175,218.4 227.009,217.825 226.637,219.72 C226.468,220.566 226.332,222.8 226.704,223.612 C227.449,225.169 231.916,224.762 232.288,223.036 C232.661,222.224 232.661,220.871 232.525,219.991 C232.39,218.705 232.153,218.468 230.799,218.434 Z M232.491,165.405 C232.119,163.78 229.987,164.322 228.532,164.39 C226.532,164.479 226.455,165.307 226.719,166.871 C226.609,166.268 226.525,165.826 226.84,167.571 C227.077,168.857 226.197,169.94 227.889,170.379 C228.498,170.549 231.104,170.583 231.781,170.244 C232.83,169.703 232.728,166.488 232.491,165.405 Z M240.41,169.736 C241.087,170.616 244.37,170.752 245.317,170.278 C246.671,169.601 246.062,166.657 246.028,165.405 C246.028,164.085 241.392,163.882 240.478,164.83 C239.767,165.574 239.835,168.958 240.41,169.736 Z M245.317,158.535 C243.862,158.772 242.271,158.501 240.816,158.704 C240.579,158.738 240.342,158.704 240.173,158.637 C239.936,159.584 240.309,161.276 240.41,162.156 C240.647,163.916 241.595,163.611 243.253,163.611 C244.404,163.442 245.588,164.017 246.028,162.664 C246.163,162.19 246.197,160.701 246.231,160.159 C246.231,159.516 246.129,159.043 245.926,158.704 C245.689,158.704 245.486,158.637 245.317,158.535 Z M228.16,225.202 C226.095,224.898 226.772,227.368 226.704,228.586 C226.569,231.531 227.923,230.921 230.359,231.124 C231.544,229.365 232.187,227.3 232.052,225.169 C230.732,225.236 229.446,225.405 228.16,225.202 Z M240.647,150.921 C239.936,151.598 239.767,155.185 240.275,156.2 C240.376,156.065 240.579,156.031 240.783,155.997 C241.628,155.895 242.474,155.963 243.321,155.963 C243.896,155.963 245.08,156.098 245.588,155.726 C245.723,155.625 245.859,155.557 245.994,155.489 C246.028,155.455 246.028,155.422 246.062,155.388 C246.028,155.117 245.96,154.779 245.859,154.373 C244.167,153.12 242.474,151.902 240.647,150.921 Z M238.244,198.163 C237.974,198.163 237.635,198.129 237.263,198.095 C236.112,197.994 234.657,197.859 233.98,198.299 C233.1,198.908 233.473,199.855 233.507,200.837 C233.54,201.716 233.033,203.205 233.777,203.882 C234.217,204.288 235.199,204.255 235.943,203.984 C236.248,203.882 236.485,203.747 236.654,203.578 C237.195,201.886 237.771,200.16 238.312,198.468 C238.312,198.434 238.312,198.4 238.278,198.366 C238.278,198.299 238.244,198.231 238.244,198.163 Z M233.371,207.03 C233.371,208.112 232.999,211.564 234.522,210.245 C234.589,210.211 234.657,210.143 234.691,210.075 C235.266,208.519 235.131,206.691 236.079,205.27 C235.943,205.202 235.774,205.168 235.639,205.134 C233.879,204.525 233.371,204.999 233.371,207.03 Z M225.825,237.622 C225.825,237.385 225.859,237.047 225.892,236.708 C225.757,235.287 225.655,233.899 225.622,232.478 C225.486,232.241 225.283,232.072 225.013,231.937 C224.843,233.155 225.52,234.373 225.114,235.625 C224.505,235.49 224.133,234.949 223.828,234.272 C223.49,233.46 223.253,232.478 222.847,231.903 L221.967,231.903 C220.478,232.004 219.902,232.377 219.869,234.339 C219.835,235.219 219.53,237.114 220.275,237.69 C221.256,238.434 224.674,237.96 225.689,237.656 C225.825,237.69 225.892,237.69 225.994,237.69 C225.994,237.588 225.96,237.487 225.96,237.385 C225.926,237.487 225.892,237.554 225.825,237.622 Z M226.772,232.749 C226.806,234.204 226.908,235.659 227.077,237.114 C227.111,237.081 227.111,237.047 227.145,237.013 C227.246,236.844 227.348,236.708 227.415,236.539 C228.329,235.084 229.175,233.527 229.886,231.971 C229.378,231.971 228.837,231.971 228.295,231.937 C227.483,231.869 227.043,232.207 226.772,232.749 Z M216.315,244.695 C218.82,244.695 219.056,244.221 219.056,241.751 C219.09,239.043 218.887,238.874 216.18,238.874 C213.54,238.874 213.134,239.077 213.134,241.751 C213.1,244.458 213.608,244.695 216.315,244.695 Z M209.479,258.976 C208.43,258.976 207.178,258.705 206.535,259.72 C206.061,260.465 206.298,262.123 206.366,262.969 C206.501,264.729 207.212,264.898 208.667,264.932 L208.938,264.932 L209.344,264.932 C210.867,264.932 212.051,265.304 212.288,263.612 C212.423,262.766 212.559,260.736 212.254,259.957 C211.78,258.671 210.596,258.976 209.479,258.976 Z M216.112,237.859 C218.718,237.859 219.056,237.284 219.056,235.084 L219.056,234.373 C219.023,232.038 218.312,231.937 216.078,231.937 C213.574,231.937 213.236,232.377 213.236,234.881 C213.236,234.881 213.236,234.881 213.236,234.915 C213.236,237.52 213.473,237.859 216.112,237.859 Z M216.789,225.202 C213.98,225.135 213.473,225.202 213.236,227.943 C212.999,230.482 213.202,231.057 215.571,231.124 L216.045,231.124 L216.823,231.124 C218.82,231.091 219.056,230.786 219.056,228.349 C219.056,226.116 219.226,225.236 216.789,225.202 Z M217.364,252.208 C216.891,252.174 216.011,252.072 215.165,252.072 C214.522,252.072 213.879,252.174 213.574,252.444 C212.593,253.257 213.236,255.118 213.236,256.201 C213.231,256.236 213.233,256.266 213.23,256.3 C213.198,256.462 213.168,256.643 213.168,256.675 C213.168,256.675 213.198,256.546 213.229,256.313 C212.997,258.687 215.836,258.33 217.567,258.164 C219.496,257.994 219.056,256.607 219.056,254.915 C219.056,253.189 219.26,252.309 217.364,252.208 Z M217.466,245.473 L216.383,245.473 L216.383,245.439 C214.488,245.575 213.168,245.202 213.134,247.368 C213.1,248.248 212.897,249.534 213.134,250.38 C213.439,251.429 213.946,251.294 215.063,251.328 C216.857,251.395 218.887,252.038 219.023,249.771 C219.124,248.316 219.462,245.372 217.466,245.473 Z M224.64,238.874 C222.17,238.874 219.902,238.028 219.869,241.04 L219.869,241.277 C219.869,243.95 220.207,244.695 223.083,244.695 C224.096,243.041 225.041,241.353 225.818,239.598 C225.677,238.943 225.209,238.874 224.64,238.874 Z M219.869,247.368 C219.869,249.094 219.226,251.835 221.73,251.159 C222.001,249.263 221.696,247.233 222.61,245.507 C222.373,245.473 222.17,245.473 221.967,245.473 C220.579,245.473 219.902,245.609 219.869,247.368 Z M220.579,252.309 C219.327,252.377 219.056,258.265 221.222,258.164 C221.561,256.607 221.493,254.983 221.527,253.392 C221.425,252.851 221.29,252.275 220.579,252.309 Z M191.848,259.551 C191.307,258.807 190.19,258.942 189.378,258.976 L189.208,258.976 C186.704,258.976 186.095,259.01 186.095,261.548 C186.095,264.289 186.129,264.898 188.904,264.932 C189.818,264.932 190.494,264.966 190.968,264.83 C191.07,264.39 191.374,264.018 191.882,263.917 C191.983,263.578 192.051,263.104 192.051,262.495 C192.051,261.785 192.322,260.16 191.848,259.551 Z M191.103,265.947 C190.664,265.778 189.987,265.744 189.005,265.812 C186.467,265.981 186.061,266.184 186.061,268.756 C186.061,271.463 186.603,271.7 189.276,271.7 C191.78,271.666 191.983,271.125 192.017,268.688 C192.017,267.605 191.949,266.895 191.713,266.455 C191.442,266.353 191.239,266.15 191.103,265.947 Z M191.882,252.851 C191.307,251.971 190.156,252.242 189.242,252.242 C186.366,252.242 186.027,252.851 186.095,255.693 C186.129,257.115 186.095,257.927 187.618,258.13 C189.175,258.367 192.186,258.705 192.085,256.472 C192.051,255.524 192.423,253.629 191.882,252.851 Z M185.012,259.416 C184.335,258.739 183.625,259.484 182.846,259.111 C181.594,258.536 179.767,258.671 179.361,260.059 C179.124,260.837 178.988,263.984 179.631,264.661 C180.308,265.338 183.32,265.101 184.132,264.898 C185.655,264.56 185.249,263.206 185.249,261.818 C185.148,261.108 185.621,260.025 185.012,259.416 Z M197.499,265.744 C196.417,265.744 193.946,265.236 193.202,266.15 C192.66,266.827 192.863,268.722 192.897,269.534 C192.999,271.396 193.54,271.565 195.334,271.666 C196.62,271.734 198.143,272.106 198.684,270.753 C199.158,269.5 199.361,265.71 197.499,265.744 Z M27.067,157.657 C24.401,157.667 23.996,158.548 23.996,160.769 C23.996,160.904 23.962,161.073 23.962,161.242 C24.029,163.916 25.315,163.611 27.718,163.577 C30.019,163.544 29.884,162.833 29.951,160.599 L29.951,160.126 C29.985,157.99 29.45,157.666 27.067,157.657 Z" fill="#644D31"></path> + <path d="M86.616,245.605 C86.361,245.366 86.114,245.119 85.867,244.872 C85.59,244.594 85.312,244.316 84.995,244.019 C83.89,243.026 82.847,243.268 82.45,243.419 C82.058,243.566 81.127,244.063 80.964,245.447 C80.802,246.674 80.753,247.882 80.707,249.05 C80.642,250.681 80.581,252.221 80.224,253.702 L79.664,256.17 L83.439,256.17 L83.992,255.064 C84.517,254.014 85.043,252.955 85.568,251.895 C86.091,250.839 86.615,249.784 87.139,248.736 L87.139,248.735 C87.633,247.746 87.49,246.606 86.766,245.762 L86.616,245.605 Z M196.962,230.373 L196.27,230.07 C194.993,229.512 193.835,230.164 193.067,230.595 C192.902,230.688 192.742,230.789 192.608,230.839 C191.048,231.397 190.291,232.422 190.356,233.865 C190.453,236.742 190.761,239.785 191.327,243.444 L192.316,249.84 L195.107,244.001 C195.544,243.088 195.657,242.319 195.74,241.758 L195.783,241.475 C196.056,239.857 196.33,238.27 196.603,236.683 L196.997,234.396 C197.027,234.245 197.094,234.082 197.152,233.917 C197.403,233.206 197.782,232.13 197.282,231.058 L196.962,230.373 Z M193.078,202.301 C192.205,202.4 191.334,202.538 190.463,202.676 C188.143,203.044 185.952,203.393 183.715,202.924 C183.594,202.904 183.476,202.88 183.359,202.856 C183.033,202.79 182.71,202.73 182.45,202.709 C182.097,202.666 181.744,202.661 181.391,202.661 L173.547,202.661 L180.713,206.569 C182.57,207.585 184.676,208.745 187.301,208.656 C188.029,208.64 188.792,208.742 189.602,208.852 C189.938,208.899 190.272,208.944 190.606,208.983 L190.618,208.984 C191.883,209.121 193.178,209.19 194.53,209.19 C196.929,209.19 199.505,208.973 202.402,208.533 L208.109,207.667 L203.09,204.816 C200.587,203.395 197.183,201.829 193.078,202.301 Z M60.037,200.502 C60.563,200.502 61.062,200.334 61.521,200.006 C61.674,199.903 61.819,199.8 61.965,199.698 C62.096,199.606 62.226,199.513 62.364,199.421 L62.464,199.35 C66.855,196.017 71.673,193.892 77.188,192.854 C79.525,192.418 81.867,192.011 84.21,191.605 C89.785,190.637 95.55,189.637 101.171,188.24 C102.352,188.021 103.879,187.691 105.341,187.082 L121.233,180.457 L96.953,184.469 L92.877,184.967 C88.724,185.476 84.431,186.003 80.193,186.462 L80.184,186.463 C76.738,186.854 72.834,187.296 69.126,188.998 C67.926,189.542 66.733,190.109 65.537,190.677 C64.207,191.309 62.873,191.942 61.51,192.552 C58.912,193.733 57.83,195.513 58.004,198.319 C58.008,198.433 58.02,198.537 58.037,198.639 L58.037,200.502 L60.037,200.502 Z M214.261,197.371 C212.637,196.163 210.661,195.397 208.397,195.099 C206.949,194.9 205.497,194.715 204.045,194.528 C204.343,194.501 204.759,194.417 205.164,194.13 C205.799,193.725 206.283,193.093 206.537,192.333 L206.727,191.764 L206.573,191.185 C206.512,190.956 206.458,190.719 206.405,190.482 C206.34,190.194 206.275,189.906 206.201,189.628 L206.107,189.277 L194.424,172.887 L190.977,169.867 C191.031,169.897 191.086,169.928 191.14,169.958 C191.841,170.351 192.55,170.735 193.259,171.12 C193.954,171.497 194.649,171.873 195.32,172.25 C195.608,172.415 196.486,172.918 197.577,172.606 L200.204,171.854 L198.692,169.578 C196.815,166.751 191.523,162.949 186.854,159.595 C184.396,157.83 181.857,156.005 181.097,155.18 C180.939,154.998 180.755,154.828 180.562,154.659 C180.508,154.612 180.453,154.566 180.402,154.515 L180.141,154.253 L179.803,154.102 C178.352,153.456 176.878,152.928 175.394,152.503 C175.487,152.521 175.583,152.53 175.676,152.548 C177.256,152.844 178.599,153.252 179.904,153.832 C182.885,155.154 185.894,156.737 189.1,158.67 C190.003,159.349 190.876,159.859 191.838,160.272 L200.06,163.796 L194.122,157.106 C187.727,149.901 177.962,140.305 167.796,135.525 C167.671,135.462 167.556,135.419 167.454,135.388 L167.289,135.336 C164.296,134.421 161.228,134.568 157.631,135.796 L157.611,135.803 C155.537,136.536 155.204,138.149 155.59,139.436 C156.386,141.981 156.369,144.644 156.351,147.463 L156.345,148.721 C156.345,150.196 157.053,151.28 158.225,151.749 C157.905,151.885 157.582,152.078 157.289,152.372 C156.327,153.334 156.367,154.645 156.379,155.016 L156.339,156.705 L155.702,155.423 L155.702,161.786 C155.55,162.433 155.536,163.11 155.669,163.78 L155.688,164.177 L155.702,164.219 L155.702,164.222 L155.704,164.225 L155.714,164.257 L155.741,164.925 L156.097,165.277 L156.291,165.662 L156.241,165.682 L156.62,166.667 L156.395,166.532 C155.795,166.172 155.078,166.114 154.43,166.375 C153.979,166.556 153.618,166.882 153.346,167.299 C153.685,165.211 153.779,163.027 152.514,160.89 C152.439,160.766 152.356,160.648 152.28,160.525 L152.948,160.659 L153.71,159.763 C154.453,158.888 154.775,157.42 155.065,155.866 C155.099,155.684 155.126,155.534 155.153,155.42 C155.934,151.94 155.784,148.379 154.67,143.881 C153.008,137.076 149.751,131.877 144.71,127.982 C139.557,124.013 132.879,120.823 127.281,119.656 C120.206,118.181 112.83,120.386 106.323,122.331 L104.702,122.813 C103.429,123.199 102.209,123.652 101.11,124.074 C100.061,124.524 99.075,125.054 98.123,125.676 C94.439,128.002 90.265,130.639 86.664,134.056 C86.516,134.19 86.373,134.329 86.234,134.464 C86.101,134.595 85.976,134.725 85.828,134.84 L85.687,134.953 C84.735,135.685 83.948,136.416 83.187,137.123 C82.828,137.456 82.47,137.789 82.098,138.118 L81.404,138.742 C77.562,142.939 74.395,147.726 71.597,151.956 C70.252,154.003 68.844,156.222 67.681,158.846 C67.196,159.949 66.602,161.013 65.973,162.14 C65.236,163.461 64.474,164.828 63.87,166.308 L60.83,173.757 L67.004,168.598 C69.528,166.489 71.908,164.178 74.244,161.911 C74.349,161.806 74.453,161.71 74.554,161.617 C74.682,161.498 74.805,161.384 74.919,161.269 L75.129,161.059 C76.117,160.07 77.049,159.135 78.1,158.462 C78.914,157.943 79.722,157.415 80.53,156.887 C84.276,154.441 87.818,152.127 91.849,150.687 L92.355,150.515 C93.242,150.121 94.129,149.759 95.127,149.366 L95.549,149.178 C97.089,148.494 98.544,147.847 100.09,147.576 C101.235,147.367 102.381,147.169 103.524,146.971 C105.363,146.653 107.196,146.335 109.004,145.982 C112.919,145.242 116.441,144.639 119.912,144.73 C123.31,144.828 126.757,145.263 130.194,146.018 C128.38,145.74 126.551,145.61 124.707,145.673 C121.657,145.773 118.503,145.875 115.443,145.909 C112.938,145.94 110.259,146.265 106.994,146.935 C96.836,149.119 87.094,153.948 77.21,161.7 C73.089,164.938 69.387,168.667 65.806,172.273 C64.749,173.337 63.692,174.401 62.616,175.463 C62.238,175.84 61.94,176.269 61.765,176.551 C58.718,181.359 55.67,186.167 52.655,190.977 C51.978,192.062 51.522,193.141 51.223,194.375 L49.889,199.872 L54.381,196.435 C54.566,196.294 54.74,196.167 54.904,196.048 C55.274,195.779 55.624,195.524 55.983,195.195 C59.492,191.932 63.947,190.395 68.663,188.768 L68.808,188.718 C74.013,186.931 79.715,185.815 85.756,185.404 C94.732,184.793 103.541,182.827 110.979,180.983 C117.272,179.41 122.108,177.445 126.2,174.8 C128.305,173.437 130.402,171.851 132.668,169.903 C132.583,171.451 132.098,172.817 131.194,174.101 C129.179,176.963 126.099,178.548 122.838,180.226 L122.662,180.317 C116.875,183.348 110.428,185.833 102.959,187.91 C100.285,188.645 97.483,189.212 94.773,189.76 C92.442,190.231 90.033,190.718 87.667,191.318 C85.929,191.759 84.119,192.134 82.369,192.496 C77.773,193.447 73.021,194.43 68.574,196.769 C64.636,198.858 61.812,201.735 60.171,205.337 C59.218,207.482 59.015,209.567 59.551,211.711 L60.846,216.885 L63.272,212.136 C63.511,211.67 63.725,211.216 63.931,210.778 C64.369,209.849 64.747,209.047 65.253,208.404 C67.284,205.715 70.091,204.024 73.607,203.377 C75.752,202.971 77.909,202.738 80.193,202.492 C81.214,202.381 82.237,202.271 83.27,202.143 C87.277,201.627 91.397,201.311 95.382,201.005 C100.236,200.633 105.254,200.248 110.185,199.498 C117.264,198.424 124.718,196.827 131.27,192.446 C132.382,191.699 133.517,190.984 134.651,190.269 C137.964,188.18 141.39,186.02 144.312,183.044 C147.145,180.138 149.902,176.933 151.66,173.022 C150.707,178.478 152.076,183.186 155.781,187.056 C155.991,187.267 156.203,187.476 156.392,187.63 C159.733,190.662 163.856,194.06 169.108,196.283 C173.211,198.013 177.454,199.801 181.941,200.853 C183.863,201.312 185.633,201.45 187.368,201.267 L188.046,201.19 C192.185,200.723 196.465,200.239 200.631,200.332 C201.463,200.352 202.295,200.366 203.126,200.38 C206.456,200.434 209.601,200.486 212.774,200.954 L220.633,202.114 L214.261,197.371 Z M167.996,178.803 C169.978,180.333 171.879,181.713 173.569,182.909 C174.203,183.357 174.825,183.819 175.447,184.281 C177.844,186.06 180.324,187.899 183.399,188.983 C184.568,189.396 185.765,189.87 186.921,190.328 C188.582,190.987 190.301,191.667 192.028,192.209 C192.45,192.35 192.882,192.479 193.319,192.61 C193.629,192.702 193.941,192.795 194.254,192.894 L194.459,192.948 C196.426,193.351 198.486,193.734 200.298,194.041 C195.662,193.425 190.958,192.711 186.416,191.554 C182.821,190.645 180.448,189.553 178.484,187.903 C174.346,184.413 170.982,181.494 167.996,178.803 L167.996,178.803 Z" fill="#885630"></path> + <path d="M176.945,277.87 C175.706,274.903 174.5,271.868 173.333,268.933 L172.711,267.369 C172.683,267.307 172.661,267.242 172.638,267.177 C172.545,266.915 172.419,266.556 172.029,266.237 L171.645,265.923 L170.44,267.378 C168.973,269.77 167.163,271.961 164.863,274.124 L164.144,275.011 C162.311,276.595 160.248,277.589 158.063,278.642 C156.773,279.264 155.438,279.906 154.16,280.68 L152.76,281.529 L154.395,281.607 C155.098,281.641 155.768,281.674 156.479,281.742 C161.902,282.168 166.213,283.197 170.048,284.98 C171.542,285.67 171.657,286.929 171.79,288.396 C171.833,288.868 171.729,288.977 171.725,288.981 C171.706,289 171.639,289.017 171.525,289.003 L171.459,288.996 L171.393,289.007 C171.376,289.009 171.223,289.028 170.777,288.866 C165.652,286.874 160.264,285.589 155.054,284.346 C153.563,283.991 152.07,283.635 150.558,283.257 C150.466,283.239 150.35,283.193 150.233,283.15 L149.883,283.028 L149.752,283.054 C149.509,283.103 149.081,283.291 148.954,283.993 C148.849,284.545 148.602,285.838 150.141,286.197 C150.956,286.393 151.799,286.695 152.628,286.994 C154.219,287.557 155.855,288.062 157.438,288.55 C161.733,289.874 166.174,291.245 169.997,293.899 C170.409,294.198 170.798,294.352 171.345,294.398 C171.88,294.357 172.368,294.131 172.953,293.839 C175.877,292.359 176.789,290.093 175.742,286.911 C174.969,284.492 175.307,282.324 176.741,280.471 C177.321,279.736 177.387,278.883 176.945,277.87 Z M121.211,285.115 C119.18,285.434 117.538,285.582 116.044,285.582 C114.547,285.582 113.339,285.488 112.25,285.288 C111.806,285.199 111.746,285.091 111.7,284.697 C111.681,284.553 111.701,284.501 111.7,284.5 C111.704,284.497 111.748,284.465 111.914,284.44 C113.14,284.19 114.361,283.906 115.582,283.623 C118.903,282.852 122.338,282.054 125.824,281.981 L125.824,281.48 L126.29,281.48 C126.29,281.346 126.288,281.238 126.314,281.104 L126.419,280.575 L125.884,280.51 C124.335,280.322 123.043,279.541 121.676,278.714 C121.189,278.419 120.703,278.125 120.205,277.858 C116.089,275.664 113.091,272.709 111.035,268.822 C110.381,267.616 109.503,266.547 108.573,265.415 C108.212,264.976 107.841,264.525 107.47,264.049 L106.89,263.305 L106.6,264.203 C106.427,264.74 106.265,265.261 106.107,265.769 C105.657,267.216 105.232,268.582 104.686,269.848 C103.526,272.607 103.544,274.916 104.739,277.112 C105.191,277.967 105.017,278.809 104.205,279.685 C103.419,280.532 102.644,281.403 101.867,282.277 C101.339,282.871 100.81,283.465 100.274,284.056 L100.148,284.19 C99.865,284.486 99.437,284.933 99.623,285.673 C99.718,286.023 99.76,286.4 99.805,286.801 C99.924,287.871 100.06,289.083 101.331,289.893 C101.399,289.934 101.409,290.036 101.381,290.385 C101.373,290.499 101.364,290.611 101.364,290.719 L101.364,297.115 L101.362,297.283 C101.353,297.747 101.34,298.383 101.892,298.783 C103.108,299.595 104.535,299.877 105.777,300.079 L105.903,300.1 L106.024,300.057 C106.594,299.855 106.833,299.269 107.024,298.798 C107.111,298.586 107.2,298.366 107.295,298.242 C107.414,298.101 107.49,297.949 107.557,297.814 C107.593,297.743 107.648,297.634 107.651,297.623 C108.852,296.977 109.958,296.174 111.029,295.397 C112.452,294.363 113.797,293.387 115.357,292.737 C117.093,292.008 118.807,291.154 120.464,290.329 C124.038,288.548 127.733,286.707 131.79,286.069 L134.933,285.575 L131.79,285.081 C128.352,284.541 125.229,284.498 121.211,285.115 Z M146.56,283.215 C146.539,282.779 146.411,282.464 146.169,282.252 C145.876,281.993 145.511,281.978 145.249,281.996 L145.245,281.996 C145.234,281.997 145.221,281.996 145.21,281.997 L145.21,281.999 C145.145,282.002 145.08,282.008 145.014,282.019 L144.846,282.039 C143.755,282.257 142.57,282.368 141.323,282.368 C140.848,282.363 140.399,282.368 139.902,282.334 L138.785,282.334 C138.43,282.334 138.075,282.335 137.77,282.368 L137.499,282.368 C137.452,282.368 137.405,282.36 137.358,282.354 C137.27,282.344 137.182,282.333 136.995,282.344 C136.585,282.425 136.348,282.695 136.29,283.176 C136.236,284.07 136.709,284.702 137.581,284.909 C138.788,285.211 140.058,285.364 141.357,285.364 C141.368,285.364 141.379,285.362 141.391,285.362 L141.391,285.364 L141.399,285.364 C142.685,285.364 143.969,285.262 145.319,285.055 C146.599,284.872 146.577,283.977 146.564,283.443 L146.56,283.215 Z" fill="#FFFFFF"></path> + <g transform="translate(5.000000, 101.000000)"> + <path d="M243.938,20.75 C244.92,20.411 245.224,19.836 245.258,18.922 C245.427,16.418 245.63,13.88 245.867,11.376 C246.138,7.958 246.443,4.54 246.747,0.919 C246.476,0.986 246.307,1.02 246.172,1.054 C226.172,6.909 204.784,12.391 184.784,18.211 C183.768,18.516 184.716,20.107 185.122,20.817 C188.269,26.333 191.62,31.41 194.699,36.96 C194.97,37.433 195.207,37.67 195.545,37.738 C195.714,37.738 196.256,37.298 196.459,37.23 C212.263,31.714 228.1,26.198 243.938,20.75 L243.938,20.75 Z M240.994,6.333 C243.126,6.299 244.243,7.45 244.311,9.751 C244.378,11.849 242.517,13.981 240.554,14.015 C238.727,14.049 237.035,12.391 236.967,10.428 C236.832,8.364 238.828,6.333 240.994,6.333 Z M30.603,45.014 C33.784,45.454 36.931,45.894 40.112,46.334 C44.985,47.01 49.859,47.653 54.732,48.33 C54.833,48.364 54.935,48.364 55.003,48.364 C55.578,48.33 55.679,47.823 55.815,47.315 C57.101,43.017 58.387,38.753 59.74,34.455 C60.045,33.542 59.774,33.271 58.894,33.034 C49.791,30.665 40.688,28.262 31.584,25.86 C22.481,23.457 13.378,21.054 4.308,18.651 C4.105,18.584 3.902,18.55 3.767,18.55 C3.496,18.55 3.327,18.618 3.225,18.821 C3.192,18.888 3.158,18.956 3.158,19.024 C3.124,19.159 3.09,19.294 3.09,19.464 C2.413,26.164 1.703,32.899 0.924,39.599 C0.823,40.445 0.992,40.817 1.635,40.987 C1.77,41.021 1.939,41.054 2.143,41.088 C11.618,42.408 21.127,43.694 30.603,45.014 Z M8.64,27.18 C9.52,26.333 10.671,26.435 11.686,26.367 C13.784,26.367 14.799,27.078 15.51,29.007 C16.694,32.12 16.221,34.76 14.156,36.553 C12.599,37.907 10.366,37.907 8.809,36.553 C6.136,34.185 6.068,29.684 8.64,27.18 L8.64,27.18 Z" fill="#FFFFFF"></path> + <path d="M240.96,6.333 C238.794,6.367 236.832,8.398 236.933,10.462 C237.035,12.391 238.693,14.083 240.52,14.015 C242.449,13.981 244.311,11.849 244.277,9.751 C244.209,7.416 243.126,6.299 240.96,6.333 Z M11.72,26.367 C10.704,26.435 9.554,26.333 8.674,27.18 C6.068,29.684 6.136,34.185 8.843,36.553 C10.366,37.907 12.599,37.907 14.19,36.553 C16.254,34.76 16.762,32.12 15.544,29.007 C14.799,27.078 13.784,26.367 11.72,26.367 Z" fill="#1A1A1A"></path> + </g> + <path d="M116.281,329.67 C115.807,329.23 115.502,328.723 115.401,328.08 C115.028,326.252 115.333,324.459 115.638,322.665 C116.179,319.213 117.262,315.829 117.093,312.276 C117.025,310.888 116.822,309.602 115.401,308.925 C113.878,308.181 112.761,308.993 111.712,309.941 C109.682,311.802 107.922,313.934 106.196,316.066 C104.47,318.198 102.744,320.364 101.018,322.496 C100.747,322.834 100.443,323.477 99.901,323.206 C99.462,323.003 99.631,322.428 99.698,321.988 C99.834,320.432 100.037,318.909 100.206,317.352 C100.409,315.321 100.68,313.291 100.341,311.261 C99.901,308.824 98.142,308.147 96.179,309.67 C95.705,310.042 95.265,310.516 94.859,310.956 C93.269,312.75 91.949,314.746 90.663,316.777 C87.482,321.684 84.571,326.794 80.747,331.261 C80.037,332.107 79.292,332.919 78.649,333.833 C77.972,334.848 77.701,335.998 78.344,337.081 C78.92,338.029 79.901,338.367 80.984,338.3 C82.135,338.232 82.744,337.386 83.353,336.574 C86.297,332.58 89.241,328.553 92.186,324.56 C92.355,324.357 92.423,323.951 92.93,324.086 C92.862,324.594 92.795,325.135 92.761,325.643 C92.626,327.572 92.219,329.501 92.626,331.464 C93.099,333.697 94.859,334.611 96.923,333.596 C98.006,333.054 98.92,332.276 99.8,331.464 C101.458,329.873 103.015,328.181 104.47,326.354 C106.061,324.323 107.685,322.259 109.377,320.059 C109.885,321.751 109.682,323.274 109.614,324.797 C109.445,327.437 108.937,330.076 109.445,332.75 C109.783,334.408 110.731,335.389 112.084,335.491 C113.472,335.592 114.825,335.288 116.01,334.509 C117.77,333.393 117.939,331.159 116.281,329.67 Z M238.21,330.313 C237.365,330.279 236.721,329.873 236.079,329.332 C234.116,327.707 232.491,325.778 230.969,323.748 C229.716,322.056 229.649,322.056 231.341,320.905 C234.894,318.469 236.146,315.017 235.876,310.888 C235.672,307.809 234.014,306.015 231.104,305.541 C228.701,305.135 226.772,306.151 224.979,307.572 C224.572,307.877 224.336,308.249 223.659,307.809 C222.17,306.794 220.749,307.064 219.496,308.35 C218.786,309.095 218.278,309.975 218.041,310.99 C216.281,318.096 214.488,325.169 212.796,332.31 C212.221,334.679 213.473,335.897 215.943,335.525 C218.176,335.186 219.293,333.9 219.666,331.024 C220.038,328.249 220.41,325.508 221.222,322.631 C223.32,325.271 225.317,327.741 227.314,330.212 C229.277,332.614 231.408,334.746 234.285,336.032 C236.315,336.946 238.075,336.405 239.666,334.983 C240.546,334.205 240.783,333.19 240.444,332.073 C240.139,330.956 239.361,330.347 238.21,330.313 Z M229.649,313.799 C229.446,314.476 229.107,315.119 228.667,315.66 C226.84,317.927 224.539,319.45 221.662,320.635 C222.001,318.435 222.373,316.472 223.219,314.645 C224.099,312.75 225.52,311.497 227.652,311.294 C229.31,311.159 230.122,312.208 229.649,313.799 Z M80.003,306.117 C79.055,305.744 78.006,305.677 77.566,306.929 C77.295,307.64 76.822,307.538 76.28,307.47 C72.659,306.929 69.478,308.012 66.906,310.55 C61.559,315.761 58.818,322.022 59.123,329.636 C59.326,334.679 62.236,337.115 67.143,335.998 C76.855,333.731 84.402,324.222 84.808,313.697 C84.91,310.99 82.439,307.064 80.003,306.117 Z M78.649,317.115 C78.141,321.244 76.449,325.474 72.693,328.655 C71.373,329.772 69.85,330.449 68.124,330.618 C65.993,330.787 64.368,329.467 64.571,327.335 C64.977,322.902 66.195,318.706 69.14,315.22 C71.035,312.953 73.878,312.343 76.619,313.426 C78.175,314.036 78.717,314.814 78.649,317.115 Z M200.105,314.374 C201.154,314.036 202.406,314.272 203.557,314.239 C206.569,314.171 209.581,314.137 212.491,313.189 C213.574,312.817 214.555,312.343 215.199,311.362 C216.18,309.839 215.808,308.824 214.048,308.756 C210.19,308.587 206.332,308.282 202.474,308.756 C200.173,309.027 197.973,309.67 197.127,312.242 C197.093,312.377 196.924,312.58 196.789,312.614 C194.149,313.291 193.236,315.457 192.525,317.657 C191.036,322.53 189.716,327.471 188.329,332.344 C187.99,333.528 188.464,334.307 189.445,334.916 C190.224,335.389 191.002,335.356 191.882,335.119 C196.451,334.002 201.019,332.784 205.791,333.122 C206.434,333.156 207.009,332.987 207.584,332.716 C208.701,332.141 209.445,330.652 209.242,329.332 C209.039,328.046 208.024,327.674 206.941,327.504 C206.095,327.369 205.283,327.301 204.437,327.267 C201.527,327.2 198.616,327.606 195.706,328.012 C196.146,324.797 196.383,324.594 199.428,324.594 C201.696,324.594 203.963,324.459 206.095,323.579 C207.516,322.97 208.43,321.988 208.566,320.398 C208.667,319.315 208.227,318.672 207.11,318.638 C206.231,318.604 205.351,318.604 204.437,318.672 C202.373,318.841 200.308,319.044 198.041,319.247 C198.379,318.503 198.549,317.826 198.921,317.318 C199.53,316.438 198.819,314.814 200.105,314.374 Z M56.551,308.316 C54.825,307.335 53.031,306.692 51.711,306.692 C47.955,306.861 45.349,308.079 43.082,310.042 C38.209,314.306 35.366,319.822 33.979,326.083 C33.437,328.452 33.776,330.787 35.028,332.885 C36.009,334.543 37.261,335.152 39.156,334.78 C43.42,333.9 47.549,332.581 51.407,330.482 C52.591,329.839 53.674,329.095 54.588,328.114 C55.332,327.301 55.772,326.388 55.772,325.237 C55.772,324.188 55.299,323.816 54.317,323.782 C53.336,323.748 52.49,324.12 51.61,324.425 C48.7,325.474 45.857,326.76 42.845,327.538 C41.356,327.91 40.848,327.572 40.544,326.049 C40.442,325.474 40.476,324.899 40.611,324.323 C41.187,321.954 41.999,319.653 43.251,317.521 C44.165,315.965 45.18,314.543 46.703,313.528 C48.666,312.276 50.696,311.599 52.93,312.953 C53.674,313.393 54.385,313.19 55.062,312.784 C56.145,312.141 56.754,311.125 57.16,309.941 C57.397,309.23 57.194,308.689 56.551,308.316 Z M187.178,309.873 C183.286,306.658 177.669,306.997 174.115,310.584 C171.916,312.851 171.543,315.152 172.931,317.995 C173.98,320.127 175.435,321.954 176.856,323.849 C177.872,325.169 178.954,326.489 179.902,327.877 C180.579,328.858 180.24,329.636 179.09,330.009 C178.413,330.245 177.77,330.178 177.127,329.941 C175.13,329.23 173.371,328.114 171.848,326.692 C171.34,326.218 170.833,325.643 170.697,324.932 C170.528,323.883 169.953,323.41 168.938,323.308 C167.787,323.207 166.738,323.207 166.061,324.425 C164.944,326.388 165.249,328.147 167.279,329.975 C171.171,333.427 175.807,334.95 180.444,335.322 C184.674,335.389 187.279,331.565 185.892,327.978 C185.283,326.354 184.234,324.932 183.219,323.545 C181.526,321.311 179.767,319.146 178.176,316.844 C176.924,315.085 177.499,313.799 179.564,313.122 C181.459,312.513 183.083,313.054 184.64,314.239 C186.467,315.66 188.024,314.915 188.43,312.614 C188.667,311.396 188.024,310.584 187.178,309.873 Z M246.637,125.844 C248.6,125.168 250.529,124.322 252.525,123.712 C253.642,123.374 253.947,122.731 254.014,121.716 C254.657,113.188 255.3,104.626 255.977,96.098 C256.079,94.913 255.876,94.677 254.657,95.049 C248.261,97.079 241.865,99.008 235.436,101.005 C233.473,101.614 233.439,101.614 232.559,99.685 C229.31,92.375 226.772,84.795 224.099,77.282 C223.523,75.692 223.523,74.27 224.2,72.815 C225.148,70.176 224.539,67.502 224.471,64.829 C224.437,64.693 224.403,64.558 224.403,64.423 C223.727,57.079 222.745,49.769 220.816,42.595 C219.158,36.368 216.789,30.378 213.777,24.693 C210.562,18.602 207.11,12.578 203.388,6.723 C201.797,4.219 200.105,1.952 197.263,0.699 C196.247,0.26 195.232,0.124 194.149,0.023 C192.897,-0.113 192.186,0.361 191.374,1.342 C189.987,3.035 189.479,5.437 190.393,7.4 C193.066,13.187 195.503,19.109 197.838,25.031 C197.973,25.302 198.143,25.573 198.379,25.979 C197.838,25.945 197.669,25.674 197.499,25.37 C193.303,21.004 188.362,17.519 183.422,14.033 C176.755,9.295 169.479,5.539 162.237,1.749 C161.256,1.241 160.274,0.936 159.225,0.835 C157.432,0.632 155.604,0.463 153.811,0.26 C150.968,-0.079 148.802,1.546 148.802,4.388 C148.802,5.911 148.159,6.249 146.907,6.351 C145.79,6.419 144.267,7.975 144.132,9.058 C143.726,12.51 144.809,15.42 147.347,17.789 C153.607,23.644 159.665,29.702 165.723,35.759 C165.79,35.793 165.858,35.827 165.926,35.861 C166.095,35.996 166.23,36.165 166.332,36.402 C166.23,36.436 166.129,36.436 166.061,36.436 C165.858,36.402 165.689,36.3 165.553,36.131 C165.52,36.097 165.486,36.064 165.486,36.03 C164.606,35.522 163.692,35.048 162.846,34.473 C158.616,31.664 154.454,28.788 150.223,26.047 C148.26,24.761 146.196,23.813 143.726,23.644 C141.425,23.475 139.766,24.084 138.21,25.674 C137.161,26.723 136.788,27.806 136.958,29.228 C137.194,31.292 138.582,32.578 140.105,33.627 C147.178,38.399 153.506,43.982 159.361,50.175 C159.868,50.717 160.409,51.292 160.985,51.766 C162.643,53.12 163.658,54.913 164.673,56.774 C165.147,57.62 164.978,57.823 164.064,57.823 C158.041,57.823 152.288,59.482 146.501,60.7 C144.132,61.208 141.797,62.02 140.951,64.659 C140.037,67.604 139.597,69.262 143.218,70.176 C150.426,71.969 157.398,74.507 164.2,77.451 C164.809,77.722 165.35,78.094 165.858,78.534 C167.55,79.99 169.107,81.614 170.968,82.798 C176.315,86.284 181.831,89.533 188.159,91.022 C188.904,91.191 189.581,91.563 190.291,91.732 C191.002,91.935 191.476,92.342 191.611,93.052 C192.017,95.556 193.574,96.978 195.909,97.688 C196.214,97.79 196.451,97.993 196.755,98.095 C197.499,98.331 197.838,98.873 198.075,99.617 C199.022,103.002 200.004,106.352 201.053,109.702 C201.425,110.819 201.087,111.123 200.072,111.428 C194.826,112.951 189.615,114.542 184.403,116.132 C182.542,116.707 182.508,116.741 183.455,118.433 C187.719,126.115 191.983,133.797 196.247,141.479 C198.041,144.728 198.109,144.728 201.391,143.036 C201.73,142.867 202.204,142.291 202.508,142.833 C202.813,143.34 203.354,144.085 202.846,144.66 C201.256,146.488 200.173,148.62 198.819,150.582 C198.379,151.225 198.379,151.631 198.752,152.241 C200.173,154.576 201.594,156.945 202.982,159.313 C203.151,159.584 203.456,159.923 203.388,160.126 C202.846,161.852 202.237,163.577 201.662,165.303 C200.714,161.547 199.09,158.298 197.195,155.219 C194.657,151.158 191.408,147.57 188.464,143.78 C187.99,143.205 187.449,142.697 186.907,142.156 C184.098,139.246 180.477,137.486 177.059,135.422 C175.537,134.508 173.98,133.966 172.254,133.628 C166.975,132.511 161.729,132.071 156.484,133.696 C155.401,134.034 154.826,133.763 154.183,132.85 C152.897,131.056 151.848,128.992 150.122,127.604 C145.892,124.22 141.425,121.141 136.213,119.381 C132.254,118.027 128.226,117.147 124.03,117.012 C121.864,116.944 119.665,117.08 117.499,117.249 C111.915,117.689 106.365,118.298 101.424,121.377 C100.443,121.987 99.326,122.325 98.311,122.9 C93.235,125.641 88.226,128.349 83.996,132.477 C79.63,136.775 75.265,141.073 71.339,145.777 C66.805,151.191 63.387,157.317 60.307,163.645 C60.104,164.085 60.003,164.627 59.326,164.999 C58.751,161.412 58.175,157.96 57.634,154.508 C57.532,153.865 57.938,153.899 58.378,153.966 C59.63,154.102 60.849,154.17 62.101,154.339 C63.048,154.474 63.556,154.271 63.793,153.222 C64.097,151.767 64.436,150.312 64.74,148.823 C65.891,143.239 67.549,137.824 69.004,132.342 C69.275,131.293 69.106,130.921 68.023,130.65 C62.642,129.364 57.262,127.943 51.881,126.657 C50.866,126.42 50.392,126.047 50.696,124.965 C51.915,120.768 52.456,116.369 54.114,112.274 C54.283,111.834 54.453,111.394 54.893,111.056 C56.28,109.973 57.295,108.721 57.16,106.792 C57.058,105.337 57.735,104.423 59.123,103.78 C61.695,102.562 64.165,101.14 66.602,99.719 C68.531,98.602 70.121,97.046 71.204,95.015 C75.739,86.487 79.529,77.519 85.011,69.499 C85.485,68.788 85.857,68.01 86.433,67.401 C89.986,63.678 93.302,59.719 97.296,56.402 C98.548,55.353 98.886,53.932 98.92,52.375 C98.92,50.581 97.871,49.329 96.788,48.077 C95.739,46.859 94.656,45.81 92.863,46.013 C92.456,46.047 92.05,45.878 91.61,45.81 C91.881,45.268 92.321,45.133 92.693,44.896 C97.465,41.817 102.237,38.737 107.008,35.624 C112.795,31.901 118.548,28.145 124.369,24.422 C125.113,23.948 125.452,23.576 124.639,22.865 C124.436,22.696 124.301,22.459 124.132,22.256 C122.947,20.869 122.947,20.869 121.323,21.85 C105.147,31.901 88.971,41.986 72.795,52.037 C71.373,52.917 71.373,52.917 70.663,51.326 C69.072,47.637 68.158,43.746 66.974,39.922 C66.703,39.042 66.94,38.534 67.617,37.993 C71.678,34.744 75.4,31.089 79.157,27.536 C80.68,26.081 81.526,24.355 81.796,22.324 C82.101,19.921 80.51,18.669 78.345,19.549 C77.262,19.989 76.213,20.463 75.231,21.038 C65.654,26.317 55.434,29.938 44.943,32.984 C44.334,33.153 43.793,33.356 43.285,32.713 C42.236,31.427 40.679,30.717 39.359,29.769 C39.089,29.566 38.818,29.498 38.48,29.566 C37.058,29.938 35.603,30.345 34.723,31.63 C32.49,34.913 29.681,37.823 27.583,41.241 C25.18,45.201 22.879,49.16 20.172,52.917 C19.664,53.627 19.461,53.729 18.987,52.883 C16.009,47.637 12.997,42.392 10.019,37.147 C9.072,35.488 8.056,33.898 6.872,32.375 C5.552,30.717 3.928,29.904 1.829,30.141 C1.457,30.175 0.983,30.074 0.848,30.649 C0.544,32.206 -0.167,33.83 0.036,35.319 C0.51,39.143 1.187,42.967 2.134,46.69 C3.758,53.153 5.586,59.549 7.515,65.912 C9.376,72.172 11.474,78.331 13.505,84.558 C13.674,85.1 13.979,85.573 13.234,86.013 C12.286,86.555 10.764,86.826 10.594,87.773 C10.425,88.754 11.305,89.905 11.711,90.954 C11.745,91.022 11.779,91.123 11.813,91.191 C12.151,92.003 12.32,93.221 12.929,93.526 C13.742,93.932 14.486,92.815 15.231,92.375 C15.908,91.969 16.144,92.071 16.449,92.781 C18.209,96.91 20.002,101.005 21.796,105.134 C22.067,105.777 22.134,106.42 21.897,107.063 C20.645,110.345 19.833,113.763 19.19,117.215 C19.021,118.196 18.649,118.196 17.904,117.993 C13.979,116.978 10.087,115.997 6.161,115.015 C4.435,114.575 4.435,114.575 4.232,116.335 L4.232,116.47 C3.386,125.844 2.54,135.218 1.66,144.592 C1.593,145.438 1.694,145.777 2.608,145.878 C5.349,146.217 8.056,146.657 10.764,147.063 C11.271,147.131 11.711,147.164 11.576,147.909 C10.967,151.09 10.493,154.305 9.816,157.452 C9.613,158.4 9.748,159.043 10.29,159.753 C11.237,160.972 12.151,162.224 13.099,163.476 C13.742,164.356 14.215,165.506 13.64,166.42 C13.268,166.995 13.166,167.503 13.166,168.078 C13.268,173.933 13.268,179.787 13.539,185.642 C13.674,188.485 13.64,191.327 13.708,194.17 C13.843,201.716 14.283,209.229 14.554,216.776 C14.689,220.465 14.046,224.119 14.215,227.808 C14.249,228.722 14.452,229.229 15.4,229.534 C17.633,230.245 19.799,231.158 22.067,231.869 C23.285,232.241 24.131,232.918 24.672,234.069 C25.146,235.084 25.281,236.099 25.214,237.148 C25.18,238.163 25.552,238.773 26.364,239.348 C29.85,241.852 33.302,244.424 36.787,246.996 C45.958,253.764 55.13,260.566 64.334,267.301 C65.18,267.944 65.383,268.451 64.876,269.365 C64.402,270.245 64.097,271.26 63.624,272.14 C63.217,272.952 63.285,273.46 64.063,274.035 C65.214,274.847 66.331,275.761 67.38,276.675 C68.294,277.453 68.327,278.672 68.057,279.619 C67.854,280.296 66.839,279.687 66.195,279.619 C65.756,279.585 65.316,279.484 64.876,279.416 C60.51,278.705 56.179,277.588 51.745,277.216 C44.673,276.641 37.6,276.032 30.459,276.235 C30.087,276.235 29.512,275.896 29.41,276.641 C29.309,277.25 29.173,277.893 29.85,278.299 C30.188,278.502 30.561,278.672 30.933,278.807 C34.926,280.194 38.649,282.191 42.304,284.289 C44.673,285.643 47.008,287.166 49.613,288.079 C50.087,288.249 50.561,288.621 51.136,288.113 C47.211,285 43.319,281.886 39.393,278.739 C39.935,278.333 40.375,278.502 40.781,278.536 C45.485,278.908 50.155,279.551 54.723,280.634 C64.774,283.037 74.757,285.744 84.639,288.722 C87.888,289.704 91.34,290.177 94.25,292.14 C94.961,292.614 95.367,293.088 95.299,293.968 C95.468,294.171 95.671,294.441 95.434,294.611 C95.164,294.78 94.927,294.441 94.724,294.272 C92.423,294.069 90.121,293.9 87.854,293.663 C81.323,293.02 74.825,292.106 68.226,292.31 C63.285,292.445 58.344,292.106 53.437,292.445 C46.466,292.919 39.495,293.832 32.557,294.577 C32.219,294.611 31.677,294.543 31.677,294.949 C31.677,295.457 31.881,296.032 32.523,296.167 C33.031,296.269 33.573,296.337 34.114,296.337 C37.633,296.472 41.119,296.438 44.639,296.506 C53.37,296.709 62.135,296.337 70.866,297.081 C74.013,297.352 77.194,297.216 80.273,297.792 C94.791,300.499 109.242,303.342 123.658,306.489 C125.35,306.861 127.076,307.132 128.734,307.944 C127.956,308.655 126.941,308.858 126.501,309.873 C123.421,317.014 121.391,324.526 119.022,331.904 C118.616,333.156 119.462,334.611 120.714,334.95 C123.015,335.593 125.282,334.171 125.688,331.836 C125.959,330.313 126.23,328.79 126.433,327.234 C126.501,326.726 126.67,326.455 127.178,326.286 C129.039,325.542 130.866,324.763 132.727,324.019 C135.469,322.902 138.04,321.515 140.173,319.45 C142.068,317.657 143.658,315.592 143.692,312.817 C143.692,311.971 143.895,311.43 144.572,310.922 C147.685,308.519 150.46,305.778 153.167,302.969 C155.773,300.228 158.684,297.826 161.628,295.457 C161.966,295.186 162.237,294.78 162.779,294.983 C165.317,295.998 167.821,296.98 170.663,298.096 C165.384,301.311 160.376,304.391 155.401,307.403 C155.164,307.538 154.893,307.606 154.657,307.673 C152.829,308.215 151.239,309.196 149.885,310.516 C144.606,315.761 141.898,321.988 142.203,329.535 C142.406,334.611 145.316,337.014 150.257,335.863 C158.921,333.833 166.332,325.542 167.618,316.438 C167.956,313.9 168.362,311.396 166.535,309.196 C165.757,308.249 164.944,307.335 164.031,306.455 C164.301,306.286 164.437,306.184 164.572,306.083 C175.537,299.552 187.482,295.118 199.462,290.99 C214.116,285.947 229.073,281.92 244.065,278.062 C243.727,277.995 243.354,277.893 243.016,277.825 C242.035,277.927 241.087,278.029 240.106,278.096 C235.977,278.468 231.848,278.908 227.821,279.991 C227.754,280.025 227.686,280.059 227.584,280.093 C227.212,280.262 226.772,280.296 226.265,280.296 C226.062,280.296 225.859,280.296 225.588,280.33 C226.501,279.45 229.141,276.607 229.852,276.81 L229.886,276.742 L229.953,276.742 C229.953,276.641 230.224,276.438 230.224,276.438 C230.461,276.032 230.799,275.761 231.273,275.727 C232.051,274.644 232.965,273.765 234.048,273.088 C234.759,272.648 235.503,272.208 236.315,271.869 L236.282,271.869 C238.546,271.869 240.777,269.136 243.142,268.185 C243.119,268.1 243.009,268.035 242.948,267.944 C239.564,268.418 236.248,268.959 232.999,270.177 C226.062,272.749 218.887,274.746 212.119,277.724 C201.662,282.292 191.239,286.861 181.188,292.31 C180.883,292.479 180.579,292.614 180.105,292.817 C179.834,290.381 179.598,288.045 179.327,285.711 C179.259,285.237 179.496,285.034 179.902,284.831 C188.802,280.127 197.736,275.457 207.043,271.599 C214.691,268.418 222.271,264.966 229.953,261.852 C229.987,261.785 230.021,261.717 230.089,261.717 L230.156,261.717 C230.19,261.717 230.19,261.751 230.224,261.751 C230.326,261.92 230.258,262.022 230.156,262.123 C230.122,262.157 230.089,262.157 230.021,262.191 L229.987,262.191 C227.957,265.101 226.095,268.147 224.742,271.497 C225.283,271.632 225.486,271.463 225.689,271.26 C227.28,269.568 228.87,267.91 230.427,266.218 C233.439,262.901 236.62,259.754 240.343,257.182 C240.579,257.013 240.986,256.878 240.816,256.506 C240.613,256.099 240.173,256.302 239.869,256.37 C236.383,257.081 232.898,257.724 229.446,258.536 C228.295,258.807 228.363,258.401 228.329,257.588 C228.295,254.813 228.701,252.106 228.803,249.331 C228.837,248.113 229.107,246.962 229.615,245.845 C231.002,242.664 232.39,239.517 233.811,236.336 C234.522,234.745 234.928,233.054 235.199,231.361 C235.639,228.654 235.977,225.913 236.248,223.172 C236.688,218.975 238.177,215.016 238.887,210.854 C239.801,205.574 240.546,200.261 242.508,195.219 C244.268,190.752 245.96,186.285 247.754,181.852 C250.224,175.828 253.372,170.109 254.861,163.679 C255.368,161.445 255.943,159.415 254.928,157.215 C254.353,156.031 254.184,154.677 253.778,153.391 C253.473,152.444 253.405,151.496 253.608,150.515 C254.285,147.063 254.59,143.645 252.729,140.43 C252.221,139.55 252.83,139.009 253.338,138.467 C254.59,137.181 254.658,136.606 253.574,135.218 C252.322,133.662 251.104,132.071 249.751,130.616 C248.634,129.432 247.585,128.146 246.468,126.927 C245.689,126.454 245.757,126.149 246.637,125.844 Z M155.57,328.689 C154.25,329.806 152.727,330.482 151.002,330.618 C148.937,330.787 147.313,329.467 147.516,327.403 C147.922,322.868 149.14,318.604 152.186,315.051 C154.047,312.919 156.755,312.343 159.462,313.359 C161.053,314.002 161.594,314.78 161.56,317.149 C161.019,321.278 159.327,325.508 155.57,328.689 L155.57,328.689 Z M200.985,94.778 C200.647,93.831 200.241,93.323 199.192,93.56 C197.939,93.864 197.263,93.323 196.721,92.206 C195.841,90.413 195.131,88.247 193.676,87.13 C192.22,86.013 189.919,85.979 187.99,85.506 C186.535,85.133 185.08,84.693 183.591,84.457 C180.376,83.915 177.601,82.528 174.961,80.599 C170.697,77.451 166.298,74.541 161.797,71.766 C160.342,71.665 158.954,71.258 157.533,70.92 C153.607,70.108 149.716,69.262 145.79,68.517 C144.843,68.348 144.673,67.638 144.606,66.995 C144.504,66.216 144.707,65.438 145.519,64.964 C146.771,64.219 148.193,64.084 149.614,63.847 C155.875,62.866 162.203,62.121 168.565,62.02 C170.122,61.986 171.51,62.561 172.965,62.933 C173.844,63.17 174.521,63.069 175.3,62.527 C178.345,60.497 181.425,58.568 184.471,56.571 C184.944,56.267 185.824,56.064 185.452,55.252 C185.384,55.116 185.317,55.015 185.249,54.947 C185.08,54.812 184.877,54.778 184.64,54.778 C184.403,54.778 184.166,54.812 183.929,54.812 L183.828,54.812 C180.376,54.71 177.296,55.793 174.42,57.62 C173.303,58.331 170.765,57.891 170.054,56.842 C165.249,49.566 158.447,44.321 151.983,38.669 C149.107,36.165 146.298,33.559 143.252,31.258 C142.474,30.683 142.135,29.228 142.643,28.483 C143.32,27.468 144.2,27.908 145.012,28.28 C147.618,29.431 150.122,30.75 152.457,32.409 C160.41,38.094 168.938,42.899 177.432,47.705 C177.669,47.84 177.906,47.976 178.142,48.077 C179.428,48.517 180.105,47.942 179.902,46.588 C179.801,45.878 179.496,45.268 179.022,44.693 C172.152,36.605 164.91,28.855 157.804,20.97 C156.315,19.346 154.555,17.925 152.897,16.47 C151.577,15.353 150.528,14.067 149.783,12.544 C149.31,11.596 149.411,10.683 150.122,9.87 C150.697,9.227 151.205,9.092 152.051,9.532 C154.454,10.683 156.721,12.036 158.853,13.661 C162.609,16.503 166.399,19.346 170.19,22.189 C173.98,25.031 177.77,27.84 181.56,30.683 C181.865,30.92 182.169,31.157 182.44,31.393 C183.151,32.036 183.76,32.713 184.437,33.39 C184.572,33.525 184.708,33.661 184.843,33.796 C185.114,34.067 185.35,34.439 185.689,34.642 C186.467,35.116 187.279,35.522 188.092,34.71 C188.362,34.439 188.498,34.202 188.532,33.932 C188.532,33.83 188.565,33.729 188.532,33.627 C188.532,33.593 188.532,33.525 188.498,33.492 C188.396,33.119 188.159,32.747 187.889,32.476 C187.043,31.597 186.197,30.717 185.35,29.837 C183.929,28.382 182.508,26.96 180.951,25.641 C176.044,21.546 171.002,17.586 165.926,13.728 C163.354,11.766 160.342,10.446 157.533,8.821 C156.518,8.246 155.841,7.4 155.096,6.588 C154.589,5.979 154.454,5.234 154.758,4.456 C155.063,3.711 155.807,3.745 156.45,3.677 C157.465,3.576 158.379,3.948 159.259,4.388 C165.79,7.603 172.22,11.055 178.447,14.778 C178.954,15.082 179.462,15.387 179.97,15.725 C183.455,17.958 186.772,20.497 190.055,23.069 C191.611,24.287 192.762,26.114 194.048,27.705 C194.589,28.382 194.217,28.991 193.709,29.465 C193.371,29.803 192.897,30.006 192.491,30.243 C192.051,30.547 191.476,30.818 191.645,31.461 C191.78,32.036 192.423,32.172 192.931,32.273 C193.676,32.409 194.488,32.375 195.165,32.07 C197.533,31.089 199.53,32.747 201.053,34.405 C201.459,34.845 201.628,35.725 202.373,35.454 C203.151,35.15 203.253,34.304 203.185,33.525 C203.016,31.393 202.474,29.329 202,27.265 C200.748,21.952 198.21,17.146 196.112,12.138 C195.367,10.344 194.555,8.551 193.811,6.757 C193.405,5.776 193.946,4.896 194.488,4.185 C194.928,3.61 195.638,4.117 196.214,4.388 C198.346,5.336 199.564,7.062 200.613,9.058 C201.73,11.19 203.117,13.153 204.302,15.217 C206.332,18.805 208.836,22.189 210.461,25.945 C212.83,31.427 215.842,36.639 217.263,42.527 C218.481,47.739 220.207,52.849 220.816,58.23 C221.053,60.26 220.681,62.223 220.918,64.186 C221.391,68.111 220.816,71.834 219.192,75.421 C218.752,76.402 218.887,77.35 219.361,78.365 C222.914,85.878 225.859,93.628 228.803,101.411 C229.175,102.426 229.006,102.832 227.957,103.137 C221.155,105.134 214.353,107.198 207.55,109.262 C206.569,109.567 206.264,109.296 205.96,108.416 C204.234,103.814 202.576,99.313 200.985,94.778 L200.985,94.778 Z M158.277,137.689 C161.053,136.741 163.827,136.369 166.738,137.249 C166.805,137.283 166.873,137.283 166.941,137.317 C170.596,138.433 174.318,139.313 177.804,140.971 C178.379,141.242 178.988,141.513 179.395,142.054 C181.662,143.679 183.726,145.54 185.452,147.773 C188.126,151.225 190.799,154.711 193.303,158.67 C193.147,158.618 192.991,158.549 192.834,158.488 L192.816,158.467 C191.868,158.061 190.934,157.52 190.224,157.012 C187.144,155.151 183.997,153.493 180.714,152.004 C179.191,151.327 177.669,150.887 176.044,150.582 C171.78,149.77 167.516,149.635 163.218,150.007 C162.034,150.109 160.816,150.007 159.631,150.007 C158.751,150.007 158.345,149.601 158.345,148.721 C158.345,145.405 158.514,142.054 157.499,138.839 C157.296,138.163 157.702,137.892 158.277,137.689 L158.277,137.689 Z M157.415,162.097 C157.448,161.995 157.482,161.894 157.516,161.826 C157.55,161.758 157.55,161.691 157.584,161.623 C157.618,161.555 157.618,161.488 157.652,161.386 C157.685,161.318 157.685,161.251 157.719,161.183 C157.753,161.115 157.753,161.014 157.787,160.946 C157.787,160.879 157.821,160.811 157.821,160.743 C157.821,160.675 157.855,160.574 157.855,160.506 C157.855,160.439 157.888,160.371 157.888,160.303 C157.888,160.236 157.922,160.134 157.922,160.066 C157.922,159.999 157.956,159.931 157.956,159.863 C157.956,159.796 157.99,159.694 157.99,159.626 C157.99,159.559 158.024,159.491 158.024,159.423 C158.024,159.356 158.057,159.254 158.057,159.186 C158.057,159.119 158.057,159.051 158.091,158.983 C158.091,158.916 158.091,158.814 158.125,158.747 L158.125,158.543 L158.125,158.307 L158.125,158.104 L158.125,157.867 L158.125,157.664 L158.125,157.427 L158.125,157.224 L158.125,156.953 L158.125,156.75 L158.125,156.479 L158.125,156.31 L158.125,156.039 L158.125,155.87 L158.125,155.599 L158.125,155.43 L158.125,154.99 C158.091,153.84 158.497,153.4 159.648,153.433 C160.791,153.461 161.935,153.422 163.078,153.37 C163.424,153.391 163.776,153.409 164.132,153.425 C164.707,153.391 165.283,153.357 165.858,153.357 C167.685,153.323 169.479,153.425 171.239,153.696 C174.318,153.933 177.161,154.508 178.988,155.997 C180.308,156.572 181.628,157.283 182.914,158.027 C186.027,159.889 189.141,161.818 192.254,163.713 C192.897,164.119 193.472,164.593 193.912,165.236 C194.928,166.691 196.01,168.18 197.06,169.669 C197.229,169.906 197.499,170.177 197.263,170.481 C197.195,170.583 197.093,170.65 196.992,170.684 C196.992,170.686 196.993,170.686 196.994,170.687 C196.736,170.739 196.509,170.645 196.281,170.515 C194.894,169.736 193.472,168.992 192.085,168.214 C187.246,165.506 182.136,163.577 176.789,162.122 C176.322,161.994 175.855,161.867 175.388,161.744 C173.876,161.299 172.462,160.874 170.833,160.667 L168.701,160.193 C168.633,160.227 168.768,160.362 168.938,160.532 C169.005,160.599 169.073,160.667 169.107,160.735 C169.276,160.938 169.445,161.073 169.682,161.208 C169.716,161.208 169.883,161.298 169.953,161.344 C173.168,162.968 178.582,163.984 182.542,165.811 L182.474,165.777 C182.406,165.743 182.339,165.709 182.271,165.676 C181.831,165.472 181.391,165.269 180.951,165.066 C180.816,164.999 180.714,164.965 180.579,164.897 C180.543,164.883 180.511,164.868 180.477,164.854 C180.511,164.868 180.543,164.883 180.579,164.897 C180.714,164.965 180.816,164.999 180.951,165.066 C181.391,165.269 181.831,165.472 182.271,165.676 C182.32,165.7 182.375,165.725 182.437,165.75 L182.474,165.777 C182.779,165.912 183.083,166.082 183.354,166.217 C185.553,167.368 187.55,168.789 189.547,170.312 L193.337,173.222 C199.022,177.351 202.508,182.935 204.2,189.703 C204.234,189.906 204.302,190.109 204.335,190.312 L204.471,190.515 C204.741,190.921 204.809,191.429 204.708,191.869 C204.741,191.97 204.741,192.072 204.775,192.173 C204.708,193.155 203.929,192.748 203.489,192.748 C200.545,192.647 197.703,192.004 194.894,191.192 C194.863,191.186 194.834,191.18 194.804,191.174 C194.08,190.962 193.142,190.634 192.474,190.422 C189.496,189.373 186.687,188.121 183.811,187.072 C180.257,185.82 177.482,183.383 174.471,181.251 C169.496,177.731 164.69,174.043 160.359,169.745 C159.919,169.305 159.479,168.831 159.242,168.256 C158.937,167.545 158.633,166.801 158.362,166.09 C158.193,165.65 158.024,165.21 157.855,164.77 C157.753,164.5 157.651,164.229 157.516,163.924 C157.516,163.89 157.516,163.89 157.482,163.857 C157.448,163.823 157.448,163.755 157.448,163.721 L157.448,163.687 C157.448,163.654 157.415,163.586 157.415,163.552 C157.279,163.078 157.245,162.571 157.415,162.097 L157.415,162.097 Z M178.718,164.165 C178.616,164.127 178.515,164.089 178.413,164.051 C178.4,164.044 178.391,164.042 178.379,164.038 C178.391,164.042 178.4,164.044 178.413,164.051 C178.515,164.089 178.616,164.127 178.718,164.165 L178.718,164.165 Z M178.278,163.997 C178.266,163.992 178.257,163.99 178.244,163.984 C178.007,163.916 177.804,163.814 177.567,163.747 C177.477,163.724 177.387,163.689 177.296,163.656 C177.387,163.689 177.477,163.724 177.567,163.747 C177.804,163.814 178.007,163.916 178.244,163.984 C178.257,163.99 178.266,163.992 178.278,163.997 L178.278,163.997 Z M171.543,161.784 L171.543,161.784 C171.476,161.761 171.408,161.739 171.34,161.716 C171.408,161.739 171.476,161.761 171.543,161.784 L171.543,161.784 Z M169.816,161.235 C169.761,160.969 169.795,160.869 169.87,160.847 C170.011,160.905 170.143,160.948 170.265,160.963 C170.274,160.966 170.283,160.969 170.291,160.972 C170.125,161.071 169.887,161.029 169.827,161.237 C169.823,161.237 169.82,161.236 169.816,161.235 L169.816,161.235 Z M156.45,138.67 C156.404,138.78 156.381,138.925 156.377,139.098 C156.381,138.923 156.403,138.777 156.45,138.67 L156.45,138.67 Z M154.893,168.62 C154.99,168.298 155.179,168.131 155.372,168.174 C155.381,168.188 155.391,168.198 155.401,168.214 C155.503,168.247 155.604,168.349 155.706,168.552 C156.788,170.718 158.277,172.511 159.936,174.17 C161.695,175.862 163.591,177.419 165.418,179.077 C169.208,182.495 173.066,185.845 176.958,189.127 C179.462,191.259 182.474,192.343 185.689,193.188 C192.999,195.05 200.478,195.76 207.889,196.776 C209.852,197.046 211.611,197.689 213.168,198.975 L213.066,198.975 C213.202,199.077 213.303,199.144 213.405,199.246 C209.242,198.637 205.08,198.705 200.917,198.603 C196.349,198.502 191.882,199.043 187.381,199.551 C185.757,199.72 184.2,199.551 182.643,199.178 C178.311,198.197 174.217,196.437 170.122,194.711 C165.486,192.748 161.628,189.737 157.973,186.42 C157.702,186.149 157.432,185.913 157.161,185.642 C155.917,184.409 154.973,183.088 154.305,181.687 C154.296,181.666 154.286,181.644 154.277,181.623 C154.264,181.596 154.254,181.568 154.241,181.541 C152.972,178.555 153.041,175.224 154.014,171.564 C154.284,170.583 154.589,169.601 154.893,168.62 L154.893,168.62 Z M191.611,227.943 L190.968,227.943 L190.731,227.943 C190.19,227.943 189.648,228.079 189.107,228.113 C188.498,228.113 188.126,228.383 187.889,228.925 C187.652,229.466 187.347,229.94 187.076,230.482 C187.043,230.549 187.009,230.617 186.975,230.718 C185.892,233.324 184.369,235.558 182.508,237.487 C182.102,237.927 181.662,238.333 181.222,238.739 C180.105,239.754 178.921,240.702 177.702,241.615 C175.706,243.037 173.404,243.917 171.103,244.763 C170.934,244.83 170.765,244.898 170.596,244.966 C170.427,245.033 170.257,245.101 170.122,245.169 C170.02,245.202 169.953,245.236 169.851,245.27 C169.716,245.304 169.547,245.372 169.411,245.405 C168.904,245.609 168.498,245.913 168.768,246.692 C169.039,247.537 169.648,247.774 170.427,247.808 C170.596,247.808 170.799,247.808 171.002,247.774 C171.746,247.707 172.423,247.537 173.1,247.301 C173.777,247.064 174.454,246.759 175.164,246.455 C175.638,246.252 176.112,246.049 176.62,245.879 C176.213,247.605 175.977,249.196 175.435,250.685 C175.333,250.955 175.232,251.192 175.13,251.429 C174.724,252.343 174.318,253.223 173.878,254.137 C173.608,254.746 173.303,255.321 172.998,255.896 C171.374,259.145 169.547,262.258 167.279,265.135 C166.805,265.744 166.332,266.286 165.824,266.827 C164.741,267.978 163.557,269.027 162.271,269.94 C161.797,270.279 161.323,270.617 160.816,270.956 C159.834,271.565 158.853,272.14 157.871,272.682 C157.059,273.122 156.281,273.494 155.469,273.866 C155.164,274.001 154.859,274.137 154.555,274.272 C154.318,274.374 154.047,274.475 153.81,274.577 C153.607,274.644 153.404,274.746 153.201,274.814 C152.626,275.05 152.051,275.253 151.475,275.457 C151.306,275.524 151.137,275.592 150.934,275.626 C150.325,275.829 149.716,276.032 149.107,276.201 C147.211,276.776 145.283,277.25 143.354,277.656 C142.609,277.825 141.831,277.961 141.052,278.096 C140.951,278.096 140.883,278.13 140.782,278.13 C140.003,278.265 139.259,278.367 138.48,278.502 C137.668,278.604 136.856,278.739 136.01,278.841 C133.235,279.179 130.494,279.01 127.787,278.604 C127.685,278.604 127.584,278.57 127.482,278.536 C127.347,278.502 127.211,278.468 127.076,278.435 C126.365,278.231 125.722,277.961 125.045,277.588 C124.165,277.115 123.353,276.607 122.474,276.167 C121.864,275.863 121.255,275.524 120.646,275.152 C119.868,274.678 119.089,274.204 118.379,273.663 C116.991,272.648 115.773,271.463 115.096,269.737 C114.724,268.79 114.284,267.876 113.81,266.996 C113.675,266.725 113.506,266.489 113.37,266.252 C112.253,264.424 110.9,262.698 109.479,261.074 C108.903,260.397 108.328,259.72 107.719,259.077 C107.414,258.739 107.143,258.401 106.839,258.096 C105.654,256.776 104.436,255.456 103.184,254.204 C102.879,253.9 102.541,253.561 102.236,253.257 C100.951,252.005 99.597,250.82 98.175,249.771 C97.837,249.5 97.465,249.23 97.093,248.993 C96.01,248.214 94.859,247.47 93.675,246.793 C93.37,246.624 93.099,246.455 92.829,246.285 C92.558,246.116 92.253,245.913 91.982,245.744 C88.125,243.172 85.011,239.788 83.252,235.287 C83.211,235.18 83.161,235.083 83.107,234.993 C82.498,233.686 81.599,233.279 80.009,233.248 C78.757,233.248 77.538,233.045 76.455,232.571 L76.456,232.572 L76.416,232.546 C75.739,232.275 75.13,231.869 74.554,231.361 L74.199,231.136 C73.887,230.768 73.661,230.323 73.37,229.872 C71.353,226.873 69.48,223.812 67.932,220.59 C67.945,220.629 67.959,220.668 67.972,220.707 C67.947,220.643 67.922,220.58 67.897,220.516 C67.909,220.541 67.92,220.566 67.932,220.59 C67.612,219.663 67.279,218.738 66.906,217.825 C66.73,217.405 66.554,217.003 66.403,216.623 C66.246,216.077 66.162,215.59 66.162,215.151 C66.162,214.915 66.162,214.644 66.195,214.441 C66.229,214.305 66.263,214.136 66.297,214.001 C66.331,213.933 66.331,213.865 66.365,213.798 C66.399,213.662 66.466,213.527 66.534,213.392 C66.906,212.681 67.515,212.038 68.327,211.395 C68.632,211.158 68.937,210.921 69.275,210.684 C69.918,210.211 70.595,209.805 71.238,209.365 C72.253,208.755 73.268,208.18 74.317,207.639 C78.141,205.676 82.202,204.288 86.399,203.205 C86.636,203.138 86.872,203.104 87.143,203.036 C87.617,202.935 88.125,202.901 88.632,202.833 C89.14,202.799 89.647,202.766 90.121,202.766 C90.629,202.766 91.136,202.732 91.61,202.732 C91.847,202.732 92.118,202.732 92.355,202.698 C94.047,202.63 95.739,202.529 97.431,202.427 C99.969,202.258 102.507,202.055 105.045,201.818 C107.583,201.581 110.121,201.31 112.659,201.04 C117.262,200.498 121.695,199.415 125.925,197.656 C126.805,197.283 127.685,196.877 128.531,196.471 C129.039,196.2 129.58,195.964 130.088,195.693 C130.392,195.524 130.663,195.388 130.968,195.219 C132.998,194.136 135.029,193.087 136.991,191.936 C137.194,191.666 137.431,191.564 137.77,191.463 C137.804,191.463 137.871,191.429 137.905,191.429 L137.905,191.598 C137.871,191.801 137.77,191.936 137.634,192.072 C137.533,192.139 137.431,192.207 137.33,192.275 C135.367,194.779 132.66,196.505 130.325,198.603 C130.088,198.806 129.851,199.009 129.614,199.246 C128.87,199.855 128.125,200.498 127.279,201.175 C130.223,201.175 133.066,200.837 135.705,200.058 C139.529,198.942 143.015,196.945 145.993,193.899 C146.67,193.189 147.347,192.41 147.956,191.598 C149.411,189.669 150.731,187.402 151.882,184.796 C152.795,188.078 155.164,190.38 157.161,192.884 C157.296,193.053 157.432,193.256 157.567,193.425 C157.702,193.595 157.838,193.798 157.973,193.967 C158.21,194.305 158.481,194.576 158.819,194.813 C159.022,194.982 159.259,195.151 159.462,195.287 C159.699,195.456 159.902,195.591 160.105,195.76 C160.206,195.828 160.308,195.93 160.41,195.997 C161.899,197.182 163.388,198.299 164.91,199.415 C165.926,200.16 166.941,200.87 167.99,201.581 C169.547,202.664 171.103,203.713 172.626,204.796 C174.724,206.251 176.924,207.47 179.225,208.552 C179.801,208.823 180.376,209.06 180.951,209.331 C182.711,210.075 184.471,210.718 186.298,211.294 C186.4,211.327 186.501,211.361 186.603,211.395 C187.719,211.7 188.938,211.801 190.122,211.937 C190.562,211.97 191.002,212.038 191.408,212.072 C191.645,212.106 191.95,212.241 192.254,212.41 C192.559,212.58 192.897,212.85 193.202,213.121 C194.251,214.069 195.232,215.422 195.3,216.234 C195.3,216.37 195.3,216.471 195.266,216.573 C195.232,216.64 195.232,216.674 195.198,216.708 C195.063,216.945 194.86,217.148 194.725,217.385 C194.319,218.096 193.878,218.806 193.54,219.551 C193.472,219.686 193.439,219.788 193.371,219.923 C192.931,221.04 192.762,222.224 193.405,223.612 C195.029,221.987 196.484,220.262 197.533,218.299 C197.838,217.757 198.075,217.216 198.312,216.64 C198.481,216.268 198.616,215.862 198.752,215.456 C198.887,215.084 198.785,214.644 198.887,214.272 C199.022,213.866 198.549,213.29 198.752,213.019 C198.752,212.986 198.785,212.986 198.819,212.952 C198.853,212.918 198.921,212.884 199.022,212.85 C199.158,212.817 199.293,212.783 199.395,212.783 C199.665,212.749 199.902,212.715 200.173,212.715 C200.85,212.715 201.493,212.817 202.136,213.019 C202.542,213.155 202.406,213.662 202.373,214.035 L202.373,214.102 C202.305,215.321 201.797,216.438 201.357,217.52 C201.256,217.791 201.154,218.028 201.019,218.299 C200.275,220.126 199.496,221.987 198.312,223.578 C196.654,225.778 194.725,227.842 191.611,227.943 L191.611,227.943 Z M195.3,234.306 C194.86,236.674 194.488,239.01 194.082,241.378 C193.98,242.055 193.912,242.766 193.405,243.713 C193.371,243.51 193.337,243.307 193.303,243.104 C193.269,243.206 193.202,243.307 193.134,243.443 C192.559,239.957 192.186,236.742 192.085,233.493 C192.051,232.749 192.559,232.58 193.033,232.411 C193.811,232.14 194.792,231.26 195.3,231.666 C195.368,231.734 195.435,231.801 195.469,231.869 C195.503,231.903 195.537,231.903 195.571,231.937 C196.18,232.411 195.469,233.493 195.3,234.306 L195.3,234.306 Z M145.249,284.526 C143.963,284.729 142.677,284.831 141.391,284.831 C140.071,284.831 138.785,284.695 137.465,284.391 C136.755,284.221 136.484,283.748 136.551,283.172 C136.585,282.8 136.856,282.8 137.127,282.8 C137.296,282.766 137.499,282.8 137.668,282.834 L138.819,282.834 L140.206,282.834 C140.579,282.868 140.951,282.868 141.357,282.868 C142.474,282.868 143.59,282.766 144.707,282.529 C144.91,282.496 145.113,282.462 145.283,282.496 C145.722,282.462 146.061,282.563 146.095,283.24 C146.095,283.849 146.23,284.391 145.249,284.526 L145.249,284.526 Z M82.168,254.17 L82.169,254.17 C82.845,251.395 82.575,248.519 82.947,245.71 C83.015,245.135 83.319,245.202 83.658,245.507 C84.198,246.014 84.705,246.554 85.245,247.061 C85.247,247.062 85.247,247.062 85.248,247.064 C85.316,247.131 85.383,247.199 85.451,247.267 C85.722,247.504 85.756,247.808 85.62,248.113 C84.571,250.245 83.522,252.343 82.473,254.441 C82.372,254.407 82.236,254.373 82.135,254.34 C82.135,254.272 82.169,254.238 82.169,254.17 L82.168,254.17 L82.168,254.17 Z M191.103,207.266 C189.919,207.131 188.735,206.894 187.516,206.928 C185.114,206.996 183.185,205.744 181.154,204.661 L181.391,204.661 C181.222,204.559 181.053,204.491 180.883,204.39 C181.222,204.424 181.594,204.424 181.933,204.458 C182.339,204.491 182.711,204.593 183.117,204.661 C186.467,205.371 189.716,204.39 193.033,204.051 C196.45,203.679 199.395,204.898 202.271,206.556 C202.203,206.556 202.17,206.556 202.102,206.59 C202.237,206.657 202.373,206.759 202.542,206.826 C198.718,207.402 194.928,207.672 191.103,207.266 L191.103,207.266 Z M64.368,164.017 C65.485,161.885 66.737,159.855 68.057,157.892 C68.734,156.911 69.41,155.929 70.121,154.982 C70.46,154.508 70.832,154.034 71.204,153.56 C72.287,152.139 73.404,150.752 74.554,149.398 C75.705,148.044 76.855,146.691 78.04,145.337 C79.224,143.983 80.409,142.664 81.559,141.31 C82.033,140.802 82.608,140.362 83.184,139.922 L83.546,139.504 C84.657,138.547 85.622,137.559 86.906,136.538 L87.076,136.403 C87.38,136.132 87.685,135.828 88.023,135.523 C91.407,132.308 95.333,129.804 99.258,127.3 C99.655,127.04 100.059,126.805 100.469,126.583 C100.99,126.349 101.512,126.123 102.033,125.912 C102.169,125.844 102.304,125.777 102.439,125.743 C103.252,125.404 104.064,125.1 104.876,124.829 C105.418,124.66 105.993,124.491 106.534,124.321 C108.497,123.746 110.46,123.273 112.389,122.663 C115.976,121.513 119.699,121.005 123.421,121.039 C123.962,121.039 124.47,121.073 125.012,121.073 C127.787,121.208 130.494,122.291 133.032,123.408 C134.149,123.916 135.266,124.389 136.382,124.931 C136.653,125.066 136.924,125.201 137.194,125.337 C138.007,125.743 138.853,126.149 139.631,126.623 C140.173,126.927 140.68,127.232 141.221,127.536 C141.729,127.875 142.271,128.18 142.744,128.552 C143.76,129.262 144.741,130.041 145.655,130.887 C148.734,133.729 150.9,137.08 152.186,141.039 C153.1,143.882 153.777,146.792 154.014,149.736 C154.25,152.579 153.404,155.354 152.66,158.095 C152.558,158.501 152.389,158.603 152.254,158.569 C152.051,158.501 151.949,158.264 151.78,158.061 C150.765,156.877 149.749,155.726 148.734,154.542 C144.775,149.939 140.037,146.589 134.047,144.897 C129.411,143.611 124.741,142.867 120.037,142.731 C116.281,142.63 112.456,143.306 108.7,144.017 C105.722,144.592 102.744,145.066 99.8,145.608 C97.871,145.946 96.111,146.826 94.351,147.604 C93.511,147.978 92.67,148.349 91.803,148.669 L91.541,148.73 C86.228,150.591 81.729,153.797 77.092,156.775 C75.823,157.61 74.771,158.735 73.67,159.838 C73.626,159.878 73.582,159.916 73.539,159.956 C73.234,160.261 72.93,160.565 72.625,160.87 C70.493,162.934 68.395,165.033 66.094,166.928 C65.045,168.383 63.624,169.398 62.304,170.684 C62.642,168.281 63.285,166.048 64.368,164.017 L64.368,164.017 Z M63.426,177.586 C63.596,177.315 63.765,177.078 64.002,176.841 C68.706,172.205 73.206,167.298 78.418,163.237 C87.081,156.469 96.523,151.189 107.386,148.854 C110.026,148.279 112.699,147.873 115.44,147.873 C118.554,147.839 121.667,147.738 124.747,147.636 C130.703,147.433 136.185,149.125 141.194,152.205 C143.057,153.349 144.76,154.688 146.308,156.211 C146.372,156.276 146.437,156.338 146.501,156.403 C148.227,158.129 149.749,160.058 151.036,162.19 C152.152,164.017 151.848,166.014 151.475,168.011 C150.46,173.73 147.008,177.96 143.117,181.919 C139.394,185.71 134.724,188.18 130.392,191.057 C124.267,195.151 117.262,196.742 110.121,197.791 C101.221,199.111 92.186,199.246 83.252,200.43 C80.003,200.837 76.72,201.107 73.471,201.683 C69.613,202.393 66.297,204.288 63.894,207.469 C63.014,208.654 62.473,210.109 61.627,211.733 C61.559,211.564 61.525,211.395 61.492,211.226 C61.018,209.297 61.322,207.706 61.999,206.183 C63.556,202.732 66.162,200.295 69.512,198.569 C75.367,195.49 81.898,194.881 88.158,193.29 C93.235,192.004 98.446,191.26 103.489,189.872 C110.426,187.943 117.194,185.473 123.59,182.122 C126.974,180.363 130.494,178.569 132.829,175.286 C134.521,172.884 134.961,170.278 134.521,167.435 C134.453,166.961 134.318,166.725 134.149,166.691 C133.98,166.657 133.743,166.792 133.438,167.063 C130.9,169.33 128.26,171.496 125.384,173.391 C120.883,176.302 115.908,178.062 110.764,179.314 C102.575,181.344 94.318,183.07 85.891,183.679 C79.935,184.085 74.08,185.168 68.429,187.097 C63.624,188.755 58.75,190.413 54.893,194.001 C54.419,194.441 53.843,194.813 53.065,195.388 C53.099,195.185 53.133,195.016 53.167,194.847 C53.031,194.948 52.93,195.016 52.794,195.117 C52.798,195.094 52.804,195.072 52.808,195.049 C52.922,194.959 53.018,194.871 53.139,194.811 C53.375,193.694 53.815,192.814 54.323,192.002 C57.335,187.197 60.381,182.391 63.426,177.586 L63.426,177.586 Z M97.194,186.488 L104.572,185.27 L105.857,185.033 C104.335,185.845 102.676,186.217 101.018,186.556 C93.133,188.518 85.079,189.669 77.092,191.158 C71.339,192.241 66.195,194.508 61.525,198.028 C61.255,198.231 60.95,198.468 60.646,198.637 C60.273,198.874 60.104,198.806 60.036,198.502 C60.003,198.434 60.003,198.332 60.003,198.231 C59.867,196.2 60.476,195.219 62.338,194.373 C64.876,193.222 67.414,192.004 69.952,190.82 C73.268,189.297 76.822,188.823 80.409,188.451 C85.993,187.842 91.576,187.131 97.194,186.488 L97.194,186.488 Z M96.915,186.218 C96.918,186.218 96.921,186.217 96.923,186.217 L96.924,186.217 L96.923,186.217 C96.921,186.217 96.918,186.218 96.915,186.218 L96.915,186.218 Z M68.023,54.169 C68.158,54.541 68.192,54.845 67.786,55.082 C66.568,55.827 65.383,56.571 64.165,57.316 C64.063,57.384 63.928,57.417 63.522,57.587 C63.421,57.417 63.285,57.113 63.082,56.876 C60.544,53.966 58.006,51.055 55.468,48.145 C55.129,47.739 54.791,47.367 55.468,46.994 C57.972,45.573 59.867,43.272 62.507,42.054 C63.184,41.749 63.421,41.715 63.759,42.46 C65.451,46.25 66.602,50.277 68.023,54.169 L68.023,54.169 Z M47.38,36.368 C50.967,35.082 54.486,33.627 58.04,32.206 C63.184,30.175 67.854,27.265 72.693,24.693 C73.201,24.422 73.674,24.084 74.182,23.813 C74.622,23.61 74.994,23.001 75.57,23.305 C76.246,23.678 76.009,24.388 76.009,25.201 C76.179,26.047 75.637,26.757 74.859,27.468 C69.986,32.003 64.91,36.3 59.698,40.463 C57.634,42.121 55.096,42.899 52.794,44.152 C52.321,44.388 52.05,44.152 51.779,43.813 C50.087,41.647 48.429,39.448 46.737,37.282 C46.094,36.503 46.974,36.537 47.38,36.368 L47.38,36.368 Z M16.686,82.663 C12.828,70.717 8.767,58.839 5.552,46.69 C4.807,43.881 4.503,40.937 3.961,38.06 C3.792,37.214 4.368,36.774 4.909,36.47 C5.654,36.097 5.687,36.977 5.958,37.316 C11.271,44.659 14.892,52.95 19.224,60.835 C20.51,63.204 21.965,65.505 23.353,67.84 C23.623,68.281 23.826,68.653 24.503,68.416 C25.248,68.145 25.112,67.671 24.977,67.13 C24.435,64.693 23.183,62.494 22.27,60.192 C21.931,59.38 21.931,58.737 22.303,57.925 C24.232,53.932 26.94,50.446 29.072,46.622 C31.034,43.136 33.539,40.023 35.434,36.503 C36.415,34.71 38.649,34.405 40.138,35.827 C41.153,36.774 41.965,37.857 42.676,39.042 C45.112,43.001 48.496,46.182 51.779,49.431 C54.08,51.732 56.415,53.966 58.852,56.064 C59.664,56.774 59.799,57.857 60.239,58.771 C60.409,59.109 60.273,59.38 59.969,59.549 C59.799,59.651 59.63,59.719 59.529,59.82 C57.532,61.512 55.637,61.275 53.302,60.091 C48.666,57.756 44.673,54.676 41.119,50.988 C40.984,50.852 40.848,50.751 40.713,50.649 C39.089,49.431 39.021,49.499 38.31,51.36 C37.566,53.255 37.092,55.218 36.246,57.045 C35.941,57.688 36.415,58.365 36.889,58.839 C37.43,59.38 37.803,60.226 38.784,60.091 C39.224,60.023 39.461,59.786 39.562,59.313 C39.799,58.196 40.104,57.079 40.409,55.692 C44.097,58.805 48.192,61.208 52.253,63.915 C50.832,64.727 49.579,65.438 48.327,66.148 C38.276,71.8 28.192,77.451 18.175,83.137 C17.363,83.577 17.024,83.678 16.686,82.663 L16.686,82.663 Z M20.205,90.514 C19.833,89.736 19.968,89.397 20.679,88.957 C32.828,81.445 44.977,73.898 57.092,66.318 C57.735,65.912 58.344,66.148 58.953,66.013 C61.085,65.539 63.15,64.896 65.011,63.712 C65.146,63.61 65.383,63.543 65.451,63.407 C66.805,60.396 69.816,59.38 72.355,58.196 C78.141,55.556 83.996,53.12 89.106,49.262 C90.29,48.348 91.543,48.686 92.423,49.363 C93.235,50.006 93.878,51.123 93.539,52.443 C93.133,54.033 92.524,55.387 91.272,56.538 C86.399,61.072 82.439,66.318 78.852,71.935 C75.637,77.011 72.456,82.054 70.053,87.57 C69.58,88.687 68.801,89.567 67.989,90.48 C64.605,94.338 60.578,97.316 55.942,99.482 C54.926,99.956 54.486,100.667 54.419,101.716 C54.351,102.562 54.08,103.374 54.013,104.22 C53.877,106.386 53.167,108.247 51.339,109.601 C50.764,110.041 50.696,110.751 50.493,111.36 C49.207,115.658 47.921,119.956 46.635,124.254 C46.635,124.355 46.635,124.457 46.601,124.525 C46.601,124.728 46.635,124.965 46.364,125.066 C45.789,125.201 45.282,125.032 44.774,124.761 C38.479,123.306 32.253,121.716 26.026,120.058 C25.248,119.888 24.503,119.651 23.691,119.55 C22.439,119.381 22.337,118.805 22.912,117.858 C23.725,113.898 24.672,109.973 27.109,106.623 C27.65,105.878 27.617,105.269 27.143,104.457 C24.469,99.99 22.439,95.184 20.205,90.514 L20.205,90.514 Z M7.109,142.122 C6.906,142.088 6.736,142.054 6.601,142.021 C5.992,141.851 5.789,141.479 5.89,140.633 C6.635,133.932 7.346,127.232 8.056,120.497 C8.09,120.328 8.09,120.193 8.124,120.058 C8.158,119.99 8.192,119.922 8.192,119.854 C8.293,119.651 8.496,119.584 8.733,119.584 C8.868,119.584 9.071,119.618 9.275,119.685 C18.378,122.088 27.447,124.491 36.551,126.893 C45.654,129.296 54.757,131.665 63.86,134.068 C64.74,134.305 65.011,134.575 64.706,135.489 L60.781,148.349 C60.646,148.856 60.544,149.398 59.969,149.398 C59.901,149.398 59.799,149.398 59.698,149.364 C54.825,148.687 49.952,148.044 45.079,147.367 C41.897,146.927 38.75,146.488 35.569,146.048 C26.127,144.694 16.618,143.408 7.109,142.122 L7.109,142.122 Z M14.588,155.117 C14.418,154.609 14.452,154.203 14.588,153.899 C14.655,153.696 14.723,153.527 14.824,153.323 C14.858,153.391 14.858,153.459 14.892,153.527 C14.96,153.966 14.791,154.44 14.588,155.117 L14.588,155.117 Z M98.175,281.446 L98.175,281.413 C97.837,281.446 97.803,281.649 97.634,281.751 C97.566,281.819 97.465,281.886 97.363,281.954 C97.194,282.089 96.991,282.225 96.822,282.326 C96.382,282.631 95.942,283.003 95.739,283.545 C95.739,283.646 95.739,283.612 95.705,283.68 C95.671,283.748 95.705,283.883 95.671,283.883 L95.773,283.883 L95.773,284.086 C95.434,285.067 95.265,285.778 95.096,286.286 C95.062,286.421 94.994,286.523 94.961,286.624 C94.927,286.726 94.859,286.793 94.825,286.861 C94.791,286.929 94.724,286.996 94.69,287.03 C94.588,287.132 94.487,287.166 94.351,287.199 L94.25,287.199 C94.047,287.199 93.844,287.132 93.539,287.03 C93.065,286.861 92.456,286.624 91.61,286.353 C91.543,286.32 91.475,286.32 91.441,286.286 C91.407,286.252 91.306,286.218 91.272,286.218 C91.136,286.15 91.035,286.116 90.9,286.049 L90.798,286.049 C90.764,286.049 90.798,286.049 90.764,286.049 L90.764,285.913 L90.73,285.913 C89.715,285.575 88.768,285.372 87.854,285 C87.312,284.797 86.737,284.628 86.162,284.391 C85.451,284.221 84.741,283.883 84.03,283.883 C82.067,283.206 80.07,282.868 78.175,282.191 C78.006,282.191 77.905,282.225 77.566,282.191 L77.566,282.225 C76.212,281.954 75.13,281.616 73.844,281.379 C72.591,281.176 72.118,280.533 72.253,279.281 C72.321,278.773 72.287,278.164 72.287,277.656 C72.287,277.487 72.253,277.419 72.253,277.081 C72.05,276.742 71.745,276.336 71.475,275.896 C71.373,275.761 71.339,275.66 71.272,275.524 C71.103,275.355 70.764,275.186 70.764,274.983 C70.426,274.915 70.561,274.847 70.46,274.78 C69.41,273.798 69.715,272.479 69.85,271.226 C69.85,271.091 69.884,270.956 69.884,270.82 C69.918,270.55 69.952,270.279 69.986,270.042 C70.02,269.907 70.02,269.771 70.053,269.67 C70.595,267.572 70.73,265.575 68.463,264.323 C68.192,264.154 68.023,263.984 67.684,263.747 L67.684,263.815 C66.669,263.003 65.552,262.157 64.504,261.48 C64.334,261.142 64.3,261.074 63.962,260.939 C62.27,260.025 60.916,258.976 59.596,257.724 C59.258,257.521 58.886,257.351 58.547,257.149 L58.683,257.148 C58.48,256.81 58.243,256.844 58.074,256.675 C57.803,256.472 57.566,256.336 57.228,256.133 C55.535,254.678 53.234,253.324 51.407,251.666 C50.764,251.463 50.358,250.955 49.85,250.549 L49.85,250.482 C48.057,249.23 46.297,248.011 44.537,246.658 L44.571,246.658 C44.368,246.658 44.368,246.488 44.029,246.319 C43.014,245.812 41.999,244.966 41.119,244.289 C40.848,243.95 40.578,243.95 40.307,243.95 C39.495,243.274 38.784,242.969 38.107,242.36 C37.836,242.191 37.6,241.988 37.261,241.784 C35.231,240.532 33.336,239.348 31.677,237.724 C31.61,237.656 31.576,237.622 31.508,237.554 C31.407,237.453 31.305,237.318 31.204,237.216 C31.068,237.047 30.933,236.844 30.831,236.607 C30.764,236.438 30.696,236.268 30.662,236.065 L30.662,236.336 C29.444,235.016 28.632,233.493 27.617,232.106 C27.583,232.038 27.549,231.971 27.515,231.903 C27.481,231.835 27.447,231.768 27.447,231.7 C27.413,231.564 27.413,231.429 27.413,231.328 C27.447,231.057 27.583,230.82 27.752,230.583 C27.752,230.515 27.786,230.414 27.786,230.312 C28.124,228.146 29.309,226.184 30.155,224.153 L30.155,223.882 L30.155,223.646 C30.155,223.646 30.155,223.341 30.121,223.206 C30.087,223.104 30.087,223.07 30.053,223.003 C30.019,222.969 30.019,222.969 29.985,222.935 C29.918,222.867 29.85,222.833 29.749,222.8 L29.647,222.8 C29.444,222.8 29.173,222.901 28.835,223.104 C28.564,223.273 28.293,223.476 28.056,223.713 C27.955,223.781 27.887,223.849 27.786,223.916 C27.718,223.984 27.65,224.086 27.583,224.187 C27.549,224.221 27.515,224.289 27.481,224.322 C27.481,224.356 27.447,224.322 27.447,224.322 C27.447,224.356 27.413,224.322 27.413,224.322 L27.413,224.356 C26.737,225.135 25.721,225.811 24.841,226.522 C24.672,226.691 24.368,226.894 24.368,227.064 L24.368,227.03 L24.266,227.03 C23.996,227.368 23.623,227.368 23.251,227.199 C21.796,226.556 20.341,225.947 18.885,225.27 C18.547,225.101 18.378,224.729 18.31,224.39 C18.276,224.255 18.243,224.119 18.209,223.95 C18.175,223.815 18.141,223.713 18.107,223.578 L18.107,223.646 C17.599,221.277 18.412,219.517 18.852,217.487 C18.885,217.317 18.919,217.148 18.919,216.979 C19.258,215.016 19.393,212.918 19.968,211.023 L19.968,210.143 L19.975,210.143 C19.666,207.979 19.659,205.845 19.495,203.679 C19.495,203.307 19.528,202.935 19.528,202.563 C19.325,198.535 19.055,194.508 18.919,190.481 C18.615,182.055 17.938,173.662 18.175,165.236 C18.209,163.882 17.938,162.731 17.498,161.615 C17.396,161.344 17.261,161.073 17.126,160.802 C16.72,160.024 16.246,159.28 15.738,158.501 C14.994,157.452 14.723,156.437 15.061,155.151 C15.569,153.188 15.941,151.158 16.313,149.161 C16.483,148.213 16.754,147.706 17.836,148.078 C18.243,148.213 18.716,148.18 19.156,148.213 C20.95,148.62 22.811,148.653 24.605,149.093 C24.774,149.093 24.841,149.127 25.078,149.229 C26.669,149.296 28.496,149.533 30.188,149.906 C30.358,149.906 30.561,149.939 30.73,150.041 C32.76,150.312 34.791,150.548 36.821,150.887 C37.295,150.887 37.701,150.853 38.141,151.124 C38.209,151.124 38.31,151.09 38.31,151.124 C40.679,151.395 42.54,151.564 44.571,151.902 L44.368,151.902 L44.368,151.97 C45.721,152.139 46.601,152.308 47.651,152.477 C48.733,152.647 49.85,152.917 50.899,152.917 L50.933,152.917 C51.035,152.917 51.102,152.951 51.17,152.951 C51.238,152.985 51.475,153.019 51.475,153.019 C52.151,153.053 52.422,153.425 52.524,154 C53.065,157.215 53.505,160.43 54.182,163.645 C54.182,163.882 54.317,164.085 54.283,164.288 C54.385,164.83 54.453,165.337 54.554,165.845 C54.859,167.401 55.129,168.958 55.434,170.515 C55.434,170.65 55.434,170.955 55.468,171.022 L55.468,171.158 C55.806,173.188 56.179,175.016 56.517,176.945 L56.517,177.588 C55.874,178.264 55.265,179.077 54.69,179.855 C53.742,181.175 52.93,182.596 52.287,184.085 C51.847,185.134 51.305,186.217 50.865,187.266 L50.798,187.3 C50.459,188.383 49.918,189.432 49.41,190.447 C49.376,190.447 49.343,190.515 49.309,190.583 C49.241,190.718 49.207,190.921 49.14,191.023 L49.14,191.057 C48.564,192.579 47.921,194.068 47.211,195.49 C46.974,195.964 46.703,196.437 46.432,196.911 C46.331,197.182 46.094,197.452 46.094,197.689 C45.755,198.975 45.451,200.261 44.808,201.446 C44.605,202.563 44.3,203.612 43.759,204.627 C43.353,206.657 42.676,208.349 41.931,210.177 C41.83,210.448 41.661,210.684 41.661,210.955 C41.661,210.989 41.627,211.023 41.627,211.057 C41.593,211.158 41.559,211.327 41.491,211.463 C41.458,211.598 41.424,211.767 41.356,211.903 C41.356,211.937 41.322,212.004 41.322,212.038 C41.153,215.524 40.95,219.009 40.781,222.495 C40.882,222.529 40.984,222.563 41.085,222.597 C41.525,221.717 41.965,220.871 42.405,219.991 C42.845,219.145 43.184,218.265 43.657,217.385 C43.928,216.776 44.368,216.167 44.368,215.558 C45.383,213.865 46.297,212.173 47.346,210.617 C47.448,210.448 47.651,210.346 47.752,210.008 C48.632,208.654 49.647,206.86 50.696,205.304 C51.061,204.706 51.458,204.173 51.793,203.578 L51.779,203.578 C52.016,202.901 52.388,202.799 52.693,202.495 C52.997,202.19 53.167,201.886 53.843,201.581 C53.843,201.852 53.911,202.089 53.877,202.326 C53.877,202.359 53.843,202.427 53.843,202.461 C53.843,202.596 53.776,202.732 53.742,202.867 C53.742,202.901 53.708,202.969 53.708,203.002 C53.674,203.104 53.674,203.172 53.64,203.273 C53.607,203.375 53.607,203.442 53.607,203.544 C53.607,203.645 53.539,203.713 53.573,203.815 C53.573,203.882 53.543,203.95 53.523,204.018 L53.573,204.018 C53.268,206.048 53.268,208.349 53.234,210.481 C53.234,210.583 53.167,210.752 53.167,210.82 L53.234,210.786 C53.505,212.816 53.843,214.847 54.114,216.877 L54.08,216.877 C54.114,216.877 54.148,217.317 54.148,217.487 C54.486,219.517 54.926,221.581 55.163,223.646 C55.163,223.713 55.197,223.815 55.197,223.882 C55.231,224.018 55.265,224.119 55.265,224.255 C55.603,225.879 56.821,226.996 57.566,228.417 C58.107,229.196 58.683,230.109 59.19,230.786 L59.224,230.786 L59.224,230.82 C60.916,232.309 62.338,233.832 64.233,235.185 C64.503,235.185 64.774,235.524 65.045,235.524 L65.011,235.524 L65.011,235.693 C65.688,235.761 66.263,236.302 66.974,236.099 C67.109,236.065 67.245,235.998 67.346,235.93 C67.448,235.862 67.583,235.795 67.617,235.693 C67.786,235.388 67.482,235.219 67.245,235.118 C64.47,233.358 64.91,230.481 64.571,227.774 L64.673,227.774 L64.673,227.74 C65.35,228.383 65.823,229.026 66.398,229.703 C66.5,229.839 66.602,229.974 66.737,230.075 C66.974,230.346 67.211,230.583 67.448,230.854 C67.921,231.361 68.429,231.835 68.971,232.275 C69.512,232.715 70.087,233.189 70.73,233.527 C71.001,233.629 71.272,233.866 71.509,233.866 L71.441,233.866 C73.471,234.847 75.231,235.795 77.092,236.776 C77.498,236.844 77.871,236.979 78.209,237.284 C78.886,239.314 79.698,241.345 79.495,243.713 C79.563,243.713 79.63,243.95 79.664,244.119 C79.698,244.289 79.664,244.424 79.63,244.559 C79.867,246.522 79.867,248.519 79.597,250.482 C79.664,250.651 79.664,250.82 79.563,251.023 C79.529,251.091 79.563,251.125 79.529,251.192 L79.563,251.192 C79.563,253.155 79.529,255.118 79.021,257.047 C78.988,258.976 78.378,260.837 78.175,262.766 C78.175,262.834 78.141,262.901 78.108,263.003 C78.006,263.375 77.837,263.815 78.649,263.714 L78.649,263.68 C80.477,261.785 82.304,259.923 83.996,257.791 L83.996,257.825 L83.996,257.859 L83.996,257.868 L83.996,257.927 C84.03,257.25 84.436,256.911 84.808,256.573 C85.519,255.896 86.23,254.746 86.94,253.764 C87.651,252.783 88.362,251.835 89.072,250.854 C89.072,250.786 89.106,250.752 89.106,250.685 C89.207,250.346 89.343,250.143 89.512,250.042 C89.58,250.008 89.647,249.974 89.715,249.974 L89.817,249.974 L89.918,249.974 C90.121,250.008 90.358,250.076 90.629,250.245 C91.001,250.448 91.373,250.685 91.712,250.922 C93.742,252.038 96.044,252.783 97.566,254.712 C97.735,254.881 97.939,254.915 98.108,255.253 C98.818,255.592 99.461,256.37 99.969,257.115 C100.138,257.284 100.341,257.453 100.51,257.622 C100.544,257.656 100.578,257.656 100.612,257.69 C103.285,259.957 103.489,261.175 101.56,264.187 C101.492,264.289 101.39,264.39 101.323,264.39 C101.221,264.729 101.12,264.932 100.984,265.169 C100.917,265.338 100.815,265.507 100.714,265.676 C100.68,265.744 100.612,265.846 100.578,265.913 C100.071,266.725 99.529,267.571 99.326,268.519 C99.157,269.297 99.021,270.11 99.157,270.888 C99.529,272.208 99.868,273.561 100.138,274.915 C100.307,275.727 100.477,276.539 100.544,277.385 C100.815,279.382 99.868,280.6 98.175,281.446 L98.175,281.446 Z M107.177,297.927 C106.737,298.469 106.67,299.585 105.959,299.484 L105.891,299.484 C105.824,299.484 105.756,299.518 105.688,299.484 C104.402,299.315 103.049,299.01 101.932,298.266 C101.526,297.995 101.627,297.487 101.627,297.013 L101.627,290.617 C101.627,290.177 101.797,289.67 101.357,289.365 C99.868,288.418 100.24,286.793 99.868,285.44 C99.732,284.898 100.104,284.628 100.409,284.289 C101.729,282.834 103.015,281.379 104.335,279.924 C105.215,278.976 105.587,277.927 104.944,276.776 C103.725,274.475 103.928,272.275 104.91,269.94 C105.688,268.113 106.196,266.184 106.906,264.018 C106.974,264.086 107.042,264.187 107.11,264.255 L107.11,264.253 C108.43,265.91 109.749,267.335 110.629,268.993 C112.761,273.088 115.908,276.066 119.969,278.231 C121.864,279.247 123.572,280.649 125.805,280.919 L125.84,280.925 C125.939,280.925 126.003,280.906 126.101,280.905 C126.338,280.904 126.669,280.874 126.602,281.243 C126.568,281.446 126.365,281.446 126.162,281.413 L126.061,281.413 C125.993,281.413 125.925,281.413 125.858,281.379 C123.501,281.447 121.196,281.837 118.908,282.325 C117.707,282.577 116.512,282.859 115.319,283.139 C114.242,283.388 113.165,283.633 112.084,283.849 C112.009,283.865 111.943,283.886 111.881,283.91 C111.87,283.912 111.859,283.914 111.847,283.917 C111.374,284.018 111.171,284.255 111.238,284.729 C111.306,285.304 111.509,285.609 112.186,285.744 C113.395,285.967 114.656,286.003 115.871,285.978 C115.928,285.979 115.987,285.981 116.044,285.981 C117.702,285.947 119.36,285.778 121.018,285.507 C122.88,285.203 124.707,285.067 126.568,285.067 C128.362,285.067 130.156,285.203 131.983,285.474 C125.925,286.455 120.917,289.873 115.435,292.174 C112.592,293.359 110.392,295.626 107.685,297.081 C107.482,297.318 107.38,297.69 107.177,297.927 L107.177,297.927 Z M124.707,302.394 C124.707,302.428 124.673,302.428 124.673,302.462 C124.639,302.496 124.605,302.496 124.572,302.496 C124.538,302.496 124.47,302.462 124.436,302.462 C124.369,302.428 124.301,302.36 124.267,302.293 C120.308,301.311 116.314,300.33 112.118,299.281 C113.506,298.164 114.521,297.521 116.213,298.164 C118.988,299.247 121.56,300.77 124.233,302.022 C124.369,302.022 124.538,302.056 124.639,302.157 C124.707,302.191 124.707,302.225 124.707,302.326 L124.707,302.394 L124.707,302.394 Z M136.653,315.355 C136.01,316.438 135.029,317.217 134.047,317.961 C132.084,319.45 129.952,320.567 127.245,321.379 C128.226,318.333 129.039,315.525 130.697,313.122 C131.78,311.565 134.386,311.159 136.01,312.073 C137.093,312.682 137.398,314.137 136.653,315.355 L136.653,315.355 Z M152.423,297.352 C149.31,299.856 146.23,302.394 143.32,305.135 C142.609,305.812 142.068,305.846 141.255,305.338 C136.281,302.394 131.103,299.924 125.79,297.656 C123.455,296.675 120.984,296.269 118.582,295.423 C118.853,294.915 119.36,294.915 119.766,294.78 C124.944,292.851 130.223,291.125 135.299,288.858 C136.619,288.248 137.939,288.756 139.225,288.925 C141.154,289.196 143.015,289.23 144.775,288.282 C145.079,288.113 145.418,287.978 145.79,288.147 C149.716,289.771 153.641,291.396 157.702,293.054 C155.841,294.611 154.115,295.998 152.423,297.352 L152.423,297.352 Z M176.653,280.16 C175.029,282.259 174.758,284.628 175.57,287.064 C176.518,289.974 175.841,291.971 172.999,293.392 C172.355,293.731 171.848,293.934 171.306,293.9 C170.9,293.934 170.528,293.832 170.054,293.494 C164.775,289.839 158.481,288.621 152.558,286.523 C151.712,286.218 150.9,285.913 150.02,285.711 C149.005,285.474 149.073,284.797 149.208,284.086 C149.31,283.578 149.58,283.511 149.851,283.545 C150.122,283.477 150.494,283.68 150.731,283.748 C157.499,285.44 164.335,286.793 170.867,289.331 C171.103,289.433 171.306,289.467 171.476,289.501 C171.949,289.433 172.085,288.993 172.017,288.35 C171.882,286.827 171.746,285.338 169.987,284.526 C165.621,282.495 160.985,281.616 156.247,281.243 C155.536,281.176 154.86,281.142 154.149,281.108 C157.499,279.078 161.188,277.995 164.2,275.389 C164.572,275.084 164.91,274.78 165.249,274.441 L170.866,267.639 C171.103,267.267 171.306,266.895 171.543,266.523 C171.611,266.556 171.679,266.59 171.712,266.624 L171.814,266.523 C172.355,266.827 172.389,267.233 172.525,267.571 C173.946,271.057 175.333,274.577 176.755,278.062 C177.093,278.841 177.161,279.517 176.653,280.16 L176.653,280.16 Z M249.04,136.369 C249.141,136.471 249.209,136.606 249.243,136.708 C249.277,136.809 249.277,136.91 249.209,137.012 C249.175,137.08 249.107,137.147 249.006,137.215 C248.938,137.317 248.904,137.35 248.87,137.418 L248.837,137.452 C248.803,137.486 248.803,137.52 248.769,137.587 C248.769,137.621 248.735,137.655 248.735,137.655 L248.769,137.655 L248.769,137.756 C246.738,139.821 247.28,141.75 248.904,143.611 C249.006,143.78 249.107,143.949 249.107,144.119 C250.461,145.912 249.344,147.706 249.107,149.499 C249.074,149.669 249.04,149.736 248.904,149.804 C248.87,149.804 248.837,149.838 248.803,149.838 C248.667,149.838 248.532,149.804 248.397,149.77 C248.363,149.77 248.295,149.736 248.261,149.736 C247.077,149.398 245.892,149.026 244.708,148.653 C244.607,148.653 244.539,148.586 244.437,148.552 C244.336,148.552 244.268,148.45 244.167,148.45 C243.625,148.45 243.016,148.416 242.508,148.18 C240.986,147.537 239.598,147.74 238.38,148.89 C238.38,148.958 238.346,149.093 238.312,149.161 C238.887,150.007 239.835,150.21 240.681,150.481 C244.133,151.598 247.077,153.73 250.258,155.388 C251.003,155.794 251.138,156.674 251.07,157.52 C251.036,157.994 250.901,158.467 250.8,158.975 C250.461,160.43 250.123,161.885 249.784,163.34 C249.784,163.713 249.75,164.085 249.513,164.423 C249.547,166.792 247.889,168.552 247.111,170.583 C247.009,170.752 246.942,170.819 246.84,171.158 C246.332,172.511 245.689,174 245.013,175.354 C245.013,175.456 244.877,175.591 244.843,175.693 L244.843,175.625 C244.843,175.659 244.81,175.659 244.81,175.693 C244.81,175.726 244.776,175.76 244.742,175.828 C244.708,175.862 244.708,175.896 244.674,175.929 C244.505,176.572 244.404,177.249 243.862,177.791 C243.321,179.957 242.271,181.919 241.222,183.882 C241.121,184.051 241.053,184.051 240.986,184.39 C240.106,186.42 239.192,188.857 238.312,191.09 C238.109,191.902 237.94,192.715 237.737,193.493 C237.703,193.561 237.669,193.628 237.635,193.696 C237.635,193.73 237.601,193.73 237.601,193.764 C237.601,193.831 237.534,193.899 237.5,193.967 C237.466,195.016 237.398,195.828 236.992,196.674 C236.823,197.216 236.688,197.825 236.518,198.366 C236.518,198.434 236.485,198.535 236.451,198.637 C235.503,202.935 234.556,207.233 233.608,211.497 C232.83,215.016 232.525,218.603 231.95,222.123 C231.408,225.439 231.273,228.857 230.461,232.106 C229.886,234.475 228.532,236.674 227.449,238.874 C226.434,240.938 225.791,243.138 224.539,245.135 C224.505,245.202 224.471,245.27 224.437,245.338 C224.369,245.473 224.302,245.642 224.268,245.778 C224.234,245.845 224.234,245.947 224.2,246.015 C224.166,246.184 224.133,246.319 224.099,246.488 C224.065,246.658 224.065,246.827 224.065,246.996 C224.065,247.165 224.065,247.334 224.031,247.504 L224.031,248.011 C224.031,248.35 224.031,248.688 223.997,249.026 C223.727,252.648 223.253,256.269 223.422,259.923 C223.456,260.6 223.253,260.972 222.61,261.209 C222.339,261.311 222.068,261.412 221.797,261.514 C221.256,261.717 220.715,261.954 220.207,262.191 C219.936,262.292 219.632,262.428 219.361,262.529 C218.921,262.698 218.65,262.834 217.973,263.003 L217.973,262.935 C217.973,262.935 217.872,263.003 217.804,263.003 C217.195,263.274 216.552,263.544 215.943,263.781 C215.503,263.95 215.063,264.154 214.623,264.323 C213.709,264.966 212.694,265.338 211.645,265.609 C211.476,265.71 211.307,265.812 211.138,265.913 C209.005,266.861 206.772,267.842 204.741,268.79 C204.741,268.824 204.538,268.891 204.471,268.891 C203.32,269.23 202.136,269.907 200.985,270.448 C199.733,270.989 198.515,271.497 197.263,272.039 C195.3,272.918 193.337,273.731 191.374,274.61 C191.307,274.644 191.205,274.61 191.137,274.61 C189.344,275.287 187.482,276.269 185.79,277.047 C185.114,277.419 184.132,277.792 183.286,278.13 C181.73,278.739 181.391,278.671 181.053,277.081 C180.037,276.336 179.936,275.084 179.564,274.035 C179.191,273.02 178.887,271.903 178.548,270.888 C178.481,270.55 178.311,270.617 178.311,270.414 C177.973,269.94 177.973,269.5 177.804,269.027 C177.804,268.959 177.77,268.857 177.77,268.79 C177.669,268.722 177.669,268.621 177.635,268.519 C177.601,268.451 177.567,268.35 177.533,268.282 L177.601,268.282 C177.127,266.861 176.619,265.473 176.281,264.052 C175.943,263.104 175.333,262.191 175.164,261.209 C175.097,260.871 175.097,260.533 175.164,260.228 C175.198,260.059 175.232,259.923 175.266,259.754 C175.3,259.686 175.3,259.585 175.333,259.517 C175.604,258.841 176.044,258.198 176.383,257.555 C176.619,257.013 176.822,256.472 177.059,255.93 C177.296,255.389 177.499,254.983 177.736,254.306 C178.278,253.291 178.616,252.106 179.293,250.922 C179.293,250.651 179.496,250.38 179.564,250.109 C180.173,248.045 180.85,245.947 181.662,243.95 C181.662,243.883 181.594,243.781 181.628,243.713 C181.865,242.495 183.015,242.055 183.692,241.344 L183.692,241.378 C184.031,241.277 184.2,241.074 184.369,241.074 C184.572,240.735 184.775,240.6 184.978,240.397 C185.35,239.957 185.689,239.483 186.027,239.01 C186.197,238.773 186.366,238.536 186.501,238.299 C187.144,237.351 187.719,236.37 188.43,235.422 C188.667,235.118 188.87,234.644 189.242,234.644 C189.31,234.644 189.344,234.644 189.411,234.678 C189.953,234.813 189.784,235.456 189.716,235.862 C189.378,237.419 189.479,238.942 189.716,240.465 C189.885,241.649 190.088,242.833 190.19,244.018 C190.19,244.187 190.156,244.39 190.156,244.559 C190.494,245.439 190.63,246.319 190.664,247.233 C190.934,248.383 191.171,249.5 191.51,250.651 C192.525,252.749 193.269,254.881 193.946,257.047 L194.014,257.013 C195.165,258.705 196.315,260.668 197.466,262.529 C197.804,262.969 198.176,263.443 198.515,263.781 L198.582,263.781 L198.582,264.052 C198.921,264.052 199.09,264.797 199.598,264.12 C199.496,263.781 199.428,263.781 199.327,263.781 C199.158,263.443 198.988,263.037 198.887,262.664 C198.819,262.428 198.718,262.157 198.684,261.954 C198.616,261.717 198.549,261.48 198.515,261.243 C198.481,261.142 198.481,261.006 198.447,260.905 C198.413,260.668 198.379,260.431 198.312,260.228 C198.244,259.89 198.21,259.551 198.143,259.179 C198.075,258.841 198.041,258.468 197.973,258.13 C197.872,258.028 197.872,257.893 197.872,257.758 C197.838,257.622 197.804,257.487 197.736,257.351 C197.703,256.945 197.635,256.539 197.567,256.133 C197.466,255.321 197.364,254.509 197.263,253.697 C197.229,253.291 197.093,252.884 197.06,252.478 C196.586,248.045 196.89,243.612 197.567,239.213 L197.77,239.213 C198.176,237.182 198.582,234.847 198.988,232.647 C199.09,232.647 199.191,232.681 199.327,232.681 C199.191,236.37 199.564,240.025 200.376,243.612 C200.41,243.68 200.41,243.781 200.41,243.849 C200.917,245.236 201.459,246.624 201.899,248.045 C202,248.35 202.102,248.654 202.203,248.925 C202.305,249.196 202.44,249.5 202.609,249.737 C202.711,249.906 202.846,250.076 202.982,250.245 C203.083,250.414 203.286,250.583 203.286,250.752 C203.625,251.023 203.794,251.328 204.065,251.599 C204.268,251.835 204.437,252.106 204.64,252.343 C205.351,253.02 206.095,253.663 206.975,254.543 C206.874,253.832 206.806,253.223 206.738,252.58 C206.671,251.971 206.569,251.362 206.501,250.685 C206.501,250.685 206.332,250.583 206.332,250.516 C206.332,250.008 206.264,249.5 206.197,248.993 C205.994,247.436 205.824,245.879 205.621,244.356 C205.621,244.221 205.621,244.12 205.655,243.984 C205.655,243.849 205.689,243.612 205.689,243.612 C205.418,241.581 205.385,239.72 205.418,237.757 C205.418,237.69 205.385,237.588 205.385,237.52 C205.317,237.351 205.283,237.182 205.283,237.047 C205.012,235.456 205.148,233.866 205.351,232.309 C205.418,231.835 205.385,231.328 205.418,230.854 C205.418,230.752 205.385,230.685 205.385,230.583 C205.385,228.35 205.486,226.082 206.163,223.916 C206.163,223.849 206.197,223.679 206.197,223.679 C206.366,222.664 206.535,221.446 206.704,220.329 C206.874,219.212 207.043,218.062 207.178,216.945 C207.246,216.471 207.381,216.234 207.652,216.234 C207.787,216.234 207.99,216.302 208.227,216.471 C208.464,216.607 208.701,216.776 208.938,216.911 C209.276,217.114 209.648,217.351 209.987,217.588 C210.325,217.825 210.664,218.062 210.968,218.366 C211.002,218.4 211.036,218.434 211.104,218.468 C211.171,218.536 211.341,218.637 211.341,218.637 L211.408,218.637 L211.408,218.603 C213.777,219.788 215.097,221.784 216.687,223.646 C216.992,223.849 217.195,224.052 217.432,224.322 C217.804,224.729 218.041,225.236 218.244,225.778 C219.293,227.165 220.072,228.654 220.613,230.312 C220.647,230.448 220.715,230.617 220.749,230.752 C220.782,230.888 220.85,230.82 220.884,231.158 C221.155,231.497 221.324,231.937 221.493,232.343 C221.662,232.749 221.798,233.155 221.967,233.527 C222.068,233.73 222.136,233.899 222.238,234.103 C222.305,234.238 222.373,234.339 222.474,234.441 C222.61,234.61 222.779,234.712 223.05,234.779 C223.422,233.527 222.542,232.343 222.88,231.158 L222.982,231.158 C222.982,230.82 222.88,230.82 222.88,230.651 C222.542,228.451 222.271,226.285 221.358,224.255 C221.324,224.086 221.324,223.713 221.324,223.713 C220.512,221.683 220.105,219.618 218.921,217.825 C218.65,217.622 218.481,217.283 218.413,216.945 C218.041,216.607 217.838,216.201 217.635,215.795 C217.466,215.524 217.297,215.253 217.094,214.915 L217.094,215.151 C217.094,215.118 217.026,215.084 217.026,215.05 C217.026,215.05 217.026,215.05 217.026,215.016 C216.112,213.629 214.995,212.343 213.913,211.091 C213.879,211.057 213.811,210.989 213.777,210.955 C213.642,210.82 213.507,210.82 213.371,210.481 C212.559,210.143 211.781,209.128 210.968,208.417 C210.867,208.316 210.765,208.282 210.698,208.18 C210.63,208.112 210.698,208.045 210.359,207.943 C208.667,206.793 207.415,205.371 205.926,204.356 C205.655,204.018 205.317,204.221 205.182,203.679 C209.547,203.409 213.777,203.916 218.177,204.187 L218.177,204.018 L218.21,204.018 C220.376,204.356 222.407,204.762 224.37,205.608 C224.437,205.608 224.505,205.71 224.606,205.71 L224.606,205.777 C225.96,206.082 227.246,206.691 228.532,207.3 C228.803,207.436 229.141,207.876 229.446,207.469 C229.683,207.131 229.31,206.826 229.107,206.556 C228.6,205.845 228.126,205.134 227.584,204.424 C227.483,204.255 227.314,204.085 227.314,203.916 C226.298,202.935 225.52,201.818 224.64,200.837 C224.37,200.566 224.065,200.261 223.794,199.923 C222.779,199.246 221.73,198.468 220.85,197.52 C220.681,197.419 220.512,197.216 220.342,197.216 C219.902,197.216 219.429,196.742 218.989,196.437 C218.549,196.133 218.075,195.862 217.635,195.557 C217.466,195.456 217.297,195.388 217.128,195.287 C215.063,194.508 212.999,193.798 210.934,193.019 C210.867,193.019 210.732,192.985 210.732,192.952 C210.732,192.951 210.562,192.952 210.495,192.918 C210.055,192.884 209.716,192.749 209.479,192.512 C209.31,192.376 209.175,192.207 209.107,192.004 C209.073,191.97 209.073,191.903 209.039,191.835 C208.938,191.564 208.904,191.26 208.938,190.955 C209.006,189.906 208.938,188.857 208.769,187.842 C208.735,187.537 208.667,187.266 208.6,186.962 C208.532,186.657 208.464,186.386 208.396,186.116 C208.329,185.845 208.261,185.54 208.193,185.236 C208.092,184.83 207.956,184.322 207.855,183.984 C207.855,183.984 207.72,183.95 207.72,183.848 C207.381,181.784 206.569,179.72 205.96,177.689 C205.858,177.419 205.824,177.215 205.723,176.877 C205.182,175.862 204.945,175.286 204.911,174.508 C204.911,174.237 204.911,174 204.945,173.73 C204.945,173.594 204.978,173.459 204.978,173.358 C205.046,172.985 205.114,172.579 205.249,172.207 C205.385,171.699 205.554,171.192 205.723,170.684 C205.723,170.616 205.723,170.447 205.757,170.447 L205.723,170.447 C206.163,168.044 207.111,166.014 207.787,163.848 C207.787,163.814 207.855,163.814 207.855,163.78 C207.889,163.747 207.956,163.679 207.99,163.645 C208.024,163.611 208.058,163.611 208.058,163.577 C208.701,162.697 208.87,161.818 208.802,160.972 C208.769,160.498 208.633,159.99 208.43,159.516 C208.193,158.907 207.889,158.332 207.584,157.723 C207.55,157.655 207.449,157.588 207.381,157.554 C207.347,157.52 207.314,157.486 207.314,157.452 C205.994,156.065 205.148,154.237 204.369,152.444 C204.302,152.274 204.2,152.071 204.133,151.902 C204.065,151.834 204.065,151.767 204.031,151.665 C204.031,151.631 203.997,151.598 203.997,151.564 C203.963,151.496 203.929,151.428 203.896,151.327 C203.896,151.327 203.896,151.327 203.929,151.361 C203.929,151.327 203.929,151.327 203.896,151.293 C203.929,151.09 203.997,150.887 204.065,150.684 C204.133,150.549 204.2,150.447 204.268,150.312 C204.336,150.21 204.437,150.109 204.539,150.007 C204.572,149.973 204.64,149.939 204.674,149.906 C205.588,148.586 206.434,147.198 207.449,145.912 C208.295,144.795 208.566,143.747 208.16,142.359 C207.584,140.43 207.652,140.396 209.581,139.685 C209.919,139.55 214.014,137.993 215.672,137.486 C215.943,137.384 216.62,137.114 216.721,137.08 C216.823,137.046 216.891,137.012 216.992,136.978 C217.263,136.877 217.534,136.775 217.77,136.674 C219.902,135.861 222.035,135.083 224.167,134.305 C224.234,134.271 224.336,134.271 224.403,134.271 C226.4,133.256 228.532,132.613 230.63,131.902 C230.901,131.8 231.138,131.699 231.476,131.631 C231.815,131.361 232.83,131.124 233.168,130.853 C234.86,130.311 236.214,129.533 237.737,129.195 C239.97,127.503 241.798,128.213 243.321,130.311 C243.524,130.447 243.727,130.582 243.93,130.751 C244.234,131.022 244.336,131.327 244.674,131.665 C246.062,133.256 247.585,134.812 249.04,136.369 L249.04,136.369 Z M201.459,138.23 C201.256,138.298 201.087,138.332 200.917,138.366 C200.41,138.433 200.139,138.196 199.801,137.587 C196.721,132.037 193.608,126.521 190.461,121.005 C190.055,120.294 189.919,119.922 190.934,119.651 C210.934,113.797 230.901,107.942 250.901,102.088 C251.104,102.02 251.341,101.986 251.747,101.885 L251.747,101.953 C251.756,101.948 251.769,101.947 251.779,101.944 C251.475,105.555 251.171,108.966 250.901,112.376 C250.698,114.88 250.495,117.418 250.292,119.922 C250.224,120.836 249.954,121.411 248.972,121.75 C233.134,127.198 217.297,132.68 201.459,138.23 Z M103.015,214.238 C108.632,214.711 114.182,215.828 119.766,216.607 C120.511,216.708 121.255,216.742 121.966,217.114 C123.658,217.994 124.504,219.551 125.147,221.209 C126.128,223.747 126.433,226.454 126.602,229.162 C126.738,231.294 126.298,233.087 124.572,234.509 C123.286,235.558 122.237,236.776 121.763,238.434 C123.929,238.434 125.79,238.806 127.211,240.634 C128.091,241.784 129.242,242.732 130.359,243.713 C132.964,246.049 136.788,245.507 138.616,242.563 C139.428,241.243 140.206,239.889 141.086,238.603 C142.304,236.81 143.489,234.881 145.655,234.102 C146.975,233.663 146.399,233.02 145.959,232.478 C145.079,231.361 143.455,231.327 142,232.207 C139.766,233.561 138.243,235.558 136.619,237.487 C136.145,238.062 135.672,238.637 135.029,239.111 C134.216,239.686 133.506,239.72 132.795,238.976 C131.983,238.163 131.171,237.317 130.291,236.607 C129.546,235.998 129.411,235.456 129.851,234.576 C130.798,232.749 131.204,230.786 131.001,228.756 C130.595,224.356 129.885,220.025 126.771,216.539 C126.433,216.167 126.433,215.964 126.907,215.625 C130.359,213.222 132.186,209.906 132.66,205.743 C132.761,204.695 132.558,203.848 131.712,203.544 C130.866,203.273 130.325,204.119 129.952,204.796 C129.106,206.251 128.023,207.571 127.042,208.925 C125.519,210.989 123.387,211.429 121.154,211.09 C113.1,209.838 105.045,209.026 96.923,208.552 C96.517,208.519 96.111,208.417 95.773,208.688 C93.201,210.583 90.595,212.41 88.971,215.287 C89.072,215.321 89.174,215.388 89.241,215.388 C89.512,215.354 89.749,215.287 90.02,215.253 C94.216,214.204 98.582,213.865 103.015,214.238 Z M178.244,217.385 C176.247,218.366 174.284,219.416 172.389,220.532 C171.882,220.837 171.408,221.107 170.799,221.209 C167.449,221.818 164.064,222.258 160.613,222.258 C158.616,222.258 156.992,221.412 155.435,220.431 C154.487,219.821 153.54,218.942 153.371,217.588 C153.878,217.419 154.352,217.622 154.826,217.689 C156.619,217.926 158.379,218.569 160.206,218.468 C164.606,218.197 168.734,216.877 172.863,215.456 C174.217,214.982 175.537,214.475 176.856,214.001 C177.465,213.798 177.635,213.595 177.093,213.019 C176.45,212.309 175.74,212.444 175.029,212.546 C166.196,213.899 157.432,213.493 148.667,211.903 C146.128,211.429 143.421,211.26 142.44,208.112 C142.169,207.266 141.898,206.42 141.729,205.541 C141.56,204.559 140.985,203.848 140.409,203.138 C140.071,202.698 139.631,202.495 139.123,202.596 C138.582,202.732 138.616,203.307 138.616,203.713 C138.65,205.134 138.717,206.556 138.887,207.977 C139.056,209.534 139.563,211.057 140.477,212.309 C142.237,214.779 144.673,216.302 147.651,217.013 C149.851,217.52 149.851,217.554 150.054,219.821 C150.156,220.803 150.291,221.683 151.205,222.224 C152.795,223.172 154.386,224.153 156.315,224.288 C157.499,224.39 158.717,224.458 159.733,225.236 C161.053,226.251 162.643,226.488 164.234,226.624 C165.418,226.725 166.636,226.759 167.821,226.962 C168.768,227.131 169.411,226.827 170.088,226.251 C173.438,223.476 176.755,220.667 179.902,217.554 C179.53,217.148 178.988,217.013 178.244,217.385 Z M150.46,244.729 C150.189,244.255 149.851,244.153 149.377,244.424 C146.704,245.913 143.692,245.981 140.748,246.353 C139.496,246.522 137.939,246.15 137.025,247.064 C134.792,249.263 132.897,248.35 130.934,246.793 C130.832,246.725 130.731,246.624 130.595,246.59 C127.685,245.033 124.775,244.458 121.797,246.522 C120.68,247.301 119.36,247.774 118.04,247.47 C116.991,247.199 116.179,247.267 115.367,248.011 C114.961,248.383 114.419,248.688 113.946,248.993 C112.626,249.873 112.626,250.008 113.844,250.989 C114.115,251.226 114.453,251.328 114.791,251.429 C117.6,252.275 120.24,251.666 122.71,250.312 C125.282,248.925 127.685,248.993 130.02,250.752 C132.152,252.343 134.419,252.377 136.788,251.395 C139.766,250.143 142.778,248.925 145.993,248.384 C146.467,248.316 146.941,248.147 147.381,248.519 C148.734,249.771 150.02,248.891 151.306,248.384 C151.814,248.18 151.882,247.774 151.848,247.267 C151.746,246.184 150.934,245.575 150.46,244.729 Z M138.176,253.561 C134.826,253.663 131.408,254.204 128.26,255.287 C125.655,256.167 122.744,256.776 121.391,259.788 C120.612,261.548 120.714,263.409 120.172,265.169 C120.409,266.556 120.409,267.944 121.221,269.128 C121.458,269.467 121.56,270.008 122.135,269.974 C122.744,269.94 122.947,269.433 123.117,269.027 C123.726,267.741 123.861,266.286 124.267,264.932 C124.91,262.732 125.925,260.972 128.226,259.991 C130.629,258.976 133.066,258.028 135.502,257.081 C135.976,256.912 136.45,256.81 136.924,256.912 C139.936,257.351 143.083,257.216 145.756,258.976 C145.993,259.145 146.298,259.213 146.636,259.145 C147.651,258.908 147.753,258.57 147.144,257.758 C144.944,254.712 141.729,253.46 138.176,253.561 Z M114.622,222.833 C116.653,222.63 118.683,222.36 120.68,222.089 C121.221,222.021 122.067,222.224 122.203,221.581 C122.338,220.904 121.56,220.498 121.086,220.058 C120.849,219.821 120.443,219.788 120.105,219.686 C118.074,218.942 116.01,219.111 113.946,219.483 C109.783,220.261 105.587,220.498 101.424,219.483 C100.308,219.212 99.123,219.212 97.769,219.043 C96.213,219.416 94.453,219.788 92.795,220.532 C91.644,221.074 91.576,221.717 92.592,222.495 C93.201,222.969 93.81,223.206 94.554,222.935 C97.16,221.987 99.394,222.495 101.526,224.289 C103.658,226.082 106.162,226.455 108.903,225.507 C110.392,224.999 111.678,224.153 113.032,223.409 C113.539,223.138 114.047,222.901 114.622,222.833 Z M78.412,226.624 C78.514,224.729 78.141,223.104 76.619,222.123 C75.502,221.412 75.062,220.431 74.656,219.28 C74.114,217.791 73.979,216.133 72.761,214.948 C72.422,214.61 72.185,213.865 71.576,214.102 C70.866,214.373 70.189,214.779 69.986,215.727 C69.309,218.874 70.764,221.886 73.911,223.51 C75.333,224.255 76.416,225.304 77.092,226.759 C77.329,227.267 77.363,228.248 78.108,228.079 C78.852,227.91 78.243,226.996 78.412,226.624 Z" fill="#1A1A1A"></path> + <path d="M14.858,153.527 C14.858,153.459 14.824,153.391 14.791,153.323 C14.723,153.493 14.621,153.696 14.554,153.899 C14.452,154.237 14.418,154.609 14.554,155.117 C14.791,154.44 14.96,153.966 14.858,153.527" fill="#2E2E2E"></path> + <path d="M198.379,223.443 C199.564,221.852 200.342,219.991 201.087,218.163 C201.188,217.893 201.29,217.656 201.425,217.385 C201.899,216.302 202.373,215.185 202.44,213.967 L202.44,213.899 C202.474,213.527 202.576,213.019 202.203,212.884 C201.561,212.681 200.884,212.58 200.241,212.58 C199.97,212.58 199.699,212.613 199.462,212.647 C199.327,212.681 199.192,212.681 199.09,212.715 C198.988,212.749 198.955,212.783 198.887,212.816 C198.853,212.85 198.853,212.85 198.819,212.884 C198.616,213.189 199.09,213.73 198.955,214.136 C198.853,214.508 198.921,214.948 198.819,215.321 C198.684,215.727 198.549,216.099 198.379,216.505 C198.143,217.08 197.872,217.622 197.601,218.163 C196.518,220.126 195.097,221.852 193.472,223.476 C192.829,222.089 192.999,220.904 193.439,219.788 C193.472,219.652 193.54,219.551 193.608,219.416 C193.946,218.671 194.386,217.96 194.792,217.25 C194.928,217.013 195.131,216.81 195.266,216.573 C195.3,216.539 195.3,216.471 195.334,216.438 C195.368,216.336 195.401,216.234 195.368,216.099 C195.334,215.287 194.319,213.933 193.269,212.986 C192.965,212.715 192.626,212.444 192.322,212.275 C192.017,212.106 191.713,211.97 191.476,211.937 C191.036,211.869 190.63,211.835 190.19,211.801 C189.005,211.7 187.787,211.598 186.67,211.26 C186.569,211.226 186.467,211.192 186.366,211.158 C184.538,210.583 182.779,209.94 181.019,209.195 C180.444,208.958 179.868,208.688 179.293,208.417 C176.992,207.368 174.792,206.116 172.694,204.661 C171.137,203.578 169.581,202.529 168.058,201.446 C167.042,200.735 165.993,200.024 164.978,199.28 C163.455,198.197 161.932,197.046 160.477,195.862 C160.376,195.794 160.274,195.693 160.173,195.625 C159.97,195.456 159.733,195.32 159.53,195.151 C159.293,194.982 159.09,194.847 158.887,194.677 C158.582,194.441 158.277,194.17 158.041,193.831 C157.905,193.628 157.77,193.459 157.635,193.29 C157.499,193.121 157.364,192.918 157.228,192.749 C155.232,190.244 152.897,187.943 151.949,184.66 C150.799,187.266 149.513,189.534 148.024,191.463 C147.381,192.275 146.738,193.053 146.061,193.764 C143.083,196.843 139.597,198.84 135.773,199.923 C133.1,200.701 130.291,201.04 127.347,201.04 C128.159,200.363 128.937,199.72 129.682,199.111 C129.919,198.908 130.156,198.705 130.392,198.468 C132.727,196.37 135.435,194.644 137.398,192.139 C137.499,192.072 137.601,192.004 137.702,191.936 C137.837,191.835 137.939,191.7 137.973,191.463 L137.973,191.293 C137.939,191.293 137.871,191.327 137.837,191.327 C137.533,191.429 137.262,191.53 137.059,191.801 C135.096,192.952 133.066,194.001 131.035,195.084 C130.731,195.253 130.46,195.388 130.156,195.557 C129.648,195.828 129.14,196.099 128.599,196.336 C127.719,196.776 126.873,197.148 125.993,197.52 C121.763,199.28 117.33,200.397 112.727,200.904 C110.189,201.209 107.651,201.446 105.113,201.683 C102.575,201.92 100.037,202.123 97.499,202.292 C95.807,202.393 94.115,202.495 92.423,202.563 C92.186,202.563 91.915,202.596 91.678,202.596 C91.17,202.596 90.663,202.63 90.189,202.63 C89.681,202.63 89.174,202.664 88.7,202.698 C88.192,202.732 87.719,202.799 87.211,202.901 C86.974,202.935 86.737,203.002 86.466,203.07 C82.27,204.153 78.209,205.574 74.385,207.503 C73.336,208.045 72.321,208.62 71.305,209.229 C70.629,209.635 69.986,210.075 69.343,210.549 C69.004,210.786 68.666,211.023 68.395,211.26 C67.583,211.903 66.974,212.512 66.602,213.256 C66.534,213.392 66.466,213.527 66.432,213.662 C66.399,213.73 66.399,213.798 66.365,213.865 C66.331,214.001 66.297,214.17 66.263,214.305 C66.229,214.542 66.229,214.779 66.229,215.016 C66.263,215.761 66.466,216.674 66.906,217.723 C68.632,221.953 70.798,225.947 73.37,229.771 C73.742,230.346 74.182,230.82 74.622,231.226 L76.483,232.41 C77.566,232.884 78.785,233.087 80.037,233.087 C81.762,233.087 82.676,233.595 83.285,235.185 C85.045,239.686 88.158,243.07 92.016,245.642 C92.287,245.812 92.558,246.015 92.862,246.184 C93.167,246.353 93.438,246.522 93.709,246.692 C94.893,247.368 96.01,248.113 97.126,248.891 C97.499,249.162 97.837,249.399 98.209,249.669 C99.631,250.752 100.984,251.903 102.27,253.155 C102.575,253.46 102.913,253.764 103.218,254.103 C104.47,255.355 105.688,256.675 106.873,257.994 C107.177,258.333 107.448,258.671 107.753,258.976 C108.328,259.653 108.937,260.296 109.512,260.972 C110.934,262.597 112.287,264.323 113.404,266.15 C113.573,266.387 113.709,266.658 113.844,266.895 C114.352,267.774 114.791,268.688 115.13,269.636 C115.807,271.362 117.025,272.546 118.413,273.561 C119.123,274.103 119.902,274.577 120.68,275.05 C121.289,275.389 121.864,275.727 122.507,276.066 C123.387,276.506 124.199,277.047 125.079,277.487 C125.722,277.825 126.399,278.13 127.11,278.333 C127.245,278.367 127.381,278.401 127.516,278.435 C127.617,278.468 127.719,278.468 127.82,278.502 C130.528,278.874 133.269,279.078 136.044,278.739 C136.856,278.638 137.702,278.536 138.514,278.401 C139.293,278.299 140.037,278.164 140.816,278.029 C140.917,278.029 140.985,277.995 141.086,277.995 C141.865,277.859 142.609,277.724 143.387,277.555 C145.35,277.149 147.245,276.675 149.14,276.099 C149.749,275.93 150.359,275.727 150.968,275.524 C151.137,275.456 151.34,275.389 151.509,275.355 C152.085,275.152 152.66,274.949 153.235,274.712 C153.438,274.644 153.641,274.543 153.844,274.475 C154.081,274.374 154.352,274.272 154.589,274.17 C154.893,274.035 155.198,273.9 155.503,273.764 C156.315,273.392 157.127,272.986 157.905,272.58 C158.887,272.039 159.868,271.463 160.85,270.854 C161.357,270.516 161.831,270.177 162.305,269.839 C163.591,268.891 164.775,267.876 165.858,266.725 C166.366,266.184 166.839,265.609 167.313,265.033 C169.581,262.157 171.408,259.01 173.032,255.795 C173.337,255.219 173.608,254.61 173.912,254.035 C174.352,253.155 174.758,252.241 175.164,251.328 C175.266,251.091 175.367,250.82 175.469,250.583 C176.01,249.094 176.281,247.504 176.653,245.778 C176.146,245.981 175.672,246.15 175.198,246.353 C174.488,246.658 173.811,246.962 173.134,247.199 C172.457,247.436 171.78,247.605 171.036,247.673 C170.833,247.707 170.63,247.707 170.46,247.707 C169.682,247.707 169.073,247.47 168.802,246.59 C168.531,245.812 168.938,245.507 169.445,245.304 C169.581,245.236 169.716,245.202 169.885,245.169 C169.987,245.135 170.088,245.101 170.156,245.067 C170.325,244.999 170.494,244.932 170.63,244.864 C170.799,244.796 170.968,244.729 171.137,244.661 C173.438,243.781 175.74,242.935 177.736,241.514 C178.988,240.634 180.173,239.686 181.256,238.637 C181.696,238.231 182.136,237.825 182.542,237.385 C184.403,235.422 185.96,233.223 187.009,230.617 C187.043,230.549 187.076,230.481 187.11,230.38 C187.347,229.838 187.686,229.365 187.923,228.823 C188.159,228.282 188.532,228.011 189.141,228.011 C189.682,228.011 190.224,227.876 190.765,227.842 L191.002,227.842 L191.645,227.842 C194.725,227.842 196.654,225.778 198.379,223.443 L198.379,223.443 Z M78.108,228.079 C77.363,228.248 77.329,227.267 77.092,226.759 C76.416,225.27 75.367,224.255 73.911,223.51 C70.73,221.886 69.275,218.874 69.986,215.727 C70.189,214.779 70.866,214.407 71.576,214.102 C72.219,213.865 72.422,214.61 72.761,214.948 C73.979,216.133 74.114,217.791 74.656,219.28 C75.062,220.431 75.502,221.412 76.619,222.123 C78.141,223.104 78.514,224.729 78.412,226.624 C78.243,226.996 78.852,227.91 78.108,228.079 L78.108,228.079 Z M89.14,215.321 C89.072,215.321 89.005,215.253 88.869,215.219 C90.493,212.343 93.099,210.515 95.671,208.62 C96.044,208.349 96.45,208.485 96.822,208.485 C104.944,208.992 112.998,209.805 121.052,211.023 C123.286,211.361 125.418,210.921 126.94,208.857 C127.956,207.503 129.005,206.183 129.851,204.728 C130.257,204.051 130.798,203.172 131.611,203.476 C132.49,203.781 132.694,204.627 132.558,205.676 C132.084,209.838 130.257,213.155 126.805,215.558 C126.331,215.896 126.331,216.099 126.67,216.471 C129.783,219.957 130.494,224.289 130.9,228.688 C131.069,230.718 130.663,232.681 129.749,234.509 C129.309,235.388 129.445,235.93 130.189,236.539 C131.069,237.284 131.881,238.096 132.693,238.908 C133.438,239.653 134.149,239.619 134.927,239.043 C135.536,238.604 136.01,237.994 136.518,237.419 C138.142,235.49 139.665,233.46 141.898,232.14 C143.354,231.26 144.978,231.294 145.858,232.411 C146.298,232.952 146.873,233.595 145.553,234.035 C143.354,234.779 142.203,236.742 140.985,238.536 C140.105,239.822 139.326,241.175 138.514,242.495 C136.687,245.439 132.863,245.981 130.257,243.646 C129.174,242.664 127.99,241.717 127.11,240.566 C125.722,238.739 123.827,238.367 121.661,238.367 C122.169,236.708 123.218,235.49 124.47,234.441 C126.196,233.054 126.636,231.226 126.501,229.094 C126.331,226.387 125.993,223.679 125.045,221.141 C124.402,219.483 123.59,217.926 121.864,217.047 C121.154,216.674 120.409,216.64 119.665,216.539 C114.081,215.761 108.565,214.644 102.913,214.17 C98.48,213.798 94.148,214.136 89.817,215.118 C89.647,215.253 89.411,215.287 89.14,215.321 L89.14,215.321 Z M108.903,225.507 C106.196,226.421 103.692,226.048 101.526,224.289 C99.394,222.495 97.126,221.987 94.554,222.935 C93.81,223.206 93.201,222.969 92.592,222.495 C91.576,221.683 91.644,221.04 92.795,220.532 C94.453,219.788 96.246,219.416 97.769,219.043 C99.157,219.212 100.308,219.212 101.424,219.483 C105.621,220.465 109.783,220.261 113.946,219.483 C116.01,219.111 118.074,218.908 120.105,219.686 C120.443,219.822 120.849,219.855 121.086,220.058 C121.56,220.498 122.338,220.904 122.203,221.581 C122.067,222.224 121.221,222.021 120.68,222.089 C118.649,222.36 116.653,222.63 114.622,222.833 C114.013,222.901 113.539,223.138 113.032,223.409 C111.678,224.153 110.392,224.999 108.903,225.507 L108.903,225.507 Z M146.67,259.145 C146.332,259.213 146.027,259.145 145.79,258.976 C143.083,257.182 139.969,257.351 136.958,256.912 C136.45,256.844 135.976,256.912 135.536,257.081 C133.1,258.028 130.663,258.942 128.26,259.991 C125.959,260.972 124.91,262.732 124.301,264.932 C123.895,266.286 123.759,267.707 123.15,269.027 C122.947,269.467 122.778,269.94 122.169,269.974 C121.594,270.008 121.492,269.467 121.255,269.128 C120.409,267.944 120.443,266.523 120.206,265.169 C120.748,263.409 120.646,261.548 121.424,259.788 C122.778,256.776 125.688,256.167 128.294,255.287 C131.475,254.204 134.859,253.663 138.21,253.561 C141.763,253.46 144.978,254.712 147.211,257.758 C147.787,258.57 147.685,258.908 146.67,259.145 L146.67,259.145 Z M151.272,248.35 C149.986,248.891 148.701,249.737 147.347,248.485 C146.941,248.113 146.467,248.248 145.959,248.35 C142.744,248.891 139.732,250.109 136.755,251.362 C134.419,252.343 132.118,252.309 129.986,250.719 C127.651,248.959 125.248,248.857 122.677,250.279 C120.206,251.632 117.566,252.242 114.758,251.395 C114.419,251.294 114.081,251.192 113.81,250.955 C112.592,249.94 112.592,249.805 113.912,248.959 C114.385,248.654 114.893,248.35 115.333,247.977 C116.145,247.233 116.924,247.199 118.007,247.436 C119.326,247.741 120.646,247.267 121.763,246.488 C124.741,244.424 127.651,244.999 130.562,246.556 C130.663,246.624 130.798,246.692 130.9,246.759 C132.863,248.35 134.724,249.23 136.991,247.03 C137.905,246.15 139.462,246.488 140.714,246.319 C143.658,245.913 146.67,245.879 149.344,244.39 C149.817,244.12 150.189,244.221 150.426,244.695 C150.9,245.541 151.712,246.184 151.78,247.233 C151.848,247.741 151.78,248.147 151.272,248.35 L151.272,248.35 Z M170.122,226.184 C169.411,226.759 168.768,227.064 167.855,226.894 C166.67,226.691 165.486,226.657 164.267,226.556 C162.677,226.421 161.086,226.15 159.766,225.169 C158.751,224.424 157.533,224.322 156.349,224.221 C154.386,224.086 152.829,223.07 151.239,222.157 C150.325,221.615 150.156,220.735 150.088,219.754 C149.885,217.487 149.851,217.453 147.685,216.945 C144.707,216.234 142.271,214.712 140.511,212.241 C139.597,210.989 139.089,209.466 138.92,207.909 C138.751,206.488 138.683,205.067 138.65,203.645 C138.65,203.239 138.616,202.664 139.157,202.529 C139.665,202.393 140.105,202.63 140.443,203.07 C141.018,203.815 141.594,204.525 141.763,205.473 C141.932,206.353 142.203,207.199 142.474,208.045 C143.455,211.192 146.196,211.361 148.701,211.835 C157.432,213.426 166.23,213.832 175.063,212.478 C175.807,212.376 176.518,212.241 177.127,212.952 C177.635,213.527 177.499,213.696 176.89,213.933 C175.537,214.407 174.217,214.915 172.897,215.388 C168.768,216.81 164.64,218.13 160.24,218.4 C158.413,218.502 156.653,217.859 154.86,217.622 C154.386,217.554 153.946,217.385 153.404,217.52 C153.607,218.874 154.521,219.754 155.469,220.363 C157.025,221.344 158.616,222.19 160.646,222.19 C164.098,222.19 167.449,221.784 170.833,221.141 C171.408,221.04 171.915,220.769 172.423,220.465 C174.318,219.314 176.281,218.299 178.278,217.317 C179.056,216.945 179.564,217.047 179.97,217.419 C176.822,220.6 173.506,223.443 170.122,226.184 Z M62.541,42.02 C59.901,43.238 58.006,45.573 55.502,46.96 C54.825,47.333 55.163,47.705 55.502,48.111 C58.04,51.021 60.578,53.932 63.116,56.842 C63.319,57.079 63.454,57.384 63.556,57.553 C63.962,57.384 64.097,57.35 64.199,57.282 C65.417,56.538 66.602,55.793 67.82,55.049 C68.226,54.812 68.192,54.507 68.057,54.135 C66.635,50.243 65.485,46.216 63.827,42.392 C63.454,41.681 63.184,41.715 62.541,42.02 Z M51.813,43.881 C52.084,44.219 52.354,44.49 52.828,44.219 C55.129,42.967 57.634,42.155 59.732,40.531 C64.943,36.402 70.02,32.104 74.893,27.536 C75.671,26.825 76.212,26.114 76.043,25.268 C76.043,24.422 76.28,23.745 75.603,23.373 C74.994,23.035 74.656,23.644 74.216,23.881 C73.708,24.118 73.234,24.49 72.727,24.761 C67.854,27.299 63.217,30.243 58.074,32.273 C54.52,33.661 51.035,35.15 47.414,36.436 C47.007,36.571 46.161,36.571 46.838,37.417 C48.463,39.549 50.155,41.715 51.813,43.881 Z M52.253,63.881 C48.158,61.174 44.097,58.771 40.409,55.658 C40.07,57.045 39.799,58.162 39.562,59.279 C39.461,59.752 39.224,59.989 38.784,60.057 C37.803,60.226 37.397,59.346 36.889,58.805 C36.415,58.365 35.975,57.654 36.246,57.011 C37.092,55.184 37.6,53.187 38.31,51.326 C39.055,49.465 39.123,49.397 40.713,50.615 C40.848,50.717 40.984,50.818 41.119,50.954 C44.673,54.642 48.666,57.722 53.302,60.057 C55.637,61.242 57.498,61.512 59.529,59.786 C59.664,59.685 59.833,59.617 59.969,59.516 C60.273,59.346 60.409,59.076 60.239,58.737 C59.799,57.823 59.664,56.741 58.852,56.03 C56.382,53.932 54.08,51.664 51.779,49.397 C48.496,46.148 45.112,42.967 42.676,39.008 C41.931,37.823 41.119,36.74 40.138,35.793 C38.649,34.372 36.381,34.642 35.434,36.47 C33.539,39.989 31.035,43.103 29.072,46.588 C26.94,50.412 24.232,53.898 22.303,57.891 C21.931,58.669 21.931,59.346 22.27,60.159 C23.217,62.46 24.435,64.626 24.977,67.096 C25.112,67.638 25.214,68.111 24.503,68.382 C23.86,68.619 23.623,68.247 23.353,67.807 C21.965,65.472 20.51,63.204 19.224,60.801 C14.892,52.916 11.271,44.625 5.958,37.282 C5.687,36.943 5.654,36.064 4.909,36.436 C4.368,36.707 3.792,37.146 3.961,38.026 C4.503,40.903 4.807,43.847 5.552,46.656 C8.767,58.805 12.794,70.683 16.686,82.629 C17.024,83.678 17.363,83.543 18.141,83.103 C28.192,77.418 38.243,71.766 48.293,66.115 C49.579,65.438 50.832,64.693 52.253,63.881 Z M27.176,106.555 C24.74,109.905 23.759,113.831 22.98,117.79 C22.439,118.738 22.507,119.347 23.759,119.482 C24.537,119.584 25.315,119.821 26.094,119.99 C32.32,121.682 38.581,123.239 44.842,124.694 C45.349,124.964 45.857,125.134 46.432,124.998 C46.703,124.897 46.669,124.694 46.669,124.457 C46.669,124.355 46.669,124.254 46.703,124.186 C47.989,119.888 49.275,115.591 50.561,111.293 C50.764,110.683 50.832,109.973 51.407,109.533 C53.234,108.179 53.945,106.352 54.08,104.152 C54.114,103.306 54.419,102.494 54.486,101.648 C54.588,100.565 54.994,99.888 56.009,99.414 C60.646,97.249 64.673,94.27 68.057,90.413 C68.869,89.499 69.647,88.619 70.121,87.502 C72.524,81.986 75.705,76.944 78.92,71.868 C82.473,66.25 86.466,61.005 91.34,56.47 C92.592,55.319 93.201,53.932 93.607,52.375 C93.945,51.055 93.302,49.938 92.49,49.295 C91.61,48.619 90.392,48.314 89.174,49.194 C84.064,53.052 78.209,55.488 72.422,58.128 C69.884,59.313 66.839,60.328 65.519,63.34 C65.451,63.475 65.248,63.543 65.079,63.644 C63.217,64.829 61.153,65.472 59.021,65.945 C58.412,66.081 57.803,65.844 57.16,66.25 C45.045,73.83 32.896,81.377 20.747,88.89 C20.036,89.33 19.901,89.668 20.273,90.446 C22.507,95.117 24.537,99.922 27.278,104.355 C27.684,105.201 27.718,105.81 27.176,106.555 Z M46.635,124.491 C46.601,124.558 46.568,124.626 46.568,124.694 C46.568,124.592 46.601,124.525 46.635,124.491 Z M207.415,109.194 C214.183,107.096 220.985,105.066 227.821,103.069 C228.904,102.765 229.073,102.359 228.667,101.343 C225.723,93.594 222.745,85.844 219.226,78.297 C218.752,77.316 218.616,76.368 219.056,75.353 C220.681,71.766 221.256,68.044 220.782,64.118 C220.545,62.155 220.918,60.159 220.681,58.162 C220.072,52.781 218.38,47.705 217.127,42.46 C215.74,36.571 212.694,31.36 210.325,25.877 C208.701,22.121 206.197,18.737 204.166,15.15 C202.982,13.052 201.594,11.089 200.478,8.991 C199.428,6.994 198.176,5.268 196.078,4.32 C195.537,4.084 194.792,3.576 194.352,4.117 C193.811,4.828 193.269,5.708 193.675,6.689 C194.42,8.483 195.232,10.277 195.977,12.07 C198.075,17.045 200.579,21.884 201.865,27.197 C202.373,29.261 202.914,31.326 203.049,33.458 C203.117,34.236 202.982,35.116 202.237,35.387 C201.493,35.657 201.324,34.778 200.917,34.338 C199.395,32.679 197.398,31.021 195.029,32.003 C194.352,32.307 193.54,32.341 192.796,32.206 C192.288,32.104 191.645,31.969 191.51,31.393 C191.34,30.784 191.916,30.48 192.356,30.175 C192.762,29.904 193.236,29.701 193.574,29.397 C194.081,28.923 194.454,28.28 193.912,27.637 C192.626,26.047 191.51,24.253 189.919,23.001 C186.637,20.429 183.32,17.891 179.834,15.657 C179.327,15.353 178.819,15.014 178.311,14.71 C172.085,10.953 165.655,7.535 159.124,4.32 C158.244,3.881 157.33,3.542 156.315,3.61 C155.638,3.677 154.927,3.644 154.623,4.388 C154.284,5.166 154.453,5.911 154.961,6.52 C155.672,7.332 156.382,8.178 157.398,8.754 C160.206,10.344 163.218,11.664 165.79,13.661 C170.866,17.552 175.909,21.478 180.816,25.573 C182.372,26.859 183.794,28.28 185.215,29.769 C186.061,30.649 186.907,31.529 187.753,32.409 C188.024,32.679 188.295,33.052 188.362,33.424 C188.362,33.458 188.396,33.525 188.396,33.559 L188.396,33.864 C188.362,34.101 188.227,34.372 187.956,34.642 C187.144,35.454 186.332,35.015 185.553,34.575 C185.215,34.372 184.978,34.033 184.708,33.729 C184.572,33.593 184.437,33.458 184.301,33.322 C183.625,32.646 183.016,31.969 182.305,31.326 C182.034,31.089 181.73,30.818 181.425,30.615 C177.635,27.772 173.844,24.964 170.054,22.121 C166.264,19.278 162.474,16.436 158.717,13.593 C156.585,11.969 154.318,10.615 151.915,9.464 C151.069,9.058 150.562,9.16 149.986,9.803 C149.276,10.649 149.174,11.529 149.648,12.476 C150.393,13.999 151.475,15.285 152.761,16.402 C154.454,17.857 156.213,19.245 157.668,20.903 C164.775,28.788 172.017,36.537 178.887,44.625 C179.361,45.201 179.665,45.81 179.767,46.521 C179.97,47.84 179.293,48.45 178.007,48.01 C177.77,47.908 177.533,47.773 177.296,47.637 C168.802,42.832 160.274,38.026 152.322,32.341 C149.986,30.683 147.482,29.363 144.876,28.212 C144.064,27.84 143.184,27.4 142.508,28.415 C142.034,29.16 142.372,30.615 143.117,31.19 C146.162,33.492 148.971,36.097 151.848,38.602 C158.311,44.219 165.113,49.499 169.919,56.774 C170.63,57.823 173.168,58.263 174.284,57.553 C177.161,55.725 180.24,54.642 183.692,54.744 L183.794,54.744 C184.031,54.744 184.268,54.71 184.505,54.71 C184.741,54.71 184.944,54.744 185.114,54.879 C185.215,54.947 185.283,55.049 185.317,55.184 C185.689,55.996 184.809,56.199 184.335,56.504 L175.164,62.46 C174.386,62.967 173.709,63.103 172.829,62.866 C171.374,62.494 169.987,61.918 168.43,61.952 C162.068,62.02 155.773,62.764 149.479,63.78 C148.091,64.016 146.67,64.152 145.384,64.896 C144.572,65.37 144.369,66.148 144.47,66.927 C144.538,67.57 144.707,68.281 145.655,68.45 C149.58,69.228 153.472,70.04 157.398,70.852 C158.785,71.191 160.206,71.597 161.662,71.698 C166.129,74.507 170.562,77.418 174.826,80.531 C177.465,82.46 180.24,83.847 183.455,84.389 C184.944,84.626 186.4,85.066 187.855,85.438 C189.784,85.946 192.085,85.946 193.54,87.062 C194.995,88.179 195.672,90.379 196.586,92.138 C197.127,93.255 197.804,93.797 199.056,93.492 C200.105,93.221 200.511,93.763 200.85,94.711 C202.44,99.245 204.098,103.746 205.655,108.247 C206.129,109.228 206.434,109.499 207.415,109.194 Z" fill="#F6E5CC"></path> + </g> +</svg> diff --git a/composer-seeklogo.svg.license b/composer-seeklogo.svg.license new file mode 100644 index 0000000..a5799bf --- /dev/null +++ b/composer-seeklogo.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-expat-composer + +Copyright (c) Nils Adermann, Jordi Boggiano diff --git a/compute-definitions-from-results.sh b/compute-definitions-from-results.sh new file mode 100644 index 0000000..b1c5dac --- /dev/null +++ b/compute-definitions-from-results.sh @@ -0,0 +1,81 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set -e + +RESULTS_PATH="$1" +COUNTS_PATH="$2" +STATS_PATH="$3" + +ALL_SELECTED=$(($(wc -l "$RESULTS_PATH" | awk '{print $1}') - 1)) +FAKES=$(grep -c ST-not-a-real-package "$RESULTS_PATH") +SKIPPED_DUE_TO_LIMITATIONS=$(grep -c ST-experiment-limitation "$RESULTS_PATH") +ALL_TESTED=$(awk -F , '{sum += $3;} END {print sum;}' < "$COUNTS_PATH") +ERESOLVE_YARN=$(grep -cE 'ST-failure,FR-failed-to-resolve.*,YL-yes' "$RESULTS_PATH") +INVALID_LOCKFILES=$(grep -c FR-invalid-lockfile-supplied "$RESULTS_PATH") +IN_DEBIAN=$(grep -c ,ID-yes,ST-built-with-lockfiles-removed "$RESULTS_PATH") +BUILT_SUCCESSFULLY=$(grep -c ,ST-built-with-lockfiles-removed "$RESULTS_PATH") +ANY_TARBALLS_DIFFERENT=$(grep -v ,BC-no-only-package.json-unicode "$RESULTS_PATH" | + grep -cE ',T[A-Z]+-different' ) +ONLY_PACKAGE_JSON_DIFFERENT=$(grep -cE ',BC-no-only-package.json(,|$)' "$RESULTS_PATH") +BUILT_BROKEN=$(grep -c ,BC-yes "$RESULTS_PATH") +BUILT_BROKEN_IN_DEBIAN=$(grep ,BC-yes "$RESULTS_PATH" | grep -c ,ID-yes) +BUILT_ONCE=$(grep -c ,ST-built-once "$RESULTS_PATH") + +orig_tree_get() { + ./helper.sh --get-csv-columns "$STATS_PATH" DESCRIPTION "$1" | + awk -F , '/^Vanilla de/{print $2;}' +} +ORIG_TREE_MIN=$(orig_tree_get VERS-MIN) +ORIG_TREE_MAX=$(orig_tree_get VERS-MAX) +ORIG_TREE_STD_DEV=$(orig_tree_get VERS-STD_DEV) +ORIG_TREE_MULTIVER_AVG=$(orig_tree_get MULTIVER-AVG) +ORIG_TREE_MULTIVER_STD_DEV=$(orig_tree_get MULTIVER-STD_DEV) + +LATEST_TAG_USERS_COUNT=$(grep -c ,LTR-yes "$RESULTS_PATH") + +(cat <<EOF + allSelectedCount $ALL_SELECTED + fakePackagesCount $FAKES + skippedDueToLimitationsCount $SKIPPED_DUE_TO_LIMITATIONS + allTestedCount $ALL_TESTED + failedToResolveAndUsingYarnCount $ERESOLVE_YARN + invalidLockfilesCount $INVALID_LOCKFILES + inDebianCount $IN_DEBIAN + builtSuccessfullyCount $BUILT_SUCCESSFULLY + withAnyTarballsDifferentCount $ANY_TARBALLS_DIFFERENT + onlyPackageJsonDifferentCount $ONLY_PACKAGE_JSON_DIFFERENT + builtBrokenCount $BUILT_BROKEN + builtBrokenInDebianCount $BUILT_BROKEN_IN_DEBIAN + builtOnceCount $BUILT_ONCE + origTreeMin $ORIG_TREE_MIN + origTreeMax $ORIG_TREE_MAX + origTreeStdDev $ORIG_TREE_STD_DEV + origTreeMultiverAvg $ORIG_TREE_MULTIVER_AVG + origTreeMultiverStdDev $ORIG_TREE_MULTIVER_STD_DEV + latestTagUsersCount $LATEST_TAG_USERS_COUNT +EOF + awk ' + /,UNDC-[0-9].*,BC-no/ { + count += 1; + unnecessary = gensub(/.*,UNDC-([^,]+).*/, "\\1", "g"); + necessary = gensub(/.*,NDC-([^,]+).*/, "\\1", "g"); + necessary_sum += necessary; + necessary_squares_sum += necessary^2; + all = necessary + unnecessary; + all_sum += all; + all_squares_sum += all^2; + } + END { + printf "necessaryDepsAvg %.1f\n", necessary_sum / count; + printf "necessaryDepsStdDev %.1f\n", + sqrt((necessary_squares_sum - necessary_sum^2 / count) / count); + printf "allDirectDepsAvg %.1f\n", all_sum / count; + printf "allDirectDepsStdDev %.1f\n", + sqrt((all_squares_sum - all_sum^2 / count) / count); + } + ' "$RESULTS_PATH") \ + | sed 's, *\([^ ]\+\) \+\(.*\),\\newcommand{\\\1}{$\2$},' diff --git a/compute-status-counts.awk b/compute-status-counts.awk new file mode 100644 index 0000000..a7da4c0 --- /dev/null +++ b/compute-status-counts.awk @@ -0,0 +1,84 @@ +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +// { + if (first_skipped) { + what = "???."; + } + first_skipped = 1; +} + +## Ones to skip. + +/ST-experiment-limitation/ { + what = 0; +} + +/ST-not-a-real-package/ { + what = 0; +} + +## Ones to include for plotting. + +/ST-failure,FR-failed-to-checkout,/ { + what = "1,Failed to clone"; +} + +/ST-failure,FR-failed-to-checkout-revision-not-found/ { + what = "2,Git revision not found"; +} + +/ST-failure,FR-failed-to-resolve/ { + what = "3,Failed to resolve dependencies"; +} + +/ST-failure,FR-invalid-lockfile-supplied/ { + what = "4,Invalid upstream lockfile"; +} + +/ST-failure,FR-no-(package.json|build-script)/ { + what = "5,Conventions not followed"; +} + +/ST-failure,FR-expects-network/ { + what = "6,Expects network access"; +} + +/ST-failure,FR-needs-other-build-sys/ { + what = "7,Requires Yarn or pnpm"; +} + +/ST-failure,FR-has-deps-external-to-npm/ { + what = "8,Has dependencies outside npm"; +} + +/ST-failure,FR-misc-build-failure/ { + what = "9,Miscellaneous build failure"; +} + +/ST-built-once/ { + what = "10,Built only with upstream lockfile"; +} + +/ST-built-with-lockfiles-removed/ { + what = "11,Built with re-generated lockfile"; +} + +// { + if (what) { + counts[what]++; + } + + if (what == "???.") { + print "##### " $0 > "/dev/stderr"; + } +} + +END { + print "ID,CATEGORY,COUNT"; + + for (key in counts) { + print key "," counts[key]; + } +} diff --git a/compute-tree-size-stats-no-bc.sh b/compute-tree-size-stats-no-bc.sh new file mode 100755 index 0000000..2c3fb56 --- /dev/null +++ b/compute-tree-size-stats-no-bc.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +exec ./compute-tree-size-stats.sh "$1" --omit-packages-with-breaking-changes diff --git a/compute-tree-size-stats.sh b/compute-tree-size-stats.sh new file mode 100755 index 0000000..62bbb44 --- /dev/null +++ b/compute-tree-size-stats.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set -e + +RESULTS_PATH="$1" + +if [ "$2" = "--omit-packages-with-breaking-changes" ]; then + BAD_ROW_REG="n/a|BC-yes" +else + BAD_ROW_REG="n/a" +fi + +printf "DESCRIPTION" +for MEASURE_TYPE in $(./helper.sh --get-measure-types); do + for AGGREGATION in MIN MAX AVG STD_DEV; do + printf ',%s-%s' "$MEASURE_TYPE" "$AGGREGATION" + done +done + +echo + +for TREE_KIND in $(./helper.sh --get-tree-kinds); do + printf %s "$TREE_KIND" | ./helper.sh --make-tree-kind-description + for MEASURE_TYPE in $(./helper.sh --get-measure-types); do + COL_NAME="$TREE_KIND-$MEASURE_TYPE" + ./helper.sh --get-csv-columns \ + "$RESULTS_PATH" "$COL_NAME" BREAKING-CHANGES | + grep -vE "$BAD_ROW_REG" | tail -n +2 | awk -F '[-,]' ' + BEGIN { + min = 999999; + } + // { + count += 1; + sum += $2; + squares_sum += ($2)^2; + if ($2 > max) { + max = $2; + } + if ($2 < min) { + min = $2; + } + } + END { + std_dev = sqrt((squares_sum - sum^2 / count) / count); + printf ",%d,%d,%.1f,%.1f", min, max, (sum / count), std_dev; + } + ' + done + echo +done diff --git a/compute-tree-sizes.sh b/compute-tree-sizes.sh new file mode 100755 index 0000000..efc54e5 --- /dev/null +++ b/compute-tree-sizes.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set -e + +RESULTS_PATH="$1" + +COLUMN_NAMES="NAME IN-DEBIAN BREAKING-CHANGES" +for TREE_KIND in $(./helper.sh --get-tree-kinds); do + for MEASURE_TYPE in $(./helper.sh --get-measure-types); do + COLUMN_NAMES="$COLUMN_NAMES $TREE_KIND-$MEASURE_TYPE" + done +done + +./helper.sh --get-csv-columns "$RESULTS_PATH" $COLUMN_NAMES | + grep -vE ',[A-Z]+-n/a' | + sed ' + s/,ID-yes,/,1,/; + s/,ID-no,/,0,/; + s/,BC-yes,/,1,/; + s/,BC-no[^,]*,/,0,/; + s/[A-Z]\+-\([0-9]\)/\1/g; + ' diff --git a/compute-unflattened-multiver-counts-no-bc.sh b/compute-unflattened-multiver-counts-no-bc.sh new file mode 100644 index 0000000..3bb955c --- /dev/null +++ b/compute-unflattened-multiver-counts-no-bc.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +exec ./compute-unflattened-multiver-counts.sh "$1" \ + --omit-packages-with-breaking-changes diff --git a/compute-unflattened-multiver-counts.sh b/compute-unflattened-multiver-counts.sh new file mode 100755 index 0000000..03b253a --- /dev/null +++ b/compute-unflattened-multiver-counts.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set -e + +TREE_SIZES_PATH="$1" + +if [ "$2" = "--omit-packages-with-breaking-changes" ]; then + BAD_ROW_REG=',1$' +else + BAD_ROW_REG=',$' # never matched +fi + +printf 'MULTIVER-COUNT,' +printf 'ALL-PACKAGES,IN-DEBIAN-PACKAGES,' +printf 'ALL-PACKAGES-NO-BC,IN-DEBIAN-PACKAGES-NO-BC\n' + +./helper.sh --get-csv-columns "$TREE_SIZES_PATH" \ + IN-DEBIAN TREE-FLAT-MULTIVER BREAKING-CHANGES | + grep -vE "$BAD_ROW_REG" | awk -F , ' + /^[0-9]/ { + counts[$2]++; + if ($1 > 0) { + debian_counts[$2]++; + } + } + END { + for (key in counts) { + printf "%d,%d,%d\n", key, counts[key], debian_counts[key]; + } + } + ' diff --git a/construction-crane.svg b/construction-crane.svg new file mode 100644 index 0000000..14a0fce --- /dev/null +++ b/construction-crane.svg @@ -0,0 +1,7786 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:ns1="http://sozi.baierouge.fr" + xmlns:xlink="http://www.w3.org/1999/xlink" + id="svg2" + style="enable-background:new" + sodipodi:docname="crane.svg" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + viewBox="0 0 744.09 524.41" + inkscape:export-xdpi="400" + version="1.1" + inkscape:export-ydpi="400" + inkscape:version="0.47 r22583" + > + <defs + id="defs4" + > + <filter + id="filter3642" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3644" + stdDeviation="0.61020312" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3678" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3680" + stdDeviation="0.26011778" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3688" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3690" + stdDeviation="0.1069755" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3735" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3737" + stdDeviation="0.37485099" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3771" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3773" + stdDeviation="0.20300391" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3861" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3863" + stdDeviation="0.50564566" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter3881" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur3883" + stdDeviation="0.13722896" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4338" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4340" + stdDeviation="0.11281865" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4362" + height="1.2719" + width="1.2321" + color-interpolation-filters="sRGB" + y="-.13597" + x="-.11604" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur4364" + stdDeviation="0.48830458" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4249" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4251" + stdDeviation="0.08385113" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4355" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4357" + stdDeviation="0.057644565" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4369" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4371" + stdDeviation="0.09562497" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4060" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4062" + stdDeviation="0.49677365" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4243" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4245" + stdDeviation="0.49205077" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4280" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4282" + stdDeviation="0.48744946" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4286" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4288" + stdDeviation="0.67452385" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4371" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4373" + stdDeviation="0.50155282" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4258" + height="1.2122" + width="1.25" + color-interpolation-filters="sRGB" + y="-.10611" + x="-0.125" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur4260" + stdDeviation="0.21015691" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4669" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4671" + stdDeviation="1.8526198" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4685" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4687" + stdDeviation="2.6527484" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4691" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4693" + stdDeviation="2.1344963" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4705" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4707" + stdDeviation="2.8465187" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4738" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4740" + stdDeviation="0.99641692" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4810" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4812" + stdDeviation="1.3261209" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4819" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4821" + stdDeviation="1.0852437" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4915" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4917" + stdDeviation="0.93517082" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4670" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4672" + stdDeviation="2.0170808" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4680" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4682" + stdDeviation="0.80702405" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4701" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4703" + stdDeviation="0.73142969" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4728" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4730" + stdDeviation="0.562382" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4825" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4827" + stdDeviation="1.5218168" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4836" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4838" + stdDeviation="1.2808874" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4850" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4852" + stdDeviation="0.56535991" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4862" + height="1.2206" + width="1.2631" + color-interpolation-filters="sRGB" + y="-.11030" + x="-.13157" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur4864" + stdDeviation="0.86474951" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4937" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4939" + stdDeviation="2.3065734" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4971" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4973" + stdDeviation="2.9956609" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4986" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4988" + stdDeviation="2.3491439" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4998" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur5000" + stdDeviation="3.4994288" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5012" + height="1.0647" + width="2.7245" + color-interpolation-filters="sRGB" + y="-.032371" + x="-.86226" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur5014" + stdDeviation="3.5019147" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5016" + height="1.0651" + width="1.7723" + color-interpolation-filters="sRGB" + y="-.032527" + x="-.38616" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur5018" + stdDeviation="3.5187485" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4841" + height="1.3745" + width="1.4714" + color-interpolation-filters="sRGB" + y="-.18723" + x="-.23571" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur4843" + stdDeviation="3.2461517" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4853" + height="1.4095" + width="1.6806" + color-interpolation-filters="sRGB" + y="-.20473" + x="-.34028" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur4855" + stdDeviation="2.7512499" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter4865" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur4867" + stdDeviation="1.5421364" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5003" + height="1.1919" + width="1.2287" + color-interpolation-filters="sRGB" + y="-.095952" + x="-.11435" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur5005" + stdDeviation="1.4130435" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5015" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur5017" + stdDeviation="1.2392743" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5023" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur5025" + stdDeviation="1.2484473" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5031" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur5033" + stdDeviation="1.3911803" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5493" + inkscape:collect="always" + color-interpolation-filters="sRGB" + > + <feGaussianBlur + id="feGaussianBlur5495" + stdDeviation="0.49621299" + inkscape:collect="always" + /> + </filter + > + <filter + id="filter5544" + height="1.2825" + width="1.0352" + color-interpolation-filters="sRGB" + y="-.14123" + x="-.017603" + inkscape:collect="always" + > + <feGaussianBlur + id="feGaussianBlur5546" + stdDeviation="3.6568328" + inkscape:collect="always" + /> + </filter + > + </defs + > + <sodipodi:namedview + id="base" + bordercolor="#666666" + inkscape:pageshadow="2" + inkscape:window-y="-8" + pagecolor="#ffffff" + inkscape:window-height="1018" + inkscape:window-maximized="1" + inkscape:zoom="1.3588393" + objecttolerance="30" + showgrid="false" + borderopacity="1.0" + inkscape:current-layer="svg2" + inkscape:cx="354.97004" + inkscape:cy="274.61195" + inkscape:window-x="-8" + inkscape:window-width="1920" + inkscape:pageopacity="0.0" + inkscape:document-units="px" + /> + <g + id="layer2" + inkscape:label="crane" + inkscape:groupmode="layer" + > + <g + id="layer1" + inkscape:label="Ground" + inkscape:groupmode="layer" + > + <g + id="g4978" + style="enable-background:new" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + > + <path + id="path8404" + style="fill:#b39466" + d="m73.102 387.44c89.018-15.02 212.54-41.8 408.43-42.16 252.07 4.5482 488.01-2.0251 748.22 30.448 47.581 8.4602-103.01 22.154-196.8 19.307 48.325-3.0926 114.27 8.1449 93.939 17.836-135.53 44.714-409.61 25.31-641.18 17.257-157.6-12.48-334.72-19.93-412.61-42.69z" + inkscape:export-ydpi="400" + sodipodi:nodetypes="ccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + inkscape:export-xdpi="400" + /> + <path + id="path4738" + style="fill:#d4b789" + d="m901.43 383.7 18.069 3.2984 0.29026 0.52948 9.9281-0.66789 0.53726-1.1951-9.9815-4.666-6.6984 0.66412 4.0283-3.931-10.936-1.3383-6.7595 1.6747 1.5222 5.6315-0.00002 0.00002z" + inkscape:export-ydpi="400" + sodipodi:nodetypes="cccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + inkscape:export-xdpi="400" + /> + <path + id="path4749" + style="fill:#d4b789" + d="m827.22 377.94-3.6014 5.2224 26.525 0.33119 1.1633-5.4726 20.171 2.0958 5.3587-5.1301-34.27-0.53237-3.0759-5.3022-9.0434 3.27-11.553-0.84802-1.3076 6.6818 9.6335-0.31592z" + inkscape:export-ydpi="400" + sodipodi:nodetypes="cccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + inkscape:export-xdpi="400" + /> + <g + id="g4762" + inkscape:export-ydpi="400" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + transform="matrix(1.9348 .021109 -.0036518 1.0876 -519.53 -31.294)" + inkscape:export-xdpi="400" + > + <path + id="path4764" + style="fill:#d4b789" + d="m625.81 356.53-5.0938 7.0312-56.688 0.71875 8.875 6.8125 33.375-2.7812 1.9062 7.2812 43.906-0.4375-5.9688-6.9375 15.938 0.40625-2.1562-8.875-19.125 1.125-14.969-4.3438zm-111.12 9.625-18.094 1.7812 6.6562 5.2188-11.094-0.875-16.5 6.2188 0.875 1.5625 16.438 0.90625 0.46875-0.71875 29.906-4.375 2.5312-7.5-11.188-2.2188z" + /> + <path + id="path4766" + style="fill:#d4b789" + d="m535.14 362.09 5.0938 7.0312 56.688 0.71875-8.875 6.8125-33.375-2.7812-1.9062 7.2812-43.906-0.4375 5.9688-6.9375-15.938 0.40625 2.1562-8.875 19.125 1.125 14.969-4.3438zm111.12 9.625 18.094 1.7812-6.6562 5.2188 11.094-0.875 16.5 6.2188-0.875 1.5625-16.438 0.90625-0.46875-0.71875-29.906-4.375-2.5312-7.5 11.188-2.2188z" + /> + </g + > + <g + id="g4788" + inkscape:export-ydpi="400" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + transform="translate(10.102 -11.112)" + inkscape:export-xdpi="400" + > + <g + id="g4758" + transform="translate(20.203 .50508)" + > + <path + id="path4751" + style="fill:#d4b789" + d="m625.81 356.53-5.0938 7.0312-56.688 0.71875 8.875 6.8125 33.375-2.7812 1.9062 7.2812 43.906-0.4375-5.9688-6.9375 15.938 0.40625-2.1562-8.875-19.125 1.125-14.969-4.3438zm-111.12 9.625-18.094 1.7812 6.6562 5.2188-11.094-0.875-16.5 6.2188 0.875 1.5625 16.438 0.90625 0.46875-0.71875 29.906-4.375 2.5312-7.5-11.188-2.2188z" + /> + <path + id="path4756" + style="fill:#d4b789" + d="m535.14 362.09 5.0938 7.0312 56.688 0.71875-8.875 6.8125-33.375-2.7812-1.9062 7.2812-43.906-0.4375 5.9688-6.9375-15.938 0.40625 2.1562-8.875 19.125 1.125 14.969-4.3438zm111.12 9.625 18.094 1.7812-6.6562 5.2188 11.094-0.875 16.5 6.2188-0.875 1.5625-16.438 0.90625-0.46875-0.71875-29.906-4.375-2.5312-7.5 11.188-2.2188z" + /> + </g + > + <g + id="g4782" + transform="translate(-118.19 -.50508)" + > + <path + id="path4784" + style="fill:#d4b789" + d="m625.81 356.53-5.0938 7.0312-56.688 0.71875 8.875 6.8125 33.375-2.7812 1.9062 7.2812 43.906-0.4375-5.9688-6.9375 15.938 0.40625-2.1562-8.875-19.125 1.125-14.969-4.3438zm-111.12 9.625-18.094 1.7812 6.6562 5.2188-11.094-0.875-16.5 6.2188 0.875 1.5625 16.438 0.90625 0.46875-0.71875 29.906-4.375 2.5312-7.5-11.188-2.2188z" + /> + <path + id="path4786" + style="fill:#d4b789" + d="m535.14 362.09 5.0938 7.0312 56.688 0.71875-8.875 6.8125-33.375-2.7812-1.9062 7.2812-43.906-0.4375 5.9688-6.9375-15.938 0.40625 2.1562-8.875 19.125 1.125 14.969-4.3438zm111.12 9.625 18.094 1.7812-6.6562 5.2188 11.094-0.875 16.5 6.2188-0.875 1.5625-16.438 0.90625-0.46875-0.71875-29.906-4.375-2.5312-7.5 11.188-2.2188z" + /> + </g + > + </g + > + <g + id="g4772" + inkscape:export-ydpi="400" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + transform="matrix(1.6637 .092945 -.062334 1.1158 -767.43 -364.76)" + inkscape:export-xdpi="400" + > + <path + id="path4768" + style="fill:#977746" + d="m959.2 556.21-6.7703 1.6779 1.5378 5.6208 6.1889 1.1186-18.792-0.27964-3.0757-5.2853-9.0396 3.2718-11.553-0.8669-1.3128 6.6835 9.6397-0.3076-3.6008 5.2293 26.519 0.33558 1.1628-5.481 20.161 2.0973 2.8507-2.7405 9.1334-0.61522 0.54384-1.2025-9.996-4.67-6.6953 0.67114 4.0321-3.915-10.934-1.3423z" + /> + <path + id="path4778" + style="fill:#977746" + d="m873.12 562.54-6.7703 1.6779 1.5378 5.6208 6.1889 1.1186-18.792-0.27964-3.0757-5.2853-9.0396 3.2718-11.553-0.8669-1.3128 6.6835 9.6397-0.3076-3.6008 5.2293 26.519 0.33558 1.1628-5.481 20.161 2.0973 2.8507-2.7405 9.1334-0.61522 0.54384-1.2025-9.996-4.67-6.6953 0.67114 4.0321-3.915-10.934-1.3423z" + /> + <path + id="path4780" + style="fill:#977746" + d="m898.62 599.6 7.0793 1.6779-1.608 5.6208-6.4714 1.1186 19.65-0.27964 3.2161-5.2853 9.4522 3.2718 12.08-0.8669 1.3727 6.6835-10.08-0.3076 3.7652 5.2293-27.729 0.33558-1.2158-5.481-21.081 2.0973-2.9808-2.7405-9.5503-0.61522-0.56866-1.2025 10.452-4.67 7.0009 0.67114-4.2162-3.915 11.433-1.3423z" + /> + </g + > + </g + > + </g + > + <g + id="layer9" + inkscape:label="right_treads" + inkscape:groupmode="layer" + > + <g + id="g5249" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.28715 -.0087116 .0087116 .28715 253.99 384.38)" + inkscape:export-xdpi="240" + > + <g + id="g5251" + transform="matrix(2.4071 0 0 2.4071 -1054.6 -484.38)" + > + <path + id="path5253" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5255" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m707.36 318.04 2.3449 5.6818c0.89769 2.9098-1.821 3.3711-2.886 2.6154l-7.0346-3.9682 7.5757-4.329z" + /> + </g + > + <g + id="g5257" + transform="matrix(-2.3941 .25374 .29666 2.3888 2483.4 -633.19)" + > + <g + id="g5259" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path5261" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m700.76 313.46 1.0524 1.5385-27.583 1.288-6.238 7.712-1.0395-1.5156 5.5277-7.7994 28.28-1.2236z" + /> + <path + id="path5263" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.1 314.92-28.087 1.3797-6.1519 7.7022 26.61-1.8228 7.6287-7.2592z" + /> + </g + > + <path + id="path5265" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + d="m686.22 315.91-2.7868 3.9981 9.0726 0.45651 10.97-1.5985 5.7802-4.4726-23.036 1.6164z" + /> + </g + > + <g + id="g5267" + transform="matrix(1.0802 .10783 -.21658 .99254 261.18 -47.051)" + > + <g + id="g5269" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g5271" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g5273" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5275" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path5277" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path5279" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + /> + </g + > + <g + id="g5281" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g5283" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g5285" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5287" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-11.424-6.6101 6.3298-3.6639 11.785 6.4349 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path5289" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-11.984-6.675 15.26-1.7234 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path5291" + sodipodi:nodetypes="ccccc" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.52 308.34 0.17857 1.3393-19.119 3.4999v-1.4286l18.94-3.4106z" + /> + </g + > + </g + > + <g + id="g5293" + transform="matrix(1.0557 .033197 -.15936 1.0063 197.18 -9.4855)" + > + <g + id="g5295" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g5297" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g5299" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5301" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path5303" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path5305" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5307" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g5309" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g5311" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5313" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-11.424-6.6101 6.3298-3.6639 11.785 6.4349 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path5315" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-11.984-6.675 15.26-1.7234 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path5317" + d="m716.52 308.34 0.17857 1.3393-19.119 3.4999v-1.4286l18.94-3.4106z" + sodipodi:nodetypes="ccccc" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + </g + > + <g + id="g5319" + transform="matrix(-1.5034 .99346 .73373 1.8075 1708.7 -979.07)" + > + <path + id="path5321" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5323" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5325" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5327" + transform="matrix(1.0641 -.035486 -.087021 1.0062 109.31 32.863)" + > + <g + id="g5329" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g5331" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g5333" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5335" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-21.232-0.23577 6.4528-3.6625 21.518 0.20355 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path5337" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-20.114-0.70488 17.838-2.8136 17.248 3.0317-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path5339" + sodipodi:nodetypes="cccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="opacity:0.63;fill:#1a1a1a" + d="m748.75 311.11 0.0893 1.4286-18.024 0.18975 0.0893-1.3393 17.845-0.27905h-0.00004z" + /> + </g + > + <g + id="g5341" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g5343" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g5345" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5347" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-25.377-0.31796 6.3298-3.6639 25.738 0.14278 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path5349" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-25.578-0.67959 21.381-3.1022 22.679 0.52083-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path5351" + sodipodi:nodetypes="ccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + d="m716.52 308.34 0.17857 1.3393-21.808 0.74225v-1.4286l21.63-0.65296z" + /> + </g + > + </g + > + <g + id="g5353" + transform="matrix(-1.3418 1.0524 1.045 1.5056 1536.1 -920.86)" + > + <path + id="path5355" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5357" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5359" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5361" + transform="matrix(1.0652 .068175 -.072786 .99767 40.65 -39.287)" + > + <g + id="g5363" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g5365" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g5367" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5369" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path5371" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path5373" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + /> + </g + > + <g + id="g5375" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g5377" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g5379" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5381" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-14.59-6.8837 6.3298-3.6639 14.951 6.7085 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path5383" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-14.959-7.1016 18.235-1.2968 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path5385" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.52 308.34 0.17857 1.3393-22.232 3.75v-1.4286l22.054-3.6607z" + /> + </g + > + </g + > + <g + id="g5387" + transform="matrix(-1.5222 1.3233 1.1228 1.8071 1538.4 -1215.9)" + > + <path + id="path5389" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5391" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5393" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5395" + > + <g + id="g5397" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g5399" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g5401" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5403" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path5405" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path5407" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5409" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g5411" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g5413" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5415" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-14.59-6.8837 6.3298-3.6639 14.951 6.7085 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path5417" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-14.959-7.1016 18.235-1.2968 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path5419" + d="m716.52 308.34 0.17857 1.3393-22.232 3.75v-1.4286l22.054-3.6607z" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + </g + > + <g + id="g5421" + transform="matrix(-1.5302 1.2714 1.1154 1.7221 1510.8 -1154.3)" + > + <path + id="path5423" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5425" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5427" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5429" + transform="matrix(-1.6451 1.3662 1.0824 1.9804 1544.1 -1306.6)" + > + <path + id="path5431" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5433" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5435" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5437" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1202.5 878.43)" + > + <path + id="path5439" + sodipodi:nodetypes="ccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m713.21 309.68-2.3214 0.53572-1.4286 2.2321 2.0968-0.35405 0.91274 0.85464 1.2762-1.2149-0.53572-2.0536z" + /> + <path + id="path5441" + sodipodi:nodetypes="ccccc" + style="opacity:.59292;filter:url(#filter4249);fill:#333333" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m713.3 309.95-1.7857 1.9643 1.1607 1.0669 1.2608-1.2608-0.63583-1.7704z" + /> + </g + > + <g + id="g5443" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1233.9 883.8)" + > + <path + id="path5445" + sodipodi:nodetypes="ccccccc" + d="m713.21 309.68-2.3214 0.53572-1.5548 1.9796 2.1513-0.21544 1.1108 0.77916 1.1499-1.0255-0.53572-2.0536z" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + <path + id="path5447" + sodipodi:nodetypes="ccccc" + d="m713.3 309.63-1.7857 2.28 1.1607 0.625 1.1977-0.81889-0.5727-2.0861z" + style="opacity:.59292;filter:url(#filter4249);fill:#333333" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5449" + transform="matrix(2.4071 -.043245 0 2.4071 -1028.3 -463.66)" + > + <g + id="g5451" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path5453" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m702.18 314.8 1.1318 2.0067-5.5387 9.1127-28.585-0.33304-1.0395-1.5156 6.4439-6.3121 27.587-2.9587z" + /> + <path + id="path5455" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.1 314.92-28.087 1.3797-6.1519 7.7022 28.388-0.73466 5.8506-8.3473z" + /> + </g + > + <path + id="path5457" + d="m686.22 315.91-2.8863 4.1104 6.8006 1.1275 14.954-2.0561 4.1669-4.7982-23.036 1.6164z" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + /> + </g + > + <g + id="g5459" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -1073.9 827.41)" + > + <path + id="path5461" + sodipodi:nodetypes="ccccccc" + d="m712.83 310.51-2.0519 0.46194-1.269 1.5377 2.1466-0.0614 0.31542 1.4485 1.2412-1.7645-0.38228-1.6223z" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5463" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -1104.1 831.51)" + > + <path + id="path5465" + sodipodi:nodetypes="cccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m713.27 310.24-2.3707 0.47524-1.44 1.7324 2.9464-0.44643 1.3393-0.26786-0.47503-1.4933z" + /> + </g + > + <g + id="g5467" + transform="matrix(-1.2953 -1.4951 1.3381 -1.6009 1361.2 1899.1)" + > + <path + id="path5469" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5471" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5473" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5475" + transform="matrix(2.5946 .25574 4.0574 1.9017 -2165.1 -426.45)" + > + <g + id="g5477" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5479" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m686.09 322.25-19.369 1.2109 2.1062-1.3953 21.609-2.6571 23.277-6.4879-3.9654 2.7935-23.658 6.5359z" + /> + <path + id="path5481" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m689.4 319.78-18.785 1.2051 23.448-9.4409 19.703 1.3378-24.367 6.8981z" + /> + </g + > + </g + > + <g + id="g5483" + transform="matrix(-1.4018 -1.2451 1.1552 -1.6027 1530.3 1725.9)" + > + <path + id="path5485" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5487" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5489" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <path + id="path5491" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(-2.0879 -.34614 .60237 -2.3305 2181.7 1327)" + d="m675.44 318.38 8.3043-2.4171 10.651-1.62 5.5524-0.25207-4.9773 3.5184-19.53 0.77071z" + /> + <g + id="g5493" + transform="matrix(-1.374 -1.3332 1.4195 -1.4276 1428.2 1732.7)" + > + <path + id="path5495" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5497" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5499" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5501" + transform="matrix(2.5751 .35188 3.9122 2.2526 -2136.6 -607.86)" + > + <g + id="g5503" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5505" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5507" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g5509" + transform="matrix(-1.3215 -1.5238 1.3652 -1.6317 1308.2 1927.2)" + > + <path + id="path5511" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5513" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5515" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5517" + transform="matrix(1.8253 -1.721 1.4987 2.096 -989.5 876.49)" + > + <path + id="path5519" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5521" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g5523" + > + <path + id="path5525" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5527" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path5529" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5531" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5533" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5535" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5537" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g5539" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path5541" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5543" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5545" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5547" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5549" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5551" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5553" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5555" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path5557" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5559" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5561" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5563" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5565" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5567" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5569" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5571" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path5573" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5575" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5577" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5579" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5581" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5583" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5585" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5587" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path5589" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5591" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5593" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5595" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5597" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5599" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5601" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5603" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path5605" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5607" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5609" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5611" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5613" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5615" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5617" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5619" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <g + id="g5621" + transform="matrix(2.4071 0 0 2.4071 -873.01 -484.34)" + > + <g + id="g5623" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g5625" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5627" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5629" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g5631" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g5633" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5635" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5637" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g5639" + transform="matrix(-1.374 -1.6386 1.4195 -1.7547 1294 2042.5)" + > + <path + id="path5641" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5643" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5645" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5647" + transform="matrix(2.4071 0 0 2.4071 -941.7 -487.08)" + > + <g + id="g5651" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g5653" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5655" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5657" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g5659" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g5661" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5663" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5665" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g5667" + transform="matrix(-1.374 -1.6386 1.4195 -1.7547 1225.4 2040.5)" + > + <path + id="path5669" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5671" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5673" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5675" + transform="matrix(1.9256 -1.763 1.5811 2.1471 -1177.3 886.66)" + > + <path + id="path5677" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5679" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g5681" + > + <path + id="path5683" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5685" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path5687" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5689" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5691" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5693" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5695" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g5697" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path5699" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5701" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5703" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5705" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5707" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5709" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5711" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5713" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path5715" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5717" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5719" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5721" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5723" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5725" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5727" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5729" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path5731" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5733" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5735" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5737" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5739" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5741" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5743" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5745" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path5747" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5749" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5751" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5753" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5755" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5757" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5759" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5761" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path5763" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5765" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5767" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5769" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5771" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5773" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5775" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5777" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <g + id="g5779" + transform="matrix(-1.7843 .83130 .83406 1.7714 1679.1 -870.66)" + > + <path + id="path5781" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5783" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5785" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5787" + transform="matrix(2.4071 0 0 2.4071 -1011.9 -489.82)" + > + <g + id="g5789" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g5791" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5793" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5795" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g5797" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g5799" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5801" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5803" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g5805" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + > + <g + id="g5807" + transform="matrix(-.57080 -.55386 .58969 -.59307 931.05 920.13)" + > + <path + id="path5809" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5811" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5813" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5815" + transform="matrix(-.60713 -.47580 .54886 -.53475 983.15 848.09)" + > + <path + id="path5817" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path5819" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path5821" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g5823" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g5825" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5827" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5829" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g5831" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g5833" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5835" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path5837" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g5839" + transform="matrix(2.7408 0 -.26163 2.6928 -1253.4 -590.04)" + > + <path + id="path5841" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5843" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g5845" + > + <path + id="path5847" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5849" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path5851" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5853" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5855" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5857" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5859" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g5861" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path5863" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5865" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5867" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5869" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5871" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5873" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5875" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5877" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path5879" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5881" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5883" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5885" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5887" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5889" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5891" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5893" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path5895" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5897" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5899" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5901" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5903" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5905" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5907" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5909" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path5911" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5913" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5915" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5917" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5919" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5921" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5923" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g5925" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path5927" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5929" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5931" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path5933" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path5935" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5937" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path5939" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path5941" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <path + id="path5943" + sodipodi:nodetypes="ccccccc" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + d="m706.03 320.8 0.88389-1.6415 4.4194 0.44194 0.31568 0.69448-4.1669 0.44194-0.56821 1.5784-0.88389-1.5152z" + /> + <path + id="path5945" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + sodipodi:nodetypes="ccccccc" + transform="matrix(2.4071 0 0 -2.4071 -1073.5 1078.3)" + d="m691.77 328.88 0.69447 1.7046 8.6494 0.50507-0.0631 1.0102-9.1545-0.12627-1.1364-2.0203 1.0102-1.0733z" + /> + <g + id="g5947" + transform="matrix(2.2094 .026268 .86266 2.7519 -1212.4 -603.54)" + > + <g + id="g5949" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5951" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m702.75 314.49 0.57174 1.8301-5.9346 8.5863-29.168 2.0203-0.88388-1.0102 5.8084-6.9448 29.607-4.4817z" + /> + <path + id="path5953" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-28.494 2.5528-6.8613 8.8114 29.042-2.0203 6.3135-9.3439z" + /> + </g + > + <path + id="path5955" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + d="m686.53 316.61-3.9208 4.759 6.9448 0.88388 15.815-2.8281 3.8825-5.1268-22.722 2.3121z" + /> + </g + > + <g + id="g5957" + transform="matrix(2.5751 .21347 3.9122 2.0423 -2425.3 -459.81)" + > + <g + id="g5959" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5961" + sodipodi:nodetypes="ccccccccc" + style="fill:#999999" + d="m702.75 314.49-30.486 3.905 3.0756-1.8382 30.293-3.5142-5.8068 7.935-3.4543 1.9892-26.088 1.4135 2.8604-5.4085 29.607-4.4817z" + /> + <path + id="path5963" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-30.087 3.588-3.2566 6.7309 27.572-1.9923 5.7719-8.3267z" + /> + </g + > + <path + id="path5965" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + sodipodi:nodetypes="cccccc" + transform="matrix(1.0176 .016042 .27002 .98695 -97.826 -6.7578)" + d="m685.57 317.4-2.9609 3.9663 7.6956-0.17141 14.585-2.4109 4.3623-4.4888-23.682 3.1048z" + /> + </g + > + <g + id="g5967" + transform="matrix(2.3167 -.81265 .36832 2.3718 -1151.3 81.7)" + > + <path + id="path5969" + sodipodi:nodetypes="cccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m713.02 309.72-2.1897 0.44718-1.3643 2.2797 3.3351-0.34461 0.71694-1.8461-0.49803-0.53616z" + /> + </g + > + <g + id="g5971" + transform="matrix(2.3167 -.81265 .36832 2.3718 -1181.6 82.924)" + > + <path + id="path5973" + d="m713.21 309.68-2.3214 0.53572-1.4286 2.2321 2.9464-0.44643 1.3393-0.26786-0.53572-2.0536z" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5975" + transform="matrix(2.3297 .85066 .33314 -2.3655 -1182.9 525.18)" + > + <path + id="path5977" + sodipodi:nodetypes="cccccc" + d="m712.88 309.87-2.001 0.64684 0.0535 2.5097 3.0854-0.72162-0.1541-2.1289-0.9839-0.30601z" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g5979" + transform="matrix(2.3297 .85066 .33314 -2.3655 -1155 523.06)" + > + <path + id="path5981" + sodipodi:nodetypes="cccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + d="m712.88 309.87-2.001 0.64684 0.0535 2.5097 3.0854-0.72162-0.1541-2.1289-0.9839-0.30601z" + /> + </g + > + <path + id="path5983" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + d="m694.73 340.62 0.12627 1.389 9.407-0.25254 0.31567 0.56822-10.354 0.31567-0.94702-1.9572 1.4521-0.0631z" + /> + <path + id="path5985" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + d="m703.95 333.05-0.12627-2.7779 4.7351-0.37881 0.82075 0.56822-4.4826 0.50507 0.12627 2.2728-1.0733-0.1894z" + /> + <path + id="path5987" + sodipodi:nodetypes="ccccccc" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + d="m706.85 339.8 0.50507 1.7678 4.4194-0.0631-0.31567 0.63136-4.6088 0.18939-1.0102-2.336 1.0102-0.1894z" + /> + <path + id="path5989" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 -2.4071 -1078.5 1102.5)" + d="m692.52 328.69-0.25254 2.0834 8.8388 0.69448-0.31568 0.75762-9.1545-0.82075 0.12627-2.8411 0.75761 0.12627z" + /> + <g + id="g5991" + transform="matrix(2.4296 .22452 2.0542 3.0067 -1746.1 -796.58)" + > + <g + id="g5993" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path5995" + sodipodi:nodetypes="cccccccc" + style="fill:#999999" + d="m673.42 318.31 2.1122-0.79193 28.44-3.3338-6.0343 9.0902-1.8178 0.66426-26.917 1.9805 3.9364-6.9525 0.28017-0.65666z" + /> + <path + id="path5997" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-28.93 3.6307-5.3832 8.1024 27.999-2.3892 6.3135-9.3439z" + /> + </g + > + <path + id="path5999" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(1.0176 .016042 .27002 .98695 -97.826 -6.7578)" + d="m685.64 317.83-3.0305 3.5355 6.9448 0.88388 15.531-3.1567 4.1669-4.7982-23.612 3.5355z" + /> + </g + > + <g + id="g6001" + transform="matrix(-2.384 .33557 .37828 2.3772 2453.3 -661.2)" + > + <g + id="g6003" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path6005" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m692.86 311.51 1.9865 0.78131-26.977 1.7287 0.12235 9.9782-1.2955-0.67568-0.54953-9.9622 26.713-1.8504z" + /> + <path + id="path6007" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m694.87 312.22-27.633 1.7102 0.6232 10.065 26.636-3.241 0.37397-8.534z" + /> + </g + > + <path + id="path6009" + d="m681.19 313.89 0.0472 4.4611 12.304 0.47013 8.4906-2.0834 0.91079-4.2792-21.753 1.4313z" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + /> + </g + > + <g + id="g6011" + transform="matrix(.83360 0 0 .89075 155.7 32.493)" + > + <g + id="g6013" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path6015" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.33 308.34-2.6162 0.17377-0.53997 2.8378 0.84358 1.0589 2.9642 0.22513 0.56991-3.7686-1.2216-0.52701 0.00002-0.00004z" + /> + </g + > + <path + id="path6017" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + sodipodi:nodetypes="cccccccc" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m694.45 331.64 1.3474 1.6202-1.0762 0.81794-2.9199-0.027-0.039-3.2765 1.1141-1.4428 2.8137-0.007-1.24 2.3149z" + /> + </g + > + <g + id="g6019" + transform="matrix(-2.3414 -.56050 .60237 -2.3305 2353.5 1448.8)" + > + <g + id="g6021" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path6023" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m696.56 311.88 1.0526 1.0571-26.775 1.2962-2.8482 9.7683-1.5239-1.3279 2.7192-10.177 27.376-0.61654z" + /> + <path + id="path6025" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m697.65 312.89-26.86 0.96844-2.9237 10.142 26.61-1.8228 3.1734-9.2876z" + /> + </g + > + <path + id="path6027" + d="m682.52 320.69 1.542-5.3137 10.797-1.5333 10.005 0.92867-1.5121 4.6292-20.832 1.2891z" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + /> + </g + > + <g + id="g6029" + transform="matrix(.82890 .088361 -.094419 .88574 191.29 -29.08)" + > + <g + id="g6031" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path6033" + d="m716.33 308.34-2.6162 0.17377-0.53997 2.8378 0.84358 1.0589 2.9642 0.22513 0.56991-3.7686-1.2216-0.52701 0.00002-0.00004z" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <path + id="path6035" + sodipodi:nodetypes="cccccccc" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m694.45 331.64 1.3474 1.6202-1.0762 0.81794-2.9199-0.027-0.039-3.2765 1.1141-1.4428 2.8137-0.007-1.24 2.3149z" + /> + </g + > + <g + id="g6037" + transform="matrix(.86897 .49487 -.49487 .86897 263.48 -386.36)" + > + <g + id="g6039" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path6041" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.33 308.34-2.4448 0.90528-1.0789 2.3034-0.43532 1.8945 3.1228-1.0575 2.0579-3.5186-1.2216-0.52701 0.00002-0.00004z" + /> + </g + > + <path + id="path6043" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + sodipodi:nodetypes="ccccccccc" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m693.77 331.93 2.0278 1.3247-1.0762 0.81794-2.765-1.0486-0.53417-2.1072 0.0549-2.1313 2.8244 1.0236 0.1487 1.8252-0.68046 0.29568z" + /> + </g + > + <g + id="g6045" + transform="matrix(1.5383 -1.5308 1.2631 1.8643 -612.9 818.5)" + > + <path + id="path6047" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path6049" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g6051" + > + <path + id="path6053" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6055" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path6057" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6059" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6061" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6063" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path6065" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g6067" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path6069" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6071" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6073" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6075" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6077" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6079" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6081" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g6083" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path6085" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6087" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6089" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6091" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6093" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6095" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6097" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g6099" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path6101" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6103" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6105" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6107" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6109" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6111" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6113" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g6115" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path6117" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6119" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6121" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6123" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6125" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6127" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6129" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g6131" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path6133" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6135" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6137" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path6139" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path6141" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6143" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path6145" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path6147" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + </g + > + </g + > + <g + id="layer12" + inkscape:label="hydrolic" + inkscape:groupmode="layer" + > + <path + id="path4686" + style="stroke:#dc942d;stroke-width:.31659px;fill:#e0bc74" + d="m540.66 408.25 44.612 7.0356-4.3324-23.167-30.686-3.8564c-5.2061-0.98006-7.775 13.031-9.594 19.988z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path4830" + style="opacity:.83186;filter:url(#filter4836);fill:#926d29" + d="m844.45 130.47 117.64 18.298-12.995-69.002-80.846-9.6471c-13.739-2.6108-19.506 39.439-23.796 60.351z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4674" + style="stroke:#dc942d;stroke-width:.31659px;fill:#c99738" + d="m455.33 329.8 51.305 30.021c1.1148-0.70456 2.2484-1.395 5.0298-0.84966l65.325 38.443-7.9147 15.603-65.435-39.695c-1.6826-1.2524-1.6037-3.1436-1.423-4.7876l-50.505-30.82 3.6181-7.9147z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path4684" + sodipodi:rx="14.89975" + sodipodi:ry="14.394673" + style="fill:#000000" + sodipodi:type="arc" + d="m737.92-45.569a14.9 14.395 0 1 1 -29.8 0 14.9 14.395 0 1 1 29.8 0z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.33440 .12089 -.15648 .37855 256.49 294.68)" + sodipodi:cy="-45.569149" + sodipodi:cx="723.01666" + inkscape:export-xdpi="240" + /> + <path + id="rect4676" + style="fill:#999999" + d="m508.76 366.85c-1.7225 2.6124-5.308 3.386-8.0394 1.7346l-59.85-37.708c-2.7314-1.6514-3.5436-5.084-1.8212-7.6963 1.7224-2.6124 5.308-3.386 8.0394-1.7346l59.85 37.708c2.7314 1.6514 3.5436 5.084 1.8212 7.6963z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccsccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path4919" + style="opacity:.21372;filter:url(#filter4670);fill:#000000" + d="m557.84-113.44 50 60.719 96.438 56.406 6.4375 12.156 1.25 0.78125c-1.2152 0.75001-2.4823 1.4665-3.8438 2.1875 1.7503-0.44996 3.3968-0.93075 4.9688-1.4688l194.75 123.5 14.312-35-189.44-105.69c2.1664-7.1247 0.86052-16.01-3.9062-26.781 2.0917 7.9489 2.9045 16.43-0.125 24.531l-3.69-2.0572-4.2812-3.5625-162.88-105.72z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4678" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + d="m572.76-108.96 150.01 94.449-1.0102 4.0406-149-98.49z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + </g + > + <g + id="layer10" + inkscape:label="crane_arm" + inkscape:groupmode="layer" + > + <g + id="g4756" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.23021 -.0073971 .0073971 .23021 228.47 289.68)" + > + <path + id="path4758" + sodipodi:nodetypes="cssssc" + style="stroke:#dc942d;fill:#e9b040" + d="m-166.42-945.17c-19.526 2.3229-16.183 2.0087-27.728 2.7508-10.813 0.69508-22.394-0.774-30.611-15.782-8.2172-15.008-7.8349-32.274 0.8538-38.566 4.9053-3.5521 29.846-5.9056 40.062-7.1827 1.6595-0.2074 13.845 52.244 17.423 58.779z" + /> + <path + id="path4760" + sodipodi:rx="47.857143" + sodipodi:ry="69.285713" + style="stroke:#dc942d;stroke-width:2.3567;fill:#e9b040" + sodipodi:type="arc" + d="m-127.14-1026.3c0 38.265-21.426 69.286-47.857 69.286s-47.857-31.02-47.857-69.286 21.426-69.286 47.857-69.286 47.857 31.02 47.857 69.286z" + transform="matrix(.32873 -.23804 .21474 .39220 103.16 -613.89)" + sodipodi:cy="-1026.3048" + sodipodi:cx="-175" + /> + </g + > + <g + id="g4746" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.23023 .0068269 -.0068269 .23023 230.77 289.95)" + > + <path + id="path4748" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + sodipodi:nodetypes="cccsccc" + transform="matrix(.85293 .52202 0 1 0 0)" + d="m-239-972.51c14.215 0 15.517 22.011 15.517 37.246v75.182c0 15.235-17.306 30.56-31.522 30.56-14.215 0-25.66-12.265-25.66-27.499l4.1872-71.654c1.6749-18.252 4.0001-21.636 37.477-43.834z" + /> + <rect + id="rect4750" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + ry="27.499" + height="130.18" + width="51.319" + y="-976" + x="-252.19" + /> + </g + > + <g + id="g4742" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.23021 -.0072776 .0072776 .23021 249.02 286)" + > + <path + id="path4711" + sodipodi:nodetypes="cssssc" + style="stroke:#dc942d;stroke-width:1.3269;fill:#e9b040" + transform="matrix(.57553 -.42894 .37596 .70672 218.24 -311.42)" + d="m-104.94-922.58c-45.304-21.574-44.029-20.533-70.062-34.442-24.383-13.027-47.857-31.02-47.857-69.286s21.426-69.286 47.857-69.286c14.922 0 72.058 28.677 95.834 39.852 3.8622 1.8153-25.772 116.5-25.772 133.16z" + /> + <path + id="path4709" + sodipodi:rx="47.857143" + sodipodi:ry="69.285713" + style="stroke:#dc942d;stroke-width:1.3269;fill:#e9b040" + sodipodi:type="arc" + d="m-127.14-1026.3c0 38.265-21.426 69.286-47.857 69.286s-47.857-31.02-47.857-69.286 21.426-69.286 47.857-69.286 47.857 31.02 47.857 69.286z" + transform="matrix(.57553 -.42894 .37596 .70672 278.24 -320.7)" + sodipodi:cy="-1026.3048" + sodipodi:cx="-175" + /> + </g + > + <g + id="g4705" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + > + <path + id="path4823" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m37.143-758.45 120.34 94.188 254.66 406.53-23.571-28.571-237.52-372.24-108.91-85.616-5-14.286z" + /> + <path + id="path4897" + sodipodi:nodetypes="ccccccc" + style="filter:url(#filter4915);fill:#616161" + d="m38.571-753.45 117.48 91.688 250.73 399.38-15-20.714l-239.65-376.88-114.63-89.19 1.0714-4.2857z" + /> + </g + > + <g + id="g4709" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 276.01 367.98)" + > + <path + id="path4713" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m37.143-758.45 120.34 94.188 254.66 406.53-23.571-28.571-237.52-372.24-108.91-85.616-5-14.286z" + /> + <path + id="path4715" + sodipodi:nodetypes="ccccccc" + style="filter:url(#filter4915);fill:#616161" + d="m38.571-753.45 117.48 91.688 250.73 399.38-15-20.714l-239.65-376.88-114.63-89.19 1.0714-4.2857z" + /> + </g + > + <g + id="g4863" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.45090 0 0 .39774 212.21 385.83)" + > + <g + id="g4855" + > + <g + id="g4843" + transform="matrix(.72721 .021564 -.021564 .72721 354.54 222.98)" + > + <path + id="path4845" + sodipodi:nodetypes="cccsccc" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + d="m-239-972.51c14.215 0 15.517 22.011 15.517 37.246v75.182c0 15.235-17.306 30.56-31.522 30.56-14.215 0-25.66-12.265-25.66-27.499l4.1872-71.654c1.6749-18.252 4.0001-21.636 37.477-43.834z" + /> + <rect + id="rect4847" + ry="27.499" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + height="130.18" + width="51.319" + y="-976" + x="-252.19" + /> + </g + > + <g + id="g4825" + transform="matrix(.72716 -.023365 .023365 .72716 416.46 145.84)" + > + <path + id="path4827" + sodipodi:nodetypes="cssssc" + style="stroke:#dc942d;fill:#e9b040" + d="m-166.42-945.17c-19.526 2.3229-16.183 2.0087-27.728 2.7508-10.813 0.69508-22.394-0.774-30.611-15.782-8.2172-15.008-7.8349-32.274 0.8538-38.566 4.9053-3.5521 29.846-5.9056 40.062-7.1827 1.6595-0.2074 13.845 52.244 17.423 58.779z" + /> + <path + id="path4829" + sodipodi:rx="47.857143" + sodipodi:ry="69.285713" + style="stroke:#dc942d;stroke-width:2.3567;fill:#e9b040" + sodipodi:type="arc" + d="m-127.14-1026.3c0 38.265-21.426 69.286-47.857 69.286s-47.857-31.02-47.857-69.286 21.426-69.286 47.857-69.286 47.857 31.02 47.857 69.286z" + transform="matrix(.32873 -.23804 .21474 .39220 103.16 -613.89)" + sodipodi:cy="-1026.3048" + sodipodi:cx="-175" + /> + </g + > + </g + > + <g + id="g4849" + transform="matrix(.72721 .021564 -.021564 .72721 396.96 213.38)" + > + <path + id="path4851" + sodipodi:nodetypes="cccsccc" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + d="m-239-972.51c14.215 0 15.517 22.011 15.517 37.246v75.182c0 15.235-17.306 30.56-31.522 30.56-14.215 0-25.66-12.265-25.66-27.499l4.1872-71.654c1.6749-18.252 4.0001-21.636 37.477-43.834z" + /> + <rect + id="rect4853" + ry="27.499" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + height="130.18" + width="51.319" + y="-976" + x="-252.19" + /> + </g + > + </g + > + <path + id="path4796" + style="fill:#ab8030" + d="m437.02 402.84-2.7136 18.543 0.50479 3.7255 22.109-1.9165-15.151-20.804-4.7488 0.45227z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path4799" + style="opacity:.14602;filter:url(#filter4825);fill:#000000" + d="m493.46 111.51-3.0305 20.708 21.718 34.345c5.495 12.563-17.671 6.9923-25.759 13.89l56.063-5.0508-44.952-66.165-4.0406 2.2728z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path8401" + style="stroke:#dc942d;stroke-width:.31659px;fill:#e9b040" + d="m197.05 4.3677-15.95 3.9862-3.65 16.332c53.71 82.104 100.15 142.39 150.23 213.59l-1.2792 2.5584 4.7422 6.5834 3.0816-2.0285 23.517 31.263-3.8376 2.5584 7.6752 10.234 2.5584-1.9188 18.82 27.704-1.7315 4.1735 73.735 109.48 61.402 5.1168 5.1168-4.4772 0.7172-33.227-105.2-108.58-4.8907-0.26493-24.453-32.465 2.7458-4.5548-4.516-6.0214-4.4772 0.90453-16.739-22.8-2.7457 0.67839-22.651-32.206c2.1269-7.3413-4.2183-13.329-7.1132-17.308l-5.1168 1.2404-33.221-42.401c-0.97368-10.418-5.7355-14.391-9.6328-18.962l-5.4915 1.318-81.65-110.51z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path3818" + style="stroke:#dc942d;stroke-width:.31659px;fill:#cd993a" + d="m206.81 42.16-9.3206 2.0466 49.399 64.971c-1.108 2.0097 0.53231 5.8324 4.6895 6.3317l11.813 15.948c-1.5722 1.9546 0.18828 6.4607 4.9764 6.7077l33.42 45.104-6.3318 1.3554 35.28 48.844 15.829-1.3554-139.76-189.96z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path4597" + style="opacity:.16372;fill-opacity:.91373;filter:url(#filter4810);stroke:#dc942d;fill:#000000" + d="m-268.19-1120.1-7.0938 26.781-45.938 9.5938 56.062 81.312 314.66 427.28 0.8125-0.0625 81.844 83.188 46.406 65 27.156-1.4062-437.62-593.41 2.5938-2.3124 3.5312-38.875-42.406-57.094zm46.781 138.19 10.688 5.625 112.5 154.72-5.3438 1c-0.60646 0.26653-1.1427 0.6134-1.625 1l-116.23-162.38zm140.09 183.66 35.312 48.562-6.8438 1.2812c-0.36554 0.16064-0.71087 0.35693-1.0312 0.5625l-35.344-49.406c1.5574-0.00037 3.1927-0.13745 4.9375-0.4375l2.9688-0.5625zm52.219 71.844 105.53 145.12-10.719-0.71875-0.78125 0.15625-102.53-143.28c1.2819-0.0451 2.6283-0.19625 4.0312-0.4375l4.4688-0.84375z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4679" + style="filter:url(#filter4685);fill:#c99738" + d="m325.27-162.49 6.0609 16.162 216.17 258.6-12.122 59.346 214.15 33.588 4.0406-18.183 4.0406-80.812-335.37-321.23-16.162 4.0406-149.5-218.19h-20.203l-10.102 18.183h-54.548l18.183 22.223 32.325-6.0609 145.46 210.11-10.102 20.203-32.325 2.0203z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4689" + style="opacity:.15044;filter:url(#filter4691);fill:#000000" + d="m607.72 66.003-214.01-240.27 200.71 252.64 13.3-12.367z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4695" + style="opacity:.24336;filter:url(#filter4705);fill:#000000" + d="m251.43-452.73c-19.873 11.391-48.892 1.4424-91.601-40.451l54.458 70.451-64.29 5.71c5.5804 5.3572 2.5894 3.6234 3.8841 9.4635l66.116-5.1778 31.429-40z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4801" + sodipodi:rx="16.414978" + sodipodi:ry="22.475895" + style="fill:#806024" + sodipodi:type="arc" + d="m-269.71-943.09a16.415 22.476 0 1 1 -32.83 0 16.415 22.476 0 1 1 32.83 0z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.35570 -.18370 .17741 .36832 463.96 358.46)" + sodipodi:cy="-943.08966" + sodipodi:cx="-286.1257" + inkscape:export-xdpi="240" + /> + <g + id="layer13" + inkscape:label="hook_Cables" + inkscape:groupmode="layer" + > + <g + id="g4732" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 275.87 368.71)" + inkscape:export-xdpi="240" + > + <path + id="path4734" + sodipodi:nodetypes="ccccccccc" + style="fill:#999999" + d="m-271.73-664.54-4.0406-315.17c-0.24917-18.45 17.258-26.03 27.274-15.657l176.27 171.73 20.708 26.769-199.51-189.4c-7.567-5.5468-15.96-1.8183-15.657 8.5863l8.0812 314.16-13.132-1.0102z" + /> + <path + id="path4736" + sodipodi:nodetypes="ccccccccc" + style="opacity:.31416;filter:url(#filter4819);fill:#1a1a1a" + d="m-266.68-664.54-5.0508-314.16c-0.24917-18.45 14.733-21.989 24.749-11.617l180.82 174.25 12.627 17.678-197.48-187.89c-7.567-5.5468-17.981-2.8285-17.678 7.5761l8.0812 314.66-6.0609-0.50507z" + /> + </g + > + <g + id="g4876" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + > + <path + id="path4815" + sodipodi:nodetypes="ccccccccc" + style="fill:#999999" + d="m-271.73-664.54-4.0406-315.17c-0.24917-18.45 17.258-26.03 27.274-15.657l131.32 132.84 17.678 26.769-151.52-150.51c-7.567-5.5468-15.96-1.8183-15.657 8.5863l8.0812 314.16-13.132-1.0102z" + /> + <path + id="path4817" + sodipodi:nodetypes="ccccccccc" + style="opacity:.31416;filter:url(#filter4819);fill:#1a1a1a" + d="m-266.68-664.54-5.0508-314.16c-0.24917-18.45 14.733-21.989 24.749-11.617l129.8 127.78 12.627 17.678-146.47-141.42c-7.567-5.5468-17.981-2.8285-17.678 7.5761l8.0812 314.66-6.0609-0.50507z" + /> + </g + > + </g + > + <g + id="layer14" + inkscape:label="hooks" + inkscape:groupmode="layer" + > + <g + id="g5314" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 365.04)" + > + <g + id="g5204" + transform="translate(-57.579 -55.558)" + > + <g + id="g4324" + transform="translate(153.54 48.487)" + > + <g + id="g4147" + transform="translate(12.2)" + > + <g + id="g4150" + transform="matrix(-1 0 0 1 -745.06 -.71429)" + > + <path + id="path4157" + sodipodi:nodetypes="cccc" + style="stroke:#dc942d;stroke-width:1px;fill:#b18140" + d="m-304.14-558.09-11.071-0.00001c-31.385 6.5128 21.096 63.164-89.286 64.286 64.904 19.436 114.57 72.814 100.36-64.286z" + /> + <path + id="path4159" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:.91653px;fill:#e9b040" + d="m-318.12-543.86c0.63232-19.093 21.129-18.968 27.981-2.0218 21.328 71.118-36.137 126.69-89.88 86.938l-23.742 1.0109-0.84792-36.392c72.424 4.767 85.287-12.687 86.488-49.534z" + /> + </g + > + <path + id="path4167" + style="opacity:.60177;filter:url(#filter4371);fill:#cd6c0e" + sodipodi:nodetypes="ccccccccccccccccc" + transform="matrix(-1 0 0 1 -736.49 -51.429)" + d="m-290.75-471.15-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path4169" + style="opacity:0.36;filter:url(#filter4986);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(-.88061 0 0 1 -699.46 -.71429)" + d="m-303.06-467.06c-21.9 18.71-57.315 11.409-73.228 6.5568 10.922 11.663 24.613 14.119 40.922 15.175 58.512-5.3958 64.291-66.869 60.592-78.31-4.9507 24.885-12.467 36.507-28.286 56.578z" + /> + <path + id="path4171" + d="m-315.48-481.38-0.19708 4.4673 6.5714-5.8181-3.9416-1.0518-2.4327 2.4026v-0.00003z" + style="opacity:.58850;filter:url(#filter4371);fill:#cd6c0e" + transform="matrix(-1 0 0 1 -745.06 -.71429)" + /> + </g + > + <g + id="g4293" + > + <g + id="g5193" + transform="matrix(-.48416 -.87498 .87498 -.48416 -278.88 -780.73)" + > + <path + id="path5195" + sodipodi:nodetypes="csccccc" + style="fill:#999999" + d="m-244.97-471.84c-1.6619 0.0357-3.32 0.49055-4.875 1.375-4.9762 2.8302-6.7434 9.0973-3.9375 14.062l2.75 4.6562c4.8142 5.7055 18.509-1.562 18-8.4688l-2.7812-6.4062c-1.929-3.4136-5.5001-5.2973-9.1562-5.2188z" + /> + <path + id="path5197" + sodipodi:nodetypes="ccccc" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + d="m-246.56-471.38-1.524 1.1437c5.3166 2.6477 9.3971 7.5423 12.262 15.581 0.68443-0.14901 1.1575-2.4224 1.8646-2.5114-2.3262-7.1016-6.6782-11.649-12.603-14.214z" + /> + <path + id="path5199" + sodipodi:nodetypes="ccccc" + style="opacity:0.36;filter:url(#filter4862);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-248.02-468.41c-2.6514 0.16807-3.9727-1.3565-4.1161 4.9818 0.0456 3.6148 1.7736 8.1604 4.7342 13.388 3.9468 1.2695 5.6952 0.867 8.0156-0.68133-5.6755-8.4537-8.4916-12.922-8.6337-17.689z" + /> + </g + > + <g + id="g4270" + > + <path + id="path5187" + sodipodi:nodetypes="ccccccccccc" + style="fill:#333333" + d="m-527.88-405.39c49.167 18.836 32.944 46.541 25.358 52.084-2.868 5.7018 11.078 20.752 32.978 41.102 9.3733 15.331-50.537 10.585-47.52 31.001 29.523 34.687 77.464 5.4288 104.34 19.002l-24.496 0.50508c-17.943-14.555-81.402 14.761-104.55-18.183-3.132-40.512 41.427-20.24 35.86-27.274-10.615-10.599-31.822-36.629-28.284-44.447 15.556-38.992-8.2316-42.958-25.759-55.053l32.072 1.2627z" + /> + <g + id="g4265" + > + <path + id="path5155" + sodipodi:nodetypes="cccccsc" + style="fill:#999999" + d="m-490.44-472.19c-3.6561-0.0786-7.2272 1.8052-9.1562 5.2188l-37.584 63.239c-1.5222 6.72 12.593 13.655 17.406 11.125l38.15-64.15c2.8059-4.9652 1.0386-11.232-3.9375-14.062-1.555-0.88445-3.2131-1.3393-4.875-1.375z" + /> + <path + id="path5157" + sodipodi:nodetypes="cccc" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + transform="matrix(-1 0 0 1 -735.42 -.35714)" + d="m-242.94-472.03-2.375 0.46875 41.474 67.281-39.099-67.75z" + /> + <path + id="path5159" + sodipodi:nodetypes="cccccccc" + style="opacity:0.36;filter:url(#filter5023);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + transform="matrix(-1 0 0 1 -735.42 -.35714)" + d="m-252.16-477.38-6.4062 5.7188 11.656 20c0.75981 2.4439 1.9846 5.1448 3.5625 8.0625 0.5025 0.17254 0.96906 0.32006 1.4062 0.4375l30.697 49.602 9.2812-3.5938-50.197-80.227z" + /> + </g + > + <g + id="g5131" + transform="matrix(-.21975 .73955 -.99216 .12498 -856.18 -287.69)" + > + <path + id="path5133" + sodipodi:nodetypes="cccscc" + style="fill:#999999" + d="m-99.076-415.94c-3.6422 5.8284-10.243 9.872-17.906 10.312l42.156 71.375c2.8059 4.9652 8.615 4.0501 13.591 1.2199 4.9761-2.8302 7.1522-6.4735 4.3463-11.439l-42.188-71.469z" + /> + <path + id="path5135" + style="opacity:0.36;filter:url(#filter5015);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-102.95-409.84c-2.3442 1.7579-5.0761 3.11-8.0625 3.875l43.156 73.938 9.2812-3.5625-44.375-74.25z" + /> + </g + > + <g + id="g4177" + transform="translate(.71429 10.714)" + > + <path + id="path5129" + sodipodi:rx="20.455589" + sodipodi:ry="17.67767" + style="stroke:#dc942d;fill:#e9b040" + sodipodi:type="arc" + d="m-285.37-414.53c0 9.7631-9.1583 17.678-20.456 17.678-11.297 0-20.456-7.9146-20.456-17.678 0-9.7631 9.1583-17.678 20.456-17.678 11.297 0 20.456 7.9146 20.456 17.678z" + transform="matrix(-.95062 0 0 1 -720.66 -12.515)" + sodipodi:cy="-414.52737" + sodipodi:cx="-305.82367" + /> + <path + id="path5137" + sodipodi:nodetypes="cccc" + style="opacity:0.36;filter:url(#filter4850);fill:#000000" + transform="matrix(-.014536 -.99989 .99989 -.014536 -15.094 -727.77)" + d="m-285.71-419.52c-6.5415-2.8429-12.593 3.2084-8.75 10.357-3.0743 1.5967-6.0644-4.8845-3.0357-9.6429 2.7546-3.0128 6.1921-5.6467 11.786-0.71428z" + /> + <path + id="path5227" + style="opacity:0.36;filter:url(#filter5003);fill:#000000" + d="m-429.89-445.07c-0.83369 0-1.6627 0.0637-2.4688 0.15625 5.5253 3.1179 9.2188 8.6531 9.2188 15 0 8.9955-7.4063 16.419-16.969 17.531 2.9704 1.6722 6.4682 2.6562 10.219 2.6562 10.739 0 19.438-7.9244 19.438-17.688 0-9.7631-8.6981-17.656-19.438-17.656z" + /> + </g + > + <g + id="g5123" + transform="matrix(.29451 .71309 -.69253 .72139 -637.85 -132.89)" + > + <path + id="path5125" + style="fill:#999999" + d="m-99.076-415.94c-3.6422 5.8284-10.243 9.872-17.906 10.312l42.156 71.375c2.8059 4.9652 9.0551 6.674 14.031 3.8438 4.9761-2.8302 6.7121-9.0973 3.9062-14.062l-42.188-71.469z" + /> + <path + id="path5127" + style="opacity:0.36;filter:url(#filter5031);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-102.95-409.84c-2.3442 1.7579-5.0761 3.11-8.0625 3.875l43.156 73.938 9.2812-3.5625-44.375-74.25z" + /> + </g + > + <path + id="path5185" + sodipodi:nodetypes="ccccccccc" + style="fill:#666666" + d="m-560.2-407.16c-10.607 14.614-16.668 26.348-22.728 24.244-11.318 16.387-7.7973 21.851 1.5152 28.284 23.958 13.974 30.469 5.4702 38.386 75.256 33.39 37.315 70.986 7.4753 104.05 17.173l-54.043-61.114c-13.041 8.5956-30.514 0.47369-40.406-27.274 11.375-16.104 7.2873-35.555-2.5254-42.931l-24.244-13.637z" + /> + <path + id="path5191" + style="opacity:0.36;filter:url(#filter4850);fill:#000000" + sodipodi:nodetypes="cccc" + transform="matrix(-.49639 -.86810 .86810 -.49639 -312.41 -729.91)" + d="m-170.89-357.91c-6.7201 2.3357-15.772 2.8602-17.465 12.509-3.0743 1.5967-3.4548-4.235 0.6453-10.065 8.1866-5.6584 13.788-6.1009 16.819-2.4442z" + /> + <path + id="path5217" + d="m-290.4-279.71 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + transform="matrix(-1 0 0 1 -823.85 -40.615)" + /> + <path + id="path5219" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + sodipodi:nodetypes="ccccccccccccccccc" + transform="matrix(-1 0 0 1 -648.59 94.24)" + d="m-205.55-372.64 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path5221" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + transform="matrix(-1 0 0 -1 -759.71 -747.82)" + d="m-197.97-353.45 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path5223" + d="m-211.61-355.98 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + transform="matrix(-1 0 0 1 -681.42 78.583)" + /> + </g + > + </g + > + <rect + id="rect5151" + style="stroke:#dc942d;stroke-width:1.3294;fill:#e9b040" + transform="matrix(-.51450 .85749 .88231 .47067 0 0)" + ry="11.588" + height="36.811" + width="190.48" + y="-677.75" + x="-359.74" + /> + <path + id="path5161" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + transform="matrix(-.82009 -.57223 .57223 -.82009 -320.47 -1289.1)" + d="m-319.03-598.94-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path5163" + style="opacity:0.36;filter:url(#filter4998);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(-1 0 0 1 -733.99 0)" + d="m-325.75-619.01c-8.2376 2.6141-15.197 5.8985-19.731 12.721 12.673 22.081 72.623 128.7 86.515 151.7 11.37 2.0462 13.936 2.2936 20.777-6.0194-34.04-58.374-56.101-113.01-87.561-158.4z" + /> + <g + id="g5049" + transform="translate(20)" + > + <rect + id="rect4858" + style="stroke:#b5c9ce;fill:#797979" + ry="12.372" + height="281.43" + width="58.571" + y="-669.88" + x="-418.57" + /> + <path + id="path4992" + style="opacity:0.36;filter:url(#filter5016);fill:#ffffff" + d="m-368.73-455.44c0.19662-83.276-2.1355-176.39-2.0701-202.21l-17.73 2.9177c-1.6983 70.952-0.86419 181.16-2.0572 256.13l21.186 0.58137c0.41356-17.873 0.62328-37.322 0.67073-57.417z" + /> + <path + id="path5006" + style="opacity:0.36;filter:url(#filter5012);fill:#333333" + d="m-393.98-448.37c0.0876-83.276-0.95179-176.39-0.92266-202.21l-7.9023 2.9177c-0.75696 70.952-0.38517 181.16-0.91693 256.13l9.443 0.58137c0.18432-17.873 0.2778-37.322 0.29895-57.417z" + /> + </g + > + <g + id="g4951" + transform="matrix(-.74889 -.18545 -.17056 -.98535 -452.67 -843.51)" + > + <path + id="path4953" + style="fill:#999999" + d="m-99.076-415.94c-3.6422 5.8284-10.243 9.872-17.906 10.312l42.156 71.375c2.8059 4.9652 9.0551 6.674 14.031 3.8438 4.9761-2.8302 6.7121-9.0973 3.9062-14.062l-42.188-71.469z" + /> + <path + id="path4955" + style="opacity:0.36;filter:url(#filter5031);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-102.95-409.84c-2.3442 1.7579-5.0761 3.11-8.0625 3.875l43.156 73.938 9.2812-3.5625-44.375-74.25z" + /> + </g + > + <path + id="path4989" + sodipodi:rx="20.455589" + sodipodi:ry="17.67767" + style="stroke:#dc942d;fill:#e9b040" + sodipodi:type="arc" + d="m-285.37-414.53c0 9.7631-9.1583 17.678-20.456 17.678-11.297 0-20.456-7.9146-20.456-17.678 0-9.7631 9.1583-17.678 20.456-17.678 11.297 0 20.456 7.9146 20.456 17.678z" + transform="matrix(.95062 0 0 1 -9.0415 -8.5863)" + sodipodi:cy="-414.52737" + sodipodi:cx="-305.82367" + /> + <g + id="g4947" + transform="matrix(-.74575 .19769 -.62355 -.78179 -549.28 -665.62)" + > + <path + id="path4761" + sodipodi:nodetypes="cccscc" + style="fill:#999999" + d="m-99.076-415.94c-3.6422 5.8284-10.243 9.872-17.906 10.312l42.156 71.375c2.8059 4.9652 8.615 4.0501 13.591 1.2199 4.9761-2.8302 7.1522-6.4735 4.3463-11.439l-42.188-71.469z" + /> + <path + id="path4765" + style="opacity:0.36;filter:url(#filter5015);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-102.95-409.84c-2.3442 1.7579-5.0761 3.11-8.0625 3.875l43.156 73.938 9.2812-3.5625-44.375-74.25z" + /> + </g + > + <path + id="path4991" + sodipodi:nodetypes="cccc" + style="opacity:0.36;filter:url(#filter4850);fill:#000000" + d="m-285.71-419.52c-6.5415-2.8429-12.593 3.2084-8.75 10.357-3.0743 1.5967-6.0644-4.8845-3.0357-9.6429 2.7546-3.0128 6.1921-5.6467 11.786-0.71428z" + /> + <g + id="g4907" + transform="matrix(.94830 0 0 .94830 -38.09 -26.014)" + > + <g + id="g4901" + transform="translate(88.388 .50508)" + > + <path + id="path4903" + sodipodi:nodetypes="ccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#b18140" + d="m-304.64-558.45 11.429 0.71428c31.385 6.5128 25.689 119.59-48.929 111.79l-15.883-2.935c42.57-27.61 50.263-66.927 53.383-109.56z" + /> + <path + id="path4905" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:.91653px;fill:#e9b040" + d="m-318.12-543.86c0.63232-19.093 21.129-18.968 27.981-2.0218 21.328 71.118-36.137 126.69-89.88 86.938l-23.742 1.0109-0.84792-36.392c72.424 4.767 85.287-12.687 86.488-49.534z" + /> + </g + > + <rect + id="rect4899" + style="stroke:#dc942d;stroke-width:.95263;fill:#e9b040" + ry="8.601" + height="27.321" + width="131.78" + y="-555.97" + x="-312.16" + /> + </g + > + <path + id="path4913" + sodipodi:nodetypes="cccccccccccccccccccc" + style="opacity:0.36;filter:url(#filter4937);fill:#000000" + d="m-282.84-543.81 29.281 17.656c-7.297 30.518-31.321 40.941-56.062 41.938l1.7188 24.5c-4.1373-0.89438-7.8287-1.9027-10.812-2.8125 12.707 9.6984 24.629 14.131 40.938 15.188 15.208-1.4024 26.845-6.6028 35.688-13.719 0.59712 0.87512 0.94438 1.4417 1.625 2.4375 1.4631-2.1968 2.506-4.5418 3.3125-6.875 20.56-20.68 22.515-52.279 19.969-60.156-2.9619 14.888-6.8481 25.02-12.875 35.062-1.4389-2.384-4.0792-6.4714-8.6875-13.281 1.2209-6.4347 1.8794-13.669 1.875-21.781l15.656-0.5c-6.014-1.6248-11.602-9.7735-12.625-17.656h-49zm31.469 68.656c1.5199 2.4836 2.9414 4.7133 4.5625 7.1562-10.859 8.5562-24.739 11.169-37.875 11.031 13.03-2.4142 24.742-7.8717 33.312-18.188z" + /> + <rect + id="rect4862" + ry="11.588" + style="stroke:#dc942d;stroke-width:1.3294;fill:#e9b040" + transform="matrix(.51450 .85749 -.88231 .47067 0 0)" + height="36.811" + width="190.48" + y="-47.559" + x="-705.65" + /> + <g + id="g5044" + transform="translate(3.5714 6.4286)" + > + <path + id="path3935" + sodipodi:nodetypes="csccsccc" + style="fill:#999999" + d="m-244.97-471.84c-1.6619 0.0357-3.32 0.49055-4.875 1.375-4.9762 2.8302-6.7434 9.0973-3.9375 14.062l64.312 108.94c2.8059 4.9652 9.0551 6.674 14.031 3.8438 4.9761-2.8302 6.7121-9.0973 3.9062-14.062l-64.28-108.94c-1.929-3.4136-5.5001-5.2973-9.1562-5.2188z" + /> + <path + id="path3937" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + d="m-242.94-472.03-2.375 0.46875 4.5312 7.3125c-0.42705-0.22613-0.86668-0.45285-1.3125-0.65625l-1.5625 1.125c2.4005 1.2546 4.5377 2.9546 6.4062 5.2188l3.75 6.0625c0.65068 1.3869 1.2659 2.8974 1.8125 4.5312 0.21731-0.0429 0.43023-0.32427 0.625-0.65625l39.094 63.031-38.125-64.656c0.10635-0.10878 0.19764-0.17531 0.3125-0.1875-1.4546-4.7526-3.8146-8.4-6.9688-11.094l-6.1875-10.5z" + /> + <path + id="path3939" + style="opacity:0.36;filter:url(#filter5023);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-252.16-477.38-6.4062 5.7188 11.656 20c0.75981 2.4439 1.9846 5.1448 3.5625 8.0625 0.5025 0.17254 0.96906 0.32006 1.4062 0.4375l48.375 82.938 9.2812-3.5938-67.875-113.56z" + /> + </g + > + <path + id="path4781" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + sodipodi:nodetypes="ccccccccccccccccc" + transform="matrix(.82009 -.57223 -.57223 -.82009 -401.38 -1292)" + d="m-319.03-598.94-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path4980" + d="m-325.75-619.01c-8.2376 2.6141-15.197 5.8985-19.731 12.721 12.673 22.081 73.128 124.66 87.02 147.66 6.9255-10.399 12.841-11.176 21.787-13.595-34.04-58.374-57.617-101.4-89.076-146.78z" + sodipodi:nodetypes="ccccc" + style="opacity:0.36;filter:url(#filter4998);fill:#000000" + transform="matrix(.94862 -.019232 .020269 .99979 -7.247 -5.7086)" + /> + <path + id="rect4860" + style="stroke:#dc942d;stroke-width:.95263;fill:#e9b040" + d="m-475.25-556.69c-4.7649 0-8.625 3.8288-8.625 8.5938v10.125c0 4.7649 3.8601 8.5938 8.625 8.5938h81.438c0.60084 0.13201 1.2334 0.21875 1.875 0.21875h114.56c4.7649 0 8.5938-3.8288 8.5938-8.5938v-10.125c0-4.7649-3.8288-8.5938-8.5938-8.5938h-81.438c-0.60084-0.13201-1.2334-0.21875-1.875-0.21875h-114.56z" + /> + <path + id="path4864" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:.91653px;fill:#e9b040" + d="m-308.52-543.35c0.63232-19.093 21.129-18.968 27.981-2.0218 21.328 71.118-36.137 126.69-89.88 86.938l-23.742 1.0109-0.84792-36.392c72.424 4.767 85.287-12.687 86.488-49.534z" + /> + <path + id="path4915" + sodipodi:nodetypes="ccccccc" + style="opacity:0.36;filter:url(#filter4971);fill:#000000" + d="m-448.68-550.39c17.401-0.0479 161.6-5.9524 171.39 6.566 26.932 32.654-11.694 80.972-54.548 87.883l-2.0203-28.789c24.742-0.99644 43.716-13.424 51.013-43.942-15.421-5.374-128.11-1.9192-164.62-4.0002-3.7968-5.906-2.7123-11.812-1.2134-17.718z" + /> + <path + id="path3993" + style="opacity:.68584;filter:url(#filter4865);fill:#cd6c0e" + d="m-316.23-575.1zm19.406 24.75-8.875 0.4375 14.719 20.594 0.0937-13.469-5.9375-7.5625h0.00005zm20.969 23.312-8.4375 7.1562 4.0938 5.6875-6.2812 3.5938-7.7188 10.875-14.281-12.281 19.156 27.188 13.156-26.375 18.438 13.219 15.719-3.25-4.0625-10.094-21.125-5.7812-0.625-5.1562-5.125-2.7812-2.9062-2zm-2.6875 28.812-5.5625 13.125 19.344 17.656 4.8125 13.688 37.438 37.188 4.9375-13.156 17.156 5.7188 10.406-10.375-1.75-4.0312 4.5625 1.1875 3.9375-3.9062-12.875-5.7188 6.1562-8.7812-29.375 4.875-6.6562-21.906-11.969-8.2188 4.5938 11.406-8.4688-10.781-12.25 2.7188 11.062 15.469-8.6875-5.3438-8.9375-3.5-17.906-15.406 0.53125-6.2812 5.25 8.875h7.0938l-12.844-14.5z" + inkscape:export-ydpi="600" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\Grue.png" + transform="matrix(.54251 .087845 -.087845 .54251 -178.78 -217.19)" + inkscape:export-xdpi="600" + /> + <path + id="path4807" + sodipodi:nodetypes="cccccc" + style="fill:#333333" + d="m-344.83-274.19c-18.47 26.408 22.524 24.768 44.046 8.4996l54.808-58.43-12.122-13.637-32.855-1.7857-53.877 65.354z" + /> + <path + id="path4818" + sodipodi:nodetypes="ccccc" + style="fill:#4d4d4d" + d="m-335-269.88 51.786-60.357 32.857 0.71429l-49.65 63.94c-17.599 12.423-55.403 20.134-35-4.2857z" + /> + <path + id="path4757" + sodipodi:nodetypes="cccc" + style="fill:#333333" + d="m-277.79-326.14c7.0711 0.24893 14.142 1 21.213 0l11.617 12.122c-10.949-4.0392-27.236-6.7439-32.83-12.122z" + /> + <path + id="path4728" + sodipodi:nodetypes="ccccccccc" + style="fill:#666666" + d="m-210.11-409.48c10.607 14.614 16.668 26.348 22.728 24.244 11.318 16.387 7.7973 21.851-1.5152 28.284-23.958 13.974-30.469 5.4702-38.386 75.256-33.39 37.315-67.956 5.455-104.05 17.173l54.043-61.114c13.041 8.5956 30.514 0.47369 40.406-27.274-11.375-16.104-7.2873-35.555 2.5254-42.931l24.244-13.637z" + /> + <path + id="path4754" + sodipodi:nodetypes="ccccccccccc" + style="fill:#333333" + d="m-210.11-409.22c12.958 18.836 16.553 26.338 22.624 24.81 23.071 32.471-20.169 26.813-29.947 45.143-9.3733 15.331-7.5466 36.344-10.563 56.76-29.523 34.687-77.464 5.4288-104.34 19.002l24.496 0.50508c14.913-5.969 88.473 18.297 104.55-18.183 3.132-40.512 8.0702-51.554 13.637-58.589 10.615-10.599 49.5-14.405 26.769-44.952-5.96 0.90902-8.4359-5.5828-22.728-24.244l-24.496-0.25254z" + /> + <path + id="path4763" + sodipodi:nodetypes="cccc" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + d="m-216.06-426.44c-0.24438 0.26578-0.49167 0.52734-0.75 0.78125l10.915 16.491-10.165-17.272z" + /> + <path + id="path4820" + sodipodi:nodetypes="cccc" + style="opacity:0.36;filter:url(#filter4850);fill:#000000" + d="m-170.89-357.91c-6.7201 2.3357-13.486 4.4584-15.179 14.107-3.0743 1.5967-6.243-2.9202-2.1429-8.75 3.1117-3.9057 12.442-8.3253 17.321-5.3571z" + /> + <g + id="g4802" + transform="matrix(.48416 -.87498 -.87498 -.48416 -461.13 -784.06)" + > + <path + id="path4792" + sodipodi:nodetypes="csccccc" + style="fill:#999999" + d="m-244.97-471.84c-1.6619 0.0357-3.32 0.49055-4.875 1.375-4.9762 2.8302-6.7434 9.0973-3.9375 14.062l2.75 4.6562c4.8142 5.7055 18.509-1.562 18-8.4688l-2.7812-6.4062c-1.929-3.4136-5.5001-5.2973-9.1562-5.2188z" + /> + <path + id="path4797" + sodipodi:nodetypes="ccccc" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + d="m-246.56-471.38-1.524 1.1437c5.3166 2.6477 9.3971 7.5423 12.262 15.581 0.68443-0.14901 1.1575-2.4224 1.8646-2.5114-2.3262-7.1016-6.6782-11.649-12.603-14.214z" + /> + <path + id="path4783" + sodipodi:nodetypes="ccccc" + style="opacity:0.36;filter:url(#filter4862);stroke:#000000;stroke-width:1px;fill:#1a1a1a" + d="m-248.02-468.41c-2.6514 0.16807-3.9727-1.3565-4.1161 4.9818 0.0456 3.6148 1.7736 8.1604 4.7342 13.388 3.9468 1.2695 5.6952 0.867 8.0156-0.68133-5.6755-8.4537-8.4916-12.922-8.6337-17.689z" + /> + </g + > + <path + id="path4893" + sodipodi:nodetypes="cccc" + style="opacity:0.36;filter:url(#filter4850);fill:#000000" + d="m-233.39-461.84c-9.2201-4.6286-16.7-1.2559-17.5 9.6429-1.2886 0.70382-4.4573-3.9916-0.35715-9.8214 3.1117-3.9057 14.049-7.7896 17.857 0.17857z" + /> + <path + id="path4881" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m-276.77-468.61 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <g + id="g4138" + transform="translate(-25 1.0714)" + > + <g + id="g5173" + transform="matrix(-1 0 0 1 -745.06 -.71429)" + > + <path + id="path5175" + sodipodi:nodetypes="cccc" + style="stroke:#dc942d;stroke-width:1px;fill:#b18140" + d="m-304.14-558.09-11.071-0.00001c-31.385 6.5128 21.096 63.164-89.286 64.286 64.904 19.436 114.57 72.814 100.36-64.286z" + /> + </g + > + <path + id="path5205" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4371);fill:#cd6c0e" + transform="matrix(-1 0 0 1 -736.49 -51.429)" + d="m-290.75-471.15-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path5209" + sodipodi:nodetypes="ccccc" + style="opacity:0.36;filter:url(#filter4986);fill:#000000" + transform="matrix(-.88061 0 0 1 -699.46 -.71429)" + d="m-303.06-467.06c-21.9 18.71-57.315 11.409-73.228 6.5568 10.922 11.663 24.613 14.119 40.922 15.175 58.512-5.3958 64.291-66.869 60.592-78.31-4.9507 24.885-12.467 36.507-28.286 56.578z" + /> + <path + id="path5213" + style="opacity:.58850;filter:url(#filter4371);fill:#cd6c0e" + transform="matrix(-1 0 0 1 -745.06 -.71429)" + d="m-315.48-481.38-0.19708 4.4673 6.5714-5.8181-3.9416-1.0518-2.4327 2.4026v-0.00003z" + /> + </g + > + <g + id="g4895" + > + <path + id="path4883" + sodipodi:nodetypes="ccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#b18140" + d="m-304.64-558.45 11.429 0.71428c31.385 6.5128 25.689 119.59-48.929 111.79l-15.357-2.5c42.57-27.61 49.737-67.362 52.857-110z" + /> + <path + id="path4726" + sodipodi:nodetypes="cccccccccc" + style="stroke:#dc942d;stroke-width:.91653px;fill:#e9b040" + d="m-306.47-558.38c-6.0598 0.23715-11.34 4.9849-11.656 14.531-1.2012 36.847-14.045 54.298-86.469 49.531v0.34375c-38.3-3.699-46.403-20.661-47.344-49.531-0.63232-19.093-21.116-18.978-27.969-2.0312-21.311 71.062 36.401 126.6 90.107 87.031l10.955 0.40625c53.397 38.074 109.89-17.186 88.719-87.781-3.4262-8.4731-10.284-12.737-16.344-12.5z" + /> + </g + > + <path + id="path4770" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4371);fill:#cd6c0e" + d="m-290.75-471.15-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path4774" + style="opacity:.58850;filter:url(#filter4371);fill:#cd6c0e" + d="m-293.24-497.19 1.7869 4.75 1.8159-1.6212 0.82245 3.4068 2.9025 4.6684-4.1206 6.2198 8.6654-7.5435-7.2433-8.5419 4.5475-8.2266-0.37592-8.0969-3.1054 1.2768-2.4675 10.124-1.5332-0.0724-1.0024 2.3534-0.69232 1.303z" + /> + <path + id="path4941" + sodipodi:nodetypes="ccccc" + style="opacity:0.36;filter:url(#filter4986);fill:#000000" + d="m-303.06-467.06c-21.9 18.71-57.315 11.409-73.228 6.5568 10.922 11.663 24.613 14.119 40.922 15.175 58.512-5.3958 64.291-66.869 60.592-78.31-4.9507 24.885-12.467 36.507-28.286 56.578z" + /> + <path + id="path4776" + style="opacity:.63274;filter:url(#filter4371);fill:#cd6c0e" + d="m-311.44-540.47-0.19708 4.4673 6.5714-5.8181-3.9416-1.0518-2.4327 2.4026v-0.00003z" + /> + <path + id="path4779" + style="opacity:.58850;filter:url(#filter4371);fill:#cd6c0e" + d="m-315.48-481.38-0.19708 4.4673 6.5714-5.8181-3.9416-1.0518-2.4327 2.4026v-0.00003z" + /> + <path + id="path4785" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4853);fill:#c87137" + d="m-313.13-267.08-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + /> + <path + id="path4831" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m-290.4-279.71 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path4869" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m-205.55-372.64 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path4871" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + sodipodi:nodetypes="ccccccccccccccccc" + transform="matrix(1 0 0 -1 6.566 -733.46)" + d="m-197.97-353.45 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path4873" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m-211.61-355.98 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + <path + id="path4993" + style="opacity:0.36;filter:url(#filter5003);fill:#000000" + d="m-300.11-440.78c-0.83369 0-1.6627 0.0637-2.4688 0.15625 5.5253 3.1179 9.2188 8.6531 9.2188 15 0 8.9955-7.4063 16.419-16.969 17.531 2.9704 1.6722 6.4682 2.6562 10.219 2.6562 10.739 0 19.438-7.9244 19.438-17.688 0-9.7631-8.6981-17.656-19.438-17.656z" + /> + <path + id="path5181" + sodipodi:nodetypes="ccccc" + style="fill:#4d4d4d" + d="m-410.06-270.59-51.786-60.357-32.857 0.71429 49.643 63.929c17.599 12.423 55.403 20.134 35-4.2857z" + /> + <path + id="path5179" + sodipodi:nodetypes="cccccc" + style="fill:#333333" + d="m-400.23-274.9c18.47 26.408-22.524 24.768-44.046 8.4996l-54.808-58.43 12.122-13.637 32.855-1.7857 53.877 65.354z" + /> + <path + id="path5189" + style="opacity:.43805;filter:url(#filter4680);fill:#ffffff" + sodipodi:nodetypes="cccc" + transform="matrix(-1 0 0 1 -745.06 -.71429)" + d="m-216.06-426.44c-0.24438 0.26578-0.49167 0.52734-0.75 0.78125l10.915 16.491-10.165-17.272z" + /> + <path + id="path5211" + style="opacity:.63274;filter:url(#filter4371);fill:#cd6c0e" + transform="matrix(-1 0 0 1 -752.64 -.20921)" + d="m-311.44-540.47-0.19708 4.4673 6.5714-5.8181-3.9416-1.0518-2.4327 2.4026v-0.00003z" + /> + <path + id="path5215" + d="m-313.13-267.08-3.6726-3.4488 2.3038-8.146-2.6576-5.974-1.2449 0.57366 0.51502-2.1912-0.99987-2.259-2.1469 6.0067-2.3465-3.7314 0.35145 15.042-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273 5.2837 1.9504-1.8836 3.9423 15.963-10.806z" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.60177;filter:url(#filter4853);fill:#c87137" + transform="matrix(-.79201 .61051 .61051 .79201 -538.88 135.68)" + /> + <path + id="path4321" + style="opacity:0.36;filter:url(#filter4986);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(-.88689 0 0 1 -827.47 7.8571)" + d="m-418.77-475.63c-21.9 18.71-57.315 11.409-73.228 6.5568 10.922 11.663 24.613 14.119 40.922 15.175 58.512-5.3958 64.291-66.869 60.592-78.31-4.9507 24.885-12.467 36.507-28.286 56.578z" + /> + </g + > + <path + id="path4875" + sodipodi:nodetypes="ccccccccccccccccc" + style="opacity:.82301;filter:url(#filter4841);fill:#4d4d4d" + d="m-308.36-230.21 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + </g + > + <path + id="path4877" + style="opacity:.38938;filter:url(#filter4841);fill:#4d4d4d" + sodipodi:nodetypes="ccccccccccccccccc" + transform="matrix(1 0 0 2.36 0 906.19)" + d="m-262.12-624.17 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + /> + </g + > + </g + > + <path + id="path4639" + style="opacity:.30088;filter:url(#filter4669);fill:#000000" + d="m-258.43-1014.6c14.362-8.5085 27.519 4.9436 44.273 24.749l122.23 167.69c11.99 13.134 10.875 19.449 6.0609 23.234l7.0711-3.0305 38.386 49.497c6.3402 11.416 11.509 22.182 1.0102 24.244l14.561 2.6838 108.68 142.78c14.593 22.628 48.354 65.901 50.529 89.65l14.214-4.1632 42.334 61.996 13.132 6.0609-441.44-597.51-26.264 5.0507 5.2241 7.0711z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <g + id="g4882" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + > + <g + id="g4790" + transform="matrix(.79685 0 0 .79685 -19.494 -201.33)" + > + <g + id="g4726" + > + <path + id="rect4723" + sodipodi:nodetypes="cccsccc" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + d="m-239-972.51c14.215 0 15.517 22.011 15.517 37.246v75.182c0 15.235-17.306 30.56-31.522 30.56-14.215 0-25.66-12.265-25.66-27.499l4.1872-71.654c1.6749-18.252 4.0001-21.636 37.477-43.834z" + /> + <rect + id="rect4721" + ry="27.499" + style="stroke:#dc942d;stroke-width:.86571;fill:#e9b040" + transform="matrix(.85293 .52202 0 1 0 0)" + height="130.18" + width="51.319" + y="-976" + x="-252.19" + /> + </g + > + <g + id="g4773" + transform="matrix(.99975 -.022485 .022485 .99975 10.593 -1.0627)" + > + <path + id="path4775" + style="stroke:#dc942d;stroke-width:1.3269;fill:#e9b040" + sodipodi:nodetypes="cssssc" + transform="matrix(.57553 -.42894 .37596 .70672 218.24 -311.42)" + d="m-104.28-922.61c-45.304-21.574-44.689-20.5-70.722-34.408-24.383-13.027-47.857-31.02-47.857-69.286s21.426-69.286 47.857-69.286c14.922 0 72.058 28.677 95.834 39.852 3.8622 1.8153-25.112 116.47-25.112 133.13z" + /> + <path + id="path4777" + sodipodi:rx="47.857143" + sodipodi:ry="69.285713" + style="stroke:#dc942d;stroke-width:1.3269;fill:#e9b040" + sodipodi:type="arc" + d="m-127.14-1026.3c0 38.265-21.426 69.286-47.857 69.286s-47.857-31.02-47.857-69.286 21.426-69.286 47.857-69.286 47.857 31.02 47.857 69.286z" + transform="matrix(.57553 -.42894 .37596 .70672 278.24 -320.7)" + sodipodi:cy="-1026.3048" + sodipodi:cx="-175" + /> + </g + > + <g + id="g4752" + > + <path + id="path4717" + sodipodi:nodetypes="cssssc" + style="stroke:#dc942d;fill:#e9b040" + d="m-166.42-945.17c-19.526 2.3229-16.183 2.0087-27.728 2.7508-10.813 0.69508-22.394-0.774-30.611-15.782-8.2172-15.008-7.8349-32.274 0.8538-38.566 4.9053-3.5521 29.846-5.9056 40.062-7.1827 1.6595-0.2074 13.845 52.244 17.423 58.779z" + /> + <path + id="path4719" + sodipodi:rx="47.857143" + sodipodi:ry="69.285713" + style="stroke:#dc942d;stroke-width:2.3567;fill:#e9b040" + sodipodi:type="arc" + d="m-127.14-1026.3c0 38.265-21.426 69.286-47.857 69.286s-47.857-31.02-47.857-69.286 21.426-69.286 47.857-69.286 47.857 31.02 47.857 69.286z" + transform="matrix(.32873 -.23804 .21474 .39220 103.16 -613.89)" + sodipodi:cy="-1026.3048" + sodipodi:cx="-175" + /> + </g + > + </g + > + <path + id="rect4730" + d="m-193.22-1093.8c-5.9127-0.061-10 6.2623-10 17.219-0.12256 15.947-1.3366 50.172-1.3633 67.463-16.053-3.753-31.124 4.524-36.077 34.22-2.6125 16.772 7.7184 41.333 20.742 56.842l-62.614 6.3587c12.242 15.49 29.468 11.765 50.031 11.556l36.014-5.5676c15.534-5.8514 21.759-19.847 22.327-30.235l15.569-3.2534c23.119-11.963 15.637-47.877-14.556-61.329l1.1684-51.767c0-15.244 4.2646-26.916-13.584-38.381-2.9036-1.8652-5.3426-3.101-7.6562-3.125h-0.00002z" + sodipodi:nodetypes="ccccccccccccscc" + style="opacity:.15929;filter:url(#filter4738);fill:#000000" + transform="matrix(.76145 0 0 .76145 -33.94 -239.41)" + /> + </g + > + <path + id="path4880" + style="opacity:.15929;filter:url(#filter4738);fill:#000000" + d="m-188.58-1091.8c-5.9127-0.061-10 6.2623-10 17.219-0.12256 15.947-1.9999 50.836-2.0266 68.126 20.853 23.396 35.254 41.45 30.072 69.257 30.416-0.0233 22.933-51.193 0.69987-62.656l2.495-50.44c0-15.244 2.8752-24.997-13.584-38.381-5.5569-4.5184-5.3426-3.101-7.6562-3.125h-0.00002z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccscc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.24107 0 0 .24107 380.42 416.96)" + inkscape:export-xdpi="240" + /> + <rect + id="rect4895" + style="fill:#67737c" + transform="matrix(.99305 .11765 -.11765 .99305 0 0)" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + ry="8.7112" + height="44.293" + width="76.113" + inkscape:export-xdpi="240" + y="329.44" + x="507.14" + /> + <path + id="path4718" + style="opacity:.27434;filter:url(#filter4728);fill:#000000" + d="m138.66-669.59-3.2812 0.5c-9.145-0.66963-5.8588 27.305-5.5625 39.156l3.5312 5.4062c-0.57392-32.138 0.33266-44.32 5.3125-45.062zm-9.0938 1-4.0625 0.78125c-3.5166 0.81277-7.7799-1.8843-6.0625 25.5l5.0312 6.5312c-0.19109-23.126-0.0617-30.938 5.0938-32.812z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4852" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + d="m734.2 7.1518 107.34 67.188 15.469 2.5312-122.81-69.719zm150.19 85.156-8.0312 3.8125 21.469 13.406-5.0625-12.469-8.375-4.75zm28.281 13.531-5.0625 9.8438 5.9688 3.6875-4.4375 5.7188-2.9688 13-17.906-5.875 28.094 17.812 2.0938-29.406 22.094 5.1562 13.281-9-7.625-7.7812-21.719 2.7188-2.5625-4.5-5.7812-0.625-3.4688-0.75zm8.5312 27.656-0.125 14.25 24.625 8.9375 8.7812 9.7812 6.2188-2.0625 10.125 9.4375 0.5625 0.25-0.6875-12.531 15.719-5 2.25-8.3438-9.1562-11.156-14.188-3.0312 8.5938 8.7812-11.938-6.7188-10.281 7.1875 16.125 10.062-10.062-1.5938-9.5938 0.15625-22.438-7.375-1.9062-6 8.25 6.1875 6.5312-2.7188-17.406-8.5zm98.125 5.5312-13.281 8.25 4.6563 8.5625-4.2813 10 5.1563 7.125 10.187-0.71875 5.6563-13.562-3.1563-3.0625 4.6563-0.65625 2.1563-5.0938-14.094-0.375 2.3438-10.469z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.28863 0 0 .30930 298.54 363.04)" + inkscape:export-xdpi="240" + /> + </g + > + <g + id="layer7" + inkscape:label="frame" + inkscape:groupmode="layer" + > + <path + id="path2831" + style="stroke:#dc942d;stroke-width:.51558px;fill:#e9b040" + d="m473.34 379.61c-6.8982-0.0371-10.415 1.1732-11.4 6.1323-2.0054 11.39-3.3292 22.155-4.9336 37.153l-22.238 2.1854-0.71233-3.6309 3.0136-19.014-7.2889-10.555c-3.7085 13.839-9.0385 45.082-5.2192 50.399 5.581 10.169 15.991 18.052 29.892 24.145 12.498 2.629 20.894 2.2416 31.342 0.95967l26.257-14.8 65.197 4.5608 38.416-1.9094c3.7974-0.29333 5.6887-1.4084 6.3417-3.3538 3.0854-13.282 6.1325-30.975 6.1537-49.645-0.24087-2.1773-0.0745-4.6568-3.8782-5.6293-16.052-4.35-31.782-7.0085-47.834-8.8447-2.0384-0.1423-4.1141 0.99525-5.3226 2.6118-2.7571 5.4384-4.7542 12.146-6.3911 20.064l-24.694-3.344c0.3813-7.3024-0.0143-17.824-3.7397-18.639l-42.809-8.3698-20.153-0.47488zm-1.9094 15.167c0.0803-0.006 0.16162-0.006 0.24734 0l10.071 0.55403c1.3716 0.0981 1.7428 1.2531 1.6225 2.592l-1.8006 19.747c-0.12032 1.339-0.91096 2.447-2.6217 2.2359l-9.1909-0.57382c-2.3864-0.0994-2.5791-1.2307-2.414-2.5921l2.1666-19.272c0.1128-1.2553 0.71436-2.6075 1.9193-2.691zm18.481 1.1674c0.15691-0.007 0.32039 0.004 0.48478 0.0297l26.287 3.2648c1.3151 0.21076 2.3036 1.4469 2.2161 2.7701l-1.0784 19.638c-0.0875 1.3232-1.2176 2.2191-2.5327 2.0083l-27.306-2.9185c-1.3151-0.21076-2.3036-1.4469-2.2161-2.7701l2.0974-19.985c0.0765-1.1578 0.94958-1.9897 2.0479-2.038z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + inkscape:export-xdpi="240" + /> + <path + id="path3608" + style="opacity:.54425;filter:url(#filter3642);fill:#af8331" + d="m606.59 37.25c-6.2844 0.23219-8.7858 2.7444-11.75 4.9688l-22.438 183.88-119.26 8.9488c19.675 34.67 40.161 45.62 94.043 75.801 33.58 9.4246 64.154 6.2258 96.219 3.875l87.281-48.188 204.72 15.906c64.655-1.4516 140.23-1.5207 142.19-15.625l-413.66-38c-4.1698-0.42727-7.2763-4.1328-7-8.3125l3.4688-52.438-6.5625-0.6875c-4.154-0.66572-7.2763-4.5703-7-8.75l6.625-63.125c0.24177-3.6573 2.9994-6.2849 6.4688-6.4375 0.49562-0.02181 1.012 0.01053 1.5312 0.09375l4.125 0.5 3.3438-50.5-57.33-1.661c-1.9029-0.21803-3.581-0.30358-5.0312-0.25zm-5.0312 48.125c0.25374-0.01759 0.51048-0.01936 0.78125 0l31.812 1.75c4.3324 0.30977 5.505 3.9581 5.125 8.1875l-5.6875 62.375c-0.38004 4.2293-2.8774 7.7294-8.2812 7.0625l-29.031-1.8125c-7.538-0.31413-8.1465-3.8874-7.625-8.1875l6.84-60.875c0.35629-3.965 2.2564-8.2361 6.0625-8.5z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccccccccccccccsccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4691" + style="filter:url(#filter4701);fill:#eac273" + d="m960.15 68.326-19.698 63.135c-1.9238 8.5247-20.647 5.5358-43.437 3.0305 19.486-65.315 13.081-74.688 63.135-66.165z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="cccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4886" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.061376 -.31058 .31058 .061376 464.88 588.64)" + inkscape:export-xdpi="240" + /> + <path + id="path4894" + style="opacity:.60177;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.29970 .25617 -.25617 .29970 249.23 271.97)" + inkscape:export-xdpi="240" + /> + <path + id="path4896" + style="opacity:.41593;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.024425 -.39351 .39351 .024425 431.04 741.15)" + inkscape:export-xdpi="240" + /> + <path + id="path4898" + style="opacity:.41593;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(-.0020423 .39426 -.39426 -.0020423 617.75 143.4)" + inkscape:export-xdpi="240" + /> + <path + id="path4910" + style="opacity:.41593;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.15755 -.36141 .36141 .15755 508.8 678.71)" + inkscape:export-xdpi="240" + /> + <path + id="path4912" + style="opacity:.41593;filter:url(#filter4841);fill:#4d4d4d" + d="m722.13 8.9531 7.4391-4.9641-3.2521-11.176 5.1889-6.9155-5.0408-11.283-9.0811 12.388-3.157-5.61-6.8922 7.3803 5.9073 9.4861-6.6604 1.6915-2.8459 5.3674 3.5093-1.4444-3.4682 3.4273-5.3229 7.5063 14.784 1.4169 3.8413-13.332 5.0508 6.0609z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(-.31672 -.23480 .23480 -.31672 844.36 610.42)" + inkscape:export-xdpi="240" + /> + <path + id="path5514" + style="opacity:.21681;filter:url(#filter5544);stroke:#000000;stroke-width:1px;fill:#000000" + d="m1072.6 268.7-498.57-40c10.432 21.7 31.144 35.69 48.571 52.143l74.286 10 60.714-22.143 174.29 12.143c138.23-4.0476 139.05-6.6667 140.71-12.143z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + </g + > + <g + id="layer8" + inkscape:label="rusty" + inkscape:groupmode="layer" + > + <path + id="path4376" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + d="m520.09 177.56-20.562 10.875 11.688 10.75-15.406 2.5-8.2812 8 13.969 8.125-19.844 6.0625 20.719 11.406 92.844 20.5 41 1.75-18.031-5.375 4.9688-12.375-0.375-7.2188l211.34 10.19-144.28-13.16-58.09-5.47 0.91-1.59-4.66-1.91-5.125-2.8438-4.6875 2.2812-16.281-14.656-14.062 2.6875-3.8125 7.9375-7.03-1.91-3.75-0.28125 1.25 4.9062-14.656-1.375 12.094-2.3125-13.406-5.625-22.031 6.25-16.406-38.125zm38.75 51.938 26.594 1.2812 7.7188 12.031 10.312-0.375-5 3.8438-22.656-6.75-7.75-5.625-9.2188-4.4062z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <path + id="path4840" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + d="m392.64-230.07-0.0312 15.875-12.25-9.6562-11.469-0.71875 3.4375 15.781-17.875-10.531 5.5625 22.969 30.031 52 12 8.125 12.125 23.219 14.125-2-10.75-16.125-1.8125 6.8438 7.25 7.3438-6.2188-1.0938-10.312-21.25-1.0938-9.5312-2.9688-9.75 12.156 14.625 5.75-11.125-8.2812-10.969 9.875 7.375-4.9062-13.688-19.469-12.031 17.031-37.844-21.906-7.8438h-0.00005zm47.875 80.5-7.1562 14.344 8.0625 21.219-28.844 5.9688 21.375 25.469-8.2188-16.938 12.5-4.6875 5.0625-5.1562 4.4688 5.4062 9.0625-6.3125-1.1875-3.3125-1.375-5.6875-4.8438-1.9062-0.1875-21.906-8.7188-6.5zm14.656 54.5 16.156 19.5 2.6875-8.4688-5.8125-7.6562-13.031-3.375zm37.812 36.125 4.5625 14.969 72.906 99.756-77.468-114.73z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.080872 -.30608 -.30608 -.080872 373.2 488.24)" + inkscape:export-xdpi="240" + /> + <path + id="path4846" + style="opacity:0.438;filter:url(#filter4371);fill:#cd6c0e" + d="m27.344-668.03 73.531 103.09 13.312 8.25-86.844-111.34zm106.25 136.09-8.875 0.4375 14.719 20.594 0.0937-13.469-5.9375-7.5625zm20.969 23.312-8.4375 7.1562 4.0938 5.6875-6.2812 3.5938-7.7188 10.875-14.281-12.281 19.156 27.188 13.156-26.375 18.438 13.219 15.719-3.25-4.0625-10.094-21.125-5.7812-0.625-5.1562-5.125-2.7812-2.9062-2zm-2.6875 28.812-5.5625 13.125 19.344 17.656 4.8125 13.688 37.438 37.188 4.9375-13.156 17.156 5.7188 10.406-10.375-1.75-4.0312 4.5625 1.1875 3.9375-3.9062-12.875-5.7188 6.1562-8.7812-29.375 4.875-6.6562-21.906-11.969-8.2188 4.5938 11.406-8.4688-10.781-12.25 2.7188 11.062 15.469-8.6875-5.3438-8.9375-3.5-17.906-15.406 0.53125-6.2812 5.25 8.875h7.0938l-12.844-14.5z" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + </g + > + <g + id="layer6" + inkscape:label="tread link" + inkscape:groupmode="layer" + > + <g + id="g4065" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31464 .035020 -.035020 .31464 290.5 348.06)" + > + <g + id="g4007" + transform="translate(-2.5 -3.2143)" + > + <path + id="path4005" + style="fill:#bd8b39" + d="m518.58 294.22-8.6875 17.062c-0.85974 2.1466-0.34763 5.0524 1.25 6.0625l17.562 10.469c5.2833 2.5524 8.4784 0.26702 9.4688-1l0.15625-0.3125-4.4375-2.625-0.28125 0.28125-18.438-14.906 7.3438-15.031h-3.9375z" + /> + <path + id="path3992" + style="fill:#59411b" + d="m531.67 305.84-2.4062 0.84375c-0.51321 0.0884-1.0536 0.20147-1.5938 0.40625l0.84375-0.15625-1.4688 0.53125c6.4145 0.66484 7.151 8.3223 0.75 10.625 3.0118 1.8796 6.9467-0.71232 8.4688-3.5312 1.1849-4.1282-1.4864-7.8868-5.5625-8l1.6875-0.28125-0.71875-0.4375z" + /> + <path + id="path3976" + sodipodi:nodetypes="ccccccccsssc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m522.5 294.78-8.2188 15.344c-1.3716 3.6783-0.92388 6.7854 2.1562 8.3125l14.156 8.4688c3.5359 1.6762 7.0823 1.4756 8.9375-1.9688l9.75-16.594c-8.9271-2.9022-19.283-7.8146-26.781-13.562zm7.815 12.206c3.2079 0 5.8125 2.5734 5.8125 5.7812 0 3.2079-2.6046 5.8125-5.8125 5.8125s-5.7812-2.6046-5.7812-5.8125 2.5734-5.7812 5.7812-5.7812z" + /> + </g + > + <path + id="path4117" + sodipodi:nodetypes="ccccccccccccsscsccsssc" + style="opacity:.31416;filter:url(#filter4243);fill:#000000" + transform="matrix(.99484 -.10143 .10143 .99484 -27.281 54.466)" + d="m519.88 291.63-9.6473 15.544c-1.3716 3.6783-0.92388 6.7854 2.1562 8.3125l13.983 9.0061c3.5359 1.6762 7.0823 1.4756 8.9375-1.9688l8.9146-13.019 18.094 4.3571c4.2504 0.99212 6.6635 1.4362 6.9911-2.683l0.54018-5.8884c-0.56586-2.0878-0.94815-4.3542-6.4375-4.6562-16.958-1.1344-25.853-2.6547-43.531-9.0045zm29.192 11.732c1.9846-0.0617 4.6876 0.4518 7.2812 1.5 4.1499 1.6771 6.4732 4.0826 5.1562 5.3438-1.3169 1.2612-6.9114 0.6633-9.9062-0.75-2.232-1.0533-6.4419-4.0826-5.125-5.3438 0.49384-0.47294 1.403-0.71297 2.5938-0.75zm-22.808 0.6873c3.2079 0 5.8125 2.5734 5.8125 5.7812 0 3.2079-2.6046 5.8125-5.8125 5.8125s-5.7812-2.6046-5.7812-5.8125 2.5734-5.7812 5.7812-5.7812z" + /> + </g + > + <g + id="g4072" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.35730 0 0 .35730 271.65 351.7)" + > + <g + id="g4074" + transform="translate(-2.5 -3.2143)" + > + <path + id="path4077" + style="fill:#bd8b39" + d="m518.58 294.22-8.6875 17.062c-0.85974 2.1466-0.34763 5.0524 1.25 6.0625l17.562 10.469c5.2833 2.5524 8.4784 0.26702 9.4688-1l0.15625-0.3125-4.4375-2.625-0.28125 0.28125-18.438-14.906 7.3438-15.031h-3.9375z" + /> + <path + id="path4079" + style="fill:#59411b" + d="m531.67 305.84-2.4062 0.84375c-0.51321 0.0884-1.0536 0.20147-1.5938 0.40625l0.84375-0.15625-1.4688 0.53125c6.4145 0.66484 7.151 8.3223 0.75 10.625 3.0118 1.8796 6.9467-0.71232 8.4688-3.5312 1.1849-4.1282-1.4864-7.8868-5.5625-8l1.6875-0.28125-0.71875-0.4375z" + /> + <path + id="path4081" + sodipodi:nodetypes="ccccccccsssc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m522.5 294.78-8.2188 15.344c-1.3716 3.6783-0.92388 6.7854 2.1562 8.3125l14.156 8.4688c3.5359 1.6762 7.0823 1.4756 8.9375-1.9688l9.75-16.594c-8.9271-2.9022-19.283-7.8146-26.781-13.562zm7.815 12.206c3.2079 0 5.8125 2.5734 5.8125 5.7812 0 3.2079-2.6046 5.8125-5.8125 5.8125s-5.7812-2.6046-5.7812-5.8125 2.5734-5.7812 5.7812-5.7812z" + /> + </g + > + <path + id="path4083" + sodipodi:nodetypes="ccccccccccccsscsccsssc" + style="opacity:.31416;filter:url(#filter4060);fill:#000000" + d="m519.69 291.47-8.22 15.53c-1.3716 3.6783-0.92388 6.7854 2.1562 8.3125l14.156 8.4688c3.5359 1.6762 7.0823 1.4756 8.9375-1.9688l7.3125-12.469 18.094 4.3571c4.2504 0.99212 6.6635 1.4362 6.9911-2.683l0.54018-5.8884c-0.56586-2.0878-0.94815-4.3542-6.4375-4.6562-16.958-1.1344-25.853-2.6547-43.531-9.0045zm29.192 11.732c1.9846-0.0617 4.6876 0.4518 7.2812 1.5 4.1499 1.6771 6.4732 4.0826 5.1562 5.3438-1.3169 1.2612-6.9114 0.6633-9.9062-0.75-2.232-1.0533-6.4419-4.0826-5.125-5.3438 0.49384-0.47294 1.403-0.71297 2.5938-0.75zm-21.38 0.68c3.2079 0 5.8125 2.5734 5.8125 5.7812 0 3.2079-2.6046 5.8125-5.8125 5.8125s-5.7812-2.6046-5.7812-5.8125 2.5734-5.7812 5.7812-5.7812z" + /> + </g + > + </g + > + <g + id="layer5" + inkscape:label="Pipes" + inkscape:groupmode="layer" + > + <g + id="g4290" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + > + <rect + id="rect4247" + ry="3.6364" + style="stroke:#b4c2cd;stroke-width:.65723;fill:#999999" + transform="matrix(.99437 .10596 -.12227 .99250 0 0)" + height="16.86" + width="40.332" + y="18.365" + x="1075.6" + /> + <path + id="rect4251" + sodipodi:nodetypes="cccccccccc" + style="opacity:.45133;filter:url(#filter4280);fill:#000000" + d="m1070.2 136.13c-1.692 0.15954-3.1282 1.5005-3.3437 3.25l-0.6875 5.75c0.2228-0.0111 7.5705 5.7213 8.5133 4.6741 9.2852-4.0688 20.316-0.57133 30.706-0.54911 0.3038 0.0324 0.597 0.097 0.875 0.1875l0.7187-5.8125c0.2463-1.9995-1.1843-3.7553-3.1875-3.9688l-32.875-3.5c-0.2504-0.0267-0.477-0.054-0.7188-0.0312z" + /> + <path + id="path4249" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m1063.9 151.2 10.032 1.0603c1.3327-12.981 21.006-7.3644 36.754-5.3461 0.1458-5.725 1.2666-11.554-8.2143-13.571l-35.714-4.2857c-6.83-0.50388-9.4461 21.4-2.8571 22.143z" + /> + <path + id="path4284" + sodipodi:nodetypes="cccccccccc" + style="opacity:0.36;filter:url(#filter4286);fill:#000000" + d="m1085.4 144.77c-16.311-4.8784-19.063 11.154-24.286-1.7857l0.3572-8.9286c-2.833 4.0838-4.5284 7.1956-3.2143 17.5 1.3796 4.7363 7.9942 4.4288 13.214 2.5 2.7997-1.1577 5.3445-0.19768 8.9286-0.35714 7.3989 1.3095 9.6227 0.83334 14.643 1.7857v-3.5714l-20-2.1428c0.3202-2.697 4.6831-4.4442 10.357-5z" + /> + </g + > + <g + id="g4302" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 279.97 378.04)" + > + <rect + id="rect4304" + style="stroke:#b4c2cd;stroke-width:.65723;fill:#999999" + transform="matrix(.99437 .10596 -.12227 .99250 0 0)" + ry="3.6364" + height="16.86" + width="40.332" + y="18.365" + x="1075.6" + /> + <path + id="path4306" + sodipodi:nodetypes="cccccccccc" + style="opacity:.45133;filter:url(#filter4280);fill:#000000" + d="m1070.2 136.13c-1.692 0.15954-3.1282 1.5005-3.3437 3.25l-0.6875 5.75c0.2228-0.0111 7.5705 5.7213 8.5133 4.6741 9.2852-4.0688 20.316-0.57133 30.706-0.54911 0.3038 0.0324 0.597 0.097 0.875 0.1875l0.7187-5.8125c0.2463-1.9995-1.1843-3.7553-3.1875-3.9688l-32.875-3.5c-0.2504-0.0267-0.477-0.054-0.7188-0.0312z" + /> + <path + id="path4308" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m1063.9 151.2 10.032 1.0603c1.3327-12.981 21.006-7.3644 36.754-5.3461 0.1458-5.725 1.2666-11.554-8.2143-13.571l-35.714-4.2857c-6.83-0.50388-9.4461 21.4-2.8571 22.143z" + /> + <path + id="path4310" + sodipodi:nodetypes="cccccccccc" + style="opacity:0.36;filter:url(#filter4286);fill:#000000" + d="m1085.4 144.77c-16.311-4.8784-19.063 11.154-24.286-1.7857l0.3572-8.9286c-2.833 4.0838-4.5284 7.1956-3.2143 17.5 1.3796 4.7363 7.9942 4.4288 13.214 2.5 2.7997-1.1577 5.3445-0.19768 8.9286-0.35714 7.3989 1.3095 9.6227 0.83334 14.643 1.7857v-3.5714l-20-2.1428c0.3202-2.697 4.6831-4.4442 10.357-5z" + /> + </g + > + <g + id="g4312" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 278.38 392.06)" + > + <rect + id="rect4314" + ry="3.6364" + style="stroke:#b4c2cd;stroke-width:.65723;fill:#999999" + transform="matrix(.99437 .10596 -.12227 .99250 0 0)" + height="16.86" + width="40.332" + y="18.365" + x="1075.6" + /> + <path + id="path4316" + sodipodi:nodetypes="cccccccccc" + style="opacity:.45133;filter:url(#filter4280);fill:#000000" + d="m1070.2 136.13c-1.692 0.15954-3.1282 1.5005-3.3437 3.25l-0.6875 5.75c0.2228-0.0111 7.5705 5.7213 8.5133 4.6741 9.2852-4.0688 20.316-0.57133 30.706-0.54911 0.3038 0.0324 0.597 0.097 0.875 0.1875l0.7187-5.8125c0.2463-1.9995-1.1843-3.7553-3.1875-3.9688l-32.875-3.5c-0.2504-0.0267-0.477-0.054-0.7188-0.0312z" + /> + <path + id="path4318" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m1063.9 151.2 10.032 1.0603c1.3327-12.981 21.006-7.3644 36.754-5.3461 0.1458-5.725 1.2666-11.554-8.2143-13.571l-35.714-4.2857c-6.83-0.50388-9.4461 21.4-2.8571 22.143z" + /> + <path + id="path4320" + sodipodi:nodetypes="cccccccccc" + style="opacity:0.36;filter:url(#filter4286);fill:#000000" + d="m1085.4 144.77c-16.311-4.8784-19.063 11.154-24.286-1.7857l0.3572-8.9286c-2.833 4.0838-4.5284 7.1956-3.2143 17.5 1.3796 4.7363 7.9942 4.4288 13.214 2.5 2.7997-1.1577 5.3445-0.19768 8.9286-0.35714 7.3989 1.3095 3.9084-0.59523 8.9286 0.35714v-3.5714l-14.4-0.71c0.3202-2.697 4.6831-4.4442 10.357-5z" + /> + </g + > + <g + id="g4322" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 276.12 404.27)" + > + <rect + id="rect4324" + style="stroke:#b4c2cd;stroke-width:.65723;fill:#999999" + transform="matrix(.99437 .10596 -.12227 .99250 0 0)" + ry="3.6364" + height="16.86" + width="40.332" + y="18.365" + x="1075.6" + /> + <path + id="path4326" + sodipodi:nodetypes="cccccccccc" + style="opacity:.45133;filter:url(#filter4280);fill:#000000" + d="m1070.2 136.13c-1.692 0.15954-3.1282 1.5005-3.3437 3.25l-0.6875 5.75c0.2228-0.0111 7.5705 5.7213 8.5133 4.6741 9.2852-4.0688 20.316-0.57133 30.706-0.54911 0.3038 0.0324 0.597 0.097 0.875 0.1875l0.7187-5.8125c0.2463-1.9995-1.1843-3.7553-3.1875-3.9688l-32.875-3.5c-0.2504-0.0267-0.477-0.054-0.7188-0.0312z" + /> + <path + id="path4328" + sodipodi:nodetypes="cccccc" + style="stroke:#dc942d;stroke-width:1px;fill:#e9b040" + d="m1063.9 151.2 10.032 1.0603c1.3327-12.981 21.006-7.3644 36.754-5.3461 0.1458-5.725 1.2666-11.554-8.2143-13.571l-35.714-4.2857c-6.83-0.50388-9.4461 21.4-2.8571 22.143z" + /> + <path + id="path4330" + sodipodi:nodetypes="cccccccccc" + style="opacity:0.36;filter:url(#filter4286);fill:#000000" + d="m1085.4 144.77c-16.311-4.8784-19.063 11.154-24.286-1.7857l0.3572-8.9286c-2.833 4.0838-4.5284 7.1956-3.2143 17.5 1.3796 4.7363 7.9942 4.4288 13.214 2.5 2.7997-1.1577 5.3445-0.19768 8.9286-0.35714 7.3989 1.3095 3.1941-1.3095 8.2143-0.35715v-3.5714l-13.571 0.00001c0.3202-2.697 4.6831-4.4442 10.357-5z" + /> + </g + > + <path + id="path4365" + style="opacity:.43805;filter:url(#filter4371);fill:#a97c33" + d="m1033.6 91.552-4.2857 7.8571 3.5714 7.1429-22.143 25 4.2857 21.429 12.143 5.7143-2.8572 10.714-4.2857 65.714-23.571-1.4286-0.71428 9.2857-16.429 3.5714 12.857 4.2857-143.57-9.2857-159.29-10.714 302.14 32.143-10.714 2.8572-9.2857 4.2857-68.571 7.8571 45 5 104.29-5 24.286-7.8571-20.714-9.2857 16.429-5.7143-7.8572-9.2857-16.429-5 16.429-10 10.714-22.857-17.857-1.4286-0.7143-22.143 7.8571 10 12.857 2.1429v-7.1429l6.4285 2.1429 6.4286-1.4286v-5.7143l-2.8571-13.571-3.5715-7.8572h-10l12.857-9.2857 10-7.8571-1.4286-14.286-6.4286-1.4286-5.7143-23.571-20-7.8571-12.143 0.71429-3.5714 31.429-8.5715-2.1429 5.7143-11.429-6.4286-2.1429 7.1429-8.5714 2.8571-15.714-11.428-6.4286-2.8572 7.1429z" + inkscape:export-ydpi="240" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccc" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + inkscape:export-xdpi="240" + /> + <g + id="g5448" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.48702 -.48463 .39989 .59023 86.95 626.88)" + inkscape:export-xdpi="240" + > + <path + id="path5428" + style="fill:#b68537" + d="m734.67 324.59c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5446" + style="filter:url(#filter5493);fill:#402f13" + transform="matrix(1.2286 .012216 .012216 1.2237 -168.24 -78)" + d="m731.06 322.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + <path + id="path5426" + style="stroke:#7b511b;stroke-width:.45636;fill:#453317" + d="m734.18 327.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + </g + > + <g + id="g5497" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.48702 -.48463 .39989 .59023 56.535 625.18)" + inkscape:export-xdpi="240" + > + <path + id="path5500" + style="fill:#b68537" + d="m734.67 324.59c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5502" + style="filter:url(#filter5493);fill:#453010" + transform="matrix(1.2286 .012216 .012216 1.2237 -168.24 -78)" + d="m731.06 322.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + <path + id="path5504" + style="stroke:#7b511b;stroke-width:.45636;fill:#48310e" + d="m734.18 327.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + </g + > + <g + id="g5506" + inkscape:export-ydpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.54506 -.54239 .44755 .66056 -30.234 643.2)" + inkscape:export-xdpi="240" + > + <path + id="path5508" + style="fill:#b68537" + d="m734.67 324.59c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path5510" + style="filter:url(#filter5493);fill:#482c01" + transform="matrix(1.2286 .012216 .012216 1.2237 -168.24 -78)" + d="m731.06 322.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + <path + id="path5512" + style="stroke:#7b511b;stroke-width:.45636;fill:#402b0a" + d="m734.18 327.77c-0.76222 6.0771-6.5252 9.85-12.872 8.4272-6.3467-1.4228-10.874-7.5027-10.112-13.58 0.76222-6.0771 6.5252-9.85 12.872-8.4272 6.3467 1.4228 10.874 7.5027 10.112 13.58z" + /> + </g + > + </g + > + <g + id="layer3" + inkscape:label="treads" + inkscape:groupmode="layer" + > + <g + id="g4798" + inkscape:export-ydpi="240" + inkscape:export-xdpi="240" + inkscape:export-filename="C:\Users\Marckos\Pictures\Compétences essentielles\crane.png" + transform="matrix(.31659 0 0 .31659 280.98 367.75)" + > + <g + id="g3095" + transform="matrix(2.4071 0 0 2.4071 -1054.6 -484.38)" + > + <path + id="path4342" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4344" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m707.36 318.04 2.3449 5.6818c0.89769 2.9098-1.821 3.3711-2.886 2.6154l-7.0346-3.9682 7.5757-4.329z" + /> + </g + > + <g + id="g4195" + transform="matrix(-2.3941 .25374 .29666 2.3888 2483.4 -633.19)" + > + <g + id="g4198" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path4200" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m700.76 313.46 1.0524 1.5385-27.583 1.288-6.238 7.712-1.0395-1.5156 5.5277-7.7994 28.28-1.2236z" + /> + <path + id="path4207" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.1 314.92-28.087 1.3797-6.1519 7.7022 26.61-1.8228 7.6287-7.2592z" + /> + </g + > + <path + id="path4209" + d="m686.22 315.91-2.7868 3.9981 9.0726 0.45651 10.97-1.5985 5.7802-4.4726-23.036 1.6164z" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + /> + </g + > + <g + id="g4368" + transform="matrix(1.0802 .10783 -.21658 .99254 261.18 -47.051)" + > + <g + id="g4370" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g4372" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g4375" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4377" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path4379" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path4381" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4383" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g4385" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g4387" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4389" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-11.424-6.6101 6.3298-3.6639 11.785 6.4349 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path4391" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-11.984-6.675 15.26-1.7234 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path4393" + d="m716.52 308.34 0.17857 1.3393-19.119 3.4999v-1.4286l18.94-3.4106z" + sodipodi:nodetypes="ccccc" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + </g + > + <g + id="g4113" + transform="matrix(1.0557 .033197 -.15936 1.0063 197.18 -9.4855)" + > + <g + id="g4115" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g4117" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g4119" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4121" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path4123" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path4125" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + /> + </g + > + <g + id="g4127" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g4129" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g4131" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4133" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-11.424-6.6101 6.3298-3.6639 11.785 6.4349 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path4135" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-11.984-6.675 15.26-1.7234 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path4137" + sodipodi:nodetypes="ccccc" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.52 308.34 0.17857 1.3393-19.119 3.4999v-1.4286l18.94-3.4106z" + /> + </g + > + </g + > + <g + id="g4686" + transform="matrix(-1.5034 .99346 .73373 1.8075 1708.7 -979.07)" + > + <path + id="path4688" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4690" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4692" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4139" + transform="matrix(1.0641 -.035486 -.087021 1.0062 109.31 32.863)" + > + <g + id="g4141" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g4143" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g4145" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4147" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-21.232-0.23577 6.4528-3.6625 21.518 0.20355 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path4149" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-20.114-0.70488 17.838-2.8136 17.248 3.0317-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path4152" + sodipodi:nodetypes="cccccc" + d="m748.75 311.11 0.0893 1.4286-18.024 0.18975 0.0893-1.3393 17.845-0.27905h-0.00004z" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4154" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g4156" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g4158" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4161" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-25.377-0.31796 6.3298-3.6639 25.738 0.14278 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path4163" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-25.578-0.67959 21.381-3.1022 22.679 0.52083-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path4165" + sodipodi:nodetypes="ccccc" + d="m716.52 308.34 0.17857 1.3393-21.808 0.74225v-1.4286l21.63-0.65296z" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + </g + > + <g + id="g4694" + transform="matrix(-1.3418 1.0524 1.045 1.5056 1536.1 -920.86)" + > + <path + id="path4696" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4698" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4700" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4055" + transform="matrix(1.0652 .068175 -.072786 .99767 40.65 -39.287)" + > + <g + id="g4057" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g4059" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g4061" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4063" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path4065" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path4067" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4069" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g4071" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g4073" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4075" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-14.59-6.8837 6.3298-3.6639 14.951 6.7085 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path4080" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-14.959-7.1016 18.235-1.2968 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path4085" + d="m716.52 308.34 0.17857 1.3393-22.232 3.75v-1.4286l22.054-3.6607z" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + </g + > + <g + id="g4702" + transform="matrix(-1.5222 1.3233 1.1228 1.8071 1538.4 -1215.9)" + > + <path + id="path4704" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4706" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4708" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4041" + > + <g + id="g4207" + transform="matrix(2.3831 .20174 .42268 -2.3956 -1249.1 945.19)" + > + <g + id="g4189" + transform="matrix(.93593 .11525 1.5034 .72716 -384.87 36.515)" + > + <g + id="g4191" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4193" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.92 326.7-16.242-2.9717 6.4528-3.6625 16.528 2.9395 13.511-0.12257-6.1621 3.3768-14.088 0.44055z" + /> + <path + id="path4195" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m680.68 323.25-15.666-3.138 13.276-0.11923 17.362 2.7705-14.972 0.48671z" + /> + </g + > + </g + > + <path + id="path4205" + style="opacity:0.63;fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m748.75 311.11 0.0893 1.4286-17.411 1.3393 0.0893-1.3393 17.232-1.4286z" + /> + </g + > + <g + id="g4225" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1201.4 878.86)" + > + <g + id="g4197" + transform="matrix(.93257 .13038 1.4975 .75335 -413.36 16.484)" + > + <g + id="g4199" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4201" + sodipodi:nodetypes="ccccccc" + style="stroke:#b5c9ce;stroke-width:.46099;fill:#999999" + d="m674.96 326.85-14.59-6.8837 6.3298-3.6639 14.951 6.7085 18.13-2.8615-6.1724 3.5113-18.648 3.1893z" + /> + <path + id="path4203" + sodipodi:nodetypes="cccccc" + style="stroke:#b4c2cd;stroke-width:.29968;fill:#4d4d4d" + d="m681.61 323.33-14.959-7.1016 18.235-1.2968 15.206 5.1374-18.482 3.2609v0.00005z" + /> + </g + > + </g + > + <path + id="path4215" + style="opacity:.45;filter:url(#filter4369);fill:#1a1a1a" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.52 308.34 0.17857 1.3393-22.232 3.75v-1.4286l22.054-3.6607z" + /> + </g + > + </g + > + <g + id="g4710" + transform="matrix(-1.5302 1.2714 1.1154 1.7221 1510.8 -1154.3)" + > + <path + id="path4712" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4714" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4716" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4718" + transform="matrix(-1.6451 1.3662 1.0824 1.9804 1544.1 -1306.6)" + > + <path + id="path4720" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4722" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4724" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4253" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1202.5 878.43)" + > + <path + id="path4232" + d="m713.21 309.68-2.3214 0.53572-1.4286 2.2321 2.0968-0.35405 0.91274 0.85464 1.2762-1.2149-0.53572-2.0536z" + sodipodi:nodetypes="ccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + <path + id="path4235" + d="m713.3 309.95-1.7857 1.9643 1.1607 1.0669 1.2608-1.2608-0.63583-1.7704z" + sodipodi:nodetypes="ccccc" + style="opacity:.59292;filter:url(#filter4249);fill:#333333" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4257" + transform="matrix(2.3831 .28738 .42268 -2.3804 -1233.9 883.8)" + > + <path + id="path4259" + sodipodi:nodetypes="ccccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + d="m713.21 309.68-2.3214 0.53572-1.5548 1.9796 2.1513-0.21544 1.1108 0.77916 1.1499-1.0255-0.53572-2.0536z" + /> + <path + id="path4261" + sodipodi:nodetypes="ccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="opacity:.59292;filter:url(#filter4249);fill:#333333" + d="m713.3 309.63-1.7857 2.28 1.1607 0.625 1.1977-0.81889-0.5727-2.0861z" + /> + </g + > + <g + id="g3099" + transform="matrix(2.4071 -.043245 0 2.4071 -1028.3 -463.66)" + > + <g + id="g4276" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path4274" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m702.18 314.8 1.1318 2.0067-5.5387 9.1127-28.585-0.33304-1.0395-1.5156 6.4439-6.3121 27.587-2.9587z" + /> + <path + id="path4250" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.1 314.92-28.087 1.3797-6.1519 7.7022 28.388-0.73466 5.8506-8.3473z" + /> + </g + > + <path + id="path4280" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + d="m686.22 315.91-2.8863 4.1104 6.8006 1.1275 14.954-2.0561 4.1669-4.7982-23.036 1.6164z" + /> + </g + > + <g + id="g4263" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -1073.9 827.41)" + > + <path + id="path4265" + sodipodi:nodetypes="ccccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + d="m712.83 310.51-2.0519 0.46194-1.269 1.5377 2.1466-0.0614 0.31542 1.4485 1.2412-1.7645-0.38228-1.6223z" + /> + </g + > + <g + id="g4269" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -1104.1 831.51)" + > + <path + id="path4271" + d="m713.27 310.24-2.3707 0.47524-1.44 1.7324 2.9464-0.44643 1.3393-0.26786-0.47503-1.4933z" + sodipodi:nodetypes="cccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4658" + transform="matrix(-1.2953 -1.4951 1.3381 -1.6009 1361.2 1899.1)" + > + <path + id="path4660" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4662" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4664" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4319" + transform="matrix(2.5946 .25574 4.0574 1.9017 -2165.1 -426.45)" + > + <g + id="g4323" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4325" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m686.09 322.25-19.369 1.2109 2.1062-1.3953 21.609-2.6571 23.277-6.4879-3.9654 2.7935-23.658 6.5359z" + /> + <path + id="path4327" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m689.4 319.78-18.785 1.2051 23.448-9.4409 19.703 1.3378-24.367 6.8981z" + /> + </g + > + </g + > + <g + id="g4666" + transform="matrix(-1.4018 -1.2451 1.1552 -1.6027 1530.3 1725.9)" + > + <path + id="path4668" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4670" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4672" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <path + id="path4364" + d="m675.44 318.38 8.3043-2.4171 10.651-1.62 5.5524-0.25207-4.9773 3.5184-19.53 0.77071z" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(-2.0879 -.34614 .60237 -2.3305 2181.7 1327)" + /> + <g + id="g4299" + transform="matrix(-1.374 -1.3332 1.4195 -1.4276 1428.2 1732.7)" + > + <path + id="path4301" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4303" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4307" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4329" + transform="matrix(2.5751 .35188 3.9122 2.2526 -2136.6 -607.86)" + > + <g + id="g4331" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4334" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path4336" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g4650" + transform="matrix(-1.3215 -1.5238 1.3652 -1.6317 1308.2 1927.2)" + > + <path + id="path4652" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4654" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4656" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4042" + transform="matrix(1.8253 -1.721 1.4987 2.096 -989.5 876.49)" + > + <path + id="path4044" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path4046" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g4048" + > + <path + id="path4050" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4052" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path4054" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4056" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4058" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4060" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4062" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g4064" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path4066" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4068" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4070" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4072" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4074" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4076" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4078" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4080" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path4082" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4084" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4086" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4088" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4090" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4092" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4094" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4096" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path4098" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4100" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4102" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4104" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4106" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4108" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4110" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4112" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path4114" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4116" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4118" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4120" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4122" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4124" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4126" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4128" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path4130" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4132" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4134" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4136" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4138" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4140" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4142" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4144" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <g + id="g3977" + transform="matrix(2.4071 0 0 2.4071 -873.01 -484.34)" + > + <g + id="g3995" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g3997" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3999" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path4001" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g4003" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g4005" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4007" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path4009" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g4642" + transform="matrix(-1.374 -1.6386 1.4195 -1.7547 1294 2042.5)" + > + <path + id="path4644" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4646" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4648" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4011" + transform="matrix(2.4071 0 0 2.4071 -941.7 -487.08)" + > + <g + id="g4029" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g4031" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4033" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path4035" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g4037" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g4039" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4041" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path4043" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g3901" + transform="matrix(-1.374 -1.6386 1.4195 -1.7547 1225.4 2040.5)" + > + <path + id="path3903" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path3905" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path3907" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g4538" + transform="matrix(1.9256 -1.763 1.5811 2.1471 -1177.3 886.66)" + > + <path + id="path4540" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path4542" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g4544" + > + <path + id="path4546" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4548" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path4550" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4552" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4554" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4556" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4558" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g4560" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path4562" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4564" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4566" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4568" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4570" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4572" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4574" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4576" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path4578" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4580" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4582" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4584" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4586" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4588" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4590" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4592" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path4594" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4596" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4598" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4600" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4602" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4604" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4606" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4608" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path4610" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4612" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4614" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4616" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4618" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4620" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4622" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4624" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path4626" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4628" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4630" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4632" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4634" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4636" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4638" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4640" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <g + id="g4149" + transform="matrix(-1.7843 .83130 .83406 1.7714 1679.1 -870.66)" + > + <path + id="path4151" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path4153" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path4155" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g3943" + transform="matrix(2.4071 0 0 2.4071 -1011.9 -489.82)" + > + <g + id="g3961" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g3963" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3965" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path3967" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g3969" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g3971" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3973" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path3975" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g3925" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + > + <g + id="g3105" + transform="matrix(-.57080 -.55386 .58969 -.59307 931.05 920.13)" + > + <path + id="path3127" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path3107" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path3109" + sodipodi:nodetypes="ccccc" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g3909" + transform="matrix(-.60713 -.47580 .54886 -.53475 983.15 848.09)" + > + <path + id="path3911" + sodipodi:nodetypes="ccccc" + style="fill:#353535" + d="m703.38 308.28 2.2989 8.0755c1.1007 3.9959-2.3116 5.4977-3.6174 4.5324l-8.6338-5.4979 9.9524-7.11z" + /> + <path + id="path3913" + sodipodi:nodetypes="ccccc" + style="stroke:#b1c3cf;stroke-width:.28075;fill:#999999" + d="m701.81 309.47 2.8752 7.7511c1.1007 3.9959-2.2329 4.8781-3.5387 3.9127l-8.6255-4.9442 9.289-6.7196z" + /> + <path + id="path3915" + style="opacity:.64159;filter:url(#filter4362);fill:#000000" + sodipodi:nodetypes="ccccc" + transform="matrix(.87578 -.062102 0 1 82.368 36.96)" + d="m706.54 317.41 3.5522 6.972c0.89769 2.9098-2.0199 3.4906-3.0848 2.735l-8.9378-4.8401 8.4704-4.8669z" + /> + </g + > + <g + id="g3917" + transform="matrix(1.0779 .10624 1.6856 .79001 -560.8 22.864)" + > + <g + id="g3919" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3921" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path3923" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + <g + id="g3117" + transform="matrix(1.0698 .14618 1.6253 .93580 -549.89 -52.203)" + > + <g + id="g3119" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3121" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m690.99 321.22-26.662 2.9567 2.1062-1.3953 28.264-3.9059 7.2476 0.73061-2.6894 1.7996-8.2668-0.18569z" + /> + <path + id="path3123" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m691.34 321-27.658 3.357 5.5316 0.5168 30.464-3.5534-8.3377-0.32043z" + /> + </g + > + </g + > + </g + > + <g + id="g3885" + transform="matrix(2.7408 0 -.26163 2.6928 -1253.4 -590.04)" + > + <path + id="path3843" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path3647" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g3739" + > + <path + id="path3650" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3652" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path3682" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3692" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3694" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3699" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path3730" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g3747" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path3761" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3757" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3775" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3749" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3753" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3755" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3759" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g3777" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path3779" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3781" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3783" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3785" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3787" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3789" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3791" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g3793" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path3795" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3797" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3799" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3801" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3803" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3805" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3807" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g3809" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path3811" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3813" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3815" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3817" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3819" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3821" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3823" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g3825" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path3827" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3829" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3831" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path3833" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path3835" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3837" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path3839" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path3841" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + <path + id="path4373" + sodipodi:nodetypes="ccccccc" + d="m706.03 320.8 0.88389-1.6415 4.4194 0.44194 0.31568 0.69448-4.1669 0.44194-0.56821 1.5784-0.88389-1.5152z" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + /> + <path + id="path4375" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 -2.4071 -1073.5 1078.3)" + d="m691.77 328.88 0.69447 1.7046 8.6494 0.50507-0.0631 1.0102-9.1545-0.12627-1.1364-2.0203 1.0102-1.0733z" + /> + <g + id="g4374" + transform="matrix(2.2094 .026268 .86266 2.7519 -1212.4 -603.54)" + > + <g + id="g4380" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path4382" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m702.75 314.49 0.57174 1.8301-5.9346 8.5863-29.168 2.0203-0.88388-1.0102 5.8084-6.9448 29.607-4.4817z" + /> + <path + id="path4384" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-28.494 2.5528-6.8613 8.8114 29.042-2.0203 6.3135-9.3439z" + /> + </g + > + <path + id="path4386" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + d="m686.53 316.61-3.9208 4.759 6.9448 0.88388 15.815-2.8281 3.8825-5.1268-22.722 2.3121z" + /> + </g + > + <g + id="g3079" + transform="matrix(2.5751 .21347 3.9122 2.0423 -2425.3 -459.81)" + > + <g + id="g3081" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3083" + sodipodi:nodetypes="ccccccccc" + style="fill:#999999" + d="m702.75 314.49-30.486 3.905 3.0756-1.8382 30.293-3.5142-5.8068 7.935-3.4543 1.9892-26.088 1.4135 2.8604-5.4085 29.607-4.4817z" + /> + <path + id="path3085" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-30.087 3.588-3.2566 6.7309 27.572-1.9923 5.7719-8.3267z" + /> + </g + > + <path + id="path3087" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(1.0176 .016042 .27002 .98695 -97.826 -6.7578)" + d="m685.57 317.4-2.9609 3.9663 7.6956-0.17141 14.585-2.4109 4.3623-4.4888-23.682 3.1048z" + /> + </g + > + <g + id="g4303" + transform="matrix(2.3167 -.81265 .36832 2.3718 -1151.3 81.7)" + > + <path + id="path4305" + d="m713.02 309.72-2.1897 0.44718-1.3643 2.2797 3.3351-0.34461 0.71694-1.8461-0.49803-0.53616z" + sodipodi:nodetypes="cccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <g + id="g4309" + transform="matrix(2.3167 -.81265 .36832 2.3718 -1181.6 82.924)" + > + <path + id="path4311" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m713.21 309.68-2.3214 0.53572-1.4286 2.2321 2.9464-0.44643 1.3393-0.26786-0.53572-2.0536z" + /> + </g + > + <g + id="g4321" + transform="matrix(2.3297 .85066 .33314 -2.3655 -1182.9 525.18)" + > + <path + id="path4323" + sodipodi:nodetypes="cccccc" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + d="m712.88 309.87-2.001 0.64684 0.0535 2.5097 3.0854-0.72162-0.1541-2.1289-0.9839-0.30601z" + /> + </g + > + <g + id="g4327" + transform="matrix(2.3297 .85066 .33314 -2.3655 -1155 523.06)" + > + <path + id="path4329" + sodipodi:nodetypes="cccccc" + d="m712.88 309.87-2.001 0.64684 0.0535 2.5097 3.0854-0.72162-0.1541-2.1289-0.9839-0.30601z" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <path + id="path4333" + d="m694.73 340.62 0.12627 1.389 9.407-0.25254 0.31567 0.56822-10.354 0.31567-0.94702-1.9572 1.4521-0.0631z" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + /> + <path + id="path4359" + sodipodi:nodetypes="ccccccc" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + d="m703.95 333.05-0.12627-2.7779 4.7351-0.37881 0.82075 0.56822-4.4826 0.50507 0.12627 2.2728-1.0733-0.1894z" + /> + <path + id="path4361" + sodipodi:nodetypes="ccccccc" + d="m706.85 339.8 0.50507 1.7678 4.4194-0.0631-0.31567 0.63136-4.6088 0.18939-1.0102-2.336 1.0102-0.1894z" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + transform="matrix(2.4071 0 0 2.4071 -1080.6 -492.55)" + /> + <path + id="path4363" + style="opacity:.45;filter:url(#filter4355);fill:#000000" + sodipodi:nodetypes="ccccccc" + transform="matrix(2.4071 0 0 -2.4071 -1078.5 1102.5)" + d="m692.52 328.69-0.25254 2.0834 8.8388 0.69448-0.31568 0.75762-9.1545-0.82075 0.12627-2.8411 0.75761 0.12627z" + /> + <g + id="g3069" + transform="matrix(2.4296 .22452 2.0542 3.0067 -1746.1 -796.58)" + > + <g + id="g3071" + transform="matrix(.89914 -.0084085 .0084085 .89914 77.077 36.335)" + > + <path + id="path3073" + sodipodi:nodetypes="cccccccc" + style="fill:#999999" + d="m673.42 318.31 2.1122-0.79193 28.44-3.3338-6.0343 9.0902-1.8178 0.66426-26.917 1.9805 3.9364-6.9525 0.28017-0.65666z" + /> + <path + id="path3075" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m702.56 314.55-28.93 3.6307-5.3832 8.1024 27.999-2.3892 6.3135-9.3439z" + /> + </g + > + <path + id="path3077" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + sodipodi:nodetypes="cccccc" + transform="matrix(1.0176 .016042 .27002 .98695 -97.826 -6.7578)" + d="m685.64 317.83-3.0305 3.5355 6.9448 0.88388 15.531-3.1567 4.1669-4.7982-23.612 3.5355z" + /> + </g + > + <g + id="g4239" + transform="matrix(-2.384 .33557 .37828 2.3772 2453.3 -661.2)" + > + <g + id="g4241" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path4243" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m692.86 311.51 1.9865 0.78131-26.977 1.7287 0.12235 9.9782-1.2955-0.67568-0.54953-9.9622 26.713-1.8504z" + /> + <path + id="path4245" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m694.87 312.22-27.633 1.7102 0.6232 10.065 26.636-3.241 0.37397-8.534z" + /> + </g + > + <path + id="path4247" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + d="m681.19 313.89 0.0472 4.4611 12.304 0.47013 8.4906-2.0834 0.91079-4.2792-21.753 1.4313z" + /> + </g + > + <g + id="g4262" + transform="matrix(.83360 0 0 .89075 155.7 32.493)" + > + <g + id="g4264" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path4266" + d="m716.33 308.34-2.6162 0.17377-0.53997 2.8378 0.84358 1.0589 2.9642 0.22513 0.56991-3.7686-1.2216-0.52701 0.00002-0.00004z" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <path + id="path4268" + sodipodi:nodetypes="cccccccc" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m694.45 331.64 1.3474 1.6202-1.0762 0.81794-2.9199-0.027-0.039-3.2765 1.1141-1.4428 2.8137-0.007-1.24 2.3149z" + /> + </g + > + <g + id="g4287" + transform="matrix(-2.3414 -.56050 .60237 -2.3305 2353.5 1448.8)" + > + <g + id="g4289" + transform="matrix(.78745 -.064247 .0073640 .89862 138.44 72.616)" + > + <path + id="path4291" + sodipodi:nodetypes="ccccccc" + style="fill:#999999" + d="m696.56 311.88 1.0526 1.0571-26.775 1.2962-2.8482 9.7683-1.5239-1.3279 2.7192-10.177 27.376-0.61654z" + /> + <path + id="path4293" + sodipodi:nodetypes="ccccc" + style="stroke:#b4c2cd;stroke-width:0.3;fill:#4d4d4d" + d="m697.65 312.89-26.86 0.96844-2.9237 10.142 26.61-1.8228 3.1734-9.2876z" + /> + </g + > + <path + id="path4295" + sodipodi:nodetypes="cccccc" + style="opacity:.88938;filter:url(#filter4338);fill:#333333" + transform="matrix(.87578 -.062102 0 1 71.028 41.246)" + d="m682.52 320.69 1.542-5.3137 10.797-1.5333 10.005 0.92867-1.5121 4.6292-20.832 1.2891z" + /> + </g + > + <g + id="g4279" + transform="matrix(.82890 .088361 -.094419 .88574 191.29 -29.08)" + > + <g + id="g4281" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path4283" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + d="m716.33 308.34-2.6162 0.17377-0.53997 2.8378 0.84358 1.0589 2.9642 0.22513 0.56991-3.7686-1.2216-0.52701 0.00002-0.00004z" + /> + </g + > + <path + id="path4285" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + sodipodi:nodetypes="cccccccc" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m694.45 331.64 1.3474 1.6202-1.0762 0.81794-2.9199-0.027-0.039-3.2765 1.1141-1.4428 2.8137-0.007-1.24 2.3149z" + /> + </g + > + <g + id="g4355" + transform="matrix(.86897 .49487 -.49487 .86897 263.48 -386.36)" + > + <g + id="g4357" + transform="matrix(2.4491 .39062 -.12424 -2.3856 -758.87 856)" + > + <path + id="path4360" + d="m716.33 308.34-2.4448 0.90528-1.0789 2.3034-0.43532 1.8945 3.1228-1.0575 2.0579-3.5186-1.2216-0.52701 0.00002-0.00004z" + sodipodi:nodetypes="cccccccc" + style="stroke:#aab7b7;stroke-width:0.3;fill:#999999" + transform="matrix(.98890 .11939 .17559 -.99003 -49.935 569.92)" + /> + </g + > + <path + id="path4362" + sodipodi:nodetypes="ccccccccc" + style="opacity:.39381;filter:url(#filter4258);fill:#000000" + transform="matrix(2.4071 0 0 -2.4071 -728.24 1102.8)" + d="m693.77 331.93 2.0278 1.3247-1.0762 0.81794-2.765-1.0486-0.53417-2.1072 0.0549-2.1313 2.8244 1.0236 0.1487 1.8252-0.68046 0.29568z" + /> + </g + > + <g + id="g4146" + transform="matrix(1.5383 -1.5308 1.2631 1.8643 -612.9 818.5)" + > + <path + id="path4148" + style="filter:url(#filter3881);fill:#59411b" + d="m746.27 335.73c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <path + id="path4150" + style="fill:#ca943d" + d="m747.35 335.54c-0.91799 8.3237-8.7945 13.374-17.593 11.28-8.7981-2.0936-15.186-10.538-14.268-18.862 0.91799-8.3237 8.7945-13.374 17.593-11.28 8.7981 2.0936 15.186 10.538 14.268 18.862z" + /> + <g + id="g4152" + > + <path + id="path4154" + style="fill:#ca943d" + d="m742.84 334.7c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4156" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m742.11 334.53c-0.49716 4.5078-4.7628 7.243-9.5277 6.1092-4.7648-1.1339-8.2245-5.7074-7.7273-10.215 0.49716-4.5079 4.7628-7.243 9.5277-6.1092 4.7648 1.1339 8.2245 5.7074 7.7273 10.215z" + /> + <path + id="path4158" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4160" + style="opacity:.45;filter:url(#filter3688);fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4162" + style="opacity:.32301;filter:url(#filter3678);fill:#000000" + d="m732.94 324.12c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4164" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4166" + style="opacity:.42920;filter:url(#filter3735);fill:#000000" + d="m728.56 317.79c-6.0978 0.33249-10.961 4.542-11.641 10.702-0.83607 7.581 4.9654 15.256 12.978 17.162 8.0131 1.9068 15.188-2.6937 16.024-10.275 0.83607-7.581-4.9654-15.256-12.978-17.162-1.5024-0.35752-2.9759-0.50366-4.3831-0.42692zm2.6469 3.9846c1.1-0.06 2.2409 0.0336 3.4154 0.31308 6.2641 1.4906 10.814 7.5076 10.161 13.434-0.65359 5.9263-6.259 9.5168-12.523 8.0262-6.2641-1.4906-10.814-7.4791-10.161-13.405 0.53104-4.8151 4.3408-8.1078 9.1077-8.3677z" + /> + <g + id="g4168" + transform="matrix(.10377 -.028021 .028021 .10377 642.62 310.28)" + > + <path + id="path4170" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4172" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4174" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4176" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4178" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4180" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4182" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4184" + transform="matrix(.10377 -.028021 .028021 .10377 638.96 320.13)" + > + <path + id="path4186" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4188" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4190" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4192" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4194" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4196" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4198" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4200" + transform="matrix(.10377 -.028021 .028021 .10377 645.14 327.33)" + > + <path + id="path4202" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4204" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4206" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4208" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4210" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4212" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4214" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4216" + transform="matrix(.10377 -.028021 .028021 .10377 653.35 310.97)" + > + <path + id="path4218" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4220" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4222" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4224" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4226" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4228" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4230" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <g + id="g4232" + transform="matrix(.10377 -.028021 .028021 .10377 656.1 325.68)" + > + <path + id="path4234" + style="opacity:.45;filter:url(#filter3771);fill:#000000" + d="m728.46 323.28c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4236" + style="fill:#c1923d" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4238" + style="opacity:.35398;fill:#000000" + d="m729.72 323.56c-4.0153-0.17442-7.3462 2.4306-7.7812 6.375-0.49715 4.5079 2.9852 9.0849 7.75 10.219 0.69473 0.16532 1.3679 0.24269 2.0312 0.25-4.7496-1.1457-8.1836-5.7202-7.6875-10.219 0.42237-3.8298 3.5799-6.3897 7.4375-6.375-0.5956-0.14173-1.1764-0.22508-1.75-0.25z" + /> + <path + id="path4240" + style="fill:#ca943d" + d="m742.42 334.56c-0.53934 4.8903-5.167 7.8576-10.336 6.6275-5.1691-1.2301-8.9223-6.1916-8.383-11.082 0.53934-4.8904 5.1669-7.8576 10.336-6.6275s8.9223 6.1916 8.383 11.082z" + /> + <path + id="path4242" + style="filter:url(#filter3688);fill:#ca943d" + d="m739.65 333.91c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4244" + style="opacity:.45;filter:url(#filter3688);stroke:#dc942d;fill:#000000" + transform="matrix(.74753 0 0 .74753 202.37 65.885)" + d="m717.06 358.15c-0.28624 2.5954-2.7422 4.1703-5.4856 3.5174-2.7434-0.65283-4.7353-3.2861-4.4491-5.8815 0.28625-2.5954 2.7422-4.1703 5.4857-3.5174 2.7434 0.65283 4.7353 3.2861 4.4491 5.8815z" + /> + <path + id="path4246" + style="opacity:.32743;filter:url(#filter3688);fill:#000000" + d="m734.3 329.06c-1.7282-0.0751-3.1565 1.0211-3.3438 2.7188-0.21397 1.9402 1.293 3.9182 3.3438 4.4062 0.12752 0.0303 0.24948 0.0136 0.375 0.0312-0.91811-0.86636-1.4462-2.0686-1.3125-3.2812 0.19944-1.8084 1.8093-2.9666 3.6875-2.7188-0.54547-0.50485-1.2146-0.88303-1.9688-1.0625-0.25635-0.061-0.53436-0.083-0.78125-0.0937z" + /> + </g + > + <path + id="path4248" + style="opacity:.23451;filter:url(#filter3861);fill:#000000" + d="m746.41 335.18c-0.84563 7.6675-8.1012 12.32-16.206 10.391-8.1046-1.9286-13.989-9.7078-13.144-17.375 0.84563-7.6675 8.1012-12.32 16.206-10.391 8.1046 1.9286 13.989 9.7078 13.144 17.375z" + /> + </g + > + </g + > + </g + > + </g + > + <metadata + > + <rdf:RDF + > + <cc:Work + > + <dc:format + >image/svg+xml</dc:format + > + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/publicdomain/" + /> + <dc:publisher + > + <cc:Agent + rdf:about="http://openclipart.org/" + > + <dc:title + >Openclipart</dc:title + > + </cc:Agent + > + </dc:publisher + > + <dc:title + /> + <dc:date + >2012-02-16T01:35:27</dc:date + > + <dc:description + /> + <dc:source + >https://openclipart.org/detail/168285/-by-markacio</dc:source + > + <dc:creator + > + <cc:Agent + > + <dc:title + >Markacio</dc:title + > + </cc:Agent + > + </dc:creator + > + </cc:Work + > + <cc:License + rdf:about="http://creativecommons.org/licenses/publicdomain/" + > + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" + /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" + /> + </cc:License + > + </rdf:RDF + > + </metadata + > +</svg +> diff --git a/construction-crane.svg.license b/construction-crane.svg.license new file mode 100644 index 0000000..463bed9 --- /dev/null +++ b/construction-crane.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) Markacio diff --git a/copyright.txt b/copyright.txt new file mode 100644 index 0000000..ff06088 --- /dev/null +++ b/copyright.txt @@ -0,0 +1,3 @@ +-d +2025 +-copyright<Copyright © $createdate, Wojciech Kosior, document available under the terms of Creative Commons Zero v1.0 diff --git a/copyright.txt.license b/copyright.txt.license new file mode 100644 index 0000000..511093b --- /dev/null +++ b/copyright.txt.license @@ -0,0 +1,5 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +Based on https://tex.stackexchange.com/questions/41461/how-to-add-copyright-information-to-pdf-metadata
\ No newline at end of file diff --git a/cpu-info.txt b/cpu-info.txt new file mode 100644 index 0000000..5d5a18c --- /dev/null +++ b/cpu-info.txt @@ -0,0 +1,14 @@ +Packages: + 0: Intel Core i7-7500U +Microarchitectures: + 2x Sky Lake +Cores: + 0: 2 processors (0-1), Intel Sky Lake + 1: 2 processors (2-3), Intel Sky Lake +Clusters: + 0: 4 processors (0-3), 0: 2 cores (0-1), Intel Sky Lake +Logical processors (System ID): + 0 (0): APIC ID 0x00000000 + 1 (1): APIC ID 0x00000001 + 2 (2): APIC ID 0x00000002 + 3 (3): APIC ID 0x00000003 diff --git a/cpu-info.txt.license b/cpu-info.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/cpu-info.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/debian-control-excerpt.txt b/debian-control-excerpt.txt new file mode 100644 index 0000000..a133dad --- /dev/null +++ b/debian-control-excerpt.txt @@ -0,0 +1,34 @@ +Source: nodejs +Section: javascript +Priority: optional +Maintainer: Debian Javascript Maintainers <pkg-javascript-devel@alioth-lists.debian.net> +Uploaders: Jérémy Lal <kapouer@melix.org>, + Jonas Smedegaard <dr@jones.dk> +Build-Depends: + sse2-support [i386] <!nocheck>, + armv6k-support [armel] <!nocheck>, vfpv2-support [armel] <!nocheck>, + debhelper-compat (= 13), + dh-buildinfo, + bash-completion, + dh-sequence-bash-completion, + ca-certificates, + curl <!nocheck>, + gyp (>= 0.16.0~), + jq, + libbrotli-dev, +(*\itshape\color{TEXTGRAY}{[...]}*) + +Package: nodejs +Architecture: amd64 arm64 armel armhf i386 mips64el mips64r6el loong64 powerpc ppc64 ppc64el riscv64 s390x +Multi-Arch: allowed +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + node-corepack <!pkg.nodejs.nobuiltin>, + sse2-support [i386], + armv6k-support [armel], vfpv2-support [armel], + libnode115 (= ${binary:Version}) +Recommends: ca-certificates, + nodejs-doc +Suggests: npm +(*\itshape\color{TEXTGRAY}{[...]}*) diff --git a/debian-control-excerpt.txt.license b/debian-control-excerpt.txt.license new file mode 100644 index 0000000..c6c690d --- /dev/null +++ b/debian-control-excerpt.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-expat-nodejs-debian-control + +Copyright 2009-2015 Jérémy Lal <kapouer@melix.org> diff --git a/debian-shc.patch b/debian-shc.patch new file mode 100644 index 0000000..629f4ff --- /dev/null +++ b/debian-shc.patch @@ -0,0 +1,13 @@ +Description: fix rc path to allow build system run tests +Author: Joao Eriberto Mota Filho <eriberto@debian.org> +Last-Update: 2019-10-20 +--- shc-4.0.3.orig/test/ttest.sh ++++ shc-4.0.3/test/ttest.sh +@@ -1,6 +1,6 @@ + #!/bin/bash + +-shells=('/bin/sh' '/bin/dash' '/bin/bash' '/bin/ash' '/bin/ksh' '/bin/zsh' '/usr/bin/tcsh' '/bin/csh' '/usr/bin/rc') ++shells=('/bin/sh' '/bin/dash' '/bin/bash' '/bin/ash' '/bin/ksh' '/bin/zsh' '/usr/bin/tcsh' '/bin/csh' '/bin/rc') + ## Install: sudo apt install dash bash ash ksh zsh tcsh csh rc + + check_opts=('' '-r' '-v' '-D' '-S') diff --git a/debian-shc.patch.license b/debian-shc.patch.license new file mode 100644 index 0000000..b3a07c8 --- /dev/null +++ b/debian-shc.patch.license @@ -0,0 +1,22 @@ +SPDX-License-Identifier: GPL-3.0-or-later + +Copyright 2014-2020 Tong Sun <suntong001@users.sourceforge.net> +Copyright 2019 Joao Eriberto Mota Filho <eriberto@debian.org> + +The original license notice: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/> + + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/dependee_counts.gnuplot b/dependee_counts.gnuplot new file mode 100755 index 0000000..158c452 --- /dev/null +++ b/dependee_counts.gnuplot @@ -0,0 +1,21 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set terminal svg size 800,400 font "DejaVu,sans,14.5"; +set output "dependee_counts.svg" +set ylabel "Uses count"; +set xlabel "Top npm dependencies ranking position"; +set key; +set linetype 1 linecolor rgb "0x333333"; +set linetype 2 linecolor rgb "0x333333" dashtype 2; +set style data lines; +set grid; +set logscale y; +set yrange [300:300000]; +set ytics (346, 1000, 4771, 10000, 30000, 69147, 100000, 263038); +set datafile separator ","; +plot "dependencies.csv" using 0:2 title "2025 ranking", \ + "dependencies_2019.csv" using 0:2 title "2019 ranking"; diff --git a/dependencies.csv b/dependencies.csv new file mode 100644 index 0000000..2824813 --- /dev/null +++ b/dependencies.csv @@ -0,0 +1,1000 @@ +react,263038 +react-dom,227547 +lodash,168789 +axios,135067 +chalk,122666 +next,117996 +tslib,113522 +inquirer,91547 +commander,90651 +vue,85711 +express,83301 +fs-extra,69275 +typescript,65587 +core-js,58599 +moment,57488 +uuid,53429 +request,52151 +prop-types,51605 +debug,51121 +dotenv,48209 +@types/node,42578 +rxjs,41128 +unique-names-generator,39762 +node-fetch,38484 +classnames,38266 +yargs,37986 +glob,35087 +@babel/runtime,33686 +semver,32846 +webpack,31871 +async,31820 +ora,29215 +react-scripts,28201 +jsonwebtoken,27306 +teanager,27286 +eslint,26886 +acertea,26862 +rylie,26856 +anakjalanan,26663 +bluebird,26302 +@babel/core,25811 +nitroteh,25335 +minimist,25128 +vue-router,25073 +mkdirp,25018 +styled-components,23930 +zod,23648 +underscore,23638 +body-parser,23531 +colors,23243 +rimraf,23192 +@testing-library/react,23109 +jquery,22982 +@testing-library/jest-dom,22594 +@types/react,22260 +@testing-library/user-event,22098 +react-router-dom,21456 +prettier,20741 +ws,20633 +babel-loader,20521 +js-yaml,20443 +winston,20249 +web-vitals,20008 +eslint-plugin-import,19565 +dayjs,19540 +shelljs,18805 +css-loader,18120 +eslint-plugin-react,17725 +reflect-metadata,17430 +@angular/core,17341 +cheerio,17175 +@babel/preset-env,16870 +babel-runtime,16440 +cors,16414 +mongoose,16370 +style-loader,16262 +@angular/common,16241 +qs,16171 +date-fns,16058 +postcss,15850 +ts-node,15727 +zone.js,15703 +babel-core,15311 +execa,15224 +tehtehteh,15156 +@types/react-dom,15129 +@types/express,15055 +@angular/platform-browser,15021 +redux,15011 +bootstrap,15001 +chokidar,14978 +jest,14873 +@typescript-eslint/parser,14813 +path,14731 +@angular/compiler,14628 +node-sass,14621 +react-redux,14583 +ejs,14376 +@angular/forms,14346 +handlebars,14301 +kva-email-service,14275 +@typescript-eslint/eslint-plugin,14231 +vuex,14201 +@angular/platform-browser-dynamic,14157 +lodash-es,14122 +ethers,13998 +ksni-technical-test,13896 +@emotion/styled,13882 +web3-eve-cli,13873 +react-random-number-generator,13786 +round-number-cli,13785 +npm,13714 +fs,13676 +btuyen-btn-events,13615 +boarding_pass_mint,13614 +@angular/router,13584 +autoprefixer,13570 +@emotion/react,13566 +through2,13241 +sass-loader,13225 +crypto-js,13188 +html-webpack-plugin,13134 +file-loader,13112 +number-extrarandom-cli,13084 +yeoman-generator,12958 +babel-eslint,12954 +aws-sdk,12932 +mocha,12904 +antd,12855 +webpack-dev-server,12775 +clsx,12651 +deepmerge,12617 +graphql,12491 +@types/jest,12458 +element-ui,12426 +rarerteat,12381 +eslint-config-prettier,12227 +ajv,12055 +@angular/animations,11998 +sass,11985 +nanoid,11969 +figlet,11860 +eslint-plugin-jsx-a11y,11602 +@types/lodash,11546 +postcss-loader,11459 +chai,11398 +object-assign,11346 +express-validator,11198 +cross-spawn,10992 +ramda,10955 +open,10940 +mongodb,10929 +form-data,10904 +gulp,10849 +@types/jsonwebtoken,10769 +url-loader,10760 +q,10723 +minimatch,10636 +resolve,10588 +socket.io,10586 +less,10503 +strip-ansi,10410 +@babel/preset-react,10324 +@alifd/next,10286 +cookie-session,10209 +download-git-repo,10120 +rollup,10064 +eslint-plugin-react-hooks,10030 +buffer,10012 +pubteahy,9949 +acorn,9608 +ms,9606 +babel-preset-es2015,9551 +joi,9500 +babel-polyfill,9419 +prompts,9373 +@babel/polyfill,9352 +@mui/material,9324 +@types/cookie-session,9298 +marked,9215 +eslint-plugin-prettier,9183 +globby,9178 +tradingcalc,9152 +remove-value-js,9122 +slash-connecter,9118 +xml2js,9103 +socket.io-client,8973 +superagent,8847 +mime,8835 +webpack-cli,8698 +babel-jest,8589 +mime-types,8562 +jsdom,8547 +mini-css-extract-plugin,8526 +react-native,8511 +got,8478 +morgan,8386 +redis,8370 +react-icons,8300 +puppeteer,8237 +@material-ui/core,8228 +yaml,8220 +install,8207 +pg,8155 +nan,8147 +bignumber.js,8110 +source-map-support,8080 +tailwindcss,8020 +cookie-parser,7991 +fast-glob,7962 +tiktokapi-src,7861 +bey0tea,7845 +nodemailer,7793 +js-cookie,7776 +pinsapod,7742 +queencrow,7700 +request-promise,7693 +abbeeytea,7688 +react-router,7674 +calender-nifty,7666 +compaspetter,7666 +systemofdown,7666 +airynotes,7664 +last-notes,7664 +neonnebulay,7663 +quasarquest,7663 +astralamber,7661 +naraonline,7653 +beypremajg,7652 +celestialciphercd,7652 +ciphersage,7652 +cosmicchorus,7652 +luminouslab,7652 +lunarloom,7652 +nebulanomad,7652 +stellarscribe,7652 +vividvortex,7652 +beypremtea,7650 +desateatertinggal45,7649 +exa2tea,7649 +kuymad69tea,7649 +prayudha378,7649 +tea_fahmisugeng13,7649 +teabrutu,7649 +yudhakuy420,7649 +beypremtea1,7648 +gulp-util,7596 +lru-cache,7554 +query-string,7541 +tiny-invariant,7499 +meow,7498 +react-transition-group,7479 +camelcase,7465 +loader-utils,7448 +node-nats-streaming,7413 +less-loader,7396 +immutable,7367 +@saeedha/math-first,7321 +@saeedha/math-power,7313 +string-width,7294 +events,7246 +lodash.merge,7224 +mysql,7064 +@angular/http,7052 +cross-env,7009 +vanli,6969 +@saeedha/math-power-dev,6968 +echarts,6966 +stay-including,6957 +whatwg-fetch,6933 +compression,6930 +koa,6929 +lay-rest-hour,6924 +exchange-known-bend,6911 +diff,6908 +co,6905 +big.js,6903 +correct-home-silent7,6901 +yosay,6898 +meat-think-stove8,6889 +course-whenever-merely,6866 +wrap-ansi,6865 +nodemon,6863 +tiktok-src,6838 +percent-impossible-score,6820 +anything-kitchen-pack-tears,6819 +anywhere-leon-ethers,6819 +breakfast-thy-slip,6819 +anywhere-dream-demo,6818 +anywhere-dream-term,6818 +anywhere-leonterms,6818 +needs-supper-anything,6818 +actually-web3-win,6817 +anywhere-dream,6817 +anywhere-leon-demo,6817 +anywhere-leon-web3,6817 +art-near-room-catch,6817 +by-sum-desert,6817 +leg-it-importance-can,6817 +alphabet-minute,6816 +anywhere-leon,6816 +anywhere-leon-eth,6816 +anywhere-leon-test,6816 +being-heard-nation-nature,6816 +chose-web3-simple,6816 +continued-quiet-previous-touch,6816 +far-web3-neck,6816 +finest-blind-tin,6816 +inherits,6816 +prove-solid,6816 +avoid-web3-plenty,6815 +meat-web3-direction,6815 +meat-web3-direction-transportation4,6815 +stone-web3-fellow,6815 +with-hang-mail-outer,6815 +written-web3-positive,6815 +young-web3-fireplace,6815 +listen-private-thee6,6814 +projek-reels,6814 +bring-water-silence,6812 +close-education-fifteen,6811 +excellent-entirely-automobile1,6810 +team20,6810 +these-vegetable,6809 +aid-guard1,6806 +born-greatly-explain3,6806 +did-straight-sister-sail,6806 +tail-iron-became5,6806 +branch-body-web3-feel,6805 +worse-given,6804 +blockchain-hit4,6803 +mainly-cent,6802 +temperature-bill-manner2,6802 +sugar-policeman-entire,6801 +mouse-bat-web3-present,6800 +column-wore-meet-war,6799 +fur-race-web3-pale,6799 +hope-slight-walk1,6799 +rocket-location-calm-valley,6799 +shirt-bad-web3-example,6796 +giant-summer-run-game,6795 +yet-tall-pull6,6795 +@tjahbergas/idcloudserv,6794 +blanket-line,6794 +hung-stems-garden,6794 +shade-swim-shells1,6794 +is-straight-web3-attack,6793 +slow-voice-spell-pass,6793 +snake-seven-recall-interior,6793 +bcrypt,6791 +distance-its-clear-rate,6791 +electricity-death-web3-story,6791 +feature-rising-small7,6791 +move-wolf-throughout,6791 +brush-bigger-afternoon0,6790 +compare-breeze-mad2,6790 +unusual-rope,6790 +gain-pleasant-prepare,6789 +hay-against-any-hurry,6789 +victory-mouth,6789 +web3-compass,6787 +pen-shot-start-lie,6786 +test-cutting,6786 +trunk-darkness-believed-corner,6786 +bow-swam-troops-care,6785 +crop-birthday-web3-children,6785 +excitement-tonight-dead,6785 +information-fruit-web3-perfect,6785 +office-deal-mostly1,6785 +face-eventually-bound,6784 +sentence-won-little-western,6784 +weigh-flew-web3-farm,6784 +grass-dollar-crew-floating,6783 +known-wet-thirty-gave,6783 +product-slight-adult-settlers,6783 +speed-wing-eat,6783 +supper-term-including-snake,6783 +typical-recall-industry-exchange,6783 +warn-clothing-whose0,6783 +we-hunt-process,6783 +coach-organized-notice,6782 +fresh-dangerous,6782 +motor-positive-spirit,6782 +truck-hospital-equator-hurt,6782 +ask-dropped-each,6781 +chicken-fell-spread,6780 +government-letter-web3-till,6779 +industrial-public-immediately-until,6779 +station-quickly-fastened-flew,6779 +stretch-onto-driver7,6778 +spring-dust-wall-size,6777 +strange-lady-riding9,6776 +path-to-regexp,6775 +web3-be,6775 +whether-dangerous,6774 +ran-press6,6773 +object-own-consist6,6772 +fully-blanket-peace,6771 +original-finish-perhaps,6771 +pack-iron-web3-arrow,6771 +sale-eaten-web3-anywhere,6771 +statement-ahead-moment,6771 +else-education-web3-nobody,6770 +dig-cloth-right-state,6769 +behavior-gift-bowl2,6768 +closer-composed-particularly-shout,6768 +seldom-fire-web3-running,6767 +beauty-foot-compass5,6766 +cut-was,6766 +straight-student-present,6766 +web3-worried,6766 +blockchain-bend4,6765 +blockchain-meat7,6765 +material-balance-trade-solar,6765 +race-everybody-orbit,6765 +recently-done-should-moon,6765 +scientific-exist-event2,6765 +might-sell-web3-result,6764 +done-prepare,6763 +hollow-cool-place9,6761 +deep-consist-ability3,6760 +particles-badly-glad-gas,6760 +recall-shut-say,6760 +by-out-web3-dried,6759 +softly-increase-arm-practical,6759 +wrong-known-original,6759 +room-direction-principal7,6758 +web3-eleven,6758 +flow-meal-without-guide,6756 +mice-tube-gave-applied,6756 +teach-law,6756 +web3-touch,6756 +guard-plastic-fallen4,6755 +path-plural-through,6755 +spring-green-hung4,6755 +tin-settle-may,6754 +desert-or-order8,6753 +train-than-web3-sitting,6753 +web3-twenty,6753 +honor-fresh-web3-leg,6752 +per-took-breathing-begun,6752 +stems-threw-author1,6752 +shine-before-statement,6751 +there-zebra-paragraph-system,6751 +attempt-till-declared,6750 +introduced-music2,6750 +lovely-mountain,6750 +mark-back0,6750 +web3-hurt8,6750 +web3-jet,6750 +being-wet,6749 +fuel-ill-managed,6749 +older-piece-smallest-struggle,6749 +three-search3,6749 +web3-swim3,6749 +wing-gentle-web3-division,6749 +beginning-guess4,6748 +lot-cold-measure5,6748 +mood-various-worried,6748 +web3-total,6748 +carbon-note-web3-triangle,6747 +city-nervous-web3-rocket,6747 +include-condition-mile-mail,6747 +prove-be,6747 +reader-hearing-useful,6747 +surface-automobile-track-fence,6747 +date-again-most,6746 +mental-oxygen-dozen,6746 +pen-ocean-web3-hang,6746 +substance-apartment-list,6746 +train-stick-swept7,6746 +typical-completely-web3-himself,6746 +wonder-since-web3-favorite,6746 +evidence-frozen-enemy4,6745 +planet-scientist-sum-hurried,6745 +silver-tax-necessary-image,6745 +son-problem-surface-after,6745 +state-place-usually2,6745 +station-quiet-shinning2,6745 +wooden-blanket-blind,6745 +fresh-compare-exchange-seldom,6744 +joy-package-fed1,6744 +property-repeat-swimming-cry,6744 +rising-applied-wealth1,6744 +dead-one-tide-melted,6743 +hair-consider-century-won,6743 +married-review-sitting-local,6743 +charge-contrast-web3-help,6742 +map-select-audience-influence,6742 +opposite-street-manufacturing,6742 +shoe-back-duck-border,6742 +tower-today0,6742 +directly-strip-web3-atmosphere,6741 +invented-element-new,6741 +near-owner-web3-children,6741 +rising-cost-web3-respect,6741 +sister-pig6,6741 +tribe-brick-appearance-date,6741 +volume-brass-automobile-stuck,6741 +carried-chapter-applied-made,6740 +dot-dog-known-darkness,6740 +light-supply-chicken,6740 +noted-will-suggest,6740 +then-struggle-freedom-along,6740 +listen-greatly,6739 +locate-alike-explanation1,6739 +lovely-leave-mental,6739 +peace-sit-prevent-sign,6739 +specific-sale-web3-dirt,6739 +surprise-shop-pound,6739 +beauty-equator-dead-allow,6738 +frequently-feature,6738 +paint-yes-smell,6738 +properly-garden-web3-basis,6738 +vowel-sail-web3-success,6738 +web3-also3,6738 +mirror-jet-printed-supper,6737 +refused-teach-then9,6737 +symbol-darkness-these-poet,6737 +web3-exactly6,6737 +action-winter-carried,6736 +environment-wheat-web3-pink,6736 +finish-remember-web3-throw,6736 +form-not7,6736 +hospital-wave,6736 +law-shoot-sudden-command,6736 +means-among-web3-burn,6736 +nuts-passage-did,6736 +shells-part-hall8,6736 +someone-present-nest,6736 +tea-classroom-hole-happened,6736 +require-personal-web3-enough,6735 +baseball-flower-join,6734 +course-future-web3-operation,6734 +depend-grain-web3-label,6734 +limited-lower-book-seed,6734 +pleasure-choose-web3-observe,6734 +remarkable-law-web3-fierce,6734 +wagon-entirely-sport,6734 +way-bicycle-camera,6734 +class-would-trail5,6733 +corn-faster-dinner,6733 +locate-setting-yet,6733 +shut-composed-web3-now,6733 +web3-fruit,6733 +pupil-sitting-farther,6732 +shut-floor-news-beginning,6732 +sound-captain-paint2,6732 +aid-human-declared,6731 +die-certainly-did-standard,6731 +exchange-breakfast6,6731 +interest-central-calm,6731 +molecular-sell8,6731 +popular-dozen4,6731 +program-growth-web3-of,6731 +silence-lost-web3-influence,6731 +tube-way-pan-choice,6731 +baby-ate-building8,6730 +by-arrive-firm,6730 +compare-anyone-web3-your,6730 +doing-inside-arrange,6730 +meat-movie-atomic-condition,6730 +member-inside-hold-author,6730 +settle-disappear,6730 +strange-log-web3-film,6730 +butter-lot-web3-pretty,6729 +darkness-voyage-flower,6729 +difference-toy-scientist,6729 +promised-food-clearly,6729 +shown-popular-rain6,6729 +town-sense-whispered3,6729 +actually-plastic-driven,6728 +airplane-thus-web3-breathing,6728 +arg,6728 +copper-tonight-hurried1,6728 +each-guess-art,6728 +older-globe-web3-easier,6728 +selection-outline-standard,6728 +suppose-exclaimed-surprise,6728 +tip-mood-friend7,6728 +took-unknown-regular2,6728 +village-sort-grown-consonant,6728 +according-he-proper,6727 +impossible-sudden-keep-advice,6727 +wave-sitting-web3-very,6727 +happily-must-quietly,6726 +possible-smell-north-refer,6726 +rabbit-today-valley-shelter,6726 +series-writer-must,6726 +eventually-load-web3-mostly,6725 +experiment-poem-married-fish,6725 +harder-soil-reader,6725 +law-means-shadow0,6725 +service-bicycle-web3-locate,6725 +surface-log-web3-smell,6725 +television-lucky-usual6,6725 +web3-bag,6725 +blind-quite-examine3,6724 +brought-potatoes,6724 +fact-tin-beauty-settle,6724 +longer-paper-lot,6724 +native-progress-active5,6724 +rush-stuck,6724 +whistle-shown-built,6724 +fifteen-nearby,6723 +enter-concerned-together,6722 +pound-week-author7,6722 +due-engineer-being4,6721 +quietly-tropical-whole,6721 +unusual-tales-web3-lying,6721 +yet-prize6,6721 +believed-simply1,6720 +death-trunk,6720 +fuel-merely,6720 +hand-lovely-snake8,6720 +slabs-successful-hundred5,6720 +yet-sharp3,6720 +control-parent-statement-fill,6719 +pile-across-web3-iron,6719 +stream-swept-web3-sky,6718 +basis-want-web3-glass,6717 +correctly-also-satisfied9,6717 +bottle-closely-wave,6716 +distant-remember-public,6716 +over-half-tired,6716 +pick-inch-uncle,6716 +rich-road-web3-fellow,6716 +balloon-pure-web3-money,6715 +force-giant4,6715 +his-settle-web3-theory,6715 +body-evening-flag-boy,6714 +desk-dog5,6714 +different-movie-in-all,6714 +fought-mother-rabbit,6714 +sweet-jungle-leg-owner,6714 +because-progress-produce-section,6713 +seldom-discover-golden-suddenly,6713 +wheel-bit-pleasant-deal,6713 +anyone-rule-certain,6712 +mad-bear-web3-pool,6712 +success-gravity-dug-noon,6712 +floor-finest-meant-thin,6711 +plus-college-time-strong,6711 +success-position-seat,6710 +modern-new,6709 +summer-western-cage-perhaps,6709 +blank-shoot-web3-frozen,6708 +press-south-tales,6708 +ran-man-steam-stone,6708 +slipped-railroad-web3-repeat,6708 +society-burn,6708 +movie-plant,6705 +bell-effort2,6703 +sick-construction1,6699 +equipment-rope-saw-living,6697 +chest-hello-been4,6694 +@nestjs/common,6693 +eventemitter3,6669 +bipy-calculator,6645 +abangamad,6644 +akuuong,6644 +aldorev,6644 +amadkuen,6644 +code-formlly,6644 +data-visualizer-csv,6644 +db73,6644 +dni53,6644 +efp9,6644 +ff13,6644 +form-valid-js,6644 +imagemanipulatorly,6644 +janahw,6644 +jinahwal,6644 +kipanta,6644 +la9rock,6644 +lokap,6644 +namaa,6644 +pangkiabis,6644 +sonipopi,6644 +unhar,6644 +win693,6644 +color-pale-generatorly,6643 +color_generator_complex,6643 +polycalculator,6643 +randomly-password-generator,6643 +text-summarizerly,6643 +textmoji,6643 +axilitor,6641 +queen-shisora,6641 +web3,6613 +scrape-tiktok,6568 +dependents-zaty,6565 +eth-bsc-sniperbot,6565 +mcp_02,6563 +terser-webpack-plugin,6526 +md5,6522 +cybertea,6519 +regenerator-runtime,6511 +iconv-lite,6508 +@fortawesome/fontawesome-svg-core,6479 +promise,6434 +lit,6413 +babel-preset-env,6396 +js-tokens,6394 +@fortawesome/free-solid-svg-icons,6354 +ember-cli-babel,6342 +react-dev-utils,6326 +@popperjs/core,6292 +@babel/plugin-proposal-class-properties,6288 +highlight.js,6277 +isomorphic-fetch,6210 +coffee-script,6171 +json5,6168 +@mui/icons-material,6163 +log-symbols,6144 +tailwind-merge,6094 +lordlist,6093 +@babel/cli,6060 +es6-promise,6054 +moment-timezone,6051 +tombypl,6050 +gynopsyda,6043 +aethlong,6039 +elaverse,6039 +favanow,6039 +frypalindrome,6039 +graphconql,6039 +hanaauth-jwt,6039 +lenaverage,6039 +loadmulkim,6039 +lynxfaktor,6039 +merycount,6039 +pinarrray,6039 +princeweather,6039 +quarctic,6039 +refaktorial,6039 +rheizi,6039 +shortamo,6039 +siustoheit,6039 +superfatcat,6039 +trex-chatbot,6039 +find-up,6037 +esbuild,6027 +readable-stream,6026 +discord.js,6020 +tmp,6006 +@babel/plugin-transform-runtime,6005 +lodash.debounce,6000 +uglify-js,5980 +d3,5976 +escape-string-regexp,5930 +case-sensitive-paths-webpack-plugin,5916 +validator,5895 +node-addon-api,5886 +loose-envify,5859 +eslint-loader,5841 +source-map,5821 +crypto,5797 +del,5788 +babel-preset-react,5784 +eslint-plugin-flowtype,5743 +bn.js,5728 +extend,5711 +babel-cli,5703 +which,5682 +type-fest,5671 +ts-loader,5670 +micromatch,5669 +graceful-fs,5654 +firebase,5647 +framer-motion,5642 +herztech,5626 +cross-fetch,5617 +invariant,5610 +postcss-flexbugs-fixes,5600 +take-flight,5598 +update-notifier,5598 +react-select,5571 +teajusgula,5542 +tiny-warning,5539 +path-exists,5537 +tehtarik3,5532 +belalangkayu,5531 +seblakhotspicy,5531 +rengginangbasi,5530 +boxen,5514 +webpack-merge,5495 +picocolors,5471 +extract-text-webpack-plugin,5464 +webpack-manifest-plugin,5445 +goblinjoker,5426 +acorn-walk,5416 +passport,5414 +@babel/preset-typescript,5405 +babel-preset-react-app,5402 +react-hook-form,5385 +@material-ui/icons,5339 +redux-thunk,5338 +mindy23,5332 +saber2023,5330 +lodash.get,5322 +scheduler,5322 +katea1,5320 +ninecidtea2,5320 +katea2,5319 +eslint-config-react-app,5318 +matea2,5316 +saber2024,5313 +matea10,5312 +mindy24,5312 +eslint-plugin-promise,5310 +jasslimited23,5310 +jasslimited24,5310 +ka2024,5310 +ka23,5310 +cixzer01,5309 +cixzer05,5309 +cixzer06,5309 +cixzer02,5306 +cixzer03,5306 +cixzer04,5306 +cixzer07,5306 +cixzer08,5306 +fast-deep-equal,5295 +vite,5288 +file-saver,5272 +sharp,5229 +number-rand-cli,5225 +telegram-assistant,5221 +optimist,5218 +i18next,5188 +jsbi,5170 +resize-observer-polyfill,5162 +felixandroid,5159 +terakhir558,5159 +url,5130 +dotenv-expand,5091 +supports-color,5088 +xlsx,5073 +pluralize,5039 +serialport,5037 +tar,4997 +archiver,4987 +progress,4986 +undici-types,4986 +postcss-preset-env,4984 +eslint-config-airbnb,4976 +@ant-design/icons,4929 +simple-git,4919 +fsevents,4907 +hot-planned-web3-cost,4894 +hurry-scared-web3-sudden,4888 +web3-recently8,4888 +whether-mail,4886 +tropical-finest-spirit-personal,4883 +immer,4882 +very-moment-web3-take,4882 +beauty-studying-plastic4,4880 +film-lay-travel,4874 +by-case-quickly,4873 +corn-note-down,4873 +markdown-it,4873 +rhyme-troops-crew-year,4872 +web3-maybe,4872 +freedom-strange-view3,4870 +grow-year-correctly2,4870 +itself-outside-web3-balloon,4869 +began-tales-web3-teach,4868 +serious-wrong-plates,4868 +signal-mother-change,4868 +smaller-our7,4868 +neighbor-satisfied-top6,4867 +guess-youth-guard,4864 +frozen-closely-let,4862 +golden-sail,4862 +web3-strength4,4862 +school-it-worry,4861 +sequelize,4861 +till-final-experiment,4861 +nervous-cross-dirty-term,4859 +trick-such-country0,4859 +lying-swim-web3-chest,4858 +movie-promised-object-bigger,4858 +sad-pole-below,4858 +other-card-worse,4857 +sheep-ranch-equal,4857 +correct-mental-book1,4856 +negative-feed,4856 +outline-leader-mighty,4856 +trip-local-company,4856 +pole-jungle6,4854 +fear-manner-web3-beneath,4853 +weigh-length5,4853 +bean-planet-also-ring,4852 +shake-dead-white-pine,4852 +web3-dog1,4852 +unusual-skill-harder,4851 +cup-language-so-smaller,4850 +folks-powerful-official-store,4850 +along-disease5,4849 +family-perhaps-web3-main,4849 +act-mark-sent6,4847 +dawn-road-sit-inch,4847 +earn-kill-trip-light,4847 +hidden-furniture-money-minute,4847 +invented-copper-web3-strange,4847 +push-mirror,4847 +song-scale-explain,4847 +thee-property-web3-today,4846 +though-respect-lucky-finest,4846 +different-population-furniture-central,4845 +sing-valley-mile-went,4845 +atmosphere-repeat-web3-together,4844 +fifteen-muscle-policeman-length,4844 +light-fifteen-thread-poetry,4844 +sugar-serve-difficulty-parallel,4844 +book-larger1,4843 +fifteen-fog-sleep7,4843 +jack-case-web3-flat,4842 +mustache,4842 +powder-wear,4842 +favorite-like-bite-house,4841 +sharp-wonder-wide,4841 +tobacco-monkey-exciting,4841 +dig-completely-liquid,4840 +silly-degree-web3-range,4840 +web3-support,4840 +visitor-breath9,4839 +box-fix-leaf-see,4838 +slave-bell-drew5,4838 +scientific-pen-wife-birth,4837 +try-car-soap3,4837 +cannot-cent,4836 +look-being-under,4836 +pound-needs-web3-dug,4835 +stage-nearest-little,4833 +movement-moment-web3-powerful,4832 +path-explain-value5,4831 +sense-curve-tone,4831 +vertical-loss-web3-huge,4831 +equal-scientific-zulu-form,4830 +decimal.js-light,4827 +music-finish-quite,4826 +decide-congress-one6,4823 +dream-offer-state,4823 +tried-child-wall-finish,4823 +giving-seems-be3,4822 +spread-somehow-ago,4816 +safe-buffer,4791 +jszip,4787 +ancient-sun,4771 +anybody-office-web3-happened,4771 +arrange-protection-round4,4771 +attempt-band-club,4771 +available-percent-pride0,4771 +bark-writer-darkness5,4771 +believed-swept-twenty5,4771 +bone-rather-save,4771 +character-any,4771 +children-court-barn,4771 +control-using-breath,4771 +correct-boat-close,4771 +date-stock,4771 +down-sugar-web3-distant,4771 +essential-beneath-dirty1,4771 +fear-identity-page-gravity,4771 +feature-whenever-accept4,4771 +hair-thread4,4771 +halfway-willing,4771 +heart-unusual-web3-pine,4771 +home-hearing,4771 +kept-machine-draw-wet,4771 +label-involved-darkness,4771 +law-shelter-hour,4771 +little-definition-cent0,4771 +loose-slight-before1,4771 +magnet-voyage-web3-our,4771 +major-taste-you,4771 +mill-light,4771 +nature-chain-web3-root,4771 +nearby-broken-period-forest,4771 +owner-orange1,4771 +pet-invented,4771 +policeman-lift-return-equal,4771 +result-hardly-away-badly,4771 +round-declared-believed-pig,4771 +selection-outer-ranch2,4771 +sheep-fair-minerals5,4771 +sister-receive-closer2,4771 +solid-test-web3-husband,4771 +speed-health-pay-interest,4771 +spent-sharp-spirit-shelf,4771 +star-fog-fireplace4,4771 +start-quickly-web3-clothes,4771 +straw-herself8,4771 +surface-surface-themselves,4771 +swim-won-weight-suit,4771 +tell-extra-web3-camera,4771 +total-factory3,4771 +warn-room-review4,4771 diff --git a/dependencies.csv.license b/dependencies.csv.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/dependencies.csv.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/dependencies_2019.csv b/dependencies_2019.csv new file mode 100644 index 0000000..6baea9f --- /dev/null +++ b/dependencies_2019.csv @@ -0,0 +1,1000 @@ +lodash,69147 +chalk,39816 +request,35681 +commander,32077 +react,30604 +express,27420 +debug,23285 +async,22704 +fs-extra,22493 +moment,21387 +prop-types,20455 +react-dom,20411 +bluebird,18381 +underscore,16870 +vue,15993 +axios,15622 +tslib,15590 +mkdirp,15042 +glob,13086 +yargs,12895 +colors,12754 +inquirer,12573 +webpack,12544 +uuid,11587 +classnames,11355 +minimist,11310 +body-parser,11207 +rxjs,11010 +babel-runtime,10719 +jquery,10708 +yeoman-generator,9969 +through2,9652 +babel-core,9509 +core-js,9369 +semver,8746 +babel-loader,8658 +cheerio,8333 +rimraf,7765 +q,7716 +eslint,7674 +css-loader,7659 +shelljs,7601 +dotenv,7448 +typescript,7203 +@types/node,7194 +@angular/core,7037 +js-yaml,6983 +style-loader,6971 +winston,6736 +@angular/common,6453 +redux,6430 +object-assign,6428 +zone.js,6396 +babel-eslint,6366 +gulp,6317 +gulp-util,6279 +file-loader,6150 +ora,6066 +node-fetch,5892 +@angular/platform-browser,5881 +@babel/runtime,5814 +handlebars,5809 +eslint-plugin-import,5805 +@angular/compiler,5718 +eslint-plugin-react,5626 +aws-sdk,5599 +yosay,5498 +url-loader,5486 +@angular/forms,5486 +webpack-dev-server,5447 +@angular/platform-browser-dynamic,5424 +mocha,5362 +html-webpack-plugin,5329 +socket.io,5288 +ws,5255 +babel-preset-es2015,5242 +postcss-loader,5129 +node-sass,5121 +ember-cli-babel,5118 +babel-polyfill,5116 +@angular/router,5036 +ramda,5016 +react-redux,4995 +@babel/core,4921 +@angular/http,4918 +ejs,4893 +coffee-script,4880 +superagent,4845 +request-promise,4756 +autoprefixer,4746 +path,4700 +mongodb,4664 +chai,4622 +mongoose,4597 +xml2js,4506 +bootstrap,4490 +jest,4290 +sass-loader,4287 +redis,4248 +vue-router,4235 +chokidar,4230 +co,4190 +eslint-plugin-jsx-a11y,4161 +nan,4128 +optimist,4097 +promise,4089 +@angular/animations,4020 +postcss,3903 +morgan,3897 +less,3884 +immutable,3858 +qs,3790 +loader-utils,3777 +fs,3744 +extract-text-webpack-plugin,3743 +marked,3727 +mime,3726 +@alifd/next,3700 +meow,3692 +styled-components,3680 +resolve,3646 +reflect-metadata,3611 +babel-preset-react,3574 +jsonwebtoken,3571 +react-router-dom,3538 +extend,3518 +cookie-parser,3513 +whatwg-fetch,3487 +babel-preset-env,3366 +babel-jest,3361 +mysql,3336 +joi,3332 +minimatch,3308 +eslint-loader,3290 +react-dev-utils,3256 +node-uuid,3234 +es6-promise,3230 +cross-spawn,3189 +case-sensitive-paths-webpack-plugin,3169 +uglify-js,3160 +cors,3073 +eslint-plugin-flowtype,3062 +react-router,3024 +@babel/preset-env,2994 +deepmerge,2957 +socket.io-client,2928 +npm,2896 +webpack-manifest-plugin,2883 +koa,2810 +isomorphic-fetch,2794 +babel-cli,2785 +del,2747 +postcss-flexbugs-fixes,2725 +compression,2717 +update-notifier,2706 +babel-preset-react-app,2655 +jade,2645 +prompt,2561 +gulp-rename,2554 +angular,2550 +underscore.string,2538 +graphql,2517 +execa,2485 +browserify,2485 +opn,2477 +validator,2445 +eslint-config-react-app,2433 +vuex,2429 +prettier,2411 +invariant,2408 +jsdom,2402 +@types/react,2370 +redux-thunk,2357 +mini-css-extract-plugin,2339 +globby,2328 +pg,2307 +got,2257 +ajv,2252 +xtend,2246 +ember-cli-htmlbars,2238 +babel-plugin-transform-runtime,2234 +nodemailer,2224 +source-map-support,2223 +express-session,2205 +d3,2199 +less-loader,2163 +fsevents,2146 +babel-preset-stage-0,2108 +download-git-repo,2100 +query-string,2086 +font-awesome,2082 +open,2082 +passport,2066 +@types/lodash,2062 +grunt,2059 +path-to-regexp,2037 +mustache,2036 +inherits,2017 +tmp,2017 +md5,2007 +dotenv-expand,1990 +crypto-js,1982 +request-promise-native,1973 +through,1956 +connect,1954 +raf,1947 +react-scripts,1943 +readable-stream,1930 +highlight.js,1921 +@babel/polyfill,1918 +progress,1915 +optimize-css-assets-webpack-plugin,1912 +iconv-lite,1900 +bunyan,1898 +gulp-uglify,1876 +koa-router,1853 +ncp,1853 +lodash.merge,1842 +lru-cache,1838 +moment-timezone,1820 +figlet,1810 +history,1802 +readline-sync,1782 +pluralize,1780 +url,1761 +log4js,1743 +cli-table,1736 +webpack-merge,1728 +archiver,1724 +babel-register,1715 +eslint-config-airbnb,1696 +clone,1683 +jsonfile,1682 +puppeteer,1678 +shortid,1658 +@babel/plugin-proposal-class-properties,1647 +querystring,1625 +serve-static,1622 +tslint,1619 +pug,1619 +config,1618 +source-map,1615 +antd,1614 +concat-stream,1607 +element-ui,1607 +lodash.get,1606 +@babel/preset-react,1598 +serve-favicon,1592 +stylus,1591 +date-fns,1587 +esprima,1569 +sequelize,1566 +babel-plugin-transform-object-rest-spread,1564 +bindings,1563 +events,1561 +graceful-fs,1560 +normalize.css,1548 +crypto,1523 +cross-env,1518 +mime-types,1512 +event-stream,1510 +hoist-non-react-statics,1504 +gulp-concat,1493 +terser-webpack-plugin,1491 +json-loader,1490 +warning,1475 +bignumber.js,1460 +eventemitter3,1455 +webpack-cli,1450 +strip-ansi,1449 +cli-color,1441 +form-data,1428 +web3,1423 +gulp-sourcemaps,1423 +webpack-dev-middleware,1416 +ip,1416 +camelcase,1416 +sw-precache-webpack-plugin,1411 +merge,1411 +http-proxy,1411 +react-transition-group,1393 +multer,1379 +deep-equal,1378 +browser-sync,1378 +babel,1373 +dateformat,1370 +postcss-preset-env,1370 +uglifyjs-webpack-plugin,1367 +@polymer/polymer,1364 +sinon,1357 +eslint-config-prettier,1357 +gulp-sass,1354 +identity-obj-proxy,1352 +ts-loader,1351 +react-hot-loader,1350 +sqlite3,1333 +popper.js,1330 +which,1326 +markdown-it,1325 +tar,1320 +vue-template-compiler,1319 +babel-plugin-transform-class-properties,1319 +js-beautify,1313 +log-symbols,1306 +webpack-hot-middleware,1295 +rollup,1282 +copy-webpack-plugin,1278 +nodemon,1277 +boom,1274 +xmldom,1274 +recompose,1262 +util,1261 +ini,1255 +pify,1255 +command-line-args,1240 +vinyl,1234 +mz,1216 +lodash.debounce,1204 +html-minifier,1203 +ts-node,1200 +nconf,1193 +recursive-readdir,1192 +vue-loader,1189 +@types/express,1186 +datafire,1185 +@types/react-dom,1168 +babel-plugin-transform-decorators-legacy,1165 +clean-css,1164 +hoek,1163 +cookie,1162 +@babel/plugin-transform-runtime,1160 +when,1159 +babel-plugin-named-asset-import,1156 +postcss-safe-parser,1148 +bcrypt,1146 +@material-ui/core,1145 +@babel/plugin-syntax-dynamic-import,1135 +nunjucks,1133 +eslint-plugin-promise,1128 +react-native,1127 +lodash.isequal,1125 +workbox-webpack-plugin,1122 +acorn,1122 +amqplib,1120 +@svgr/webpack,1117 +color,1112 +ms,1110 +js-cookie,1109 +temp,1108 +simple-git,1098 +cssnano,1090 +reselect,1089 +yamljs,1088 +ioredis,1088 +koa-static,1088 +react-app-polyfill,1087 +react-select,1086 +escape-string-regexp,1081 +firebase,1076 +bn.js,1075 +escodegen,1070 +react-bootstrap,1067 +babelify,1056 +helmet,1053 +nopt,1045 +eslint-plugin-prettier,1042 +jest-resolve,1038 +knex,1038 +pnp-webpack-plugin,1036 +gulp-if,1031 +assert,1029 +global,1029 +npmlog,1025 +backbone,1022 +graphql-tag,1018 +raw-loader,1018 +run-sequence,1010 +lodash.clonedeep,1004 +@oclif/command,1001 +http-proxy-middleware,1001 +gulp-babel,998 +@oclif/config,998 +vinyl-fs,997 +lodash.throttle,997 +passport-local,996 +eventemitter2,992 +mqtt,989 +unique-random-array,989 +buffer,984 +redux-saga,984 +react-router-redux,983 +jszip,982 +koa-bodyparser,982 +async-validator,979 +babel-preset-stage-2,976 +node-notifier,971 +eslint-config-airbnb-base,970 +material-ui,964 +validate-npm-package-name,962 +clean-webpack-plugin,958 +hammerjs,952 +redux-logger,949 +htmlparser2,947 +html-loader,944 +filesize,943 +gulp-plumber,941 +consolidate,939 +pkginfo,938 +serialport,933 +clear,932 +should,932 +json5,931 +change-case,929 +@babel/plugin-proposal-object-rest-spread,928 +eslint-plugin-node,918 +app-root-path,914 +create-react-class,911 +postcss-import,911 +@angular/cdk,907 +webpack-bundle-analyzer,903 +JSONStream,898 +pump,897 +babylon,895 +mobx,893 +adm-zip,890 +deep-extend,883 +rc,879 +http,874 +@angular/material,873 +eslint-config-standard,872 +eslint-plugin-standard,869 +once,864 +numeral,863 +@typescript-eslint/parser,863 +prismjs,862 +hapi,860 +url-parse,858 +@babel/cli,857 +eslint-plugin-react-hooks,854 +plugin-error,854 +@typescript-eslint/eslint-plugin,850 +require-dir,850 +gulp-autoprefixer,850 +url-join,847 +istanbul,845 +echarts,844 +bower,840 +resize-observer-polyfill,837 +bcryptjs,837 +lodash.assign,836 +gm,835 +babel-plugin-add-module-exports,831 +diff,830 +argparse,826 +react-helmet,826 +stylelint,823 +string,821 +protobufjs,819 +find-up,819 +esm,818 +sprintf-js,816 +rollup-plugin-node-resolve,816 +configstore,816 +download,815 +traverse,814 +websocket,813 +codemirror,812 +bs58,808 +googleapis,808 +method-override,807 +formidable,807 +tape,805 +karma,804 +json-stringify-safe,803 +elasticsearch,803 +split,799 +safe-buffer,797 +rsvp,794 +@oclif/plugin-help,788 +github,786 +xlsx,780 +tinycolor2,779 +lodash-es,778 +@babel/plugin-proposal-decorators,776 +connect-history-api-fallback,776 +@material-ui/icons,769 +jsonschema,767 +portfinder,764 +fbjs,764 +boxen,761 +css,761 +elliptic,759 +sharp,759 +http-errors,758 +co-prompt,757 +walk,756 +restify,754 +three,753 +metalsmith,752 +json-stable-stringify,752 +webpack-node-externals,746 +requirejs,744 +regenerator-runtime,740 +xmlbuilder,740 +unzip,734 +path-exists,732 +rollup-plugin-commonjs,725 +throttle-debounce,722 +user-home,721 +cron,720 +xmlhttprequest,719 +faker,716 +systemjs,714 +inflection,714 +canvas,712 +get-stdin,709 +babel-types,708 +read-pkg-up,705 +graphql-tools,705 +@types/jest,703 +escape-html,700 +broccoli-merge-trees,700 +ssh2,699 +sax,699 +child_process,695 +leaflet,691 +wrench,690 +rx,689 +ethereumjs-util,687 +jimp,687 +enzyme,685 +prettyjson,684 +image-size,684 +bfj,683 +micromatch,680 +gulp-watch,679 +redux-actions,678 +lit-element,677 +discord.js,670 +gulp-less,667 +jshint,667 +vinyl-source-stream,665 +send,663 +mysql2,659 +@types/jquery,653 +user,652 +slash,652 +es6-shim,649 +watch,649 +debounce,647 +d3-scale,647 +babel-helper-vue-jsx-merge-props,647 +file-saver,644 +pull-stream,643 +lodash.omit,642 +koa-compose,638 +chart.js,637 +gulp-replace,633 +shallowequal,633 +cli-spinner,633 +object-path,632 +react-intl,632 +mobx-react,631 +webpack-sources,631 +flat,630 +methods,629 +jasmine,629 +jest-watch-typeahead,629 +react-dnd,628 +object-hash,627 +eslint-plugin-babel,626 +parse5,626 +friendly-errors-webpack-plugin,625 +gulp-template,622 +broccoli-funnel,622 +@emotion/core,619 +lodash.pick,614 +listr,614 +text-table,612 +babel-plugin-transform-es2015-modules-commonjs,612 +lodash.set,609 +watchify,608 +estraverse,607 +unist-util-visit,606 +@fortawesome/fontawesome-svg-core,605 +@angular/compiler-cli,604 +strip-json-comments,601 +randomstring,599 +node-emoji,598 +react-addons-css-transition-group,597 +clui,596 +babel-plugin-import,596 +tslint-react,596 +errorhandler,595 +blessed,594 +electron,593 +eslint-plugin-jest,593 +bytes,592 +deasync,590 +vue-hot-reload-api,590 +swig,588 +jest-pnp-resolver,588 +node-schedule,588 +rollup-plugin-babel,587 +figures,585 +oauth,583 +nedb,583 +detect-port,583 +liftoff,582 +@types/fs-extra,581 +get-port,580 +stylelint-config-standard,578 +gulp-imagemin,574 +husky,574 +@babel/register,573 +gulp-install,573 +gzip-size,573 +node-gyp,572 +node-forge,571 +grunt-contrib-clean,571 +pm2,570 +plist,569 +polished,568 +@fortawesome/free-solid-svg-icons,567 +ts-jest,567 +react-test-renderer,566 +grunt-contrib-watch,566 +loglevel,564 +on-finished,563 +fs-promise,563 +levelup,563 +nomnom,560 +@angular-devkit/core,560 +react-dnd-html5-backend,560 +react-motion,560 +command-line-usage,559 +readline,558 +grunt-contrib-uglify,556 +csv-parse,555 +js-base64,554 +level,553 +dayjs,552 +parseurl,551 +babel-preset-stage-1,550 +read,550 +lodash.defaults,550 +requireindex,546 +tough-cookie,546 +cli,545 +emotion,545 +map-stream,544 +fancy-log,544 +gulp-load-plugins,542 +svgo,542 +cross-fetch,542 +is-plain-object,541 +source-map-loader,540 +@octokit/rest,538 +multimatch,537 +pretty-bytes,537 +urijs,535 +i18next,534 +@babel/types,534 +html-entities,533 +cosmiconfig,532 +pino,532 +verror,531 +gulp-notify,529 +merge-stream,529 +npm-run-all,529 +stylus-loader,527 +@babel/preset-typescript,526 +grpc,525 +he,524 +supports-color,524 +vue-style-loader,524 +create-hash,523 +touch,523 +csv,520 +tslint-config-prettier,520 +lodash.camelcase,519 +log-update,519 +lodash.isplainobject,519 +apollo-client,518 +gulp-conflict,518 +@types/cordova,516 +mathjs,516 +inversify,515 +react-dropzone,515 +yargs-parser,514 +babel-traverse,514 +babel-plugin-syntax-dynamic-import,512 +raw-body,511 +@babel/runtime-corejs2,511 +sync-request,510 +@types/jasmine,510 +valid-url,509 +react-tap-event-plugin,507 +babel-plugin-transform-react-remove-prop-types,506 +draft-js,505 +cuid,504 +slug,504 +bcrypt-nodejs,504 +@babel/parser,504 +jwt-decode,503 +postcss-cssnext,502 +react-icons,502 +install,502 +basic-auth,501 +memory-fs,500 +d3-selection,500 +@angular-devkit/schematics,500 +es6-promisify,500 +react-modal,499 +redux-form,499 +lodash.uniq,498 +gulp-postcss,498 +karma-chrome-launcher,498 +fast-glob,496 +file-type,495 +child-process-promise,494 +babel-plugin-transform-react-jsx,493 +phantomjs-prebuilt,493 +@angular/platform-server,493 +brfs,491 +tar-fs,488 +clipboard,487 +nyc,486 +phantomjs,484 +vinyl-buffer,484 +clipboardy,483 +lodash.isfunction,482 +btoa,481 +rxjs-compat,478 +fork-ts-checker-webpack-plugin,478 +@types/request,476 +recast,476 +d3-array,476 +gulp-jshint,475 +base-64,475 +make-dir,475 +https,474 +sanitize-filename,473 +bip39,472 +vue-class-component,471 +needle,471 +keycode,470 +grunt-contrib-copy,469 +selenium-webdriver,469 +opener,468 +common-tags,467 +is-wsl,467 +koa-body,466 +lodash.isstring,465 +lodash.template,465 +nodegit,465 +command-exists,464 +fstream,463 +node-cache,463 +node-watch,462 +convert-source-map,460 +@types/uuid,460 +imagemin,460 +gulp-filter,460 +vue-property-decorator,459 +gaze,459 +supertest,458 +stack-trace,457 +gulp-clean-css,457 +chance,455 +gulp-typescript,455 +lowdb,455 +generic-pool,455 +assert-plus,455 +eslint-plugin-vue,455 +gulp-minify-css,454 +is-url,454 +urllib,453 +babel-generator,450 +immer,449 +sha1,449 +grunt-contrib-jshint,449 +mockjs,449 +node.extend,449 +connect-redis,448 +babel-plugin-module-resolver,447 +prompts,447 +memoize-one,446 +shell-quote,446 +hyperquest,446 +https-proxy-agent,445 +long,445 +chai-as-promised,444 +secp256k1,444 +http-server,444 +utf8,443 +type-is,443 +vorpal,440 +rollup-pluginutils,439 +finalhandler,439 +tweetnacl,438 +apollo-link,437 +coveralls,437 +d3-shape,436 +postcss-normalize,433 +showdown,433 +promise-polyfill,433 +node-pre-gyp,432 +path-is-absolute,432 +@fortawesome/react-fontawesome,432 +preact,432 +crc,431 +babel-plugin-transform-async-to-generator,430 +osenv,430 +hiredis,429 +lodash.isempty,428 +@babel/traverse,428 +serve-index,426 +lodash.map,426 +highland,425 +localforage,425 +winston-daily-rotate-file,425 +deep-diff,424 +passport-oauth,424 +passport-strategy,423 +iview,423 +dom-helpers,423 +tildify,423 +ethereumjs-tx,423 +babel-template,422 +leveldown,422 +gulp-eslint,421 +rc-util,421 +depd,421 +content-type,421 +nanoid,420 +babel-plugin-syntax-jsx,420 +bl,419 +read-pkg,419 +markdown,418 +jest-environment-jsdom-fourteen,418 +react-error-overlay,418 +serialize-javascript,418 +nprogress,416 +accepts,416 +bizcharts,412 +require-all,411 +base64-js,411 +component-emitter,410 +connect-flash,410 +koa-logger,409 +react-color,409 +findup-sync,409 +passport-oauth2,408 +dockerode,408 +enzyme-adapter-react-16,408 +etag,408 +immutability-helper,407 +grunt-cli,406 +front-matter,406 +mssql,406 +react-native-vector-icons,406 +react-virtualized,405 +fork-ts-checker-webpack-plugin-alt,405 +slugify,405 +node-dir,404 +babel-plugin-transform-regenerator,404 +keypress,404 +@types/bluebird,403 +lodash.foreach,403 +grunt-contrib-concat,403 +split2,402 +extend-shallow,402 +@phosphor/widgets,402 +xregexp,401 +awesome-typescript-loader,401 +hash-sum,401 +apollo-link-http,400 +babel-preset-stage-3,399 +restler,398 +lodash.flatten,398 +react-apollo,398 +intl,398 +babel-plugin-dynamic-import-node,397 +uglify-es,396 +react-lifecycles-compat,395 +lint-staged,395 +@babel/plugin-proposal-export-default-from,394 +normalize-wheel,394 +is-promise,393 +pako,393 +pngjs,393 +utils-merge,392 +gray-matter,392 +postcss-nested,391 +pretty-error,391 +rc-slider,391 +node-static,391 +decompress,389 +gh-pages,389 +cli-table2,389 +os,388 +reactstrap,387 +sanitize-html,387 +extract-zip,387 +gulp-shell,387 +vue-i18n,387 +@types/mocha,386 +http-status-codes,386 +hogan.js,385 +quill,384 +soap,382 +randombytes,382 +decamelize,381 +bson,381 +imagemin-pngquant,380 +arrify,380 +bytebuffer,379 +xml2json,377 +lodash.isobject,377 +columnify,377 +fluent-ffmpeg,376 +xml-js,375 +sockjs-client,374 +@emotion/styled,374 +resolve-from,373 +es6-error,373 +react-slick,373 +typeorm,373 +sprintf,372 +apollo-cache-inmemory,372 +babel-plugin-lodash,372 +hexlet-pairs,371 +pretty-ms,370 +pouchdb,369 +md5-file,369 +react-markdown,368 +is,368 +yeoman-environment,368 +progress-bar-webpack-plugin,368 +left-pad,367 +stylelint-order,366 +follow-redirects,366 +stylelint-scss,365 +koa-mount,365 +busboy,363 +sinon-chai,363 +jasmine-core,363 +loose-envify,363 +process,363 +envify,363 +bufferutil,362 +normalize-url,362 +angular-animate,361 +tv4,361 +karma-mocha,360 +karma-phantomjs-launcher,360 +ts-pnp,360 +atob,360 +connect-mongo,359 +@jupyterlab/application,359 +@babel/plugin-proposal-export-namespace-from,357 +http-status,357 +bulma,357 +cli-ux,356 +iniparser,356 +nock,356 +object.assign,356 +flux,356 +semantic-ui-react,355 +fastclick,355 +karma-jasmine,355 +fuse.js,354 +inert,354 +jwt-simple,354 +isobject,353 +jsdoc,353 +element-resize-detector,353 +react-datepicker,352 +standard,352 +react-onclickoutside,352 +react-addons-shallow-compare,352 +dot,351 +browserslist,351 +firebase-admin,350 +nib,350 +fuzzy,349 +word-wrap,349 +ansi-colors,349 +tracer,349 +yaml,348 +ansi-escapes,348 +jquery-ui,348 +raven,347 +i,347 +xhr,347 +deep-assign,346 +inquirer-autocomplete-prompt,346 +xpath,346 +fresh,346 diff --git a/dependencies_2019.csv.license b/dependencies_2019.csv.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/dependencies_2019.csv.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/devDependencies.csv b/devDependencies.csv new file mode 100644 index 0000000..8a63911 --- /dev/null +++ b/devDependencies.csv @@ -0,0 +1,1000 @@ +typescript,840161 +eslint,666922 +@types/node,498774 +prettier,323998 +jest,311654 +@types/react,297953 +mocha,277612 +@types/react-dom,232686 +@babel/core,225101 +webpack,224365 +@types/jest,222367 +react,211125 +rimraf,194804 +eslint-plugin-import,191027 +@typescript-eslint/eslint-plugin,189922 +@babel/preset-env,188395 +@typescript-eslint/parser,186959 +babel-loader,183474 +chai,179549 +rollup,168278 +eslint-config-prettier,167992 +react-dom,167425 +ts-node,164871 +postcss,161558 +ts-jest,155259 +husky,148084 +babel-eslint,144730 +babel-core,139942 +eslint-plugin-prettier,137328 +tailwindcss,136807 +webpack-cli,133522 +eslint-config-next,116080 +eslint-plugin-react,114589 +css-loader,110771 +cross-env,106172 +babel-cli,97555 +lint-staged,97080 +vite,95260 +@babel/cli,89061 +style-loader,88386 +webpack-dev-server,87505 +autoprefixer,86714 +babel-preset-es2015,86369 +tslint,85792 +babel-preset-env,84820 +@babel/preset-react,80549 +@rollup/plugin-node-resolve,76857 +gulp,76704 +sinon,76325 +babel-jest,73687 +vue-template-compiler,70792 +tslib,70080 +eslint-plugin-promise,69733 +nyc,69053 +sass-loader,68672 +@rollup/plugin-commonjs,66428 +eslint-plugin-node,65951 +node-sass,64558 +@types/mocha,61676 +html-webpack-plugin,58911 +npm-run-all,57389 +ts-loader,57236 +sass,56297 +@babel/preset-typescript,54990 +coveralls,53942 +eslint-plugin-jsx-a11y,53848 +eslint-plugin-vue,53759 +tsup,53709 +vitest,53519 +file-loader,52665 +eslint-config-standard,52546 +karma,51290 +rollup-plugin-terser,50930 +eslint-plugin-react-hooks,50175 +eslint-plugin-standard,48566 +@commitlint/config-conventional,48261 +@testing-library/react,47777 +@storybook/react,47625 +@types/chai,46573 +babel-preset-react,46442 +istanbul,46134 +@types/lodash,46012 +@types/inquirer,45930 +@vue/cli-service,45868 +eslint-config-airbnb,45636 +rollup-plugin-node-resolve,45401 +@vue/cli-plugin-babel,44277 +@babel/plugin-proposal-class-properties,44233 +rollup-plugin-babel,44058 +@rollup/plugin-typescript,43077 +eslint-config-airbnb-base,43073 +@commitlint/cli,42620 +karma-chrome-launcher,42188 +typedoc,42108 +@storybook/addon-links,41639 +semantic-release,41497 +vue,41350 +nodemon,41146 +rollup-plugin-commonjs,40924 +@babel/plugin-transform-runtime,40631 +rollup-plugin-typescript2,40534 +postcss-loader,40439 +@storybook/addon-essentials,38409 +url-loader,38053 +tape,38023 +grunt,37894 +@testing-library/jest-dom,37846 +eslint-plugin-jest,36434 +@vue/cli-plugin-eslint,35960 +ava,35058 +react-test-renderer,34214 +babel-preset-stage-0,34100 +express,34035 +standard,34002 +vue-loader,33902 +extract-text-webpack-plugin,33256 +babel-plugin-transform-runtime,33173 +rollup-plugin-postcss,32869 +@rollup/plugin-babel,32812 +chalk,32497 +jsdom,32452 +less,31972 +gh-pages,31774 +rollup-plugin-peer-deps-external,30448 +@types/express,30422 +@storybook/addon-actions,30229 +webpack-merge,30152 +lodash,29774 +enzyme,29444 +browserify,29355 +karma-jasmine,29342 +should,28938 +esbuild,28822 +cz-conventional-changelog,27753 +dotenv,27598 +jasmine-core,27358 +vite-plugin-dts,27356 +eslint-loader,27333 +copy-webpack-plugin,27225 +concurrently,27183 +fs-extra,26857 +babel-register,26355 +less-loader,25586 +@vitejs/plugin-vue,25163 +react-scripts,25044 +babel-plugin-transform-object-rest-spread,24704 +mini-css-extract-plugin,24555 +babel-preset-stage-2,24266 +@babel/runtime,24239 +del-cli,24041 +gulp-rename,24038 +@types/jasmine,24001 +sinon-chai,23974 +tslint-config-prettier,23812 +standard-version,23730 +prop-types,23650 +@types/fs-extra,23315 +glob,23192 +@vitejs/plugin-react,23038 +babel-polyfill,22924 +@rollup/plugin-json,22822 +rollup-plugin-dts,22761 +uglify-js,22693 +react-native,22665 +@storybook/addon-interactions,22659 +core-js,22415 +supertest,22236 +commitizen,22110 +del,22022 +@types/uuid,21851 +release-it,21818 +jest-environment-jsdom,21654 +@angular/compiler-cli,21468 +stylelint,21412 +clean-webpack-plugin,21198 +webpack-bundle-analyzer,21052 +tsdx,20842 +karma-mocha,20820 +uglifyjs-webpack-plugin,20603 +karma-coverage,20594 +grunt-contrib-jshint,20568 +codecov,20452 +axios,19803 +@testing-library/user-event,19687 +gulp-uglify,19367 +enzyme-adapter-react-16,19216 +jshint,19180 +terser-webpack-plugin,19151 +shelljs,19057 +@eslint/js,18715 +@babel/register,18544 +storybook,18488 +karma-webpack,18414 +@babel/eslint-parser,18186 +babel,18119 +@babel/plugin-proposal-object-rest-spread,17945 +semver,17935 +chai-as-promised,17909 +babel-plugin-add-module-exports,17787 +optimize-css-assets-webpack-plugin,17787 +@types/lodash-es,17608 +@rollup/plugin-terser,17573 +vue-tsc,17323 +rollup-plugin-uglify,17290 +typescript-eslint,17272 +rxjs,16976 +@semantic-release/git,16870 +babel-plugin-transform-class-properties,16811 +@types/react-native,16639 +babel-runtime,16596 +@rollup/plugin-replace,16487 +@vue/test-utils,16197 +styled-components,15988 +globals,15939 +grunt-contrib-watch,15862 +antd,15780 +gulp-babel,15773 +karma-jasmine-html-reporter,15564 +@storybook/testing-library,15358 +jsdoc,15338 +source-map-support,15252 +@storybook/blocks,15171 +@angular/cli,15120 +eslint-plugin-flowtype,15080 +grunt-contrib-clean,14907 +gulp-sourcemaps,14848 +@types/styled-components,14796 +jest-cli,14738 +tsx,14462 +codelyzer,14402 +eslint-plugin-react-refresh,14394 +flow-bin,14268 +pre-commit,14234 +karma-sourcemap-loader,14190 +@semantic-release/changelog,14079 +karma-phantomjs-launcher,14046 +@types/sinon,14041 +jasmine,13957 +vue-style-loader,13955 +raw-loader,13937 +webpack-node-externals,13828 +size-limit,13812 +father,13770 +nock,13652 +jasmine-spec-reporter,13636 +react-router-dom,13527 +eslint-config-standard-react,13398 +copyfiles,13386 +eslint-import-resolver-typescript,13196 +vue-router,13084 +protractor,12874 +xo,12825 +postcss-import,12818 +karma-coverage-istanbul-reporter,12783 +gulp-concat,12675 +rollup-plugin-vue,12673 +json-loader,12574 +pretty-quick,12568 +grunt-contrib-uglify,12520 +gulp-sass,12464 +babel-plugin-istanbul,12421 +babel-preset-stage-3,12353 +np,12230 +@size-limit/preset-small-lib,12225 +@storybook/addons,12166 +@types/node-fetch,12150 +eslint-plugin-babel,12147 +puppeteer,12130 +@babel/plugin-proposal-decorators,12104 +mkdirp,12092 +eslint-plugin-storybook,12078 +c8,12033 +tsconfig-paths,11973 +gulp-mocha,11874 +karma-firefox-launcher,11874 +@swc/core,11844 +babel-plugin-external-helpers,11811 +@release-it/conventional-changelog,11732 +@vitest/coverage-v8,11714 +@babel/plugin-syntax-dynamic-import,11644 +html-loader,11620 +ora,11597 +eslint-plugin-html,11527 +@vue/compiler-sfc,11523 +commitlint,11512 +coffee-script,11447 +cssnano,11422 +gulp-util,11416 +case-sensitive-paths-webpack-plugin,11339 +rollup-plugin-replace,11328 +microbundle,11318 +shx,11311 +minimist,11269 +tap,11261 +eslint-plugin-n,11237 +babel-plugin-module-resolver,11044 +babelify,10798 +@babel/node,10768 +@angular/compiler,10741 +@angular/core,10732 +react-addons-test-utils,10631 +@angular-devkit/build-angular,10626 +rollup-plugin-json,10559 +@types/debug,10557 +identity-obj-proxy,10505 +yargs,10440 +@types/yargs,10416 +undici,10409 +ng-packagr,10407 +babel-plugin-inline-react-svg,10346 +expect.js,10332 +eslint-plugin-jsdoc,10273 +@vue/eslint-config-prettier,10266 +@babel/polyfill,10259 +http-server,10251 +child_process,10190 +@changesets/cli,10137 +moment,10093 +stylelint-config-standard,10026 +zone.js,9968 +gulp-eslint,9833 +@angular/common,9792 +karma-spec-reporter,9792 +babel-plugin-add-import-extension,9778 +friendly-errors-webpack-plugin,9771 +babel-plugin-syntax-jsx,9728 +tap-spec,9711 +path,9664 +@babel/plugin-proposal-optional-chaining,9654 +@react-native-community/eslint-config,9616 +grunt-cli,9604 +random-words,9589 +svelte,9579 +babel-plugin-import,9566 +rollup-plugin-copy,9520 +react-native-builder-bob,9515 +@storybook/addon-onboarding,9497 +@ant-design/web3-common,9475 +@ant-design/web3-icons,9475 +@vue/eslint-config-typescript,9467 +@rollup/plugin-alias,9424 +node-fetch,9419 +regenerator-runtime,9416 +source-map-loader,9400 +reflect-metadata,9398 +eslint-plugin-simple-import-sort,9384 +webpack-dev-middleware,9349 +@babel/plugin-transform-modules-commonjs,9332 +gulp-typescript,9307 +@storybook/test,9291 +next,9259 +terser,9243 +jquery,9193 +@storybook/react-vite,9163 +@types/jasminewd2,9148 +@angular/language-service,9071 +eslint-config-airbnb-typescript,9058 +gulp-autoprefixer,9046 +rollup-plugin-sourcemaps,8985 +@angular/platform-browser,8978 +proxyquire,8940 +awesome-typescript-loader,8922 +babel-plugin-transform-vue-jsx,8920 +@types/eslint,8807 +conventional-changelog-cli,8804 +microbundle-crl,8793 +karma-mocha-reporter,8782 +babel-plugin-transform-es2015-modules-commonjs,8639 +redux,8621 +@types/ws,8609 +eslint-plugin-mocha,8580 +css-split-webpack-plugin,8544 +request,8537 +eslint-friendly-formatter,8508 +webpack-hot-middleware,8484 +eslint-config-react-app,8448 +@types/react-router-dom,8430 +commander,8388 +babel-plugin-transform-decorators-legacy,8370 +@semantic-release/npm,8364 +run-sequence,8359 +@types/supertest,8315 +fast-sass-loader,8305 +eslint-plugin-unicorn,8300 +@testing-library/react-hooks,8298 +@types/react-test-renderer,8278 +jest-junit,8239 +less-plugin-sass2less,8201 +@alifd/babel-preset-next,8185 +karma-cli,8105 +lerna,8052 +jshint-stylish,8013 +@types/glob,8012 +@types/webpack,8004 +@jest/globals,7951 +gulp-plumber,7894 +browser-sync,7818 +@angular/platform-browser-dynamic,7767 +phantomjs-prebuilt,7755 +@types/semver,7628 +@biomejs/biome,7614 +react-hot-loader,7582 +@babel/plugin-proposal-export-default-from,7581 +colors,7561 +grunt-contrib-copy,7514 +@vue/cli-plugin-router,7502 +karma-chai,7478 +mocha-lcov-reporter,7384 +expect,7299 +load-grunt-tasks,7286 +@vue/cli-plugin-typescript,7274 +@types/classnames,7251 +grunt-contrib-nodeunit,7204 +react-is,7201 +grunt-contrib-concat,7193 +karma-sinon-chai,7182 +@types/prettier,7140 +postcss-cli,7135 +gulp-jshint,7094 +body-parser,7078 +cypress,7071 +classnames,7049 +ember-cli,7027 +babel-preset-react-app,6990 +execa,6971 +@testing-library/dom,6943 +ember-cli-inject-live-reload,6838 +eslint-config-google,6827 +postcss-url,6785 +broccoli-asset-rev,6764 +react-redux,6758 +vinyl-source-stream,6752 +uuid,6729 +@types/enzyme,6715 +@vue/eslint-config-standard,6689 +@chromatic-com/storybook,6683 +babel-helper-vue-jsx-merge-props,6680 +ember-cli-dependency-checker,6677 +unbuild,6662 +typedoc-plugin-markdown,6645 +highlight.js,6595 +ts-node-dev,6587 +hardhat,6575 +watchify,6514 +inquirer,6492 +ember-export-application-global,6485 +chokidar,6480 +babel-preset-stage-1,6471 +es6-promise,6447 +rollup-plugin-visualizer,6443 +graphql,6442 +@vitejs/plugin-react-swc,6441 +metro-react-native-babel-preset,6400 +@playwright/test,6389 +@storybook/addon-a11y,6371 +@storybook/addon-docs,6347 +bootstrap,6322 +@types/chai-as-promised,6319 +@storybook/addon-info,6318 +@storybook/addon-knobs,6306 +gulp-replace,6298 +@types/jsdom,6297 +benchmark,6277 +ethers,6277 +pod-install,6252 +node-notifier,6248 +enzyme-to-json,6239 +stylus,6231 +tslint-config-standard,6211 +grunt-mocha-test,6202 +svelte-check,6189 +@storybook/builder-webpack5,6185 +esm,6163 +postcss-preset-env,6150 +@storybook/react-webpack5,6149 +@storybook/preset-create-react-app,6148 +eslint-config-standard-with-typescript,6134 +parcel,6118 +@types/jsonwebtoken,6094 +@storybook/manager-webpack5,6082 +babel-preset-latest,6075 +rollup-plugin-buble,6072 +@svgr/rollup,6063 +through2,6051 +async,6040 +assert,6015 +@vue/cli-plugin-unit-jest,6008 +@types/js-yaml,6006 +portfinder,5996 +ember-cli-uglify,5989 +gulp-less,5976 +@vue/cli-plugin-vuex,5963 +globby,5951 +ember-disable-prototype-extensions,5942 +gulp-clean,5939 +babel-plugin-transform-react-jsx,5928 +@types/bun,5918 +jsdoc-to-markdown,5877 +parcel-bundler,5852 +rollup-plugin-url,5848 +rollup-plugin-filesize,5832 +vite-tsconfig-paths,5819 +@semantic-release/release-notes-generator,5797 +@types/cors,5772 +@semantic-release/commit-analyzer,5766 +@semantic-release/github,5734 +@rollup/plugin-image,5732 +@types/big.js,5723 +bumpp,5722 +gulp-istanbul,5711 +@nestjs/testing,5619 +ember-cli-sri,5615 +@babel/plugin-proposal-export-namespace-from,5524 +cheerio,5523 +@babel/plugin-proposal-nullish-coalescing-operator,5520 +@angular/forms,5513 +gulp-load-plugins,5485 +cross-spawn,5481 +gulp-clean-css,5471 +@types/chalk,5441 +@emotion/react,5412 +eslint-plugin-unused-imports,5408 +tsc-alias,5400 +ember-cli-qunit,5393 +@emotion/styled,5384 +babel-plugin-styled-components,5365 +eslint-plugin-json,5362 +bluebird,5357 +npm-check-updates,5339 +vue-jest,5330 +@babel/preset-flow,5324 +@microsoft/api-extractor,5275 +@sveltejs/kit,5273 +ember-resolver,5246 +@types/qs,5209 +tsconfig,5199 +loader.js,5190 +@types/testing-library__jest-dom,5180 +eslint-plugin-eslint-comments,5170 +ember-load-initializers,5147 +stylus-loader,5145 +postcss-scss,5141 +@ethersproject/providers,5050 +markdown-it,5016 +marked,4956 +vuepress,4932 +ember-cli-htmlbars-inline-precompile,4928 +http-proxy-middleware,4889 +@babel/plugin-transform-react-jsx,4886 +rollup-plugin-esbuild,4863 +yeoman-assert,4852 +debug,4834 +@tsconfig/recommended,4825 +react-router,4811 +compression-webpack-plugin,4807 +jsdom-global,4801 +serve,4801 +@vitejs/plugin-vue-jsx,4800 +gulp-if,4788 +@vue/tsconfig,4785 +dumi,4759 +istanbul-instrumenter-loader,4750 +css-minimizer-webpack-plugin,4719 +yeoman-test,4705 +@types/rimraf,4683 +co,4671 +@vitest/ui,4641 +ember-try,4620 +gulp-header,4611 +@antfu/eslint-config,4601 +rollup-plugin-scss,4597 +@istanbuljs/nyc-config-typescript,4595 +publint,4563 +@evilmartians/lefthook,4548 +connect-history-api-fallback,4548 +electron,4533 +eventsource-polyfill,4533 +rollup-plugin-delete,4523 +ajv,4508 +vuex,4495 +prettier-plugin-svelte,4479 +@nestjs/common,4470 +@storybook/theming,4440 +jscs,4419 +eslint-import-resolver-webpack,4415 +babel-preset-minify,4413 +@types/crypto-js,4412 +babel-plugin-transform-react-remove-prop-types,4403 +babel-plugin-transform-flow-strip-types,4377 +tsd,4373 +chromatic,4371 +prettier-eslint,4371 +postcss-custom-properties,4354 +gulp-postcss,4351 +opn,4351 +documentation,4342 +faker,4339 +@sveltejs/adapter-auto,4336 +ember-cli-htmlbars,4336 +koa,4333 +rollup-plugin-typescript,4329 +rollup-plugin-serve,4322 +@ethersproject/address,4306 +jest-extended,4301 +@rollup/plugin-url,4287 +ts-mocha,4263 +rollup-plugin-livereload,4234 +replace-in-file,4232 +@types/prompts,4214 +gulp-watch,4207 +@types/webpack-env,4203 +@storybook/node-logger,4194 +jest-styled-components,4190 +tap-min,4188 +vinyl-buffer,4185 +@angular/router,4176 +@sveltejs/package,4173 +typechain,4151 +prettier-plugin-organize-imports,4149 +ember-source,4134 +@stencil/core,4131 +babel-plugin-dynamic-import-node,4123 +babel-preset-flow,4116 +watch,4113 +typings,4108 +@nomiclabs/hardhat-ethers,4064 +@swc/jest,4038 +@react-native/eslint-config,4024 +@babel/plugin-external-helpers,3994 +phantomjs,3992 +nodeunit,3986 +@babel/plugin-proposal-numeric-separator,3970 +@babel/types,3969 +babel-plugin-lodash,3957 +uglify-es,3956 +@ethersproject/contracts,3952 +babel-plugin-component,3928 +babel-plugin-transform-object-assign,3928 +fast-glob,3909 +msw,3907 +isparta,3903 +js-yaml,3899 +cpx,3888 +stylelint-config-prettier,3885 +power-assert,3877 +prompt,3877 +ember-data,3869 +auto-changelog,3861 +@ethersproject/solidity,3851 +@angular/http,3845 +postcss-nested,3841 +@types/react-redux,3829 +@types/minimist,3827 +progress-bar-webpack-plugin,3820 +vue-html-loader,3816 +@storybook/addon-storysource,3810 +@rushstack/eslint-patch,3805 +@nestjs/core,3801 +babel-plugin-transform-jsbi-to-bigint,3791 +aws-sdk,3790 +karma-browserify,3778 +postcss-calc,3776 +grunt-contrib-connect,3770 +zod,3763 +@babel/plugin-syntax-import-meta,3759 +@svgr/webpack,3758 +stylelint-order,3757 +@types/jquery,3755 +tslint-eslint-rules,3746 +rewire,3736 +@vitest/coverage-c8,3735 +chromedriver,3723 +ember-cli-app-version,3713 +vitepress,3712 +@types/babel__core,3698 +svelte-preprocess,3698 +@types/shelljs,3694 +rollup-plugin-sass,3691 +@ethersproject/networks,3684 +rollup-plugin-node-builtins,3678 +@types/react-transition-group,3677 +tslint-react,3674 +ethereum-waffle,3662 +turbo,3651 +@types/sinon-chai,3650 +nsp,3648 +travis-deploy-once,3646 +@types/request,3643 +nuxt,3637 +type-fest,3612 +ember-ajax,3604 +@babel/plugin-proposal-throw-expressions,3599 +npm-run-all2,3595 +@oclif/test,3587 +@swc/cli,3569 +@open-wc/testing,3565 +gulp-cssmin,3563 +fork-ts-checker-webpack-plugin,3562 +cpy-cli,3557 +postcss-flexbugs-fixes,3552 +@types/puppeteer,3515 +yorkie,3511 +open,3510 +@material-ui/core,3507 +prismjs,3507 +rollup-watch,3505 +@angular/animations,3502 +prettier-plugin-packagejson,3500 +rollup-plugin-eslint,3496 +@types/axios,3495 +@oclif/dev-cli,3489 +web-vitals,3481 +happy-dom,3477 +vue-hot-reload-api,3443 +@babel/plugin-proposal-json-strings,3440 +babel-plugin-transform-async-to-generator,3428 +eslint-plugin-markdown,3428 +underscore,3424 +jasmine-node,3416 +@capacitor/android,3399 +rollup-plugin-css-only,3387 +npm,3382 +@types/ramda,3379 +stylelint-scss,3378 +simple-git-hooks,3368 +svgo,3368 +dotenv-webpack,3363 +karma-safari-launcher,3363 +process,3358 +jest-fetch-mock,3354 +@typechain/ethers-v5,3345 +esno,3344 +ttypescript,3344 +markdown-it-container,3331 +ncp,3327 +ember-cli-release,3325 +tslint-loader,3325 +@capacitor/ios,3324 +@sveltejs/vite-plugin-svelte,3308 +@stdlib/bench,3307 +babel-preset-react-native,3305 +@webcomponents/webcomponentsjs,3304 +eslint-config-xo,3304 +whatwg-fetch,3297 +@faker-js/faker,3290 +@types/body-parser,3283 +ghooks,3282 +tsc-watch,3265 +eslint-config-egg,3261 +handlebars,3255 +validate-commit-msg,3236 +tslint-config-airbnb,3233 +eslint-config-custom,3232 +eslint-plugin-security,3223 +snazzy,3204 +webpack-stream,3190 +babel-preset-es2015-rollup,3179 +@trivago/prettier-plugin-sort-imports,3173 +ember-cli-eslint,3171 +mock-fs,3170 +@web/test-runner,3168 +dayjs,3168 +bower,3159 +merge2,3157 +gulp-minify-css,3145 +@babel/plugin-proposal-function-sent,3139 +@nestjs/cli,3135 +lodash.camelcase,3131 +@web/dev-server,3129 +acorn,3123 +pg,3122 +grunt-karma,3106 +element-ui,3102 +playwright,3097 +ws,3097 +eslint-plugin-ember,3096 +nwb,3096 +@types/bluebird,3094 +resolve-url-loader,3094 +buffer,3082 +@mui/material,3081 +rollup-plugin-svelte,3081 +@storybook/storybook-deployer,3079 +karma-sauce-launcher,3079 +tsconfig-paths-webpack-plugin,3078 +mongoose,3077 +eslint-config-oclif,3075 +lolex,3074 +deepmerge,3071 +time-grunt,3071 +dts-bundle-generator,3063 +fs,3056 +@ckeditor/ckeditor5-dev-utils,3037 +tsickle,3030 +@eslint/eslintrc,3029 +@ckeditor/ckeditor5-theme-lark,3025 +ejs,3022 +@stdlib/bench-harness,3019 +grunt-browserify,3016 +@babel/plugin-proposal-function-bind,3008 +nightwatch,3003 +rollup-plugin-cleanup,3002 +sqlite3,2990 +@tsconfig/node18,2986 +eslint-plugin-cypress,2972 +pug,2972 +babel-plugin-syntax-dynamic-import,2966 +@types/figlet,2964 +eslint-import-resolver-node,2959 +eslint-plugin-prefer-arrow,2959 +@types/koa,2952 +grunt-contrib-coffee,2952 +@commitlint/config-angular,2918 +gulp-bump,2918 +@babel/plugin-transform-typescript,2910 +jest-watch-typeahead,2908 +tslint-plugin-prettier,2907 +@storybook/addon-viewport,2905 +jest-serializer-vue,2905 +markdown-it-anchor,2905 +redux-thunk,2903 +@types/bn.js,2902 +chai-spies,2897 +eslint-plugin-tsdoc,2895 +@nestjs/schematics,2892 +@capacitor/core,2891 +date-fns,2880 +@types/enzyme-adapter-react-16,2875 +grunt-eslint,2873 +prettier-plugin-java,2873 +@babel/plugin-proposal-pipeline-operator,2851 +@types/chalk-animation,2844 +jest-config,2840 +webpack-manifest-plugin,2837 +@vue/component-compiler-utils,2833 +karma-ie-launcher,2833 +requirejs,2830 +pinst,2826 +prettier-plugin-solidity,2823 +uppercamelcase,2811 +cspell,2807 +selenium-server,2803 +raf,2786 +@ionic/prettier-config,2781 +eslint-plugin-sonarjs,2780 +unplugin-vue-components,2780 +@types/core-js,2775 +react-dev-utils,2765 +@types/mkdirp,2764 +@types/prop-types,2761 +prettier-eslint-cli,2760 +@types/luxon,2754 +prettier-plugin-tailwindcss,2745 +mocha-junit-reporter,2734 +gts,2733 +tmp,2728 +ember-source-channel-url,2726 +inject-loader,2725 +father-build,2711 +egg-bin,2710 +onchange,2701 +@babel/plugin-proposal-do-expressions,2699 +esdoc,2689 +grunt-contrib-cssmin,2689 +grunt-release,2680 +@babel/plugin-syntax-jsx,2674 +rollup-plugin-node-globals,2670 +jest-canvas-mock,2669 +react-docgen-typescript-loader,2665 +autod,2662 +solidity-coverage,2660 +grunt-bump,2656 +vinyl,2653 +ember-cli-shims,2652 +gulp-shell,2649 +postcss-cssnext,2649 +lodash-es,2640 +swiftlint,2639 +@storybook/builder-vite,2635 +@ionic/swiftlint-config,2632 +eslint-plugin-eslint-plugin,2626 +@babel/plugin-proposal-logical-assignment-operators,2625 +open-cli,2606 +remark-cli,2597 +@types/pg,2588 +qunit,2585 +@alib/build-scripts,2562 +babel-plugin-transform-es2015-modules-umd,2559 +bun-types,2552 +@types/gulp,2545 +svg-sprite-loader,2542 +@nomiclabs/hardhat-waffle,2538 +conventional-changelog-conventionalcommits,2536 +immutable,2532 +connect,2531 +eslint-watch,2517 +dtslint,2513 +ember-maybe-import-regenerator,2510 +imports-loader,2509 +mockjs,2506 +vows,2503 +grunt-shell,2493 +@vitest/coverage-istanbul,2491 +codeclimate-test-reporter,2489 +vue-eslint-parser,2489 +eslint-plugin-react-native,2486 +@types/eslint__js,2476 +gulp-notify,2475 +gulp-tslint,2470 +@babel/plugin-transform-object-assign,2462 +@types/aws-lambda,2448 +@angular-devkit/build-ng-packagr,2446 +object-assign,2442 +eslint-webpack-plugin,2440 +lab,2440 +@types/three,2436 +normalize.css,2432 +@ionic/eslint-config,2429 +@storybook/builder-webpack4,2424 +qs,2424 +@storybook/manager-webpack4,2420 +eslint-plugin-svelte,2412 +camelcase,2410 +unplugin-auto-import,2407 +axios-mock-adapter,2406 +@angular/platform-server,2398 +cp-cli,2397 +stylelint-config-recommended,2392 +@capacitor/docgen,2381 +history,2381 +@umijs/test,2380 +madge,2380 +@types/dotenv,2377 +eslint-plugin-compat,2375 +font-awesome,2371 +@ckeditor/ckeditor5-paragraph,2368 +isomorphic-fetch,2364 +clsx,2363 +webpackbar,2358 +eslint-config-xo-space,2357 +eslint-config-oclif-typescript,2355 +eslint-plugin-svelte3,2354 +qunit-dom,2344 +preact,2338 +@storybook/addon-postcss,2335 +solhint,2333 +start-server-and-test,2331 +merge-stream,2328 +mongodb,2327 +tsc,2326 +karma-typescript,2324 +require-dir,2324 +egg-ci,2323 +gulp-connect,2323 +@types/commander,2319 +json-templater,2318 +@ckeditor/ckeditor5-basic-styles,2317 +downlevel-dts,2314 +karma-sinon,2311 +eslint-import-resolver-alias,2305 +@storybook/preset-scss,2299 +rollup-plugin-license,2297 +faucet,2296 +vite-plugin-css-injected-by-js,2296 +brfs,2294 +fetch-mock,2291 +chokidar-cli,2287 +matchdep,2283 +transliteration,2271 +depcheck,2263 +@types/tape,2262 +@types/js-cookie,2252 +changelogen,2252 +flow-copy-source,2247 +@ckeditor/ckeditor5-essentials,2244 +semistandard,2241 +@tsconfig/node20,2238 +@ckeditor/ckeditor5-list,2234 +@types/cross-spawn,2227 +@ckeditor/ckeditor5-dev-webpack-plugin,2226 +egg-mock,2225 +git-cz,2224 +react-styleguidist,2224 +karma-babel-preprocessor,2223 +@ckeditor/ckeditor5-heading,2222 +@types/ejs,2220 +@ember/optional-features,2219 +prompts,2219 +cors,2212 +strip-ansi,2211 +babel-preset-es2017,2210 +@nuxt/module-builder,2209 +@tsconfig/node16,2209 +typescript-transform-paths,2205 +babel-plugin-react-transform,2204 +@types/faker,2196 +code,2193 +codecov.io,2186 +@ckeditor/ckeditor5-link,2185 +install,2185 diff --git a/devDependencies.csv.license b/devDependencies.csv.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/devDependencies.csv.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/dev_dependee_counts.gnuplot b/dev_dependee_counts.gnuplot new file mode 100755 index 0000000..55010e4 --- /dev/null +++ b/dev_dependee_counts.gnuplot @@ -0,0 +1,21 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set terminal svg size 800,400 font "DejaVu,sans,14.5"; +set output "dev_dependee_counts.svg"; +set ylabel "Uses count"; +set xlabel "Top npm dependencies ranking position"; +set key; +set linetype 1 linecolor rgb "0x333333"; +set linetype 2 linecolor rgb "0x333333" dashtype 2; +set style data lines; +set grid; +set logscale y; +set yrange [2000:1000000]; +set ytics (2185, 3000, 10000, 30000, 100000, 263038, 840161); +set datafile separator ","; +plot "devDependencies.csv" using 0:2 title "development dependencies", \ + "dependencies.csv" using 0:2 title "runtime dependencies"; @@ -0,0 +1,477 @@ +@article{Thompson:1984, + added-at = {2013-03-25T19:03:53.000+0100}, + author = {Thompson, Ken}, + biburl = {https://www.bibsonomy.org/bibtex/2607b76f1e1c21d4519d0ea69f772b13b/privtec}, + interhash = {1e8757ac6ded0c6e3719314d21b8c1b7}, + intrahash = {607b76f1e1c21d4519d0ea69f772b13b}, + journal = {Communications of the ACM}, + keywords = {}, + number = 8, + owner = {jonny}, + pages = {761--763}, + publisher = {ACM}, + timestamp = {2013-03-25T22:11:36.000+0100}, + title = {{R}eflections on trusting trust}, + volume = 27, + month = 8, + url = {https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf}, + year = 1984 +} + +@book{raymond2001cathedral, + added-at = {2011-08-11T14:51:35.000+0200}, + address = {Beijing; Cambridge; Farnham; Köln; Paris; Sebastopol; Taip}, + author = {Raymond, Eric S.}, + biburl = {https://www.bibsonomy.org/bibtex/2a83f1c344fc6fe12cffb18175b610342/meneteqel}, + edition = {2., überarb. und erw. A.}, + interhash = {3fbbba1926d6f49d1692a17aa85bb0f8}, + intrahash = {a83f1c344fc6fe12cffb18175b610342}, + isbn = {0-596-00108-8}, + keywords = {freesoftware hackers linux opensource}, + language = {eng}, + note = {With a foreword by Bob Young}, + pages = 241, + publisher = {O'Reilly Media}, + timestamp = {2020-11-02T22:16:10.000+0100}, + title = {The cathedral and the bazaar: musings on Linux and open source by an accidental revolutionary}, + url = {http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/}, + year = 2001 +} + +@phdthesis{phd/basesearch/Dolstra06, + added-at = {2021-05-19T00:00:00.000+0200}, + author = {Dolstra, Eelco}, + biburl = {https://www.bibsonomy.org/bibtex/227bbd38dd30dce2deb8793240f02ddba/dblp}, + ee = {https://www.base-search.net/Record/a08129eedcb8dd41edc5134cf8566ada4a47661d260060bc635445e825564b73}, + interhash = {abf4b3ec01f9b43bd8ba35d1a3effab8}, + intrahash = {27bbd38dd30dce2deb8793240f02ddba}, + keywords = {dblp}, + school = {Utrecht University, Netherlands}, + timestamp = {2024-04-09T09:24:36.000+0200}, + title = {The purely functional software deployment model.}, + url = {https://edolstra.github.io/pubs/phd-thesis.pdf}, + year = 2006 +} + +@phdthesis{phd/basesearch/Wheeler09a, + added-at = {2022-05-04T00:00:00.000+0200}, + author = {Wheeler, David A.}, + biburl = {https://www.bibsonomy.org/bibtex/2dcf914503e0488baabe38d46c189fe94/dblp}, + ee = {https://www.base-search.net/Record/909bf3e4967d6a789133becc59d4a889a71d00e8a093819e285f402cc2e7fb07}, + interhash = {6b4107fff7c68dfd4037281175ad6002}, + intrahash = {dcf914503e0488baabe38d46c189fe94}, + keywords = {dblp}, + school = {George Mason University, Fairfax, Virginia, USA}, + timestamp = {2024-04-09T09:18:42.000+0200}, + title = {Fully Countering Trusting Trust through Diverse Double-Compiling.}, + url = {https://dwheeler.com/trusting-trust/}, + year = 2009 +} + +@inproceedings{conf/els/Courtes13, + added-at = {2019-11-14T00:00:00.000+0100}, + author = {Courtès, Ludovic}, + biburl = {https://www.bibsonomy.org/bibtex/2d2945805d83e3e44a7e276fddd7add78/dblp}, + booktitle = {ELS}, + crossref = {conf/els/2013}, + editor = {Queinnec, Christian and Serrano, Manuel}, + ee = {https://european-lisp-symposium.org/static/proceedings/2013.pdf#page=10}, + interhash = {75d5c43f59abf707a3d66a6338cb8deb}, + intrahash = {d2945805d83e3e44a7e276fddd7add78}, + keywords = {dblp}, + pages = {4-14}, + publisher = {ELSAA}, + timestamp = {2019-11-15T11:51:07.000+0100}, + title = {Functional Package Management with Guix.}, + url = {http://dblp.uni-trier.de/db/conf/els/els2013.html#Courtes13}, + year = 2013 +} + +@standard{prestonwerner2013semantic, + added-at = {2017-08-15T15:44:50.000+0200}, + author = {Preston-Werner, Tom}, + biburl = {https://www.bibsonomy.org/bibtex/23173ea6213f7e95ddda7332ab518bd7c/shelley.adams}, + edition = {2.0.0}, + howpublished = {web}, + interhash = {fe69bee1a65de121542b0e624f08980c}, + intrahash = {3173ea6213f7e95ddda7332ab518bd7c}, + keywords = {openaccess programming software standards}, + timestamp = {2025-01-13T10:26:54.000+0100}, + title = {Semantic Versioning}, + url = {http://semver.org/}, + urldate = {2025-07-03}, + year = 2013 +} + +@article{deniable-backdoors-compiler-bugs, + author = {Bauer, Scott and Cuoq, Pascal and Regehr, John}, + title = {Deniable Backdoors Using Compiler Bugs}, + journal = {International Journal of PoC ‖ GTFO}, + volume = 8, + number = 3, + url = {https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf}, + year = 2015 +} + +@online{gnu-guix-0.9.0-released, + author = {Courtès, Ludovic}, + title = {GNU Guix 0.9.0 released}, + url = {https://savannah.gnu.org/forum/forum.php?forum_id=8398}, + urldate = {2025-07-02}, + year = 2015 +} + +@online{lets-package-jquery, + author = {Christine Lemmer-Webber}, + title = {Let's Package jQuery: A Javascript Packaging Dystopian Novella}, + url = {https://dustycloud.org/blog/javascript-packaging-dystopia/}, + urldate = {2025-07-03}, + year = 2015 +} + +@online{bootstraping-rust, + author = {Milosavljevic, Danny}, + title = {Bootstrapping Rust}, + url = {https://guix.gnu.org/blog/2018/bootstrapping-rust/}, + urldate = {2025-07-03}, + year = 2018 +} + +@inproceedings{conf/uss/Torres-AriasAKC19, + added-at = {2021-02-01T00:00:00.000+0100}, + author = {Torres-Arias, Santiago and Afzali, Hammad and Kuppusamy, Trishank Karthik and Curtmola, Reza and Cappos, Justin}, + biburl = {https://www.bibsonomy.org/bibtex/293dca6dec7ce8aa5dd69f72ea2d0b254/dblp}, + booktitle = {USENIX Security Symposium}, + crossref = {conf/uss/2019}, + editor = {Heninger, Nadia and Traynor, Patrick}, + ee = {https://www.usenix.org/conference/usenixsecurity19/presentation/torres-arias}, + interhash = {3b2cc144b1c96ce429a5850aa0b01284}, + intrahash = {93dca6dec7ce8aa5dd69f72ea2d0b254}, + keywords = {dblp}, + pages = {1393-1410}, + publisher = {USENIX Association}, + timestamp = {2024-04-09T15:39:03.000+0200}, + title = {in-toto: Providing farm-to-table guarantees for bits and bytes.}, + url = {https://dblp.uni-trier.de/db/conf/uss/uss2019.html#Torres-AriasAKC19}, + year = 2019 +} + +@online{anvaka-rank-gist, + author = {Kashcha, Andrei}, + title = {npm rank}, + url = {https://gist.github.com/anvaka/8e8fa57c7ee1350e3491}, + urldate = {2025-07-03}, + year = 2019 +} + +@online{btao-wot-for-npm, + author = {Bojlén, Tao}, + title = {A web of trust for npm}, + url = {https://btao.org/posts/2020-10-02-npm-trust/}, + urldate = {2025-07-03}, + year = 2020 +} + +@mastersthesis{goswami-reproducibility, + author = {Goswami, Pronnoy}, + school = {Virginia Polytechnic Institute and State University}, + title = {Investigating the Reproducbility of NPM packages}, + url = {https://vtechworks.lib.vt.edu/server/api/core/bitstreams/3ef5408d-8617-4993-ac7e-d171a13dfa22/content}, + year = 2020 +} + +@article{Abdalkareem2020, + author = {Abdalkareem, Rabe and Oda, Vinicius and Mujahid, Suhaib and Shihab, Emad}, + title = {On the impact of using trivial packages: an empirical case study on npm and PyPI}, + journal = {Empirical Software Engineering}, + month = 3, + day = 1, + volume = 25, + number = 2, + pages = {1168--1204}, + issn = {1573-7616}, + doi = {10.1007/s10664-019-09792-9}, + url = {https://rabeabdalkareem.github.io/files/12-abdelkareem_emse2020.pdf}, + urldate = {2025-07-03}, + year = 2020, +} + +@online{owasp-scvs, + author = {Springett, Steve and Russo, Dave and Fick Garret and Herz JC and Scott John and Symons Mark and Nallapareddy Pruthvi and Garcia Bryan}, + organization = {The OWASP Foundation}, + title = {Software Component Verification Standard}, + edition = {v1.0}, + url = {https://owasp.org/www-project-software-component-verification-standard/}, + urldate = {2025-07-02}, + year = 2020 +} + +@inproceedings{conf/uic/SterleB21, + added-at = {2024-10-06T00:00:00.000+0200}, + author = {Sterle, Lindsay and Bhunia, Suman}, + biburl = {https://www.bibsonomy.org/bibtex/2ad22a0456539c71ebde623954329d0f6/dblp}, + booktitle = {SmartWorld/SCALCOM/UIC/ATC/IOP/SCI}, + crossref = {conf/uic/2021}, + ee = {https://doi.org/10.1109/SWC50871.2021.00094}, + interhash = {75c3c3f885481483464b4898391ceb16}, + intrahash = {ad22a0456539c71ebde623954329d0f6}, + isbn = {978-1-6654-1236-0}, + keywords = {dblp}, + pages = {636-641}, + publisher = {IEEE}, + timestamp = {2024-10-07T09:39:08.000+0200}, + title = {On SolarWinds Orion Platform Security Breach.}, + url = {https://dblp.uni-trier.de/db/conf/uic/uic2021.html#SterleB21}, + year = 2021 +} + +@article{DBLP:journals/corr/abs-2104-06020, + author = {Lamb, Chris and Zacchiroli, Stefano}, + title = {Reproducible Builds: Increasing the Integrity of Software Supply Chains}, + journal = {CoRR}, + volume = {abs/2104.06020}, + url = {https://arxiv.org/abs/2104.06020}, + eprinttype = {arXiv}, + eprint = {2104.06020}, + timestamp = {Mon, 19 Apr 2021 16:45:47 +0200}, + biburl = {https://dblp.org/rec/journals/corr/abs-2104-06020.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org}, + year = 2021 +} + +@online{cncf-sscp, + author = {Vega, Andres and Fox, Emily and Razzak, Faisal and Kennedy, Cole and Swift, Mikhail and Meadows, Jon and Yelgundhalli, Aditya Sirish A and Kumar, Nisha and Lock, Joshua and Martin, Andrew and Anandan, Vinod and Logan, Magno}, + organization = {Cloud Native Computing Foundation}, + title = {Software Supply Chain Security Best Practices}, + edition = {v1}, + url = {https://project.linuxfoundation.org/hubfs/CNCF_SSCP_v1.pdf}, + urldate = {2025-07-02}, + year = 2021 +} + +@article{courtès2022buildingsecuresoftwaresupply, + author={Courtès, Ludovic}, + title={Building a Secure Software Supply Chain with GNU Guix}, + journal={The Art, Science, and Engineering of Programming}, + volume=7, + number=1, + eprint={2206.14606}, + primaryClass={cs.SE}, + doi={https://doi.org/10.22152/programming-journal.org/2023/7/1}, + url={https://programming-journal.org/2023/7/1/}, + year=2022, +} + +@manual{debian-new-maintainers-guide, + author = {Rodin, Josip and Aoki, Osamu and Small, Craig and Hertzog, Raphaël}, + title = {Debian New Maintainers' Guide}, + organization = {Debian project}, + url = {https://www.debian.org/doc/manuals/maint-guide/index.en.html}, + urldate = {2025-07-02}, + year = 2022 +} + +@online{malicious-npm-techtarget-nichols, + author = {Nichols, Shaun}, + title = {More than 1,000 malware packages found in NPM repository}, + organization = {TechTarget}, + url = {https://www.techtarget.com/searchsecurity/news/252512799/More-than-1000-malware-packages-found-in-NPM-repository}, + urldate = {2025-07-03}, + year = 2022 +} + +@online{s2c2f, + author = {Diglio, Adrian and White, Jay and Wang, Jasmine and Bedford, Tom and Robinson, Christopher and Wheeler, David A.}, + organization = {Open Source Security Foundation}, + title = {Secure Supply Chain Consumption Framework}, + edition = {v1.1}, + url = {https://openssf.org/projects/s2c2f/}, + urldate = {2025-07-02}, + year = 2022 +} + +@online{nsa-esf-recommended-practices-devs, + author = {NSA and ODNI and CISA}, + organization = {Enduring Security Framework}, + title = {Securing the Software Supply Chain: Recommended Practices Guide for Developers}, + url = {https://www.cisa.gov/sites/default/files/publications/ESF_SECURING_THE_SOFTWARE_SUPPLY_CHAIN_DEVELOPERS.PDF}, + note = {Executive Order (EO) 14028}, + urldate = {2025-07-03}, + month = 8, + year = 2022 +} + +@online{re-bringing-npm-to-guix, + author = {zamfofex}, + title = {Re: bringing npm packages to Guix}, + note = {Message to a GNU Guix mailing list}, + url = {https://lists.gnu.org/archive/html/guix-devel/2022-11/msg00234.html}, + urldate = {2025-07-03}, + year = 2022 +} + +@online{malicious-npm-infosec-muncaster, + author = {Muncaster, Phil}, + title = {Hundreds of Malicious Packages Found in npm Registry}, + organization = {Infosecurity Magazine}, + url = {https://www.infosecurity-magazine.com/news/hundreds-malicious-packages-npm/}, + urldate = {2025-07-03}, + year = 2023 +} + +@article{journals/corr/abs-2404-08987, + added-at = {2025-05-01T00:00:00.000+0200}, + author = {Lins, Mario and Mayrhofer, René and Roland, Michael and Hofer, Daniel and Schwaighofer, Martin}, + biburl = {https://www.bibsonomy.org/bibtex/22b5af508a2261ef41411fa2870280e00/dblp}, + ee = {https://doi.org/10.48550/arXiv.2404.08987}, + interhash = {5d1409d3a6c0cfbe6c7a383623ed0197}, + intrahash = {2b5af508a2261ef41411fa2870280e00}, + journal = {CoRR}, + keywords = {dblp}, + timestamp = {2025-05-05T07:19:38.000+0200}, + title = {On the critical path to implant backdoors and the effectiveness of potential mitigation techniques: Early learnings from XZ.}, + url = {https://dblp.uni-trier.de/db/journals/corr/corr2404.html#abs-2404-08987}, + volume = {abs/2404.08987}, + year = 2024 +} + +@online{nsa-sbom-management, + author = {NSA}, + title = {Recommendations for SBOM Management}, + edition = {1.1}, + url = {https://media.defense.gov/2023/Dec/14/2003359097/-1/-1/0/CSI-SCRM-SBOM-MANAGEMENT.PDF}, + note = {Executive Order (EO) 14028}, + urldate = {2025-07-03}, + year = 2024 +} + +@article{journals/corr/abs-2405-15516, + added-at = {2024-06-19T00:00:00.000+0200}, + author = {Courtès, Ludovic and Sample, Timothy and Tournier, Simon and Zacchiroli, Stefano}, + biburl = {https://www.bibsonomy.org/bibtex/24b76ab7dfbf0411f197e011e1f716dcd/dblp}, + ee = {https://doi.org/10.48550/arXiv.2405.15516}, + interhash = {23db881daefde92ad117fdb28e585674}, + intrahash = {4b76ab7dfbf0411f197e011e1f716dcd}, + journal = {CoRR}, + keywords = {dblp}, + timestamp = {2024-06-24T07:14:22.000+0200}, + title = {Source Code Archiving to the Rescue of Reproducible Deployment.}, + url = {http://dblp.uni-trier.de/db/journals/corr/corr2405.html#abs-2405-15516}, + volume = {abs/2405.15516}, + year = 2024 +} + +@manual{debian03developers, + added-at = {2011-12-16T09:34:31.000+0100}, + author = {Levsen, Holger and Yamane, Hideki and Nussbaum, Lucas and Barth, Andreas and Hertzog, Raphaël and Di Carlo, Adam and Schwarz, Christian}, + biburl = {https://www.bibsonomy.org/bibtex/27fe170b81380f12cbb3b96c07943a112/pbrada}, + groups = {public}, + interhash = {3f8119716d0cfa6f67377af07df745b8}, + intrahash = {7fe170b81380f12cbb3b96c07943a112}, + keywords = {sweng}, + timestamp = {2011-12-16T09:34:31.000+0100}, + title = {Debian Developer's Reference}, + username = {pbrada}, + edition = {13.20}, + organization = {Debian project}, + url = {https://www.debian.org/doc/manuals/developers-reference/index.en.html}, + urldate = {2025-07-03}, + year = 2025 +} + +@online{malicious-npm-bleep-toulas, + author = {Toulas, Bill}, + title = {Dozens of malicious packages on NPM collect host and network data}, + organization = {BleepingComputer}, + url = {https://www.bleepingcomputer.com/news/security/dozens-of-malicious-packages-on-npm-collect-host-and-network-data/}, + urldate = {2025-07-03}, + year = 2025 +} + +@online{malicious-npm-hacker-news-ravie, + author = {Lakshmanan, Ravie}, + title = {Over 70 Malicious npm and VS Code Packages Found Stealing Data and Crypto}, + organization = {The Hacker News}, + url = {https://thehackernews.com/2025/05/over-70-malicious-npm-and-vs-code.html}, + urldate = {2025-07-03}, + year = 2025 +} + +@online{slsa, + author = {Diglio Adrian and McNamara, Andrew and Lieberman, Mike and Winser, Michael and Hennen, Tom and Domingues, Bruno and Wheeler, David A. and Lock, Joshua and Lewandowski, Kim and Lodato, Mark and Kuppusamy, Trishank Karthik}, + title = {Supply-chain Levels for Software Artifacts}, + edition = {v1.1}, + organization = {Open Source Security Foundation}, + url = {https://slsa.dev/spec/v1.1/}, + urldate = {2025-07-02}, + year = 2025 +} + +@misc{drexel2025reproduciblebuildsinsightsindependent, + author={Drexel, Joshua and Hänggi, Esther and Veiga, Iyán Méndez}, + title={Reproducible Builds and Insights from an Independent Verifier for Arch Linux}, + eprint={2505.21642}, + archivePrefix={arXiv}, + primaryClass={cs.CR}, + doi={https://doi.org/10.18420/sicherheit2024_016}, + url=https://arxiv.org/abs/2505.21642}, + year=2025, +} + +@online{malicious-npm-cybernews-naprys, + author = {Naprys, Ernestas}, + title = {Dozens of malicious packages on NPM collect host and network data}, + organization = {Cybernews}, + url = {https://cybernews.com/security/node-developers-targeted-by-malware-in-npm-packages/}, + urldate = {2025-07-03}, + year = 2025 +} + +@misc{mitmproxy, + author = {Aldo Cortesi and Maximilian Hils and Thomas Kriechbaumer and contributors}, + title = {{mitmproxy}: A free and open source interactive {HTTPS} proxy}, + url = {https://mitmproxy.org/}, + note = {[Version 12.0]}, + year = {2010--present} +} + +@online{reproducible-builds-continuous, + label = {RBCT}, + title = {Continuous tests}, + organization = {Reproducible Builds}, + url = {https://reproducible-builds.org/}, + urldate = {2025-07-17} +} + +@online{archlinux-repro, + author = {Linderud, Morten and kpcyrd and contributors}, + title = {{archlinux-repro}: A tool for users to verify packages distributed by Arch Linux}, + url = {https://github.com/archlinux/archlinux-repro/}, + urldate = {2025-07-17}, + year = {2017--present} +} + +@online{semantic-release, + author = {Martynus, Gregor and Vanduynslager, Pierre and Travi, Matt and Bönnemann, Stephan and Lekang, Rolf Erik and Schmidt, Johannes Jörg and Pauls, Finn and Witzko, Christoph}, + title = {{semantic-release}: Fully automated version management and package publishing}, + note = {[Version 24.2.6]}, + url = {https://www.npmjs.com/package/semantic-release}, + urldate = {2025-07-03}, + year = {2015--present} +} + +@online{source-date-epoch, + author = {Lamb, Chris and Suda, Akihiro and Engelen, Arnout and Wiedemann, Bernhard M. and Prévot, David and Stegerman, FC and Levsen, Holger and hulkoba and zmölnig, IOhannes m and Zerebecki, Jan and van der Waa, Jelle and Crusoe, Michael R. and Wu, Peter and Davids, Sebastian and earlier wiki contributors}, + title = {SOURCE\_DATE\_EPOCH}, + organization = {Reproducible Builds}, + url = {https://reproducible-builds.org/docs/source-date-epoch/}, + urldate = {2025-07-08} +} + +@online{w3techs-javascript-library, + label = {W3JL}, + title = {Usage statistics and market shares of JavaScript libraries}, + organization = {W3Techs - World Wide Web Technology Surveys}, + url = {https://w3techs.com/technologies/overview/javascript_library}, + urldate = {2025-07-03} +}
\ No newline at end of file diff --git a/doc.bib.license b/doc.bib.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/doc.bib.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> @@ -0,0 +1,3450 @@ +%% SPDX-License-Identifier: CC0-1.0 +%% +%% Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +\documentclass[a4paper,12pt,twoside,notitlepage]{report} + +\usepackage{rotating} + +\usepackage[ + margin=2.5cm, + marginparwidth=1.5cm, + marginparsep=2mm, + foot=1cm, + head=1cm +]{geometry} + +\renewcommand{\baselinestretch}{1.5} +\newcommand{\smallStretchValue}{1.2} +\newenvironment{smallStretch}{\setstretch{\smallStretchValue}}{} + +\usepackage{titlesec} +\titleformat +{\chapter} % command +[hang] % shape +{\bfseries\Large} % format +{\thechapter{}.{ }} % label +{0pt} % sep +{} % before-code +[] % after-code + +\usepackage{fancyhdr} + +\usepackage[T1]{fontenc} + +\usepackage{xurl} + +\usepackage[style=alphabetic,backend=biber,urldate=long,maxbibnames=9]{biblatex} + +\usepackage[polish,english]{babel} +\DefineBibliographyStrings{english}{% + mathesis = {Master's thesis}, +} + +\addbibresource{doc.bib} + +\renewcommand*\finalnamedelim{, \addspace{}and\addspace{}} + +\usepackage{mathptmx} +\usepackage{fontspec} +\usepackage{newunicodechar} +\newfontfamily{\fallbackfont}{DejaVu Sans}[Scale=MatchLowercase] +\DeclareTextFontCommand{\textfallback}{\fallbackfont} +\newunicodechar{│}{\textfallback{│}} +\newunicodechar{├}{\textfallback{├}} +\newunicodechar{─}{\textfallback{─}} +\newunicodechar{˷}{,,} + +\usepackage{footnote} + +\usepackage{caption} +\usepackage{setspace} +\captionsetup[lstlisting]{ + font={stretch=\smallStretchValue} +} % fix to prevent listings' changed stretch from affecting their captions + +\usepackage[table]{xcolor} +\usepackage{array} +\usepackage{calc} + +% https://tex.stackexchange.com/questions/249040/scale-column-of-a-table-in-percentage-of-textwidth#answer-249043 +\newdimen\netTableWidth +\newcommand{\columnsCount}[1]{% + \netTableWidth=\dimexpr + \linewidth + - #1\tabcolsep - #1\tabcolsep + - #1\arrayrulewidth -2\arrayrulewidth + \relax% +} + +\newenvironment{fancycell} + {% + \hspace{0.1in}% + \nolinebreak% + \begin{minipage}[t]{\dimexpr\linewidth-0.1in\relax} + \raggedright + \hspace{-0.15in}% + } + {% + \end{minipage}% + \vspace{0.07in} + } + +\usepackage{tikz} + +\newcommand{\lightbullet}{% + \begin{tikzpicture} + \pgfmathsetlengthmacro\Xheight{height("X")} + \draw (0, 0) node[ + inner sep=0, + anchor=east, + minimum height=\Xheight + ] {}; + \fill[radius=0.25*\Xheight] circle; + \end{tikzpicture}% +} + +\def\cellitems{\def\item{\par + \noindent\hbox to1.2em{\hss\lightbullet\hss\hss\hss}\hangindent=1.5em }} + +\usepackage[hyperfootnotes=false,pdftex]{hyperref} + +\hypersetup{ + colorlinks = true, + linkbordercolor = ., + linkcolor = [rgb]{0,0.2,0}, % to be changed after ToC&friends + urlcolor = [rgb]{0,0,0.5}, + citecolor = [rgb]{0.5,0,0} +} + +\definecolor{PATCHGREEN}{rgb}{0,0.5,0} +\definecolor{PATCHRED}{rgb}{0.5,0,0} +\definecolor{TEXTGRAY}{gray}{0.2} +\definecolor{FRAMEGRAY}{gray}{0.6} + +\usepackage{listings} +\usepackage{accsupp} + +\renewcommand{\lstlistlistingname}{List of Listings} + +\lstset{ + basicstyle=\fontsize{7}{9}\selectfont\ttfamily, +% lineskip=-0.2em, + numbers=left, + numberstyle=\fontsize{7}{9}\color{TEXTGRAY}, + inputencoding=utf8, + escapeinside={(*}{*)}, + extendedchars=true, + breaklines=true, + postbreak=\mbox{% + \hspace{-5em}% + {\BeginAccSupp{ActualText={}}% + \textcolor{TEXTGRAY}{$\hookrightarrow$}% + \space% + \EndAccSupp{}% + } + }, + breakautoindent=false, + captionpos=b, + frame=tbrl, + rulecolor=\color{FRAMEGRAY} +} + +\lstdefinelanguage{diffoscope}{ + delim = [s][\bfseries]{@@}{@@}, + moredelim = [l][\color{PATCHRED}]{\ -}, + moredelim = [l][\color{PATCHGREEN}]{\ +} +} + +\lstdefinelanguage{shc-patch}{ + delim = [s][\bfseries]{@@}{@@}, + moredelim = [l][\color{PATCHRED}]{-shell}, + moredelim = [l][\color{PATCHRED}\bfseries]{---}, + moredelim = [l][\color{PATCHGREEN}]{+shell}, + moredelim = [l][\color{PATCHGREEN}\bfseries]{+++} +} + +\definecolor{tango-string}{HTML}{5c3566} +\definecolor{tango-comment}{HTML}{5f615c} +\definecolor{tango-keyword}{HTML}{346604} + +\lstdefinelanguage{guix-package-definition}[]{Lisp}{ + stringstyle = \color{tango-string}, + commentstyle = \itshape\color{tango-comment}, + keywordsprefix = {\#:}, + keywords = {}, + keywordstyle = \color{tango-string}, + keywords = [2]{list,lambda,for-each,define-public}, + keywordstyle = [2]\color{tango-keyword}, + keywords = [3]{\#t}, + keywordstyle = [3]\bfseries +} + +\lstdefinelanguage{guix-commit}[]{guix-package-definition}{ + delim = [s][\bfseries]{@@}{@@}, + moredelim = [l][\color{PATCHRED}]{-\ }, + moredelim = [l][\color{PATCHGREEN}]{+\ } +} + +\lstdefinelanguage{shell-command}{ + delim = [s][\color{tango-keyword}]{--}{\ }, + alsoletter = {\\}, + keywords = {\\}, + keywordstyle = \color{tango-string} +} + +\lstdefinelanguage{package-lock-json}{ + stringstyle = \color{tango-string}, + string = [b]{"} +} + +\newcommand{\code}[1]{\mbox{\color{TEXTGRAY}\fontsize{8}{10}\texttt{#1}}} + +%% https://tex.stackexchange.com/questions/320342/lstinputlisting-ranges-and-unicode-characters +\makeatletter +\lst@InputCatcodes +\def\lst@DefEC{% + \lst@CCECUse \lst@ProcessLetter + ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f% + ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f% + ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af% + ^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf% + ^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf% + ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df% + ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef% + ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff% + ^^^^2502^^^^251c^^^^2500% `│', `├' and `─' + ^^00} +\lst@RestoreCatcodes +\makeatother + +%% was useful when I had no chapters and current chapters were sections +% \usepackage[section]{placeins} + +% https://aty.sdsu.edu/bibliog/latex/floats.html + +% Alter some LaTeX defaults for better treatment of figures: +% See p.105 of "TeX Unbound" for suggested values. +% See pp. 199-200 of Lamport's "LaTeX" book for details. +% General parameters, for ALL pages: +\renewcommand{\topfraction}{0.9} % max fraction of floats at top +\renewcommand{\bottomfraction}{0.8} % max fraction of floats at bottom +% Parameters for TEXT pages (not float pages): +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{2} +\setcounter{totalnumber}{4} % 2 may work better +\setcounter{dbltopnumber}{2} % for 2-column pages +\renewcommand{\dbltopfraction}{0.9} % fit big float above 2-col. text +\renewcommand{\textfraction}{0.07} % allow minimal text w. figs +% Parameters for FLOAT pages (not text pages): +\renewcommand{\floatpagefraction}{0.7} % require fuller float pages +% N.B.: floatpagefraction MUST be less than topfraction !! +\renewcommand{\dblfloatpagefraction}{0.7} % require fuller float pages + +%% \usepackage{float} + +%% \newfloat{flist}{H}{dummyfile} +%% \newenvironment{fitemize} +%% {\begin{itemize}} +%% {\end{itemize}} +%% %% {\begin{flist}\begin{itemize}} +%% %% {\end{itemize}\vspace{-2.5em}\end{flist}} +%% \newenvironment{fenumerate} +%% {\begin{enumerate}} +%% {\end{enumerate}} +%% %% {\begin{flist}\begin{enumerate}} +%% %% {\end{enumerate}\vspace{-2.5em}\end{flist}} + +\usepackage{enumitem} +\usepackage{svg} +\usepackage{graphics} + +%% \newcommand{\workNote}[1]{\emph{\color{red}\footnotesize(#1)}} +%% \newcommand{\TODONote}[1]{\emph{\color{red}\footnotesize(TODO: #1)}} +%% \newcommand{\marginNote}[2][9in]{% +%% \marginpar{% +%% \setstretch{1.1}% +%% \begin{turn}{90}% +%% \begin{minipage}{#1}% +%% \workNote{#2}% +%% \end{minipage}% +%% \end{turn}% +%% }% +%% } + +\newcommand{\givemeatilde}{% + {\raisebox{0.5ex}{\texttildelow}}% +} + +\newcommand{\tresholdDate}{April 14th, 2025} +\newcommand{\tresholdGuixCommit}{\code{143faecec3}} +\newcommand{\tresholdDateAndCommit} + {\tresholdDate{}, GNU Guix Git commit \tresholdGuixCommit{}} +\newcommand{\debianTresholdDate}{June 3rd, 2025} + +\input{definitions-computed-from-results.tex} + +\fancypagestyle{fancyplain}{ % + \fancyfoot[C]{Kraków, 2025} + \renewcommand{\headrulewidth}{0pt} % remove lines as well + \renewcommand{\footrulewidth}{0pt} +} + +\title{Software Provenance Assurance through Reproducible Builds} + +% https://tex.stackexchange.com/questions/15804/how-to-use-the-content-of-title-as-a-reference +\makeatletter +\let\inserttitle\@title +\makeatother + +\newcommand{\insertauthor}{Wojciech Kosior} + +\hypersetup{ + pdftitle = {\inserttitle}, + pdfauthor = {\insertauthor} +} + +\begin{document} + +\newpage + +\pagenumbering{roman} + +\titlepage + +\thispagestyle{fancyplain} + +\fancyhf{} +\fancyfoot[C]{Kraków, 2025} + +\mbox{} +\vspace{0.5in} + +\begin{smallStretch} + \fontfamily{cmr}\selectfont + \sffamily + + \begin{center} + \large + + \includesvg[ + width=0.2\linewidth, + inkscapelatex=false + ]{agh.svg} + + \vspace{0.2in} + + \MakeUppercase{\small\bfseries {\large{}AGH} {\large{}U}niversity of + {\large{}K}rakow} + + \vspace{0.2in} + + \MakeUppercase{\small\bfseries THE FACULTY OF COMPUTER SCIENCE, + \\ ELECTRONICS AND TELECOMMUNICATIONS} + + \vspace{0.45in} + + Master's thesis + + \vspace{0.45in} + + \textit{\inserttitle} + + \vspace{0.2in} + + \textit{\normalsize{}Potwierdzanie autentyczności oprogramowania \\ poprzez + powtarzalność kompilacji} + + \vspace{0.45in} + + Keywords: software supply chain threats, reproducible builds, software + provenance, software packaging, npm Registry + \end{center} + + \vspace*{\fill} + + \renewcommand{\arraystretch}{\baselinestretch} + \columnsCount{2} + \begin{tabular}{ m{.35\netTableWidth} m{.65\netTableWidth} } + + Author: & \insertauthor \\ + Major: & Cybersecurity \\ + Supervisor: & dr hab.\ inż.\ Piotr Pacyna, prof.\ AGH + \end{tabular} +\end{smallStretch} + +\clearpage + +\chapter*{Acknowledgements} + +I could have decided not to enroll for the MSc course in the first place. But, +having experienced some failures in my career, I started asking what God would +like me to do. I recalled that even though at various moments it was unpleasant +to be a student, university was a place that suited me more that places I have +been to afterwards. I assumed that maybe -- just maybe -- God did not want me +to succeed anywhere else because He wants me to be happy here, in the academia. +And so I am, finishing this unusual piece of research. Thank God. + +I also want to thank my wife, Joanna, who supported me even though she regularly +had to suffer listening about my boring computer topics. I thank my father, who +at times seems to care for my successful defence even more than I do. + +Finally, I could not forget about my supervisor who -- luckily for me -- was +corageous enough to undertake supervising a thesis in the software supply chain +field, which few students pursued before. Thank you! + +\begin{smallStretch} + \clearpage + + \setcounter{tocdepth}{1} + \tableofcontents + + \clearpage + + \phantomsection{} + \addcontentsline{toc}{chapter}{\listfigurename} + \listoffigures + + \clearpage + + \phantomsection{} + \addcontentsline{toc}{chapter}{\lstlistlistingname} + \lstlistoflistings + + \clearpage + + \phantomsection{} + \addcontentsline{toc}{chapter}{\listtablename} + \listoftables +\end{smallStretch} + +\clearpage + +\phantomsection{} +\addcontentsline{toc}{chapter}{\abstractname} +\begin{abstract} + Software faces risk of contamination on multiple stages of its creation and + distribution. One such stage is software's build, where its initial form -- + the source code -- is transformed into a form suitable for distribution. A + build is called reproducible when it yields bit-to-bit identical outputs when + repeated. The reproducible build can be secured by repeating it on multiple + infrastructures and comparing the outputs. This decreaces the risk of the + software getting contaminated through the build infrastructure used. Certain + software projects -- in particular, the Debian operating system -- already + levarage reproducible builds as a security tool. Meanwhile, several software + ecosystems rely on repositories whose packages cannot be reliably rebuilt and + tested for reproducibility. An example is a popular repository called npm + Registry. The software available through the npm Registry gets included in + reproducibility-focused distributions like Debian at slow pace. A great + number and complexity of dependency relations between npm packages were + hypothesized to be the primary hindrances to this process. In this work, a + statistical analysis of the npm ecosystem was performed and existing + approaches to reproducibility in the context of dependency resolution were + identified. Additionally, alternative approaches were proposed that would + allow for easier packaging of npm software while making reproducibility + achievable. To verify several stated hypotheses, an experiment was performed, + where builds of the most popular npm projects were attempted. Projects were + built multiple times to test what subset of their npm Registry dependencies + can be removed without causing the build to fail. The complexity and size of + project's minimal dependency tree was found not to be related to the + likelihood of the project having a corresponding Debian package. The results + lead to conclusion that even numerous and complex dependency relations can be + handled in existing reproducibility-focused software distributions. This + means that employing the proposed new approaches is not necessary to apply + reproducibility to npm software in the future. It also means that the + inclusion of npm software in reproducibility-focused software distributions is + mostly hindered by other factors that need to be countered. These were also + pointed at the end of this work. +\end{abstract} + +\clearpage + +\selectlanguage{polish} \phantomsection{} +\addcontentsline{toc}{chapter}{\abstractname} +\begin{abstract} + Bezpieczeństwo oprogramowania może zostać zagrożone na różnych etapach jego + tworzenia i~dystrybucji. Jednym z~nich jest szeroko rozumiana kompilacja + oprogramowania, gdzie jego pierwotna postać -- kod źródłowy -- jest + przekształcana do postaci odpowiedniej dla dystrybucji. Proces kompilacji + nazywamy powtarzalnym, jeśli przy wielokrotnym przeprowadzeniu daje wyniki bit + do bitu identyczne. Powtarzalny proces kompilacji może zostać zabezpieczony + poprzez przeprowadzenie go na różnych infrastrukturach i~porównanie wyników. + Zmniejsza to ryzyko zanieczyszczenia kodu oprogramowania przez użytą + infrastrukturę. Pewne oprogramowanie -- w~szczególności system Debian -- już + wykorzystuje powtarzalność jako narzędzie bezpieczeństwa. Jednocześnie, + niektóre ekosystemy oprogramowania polegają na repozytoriach, których pakiety + nie mogą być w~sposób niezawodny przekompilowane i~sprawdzone pod kątem + powtarzalności. Przykładem jest popularne repozytorium o~nazwie npm Registry. + Oprogramowanie dostępne przez~npm Registry jest też, aczkolwiek w~wolnym + tempie, włączane do dystrybucji typu Debian dbających o~powtarzalność + kompilacji. Według postawionej hipotezy to duża liczba i~złożoność relacji + zależności między pakietami npm są głównymi utrudnieniami w~tym procesie. + W~ramach pracy została wykonana analiza statystyczna ekosystemu npm oraz + zostały zidentyfikowane istniejące podejścia do powtarzalności w~kontekście + procesu rozwiązywania zależności. Dodatkowo, zostały zaproponowane + alternatywne podejścia, w~których pakowanie oprogramowania npm miałoby być + łatwiejsze, a~powtarzalność byłaby wciąż osiągalna. Dla zweryfikowania + postawionych hipotez przeprowadzony został eksperyment -- próba kompilacji + najpopularniejszych projektów npm. Projekty kompilowano wielokrotnie, + sprawdzając, jaka część ich zależności z~npm Registry może zostać usunięta + z~zachowaniem powodzenia procesu kompilacji. Złożoność i~rozmiar minimalnego + drzewa zależności projektu okazały się nie być powiązane + z~prawdopodobieństwiem istnienia odpowiadającego pakietu w~Debianie. Wyniki + prowadzą do wniosku, że istniejące dystrubucje oprogramowania dbające + o~powtarzalność mogą sobie poradzić także z~licznymi i~złożonymi relacjami + zależności. Oznacza to, że wprowadzenie zaproponowanych nowych podejść nie + jest konieczne, żeby można było w~przyszłości zastosować powtarzalność do + oprogramowania npm. Oznacza to też, że włączanie oprogramowania npm do + dystrybucji oprogramowania dbających o~powtarzalność jest w~głównej mierze + powstrzymywane przez inne czynniki wymagające zwalczenia. Zostały one + wskazane pod koniec pracy. +\end{abstract} +\selectlanguage{english} + +\chapter{Introduction} + +\hypersetup{ linkcolor = [rgb]{0,0.5,0} } + +\renewcommand{\arraystretch}{1.5} + +\pagenumbering{arabic} + +\fancypagestyle{plain}{ + \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} } + +\rowcolors{2}{gray!20}{white} + +%% W opisie warto dodac uzupelnienie - wyjasnienie szerokiego podloza problemu, +%% ktory jest glownym tematem. Moznaby zacząc od kwestii problemu "supply chain +%% management" w ogolnosci (w gospodarce) - wymienic problemy, troski, obawy i +%% potrzeby. + +Most products of modern industry are composed or made using a number of +half-products and tools. These tend to come from different producers, who +themselves rely on their suppliers. Such half-products might be produced with +violations of human rights, unecologically, without meeting certain quality +standards, or with patent violations. The assembly from half-products also +creates an opportunity for deliberate sabotage on part of the supplier. So far +businesses have not always successfully mitigated these threats, which later +reverberated in many ways. + +%% W kolejnym akapicie podac krotką charakterystyki problemow z tym związanych, +%% ale juz w kontekscie procesu wytworczego oprogramowania (powtorzyc istotne +%% zagadnienia "supply ..." lub uszczegolowic) + +Just as a design is often used to manufacture physical products, code written in +a programming language is used to produce software in its target form, e.g., an +executable, a firmware image, or a collection of files. This process of +producing software in its target form can be referred to as software +\textbf{build}. Items resulting from it are \textbf{build outputs}. A software +build process overview is presented in Figure~\ref{fig:build-process-overview}. +Depending on the programming languages and technologies in use, the build might +encompass different actions, e.g., macro processing, compilation, linking, +bundling, or compressed archive creation. It can also utilize a multitude of +different tools. Adjusting the build process to meet certain requirements is +often a complex task that requires understanding the workings of various tools +involved. In some software distribution projects, hundreds of lines of scripts +are maintained to allow proper building of a single piece of software written by +another party. Builds can even involve applying changes to upstream code, often +through the use of patches, i.e., machine-readable files describing changes to +project code. + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false]{build-process-overview.svg} + \caption{Overview of a sample software build process.} + \label{fig:build-process-overview} +\end{figure} + +Similarly to physical products, software is made using preexisting elements +delivered by other parties. These are often called \textbf{dependencies}. They +include + +\begin{itemize} +\item + runtime dependencies -- components to be distributed inside or alognside the + final program and used during its execution, for example reusable modules of + code called libraries or special fonts, and +\item + development dependencies -- elements not needed during program's execution but + useful to its developers, furter classifiable as + \begin{itemize} + \item + build dependencies -- compilers, linkers, test frameworks, etc.\ needed in + the build process, typically able to function non-intereactively and invoked + through some layer of automation, sometimes categorized further, for example + into native and non-native or into build and test dependencies, and + \item other development tools -- tools to work with software that are not + needed in the actual build process, more often manually-operated, like + IDEs\footnote{Integrated Development Environments} and their plugins, + debuggers, or linters. + \end{itemize} +\end{itemize} + +\section{Problem formulation} + +\textbf{If either an external dependency suffers from contamination, the + infrastructure handling the build is compromised, or the organization or + individuals attempt a sabotage, then a backdoor or other security + vulnerability can be implanted in the software being built. In a basic + setting, each dependency, the infrastructure, and the organization are all + single points of failure. The last two of these points can be secured through + additional build outputs verification that utilizes software reproducibility. + This work aims at exploiting reproducibility to secure software's build + process, with special focus on eliminating the gaps that would leave single + points of failure.} + +A reproducible build is one that produces the same, bit-to-bit identical outputs +when repeated. For example, the resulting program executables are bit-to-bit +identical. This concept assumes that a set of \textbf{build inputs} with the +same contents is used in every repetition. E.g., program sources and +dependencies in exact same versions are used. As a consequence, one +prerequisite of reproducibility is \textbf{hermeticity} -- the quality of a +build process that depends exclusively on a set of predefined dependencies. A +hermetic build must not depend on changeable network resources nor on machine's +installed software other than build's formal inputs. Hermeticity is usually +ensured by performing software build inside a minimal, isolated environment, +often a container utilizing Linux namespaces. + +Multiparty verification of build's reproducible output can help increase +confidence that built software is not contaminated due to compromise of +infrastructure underpinning the build environment nor malicious actions of +infrastructure operators. The verification shall be unsuccessful if the +contamination is present in an output of one build and not in those of the +others. The overviews of successful and unsuccessful verification performed by +end user -- a scheme that does not create unnecessary single points of failure +-- are presented in Figures \ref{fig:rebuilds-no-contamination-diagram} +and~\ref{fig:rebuilds-contamination-diagram}, respectively. Contamination is +represented by a frowning face. The extra confidence coming from verification +can empower both software vendors willing to reduce the risk of distributing +compromised code and software consumers wanting to secure their operations. + +\begin{figure}[htpb] + \centering + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{rebuilds-no-contamination-diagram.svg} + \caption{Overview of a successful multiparty build verification process.} + \label{fig:rebuilds-no-contamination-diagram} +\end{figure} + +\begin{figure}[htpb] + \centering + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{rebuilds-contamination-diagram.svg} + \caption{Overview of an unsuccessful build verification process.} + \label{fig:rebuilds-contamination-diagram} +\end{figure} + +Single-party verification is also applicable if only the infrastructure threats +are considered. Meanwhile, the party itself retains the ability to undetectably +compromise software builds, i.e., implant backdoors. Figure +~\ref{fig:rebuilds-contamination-1party} depicts an occurrence of such +compromise while single-party verification of build's reproducible output is +taking place. Contamination is represented by a frowning face. + +In addition to the above, just as reproducible builds performed by a single +organization are insufficient to protect from contamination introduced +deterministically by the organization, reproducible builds performed on a single +infrastructure would be insufficient to protect from contamination spreading +deterministically from that infrastructure. + +\begin{figure}[htpb] + \centering + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{rebuilds-contamination-1party.svg} + \caption{Overview of a build verification process which only compared the + outputs of builds performed by a single party and failed to detect malice.} + \label{fig:rebuilds-contamination-1party} +\end{figure} + +For software to be secured with reproducible builds, its build process has to +gain the quality of reproducibility, where repetition of the same build produces +output without variations. Achieving that quality can itself be challenging. +This involves identification of sources of build process' nondeterminism -- like +timestamps and a changing order of filenames in directory listings. Identified +sources need to be removed, e.g., by use of fixed date in timestamps or sorting +of filenames obtained from directory scans. Achieving this is nowadays easier +because common sources of nondeterminism have already been investigated and +workarounds have been implemented. For example, since version 7 the GNU C +Compiler checks for the existence of a \code{SOURCE\_DATE\_EPOCH} environment +variable containing a time value. It automatically uses this value in generated +file timestamps~\cite{source-date-epoch}. Additionally, dedicated tooling for +investigating non-reproducibility issues has been developed, notably the +\textbf{diffoscope} program~\cite{DBLP:journals/corr/abs-2104-06020}. To +decrease the chance of contamination from a compromized operating system, +firmware, and hardware, the actual build -- once its reproducibility issues are +resolved -- should be performed on infrastructures that differ as much as +possible, except for the invariant set of build inputs and environment +configuration needed to ensure reproducibile outputs. + +This work does not address the challenges of avoiding nondeterminism in software +builds. Instead, the work's goal is to ensure that -- in practical scenarios -- +the build inputs remain invariant in all build repetition attempts. The work's +second major concern is that all machine-performed operations -- even those +deemed preparatory -- can have their effect on build output controlled through +reproducibility. All of this, in turn, can make reproducible builds a more +reliable and more complete security mechanism. + +Despite their benefits, one should nevertheless realize that reproducible builds +only address a particular subset of software supply chain threats -- ones +affecting the build process -- and are mostly useful if other stages of that +chain are also secured. Some of the practices that can help with this are + +\begin{enumerate} +\item + making sure the software sources relied upon are audited against backdoors, at + least informally, e.g., by the virtue of being developed in the Bazaar model, + where the public has a high chance of noticing malicious + changes~\cite{raymond2001cathedral}, +\item + making sure the software sources do not get altered by any party after the + verification from the step above, and +\item + using reproducible builds and other mechanisms to verify software's + dependencies, possibly recursively. +\end{enumerate} + +One example of a threat not remediated through reproducible builds alone is the +loud XZ backdoor from 2024. Among others, it targeted Debian and Fedora +software distributions. Backdoor's activation code was only present in the +official source release archives and not in the source repository, which is most +often looked at by programmers~\cite{journals/corr/abs-2404-08987}. When the +software was built from source archives, it had backdoor code linked in, but +build results were deterministic. Attacks in such form would not be possible if +the source archives were verified to correspond to version-controlled software +sources. + +\chapter{Contemporary guidance and standards in the field of software supply + chain security} + +Threats related to software build and delivery process were known already long +ago. One interesting self-implanting compiler backdoor was described by Ken +Thompson in his Turing Award lecture in 1984, ``Reflections on Trusting +Trust''~\cite{Thompson:1984}. Later signs of interest in supply chain threats +in certain circles include for example David A.\ Wheeler's PhD dissertation +titled ``Fully Countering Trusting Trust through Diverse Double-Compiling'' +\cite{phd/basesearch/Wheeler09a} and eventually Bitcoin's use of Gitian +deterministic builder\footnote{before replacing Gitian with GNU Guix in 2021}. +Also, for many years certain software distributions have been compiling their +software from sources on dedicated servers, in isolated environments with only +mininum dependencies for a given build. One example of such distribution is +Debian. + +At the same time, for a wide public it's been a norm to rely on prebuilt +software that gives virtually no guarantees that it was built in a secure +environment. Multiple software repositories +% like npm Registry and PyPI\footnote{Python Package Index} +allow publishing developer-built software packages. Such software -- built from +a valid VCS\footnote{version control system} checkout but on developer's +infected machine -- could be maliciously modified and distributed to unaware +software integrators wishing to utilize it in their projects. Neither +cryptographic signing of packages nor VCS source code audits would mitigate such +attacks. + +Several spectacular supply chain attacks of recent years became the catalyst of +work towards increasing the level of security. In case of the SolarWinds attack +from 2020, also known under the name Sunburst, software distributed among +reportedly more than $18\,000$ customers turned out to contain a backdoor +implanted after a compromise of vendor's +infrastructure~\cite{conf/uic/SterleB21}. It was exactly the kind of threat +that reproducible builds address. As a result of the event, SolarWinds +Corporation suffered great economic losses and pejoration of its brand's image. +Additionally, the company exposed thousands of customers to cyberattacks +leveraging its compromised software. All of this could have been avoided +through reproducible verification of software build outputs. + +As more attacks on software build and distribution are reported, software supply +chain security becomes a hot topic. It attracts the attention of public +institutions and private organizations alike. Some prominent undertakings by +nonprofits are: launch of OWASP's\footnote{Open Worldwide Application Security +Project} SCVS\footnote{Software Component Verification Standard} in 2019, +foundation of OpenSSF\footnote{Open Source Security Foundation} in 2020, launch +of its SLSA\footnote{Supply Chain Levels for Software Artifacts} framework in +2021, Microsoft's donation of S2C2F\footnote{Secure Supply Chain Consumption +Framework} to OpenSSF in 2022, as well as the publishing of +CNCF's\footnote{Cloud Native Computing Foundation, a project of Linux +Foundation} ``Software Supply Chain Best Practices'' in 2021. State actors also +took voice by the means of ``Securing the Software Supply Chain: Recommended +Practices for Developers'' and subsequent two guides from 2022 developed by the +ESF\footnote{Enduring Security Framework} partnership with support from +CISA\footnote{Cybersecurity and Infrastructure Security Agency}, the +NSA\footnote{National Security Agency}, and the Office of the Director of +National Intelligence. Another possibly relevant document is NSA's +``Recommendations for Software Bill of Materials (SBOM) Management'' from 2023. + +\section{Software Component Verification Standard} + +SCVS \cite{owasp-scvs} describes itself as a ``community-driven effort to +establish a framework for identifying activities, controls, and best practices, +which can help in identifying and reducing risk in a software supply chain''. +Despite being developed by OWASP it is generic and not limited to web +applications in its scope. Authors recognize the unfeasibility of applying all +good practices and threat mitigations at every phase of every software project +and categorize their security requirements into three levels, each implying the +previous one and extending it. + +Practices listed in SCVS are grouped into six topics and formulated briefly. +They are agnostic about the technology stack and data formats in use. At length +explanation of the importance of prescribed actions is not part of the document. + +As of version 1.0 of the standard, level 2 requirements include a method to +locate ``specific source codes in version control'' that correspond to a given +version of a third-party package from software repository. While it is stated +that the correspondence must be verifiable, further details are not given. +SBOM\footnote{software bill of materials} and repeatable build process are +required for an application being developed but not for third-party components. +Additionally, listed practices regarding the build environment mention neither +the goal of reproducibility nor the weaker hermeticity. While authors might +have -- justifiably -- judged such rules as unfeasible given the current state +of the software ecosystem, it is interesting from the point of view of this +work. Threats that could not be addressed a few years ago in a generic setting +might be remediable now in the context of one or several technology stacks. + +\section{Supply Chain Levels for Software Artifacts} + +SLSA \cite{slsa} uses similar but conceptually more complex categorization than +SCVS. Practices are going to be assigned to so-called ``tracks'' which +correspond to different aspects of software supply chain security and which +might use different numbers of security levels. As of framwork version 1.0 +there only exists a ``Build'' track with three levels, not counting the empty +zeroth level. In addition to the specification of requirements, SLSA documents +different threats grouped into those concerning the source, dependencies, build, +availability, and verification of an artifact. Historical examples of attacks +using some of these techniques are listed in the documentation. Finally, it +also includes instructions how to apply SLSA and how to use it with attestation +formats from the in-toto framework~\cite{conf/uss/Torres-AriasAKC19}. + +Many aspects of the build process are addressed in the specified requirements +set but the qualities of hermeticity and reproducibility were removed from the +set at the drafting stage. SLSA explicitly calls verified reproducible builds +one of multiple methods of implementing the requirements. In the context of the +particular threat of compromised infrastructure, framework's focus is instead on +stronger security controls for the build platform. The platform, however, +remains a single point of failure. Incidents like that of SolarWinds could +still occur. Reproducibility and hermeticity might be re-introduced in +subsequent revisions of SLSA, as explained on its ``Future directions'' page. + +The specification currently also does not cover the recursive application of its +requirements to input artifacts used. It is nonetheless suggested that users +could apply SLSA independently to transitive dependencies. This approach is +presented as a possible mitigation to attacks like that performed on +event-stream library in 2018. + +\section{Secure Supply Chain Consumption Framework} + +S2C2F \cite{s2c2f} is complementary to SLSA in that it embraces software +consumer's point of view. It introduces four ``levels of maturity'' of +requirements with the highest level mandating a consumer-performed rebuild of +all artifacts. Having the artifact built reproducibly by several third parties +is mentioned as an alternative approach. Neither method is presented as more +secure, even though local rebuild still suffers from being a single point of +failure. + +\section{``Software Supply Chain Best Practices''} + +As of version 1, this paper \cite{cncf-sscp} recognizes three categories of risk +environments and three categories of assurance requirements. These are -- in +both cases -- ``low'', ``moderate'', and ``high''. A methodology for securing +the software supply chain is presented in five stages, with four themes of +``Verification'', ``Automation'', ``Authorization in Controlled Environments'', +and ``Secure Authentication'' being repeated in them. Recommendations are +organized into paragraphs rather than tables or lists. Authors point towards +existing tools useful for some of the tasks, notably the in-toto +framwork~\cite{conf/uss/Torres-AriasAKC19} and Rebuilderd +system~\cite{drexel2025reproduciblebuildsinsightsindependent}. At the same +time, they openly admit that some of the practices they describe might require +extra effort to implement because certain challenges have not yet been countered +by the supply chain industry. + +Reproducible builds are presented as potentially leverageable when high +assurance is needed. The topic is discussed in more detail than in the previous +documents from OWASP and OpenSSF. In addition, hermeticity is included as a +recommendation for high-risk and high-assurance environments. Recursive +dependencies are treated with equal care to the direct ones, consistently with +authors' statement that ``a supply chain's security is defined by its weakest +link''. The issue of bootstrapping a system image for builds is also discussed +in the paper. + +\section{``Securing the Software Supply Chain: Recommended Practices Guide''} + +The series was developed by a public-private working group with members from +both the industry and U.S.\ government agencies. It is described as +informational only and does not define any standard. Subsequent parts are +addressed at software developers, suppliers -- who are considered to be +``liaising between the customer and software developer'' -- and customers. + +Although these series do not group recommendations into levels, two mitigations +in the first guide from August 2022 \cite{nsa-esf-recommended-practices-devs} +are called ``advanced'' and described as providing ``additional protection''. +These are the hermetic and reproducible builds. A suggestion is made that the +same builds are performed ``in both cloud and on-premise environments'' and +their outputs compared. Additionally, authors state a justification should be +required when it is impossible to perform certain build reproducibly. The text +of this requirement has been copied verbatim from SLSA draft back before being +removed there. + +The guide also recommends that images used to deploy the build environment +should be created from sources except where ``there is an understanding of the +provenance and trust of delivery''. No statements explicitly concerning +rebuilds of transitive dependencies of a product are made. + +\section{``Recommendations for SBOM Management''} +\label{sec:recommendations-for-sbom} + +The paper \cite{nsa-sbom-management} calls itself a guidance. It lists +recommendations for general software suppliers and consumers but also dedicates +a big part to users and owners of NSS\footnote{U.S.\ national security systems +-- a specific category of information systems used on behalf of U.S.\ agencies}. +Document's primary focus is on functionalities that tools used to manage SBOMs +should provide. + +NSA's guidance concerns SBOMs, which hold information about software components +comprising final product. The guidance does not directly address build process +threats and does not touch the topics of reproducibility and transitive +dependencies of software. In fact, the industry recognizes another type of bill +of materials, not mentioned in the document, which is more relevant to the topic +of reproducibility than SBOM. It is manufacturing bill of materials. In the +context of software, MBOM conveys information about all components needed for +its build. This also includes project's build dependencies which would not be +recorded in an SBOM. MBOMs are relevant from reproducibility perspective +because information in them can make software rebuilds possible. Even though +MBOMs are not directly mentioned in version 1.1 of NSA's guidance, one of the +recommendations present there is labeled as ``Scalable architecture''. It is +described as one that can also ``handle other types of BOMs''. + +\section{Summary} + +Published documents' attitutes to reproducibility and hermeticity range from +agnosticism to suggestion and recommendation in the context of certain +environments. Reproducibility and its requisite -- hermeticity -- are difficult +to achieve with a great subset of existing popular software projects. This +difficulty might stand behind the limited focus on these measures in documents +other than CNCF's ``Software Supply Chain Best Practices''. It appears that the +means of securing the software supply chain which are more straightforward to +employ are also more often recommended. In such case, making reproducibility +easier to achieve for all kinds of software projects should lead to it being +more frequently discussed and therefore more broadly leveraged. + +\chapter{Security tools leveraging reproducible builds} +\label{chp:existing-security-tools} + +Several initiatives and pieces of software exist that are concerned with the +verification of reproducibility of software packages. The champion of these +efforts is the Reproducible Builds project, also affiliated with Debian. + +\section{in-toto apt-transport for Debian packages} + +in-toto framework, developed under the CNCF, aims to secure the integrity of +software supply chains~\cite{conf/uss/Torres-AriasAKC19}. Debian GNU/Linux is +an operating system distribution founded in 1993. It provides thousands of +pieces of software in form of \textbf{packages} that can be installed in the +system via Debian's package manager, APT\footnote{Advanced Package Tool}. + +In 2018 it became possible to use in-toto together with Debian's APT, to verify +that a package being installed has been verified through reproducible builds. +The package manager can be configured to abort installation if the package was +not reproduced by at least $k$ independent rebuilders, with $k$ configurable by +the user. In the process, cryptographically signed attestations of rebuilt +packages are fetched over the network from rebuilder URIs that are also +configured by the user. + +\subsection{How a Debian package is made and rebuilt} +\label{sub:how-debian-package-is-made} + +Most packages available in Debian contain software written by third parties, +i.e., the \textbf{upstream}. That software was released in source form and +subsequently integrated into Debian. A package typically has a maintainer who +is a Debian volunteer taking care of the package, possibly with the aid of other +people~\cite[Chapter~1]{debian-new-maintainers-guide}. + +Upon initial creation or a version update of a Debian package, its maintainer +first prepares what is called a \textbf{source package}. It is the primary +input of the build process that will produce the final, installable package. +The installable package is also sometimes called a \textbf{binary package} to +distinguish it from the source package. A single build process with a single +source package can also prouce multiple binary packages. For example, a +programming library written in the C programming language can have its +dynamically linked binary and its header files placed in distinct binary +packages. As of \debianTresholdDate{}, the current release of Debian -- Debian +12, codenamed ``Bookworm'' -- offered $63\,465$ packages for x86\_64 +architecture, as found in its \code{main} pool. They were produced from +$34\,217$ source packages. + +%% This is actually 38,546 buildinfo files and this many builds -- because +%% separates builds are conducted with a single source pacakge to produce +%% architecture-specific and architecture-independent outputs… + +%% gawk ' +%% BEGIN{ +%% delete registered_builds[""]; +%% } +%% /^Package:/{ +%% source = 0; +%% ver = 0; +%% arch = 0; +%% } +%% /^Source:/{ +%% source = $2; +%% } +%% /^Source:.*[(].*[)]/{ +%% ver = gensub("Source: .*[(](.*)[)]", "\\1", 1); +%% } +%% /^Architecture:/{ +%% arch = $2; +%% } +%% /^Filename:/{ +%% prefix_dir = gensub("Filename: pool/main/([^/]+).*", "\\1", 1); +%% if (!source) { +%% source = gensub("Filename: pool/main/[^/]+/([^_/]+).*", "\\1", 1); +%% } +%% if (!ver) { +%% ver = gensub("[^_]+_([^_]+).*", "\\1", 1); +%% } +%% source_id = source "_" ver; +%% build_id = source_id "_" arch; +%% dir_url = "https://buildinfos.debian.net/buildinfo-pool/" \ +%% prefix_dir "/" source +%% url = dir_url "/" build_id ".buildinfo"; +%% if (!(build_id in registered_builds)) { +%% print source_id " " build_id " " url; +%% registered_builds[build_id] = 1; +%% alt_url = dir_url "/" build_id "-source.buildinfo"; +%% print source_id " " build_id " " alt_url; +%% } +%% } +%% ' Packages > buildinfo-urls + +%% gawk '{print $1}' buildinfo-urls | sort | uniq | wc -l + +%% mkdir -p buildinfos +%% process_line() { +%% local SOURCE_ID=$1 +%% local BUILD_ID=$2 +%% local URL=$3 +%% if [ ! -e buildinfos/$BUILD_ID.buildinfo ]; then +%% if [ -e buildinfos-dumb/$BUILD_ID.buildinfo ]; then +%% mv buildinfos-dumb/$BUILD_ID.buildinfo buildinfos/$BUILD_ID.buildinfo; +%% else +%% wget --no-verbose -O buildinfos/$BUILD_ID.buildinfo $URL \ +%% >> buildinfos-download.log +%% fi +%% fi +%% } +%% while read LINE; do +%% process_line $LINE; +%% done < buildinfo-urls + +An official Debian source package typically consists of + +\begin{enumerate} +\item + software sources taken from the upstream -- possibly with inappropriately + licensed components removed and other changes applied to meet Debian + guidelines -- taking form of one or more compressed archives, +\item + package's recipe, taking form of a compressed archive, including, among others, + \begin{itemize} + \item + a list of software's build and runtime dependencies, placed -- with other + metadata -- in a file named \code{debian-control}, with an example in + Listing~\ref{lst:debian-control-excerpts}, + \item + optional patch files that describe Debian-specific changes which are to be + applied to upstream software as part of the automated build process, with an + example in Listing~\ref{lst:debian-shc-patch}, and + \item + a script directing the build process, placed in a file named + \code{debian/rules}, invoked as a Makefile, with an example in + Listing~\ref{lst:debian-rules-excerpt}, and + \end{itemize} +\item + a text file with \code{.dsc} suffix containing cryptographically signed source + package metadata, including hashes of compressed archives from the above + points. +\end{enumerate} + +\lstinputlisting[ + float=htpb, + caption=Excerpts from a $176$-lines long \code{debian/control} file of the + \code{nodejs} Debian package., + label=lst:debian-control-excerpts, + numbers=none +]{debian-control-excerpt.txt} + +\lstinputlisting[ + float=htpb, + language=shc-patch, + caption={A patch used by Debian package \code{shc} to provide an upstream + script with the correct path of the \code{rc} executable, as present in + Debian.}, + label=lst:debian-shc-patch +]{debian-shc.patch} + +\lstinputlisting[ + float=htpb, + caption=Excerpt from a $2045$-lines long \code{debian/rules} Makefile of the + \code{binutils} Debian package., + label=lst:debian-rules-excerpt, + numbers=none +]{debian-rules-excerpt.txt} + +The package maintainer is likely to perform one or several builds when working +on a new or updated source package. However, except for special cases, it is +only the source package and not the maintainer-built binary packages that gets +uploaded to what is called the \textbf{Debian archive}. Uploaded source +packages are ``built automatically by the build daemons in a controlled and +predictable environment''~\cite[Chapter~5]{debian03developers}. + +Besides producing binary packages, the build daemons also record the metadata of +performed builds, which is later published with cryptographic signatures as +\code{.buildinfo} files\footnote{which can be considered a type of MBOM that was +described in \ref{sec:recommendations-for-sbom}}. For a given binary package, +it is usually possible to locate and download its corresponding +\code{.buildinfo} file. That file contains, among others, a list of names and +versions of Debian packages that were installed in the minimal build +environment. An example of a \code{.buildinfo} file is shown in Listing +\ref{lst:haskell-sth-buildinfo-excerpts}. + +\lstinputlisting[ + float=htpb, + caption=Excerpt from a $256$-lines long \code{.buildinfo} file of the + \code{haskell-base-compat-batteries} Debian package., + label=lst:haskell-sth-buildinfo-excerpts, + numbers=none +]{haskell-sth-buildinfo-excerpts.txt} + +The \code{.buildinfo} files can be used by parties other that The Debian +Project to rebuild the official packages, write in-toto metadata of the process, +sign it, and subsequently serve it to the users. + +\section{\code{guix challenge} command of GNU Guix} + +GNU Guix is an operating system distribution and a package manager that appeared +in 2013~\cite{conf/els/Courtes13}. It implements functional package management +model described by Eelco Dolstra in ``The Purely Functional Software Deployment +Model'' in 2006 \cite{phd/basesearch/Dolstra06} and pioneered by Nix package +manager. For avoidance of confusion with an unrelated ``GUIX'' U.S.\ trademark +registered in 2019 and owned by Microsoft, the GNU Guix package manager shall be +referred to with its ``GNU'' prefix throughout this document. + +Similarly to Debian, GNU Guix relies on software written by upstream authors and +makes it available in the form of installable packages. However, the data +formats, build mechanisms, and nomenclature differ. The equivalent of Debian's +binary package is referred to as a \textbf{substitute}. Since 2015, GNU Guix +provides a \code{guix challenge} command which ``allows users to challenge +the authenticity of substitutes provided by a +server''~\cite{gnu-guix-0.9.0-released}. End users can invoke this command to +compare the outputs of package builds performed on multiple infrastructures and +report which packages were not built reproducibly -- either due to +nondeterminism of the build process or because of build's compromise. + +\subsection{How a GNU Guix package is made and built} +\label{sub:how-gnu-guix-package-is-made} + +GNU Guix package collection is determined by a set of package recipes. Unlike +Debian package recipes, these do not take the form of compressed achives. Here, +packages are defined in Scheme programming language from Lisp family. A recipe +consists of code that instantiates and populates a \code{<package>} data +structure representing a package that can be built. Recipe's code can use the +facilities of the Turing-complete Scheme programming language to dynamically +compute parts of this new \code{<package>} instance. A \code{<package>} +instance does -- in most cases -- get bound to a Scheme variable, which other +recipes' code can reference. Lists of package's explicit build and runtime +dependencies are typically constructed using references to other package +variables. A package recipe example is shown in Listing +\ref{lst:guix-python-axolotl-package}. It defines a variable of the same name +as the package and declares its explicit dependencies by referencing +\code{python-protobuf} and other two package variables. A Scheme code snippet +is supplied to be executed during the hermetic build process. It customizes the +process by deleting unnecessary files. + +\lstinputlisting[ + float=htpb, + language=guix-package-definition, + caption=Recipe of \code{python-axolotl} GNU Guix package., + label=lst:guix-python-axolotl-package, + numbers=none +]{guix-python-axolotl-package.scm} + +The recipes of all official GNU Guix packages are kept and maintained in a +single VCS repository. As of \tresholdDate{}, this is a repository that houses +both the recipes collection and the GNU Guix application, although this setup is +not imposed by design and might change in the future. Recipes in the repository +can also have accompanying patch files. However, patches are used less +frequently here than in Debian package recipes. Regular expression +substitutions performed by Scheme code are preferred by GNU Guix developers for +trivial modifications of upstream source. + +Package recipes in GNU Guix generally reference remote software sources using +URLs and hashes that are considered cryptographically secure. The hashes are +used for verification of sources' integrity upon download and make it possible +to safely download them from fallback servers, among which is the archive of +Software Heritage \cite{journals/corr/abs-2405-15516}. Several remote resource +formats are supported, including traditional compressed archives as well as +repositories of popular VCSes. Referencing VSC repositories of upstream +projects -- although not practiced universally in the recipes collection -- +allows the correspondence of build inputs to public-reviewed sources to be more +easily tracked. + +The GNU Guix package manager is able to build packages locally, on the system on +which their installation was requested. Each deployment of GNU Guix comes -- by +design -- with a copy of the recipes collection, such that only the source +inputs -- identified by cryptographic hashes -- need to be downloaded for a +build to be performed. Local builds are fully automated, are performed in +isolated environments created in the background and are a first-class citizen in +the model of GNU Guix. For practical reasons, it is made possible to instead +download prebuilt packages -- the substitutes that substitute their +locally-built equivalents. + +The \code{guix challenge} command allows the build outputs advertised by +configured substitute servers to be compared with each other and with the +outputs of local builds, when available. + +Lack of automatized integration of reproducibility verification with package +deployment is a notable limitation of the \code{guix challenge} command of GNU +Guix. The command has to be invoked explicitly by the user. As of +\tresholdDate{}, there is no official way to \textbf{automatically} challenge +the binary substitutes that GNU Guix downloads as part of other actions, such as +software installation. Thus, in practice, the command is less easily usable as +an end user's preventive security tool and more as an investigation and internal +verification aid. + +Bitcoin Core, possibly the most famous piece of software using GNU Guix to +reproducibly verify its binaries, does not rely on the +\code{guix challenge} command and instead uses its own custom scripts to +perform code signing. + +\section{Continuous tests} + +The tools presented so far allow the end users to verify binaries before they +are put in use. The user can first learn whether a set of software packages was +rebuilt with bit-to-bit identical results on independent infrastructure and can +then make an informed decision whether to install the packages. The benefit of +this type of verification is that it leaves no single point of failure, except +for end user's device. However, if the latter were compromised in the first +place, no software-based scheme would reliably remediate that. This scenario is +therefore out of scope of this work. + +The drawback of this type of verification is that accidential +non-reproducibility due to an overlooked source of nondeterminism in the build +process leads to verification failures, as depicted in +Figure~\ref{fig:rebuilds-inconclusive-diagram}. A lag of independent rebuilders +can likewise make verification impossible, as also shown in the figure. If +reproducible builds are to be used as a preventive security measure, any such +failure would need to stop the end user from performing the attempted software +installation or update. Until the percentage of reproducibly buildable software +in distributions is close to 100\% and enough resources are invested in +independent infrastructure performing continuous rebuilding, this problem can be +prohibitive. + +\begin{figure}[htpb] + \centering + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{rebuilds-inconclusive-diagram.svg} + \caption{Overview of a verification process inconclusive due to rebuilder's + delay and lack of determinism.} + \label{fig:rebuilds-inconclusive-diagram} +\end{figure} + +However, there are several projects where verification of reproducibility is +performed by someone else than the end user. Although this does not eliminate +the single point of failure from software installation process, such +verification can still make supply chain attacks harder. For example, if an +organization performs internal tests of reproducibility and analyzes their +results, it is more likely to detect code contamination early on and react to +it. + +As of \debianTresholdDate{}, the Reproducible Builds project performs continuous +tests of the reproducibility of + +\begin{itemize} +\item files from coreboot, FreeBSD, NetBSD, and OpenWrt projects, as well as +\item packages from Debian repositories, with package reproducibility statistics + being reported, as in Figure~\ref{fig:bookworm-stats-pkg-state}. +\end{itemize} + +\begin{figure}[htpb] +\centering +\includegraphics[width=\linewidth]{bookworm-stats-pkg-state.png} +\caption{Reproducibility of Debian Bookworm packages over time, as presented on + Reproducible Builds' continuous tests website.} +\label{fig:bookworm-stats-pkg-state} +\end{figure} + +As of \debianTresholdDate{}, $33\,214$ source packages from Debian Bookworm were +reported to have been rebuilt reproducibly for the x86\_64 architecture. That +means approximately 97\% reproducibility in the collection. The remaining +packages either could not be built on the Reproducible Builds infrastructure, +with various possible reasons, or were built with outputs differing on binary +level. + +The Reproducible Builds project also lists several others -- including GNU Guix +mentioned earlier and its predecessor NixOS -- that monitor the reproducibility +of their files and/or repository packages without relying on the Reproducible +Builds' infrastructure~\cite{reproducible-builds-continuous}. One notable +undertaking in this category is the development of Rebuilderd tool for +reproducible rebuilds of packages from Arch Linux and recently other +distributions~\cite{drexel2025reproduciblebuildsinsightsindependent}. An +application also exists that can consult a Rebuilderd instance to automatically +verify packages installed in user's Arch Linux system~\cite{archlinux-repro}. + +The continuous tests platform used by GNU Guix is capable of generating +reproducibility reports, which are viewable on pages at +\url{https://data.guix.gnu.org}. Part of such report is shown in +Figure~\ref{fig:guix-pkg-repro-stats}. According to it, there were $39\,344$ +packages available for the x86\_64 architecture as of \tresholdDateAndCommit{}. +$35\,415$ of them -- approximately 90\% -- were rebuilt reproducibly, albeit +with $2\,087$ remaining untested. Frequent package updates and builders' lag +are possible reasons for the large number of untested packages. Out of all the +successfully rebuilt GNU Guix packages, approximately 95\% had outputs that were +bit-to-bit identical with those produced on another infrastructure. + +\begin{figure}[htpb] + \centering + \includegraphics[width=\linewidth]{guix-pkg-repro-stats.png} + \caption{Reproducibility of GNU Guix packages as reported by its continuous + tests platform.} + \label{fig:guix-pkg-repro-stats} +\end{figure} + +Unfortunately, several of the reproducibility tests listed on the Reproducible +Builds website have become unmaintained. The testing for Fedora and Alpine +operating system distributions was disabled at some point. Although the +reproducibility statistics of GNU Guix packages are still delivered, their web +pages sometimes cannot be viewed due to timeouts, as also witnessed by Internet +Archive's Wayback +Machine\footnote{\url{https://web.archive.org/web/20250625124729/https://data.guix.gnu.org/repository/1/branch/master/latest-processed-revision/package-reproducibility}}. + +\chapter{Applicability of reproducibility workflows to different software ecosystems} +\label{chp:applicability-of-workflows} + +Current reproducible software distributions, like GNU Guix and Debian, are +\textbf{system software distributions} -- ones that contain a collection of +packages that can form a complete operating system. As such, a mixture of +software technologies can be found in them. + +Certain programming languages and computing platforms form software ecosystems +centered around them, for instance, the ecosystem of the Python programming +language with CPython\footnote{the most popular implementation of the Python +programming language, written in C} and PyPy being its most popular runtimes. +These ecosystems evolve their specific software package formats and workflows +for building these packages. Many popular ecosystems have their dedicated +package repositories that usually serve as primary distribution channels of +software written for the ecosystem's computing platform. Such +ecosystem-specific software repositories are often, although imprecisely, +referred to as language-specific repositories. They are typically open to the +public for registration and package creation. As such, they form environments +of software with varying levels of quality and significance. + +Many ecosystem-specific repositories distribute software without all the +metadata that is necessary to automate rebuilding it. Moreover, if a project +uses multiple packages from such repository, it relies on security of each of +the machines used by these packages' developers for builds and uploads. A +partial remedy -- facility to publish packages together with build provenance +data cryptographically signed by a build service -- was employed by +ecosystem-specific repositories \textbf{npm Registry} and +\textbf{PyPI}\footnote{Python Package Index} in 2023 and 2024, respectively. A +dedicated build service -- with the most popular ones being GitHub Actions and +GitLab CI/CD -- can be considered better secured than an average developer's +computer, for the benefit of packages that are confirmed to have been built +there. In addition, build provenance data identifies the source repository used +in the build. However, even when secured, build service remains a single point +of failure of the process. In addition, support for only one or few selected +build services -- as offered by the npm Registry as of \tresholdDate{} -- leads +to vendor lock-in. + +\section{Degree of inclusion in Debian and GNU Guix} + +Software utilizing the respective computing platforms and distributed primarily +through an ecosystem-specific software repository might, at some point, also get +included in a system software distribution. However, so far it did not happen +with certain popular and strategic pieces of software. One example is Electron +framework that is used, among others, by Signal application and Visual Studio +Code IDEs. As of \tresholdDate{}, Electron is declared a development dependency +by $4\,533$ packages in the npm Registry. At the same time, software +distributions that test for package reproducibility usually lack Electron and +Electron-based applications, as do Debian and GNU Guix. Another software +distribution that tests for package reproducibility, NixOS, redistributes +Electron's upstream binaries without actually building the software. In this +case, the build itself is not being verified through reproducibility. + +Certain programming languages and computing platforms have seen more packaging +progress in system software distributions. Let us consider the PyPI, npm, and +crates ecosystems, which are centered around their respective repositories and +technologies, as shown in Table \ref{tab:software-ecosystems}. For this work, +repositories were chosen as a basis for distinguishing the ecosystems. It is a +feasible criterion, although not the only possible one. There are overlaps of +various sizes between different repositories, runtimes, and project management +tools. Also, in some cases a software package has formal of informal +dependencies that are not distributed through the reposotory that the package +itself uses. + +\begin{table}[htpb] + \caption{Considered software ecosystems.} + \centering + \label{tab:software-ecosystems} + \footnotesize + \columnsCount{4} + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.31\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + } + \rowcolor{gray!40} + & + \textbf{PyPI} & + \textbf{npm} & + \textbf{crates} \\ + + \textbf{repository} & + PyPI & + npm Registry & + crates.io \\ + + \textbf{{primary} \mbox{programming} \mbox{languages}} & + \cellitems \item Python, \item Cython & + \cellitems \item JavaScript, \item TypeScript, \item WASM & + \cellitems \item Rust \\ + + \textbf{\mbox{sample} \mbox{runtimes} or \mbox{compilers}} & + \cellitems \item CPython, \item PyPy\ & + \cellitems \item Node.js, \item Deno, \item Bun & + \cellitems \item rustc \\ + + \textbf{sample project management tools} & + \cellitems \item setuptools, \item Poetry, \item Hatch & + \cellitems \item npm, \item Yarn, \item pnpm & + \cellitems \item Cargo + \end{tabular} +\end{table} + +We shall compare the numbers of software projects from the chosen ecosystems +that are packaged in system software distributions described in detail +in~\ref{chp:existing-security-tools}. The numbers presented in Table +\ref{tab:ecosystem-packaged-numbers} were estimated based on snapshots of +package collections offered by Debian Bookworm as of \debianTresholdDate{} and +GNU Guix as of \tresholdDateAndCommit{}. + +% grep -R node-build-system "$GUIX_CHECKOUT"/gnu/packages | wc -l +% grep -Re '\(pyproject\|python\)-build-system' "$GUIX_CHECKOUT"/gnu/packages | wc -l + +%% $ grep -R dh-nodejs ../buildinfos | awk -F _ '{print $1 "_" $2}' | sort | uniq | wc -l +%% 998 + +%% grep -R dh-cargo ../buildinfos | awk -F _ '{print $1 "_" $2}' | sort | uniq | wc -l +%% 1424 + +%% $ grep -R dh-python ../buildinfos | awk -F _ '{print $1 "_" $2}' | sort | uniq | wc -l +%% 5312 + +\begin{table}[htpb] + \caption{Estimated numbers of Debian and GNU Guix packages corresponding to + software from considered ecosystems.} \centering + \label{tab:ecosystem-packaged-numbers} + \footnotesize + \columnsCount{4} + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.31\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + >{\raggedright\arraybackslash}p{.23\netTableWidth} + } + \rowcolor{gray!40} + & + \textbf{PyPI} & + \textbf{npm} & + \textbf{crates} \\ + + \textbf{GNU Guix packages} & + $3\,699$ & + $55$ & + $3\,704$ \\ + + estimated as use counts of which \code{build-system}s in recipes & + \code{pyproject-build-system}, \code{python-build-system} & + \code{node-build-system} & + \code{cargo-build-system} \\ + + \textbf{Debian packages} & + $5\,312$ & + $998$ & + $1\,424$ \\ + + estimated as counts of source packages referencing which + debhelper package & + \code{dh-python} & + \code{dh-nodejs} & + \code{dh-cargo} + \end{tabular} +\end{table} + +A conclusion arises that for some reason npm packages are less likely to be +packaged when adhering to the rigor of existing software distributions that +utilize hermetic and reproducible builds. We can try to name the main causes +and judge whether the difficulties could be worked around without sacrificing +security. + +\section{Dependency tree sizes} + +It can be noticed that on avarage, npm projects have more recursive dependencies +than, for example, Python projects~\cite{btao-wot-for-npm}. This means that +packaging an end-user application written in JavaScript\footnote{also referred +to by its official name: ECMAScript} typically requires more labor of bringing +the intermediate packages to the distribution -- an issue that has been talked +about in the GNU Guix community for at least ten +years~\cite{lets-package-jquery}. + +Large dependency trees can be partially caused by the JavaScript language +historically having a relatively modest standard library. While such design can +bring some benefits, it might also lead to proliferation of small libraries that +have overlapping functionality. Independent, competing packages with similar +purposes are then more likely to appear together in a single dependency tree. + +Creation of many small packages and eager use of dependencies for simple tasks +-- all of which leads to larger dependency trees -- can also be attributed to +the culture of developers working with the npm Registry~\cite{Abdalkareem2020}. + +\section{Age of the ecosystem} + +The npm tool first appeared in 2010. The PyPI ecosystem is older, with its +repository being launched in 2002. It can therefore be argued that software +from the latter has had more time to be included in Debian and several other +software distributions. However, this is not sufficient to explain the lack of +inclusion of npm packages in GNU Guix, which itself came to existence in 2012. +Additionally, the crates ecosystem, which came to existence in 2014, is younger +than all of the previous repositories. Despite that, software from it has +larger presence in Debian an GNU Guix than software from the npm ecosystem. + +\section{Conflicting dependencies} +\label{sec:conflicting-deps} + +System software distributions typically only allow a single version of a package +to be installed at any given time. This rule is sometimes relaxed in various +ways. For example, as of \debianTresholdDate{}, Debian Bookworm had distinct +packages named \code{gcc-12} and \code{gcc-11}. Both of them provide the GNU C +Compiler, albeit in different major versions. These packages can be installed +side-by-side. GNU Guix, on the other hand, has facilities to create independent +environments with different sets of packages in each. If multiple versions of +the same package reside in different environments, they do not cause a conflict. +There are also other nuances that provide some degree of flexibility. + +Nonetheless, an application that requires multiple versions of a single +dependency is more difficult to include in such software distributions. This is +a relative small issue for, e.g., Python applications. Their runtime does not +support simultaneous loading of multiple versions of the same Python library in +the first place. I.e., if it is possible to install package's dependencies from +PyPI and use that package, it means there are no conflicting dependencies. At +the same time, npm and the Node.js runtime allow multiple versions of the same +library to appear in the dependency tree of a project. + +\subsection{Support in npm\&Node.js} +\label{sub:conflicting-deps-in-npm} + +Let us consider the dependency tree recorded in \code{package-lock.json} file of +the sigstore project +repository\footnote{\url{https://raw.githubusercontent.com/sigstore/sigstore-js/759e4d9f706aa0bea883267009fa1da8f2705eab/package-lock.json}}. +We shall look at the revision designated by Git commit \code{759e4d9f70} from +Aug 5, 2024. Entries of interest are shown in Listing +\ref{lst:occurances-of-tslib}. A library identified as \code{tslib} appears two +times in the tree. There is a copy of version 2.6.3 and a copy of version +1.14.1. This happened because a dependency, \code{tsyringe}, has a requirement +on a version of \code{tslib} that is at least 1.9.3 but lower than 2.0.0. +Version 1.14.1 present in the tree satisfies this requirement. Another +dependency, \code{pvtsutils}, requires \code{tslib} in version that is at least +2.6.1 but lower than 3.0.0. Several other entries, omitted for clarity, have a +different requirement on \code{tslib}. All these are satisfied by version +2.6.3. + +\lstinputlisting[ + float=htpb, + language=package-lock-json, + caption=Multiple occurances of \code{tslib} package in a dependency tree., + label=lst:occurances-of-tslib, + numbers=none +]{occurances-of-tslib.txt} + +When this project's code is run and the \code{tsyringe} library tries to load +\code{tslib}, Node.js runtime instantiates version 1.14.1 of \code{tslib} +from \code{tsyringe}'s private subtree. \code{tsyringe} then works with that +instance of \code{tslib}. For all other parts of the project that attempt to +load \code{tslib}, version 2.6.3 is instantiated and used. + +\subsection{Effects of Semantic Versioning} +\label{sub:effects-of-semver} + +In the npm ecosystem a system called ``Semantic Versioning'' +\cite{prestonwerner2013semantic} is widely applied. This system assumes that +software version is given as three numbers -- major, minor, and patch. E.g., +2.6.3. It also permits optional labels for pre-release and build +metadata. When Semantic Versioning is followed, then a new software release +that breaks backward compatibility with the previous release has its major +version number increased and the other two numbers reset to zero. A release +that adds new functionality without breaking backward compatibility has only its +minor number increased, with patch number reset to zero. And a release that +adds no new functionality -- typically a bugfix release -- has its patch number +increased. + +Assume project \code{foo} utilizes a semantically versioned dependency +\code{bar}. The developers could verify that \code{foo}'s code integrates +properly with a particular version of \code{bar}, e.g., version 3.4.5. The +developers would then record a requirement that in the future, either this +version of \code{bar} or a later one -- but without compatibility-breaking +changes -- can be used by \code{foo}. This means only \code{bar} versions +between 3.4.5 and 4.0.0, excluding 4.0.0 itself, would satisfy the requirement. +If \code{bar} then increases its major number in a new release, the developers +of \code{foo} can ensure that its code integrates properly with the newer +\code{bar}. They would then update the requirements in \code{foo} and the next +release of \code{foo} could officially use the 4.x.x series of \code{bar}. It +would, however, still be forbidden from using the hypothetical 5.x.x series that +could bring subsequent compatibility breakages. + +In our example from~\ref{sub:conflicting-deps-in-npm}, the libraries +\code{tsyringe} and \code{pvtsutils} both apply this approach to their +dependency, \code{tslib}. As a result, \code{tsyringe} is protected from +possible breaking changes introduced by version 2.0.0 of \code{tslib}, +but at the same time it is impossible to satisfy all requirements of the project +with just a single copy of \code{tslib}. In practice, there are sometimes tens +or hundreds such conflicts in a single dependency tree. + +The breaking changes that necessitate increasing package's major version number +sometimes concern a part of package's functionality that the specific user does +not rely upon. When project's developers know or suspect that the requirements +specified by certain dependencies could be safely loosened, they can forcibly +override them. Such overrides, supported natively in npm, are used by some when +addressing security vulnerabilities deep in a project's dependency tree. The +same approach could be used to eliminate all dependency conflicts. However, +with many overrides there's a lower chance of avoiding a breakage due to +inter-package compatibility issues. + +\section{Difficult bootstrappability} + +GNU Guix and Debian are self-contained in the sense that build dependencies of +their packages are also their packages. When packaging a program that requires, +e.g., a C compiler to build, no problems arise -- C compilers are already +present in these system software distributions and one of them can be used as a +build dependency of the new package. However, packaging a program written in a +new programming language requires a compiler or interpreter of that programming +language to be present in the distribution in the first place. The same applies +to other types of build tools, e.g., bundlers that amalgamate many JavaScript +files into a few or a single file. + +Packaging a program for such distribution involves first packaging all its build +tools. Making a package buildable with only the tools from the distribution is +sometimes referred to as \textbf{bootstrapping}. + +\subsection{Self-depending software} +\label{sub:self-depending-software} + +Certain tools exist that depend on themselves to build, making bootstrapping +challenging. Selected examples from the npm ecosystem are presented in Table +\ref{tab:self-depending-packages}. Packages in the table were ranked based on +how many other npm Registry packages specified them as development dependencies +as of \tresholdDate{}. The presented selection is by no means exhaustive, more +highly popular self-depending npm packages might exist. + +\begin{table}[htpb] + \caption{npm Registry packages that require themselves to build.} + \label{tab:self-depending-packages} + \centering + \footnotesize + \columnsCount{3} + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.13\netTableWidth} + >{\raggedright\arraybackslash}p{.27\netTableWidth} + >{\raggedright\arraybackslash}p{.6\netTableWidth} + } + \rowcolor{gray!40} + \textbf{name} & + \textbf{popularity ranking} & + \textbf{notes} \\ + + \code{typescript} & + $1$ ($473\,235$ dependees) & + the original implementation of TypeScript programming language \\ + + \code{@babel/core} & + $10$ ($138\,704$ dependees) & + part of a JavaScript compiler, requring itself indirectly through + dependencies that themselves build with \code{@babel/core} \\ + + \code{rollup} & + $26$ ($95\,965$ dependees) & + a bundler \\ + + \code{gulp} & + $40$ ($61\,077$ dependees) & + a build system, requiring itself through its runtime dependency + \code{gulp-cli} \\ + + \code{sucrase} & + $1\,793$ ($528$ dependees) & + an alternative to Babel, used as a proof of concept for bootstrapping a GNU + Guix package + \end{tabular} +\end{table} + +In GNU Guix, the preferred approach to packaging a self-depending tool is making +it bootstrappable~\cite{courtès2022buildingsecuresoftwaresupply}. This can +happen by packaging a chain of historical versions of the tool, where each can +be built with the nearest older packaged one, down to an early version that did +not have a self-dependency. Sometimes it is possible to eliminate or shorten +such ``bootstrap chain'', for example by replacing a complex build tool with +scripts or by using a bootstrappable drop-in replacement to some tool. The +latter was an approach used to package the official, self-hosting implementation +of the Rust programming language for GNU Guix in 2018. There, an unofficial +Rust compiler, written in C++, was used to compile an official Rust release from +July 2017~\cite{bootstraping-rust}. + +Bootstrapping helps prevent the ``Trusting Trust'' attack demonstrated by Ken +Thompson in 1984, but as of today there is little evidence of such attack type +ever being used by threat actors. In some cases software distributions under +consideration make exceptions and allow a non-bootstrappable program prebuilt by +another party to be made into a distribution package. For example, the set of +OCaml and Haskell compilers in GNU Guix depends on such third party binaries +that cannot be rebuilt from any package recipe in the distribution. + +In 2022 a proof of concept GNU Guix bootstrap of \code{sucrase}, a +self-depending build tool from the npm ecosystem, was +done~\cite{re-bringing-npm-to-guix}. + +\subsection{Recursive dependency closure} + +By package's recursive development dependency closure we mean a set containing +all its declared runtime dependencies and development dependencies, their +runtime dependencies and development dependencies, etc. In other words, the +closure is the minimal set that contains the dependencies of its every member +and also of the package for which the closure is being computed. The size of +package's recursive dependency closure can illustrate the bootstrapping +challenge complexity. An attempt to compute such closure was made for npm +package \code{typescript} as part of this work. npm Registry metadata limited +to package releases from before \tresholdDate{} was used. For simplicity, +version constraints were disregarded and packages' all historical dependencies +were considered. The result was a $60\,843$-elements big set of package names, +with additional $2\,433$ referenced names that do not exists in the Registry. +These were largely the results of mistakes and possibly private/unpublished +packages. Of course, non-crucial tools like linters tend to be declared +developments dependencies and the closure of truly necessary dependencies would +be much smaller, as also reported in~\ref{sec:typical-dep-tree-sizes}. +Nonetheless, this example shows how difficult it is to reason about what is +needed for bootstrapping tasks. + +\section{Inconvenience of system software distributions} +\label{sec:inconvenience-of-distros} + +Despite looser security practices and more frequent reports of malicious +packages in repositories like the npm Registry +\cite{malicious-npm-techtarget-nichols,malicious-npm-infosec-muncaster,malicious-npm-cybernews-naprys,malicious-npm-bleep-toulas,malicious-npm-hacker-news-ravie}, +many developers still prefer to work with them rather than with system software +distributions. Packages in the latter are adjusted to work with and inside +their distributions and are typically not compatible with the usual workflow of +developers of, e.g., npm projects. For example, it could be unstraightforward +to use npm libraries from Debian for producing distribution files of a mobile +application. Another deterrent is the delay with which newer releases of +packages reach system software distributions. + +This limited interest in availability of software from certain ecosystems in +distributions like Debian and GNU Guix also leads to decreased incentive for +authors of these distributions to work on it. + +\chapter{Overview of the npm ecosystem} +\label{chp:npm-ecosystem-overview} + +Software from the npm ecosystem was found to be more challenging to be made into +system software distribution packages. To provide deeper insight into this +problem, this chapter provides more information about this ecosystem, with focus +on dependency relations between npm packages. + +npm Registry -- the software repository around which the npm ecosystem is +centered -- was created as a distribution channel for JavaScript libraries, +frameworks, and applications using Node.js runtime. It was targeted towards +server-side developers. The platform allows the general public to register +accounts and publish software packages. Throughout the years, the npm Registry +also became home to client-side JavaScript, i.e., software to be executed in web +browsers. The repository is nowadays also used by related programming +languages, notably TypeScript. As of \tresholdDate{}, the repository was +serving over $3.5$ million published packages, many of which come in multiple +versions. + +\section{Recognized dependency types} + +Projects using npm can use a structured format to list their dependencies, i.e., +the npm packages they use. Four types of dependencies can be specified in +package's metadata kept in a file named \code{package.json} in project's source +directory. These types are described in Table~\ref{tab:npm-dep-types}. +Throughout the rest of this work, the opposite of a dependency shall be called a +\textbf{dependee}. + +\begin{table}[htpb] + \caption{Dependency types recognized by npm.} + \label{tab:npm-dep-types} + \centering + \footnotesize + \columnsCount{2} + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.3\netTableWidth} + >{\raggedright\arraybackslash}p{.7\netTableWidth} + } + \rowcolor{gray!40} + + \textbf{Metadata key} & + \textbf{Meaning} \\ + + \code{dependencies} & + Packages needed at runtime. \\ + + \code{devDependencies} & + Packages needed or useful for development, often minifiers/bundlers, test + frameworks, linters, and version control integration tools. \\ + + \code{optionalDependencies} & + Similar to \code{dependencies} but only needed for some additional + functionality. npm supports installing a package without its optional + dependencies, but by default it does install them. \\ + + \code{peerDependencies} & + Used to specify compatible versions of tools for which the dependee is a + plugin. +\end{tabular} +\end{table} + +\section{Statistical analysis of the npm ecosystem} + +To determine which projects using npm Registry are the most popular among +developers, the dependency relations between packages were counted and analyzed. +First, the metadata of all published packages in JSON format was downloaded. +Download took place on the days following \tresholdDate{}. The metadata was +processed to only include information about releases made after \tresholdDate{}, +yielding $3\,519\,767$ package entries. Curl program was used to make requests +to Registry's CouchDB view at \url{https://replicate.npmjs.com/_all_docs}. It +is worth noting that this API endpoint's functionality has since changed and +other means would be necessary to download the entire Registry metadata again in +the future. + +For the purpose of rankings discussed next, the dependees being multiple +versions of a single package were counted as one. Similiarly, version +constraints in dependency specifications were ignored. + +\subsection{The most popular dependencies -- changes over five years} +\label{sub:npm-changes-5-years} + +One of several metrics of package's popularity is its number of public +dependees. Up to 2019 such a ranking of $1\,000$ packages most often specified +as others' dependencies used to be published by Andrei +Kashcha~\cite{anvaka-rank-gist}. A similar list computed from newer data for +the purpose of this work was used to check how much the set of the most popular +packages changed between August 2019 and April 2025. The goal was to find out +how many of the previously popular projects keep to be chosen by developers and +how many stopped being actively used, perhaps becoming legacy software. The +overlap between the rankings is visualised in +Figure~\ref{fig:common-2019-2025-percent}. For each natural $n$ in the range +$[1, 1000]$, $n$ most popular dependencies from both rankings were selected. +The overlap of selected packages from first and second ranking was computed and +plotted with the values of $n$ on the X axis of the figure. + +\begin{figure}[htpb] +\centering +\includesvg[width=\linewidth,inkscapelatex=false]{common_2019_2025_percent.svg} +\caption{Overlap of the most popular npm dependencies from 2019 and 2025.} +\label{fig:common-2019-2025-percent} +\end{figure} + +The ``winners'' in 2019 and 2025 were \code{lodash} and \code{react} with +$69\,147$ and $263\,038$ dependees, repsectively. It can be seen that about +$150$ most depended packages form a relatively stable forefront, with further +part of the ranking having changed more over five years. Nevertheless, it is +worth noting that certain packages with no new releases for several years still +rank relatively high in 2025. Examples are \code{lodash}, \code{request}, and +\code{q} ranking third, $17$th, and $157$th, respectively. + +As a conclusion, if certain software is intended to be used for more than a few +years, dependencies for it must be considered more carefully when they are not +from among the \givemeatilde150 most popular ones. Otherwise, the risk of +project's direct dependency becoming legacy software grows. However, often +other characteristics of a package will determine whether it should be +considered reliable. Ultimately, the matter of who maintains a package and how +it could help the project are more relevant than a ranking position. + +\subsection{The most popular dependencies -- popularity tresholds} +\label{sub:runtime-deps-popularity-tresholds} + +The numbers of dependees corresponding to ranking positions can be used to infer +some qualities of the ecosystem. This correspondence is presented in +Figure~\ref{fig:dependee-counts}. + +\begin{figure}[htpb] +\centering +\includesvg[width=\linewidth,inkscapelatex=false]{dependee_counts.svg} +\caption{Number of packages using the most popular dependencies.} +\label{fig:dependee-counts} +\end{figure} + +In 2019, the $1000$th most popular dependency package in the npm Registry had +$346$ dependees. By April 2025, the $1000$th package in the ranking had already +$4\,771$ dependees. This reflects the growth of the entire ecosystem, whose +package repository had about one million packages in July 2019 and about $3.5$ +million packages in April 2025. However, this would by itself only explain a +rise in dependee counts by about a ratio of $3.5$. The aforementioned increase +from $346$ to $4\,771$ dependees is over four times greater. This needs to be +attributed to growing projects' complexity, as there is a tendency to use more +dependencies. A plausible additional explanation is higher overlap of +functionalities between packages, i.e., situations occur where multiple popular +libraries exist for a single task. + +\section{The most popular development dependencies} +\label{chp:most-popular-dev-deps} + +In the context of supply chain security, the development dependencies are as +important to research as the runtime dependencies. A popularity ranking similar +to the previous one was compiled for packages occuring the most in the +\code{devDependencies} collections of others. An analogous correspondence of +ranking position to development dependee count is presented in +Figure~\ref{fig:dev-dependee-counts}. No development dependencies ranking from +2019 was found that could be used for comparison. Instead, the runtime +dependencies plot from Figure \ref{fig:dependee-counts} was re-included for +easier reference. + +\begin{figure}[htpb] +\centering +\includesvg[width=\linewidth,inkscapelatex=false]{dev_dependee_counts.svg} +\caption{Number of packages using the most popular development dependencies.} +\label{fig:dev-dependee-counts} +\end{figure} + +The first position belongs to \code{typescript} with $840\,161$ development +dependees. A treshold of $2\,185$ development dependees needed to be reached by +a package to be included in the ranking. The curve for development dependencies +is steeper, meaning there is a clearer forefront. This in turn indicates that +the functionality overlap mentioned in +\ref{sub:runtime-deps-popularity-tresholds} is possibly a smaller problem in +this case. + +\section{Overlap of the most popular runtime and development dependencies} +\label{sec:overlap-of-runtime-and-dev-deps} + +It is possible for a popular development dependency to also be specified as a +runtime dependency by some packages. Realizing how often this happens can help +judge whether certain kinds of issues are likely to occur in the ecosystem. The +overlap of runtime and development dependencies is visualized in +Figure~\ref{fig:common-nondev-dev-percent}, using the same approach as for the +overlap in Figure \ref{fig:common-2019-2025-percent} discussed in +\ref{sub:npm-changes-5-years}. + +\begin{figure}[htpb] +\centering +\includesvg[width=\linewidth,inkscapelatex=false]{common_nondev_dev_percent.svg} +\caption{Overlap of the most popular npm runtime and development dependencies in + 2025.} +\label{fig:common-nondev-dev-percent} +\end{figure} + +Since packages listed as \code{dependencies} are often libraries or +frameworks and those listed as \code{devDependensies} are commonly +applications, one could expect a smaller overlap than that of about 15-30\% +which was found. A possible explanation is that unlisting a package from +\code{devDependencies} add instead including it among +\code{dependencies} creates no major change for project developers. A +command like \code{npm install} shall still resolve that dependency and +include it in the environment it creates. It is therefore possible that a +non-negligible number of dependencies is incorrectly categorized by the +dependees. + +It used to be a known fact that among packages listed as \code{devDependencies} +there are many which are not needed to merely rebuild a project. These could be +automatic code formatters, tools responsible for integration with version +control, etc.\ and they could be eliminated from automated builds to make them +lighter on resources and to decrease the attack surface. Based on these results +it is reasonable to expect that the similar holds for runtime dependencies. +This provides a justification for experiments aimed at eliminating the +extraneous dependencies without breaking the functionality of packages. + +\chapter{Possible paradigms for hermeticity and reproducibility} + +Certain popular software technologies -- with npm being one of them -- prove +difficult to combine with existing reproducibility-focused workflows. Possible +causes of this were discussed in~\ref{chp:applicability-of-workflows}. The +package creation workflows of -- largely reproducible -- system software +distributions Debian and GNU Guix were explained in +\ref{sub:how-debian-package-is-made} and~\ref{sub:how-gnu-guix-package-is-made}, +respectively. An explanation of the npm ecosystem followed in +\ref{chp:npm-ecosystem-overview}. + +With all the above being considered, the ability to handle software with +numerous dependencies -- which can have complex relatonships -- appears relevant +to the goal of rebuilding parts of the npm ecosystem hermetically and +reproducibly. Based on the knowledge gathered, possible approaches to +hermeticity and reproducibility in the context of dependency resolution shall be +critically analyzed. They shall be classified as distinct paradigms. The +introduced paradigms shall be discussed in the context of security and their +applicability to the build process of npm pacakges. + +Paradigms 0 through 2 represent existing approaches. Paradigm 3 is an +intermediate one that leads to 4, which is a generalization of the former. +Paradigms 3 and 4 are an innovation originating from this work. They are meant +to optimize the way build inputs are determined and also ensure that no +unnecessary single points of failure are created which would not be secured +through verified reproducibility. The new paradigms are suggested as bases for +hypothetical new software packaging workflows that would make hermeticity and +reproducibility easier to achieve with software from, among others, the npm +ecosystem. + +\section{Paradigm 0 -- lack of actual reproducibility} +\label{sec:paradigm-0} + +If one is to build an npm package in the most basic way, with use of commands +like \code{npm install} and without a pre-computed dependency tree, then network +connectivity is necessary. Without it, the npm tool cannot download packages +metadata from its repository, the npm Registry. But if network access is +allowed, then the build -- and therefore its result -- might depend on +downloaded code and data other than dependencies' metadata. Some commonly used +npm packages require additional connections to function. For example, the +\code{playwright-webkit} library, upon installation by npm, downloads +executables from a third party server. That library is an intermediate test +dependency of a popular web library, JQuery, used by about 74\% of the most +popular websites~\cite{w3techs-javascript-library}. + +Author of an npm package can assign so-called \textbf{distribution tags} to its +specific versions. The tag can be though of as a string label that points to a +package version. Tags can be used by dependees as an alternative way of +specifying the depended version of the package. Some of the commonly used tag +names are \code{next}, \code{beta}, and \code{latest}. When the developer +publishes a new package version, the npm tool by default automatically assigns +the \code{latest} tag to that version. + +The build process of an npm project relies on downloaded metadata of packages. +As a result, if a dependency author publishes its new version or alters the +distribution tags, it might cause later rebuilds of the package to use a +different set of inputs. The final result can be different, so it is not +reproducible. Additionally, the repository constitutes a single point of +failure because compromising the repository allows altering the served metadata +of package versions. The compromised repository could, for example, spoof +package's distribution tags or hide the existence of certain versions of a +package, thus allowing only vulnerable versions to be used. + +With files coming from a third party server, we have even less guarantee that +they were not maliciously tampered with. A library that downloads such files +during package build could verify them. For example, its authors could make the +library contain cryptographic hashes of the required external files. The +library could then check that every downloaded file has a matching hash. +Unfortunately, we have no mechanisms to mandate that this kind of verification +takes place in cases like that of \code{playwright-webkit}. This means ad-hoc +file downloads are a bad security practice. They would need to be eliminated or +restricted for reproducibility to be leveraged. + +Despite the above, reproducibility tests of npm packages are actually attempted, +with one example being Pronnoy Goswami's research +\cite{goswami-reproducibility}. It has to be noted that the results of such +tests are likely to be unstable, yielding different results if repeated at a +later date. + +\section{Paradigm 1 -- inputs determined by human-maintained references} + +One of the possible methods of determining the set of build inputs is used by +GNU Guix. Its package recipes contain references to dependency packages that +have their versions predetermined. As a result, questions like ``Should +\code{foo} use its dependency \code{bar} in version 2.4.5 or 3.0.1?'' are +already answered. An update to a package definition results in the updated +package being used everywhere that particular definition was referenced. The +update takes form of a commit or commit series in the Git VCS and is subject to +review by co-authors of the distribution. + +If we fix a GNU Guix revision to be used, then in a package build -- which is +hermetic by design -- all inputs are unambigiously determined. No repository of +metadata can open the user to the risk of using incorrect dependency versions. +In other words: the threat on the part of improperly defined dependency versions +is of the same nature as that on the part of improperly written code. And -- as +users of any kind of software -- we are deemed to accept threats of this nature. + +Maintenance of this kind of system is, of course, more labor-intensive. Every +alteration of a package recipe -- also including software's version updates -- +is an update to GNU Guix' Git repository. Such update involves labor of +distribution maintainers, similarly to Debian's case. A sample list of $26$ +consecutive commits to GNU Guix' repository -- with $15$ package updates among +them -- is presented in Listing~\ref{lst:guix-package-update-commits}. The +changes in the list were made by multiple contributors during an hour between +12:00 and 13:00 on April 11, 2025. The changes are listed oldest to newets. +Details of the newest one are additionally shown. A non-negligible amount of +work is clearly needed to handle many changes manually. The great number of +small changes might therefore lead to a yet unverified assumption that too big +effort is required of distribution maintainers. If true, this could hamper the +growth of the software collection available through GNU Guix. + +\lstinputlisting[ + float=htpb, + language=guix-commit, + caption={List of consecutive changes committed to GNU Guix, with contents of + the bottommost one included for reference.}, + label=lst:guix-package-update-commits, + numbers=none +]{guix-package-update-commits.txt} + +In addition, many package managers following other paradigms can make use of +permitted dependency version ranges declared by packages. This way npm, APT, +and others can automatically avoid using incompatible dependency versions. +However, Paradigm 1 does not allow such optimization to be employed. + +It is worth highlighting that in GNU Guix the URLs and hashes that comprise +identification data of program sources are maintained together with package +recipes, as can be seen in Listing~\ref{lst:guix-package-update-commits}. As +explained, this approach might have additional consequences in the amount of +distribution maintainers' labor. Nonetheless, it can also positively or +negatively affect the chances of malicious sources being referenced in a recipe. +This is an important supply chain issue to recognize, but it is independent from +the concept of paradigms introduced in this chapter. + +\section{Paradigm 2 -- reproducibility not applied to dependency resolution} + +The problem of the dependency resolution process being unreproducible was +explained in~\ref{sec:paradigm-0}. In this context, the actual package build +can be partitioned into several distinct steps, for example + +\begin{enumerate} +\item dependency resolution, +\item dependency installation, +\item code transformation/generation, +\item automated tests, and +\item installation/packing. +\end{enumerate} + +Steps 1 and 2 are sometimes performed together, for example as part of a single +command invocation. However, in case of some package managers -- including npm +-- the set of resolved dependencies with their versions can also be recorded for +later reuse. It is done with so-called \textbf{lockfile} -- a file that project +developers can add to a VCS and which allows dependency installation to be +repeated without re-downloading metadata nor re-running the resolution +algorithm. In npm projects this file is saved as \code{package-lock.json} or +\code{npm-shrinkwrap.json}. + +With a precomputed \code{package-lock.json} we can therefore download the +dependencies and use them as inputs of the hermetized build, narrowed to steps +2-5. Upstream software's original build procedures sporadically expect network +access during these steps. The build process of the aforementioned JQuery is +one of those few cases where this occurs. Such problems would need to be +corrected manually, in package recipes of a hypothetical distribution applying +Paradigm 2 to a broader population of npm packages. A typical solution in, +e.g., Debian is a patch that eliminates such access attempt or replaces it with +a reference to a local, formally-approved input. + +If npm project authors fail to provide an appropriate lockfile -- which can +happen -- it could be generated by one of the parties that rebuild the software. +Step 1 would then need to be performed unhermetically, with network access. The +obtained \code{package-lock.json} would then be treated as additional build +metadata, distributed to the other parties. When a build were to be repeated to +verify the reproducibiliy of the result or for other purposes, presence of this +metadata would be required. + +The benefit of Paradigm 2 is that one can proceed in achieving reproducibility +of most of the build process and further leverage it. In fact, comments in the +source code of JQuery indicate that its developers -- to some extent and with +disregard for possible changes in files being downloaded during the build +process -- did actually work on making JQuery's build process deterministic when +the \code{package-lock.json} is used. + +The main disadvantage of Paradigm 2 is that dependency resolution is still not +secured by hermeticity nor reproducibility. Even when changes to project's +\code{package-lock.json} take the form of version control system commits, these +are unlikely to be reviewed as carefully as ordinary software code changes. +Dependency trees can be complex. \code{package-lock.json} files counting over +$1000$ entries are common. As a result, the shape of a particular resolved +dependency tree is difficult to explain without additional tools. + +The described approach requires generalization to building a project that uses +multiple repositories, e.g., npm Registry + Python Package Index + Rust Package +Registry. That is because multiple dependency trees from multiple software +ecosystems are involved. Theoretically, even in terms of a single ecosystem and +a single repository, we might need to resolve multiple sets of dependencies in +step 1. In effect, an actual collection of lockfiles would need to be treated +as the aforementioned additional build metadata. + +\subsection{Debian implementation} + +Interestingly, a variant of Paradigm 2 can be found in Debian, which is +considered one of the most reproducible software distributions. That is because +the package recipe shared as \code{debian.tar.xz} file contains the names of +direct build dependencies but not necessarily their precise versions nor the +indirect dependency names. It is actually the \code{.buildinfo} files where the +published packages' build environments metadata can be found. Much of this +metadata is determined by the dependency resolution process, as performed by +Debian's APT tool during the initial Debian package build. + +Although this does formally fall into the scope of Paradigm 2, Debian packagers' +perspective is still similar to that of Paradigm 1 users. That is because -- as +explained in~\ref{sec:conflicting-deps} -- a single Debian release typically +only advertises a single version of a given package at any point in time. +Unless multiple Debian releases are mixed together, this makes the input +metadata of APT's dependency resolution process flat. This, in turn, makes +packagers ultimately responsible for ensuring version compatibility between +packages in this flat space. + +\section{Paradigm 3 -- deterministic dependency resolution inputs ensured} +\label{sec:paradigm-3} + +For our dependency trees from Paradigm 2's step 1 to be secured through +reproducibility, we need to be able to repeat the dependency resolution step +using the same data about candidate dependency packages. Neither +\code{.buildinfo} nor \code{package-lock.json} files preserve all metadata +actually consulted by the resolution algorithm. They lack information about +packages that were considered but rejected as final dependency tree members. As +such, full dependency resolution cannot be performed based on just these files' +contents. It can be argued that the risks this causes for Debian are small +because the general public cannot create new packages that could then be +immediately used as dependencies. Here, one of the most likely dependency +resolution attack scenarios involves supplying the build with an outdated, +faulty compiler package already present in the distribution. One theoretical +attack utilizing a compiler bug was described +in~\cite{deniable-backdoors-compiler-bugs}. In contrast, manipulation of +\code{package-lock.json} in an npm package build can more easily lead to an +attacker-published package being installed in the build environment. + +In case of npm projects, one of the simplest solutions would be pointing the npm +tool to a local mock of a repository server, speaking the HTTP protocol. The +mock would function as a proxy that downloads required packages' metadata from +the original npm Registry server, alters it and returns it as responses to the +npm tool's requests. Each response -- containing the metadata of all versions +of a single npm package -- would be filtered not to include the versions of +packages that were published after a chosen time treshold. The treshold could +be, e.g., the release date of the project version being built. In repeated +build attempts, the relevant metadata served by mocked registry ought not to +change. Corner cases shall occur, in form of dependencies being removed from +the official registry due to copyright claims or in form of projects' dependence +on particular developer-alterable distribution tags of npm packages. These +problems should be rare enough to be fixable manually or with reasonable +defaults. For example, a mock \code{latest} tag could be attached to the newest +version of each npm package whose metadata is served. + +This approach does not completely eliminate the threat of the dependency +resolution process being maliciously influenced. In particular, the packages' +metadata could be maliciously modified even earlier, for example as a result of +the official registry's infrastructure being compromised. However, compared to +Paradigm 2, the number of moments when malicious modifications could occur is +decreased. Similarly, the scope of what could be modified is more limited. To +decrease the changes of the hypothetized attack on the registry being +successful, additional means of detection and mitigation could be employed. For +example, trusted third parties can serve as ``canaries'', publishing +cryptographically signed information about what package metadata was being +served by the repository as of given date. The initial builder can also record +the resolution metadata and make it available to rebuilders, effectively acting +as one of the suggested canaries. The holy grail of avoiding a single point of +failure -- one in the form of a centralized registry -- would be deriving the +resolution metadata of packages from those packages themselves once they are +also rebuilt locally. This would present a bootstrapping challenge that -- when +solved -- would open the way to dependency resolution without major reliance on +any centralized service. + +Regardless of the employed approach to securing the dependency resolution +inputs, the actual concept of Paradigm 3 is to make the inputs plausibly +deterministic and then repeat the dependency resolution process upon every +repetition of a given package build. The remaining steps of the build process +are performed analogously to those in Paradigm~2. The issue of generalization +to projects utilizing multiple repositories is also analogous to that in +Paradigm~2. + +\section{Paradigm 4 -- hermeticity relaxed and deterministic dynamic inputs allowed} + +One can notice that in paradigms 2 and 3 the first step, dependency resolution, +is treated different from the subsequent ones. The result of step 1 is a +collection of one or more lockfiles that identify dependencies' files, e.g., +through names and versions or URLs and hashes. A tool that implements a given +paradigm would need to -- between steps 1 and 2 -- prepare an appropriate +isolated environment for package build, for example a Linux container. +Lockfile-identified dependencies would need to be exposed inside. + +In Paradigm 3, the initial download of packages metadata can happen through a +locally-run mock of a repository server. I.e., the isolated dependency +resolution process has a service perform possibly hermeticity-violating actions +on its behalf. Yet, care is taken to make the results of those actions +deterministic. Paradigm 4 extends this approach to all steps of the build. The +installation step, knowing project's recursive dependencies identified by the +lockfiles from step 1, could have the service supply the dependencies' files +into the otherwise isolated build environment. There is no more need to provide +separate isolated environments to two different parts of the build process -- +step 1 and the chain of remaining steps. As long as the hermeticity-violating +actions performed by the service on build's behalf are deterministic, this +should not make build results less reproducible. The process can be thought of +as \textbf{eventually-hermetic}, bacause repeated builds are likely to request +the exact same actions, requiring the same external data, which could be cached +and reused, making subsequent runs network-independent. At the same time, this +approach \textbf{removes the need of having all build inputs identified in + advance}, simplifying the entire build process. + +Let us provide another example of an action that could be deterministically +carried out on behalf of the build -- checking out of a Git repository revision. +Under Paradigm 4 this could happen through the hermeticity-violating service, +making the repository a \textbf{build input determined dynamically}. If the +checkout operation uses a repository URL and, e.g., a Git tag\footnote{unrelated +to npm package's distribution tag and not to be confused with it}, it is by +itself not deterministic -- result can vary in time, for example due to tags +being changed in the upstream repository. In this case, additional means -- +like those already mentioned -- would be needed to ensure the determinism of the +checkout action. However, no such extra measures are necessary if the checkout +operation uses a commit hash made with an algorithm deemed cryptographically +secure. Preimage attack resistance is of practical relevance, making even SHA-1 +applicable as of 2025. + +This approach makes the logic of an eventually-hermetic package build more +straighforward. If, for example, step 3 required an extra resource or tool, in +paradigms 1-3 that requisite would need to be identified beforehand. Under +Paradigm 4 this is not necessary. + +\subsection{Security-oriented justification} + +How secure would the Paradigm 4 be? Its security relies on the viability of +employed means of ensuring the determinism of dynamic inputs. A GNU Guix-like +approach of maintaining the cryptographic hashes of all downloadable resources +in a VCS is possible. While the collection of resources still needs to be +identified in advance of any build, there is no more need to record exactly +which ones are needed for which particular package build -- by itself a huge +simplification. This makes Paradigm 4 no worse than -- seemingly the most +secure -- Paradigm 1, as implemented in GNU Guix. + +However, the concept of paradigms -- as introduced by this work -- is not +strictly dependent on the way of ensuring the integrity and determinism of +software sources and of other build inputs. The approach of keeping hashes of +packages' sources embedded in code kept in a VCS can be criticized. In theory, +changes to the version-controlled recipes code -- with input resources' hashes +-- are subject to review. However, despite the positive security aspects of +human-conducted code reviews, such system makes it easy for reviewers to lose +vigilance -- especially when facing a ``flood'' of package recipe updates, as +shown in Listing \ref{lst:guix-package-update-commits}. Some could argue that +it would be beneficial to completely replace the version-controlled hashes of +sources with a network of canaries that record the tagged revisions found in VCS +repositories and the contents of software's published release files. This +aproach is applicable to Paradigms 4, 3, and 1 alike. It simply happens not to +be employed by GNU Guix as of 2025. + +\chapter{Automated package builds experiment} +\label{chp:experiment} + +The previous chapters of this work has lead to the following hypotheses and +questions. + +%% \let\labelenumiOld\labelenumi +%% \newdimen\labelwidthOriginal +%% \labelwidthOriginal=\labelwidth + +\newcounter{hyQuCounter} + +\newcommand{\hyQuItem}[1]{% + \stepcounter{hyQuCounter}% + \item[#1 \thehyQuCounter{}.]% +} + +\newcommand{\hypothesis}{\hyQuItem{HYPOTHESIS}} +\newcommand{\question}{\hyQuItem{QUESTION}} + +\begin{description} + \hypothesis{} The dependency tree sizes of npm packages and acceptance of + conflicting dependencies by the platform appear to be the major sources of + difficulty in packaging the npm ecosystem in reproducibility-focused + distributions. Is this truly the main factor? + + \hypothesis{} Re-generation of npm lockfiles -- an operation necessary for the + security improvement offered by proposed paradigms 3 and 4 over Paradigm 2 -- + is expected to rarely cause npm package build failures which would not occur + with developer-supplied lockfiles. Are such failures indeed uncommon? + + \hypothesis{} As speculated in \ref{sec:overlap-of-runtime-and-dev-deps}, both + direct and indirect dependencies of npm projects are often unnecessary. Is + this indeed the case? + + \question{} What are the typical sizes of dependency trees needed to build npm + projects and how much can these trees be typically shrinked? + + \question{} How often do dependency conflicts actually occur in npm dependency + trees and how often -- or to what extent -- can they usually be forcibly + eliminated without causing breakage? + + \question{} Are forced removals of npm project's dependencies and forced + elimination of dependency conflicts likely to cause non-obvious breakages that + only become apparent when seemingly successfully-built package turns out to be + disfunctional or nonfunctional? If so, how best to avoid them? + + \hypothesis{} npm projects' dependencies are seldom specified by distribution + tags and removal of distribution tags from npm dependency resolution metadata, + with automatic addition of a mock \code{latest} tag as mentioned + in~\ref{sec:paradigm-3}, is expected to cause few dependency resolution + failures. Is this a valid assumption? + + \question{} Can we deliver a prototype that performs npm project's dependency + resolution as proposed in paradigms 3 and 4? +\end{description} + +To verify and answer these, an experiment was conducted which involved automated +build attempts of top npm projects, selected by their position in the npm +Registry package rankings. The selected set consisted of projects belonging to +the first $200$ of either the most popular \code{dependencies} or +\code{devDependencies} as of \tresholdDate{}. Due to some overlap between the +rankings, the actual size of the set was \allSelectedCount{}. The build +procedure, described in the following subsection, was designed with the help of +a trial-and-error approach. + +\section{Method and environment} + +The experiment was conducted on an x86\_64 machine. For details, see +Listing~\ref{lst:cpu-info}. All operations were performed under version +5.15.0 of the Linux kernel. All filesystem operations were backed by an +ext4 filesystem. No effort was made to employ means like disorderfs, described +in~\cite{DBLP:journals/corr/abs-2104-06020}, because this work is not concerned +with eliminating the traditional sources of nondeterminism. + +\lstinputlisting[ + float=htpb, + caption={Details of the processor used during the experiment, as reported by + cpuinfo utility.}, + label=lst:cpu-info +]{cpu-info.txt} + +The diagram in Figure \ref{fig:experiment-activity} describes the flow of +activities during testing of a single npm project. In the diagram, start and +end are denoted by a filled circle and a circle with a white ring inside, +respectively. Flow branches are represented by hexagons and merges -- by +rhombuses. The particular operations present in the diagram are described +further below. + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false]{experiment-activity.svg} + \caption{Activity diagram describing the experiment as performed on each + tested npm project.} + \label{fig:experiment-activity} +\end{figure} + +\subsection{Containerized environment creation} + +For each tested project, the version to build was first selected as its highest +non-pre-release package version published before \tresholdDate{}. Versions' +publishing dates that were consulted were part of packages' metadata downloaded +from the npm Registry. For the selected version, the relevant Git repository +URL and -- where possible -- release's Git commit hash were extracted from the +available metadata. The URL was sometimes present with a \code{git+} or +\code{git:} prefix, which had to be dropped. The repository at learned URL +was then cloned to a local directory, with submodules included through the use +of Git's \code{--recurse-submodules} option. + +Upon successful retrieval of source repository contents, a semi-isolated +environment, based on Linux containers, was created. Upon creation, the +environment only had access to a minimal collection of software. It comprised + +\begin{itemize} +\item + Node.js runtime including bundled npm application, +\item + Git version control tool, +\item + GNU Bash shell, which served as the POSIX-compliant shell used by \code{exec} + function of Node.js, +\item + GNU Coreutils, +\item + GNU which, invoked by experiment's code, +\item + GNU Guile and several Guile libraries, being the driver for the experiment's + code, and +\item + dependencies of the above, e.g., a C library. +\end{itemize} + +The environment was created as a container shell managed by GNU Guix. The +version of GNU Guix used was built from Git revision \tresholdGuixCommit{}, the +last one before \tresholdDate{}. It featured Node.js runtime in version +22.14.0, npm in version 10.9.2, and Git in version 2.49.0. +Inside the environment, the applications listed above were available through the +\code{PATH} variable and also symlinked under \code{/bin} directory through the +use of \code{--emulate-fhs} option of \code{guix shell}. The environment had no +direct access to outside network, allowing us to state that experiment's results +reflect the behavior of a hermetic build process. Network isolation also helped +make sure that no dependency was installed ``on the side'', without being +recorded in project's lockfile. The environment was also isolated +filsystem-wise, with specially prepared directories shared between the +environment and the host. They were shared read-write or read-only, according +to needs. Shared directories allowed container's guest to + +\begin{enumerate} +\item + access the code used to drive the experiment, +\item + access npm project's cloned repository, +\item + request npm packages' metadata and files from the host through named fifos, +\item + receive them as files, and +\item + persist lockfiles and final package files generated during build, for later + inspection. +\end{enumerate} + +\subsection{Source code checkout preparation} + +Inside the just-created environment, a checkout to npm project's appropriate +revision was attempted in the following ways. + +\begin{enumerate} +\item + By switching to the commit hash previously extracted from the package + metadata. +\item + By switching to a Git tag identical -- as a string -- to the version being + built. +\item + By switching to a Git tag identical to the version being built, prefixed with + letter ``v''. E.g., for a project version 3.2.2 a switch to Git tag + \code{v3.2.2} would be attempted. +\end{enumerate} + +This sequence of tries was chosen based on findings from initial manual +experiments and also on prior knowledge of common developer practices. In +particular, it was found that a Git commit hash is not always advertised for +a given npm package version. When it is, it sometimes corresponds to a revision +that was never pushed to project's public repository. This appears to be most +often caused by an automated release publishing software that makes a local +commit as part of its operation. It was decided that in both cases -- of the +unknown and nonexistent commit hash -- it is best to fall back to probable Git +tags. + +If directories named \code{node\_modules} or \code{dist} existed in a +successfully checked-out source repository, they were deleted before the actual +build attempt. These directories are used to store npm project's installed +dependencies and generated files, respectively. Although they are sometimes +checked into version control, they are not sources per se and a hygienic npm +project build should be performed without them. + +It is worth noting that every build was conducted inside a full git repository +checkout, with access to the \code{.git} directory containing project's history. +This is unlike the practice of GNU Guix, Debian, and many other distributions +where build inputs typically do not include any version control metadata. The +decision was made based on the following considerations. + +\begin{enumerate} +\item + Build procedures most often rely on version control metadata for side tasks + like generation of software authors list. These tasks are not highly relevant + to our stated questions, but their failures could decrease the number of + successful package builds that we seek to further analyze. +\item + In actual distribution software packaging, the build process' reliance on + version control metadata is considered easy to solve compared to the issues + of dependencies. +\item + While availability of version control metadata could theoretically ease + smuggling of backdoor code in XZ-style attacks, it would be hardly practical + -- the backdoor would need to be somehow retrieved from version control + history and invoked, in a hard-to-notice way. Building with full version + control metadata is therefore a secure enough approach to be suggested for + adoption by distributions. +\end{enumerate} + +\subsection{Dependency resolution in a network-isolated environment} + +Dependency resolution was performed with the help of a dummy +\code{npm uninstall} command, as shown in Listing~\ref{lst:npm-uninstall}. +The options used made npm + +\begin{itemize} +\item + refrain from attempting network requests unrelated to the actual dependency + resolution, +\item + refrain from actually installing the resolved dependencies or running their + hooks, +\item + update project's lockfile to the current format if an older one was + encountered, and +\item + make requests to a local mock of npm's repository. +\end{itemize} + +The command either created the \code{package-lock.json} file from scratch, wrote +a new version of it based on an existing lockfile found or left it unchanged. +The latter happened whenever the existing \code{package-lock.json} was already +in sync with dependency constraints specified in project's \code{package.json}. +It can be noted that npm would also automatically use an +\code{npm-shrinkwrap.json} file over \code{package-lock.json} if the former were +present. However, this was not the case for any of the npm projects tested. + +\lstinputlisting[ + float=htpb, + language=shell-command, + caption=The npm command used to produce an up-to-date lockfile., + label=lst:npm-uninstall +]{npm-uninstall.txt} + +For projects that utilize workspaces, attempt was made to also add +workspace-related options \code{-}\code{-workspaces}, +\code{-}\code{-include-workspace-root}, and +\code{-}\code{-workspace} as appropriate to \code{npm uninstall} +and subsequent npm invocations. Workspaces are a feature that allows multiple +subprojects to be developed in subdirectories of a single npm parent project, +with the parent and each subproject having its own \code{package.json} +file. Despite the effort, all workspaced projects that were tested failed to +build for other reasons. Several tested projects were found to use workspaces +for smaller satellite utilities while having the project's package described by +the \code{package.json} file in the root directory of the repository. +Those were built without any workspace-specific npm options. + +A minimal server, written for this experiment, listened for HTTP requests on +port 8080 inside the network-isolated build environment. It received npm +package metadata requests and passed the requested package names via a fifo to a +service running outside the container. The service downloaded the metadata and +filtered it to only contain information about package versions published before +\tresholdDate{}. The original npm distribution tags were stripped, but a mock +\code{latest} tag was added for every package, pointing at its newest +non-pre-release version from before \tresholdDate{}. Pruned pieces of metadata +were supplied to the guest-side server for use as responses to the npm tool. + +\subsection{Remaining build steps} + +After successful dependency resolution, packages listed in the lockfile were +installed with the help of an \code{npm ci} command, as shown in +Listing~\ref{lst:npm-ci}. Analogously to the dependency resolution step, +package file requests were sent through the HTTP protocol to the local port 8080 +and were handled by the guest-side server, which in turn relied on the host-side +service to perform the actual downloads on guest's behalf. + +\lstinputlisting[ + float=htpb, + language=shell-command, + caption=The npm command used to install dependencies., + label=lst:npm-ci +]{npm-ci.txt} + +Successful installation of dependencies was followed by an invocation of a +\code{build} action that npm projects conventionally define in their +\code{package.json} files. The command used is shown in +Listing~\ref{lst:npm-run-build}. + +\lstinputlisting[ + float=htpb, + language=shell-command, + caption=The npm command used to invoke project-specific build operations., + label=lst:npm-run-build +]{npm-run-build.txt} + +At this point, the \code{package-locks.json} file was copied to a subdirectory +of the results directory to be persisted after experiment's end. The same was +done at subsequent builds, described further below, which involved modifications +to the dependency tree. The collected lockfiles later allowed calculation of +dependency tree sizes. When dependency tree modifications were found to cause +changes to the built package, these lockfiles were also useful in understanding +the exact reasons behind those changes. + +As of \tresholdDate{}, built npm packages are distributed as \code{.tgz} archive +files. In the jargon they are called ``tarballs'' and in case of npm packages +they are compressed using gzip algorithm. An \code{npm pack} command exists +which can produce such archive from project's files. Although the same could be +achieved with a traditional tar program, the npm's command is convenient, +because -- among others -- it automatically omits unneeded files like the +\code{node\_modules} directory. The exact form of the command used to persist +the built package is shown in Listing~\ref{lst:npm-pack}. + +\lstinputlisting[ + float=htpb, + language=shell-command, + caption=The npm command used to create the built package file., + label=lst:npm-pack +]{npm-pack.txt} + +\subsection{Repeated builds without upstream lockfiles} + +For a project that was successfully built with the described procedure, the +process was repeated with alterations. Upon each repetition, the repository was +brought to a clean state and had added Git hooks -- if any -- removed. However, +re-creation of the entire semi-isolated environment was deemed unnecessary for +the purpose of the experiment. After the repository was cleaned, each repeated +build started with the Git revision checkout attempts described earlier. + +The first alteration of the build was the removal of existing lockfiles +recognized by npm or its alternatives: \code{npm-shrinkwrap.json}, +\code{package-lock.json}, \code{yarn.lock}, and +\code{pnpm-lock.yaml}. It happened right after the removal of +version-controlled \code{node\_modules} and \code{dist} directories. +The removal of lockfiles was done to force a full dependency resolution. If +successful, the build in this form was performed twice to check if dependency +resolution and lockfile generation in npm suffer from obvious nondeterminism +issues. + +Additionally, all later builds of the project also involved the removal of +existing lockfiles, besides other alterations. + +\subsection{Elimination of unnecessary direct dependencies} + +Each project known to build successfully with and without the removal of its +version-controlled lockfile -- if any -- was tested further. The experiment +checked whether it had the ability to build with each of its direct dependencies +-- tried in reverse alphabetical order -- removed. E.g., a project with nine +direct dependencies specified in its \code{package.json} -- including those +listed as \code{dependencies}, \code{devDependencies}, and +\code{optionalDependencies} but not \code{peerDependencies} -- was built nine +times, each time with another direct dependency removed for the first time. The +build was considered successful when the npm commands all finished with zero +status. For each such successful build the tested dependency was recorded as +unnecessary and was also removed in all subsequent build attempts, together with +the dependency tested in a given attempt. E.g., if five out of first eight +dependencies were found to be unnecessary, then subsequent build was performed +with the ninth dependency plus the initial five removed. I.e., a total of six +dependencies were removed in that build. + +The removal consisted of erasing of dependency's entry in project's +\code{package.json} file right after lockfiles deletion. However, the original +\code{package.json} contents were always recorded and restored before the +\code{npm pack} invocation. This was done to have the built package tarballs -- +each of which contains a copy of the \code{package.json} -- easier to compare +for other differences. Interestingly, for some projects the \code{npm pack} did +not place the \code{package.json} inside the tarball verbatim and instead +generated a variant of that file with some fields changed in a way custom to the +project. One such case, concerning the \code{@testing-library/user-event} +package, is discussed in~\ref{sub:apparently-disfunctional-pkgs}. + +All later builds of the project also involved the removal of dependencies +identified at this point and the described restoration of the original +\code{package.json} file. + +\subsection{Elimination of unnecessary indirect dependencies} + +With all apparently-unnecessary direct dependencies identified, the remaining +indirect dependencies were tested. For it is unstraightforward to forcibly +remove an indirect dependency from npm project's dependency tree, a choice was +made to instead attempt ``dummifying'' it. The npm feature of overrides -- +mentioned in~\ref{sub:effects-of-semver} -- was used to force the npm's +resolution algorithm to always select a mocked, dummy version +``0.0.0-msc-experiment-dummy'' of a given dependency. At the same time, for the +dependency package meant to be dummified, the local server providing packages' +files and metadata on port 8080 would not respond with that package's real +metadata. Instead, it would give a response indicating that the only available +version of that package is the dummy version, which has no own dependencies. +Additionally, it would serve the corresponding dummy package tarball with only +minimal contents. + +This process of identifying project's unnecessary indirect dependencies was +analogous to that concerning direct dependencies. It involved multiple builds +-- more than a thousand in case of one npm project tested. In each build a +single tested indirect dependency -- together with the unnecessary indirect +dependencies identified previously -- was dummified. Each time the overrides +were added to project's clean \code{package.json} file. The addition of +overrides was carried out together with the removal of unnecessary direct +dependencies from \code{package.json}. Build's all npm commands had to finish +with zero status for the tested dependency to be assumed dummifiable. Each time +the \code{package-lock.json} from the last successful build was consulted to +determine the next dependency to test. Applicable dependencies were tried in +reverse alphabetical order. + +All later builds of the project also involved the dummification of indirect +dependencies identified at this point. During the entire experiment, whenever a +dependency to override already had an upstream override specified in +\code{package.json}, the original override was being removed. + +\subsection{Elimination of dependency conflicts} + +Even after the elimination of unnecessary direct and indirect dependencies, +project's dependency tree could still contain extraneous conflicting +dependencies. Subsequent builds were carried out to forcibly remove those +conflicts where possible, utilizing overrides. For every dependency that +occured multiple times in multiple versions in the tree, a build attempt was +made with an override which forced that package to be always used in the same, +single version. + +\begin{itemize} +\item + If it happened to be both a direct and indirect dependency of the project -- + it was overriden with the version that was previously used to satisfy + project's direct dependency. +\item + If it was only an indirect dependency -- it was overriden with the highest of + the versions in which it previously appeared. +\end{itemize} + +Just like before, the build was repeated to identify every dependency conflict +that -- when forcibly removed -- does not cause any npm invocation finish with +non-zero status. + +\section{Build attempt results} +\label{sec:build-attempt-results} + +Two projects were found not to actually exist as real pieces of software. I.e., +their npm packages were placeholders. Another \skippedDueToLimitationsCount{} +projects could not be tested due to limitations of experment's environment -- +they used dependency packages that are distributed through servers other than +the official npm Registry. This made the npm tool attempt downloading these +directly, which failed in a network-isolated environment. The results from +build attempts of the final \allTestedCount{} projects are presented in +Figure~\ref{fig:status-counts}. Different types of failures were classified +based on the first error reported in the build attempt. It means that, e.g., a +project with unresolvable dependencies and a missing \code{build} action was +classified as failing at the dependency resolution step. + +\begin{figure}[htpb] +\centering +\includesvg[width=\linewidth,inkscapelatex=false]{status-counts.svg} +\caption{Statuses of automated hermetized build of top npm projects.} +\label{fig:status-counts} +\end{figure} + +\subsection{Projects whose source repositories failed to be cloned} + +For projects in this category, sources could not be automatically retrieved. +Either no repository URL was included in published npm metadata of the package +version or the published URL was not valid. + +Some packages were found to provide SSH URLs to their projects' GitHub +repositories. Such URLs could not be used for anonymous cloning, despite the +repositories themselves being -- at least in some cases -- public and +anonymously cloneable through HTTP. A sample Git error message is presented in +Listing~\ref{lst:ssh-clone-fail}. It was printed upon an attempt to use the +\code{ssh://git@github.com/sinonjs/sinon.git} URL in a \code{git clone} command. + +\lstinputlisting[ + float=htpb, + caption=Error reported by Git upon an attempt to clone a repository using an + SSH URL., + label=lst:ssh-clone-fail, + numbers=none +]{ssh-clone-fail.txt} + +There was also a single case where an HTTP URL pointed at a repository that no +longer existed. Other interesting unworkable URLs were ones with a branch name +appended\footnote{e.g., \code{https://github.com/emotion-js/emotion.git\#main}}. +Some unworkable URLs were also pointing to web pages of repositories' +subdirectories\footnote{e.g., +\code{https://github.com/babel/babel/tree/master/packages/babel-core/}}. In a +vast majority of cases a correction of URL with the help of a simple regular +expression could be attempted. Interestingly, none of the tested projects were +found to use a VSC other than Git. + +\subsection{Projects whose relevant source control revisions were not found} + +For projects in this category, the git source repository could be cloned but it +contained neither the commit specified in package's metadata nor a tag +corresponding to the version number being built. Reasons included + +\begin{itemize} +\item + VCS revisions being tagged differently, e.g., \code{PACKAGE-NAME@VERSION}, +\item + particular version's tag being missing, and +\item + tags not being used altogether. +\end{itemize} + +\subsection{Projects that do not follow the conventions} +\label{sub:packages-not-following-conventions} + +Projects in this category either lacked a \code{package.json} file in +repository's root or lacked a \code{build} action. + +Size of this category seems to suggest that the conventions which we and others +\cite{goswami-reproducibility} rely upon are very loosely followed. However, +some projects classified here are trivial ones that simply do not require any +operations to be performed as part of a \code{build} action. For example, +package \code{semver}, as distributed through the npm Registry, was found to +only contain files that are present in its project's source repository. I.e., +none of the files were created or modified as part of the build process +performed by that project's developers. The files in \code{semver}'s built +package archive were found identical to those in the relevant revision of the +source repository, with the repository additionally holding some other files, +e.g., test scripts. \code{semver} does indeed not require compilation nor +similar build steps. It has no need for a \code{build} action and therefore +does not have one specified in its \code{package.json} file. + +\subsection{Projects with dependency resolution failures} +\label{sub:resolution-failures} + +Projects in this category had the \code{npm uninstall} command fail to +create or update the lockfile. The predominant source of failure is related to +peer dependency resolution, with a sample error message shown in +Listing~\ref{lst:eresolve-error}. Simplifying, peer dependencies are a feature +through which developers can forbid npm from creating a dependency conflict with +a particular package. Typically, an add-on package specifies its base package +-- which it enhances -- as its peer dependency. If the base package were +specified as add-on's casual dependency, npm's resolution algorithm could make +the add-on package use its own copy of that base package. This is typically not +the behavior the developer or user wants. Peer dependencies are a mean to +prevent it. + +\lstinputlisting[ + float=htpb, + caption=Error reported upon peer dependency resolution failure during + \code{ts-node} project build., + label=lst:eresolve-error +]{eresolve-error.txt} + +The exact behavior of peer dependencies changed through the history of npm. One +alternative package manager for the npm ecosystem -- Yarn -- is also known for +behaving different than npm in some situations. It is suspected that most of +the projects in this category could have their dependencies resolved +successfully with older version of npm or with Yarn. It was found that +\failedToResolveAndUsingYarnCount{} packages in this category do have a +\code{yarn.lock} file in the VSC, indicating their developers likely use +Yarn over npm. + +\subsection{Projects with invalid upstream lockfiles} + +The \code{npm uninstall} command was invoked during every project build to make +sure an up-to-date lockfile is in place. Despite that, for two packages a +lockfile was left behind that \code{npm ci} later reported as invalid due to +being out of sync with project's \code{package.json}. One of these projects had +a preexisting \code{package-lock.json} file and the other had a \code{yarn.lock} +file\footnote{npm also reads a \code{yarn.lock} when no other lockfile is +present}. + +\subsection{Projects that expect network access to build} +\label{sub:expect-network-access} + +Projects in this category failed to build due to unsuccessful network request +attempts other than the attempts mentioned at the beginning +of~\ref{sec:build-attempt-results}. + +The majority of build failures in this category occured when project's +development dependency was trying to download a web browser binary for +browser-based tests. Examples of other non-npm resources that projects tried to +download were font files from Google Fonts and sources for automated native +compilation of a library whose Node.js bindings package was being installed. + +It can be stated that network accesses during npm project builds are commonly +made to facilitate installation of architecture-specific software binaries, as +these are inconvenient to distribute through the architecture-agnostic npm +Registry. + +\subsection{Projects that require a build tool other than npm} + +Projects in this category are known to require either Yarn or pnpm to build. +They could be classified with certainty because either + +\begin{itemize} +\item + their \code{package.json} files contained special URLs or package names that + npm could not handle, or +\item + their build processes printed messages that explicitly informed the developer + about the need to use a particular tool. +\end{itemize} + +There are many more projects which likely rely on Yarn or pnpm but could not be +classified here with certainty, see~\ref{sub:resolution-failures}. + +\subsection{Projects with additional non-npm dependencies} + +Projects in this category need additional tools that are not installable through +npm. Unlike projects mentioned in~\ref{sub:expect-network-access}, these rely +on the developer to install the additional tool. + +Experiment logs indicated failures upon searching for Python executable and for +configuration files of popular shells. + +\subsection{Projects with other build failures} + +Projects in this category failed to build due to reasons other than those +discussed up to this point. Failures occured due to problems like missing +modules, missing variable, and an operation hanging indefinitely. + +\subsection{Projects that could be built only when using upstream lockfiles} + +Projects in this category failed to build only after their upstream lockfiles +were removed. After seemingly successfult dependency resolution, errors were +raised during TypeScript compilation. The errors almost certainly resulted from +newer versions of project's dependencies being used. This occured despite the +use of Semantic Versioning and the respecting of dependency constraints declared +by projects. + +\subsection{Projects built with both upstream and re-generated lockfiles} + +Packages in this category are considered to have been built successfully, +because all npm command invocations from the first two builds finished with zero +status. There is no guarantee that the packages built are fully functional. +For example, some projects like \code{@testing-library/react} rely on an +additional tool called semantic-release, which is not invoked as part of +\code{npm run build}. That tool is responsible for analyzing project's change +history and determining the right version number to be recorded in project's +\code{package.json} file~\cite{semantic-release}. When its use is omitted, the +built package is reported as having a placeholder version, e.g., +``0.0.0-semantically-released''. + +It is expected that a more polished and defect-free build process would often +involve a dependency tree of several more or several less packages than in this +experiment. Nonetheless, it was assumed that dependency sets found necessary +for successful \code{npm install} and \code{npm build} invocations do +represent the characteristics of the projects well enough. + +Results presented through the rest of this chapter concern the dependency trees +of projects from this very category. + +\section{Dependency trees after removals of dependencies and their conflicts} +\label{sec:trees-after-pruning} + +The sizes of the original dependency trees, produced in project builds with +upstream lockfiles removed, are shown in Figure~\ref{fig:tree-size-stats}, +together with the sizes of pruned trees. Each pair of boxes represents the +experiment at a different stage. The left box of each pair shows the average +number of project dependencies where all distinct versions of the same package +are counted. E.g., an npm package \code{foo} that occurs in a dependency tree +three times as \code{foo@1.2.3}, \code{foo@2.1.0}, and again \code{foo@2.1.0} is +counted as two. The right box of each pair shows the average number of +dependencies with all versions of a single package counted as one. E.g., the +\code{foo} introduced before is now counted as one. Standard deviation of the +sample is additionally plotted over every box. + +Individual projects' dependency tree sizes are plotted as circles over every +box. \inDebianCount{} projects were found to also have their corresponding +packages present in Debian Bookworm as of \debianTresholdDate. They are +represented by filled, black circles. No clear relation between dependency tree +sizes and presence in Debian can be seen at any stage of the experiment. Also +consult Figure \ref{fig:tree-size-stats-no-bc} for a variant of this plot that +omits builds of packages which appear to be nonfunctional due to aggressive +dependency elimination. + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false]{tree-size-stats.svg} + \caption{Dependency tree sizes of built npm projects.} + \label{fig:tree-size-stats} +\end{figure} + +\section{Dependency conflict counts} +\label{sec:dep-conflict-counts} + +Projects were further categorized by the number of dependency conflicts that +could not be removed with the method used. The categories are visualized in +Figure~\ref{fig:unflattened-multiver-counts}. Counts of all projects and counts +of projects having corresponding packages in Debian are shown. Also consult +Figure \ref{fig:unflattened-multiver-counts-no-bc} for a variant of this plot +that omits builds of packages which appear to be nonfunctional due to aggressive +dependency elimination. + +As can be seen, most of the projects had few to no remaining dependency +conflicts. Once again, there was no clear relation between the number of +remaining dependency conflicts and presence in Debian. Given this +distribution's norms, this suggest that the authors of Debian packaging likely +managed to further remove some conflicts that could not be eliminated with the +experiment's method. They possibly used more invasive methods like source code +patching. + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false]{unflattened-multiver-counts.svg} + \caption{Counts of built projects with different numbers of unremovable + dependency conflicts.} + \label{fig:unflattened-multiver-counts} +\end{figure} + +\section{Differences in build outputs produced during the experiment} + +The repeated builds with upstream lockfiles removed had their produced package +tarballs and generated \code{package-lock.json} files compared. The files +produced on two build runs were found identical in case of every successfully +built project\footnote{npm authors should be credited for making \code{npm pack} +produce tarballs without nondeterministic timestamps}. This does not yet +guarantee that the builds and dependency resolutions are reproducible. However, +it does indicate that differences found after dependency removals, etc.\ are +likely the effect of those alterations and not manifestations of builds +nondeterminism. + +It was found that \withAnyTarballsDifferentCount{} out of +\builtSuccessfullyCount{} successfully built projects had their package tarballs +differ as the result of either dependency removals, dummifications, or conflict +removals. All these cases were manually inspected. Two differences were found +to be caused by reordered \code{package.json} entries and appear to be mere +artifacts of this experiment's method of restoring project's original +\code{package.json} file before \code{npm pack} invocation. Some of the more +interesting cases are discussed below. + +\subsection{Use of a different dependency version} +\label{sub:use-of-different-dep-ver} + +Several times an alteration of the build process allowed the npm's resolution +algorithm to use a newer version of a dependency which then caused generation of +different but still correct code. One example is the \code{concurrently} +console application written in TypeScript. Package \code{typescript}, providing +a TypeScript compiler, was specified as its direct development dependency. +During the experiment this direct dependency was removed, but package +\code{typescript} still made its way to the dependency tree due to being +required by another dependency -- \code{@hirez\_io/observer-spy}. Its +constraint on \code{typescript}'s version was looser than that present before, +causing version 5.8.3 to be used instead of former 5.2.2. A sample of changes +caused by the use of that newer TypeScript compiler is presented in +Listing~\ref{lst:newer-typescript-changes}. + +\lstinputlisting[ + float=htpb, + language=diffoscope, + caption=Excerpt from diffoscope's report of differences in built + \code{concurrently} package tarballs., + label=lst:newer-typescript-changes, + numbers=none +]{newer-typescript-changes.diffoscope} + +It is worth noting that the dependency \code{@hirez\_io/observer-spy} -- even +if not necessary by itself -- could not be eliminated with this experiment's +method. + +\subsection{Inlining of a dependency} +\label{sub:inlining-of-a-dep} + +One similar case was that of built \code{axios} package, which -- besides +also showing generated code differences resulting from changed compiler/bundler +version -- had its dependency \code{proxy-from-env} treated differently, +despite always occuring in the same version 1.1.0. Initially, +\code{proxy-from-env} was specified as \code{axios}' runtime +dependency and was merely referenced from the code being generated during build. +When, as part of the experiment, \code{proxy-from-env} was removed as +project's direct dependency, it remained present in the dependency tree due to +being required by certain development dependency. \code{proxy-from-env} +was therefore itself flagged as an indirect development dependency, which made +the bundler treat it differently and inline it in \code{axios}' generated +code. + +\subsection{Digest included in the generated package} + +If project's generated files include a hash of its dependency specifications or +a similar derived value, it is an obvious source of difference in this +experiment. One of such projects is \code{ts-jest}, which places a digest +like \code{4ec902e59f1ac29ff410d624dcccf9b192920639} in a +\code{.ts-jest-digest} file inside its package tarball. + +\subsection{Apparently disfunctional built packages} +\label{sub:apparently-disfunctional-pkgs} + +Several times a change to project's dependency tree did actually cause a +significant change to the build output. In multiple cases, a removed package +could not be found by a bundler tool called Rollup, which then treated it as an +``external'' dependency than need not be bundled. Rollup merely issued a +warning about a reference to the now-absent code module and proceeded without +it. An example of this can be seen in Listing +\ref{lst:warning-module-as-external} with an excerpt from the log of +\code{rollup-plugin-typescript2} project build. +\code{rollup-plugin-typescript2} specified package \code{object-hash} as a +development dependency and had its code included in an amalgamated script file +generated by Rollup. After \code{object-hash} was removed, the invocation of +\code{rollup-plugin-typescript2}'s build action still finished with zero status, +with the generated amalgamated script file being smaller by the size of the +missing dependency. If the \code{rollup-plugin-typescript2} package built this +way were to be later used, its code would likely encounter an error when trying +to import the \code{object-hash} module. + +\lstinputlisting[ + float=htpb, + caption=The output of \code{npm run build} invocation with a missing + dependency reported by Rollup., + label=lst:warning-module-as-external +]{warning-module-as-external.txt} + +A single interesting case was that of \code{@testing-library/user-event} project +and the \code{package.json} file generated for its package tarballs. Several -- +seemingly vital -- \code{package.json} keys were no longer present after +project's \code{typescript} dependency was removed. The change caused by +\code{typescript}'s removal is shown in +Listing~\ref{lst:removed-typescript-changes}). + +\lstinputlisting[ + float=htpb, + language=diffoscope, + caption=Excerpt from diffoscope's report of differences in + \code{package.json} files inside built + \code{@testing-library/user-event} package tarballs., + label=lst:removed-typescript-changes, + numbers=none +]{removed-typescript-changes.diffoscope} + +In some cases, as subsequent dependencies of a project were eliminated, a +bundler tool combined the dependencies in a different order, making amalgamated +scripts difficult to compare with diff-like tools. There were also cases where +the size of individual generated files would increase by an order of magniture +or even go up and down during a series of builds. One suspected reason for +increasing amalgamated script size -- besides the one discussed in +\ref{sub:inlining-of-a-dep} -- is polyfilling. It is the action of replacing +newer JavaScript language constructs used by programmers with code that is +compatible with older language runtimes. An older version of a build tool would +typically aim to support more legacy runtimes, applying more polyfills and +increasing the produced script sizes as a result. Nonetheless, for the purpose +of this experiment, whenever the nature and effect of changes in a build output +were unclear, the package was considered one of the total of eight disfunctional +packages. + +\subsection{Updated statistics} + +We are interested in the relation between project's dependency tree +characteristics and its packagability for software distributions. The +statistics presented in \ref{sec:trees-after-pruning} and +\ref{sec:dep-conflict-counts} included eight projects with assumed +disfunctionalities introduced by this very experiment. Three of these do have +corresponding Debian packages. As these eight cases could make our results +deceptive, the statistics are now presented again, with problematic projects not +taken into account. Dependency tree sizes at various stages of the experiment +are presented in Figure \ref{fig:tree-size-stats-no-bc}. Projects' +categorization by the number of remaining dependency conflicts is visualized in +Figure~\ref{fig:unflattened-multiver-counts-no-bc}. + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false]{tree-size-stats-no-bc.svg} + \caption{Dependency tree sizes of built npm projects. Packages which appear + to be nonfunctional due to aggressive dependency elimination are not + included.} + \label{fig:tree-size-stats-no-bc} +\end{figure} + +\begin{figure}[htpb] + \centering + \includesvg[width=\linewidth,inkscapelatex=false] + {unflattened-multiver-counts-no-bc.svg} + \caption{Counts of built projects with different numbers of unremovable + dependency conflicts. Packages which appear to be nonfunctional due to + aggressive dependency elimination are not included.} + \label{fig:unflattened-multiver-counts-no-bc} +\end{figure} + +As one can see, even these ``cleaned'' results show no relation between +project's dependency tree sizes and its Debian presence. + +\chapter{Conclusions} + +The results of conducted experiment allow the questions stated at the beginning +of \ref{chp:experiment} to be answered. + +\section{Naming the main hindrance to packaging the npm ecosystem} +\label{sub:naming-the-hindrance} + +We expected that huge dependency trees and presence of conflicting dependencies +are the major obstacles to packaging npm projects into reproducibility-focused +software distributions. The experiment results show the contrary. If this +hypothesis were true, we would see npm projects with more complex dependency +trees less frequently packaged into Debian -- but there is no such relation. + +What are then the most likely reasons for relatively small number of software +from the npm ecosystem in Debian and GNU Guix? For the latter, the challange of +bootstrapping several popular, self-depending build tools appears relevant. +Five of these were mentioned in \ref{sub:self-depending-software}. As of +\debianTresholdDate{}, four of them -- \code{typescript}, \code{@babel/core}, +\code{rollup}, and \code{gulp} -- are present in Debian, albeit under different +names. The Debian packages of all four were also found to depend on themselves +to build. Since GNU Guix' policies make it more difficult to add self-depending +packages to the distribution, this explains the drastically different coverage +of the npm ecosystem by these system software distributions. + +Aside from that, the incompatibility of JavaScript developers' workflows with +system software distribution packages -- as highlighted +in~\ref{sec:inconvenience-of-distros} -- should be considered the major issue. + +\section{Developer-supplied lockfile being infrequently necessary} + +As found, only two tested projects could be built with an upsteam lockfile but +failed when it was re-generated. Meanwhile, \builtSuccessfullyCount{} packages +were built successfully in both ways. This is consistent with the expectations. +Repetition of the dependency resolution is not a likely source of build +failures. + +\section{Indispensibility of direct and indirect npm build dependencies} + +It was found that a non-negligible subset of both direct and indrect npm project +dependencies is unnecessary for a successful build. The effect of removal of +unnecessary direct dependencies can be comprehended by comparing the leftmost +two pairs of boxes in Figure~\ref{fig:tree-size-stats-no-bc}. There is on +average an almost triple reduction in dependency tree sizes, although with a +huge variance. The average number of direct dependencies shrank from +\allDirectDepsAvg{} with sample standard deviation of \allDirectDepsStdDev{} to +\necessaryDepsAvg{} with sample standard deviation of~\necessaryDepsStdDev{}. + +Comparing the second and third pair of boxes in Figure +\ref{fig:tree-size-stats-no-bc} shows that almost a half of projects' remaining +indirect dependencies is also not necessary during build, again with a huge +variance. The experiment's automated method of determining the unnecessary +dependencies was not perfect, as shown in~\ref{sub:use-of-different-dep-ver}, +but sufficient to allow a conclusion that during packaging, the elimination of +both kinds of dependencies can be worth attempting. + +\section{Typical dependency tree sizes of npm projects} +\label{sec:typical-dep-tree-sizes} + +The average sizes of built projects' dependency trees ranged from \origTreeMin{} +to \origTreeMax{} with sample standard deviation of~\origTreeStdDev{}, as shown +in Figure~\ref{fig:tree-size-stats-no-bc}. With the experiment's method, it was +possible to reduce the tree sizes by about a ratio of five on average. + +The final dependecy tree sizes of about $160$ are not drastically higher than +those in other software ecosystems. For example, as of \debianTresholdDate, +Debian package \code{python-xrt} was found to be built in an environment +with $180$ installed packages named \code{python-*}, as evidenced in its +\code{.buildinfo} file. + +It is worth noting that the numbers discussed here and in the following section +might be representative of only the more complex npm packages. As explained +in~\ref{sub:packages-not-following-conventions}, there can be many popular npm +projects like \code{semver} that do not require an actual \code{build} action, +likely have fewer declared dependencies, and likely only require the npm tool to +create the package tarball. + +\section{Frequency of dependency conflicts in npm projects} + +Among the npm projects built successfully, only one had no conflicting +dependencies in its original tree. This shows that dependency conflicts are +indeed a normal and accepted thing in the npm ecosystem. + +In the original dependency trees, the count of dependencies in conflict averaged +at \origTreeMultiverAvg{} and sample standard deviation +was~\origTreeMultiverStdDev{}. In case of more than half of the projects the +conflicts were completely eliminated. Several cases of unremovable conflicts +remained, as can be sees in Figure~\ref{fig:unflattened-multiver-counts-no-bc}. +However, this part of the results should not be considered entirely +representative of the real state of affairs, as explained +in~\ref{sec:dep-conflict-counts}. It is expected that through manual work the +build process of many more npm packages can be made free of dependency +conflicts. + +\section{Package disfunctionality caused by dependency tree reduction} + +As witnessed in~\ref{sub:apparently-disfunctional-pkgs}, there is a +non-negligible number of cases where forced removal of direct or indirect +dependencies causes built package to lack important pieces of code or have other +deficiencies. Many of these problems were caused by Rollup bundler's liberal +treatment of missing code modules and could be automatically detected, for +example by searching the build logs for specific strings. + +Nevertheless, the risk of building disfunctional packages appears relatively +high, which is not acceptable if this experiment's method were to be used for +preparation of package recipes in a reproducibility-oriented software +distribution. Since in more than half of all cases the diffoscope's reports on +built package differences were found comprehensible, it is advisable to manually +investigate dependency removals whose effects are unclear. + +Additionally, the method itself proved to have a weakness of allowing a removed +direct dependency to still appear as an indirect dependency, as shown in +\ref{sub:use-of-different-dep-ver} and~\ref{sub:inlining-of-a-dep}. Although +this does not appear to have lead to built packages' disfunctionalities during +the experiment, it is a space for improvement. One simple solution would be to +eliminate direct dependencies through dummification, as it was already done with +indirect ones. + +\section{Relevance of npm package distribution tags for successful dependency resolution} + +The dependency resolution failures described in \ref{sub:resolution-failures} +were all manually analyzed and none was found to be caused by a dependency +specification referencing a distribution tag omitted in the experiment. Four of +the built projects were found to have a direct or indirect dependency specified +by the \code{latest} tag. Among others, \code{typescript} -- the most popular +npm package according to the ranking in~\ref{chp:most-popular-dev-deps} -- +requires its direct development dependency \code{@types/node} to be in version +tagged \code{latest}. + +Concluding, the special \code{latest} tag should be present in npm +dependency metadata to avoid needless dependency resolution failures. +Fortunately, it can usually be derived from the available package versions. All +other tags can in the vast majority of cases be omitted from the dependency +resolution matadata, removing the need to rely on external, mutable npm +distribution tags information. + +\section{Prototype for npm dependency resolution under Paradigm 3} + +The experiment's environment resembled that proposed in \ref{sec:paradigm-3} for +Paradigm 3 for hermeticity and reproducibility. The approach with a host-side +service performing requests on behalf of the isolated guest was indeed workable. +The experiment also showed that this prototype could benefit from added ability +to provide the guested npm process with dependency package files hosted on +different sites than just the npm Registry. This would require additional work +to have npm's package tarball requests reach the locally-running service. A +solution could involve configuring npm to use a TLS-enabled HTTP proxy in the +likes of mitmproxy~\cite{mitmproxy}. While burdensome, it should be workable. + +At the same time, obtained results did not contain the expected indicators that +Paradigm 1 -- and Paradigm 2 with flat input metadata of the dependency +resolution step -- is insufficient in practice for handling the complex npm +ecosystem. This means that new paradigms, as proposed in this work, are not +necessary for further progress in the field of reproducible software builds. +However, paradigms 3 and 4 can still prove useful in addressing the +bootstrappability and developer usefulness issues named +in~\ref{sub:naming-the-hindrance}. + +\chapter{Summary} + +Throughout the course of this work it was found that software industry shows +some modest interest in reproducible builds. Practical difficulties in applying +reproducibility to software projects hinder popularisation of this security +measure. Software developed around popular technologies must become easier to +rebuild hermetically and to test for reproducibility. This will allow +reproducible builds to be more broadly recommended and mandated. + +Even though the concept of end user verification of build reproducibility offers +increase in security confidence, years after 2018 saw little progress in its +application. Due to the issues of rebuilder lag and occasional build +nondeterminism, continuous tests performed independently of end users should be +considered a more practically viable security measure. + +Even when build reproducibility is aimed and tested for, software distributions' +approaches differ. Metadata used to reproduce Debian packages was found +insufficient to also reproducibly verify the results of dependency resolutions +that package builds relied on. This is not a severe vulnerability. However, it +motivates increased interest in purely functional package managers, whose design +excludes the possibility of such ``verification hole'' occuring. + +Contrary to intuition, traditional software packaging scheme of Debian can be +applicable even to npm software with complex dependency graphs. One could still +attempt to utilize suggested Paradigm 3 or 4 to replace existing approaches of +Debian and GNU Guix. However, such efforts would offer no certain benefit. + +Although npm packages tend to have large dependency tree sizes and conflicting +dependencies, this is not the ultimate reason for almost zero coverage of the +npm ecosystem by GNU Guix. Instead, the issues of package bootstrappability +appear to be the determining factor. These, however, are practically solvable. + +The packages in reproducible software distributions must be bridged with +developers' preferred workflows. If this does not happen, the distributions +will not only be slow in including software from the npm Registry and similar +repositories. The software already in those distributions will fail to bring +the security benefits that it could. + +As long speculated, much of declared dependencies of a typical npm project are +not needed to build it. It was found that many indirect dependencies are also +unnecessary. Their omission is crucial both to simplify packaging into software +distributions and to reduce the software supply chain attack surface. + +\chapter{Future work} + +During npm project builds analysis it was found that projects exist which +require no code transformations during build. One such case is described in +detail in~\ref{sub:packages-not-following-conventions}. If identified, +projects from this category could be packaged hermetically and reproducibly with +minimal effort. Automated identification of such projects could be a future +research goal. + +After the experiment, bootstrappability was named a likely major reason for +small coverage of the npm ecosystem by GNU Guix. The finding of viable and +optimal bootstrap chains of npm packages could therefore be the subject of +another research. + +Paradigms 3 and 4 for hermeticity and reproducibility were proposed to address +the issue of incomprehensibly complex dependency relations between npm packages. +It was found that in the context of reproducible builds, the issue is resolvable +even without employing these paradigms. However, it is yet to be checked -- +possibly in a new work -- whether these paradigms can actually make software +packaging process less labor-intensive and therefore more efficient. + +This work touches the topic of securing the inputs of software builds. The +applicability of methods like the suggested canaries could be further +investigated. + +A subset of tested projects did not have their VCS revisions tagged in the +expected way. The tagging habits of developers and means of automated +identification of VCS revisions corresponding to releases could be researched. +A possible approach to solving the problem of missing VCS tags could involve +comparing commit dates with package version release dates. If devised, a +successful method would benefit VCS-based software packaging, which appears +desirable in the light of the XZ backdoor. + +npm developers are not incentivized make their software easily bootstrappable. +Proof of concept of Ken Thompson's Trusting Trust attack~\cite{Thompson:1984} +could be presented for one or more popular npm packages. It could help raise +awareness of the supply chain issues and make the community interested in +rebuildability and ultimately bootstrappability. The PoC could be a +self-implanting backdoor in one of the self-depending builds tool. + +\clearpage + +\phantomsection{} +\addcontentsline{toc}{chapter}{\refname} +\printbibliography + +\end{document} diff --git a/ecosystems-state.svg b/ecosystems-state.svg new file mode 100644 index 0000000..b810bf3 --- /dev/null +++ b/ecosystems-state.svg @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="ecosystems-state.svg" + xml:space="preserve" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="0.39212756" + inkscape:cx="281.79605" + inkscape:cy="396.55463" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer2" + showgrid="false"><inkscape:page + x="0" + y="0" + width="799.99994" + height="399.99997" + id="page3" + margin="0" + bleed="0" /></sodipodi:namedview><defs + id="defs1"><inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /><inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /><inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /><mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /></defs><g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Layer 1"><rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="400" + x="0" + y="0" /></g><g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Layer 2"><path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 400,0 V 400" + id="path1" + sodipodi:nodetypes="cc" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="127.07019" + height="115.51823" + xlink:href="Guix_logo.svg" + id="image1" + x="5.564146" + y="68.151047" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="81.57" + height="108.0975" + xlink:href="Debian-OpenLogo.svg" + id="image1-9" + x="185.97008" + y="187.18048" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="122.84196" + height="47.771873" + xlink:href="Npm-logo.svg" + id="image1-92" + x="608.20905" + y="169.74603" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="139.56151" + height="104.66776" + xlink:href="PyPI_logo.svg" + id="image1-5" + x="517.73932" + y="269.11166" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="79.5" + height="79.5" + xlink:href="Rust_programming_language_black_logo.svg" + id="image1-97" + x="492.75916" + y="55.464577" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="93.239601" + height="23.584133" + xlink:href="Apache_Maven_logo.svg" + id="image1-93" + x="703.33923" + y="62.980309" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="99.066223" + height="31.086306" + xlink:href="NixOS_logo.svg" + id="image1-8" + x="193.4281" + y="51.296772" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="57.286434" + height="75.859772" + xlink:href="composer-seeklogo.svg" + id="image1-2" + x="739.70331" + y="271.33752" /><image + preserveAspectRatio="none" + inkscape:svg-dpi="96" + width="129.81783" + height="43.146473" + xlink:href="Archlinux-logo-standard-version.svg" + id="image1-54" + x="95.281647" + y="328.89304" /></g><g + id="g1" + inkscape:groupmode="layer" + inkscape:label="1" + transform="matrix(0.75000004,0,0,0.75000003,809.99997,0)"><g + id="g5"><rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.4;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + id="rect5" + width="165.77016" + height="63.941185" + x="-600.34351" + y="200.82085" + transform="translate(3.9999998e-5)" /><text + xml:space="preserve" + style="font-size:16.5px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#222222;fill-opacity:1;stroke:none;stroke-width:0.3;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + x="421.24911" + y="195.50574" + id="text5" + transform="matrix(1.3333332,0,0,1.3333332,-1079.9999,0)"><tspan + sodipodi:role="line" + id="tspan5" + style="font-size:16.5px;fill:#222222;fill-opacity:1;stroke:none;stroke-width:0.3" + x="421.03162" + y="195.50574">Pakowanie</tspan></text><path + id="path1-6" + style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#555555;stroke-width:6.04097;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m -595.99894,185.24307 -58.99362,34.09837 58.99362,34.03943 v -23.00758 h 154.88817 V 208.2507 h -154.88817 z" /></g><g + id="path2-2" + transform="scale(-1.3333333)" /></g></svg> diff --git a/ecosystems-state.svg.license b/ecosystems-state.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/ecosystems-state.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/eresolve-error.txt b/eresolve-error.txt new file mode 100644 index 0000000..7276dab --- /dev/null +++ b/eresolve-error.txt @@ -0,0 +1,27 @@ +npm error code ERESOLVE +npm error ERESOLVE could not resolve +npm error +npm error While resolving: typedoc@0.22.10 +npm error Found: typescript@4.7.4 +npm error node_modules/typescript +npm error peer typescript@">=2.7" from ts-node@10.5.0 +npm error node_modules/ts-node +npm error ts-node@"^10.2.1" from typescript-json-schema@0.53.0 +npm error node_modules/typescript-json-schema +npm error dev typescript-json-schema@"^0.53.0" from the root project +npm error dev typescript@"4.7.4" from the root project +npm error +npm error Could not resolve dependency: +npm error peer typescript@"4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" from typedoc@0.22.10 +npm error node_modules/typedoc +npm error dev typedoc@"^0.22.10" from the root project +npm error +npm error Conflicting peer dependency: typescript@4.5.5 +npm error node_modules/typescript +npm error peer typescript@"4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" from typedoc@0.22.10 +npm error node_modules/typedoc +npm error dev typedoc@"^0.22.10" from the root project +npm error +npm error Fix the upstream dependency conflict, or retry +npm error this command with --force or --legacy-peer-deps +npm error to accept an incorrect (and potentially broken) dependency resolution. diff --git a/eresolve-error.txt.license b/eresolve-error.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/eresolve-error.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/experiment-activity.svg b/experiment-activity.svg new file mode 100644 index 0000000..40a03dc --- /dev/null +++ b/experiment-activity.svg @@ -0,0 +1,2108 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="657.15155pt" + viewBox="0 0 800.00001 657.15154" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="experiment-activity.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="0.41062523" + inkscape:cx="720.85196" + inkscape:cy="624.65719" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /> + <marker + style="overflow:visible" + id="ArrowWide-7" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-0" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-6" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-9" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-20" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-2" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-28" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-4" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-5" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-6" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-32" /> + </marker> + <marker + style="overflow:visible" + id="ArrowWide-7-0-9" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path4-5-6-3" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="657.151" + x="0" + y="-5.6843419e-14" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 395.782,105.76773 V 656.8107" + id="path1" + sodipodi:nodetypes="cc" /> + <g + id="g17-3" + transform="translate(38.966599,-68.74307)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text16-56"><tspan + sodipodi:role="line" + id="tspan16-2" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">reset git repository</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect16-9" + width="108.56" + height="14.5" + x="6.4664807" + y="214.58408" /> + </g> + <g + id="g24" + transform="translate(39.460439,-111.98708)"> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect24" + width="117.253" + height="14.5" + x="1.6261431" + y="296.92108" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.414585" + y="307.17126" + id="text16-56-5"><tspan + sodipodi:role="line" + id="tspan16-2-2" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197083" + y="307.17126">checkout git revision</tspan></text> + </g> + <g + id="g27" + transform="translate(39.049119,100.59658)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.608418" + y="225.14755" + id="text26"><tspan + sodipodi:role="line" + id="tspan26" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.608418" + y="225.14755">delete upstream</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.390915" + y="238.7413" + id="tspan59">lockfiles (if any)</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect26" + width="96.509003" + height="27.466999" + x="12.40946" + y="215.21074" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 99.71308,291.21398 v 22.5933" + id="path6-1" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-9)" + d="m 99.71308,343.27432 v 22.5933" + id="path6-7" /> + <g + id="g41" + transform="translate(39.070149,188.48349)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.393566" + y="225.13281" + id="text41"><tspan + sodipodi:role="line" + id="tspan41" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="225.13281">attempt dependency</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="238.72656" + id="tspan20">resolution, installation</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.176067" + y="252.32031" + id="tspan31">and building</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect41" + width="123.486" + height="46.284" + x="-1.1000714" + y="212.58438" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-2)" + d="m 99.71308,447.35187 v 22.5933" + id="path6-3" /> + <g + id="g44" + transform="translate(39.070369,297.50803)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text44"><tspan + sodipodi:role="line" + id="tspan44" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">create and save</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="238.42801" + id="tspan45">package tarball</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect44" + width="91.448997" + height="30.202" + x="14.918223" + y="213.52995" /> + </g> + <g + id="g55" + transform="translate(39.075679,352.30303)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text46"><tspan + sodipodi:role="line" + id="tspan46" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">save lockfile</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan55">for analysis</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect46" + width="91.448997" + height="30.202" + x="14.912911" + y="213.52995" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-6)" + d="m 99.71309,541.23998 v 22.5933" + id="path6-15" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 99.71308,160.341 v 22.5933" + id="path5" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 99.71308,199.434 v 22.59331" + id="path6" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 697.99918,190.1901 v 22.5933" + id="path64" /> + <g + id="g65" + transform="translate(637.2527,0.19903021)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text65"><tspan + sodipodi:role="line" + id="tspan65" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">reset git repository</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect65" + width="108.56" + height="14.5" + x="6.4664807" + y="214.58408" /> + </g> + <g + id="g66" + transform="translate(637.74654,-43.04498)"> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect66" + width="117.253" + height="14.5" + x="1.6261431" + y="296.92108" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.414585" + y="307.17126" + id="text66"><tspan + sodipodi:role="line" + id="tspan66" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197083" + y="307.17126">checkout git revision</tspan></text> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 697.99918,320.43611 v 22.5933" + id="path68" /> + <g + id="g71" + transform="matrix(1,0,0,1.0000045,635.01643,114.51294)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="393.72845" + y="311.68646" + id="text71" + transform="matrix(0.99999998,0,0,0.99999548,-330.91563,-70.920058)"><tspan + sodipodi:role="line" + id="tspan69" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="311.68646">apply package.json</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="325.28021" + id="tspan70">changes verified not</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="338.87396" + id="tspan71">to cause breakage</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect71" + width="125.114" + height="41.686813" + x="0.42574725" + y="230.51512" /> + </g> + <g + id="g73" + transform="translate(637.38811,172.13171)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text73"><tspan + sodipodi:role="line" + id="tspan72" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">override</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan73">another conflict</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect73" + width="92.685997" + height="25.985001" + x="14.268073" + y="214.5844" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-9)" + d="m 697.99918,412.7011 v 22.5933" + id="path73" /> + <g + id="g76" + transform="translate(637.35625,224.71002)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.393566" + y="225.13281" + id="text76"><tspan + sodipodi:role="line" + id="tspan74" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="225.13281">attempt dependency</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="238.72656" + id="tspan75">resolution, installation</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.176067" + y="252.32031" + id="tspan76">and building</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect76" + width="123.486" + height="46.284" + x="-1.1000714" + y="212.58438" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-2)" + d="m 697.99918,483.57839 v 22.5933" + id="path76" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-4)" + d="m 697.99918,522.67134 v 22.5933" + id="path77" /> + <g + id="g78" + transform="translate(637.35646,333.7344)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text78"><tspan + sodipodi:role="line" + id="tspan77" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">create and save</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="238.42801" + id="tspan78">package tarball</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect78" + width="91.448997" + height="30.202" + x="14.918223" + y="213.52995" /> + </g> + <g + id="g80" + transform="translate(637.36177,388.52939)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text80"><tspan + sodipodi:role="line" + id="tspan79" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">save lockfile</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan80">for analysis</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect80" + width="91.448997" + height="30.202" + x="14.912911" + y="213.52995" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-6)" + d="m 697.99918,577.46634 v 22.5933" + id="path80" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="M 697.99918,229.28311 V 251.8764" + id="path82" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 697.99918,268.37611 v 22.59331" + id="path83" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 626.2456,182.93969 h 19.62408" + id="path58" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 620.94283,510.11834 620.9423,190.24269" + id="path56" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 665.16568,515.42133 -36.92037,3.5e-4" + id="path84" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="657.20477" + y="512.76764" + id="text85"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="656.98724" + y="512.76764" + id="tspan85">no</tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 620.94211,611.85738 2.1e-4,-89.13198" + id="path7" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 652.27468,617.16068 H 628.24531" + id="path86" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="757.69611" + y="179.78564" + id="text88"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="757.47858" + y="179.78564" + id="tspan88">no</tspan></text> + <g + id="g90" + transform="translate(220.65448,-134.11744)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="158.54024" + id="text89"><tspan + sodipodi:role="line" + id="tspan89" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="158.54024">locate and clone</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="172.13399" + id="tspan95">git repository</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect89" + width="96.254997" + height="28.093" + x="12.727622" + y="148.29044" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="M 99.71309,86.047991 V 108.64129" + id="path90" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-4)" + d="m 99.71308,238.52699 v 22.5933" + id="path91" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="47.606808" + y="624.72363" + id="text92"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="47.389309" + y="624.72363" + id="tspan92">no</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="132.69223" + y="22.956636" + id="text96"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="132.47473" + y="22.956636" + id="tspan96">yes</tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-2)" + d="m 99.71309,596.03498 v 22.5933" + id="path96" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 55.567589,627.87798 h -33.10859 v -511.933 l 69.951001,-3e-4" + id="path101" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 143.85859,627.87799 80.32041,-3e-5" + id="path102" + sodipodi:nodetypes="cc" /> + <g + id="g105" + transform="translate(637.33522,77.758371)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.608418" + y="225.14755" + id="text105"><tspan + sodipodi:role="line" + id="tspan104" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.608418" + y="225.14755">delete upstream</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.390915" + y="238.7413" + id="tspan105">lockfiles (if any)</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect105" + width="96.509003" + height="27.466999" + x="12.40946" + y="215.21074" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 57.631,277.16728 -19.661,10e-6 v 96.00369 h 54.44" + id="path105" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0-9)" + d="m 750.12897,182.9401 19.661,-1e-5 V 93.435" + id="path105-0" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="49.670406" + y="274.01364" + id="text107"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.452908" + y="274.01364" + id="tspan107">no</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="140.11481" + y="228.12263" + id="text108"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="139.89731" + y="228.12263" + id="tspan108">no</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="184.5238" + y="44.560638" + id="text108-6"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="184.3063" + y="44.560638" + id="tspan108-9">no</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="154.49539" + y="622.61566" + id="text109"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="154.27789" + y="622.61566" + id="tspan109">yes</tspan></text> + <g + id="g111" + transform="translate(-223.5501,-225.63112)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text111"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan111">success?</tspan></text> + <path + id="rect111" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <g + id="g112" + transform="translate(-299.79299,-22.57363)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text112"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan112">success?</tspan></text> + <path + id="path112" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect91-4" + width="7.5" + height="7.5" + x="179.49068" + y="-69.348633" + transform="rotate(45)" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect113" + width="7.5" + height="7.5" + x="148.74306" + y="7.7274642" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 99.71308,121.24798 v 22.5933" + id="path114" /> + <g + id="g115" + transform="translate(-501.40013,-65.06642)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="600.98004" + y="339.49075" + id="text114"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="600.98004" + y="339.49075" + id="tspan114">built at</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="600.76251" + y="353.0845" + id="tspan115">least once?</tspan></text> + <path + id="path115" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 629.14757,328.1864 14.04658,14.04731 -14.04658,14.04669 h -56.06871 l -14.04742,-14.0467 14.04742,-14.0473 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect115" + width="7.5" + height="7.5" + x="330.62973" + y="189.61414" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-9)" + d="m 99.71308,378.47457 v 22.5933" + id="path116" /> + <g + id="g117" + transform="translate(-299.99211,374.12295)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text116"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan116">built 3 times?</tspan></text> + <path + id="path117" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 436.6007,246.50504 7.25,7.25 -7.25,7.25 h -73.791 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-4)" + d="m 99.71309,486.44486 v 22.5933" + id="path118" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 132.54659,479.195 h 43.40921 l 2e-4,-240.6143" + id="path119" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="140.11478" + y="476.04065" + id="text119"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="139.89728" + y="476.04065" + id="tspan119">no</tspan></text> + <g + id="g120" + transform="translate(-299.79298,225.34424)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text120"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan120">success?</tspan></text> + <path + id="path120" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 132.54658,231.27699 36.105,10e-6" + id="path121" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect121" + width="7.5" + height="7.5" + x="284.2074" + y="35.367661" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="M 175.95626,225.97369 175.95597,90.488491" + id="path122" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect5" + width="7.5" + height="7.5" + x="871.72125" + y="-6.4237165" + transform="rotate(45)" /> + <g + id="g33" + transform="translate(298.49311,261.57072)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text25"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan25">success?</tspan></text> + <path + id="path27" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect56" + width="7.5" + height="7.5" + x="799.78107" + y="-78.364731" + transform="rotate(45)" /> + <g + id="g57" + transform="translate(298.32584,-70.81494)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text56"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan56">untested conflit?</tspan></text> + <path + id="path57" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 444.55284,246.50504 7.25,7.25 -7.25,7.25 h -89.759 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect58" + width="7.5" + height="7.5" + x="564.68079" + y="-313.46503" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 500.60111,198.04022 v 22.5933" + id="path60" /> + <g + id="g60" + transform="translate(439.85463,8.0490302)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text60"><tspan + sodipodi:role="line" + id="tspan60" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">reset git repository</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect60" + width="108.56" + height="14.5" + x="6.4664807" + y="214.58408" /> + </g> + <g + id="g61" + transform="translate(440.34847,-35.19498)"> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect61" + width="117.253" + height="14.5" + x="1.6261431" + y="296.92108" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.414585" + y="307.17126" + id="text61"><tspan + sodipodi:role="line" + id="tspan61" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197083" + y="307.17126">checkout git revision</tspan></text> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 500.60111,328.28611 v 22.5933" + id="path61" /> + <g + id="g64" + transform="matrix(1,0,0,1.0000045,437.61836,122.36294)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="393.72845" + y="311.68646" + id="text64" + transform="matrix(0.99999998,0,0,0.99999548,-330.91563,-70.920058)"><tspan + sodipodi:role="line" + id="tspan62" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="311.68646">apply package.json</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="325.28021" + id="tspan63">changes verified not</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="338.87396" + id="tspan64">to cause breakage</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect64" + width="125.114" + height="41.686813" + x="0.42574725" + y="230.51512" /> + </g> + <g + id="g68" + transform="translate(439.99004,179.98172)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.093548" + y="225.4637" + id="text68"><tspan + sodipodi:role="line" + id="tspan67" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.093548" + y="225.4637">dummify another</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="59.876049" + y="239.05745" + id="tspan68">dependency</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect68" + width="101.872" + height="28.851999" + x="9.6750689" + y="214.5844" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-9)" + d="m 500.60111,423.41811 v 22.5933" + id="path69" /> + <g + id="g83" + transform="translate(439.95818,235.42703)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.393566" + y="225.13281" + id="text83"><tspan + sodipodi:role="line" + id="tspan81" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="225.13281">attempt dependency</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="238.72656" + id="tspan82">resolution, installation</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.176067" + y="252.32031" + id="tspan83">and building</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect83" + width="123.486" + height="46.284" + x="-1.1000714" + y="212.58438" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-2)" + d="m 500.60111,494.29539 v 22.5933" + id="path85" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-4)" + d="m 500.60111,533.38834 v 22.5933" + id="path88" /> + <g + id="g91" + transform="translate(439.95839,344.4514)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text91"><tspan + sodipodi:role="line" + id="tspan90" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">create and save</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="238.42801" + id="tspan91">package tarball</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect91" + width="91.448997" + height="30.202" + x="14.918223" + y="213.52995" /> + </g> + <g + id="g97" + transform="translate(439.9637,399.24639)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text97"><tspan + sodipodi:role="line" + id="tspan94" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">save lockfile</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan97">for analysis</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect97" + width="91.448997" + height="30.202" + x="14.912911" + y="213.52995" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-6)" + d="m 500.60111,588.18334 v 22.5933" + id="path97" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 500.60111,237.13311 v 22.5933" + id="path98" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 500.60111,276.22611 v 22.59331" + id="path99" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 428.84771,182.93923 12.663,4.3e-4" + id="path100" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 423.54442,520.83582 423.544,188.24248" + id="path103" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 467.76761,526.13833 -36.92037,3.5e-4" + id="path104" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="459.8067" + y="523.48462" + id="text113"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="459.5892" + y="523.48462" + id="tspan113">no</tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 423.54404,622.57438 2.1e-4,-89.13198" + id="path123" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 454.87661,627.87768 H 430.84724" + id="path124" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="M 557.69151,182.93967 H 613.64" + id="path125" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="565.25891" + y="179.78564" + id="text125"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="565.04138" + y="179.78564" + id="tspan125">no</tspan></text> + <g + id="g127" + transform="translate(439.93715,85.608371)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.608418" + y="225.14755" + id="text127"><tspan + sodipodi:role="line" + id="tspan126" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.608418" + y="225.14755">delete upstream</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.390915" + y="238.7413" + id="tspan127">lockfiles (if any)</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect127" + width="96.509003" + height="27.466999" + x="12.40946" + y="215.21074" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect128" + width="7.5" + height="7.5" + x="739.7179" + y="140.73564" + transform="rotate(45)" /> + <g + id="g128" + transform="translate(101.09506,272.28773)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text128"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan128">success?</tspan></text> + <path + id="path128" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect129" + width="7.5" + height="7.5" + x="667.77771" + y="68.79541" + transform="rotate(45)" /> + <g + id="g129" + transform="translate(100.92778,-62.96482)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.12387" + y="242.10735" + id="text129"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.12387" + y="242.10735" + id="tspan129">untested indirect</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="398.90637" + y="255.7011" + id="tspan131">dependency?</tspan></text> + <path + id="path129" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 441.66284,230.80304 15.1009,15.10145 -15.1009,15.10055 h -83.979 l -15.1011,-15.10056 15.1011,-15.10144 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect130" + width="7.5" + height="7.5" + x="425.09839" + y="-173.88367" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 307.72524,198.03949 v 22.5933" + id="path131" /> + <g + id="g132" + transform="translate(246.97876,8.0490302)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text132"><tspan + sodipodi:role="line" + id="tspan132" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">reset git repository</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect132" + width="108.56" + height="14.5" + x="6.4664807" + y="214.58408" /> + </g> + <g + id="g133" + transform="translate(247.4726,-35.19498)"> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect133" + width="117.253" + height="14.5" + x="1.6261431" + y="296.92108" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.414585" + y="307.17126" + id="text133"><tspan + sodipodi:role="line" + id="tspan133" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197083" + y="307.17126">checkout git revision</tspan></text> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 307.72524,328.28609 V 350.8794" + id="path133" /> + <g + id="g136" + transform="matrix(1,0,0,1.0000045,244.74249,122.36294)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="393.72845" + y="311.68646" + id="text136" + transform="matrix(0.99999998,0,0,0.99999548,-330.91563,-70.920058)"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="311.68646" + id="tspan135">apply removals</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="325.28021" + id="tspan136">verified not to</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="393.72845" + y="338.87396" + id="tspan160">cause breakage</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect136" + width="99.525002" + height="41.686813" + x="13.220252" + y="230.51511" /> + </g> + <g + id="g138" + transform="translate(424.37518,309.72764)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="-117.36129" + y="95.717758" + id="text138"><tspan + sodipodi:role="line" + id="tspan137" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="-117.36129" + y="95.717758">remove another</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="-117.57879" + y="109.31151" + id="tspan138">dependency</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect138" + width="95.139" + height="28.851999" + x="-164.21945" + y="84.838463" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-9)" + d="m 307.72524,423.4181 v 22.59331" + id="path138" /> + <g + id="g141" + transform="translate(247.08231,235.42701)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.393566" + y="225.13281" + id="text141"><tspan + sodipodi:role="line" + id="tspan139" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="225.13281">attempt dependency</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.393566" + y="238.72656" + id="tspan140">resolution, installation</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.176067" + y="252.32031" + id="tspan141">and building</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect141" + width="123.486" + height="46.284" + x="-1.1000714" + y="212.58438" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-2)" + d="m 307.72524,494.29539 v 22.5933" + id="path141" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-4)" + d="m 307.72524,533.38834 v 22.5933" + id="path142" /> + <g + id="g143" + transform="translate(247.08252,344.45138)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text143"><tspan + sodipodi:role="line" + id="tspan142" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">create and save</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197098" + y="238.42801" + id="tspan143">package tarball</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect143" + width="91.448997" + height="30.202" + x="14.918223" + y="213.52995" /> + </g> + <g + id="g145" + transform="translate(247.08783,399.24638)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text145"><tspan + sodipodi:role="line" + id="tspan144" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">save lockfile</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan145">for analysis</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect145" + width="91.448997" + height="30.202" + x="14.912911" + y="213.52995" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-6)" + d="m 307.72524,588.18334 v 22.5933" + id="path145" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 307.72524,237.13309 v 22.5933" + id="path146" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="M 307.72524,276.22609 V 298.8194" + id="path147" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 236.78559,182.93821 16.37141,7.2e-4" + id="path148" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 231.48226,520.83578 2e-5,-330.59439" + id="path149" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 274.89174,526.13833 -36.10674,3.5e-4" + id="path150" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="266.93082" + y="523.48462" + id="text150"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="266.71332" + y="523.48462" + id="tspan150">no</tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 231.48234,622.57438 2.1e-4,-89.13198" + id="path151" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 262.00074,627.87768 H 238.785" + id="path152" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 360.29364,182.93894 55.94736,-1e-5" + id="path153" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="367.86105" + y="179.78464" + id="text153"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="367.64355" + y="179.78464" + id="tspan153">no</tspan></text> + <g + id="g155" + transform="translate(247.06128,85.608371)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.608418" + y="225.14755" + id="text155"><tspan + sodipodi:role="line" + id="tspan154" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.608418" + y="225.14755">delete upstream</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.390915" + y="238.7413" + id="tspan155">lockfiles (if any)</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect155" + width="96.509003" + height="27.466999" + x="12.40946" + y="215.21074" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect156" + width="7.5" + height="7.5" + x="603.90948" + y="276.54404" + transform="rotate(45)" /> + <g + id="g156" + transform="translate(-91.780825,272.28771)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.59103" + y="257.80927" + id="text156"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.37354" + y="257.80927" + id="tspan156">success?</tspan></text> + <path + id="path156" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 425.08957,246.60062 7.25,7.25 -7.25,7.25 h -51.167 l -7.25,-7.25001 7.25,-7.25 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect157" + width="7.5" + height="7.5" + x="531.96924" + y="204.60384" + transform="rotate(45)" /> + <g + id="g158" + transform="translate(-91.948105,-62.96554)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.12387" + y="242.10735" + id="text158"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="399.12387" + y="242.10735" + id="tspan157">untested direct</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="398.90637" + y="255.7011" + id="tspan158">dependency?</tspan></text> + <path + id="path158" + style="fill:none;stroke:#555555;stroke-linejoin:round;stroke-miterlimit:2.3" + d="m 437.14084,230.80303 15.1009,15.10145 -15.1009,15.10055 h -74.935 l -15.1011,-15.10056 15.1011,-15.10144 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect158" + width="7.5" + height="7.5" + x="289.28955" + y="-38.075844" + transform="rotate(45)" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="M 181.25949,83.185491 759.54,83.185001" + id="path160" + sodipodi:nodetypes="cc" /> + <use + x="0" + y="0" + xlink:href="#path1" + id="use161" + transform="translate(197.398,0.34086324)" /> + <g + id="g162" + transform="translate(346.37103,-133.55784)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.467697" + y="160.6483" + id="text162"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.467697" + y="160.6483" + id="tspan162">determine project</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.250195" + y="174.24205" + id="tspan163">version to test</tspan></text> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect73-3" + width="103.907" + height="25.985001" + x="8.9016209" + y="150.39844" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 355.27265,29.833091 h -22.593" + id="path162" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="299.28796" + y="128.04395" + id="text167"><tspan + sodipodi:role="line" + id="tspan165" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="299.28796" + y="128.04395">direct dependencies</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="299.28796" + y="141.6377" + id="tspan168">removal stage</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="299.28796" + y="155.23145" + id="tspan166" /><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="299.28796" + y="168.8252" + id="tspan167" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="494.01657" + y="128.04395" + id="text172"><tspan + sodipodi:role="line" + id="tspan169" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="494.01657" + y="128.04395">indirect dependencies</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="493.79907" + y="141.6377" + id="tspan172">dummification stage</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="688.93384" + y="128.04395" + id="text174"><tspan + sodipodi:role="line" + id="tspan173" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="688.93384" + y="128.04395">idependency conflicts</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="688.71631" + y="141.6377" + id="tspan174">removal stage</tspan></text> + <g + id="g176" + transform="translate(295.13253,119.68713)"> + <circle + style="fill:none;stroke:#212121;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + id="circle175" + cx="474.65744" + cy="-36.502129" + r="7.25" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + id="circle176" + cx="474.65744" + cy="-36.502129" + r="5" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 483.7731,29.833091 h -22.593" + id="path177" + sodipodi:nodetypes="cc" /> + <g + id="g179" + transform="translate(49.566171,-129.06579)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="49.759499" + y="199.37865" + id="text179"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.759499" + y="199.37865" + id="tspan179">create isolated</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.541996" + y="212.9724" + id="tspan182">environment</tspan></text> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect179" + width="103.907" + height="25.985001" + x="-1.8065789" + y="189.12878" /> + </g> + <g + id="g181" + transform="translate(38.857971,-90.335447)"> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect181" + width="103.907" + height="25.985001" + x="8.9016209" + y="150.39844" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 175.95597,35.469501 v 40.41299" + id="path182" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0" + x="173.69397" + y="143.54532" + id="text183"><tspan + sodipodi:role="line" + id="tspan183" + style="stroke-width:1" + x="173.69397" + y="143.54532"></tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7-0)" + d="m 143.12247,28.219491 -43.40947,10e-6 v 29.84399" + id="path184" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999997, 0.999997;stroke-dashoffset:0;marker-end:url(#ArrowWide-7)" + d="m 233.3821,28.219501 h -22.593" + id="path185" + sodipodi:nodetypes="cc" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:#212121;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + id="circle174" + cx="491.0231" + cy="29.833088" + r="7.25" /> + <path + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 203.298,656.65146 V 105.60849 L 800,106.102" + id="path186" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="111.35023" + y="247.61763" + id="text186"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="111.13274" + y="247.61763" + id="tspan186">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="111.35023" + y="300.30463" + id="text186-1"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="111.13273" + y="300.30463" + id="tspan186-8">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="111.35023" + y="495.53564" + id="text186-0"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="111.13273" + y="495.53564" + id="tspan186-2">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="319.36224" + y="542.47864" + id="text186-9"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="319.14474" + y="542.47864" + id="tspan186-22">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="319.36224" + y="207.12964" + id="text186-3"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="319.14474" + y="207.12964" + id="tspan186-6">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="512.23822" + y="207.13063" + id="text186-31"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="512.02075" + y="207.13063" + id="tspan186-9">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="512.23822" + y="542.47864" + id="text186-4"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="512.02069" + y="542.47864" + id="tspan186-5">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="709.63623" + y="531.76166" + id="text186-10"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="709.4187" + y="531.76166" + id="tspan186-63">yes</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="709.63623" + y="199.28064" + id="text186-15"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="709.4187" + y="199.28064" + id="tspan186-54">yes</tspan></text> + </g> +</svg> diff --git a/experiment-activity.svg.license b/experiment-activity.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/experiment-activity.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/experiment-results.csv b/experiment-results.csv new file mode 100644 index 0000000..73ad9fc --- /dev/null +++ b/experiment-results.csv @@ -0,0 +1,330 @@ +NAME,IN-DEBIAN,STATUS,FAILURE-REASON,WORKSPACES,SHRINKWRAP,PACKAGE-LOCK,YARN.LOCK,PNPM-LOCK,UNNECESSARY-DEPS,UNNECESSARY-DEPS-COUNT,NECESSARY-DEPS,NECESSARY-DEPS-COUNT,UNFLATTENED-DEPS,TREE-VERS,TREE-DEPS,TREE-MULTIVER,TREE-MIN-VERS,TREE-MIN-DEPS,TREE-MIN-MULTIVER,TREE-DUMMY-VERS,TREE-DUMMY-DEPS,TREE-DUMMY-MULTIVER,TREE-FLAT-VERS,TREE-FLAT-DEPS,TREE-FLAT-MULTIVER,PACKAGE-LOCK-COMPUTE,PACKAGE-LOCK-REPRODUCED,PACKAGE-LOCK-FLAT-REPRODUCED,TARBALL-REPRODUCED,TARBALL-DEPS-MIN,TARBALL-DEPS-DUMMY,TARBALL-DEPS-FLAT,LATEST-TAG-REFERENCED,BREAKING-CHANGES +acertea,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +acorn,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ajv,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@alifd/next,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +anakjalanan,ID-???,ST-failure,FR-no-package.json,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/animations,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/common,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/compiler,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/compiler-cli,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/core,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/forms,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/platform-browser,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/platform-browser-dynamic,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@angular/router,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +antd,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +async,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +autoprefixer,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ava,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +aws-sdk,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +axios,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/config-conventional;@rollup/plugin-multi-entry;abortcontroller-polyfill;auto-changelog;body-parser;chalk;coveralls;dev-null;dtslint;es6-promise;eslint;express;formdata-node;formidable;fs-extra;get-stream;gzip-size;handlebars;istanbul-instrumenter-loader;jasmine-core;karma;karma-chrome-launcher;karma-firefox-launcher;karma-jasmine;karma-jasmine-ajax;karma-rollup-preprocessor;karma-safari-launcher;karma-sauce-launcher;karma-sinon;karma-sourcemap-loader;memoizee;minimist;mocha;multer;pretty-bytes;proxy-from-env;release-it;rollup;sinon;stream-throttle;string-replace-async;terser-webpack-plugin;typescript,UNDC-45,ND-;@babel/preset-env;@commitlint/cli;@release-it/conventional-changelog;@rollup/plugin-babel;@rollup/plugin-commonjs;@rollup/plugin-json;@rollup/plugin-node-resolve;cross-env;gulp;husky;rollup-plugin-auto-external;rollup-plugin-bundle-size;rollup-plugin-terser;@rollup/plugin-alias;form-data;follow-redirects,NDC-17,UFD-5,TV-1690,TD-1377,TM-215,TMV-1013,TMD-875,TMM-102,TDV-489,TDD-443,TDM-40,TFV-447,TFD-442,TFM-5,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-yes,BC-no +babel,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/cli,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-cli,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/core,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-core,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-eslint,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/eslint-parser,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-jest,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-loader,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-plugin-add-module-exports,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/plugin-proposal-class-properties,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/plugin-proposal-object-rest-spread,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-plugin-transform-object-rest-spread,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/plugin-transform-runtime,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-plugin-transform-runtime,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/polyfill,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-polyfill,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/preset-env,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-preset-env,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-preset-es2015,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/preset-react,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-preset-react,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-preset-stage-0,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-preset-stage-2,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/preset-typescript,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/register,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-register,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@babel/runtime,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +babel-runtime,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +bluebird,ID-???,ST-failure,FR-invalid-lockfile-supplied,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +boarding_pass_mint,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-yes,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +body-parser,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +bootstrap,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +browserify,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +btuyen-btn-events,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +buffer,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +chai,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@eslint/js;@rollup/plugin-commonjs;@web/dev-server-rollup;@web/test-runner;@web/test-runner-playwright;c8;eslint;eslint-plugin-jsdoc;mocha;prettier,UNDC-11,ND-;esbuild;pathval;loupe;deep-eql;check-error;assertion-error,NDC-7,UFD-0,TV-520,TD-479,TM-35,TMV-29,TMD-29,TMM-0,TDV-7,TDD-7,TDM-0,TFV-7,TFD-7,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +chai-as-promised,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +chalk,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +cheerio,ID-???,ST-built-once,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +chokidar,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;chai;prettier;rimraf;sinon;sinon-chai;upath,UNDC-7,ND-;@paulmillr/jsbt;@types/node;typescript;readdirp,NDC-5,UFD-0,TV-66,TD-57,TM-9,TMV-5,TMD-5,TMM-0,TDV-5,TDD-5,TDM-0,TFV-5,TFD-5,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +classnames,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +clean-webpack-plugin,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +clsx,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;esm;uvu,UNDC-3,ND-;terser,NDC-2,UFD-0,TV-12,TD-12,TM-0,TMV-5,TMD-5,TMM-0,TDV-2,TDD-2,TDM-0,TFV-2,TFD-2,TFM-0,PLC-same,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +codecov,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +colors,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +commander,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +commitizen,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/plugin-proposal-object-rest-spread;@babel/register;babel-plugin-istanbul;cachedir;chai;codecov;conventional-changelog-conventionalcommits;cz-conventional-changelog;cz-conventional-changelog-default-export;dedent;detect-indent;find-node-modules;find-root;fs-extra;ghooks;glob;in-publish;inquirer;is-utf8;lodash;minimist;mocha;mocha-junit-reporter;mocha-multi-reporters;nodemon;nyc;proxyquire;semantic-release;semver;sinon;strip-bom;strip-json-comments;uuid,UNDC-35,ND-;@babel/cli;@babel/preset-env;@istanbuljs/nyc-config-babel,NDC-4,UFD-0,TV-850,TD-728,TM-122,TMV-216,TMD-208,TMM-7,TDV-165,TDD-163,TDM-2,TFV-163,TFD-163,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +@commitlint/cli,ID-???,ST-failure,FR-no-build-script,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@commitlint/config-conventional,ID-???,ST-failure,FR-no-build-script,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +concurrently,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-;@jest/types;@swc/core;@swc/jest;@types/node;@types/yargs;@typescript-eslint/eslint-plugin;@typescript-eslint/parser;chalk;coveralls-next;eslint;eslint-config-prettier;eslint-plugin-import;eslint-plugin-jest;eslint-plugin-prettier;eslint-plugin-simple-import-sort;jest;lodash;prettier;rxjs;safe-publish-latest;shell-quote;string-argv;supports-color;typescript;yargs,UNDC-26,ND-;@hirez_io/observer-spy;@types/jest;@types/lodash;@types/shell-quote;@types/supports-color;ctrlc-wrapper;esbuild;husky;jest-create-mock-instance;lint-staged;tree-kill,NDC-12,UFD-0,TV-578,TD-526,TM-49,TMV-131,TMD-124,TMM-6,TDV-27,TDD-26,TDM-1,TFV-26,TFD-26,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no +cookie-session,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +copy-webpack-plugin,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/eslint-parser;@commitlint/config-conventional;@types/node;@webpack-contrib/eslint-config-webpack;babel-jest;del;eslint;eslint-config-prettier;eslint-plugin-import;glob-parent;is-gzip;jest;lint-staged;memfs;normalize-path;schema-utils;serialize-javascript;standard-version;tinyglobby;typescript;webpack,UNDC-23,ND-;@babel/cli;@babel/preset-env;@commitlint/cli;@types/glob-parent;@types/normalize-path;@types/serialize-javascript;cross-env;cspell;del-cli;file-loader;husky;npm-run-all;prettier,NDC-14,UFD-1,TV-959,TD-827,TM-103,TMV-585,TMD-554,TMM-29,TDV-264,TDD-249,TDM-14,TFV-245,TFD-244,TFM-1,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +core-js,ID-???,ST-failure,FR-no-build-script,WS-yes,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +cors,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +coveralls,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +cross-env,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +cross-spawn,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +crypto-js,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +css-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/eslint-config-webpack;babel-jest;cspell;eslint;eslint-config-prettier;eslint-plugin-import;file-loader;icss-utils;jest;jest-environment-jsdom;less;less-loader;lint-staged;memfs;mini-css-extract-plugin;npm-run-all;postcss;postcss-loader;postcss-modules-extract-imports;postcss-modules-local-by-default;postcss-modules-scope;postcss-modules-values;postcss-preset-env;postcss-value-parser;prettier;sass;sass-loader;semver;standard-version;strip-ansi;style-loader;stylus;stylus-loader;url-loader;webpack,UNDC-39,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli;es-check;husky,NDC-7,UFD-2,TV-1151,TD-1006,TM-113,TMV-282,TMD-272,TMM-9,TDV-250,TDD-241,TDM-9,TFV-243,TFD-241,TFM-2,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +cz-conventional-changelog,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +date-fns,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +dayjs,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +debug,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +deepmerge,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +del,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +del-cli,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +dotenv,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +download-git-repo,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ejs,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +element-ui,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@emotion/react,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@emotion/styled,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +enzyme,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +enzyme-adapter-react-16,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +esbuild,ID-???,ST-failure,FR-no-package.json,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-config-airbnb,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-config-airbnb-base,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-config-next,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-config-prettier,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-config-standard,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@eslint/js,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-loader,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/defaults;@webpack-contrib/eslint-config-webpack;babel-eslint;babel-jest;chokidar;commitlint-azure-pipelines-cli;del;eslint;eslint-config-prettier;eslint-friendly-formatter;eslint-plugin-import;find-cache-dir;fs-extra;husky;jest;jest-junit;lint-staged;loader-utils;npm-run-all;object-hash;prettier;schema-utils;standard-version;webpack,UNDC-28,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli,NDC-5,UFD-0,TV-1197,TD-1006,TM-148,TMV-250,TMD-244,TMM-5,TDV-217,TDD-213,TDM-4,TFV-213,TFD-213,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +eslint-plugin-import,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-jest,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-jsx-a11y,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@babel/core;@babel/eslint-parser;@babel/register;aria-query;array-includes;array.prototype.flatmap;ast-types-flow;auto-changelog;axe-core;axobject-query;damerau-levenshtein;emoji-regex;eslint;eslint-doc-generator;eslint-plugin-eslint-plugin;eslint-plugin-flowtype;eslint-plugin-import;estraverse;flow-bin;hasown;jackspeak;jscodeshift;jsx-ast-utils;language-tags;minimatch;minimist;object.assign;object.entries;object.fromentries;rimraf;safe-publish-latest;safe-regex-test;semver;string.prototype.includes;tape;to-ast,UNDC-37,ND-;@babel/cli;@babel/plugin-transform-flow-strip-types;babel-plugin-add-module-exports;babel-preset-airbnb;eslint-config-airbnb-base;in-publish;npmignore,NDC-8,UFD-0,TV-531,TD-501,TM-27,TMV-384,TMD-377,TMM-7,TDV-168,TDD-166,TDM-2,TFV-166,TFD-166,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no-only-package.json-unicode +eslint-plugin-node,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;codecov;eslint;eslint-plugin-es;eslint-plugin-node;eslint-utils;globals;ignore;minimatch;mocha;nyc;opener;punycode;resolve;rimraf;semver,UNDC-16,ND-;@mysticatea/eslint-plugin;fast-glob,NDC-3,UFD-0,TV-468,TD-411,TM-47,TMV-233,TMD-213,TMM-18,TDV-158,TDD-142,TDM-14,TFV-140,TFD-140,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +eslint-plugin-prettier,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-promise,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-react,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-react-hooks,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-standard,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +eslint-plugin-vue,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ethers,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@noble/hashes;@rollup/plugin-node-resolve;c8;mocha;rollup;semver;uglify-js;ws,UNDC-9,ND-;@types/mocha;@types/semver;typescript;tslib;aes-js;@types/node;@noble/curves;@adraffy/ens-normalize,NDC-9,UFD-0,TV-146,TD-140,TM-6,TMV-10,TMD-10,TMM-0,TDV-10,TDD-10,TDM-0,TFV-10,TFD-10,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +execa,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +express,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +express-validator,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@docusaurus/plugin-client-redirects;@docusaurus/preset-classic;@types/jest;@typescript-eslint/eslint-plugin;@typescript-eslint/parser;eslint;eslint-config-prettier;eslint-plugin-import;eslint-plugin-prettier;jest;lodash;prettier;ts-jest;typescript;validator,UNDC-16,ND-;@docusaurus/core;@types/lodash,NDC-3,UFD-0,TV-1417,TD-1287,TM-106,TMV-1071,TMD-975,TMM-84,TDV-1071,TDD-975,TDM-84,TFV-1071,TFD-975,TFM-84,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +extract-text-webpack-plugin,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +figlet,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +file-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/defaults;@webpack-contrib/eslint-config-webpack;babel-jest;del;eslint;eslint-config-prettier;eslint-plugin-import;husky;jest;lint-staged;loader-utils;memfs;npm-run-all;prettier;schema-utils;standard-version;url-loader;webpack,UNDC-22,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli,NDC-5,UFD-0,TV-1118,TD-971,TM-120,TMV-250,TMD-244,TMM-5,TDV-217,TDD-213,TDM-4,TFV-213,TFD-213,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +form-data,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +fs,ID-???,ST-not-a-real-package,FR-n/a,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +fs-extra,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +gh-pages,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +glob,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +globby,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +got,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@hapi/bourne;@sinonjs/fake-timers;@types/node;@types/sinonjs__fake-timers;axios;benchmark;bluebird;body-parser;create-cert;create-test-server;express;form-data;formdata-node;get-stream;lowercase-keys;np;nyc;p-event;pem;readable-stream;request;responselike;sinon;slow-stream;tough-cookie;tsx;xo,UNDC-28,ND-;@sindresorhus/tsconfig;@types/benchmark;@types/express;@types/pem;@types/readable-stream;@types/request;@types/sinon;ava;del-cli;delay;expect-type;nock;node-fetch;pify;tempy;then-busboy;typescript;type-fest;p-cancelable;http2-wrapper;form-data-encoder;decompress-response;cacheable-request;cacheable-lookup;@szmarczak/http-timer;@sindresorhus/is,NDC-27,UFD-2,TV-1014,TD-835,TM-120,TMV-245,TMD-226,TMM-17,TDV-82,TDD-77,TDM-5,TFV-79,TFD-77,TFM-2,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +graphql,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +grunt,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +grunt-contrib-jshint,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +gulp,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +gulp-rename,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +gulp-uglify,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +handlebars,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@playwright/test;aws-sdk;benchmark;chai;chai-diff;concurrently;dirty-chai;dtslint;dustjs-linkedin;eco;eslint;eslint-config-prettier;eslint-plugin-compat;eslint-plugin-es5;fs-extra;grunt-cli;grunt-contrib-clean;grunt-contrib-concat;grunt-contrib-connect;grunt-contrib-copy;grunt-contrib-uglify;grunt-contrib-watch;grunt-shell;husky;lint-staged;minimist;mocha;mock-stdin;mustache;neo-async;nyc;prettier;semver;sinon;source-map;typescript;uglify-js;underscore;webpack;webpack-dev-server;wordwrap,UNDC-42,ND-;babel-loader;babel-runtime;grunt;grunt-babel;grunt-contrib-requirejs;grunt-webpack;jison,NDC-8,UFD-1,TV-1024,TD-806,TM-150,TMV-503,TMD-429,TMM-59,TDV-207,TDD-187,TDM-17,TFV-183,TFD-182,TFM-1,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-different,TBDF-same,LTR-no,BC-no +html-webpack-plugin,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +husky,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +inquirer,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +istanbul,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jasmine-core,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jest,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jest-environment-jsdom,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +joi,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jquery,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jsdom,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jshint,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +jsonwebtoken,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +js-yaml,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +karma,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +karma-chrome-launcher,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +karma-coverage,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +karma-jasmine,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@commitlint/cli;@commitlint/config-angular;@semantic-release/changelog;@semantic-release/git;@semantic-release/github;@semantic-release/npm;eslint;eslint-config-standard;eslint-plugin-import;eslint-plugin-node;eslint-plugin-promise;eslint-plugin-standard;husky;jasmine;jasmine-core;karma;karma-firefox-launcher;semantic-release,UNDC-19,ND-;grunt,NDC-2,UFD-0,TV-833,TD-735,TM-107,TMV-100,TMD-96,TMM-4,TDV-92,TDD-89,TDM-3,TFV-86,TFD-86,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no-only-package.json-unicode +karma-mocha,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +karma-webpack,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ksni-technical-test,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +kva-email-service,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +less,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +less-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/eslint-config-webpack;babel-jest;cspell;del;eslint;eslint-config-prettier;eslint-plugin-import;jest;less;less-plugin-glob;lint-staged;memfs;npm-run-all;prettier;standard-version;strip-ansi;webpack,UNDC-21,ND-;husky;del-cli;cross-env;@babel/preset-env;@babel/cli,NDC-6,UFD-1,TV-1043,TD-891,TM-119,TMV-249,TMD-241,TMM-7,TDV-221,TDD-214,TDM-7,TFV-215,TFD-214,TFM-1,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +lint-staged,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +lodash,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +lodash-es,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +marked,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mime,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@types/mime-types;@typescript-eslint/parser;chalk;mime-types;release-please;runmd;typescript,UNDC-8,ND-;prettier;mime-score;@typescript-eslint/eslint-plugin;@types/node;@types/mime-db,NDC-6,UFD-0,TV-287,TD-262,TM-22,TMV-126,TMD-116,TMM-10,TDV-11,TDD-11,TDM-0,TFV-11,TFD-11,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +mime-types,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mini-css-extract-plugin,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/eslint-parser;@commitlint/config-conventional;@webpack-contrib/eslint-config-webpack;babel-jest;bootstrap;cspell;css-loader;del;eslint;eslint-config-prettier;eslint-plugin-import;jest;jest-environment-jsdom;jsdom;lint-staged;memfs;sass;sass-loader;schema-utils;standard-version;tapable;typescript;webpack;webpack-cli;webpack-dev-server,UNDC-27,ND-;@babel/cli;@babel/preset-env;@commitlint/cli;@types/node;cross-env;del-cli;es-check;file-loader;husky;npm-run-all;prettier,NDC-12,UFD-4,TV-1185,TD-1036,TM-117,TMV-581,TMD-524,TMM-50,TDV-328,TDD-296,TDM-30,TFV-296,TFD-292,TFM-4,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no +minimatch,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +minimist,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mkdirp,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mocha,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@11ty/eleventy;@11ty/eleventy-plugin-inclusive-language;@eslint/js;@mocha/docdash;@rollup/plugin-multi-entry;browser-stdout;chai;chokidar;coffeescript;cross-env;debug;diff;escape-string-regexp;eslint;eslint-plugin-n;fail-on-errors-webpack-plugin;find-up;glob;globals;he;installed-check;js-yaml;jsdoc;jsdoc-ts-utils;karma;karma-chrome-launcher;karma-mocha;karma-mocha-reporter;karma-sauce-launcher;knip;log-symbols;markdown-it;markdown-it-anchor;markdown-it-attrs;markdown-it-emoji;markdown-it-prism;markdown-toc;markdownlint-cli;minimatch;ms;needle;npm-run-all2;nyc;picocolors;pidtree;prettier;remark;remark-github;remark-inline-links;rewiremock;rimraf;rollup;serialize-javascript;sinon;strip-json-comments;supports-color;unexpected;unexpected-eventemitter;unexpected-map;unexpected-set;unexpected-sinon;uslug;webpack;webpack-cli;workerpool;yargs;yargs-parser;yargs-unparser,UNDC-69,ND-;@rollup/plugin-alias;@rollup/plugin-commonjs;@rollup/plugin-json;@rollup/plugin-node-resolve;rollup-plugin-node-globals;rollup-plugin-polyfill-node;rollup-plugin-visualizer,NDC-8,UFD-0,TV-1215,TD-1019,TM-145,TMV-73,TMD-68,TMM-3,TDV-50,TDD-45,TDM-3,TFV-44,TFD-44,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-different,LTR-no,BC-yes +moment,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mongodb,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +mongoose,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +morgan,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ms,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@mui/material,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +nanoid,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +next,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +nitroteh,ID-???,ST-failure,FR-no-package.json,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +node-fetch,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +nodemon,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +node-sass,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +npm,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +npm-run-all,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +number-extrarandom-cli,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +nyc,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +object-assign,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +open,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +optimize-css-assets-webpack-plugin,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ora,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +path,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +postcss,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +postcss-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/eslint-config-webpack;babel-jest;cosmiconfig;cspell;cssnano;del;eslint;eslint-config-prettier;eslint-plugin-import;jest;jiti;less;less-loader;lint-staged;memfs;midas;npm-run-all;postcss;postcss-dark-theme-class;postcss-import;postcss-js;postcss-load-config;postcss-nested;postcss-short;prettier;sass;sass-loader;semver;standard-version;strip-ansi;sugarss;ts-jest;ts-node;webpack,UNDC-38,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli;husky,NDC-6,UFD-1,TV-1116,TD-966,TM-111,TMV-249,TMD-241,TMM-7,TDV-221,TDD-214,TDM-7,TFV-215,TFD-214,TFM-1,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +prettier,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +prompts,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;kleur;sisteransi;tap-spec;tape,UNDC-6,ND-;@babel/cli;@babel/plugin-proposal-object-rest-spread;@babel/preset-env,NDC-4,UFD-0,TV-331,TD-323,TM-8,TMV-172,TMD-170,TMM-2,TDV-140,TDD-139,TDM-1,TFV-139,TFD-139,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +prop-types,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +pubteahy,ID-???,ST-not-a-real-package,FR-n/a,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +puppeteer,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +q,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +qs,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ramda,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rarerteat,ID-???,ST-failure,FR-no-package.json,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-dom,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-icons,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-native,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-random-number-generator,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-redux,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-router-dom,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-scripts,ID-???,ST-failure,FR-expects-network,WS-yes,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +react-test-renderer,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +redis,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +redux,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +reflect-metadata,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +release-it,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +remove-value-js,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +request,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +resolve,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rimraf,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@rollup/plugin-babel,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup-plugin-babel,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/helper-module-imports;@babel/plugin-external-helpers;@babel/plugin-proposal-decorators;@babel/plugin-transform-runtime;@babel/preset-env;buble;eslint;eslint-config-prettier;eslint-plugin-prettier;husky;lint-staged;mocha;prettier;rollup-plugin-json;rollup-pluginutils;source-map;source-map-support,UNDC-19,ND-;rollup;rollup-plugin-buble,NDC-3,UFD-0,TV-463,TD-412,TM-42,TMV-30,TMD-30,TMM-0,TDV-18,TDD-18,TDM-0,TFV-18,TFD-18,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no-only-package.json-unicode +@rollup/plugin-commonjs,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup-plugin-commonjs,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/register;acorn;eslint;eslint-plugin-import;husky;is-reference;lint-staged;locate-character;magic-string;mocha;prettier;require-relative;resolve;rollup-plugin-node-resolve;rollup-pluginutils;source-map;source-map-support;typescript,UNDC-20,ND-;@babel/preset-env;rollup;rollup-plugin-babel;rollup-plugin-json;shx;estree-walker,NDC-7,UFD-0,TV-634,TD-557,TM-58,TMV-161,TMD-160,TMM-1,TDV-142,TDD-141,TDM-1,TFV-141,TFD-141,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +rollup-plugin-dts,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/code-frame;@types/d3-drag;@types/estree;@types/react;c8,UNDC-6,ND-;@types/babel__code-frame;@types/node;rollup;typescript;magic-string,NDC-6,UFD-0,TV-101,TD-95,TM-6,TMV-28,TMD-28,TMM-0,TDV-8,TDD-8,TDM-0,TFV-8,TFD-8,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +@rollup/plugin-json,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@rollup/plugin-node-resolve,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup-plugin-node-resolve,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@babel/register;@types/resolve;builtin-modules;es5-ext;eslint;is-module;mocha;resolve;rollup-plugin-commonjs;rollup-pluginutils;string-capitalize;typescript,UNDC-14,ND-;@babel/preset-env;rollup;rollup-plugin-babel;rollup-plugin-json,NDC-5,UFD-0,TV-411,TD-396,TM-15,TMV-145,TMD-144,TMM-1,TDV-128,TDD-127,TDM-1,TFV-127,TFD-127,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +rollup-plugin-peer-deps-external,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-;@babel/core;husky;jest;lint-staged;lodash-es;prettier;ramda;rimraf;rollup;semantic-release;semantic-release-github-pr,UNDC-12,ND-;@rollup/plugin-node-resolve;@rollup/plugin-babel;@babel/preset-env,NDC-4,UFD-0,TV-1010,TD-864,TM-176,TMV-151,TMD-150,TMM-1,TDV-132,TDD-131,TDM-1,TFV-131,TFD-131,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-yes +rollup-plugin-postcss,ID-???,ST-failure,FR-has-deps-external-to-npm,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup-plugin-terser,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@rollup/plugin-typescript,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rollup-plugin-typescript2,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@jest/globals;@rollup/pluginutils;@types/find-cache-dir;@types/fs-extra;@types/graphlib;@types/jest;@types/lodash;@types/node;@types/object-hash;@types/semver;@typescript-eslint/parser;colors;eslint;find-cache-dir;fs-extra;graphlib;jest;lodash;object-hash;rimraf;semver;ts-jest;tslib;typescript,UNDC-25,ND-;@rollup/plugin-commonjs;@rollup/plugin-node-resolve;@typescript-eslint/eslint-plugin;rollup;rollup-plugin-re;rollup-plugin-typescript2,NDC-7,UFD-1,TV-430,TD-372,TM-50,TMV-173,TMD-161,TMM-11,TDV-48,TDD-44,TDM-3,TFV-44,TFD-43,TFM-1,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-yes +round-number-cli,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rxjs,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +rylie,ID-???,ST-failure,FR-no-package.json,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +sass,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +sass-loader,ID-???,ST-failure,FR-has-deps-external-to-npm,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +semantic-release,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +semver,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +shelljs,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +should,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;bluebird;eslint;eslint-config-shouldjs;mocha;mocha-better-spec-reporter;prettier;should-equal;should-format;should-type;should-type-adaptors;should-util;tslint;typescript;zuul,UNDC-15,ND-;rollup;rollup-plugin-node-resolve,NDC-3,UFD-0,TV-710,TD-553,TM-100,TMV-10,TMD-10,TMM-0,TDV-8,TDD-8,TDM-0,TFV-8,TFD-8,TFM-0,PLC-same,PLR-same,PLFR-n/a,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-yes,BC-yes +sinon,ID-???,ST-failure,FR-failed-to-checkout,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +sinon-chai,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +slash-connecter,ID-???,ST-failure,FR-has-deps-external-to-npm,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +socket.io,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +socket.io-client,ID-???,ST-experiment-limitation,FR-n/a,WS-yes,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +standard,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +standard-version,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +storybook,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@storybook/addon-actions,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@storybook/addon-essentials,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@storybook/addon-interactions,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@storybook/addon-links,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@storybook/react,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +strip-ansi,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +styled-components,ID-???,ST-failure,FR-needs-other-build-sys,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +stylelint,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@changesets/get-github-info;@csstools/css-parser-algorithms;@csstools/css-tokenizer;@csstools/media-query-list-parser;@csstools/selector-specificity;@dual-bundle/import-meta-resolve;@jest/globals;@stylelint/prettier-config;@stylelint/remark-preset;@types/balanced-match;@types/css-tree;@types/debug;@types/file-entry-cache;@types/global-modules;@types/globjoin;@types/imurmurhash;@types/micromatch;@types/normalize-path;@types/postcss-less;@types/postcss-resolve-nested-selector;@types/postcss-safe-parser;@types/svg-tags;@types/write-file-atomic;balanced-match;benchmark;colord;common-tags;cosmiconfig;css-functions-list;css-tree;debug;deepmerge;eslint;eslint-config-stylelint;eslint-plugin-import;eslint-plugin-jest;fast-glob;fastest-levenshtein;file-entry-cache;global-modules;globby;globjoin;html-tags;ignore;imurmurhash;is-plain-object;jest;jest-preset-stylelint;jest-watch-typeahead;known-css-properties;lint-staged;lz-string;mathml-tag-names;meow;micromatch;normalize-path;np;npm-run-all;picocolors;postcss;postcss-html;postcss-import;postcss-less;postcss-resolve-nested-selector;postcss-safe-parser;postcss-sass;postcss-scss;postcss-selector-parser;postcss-value-parser;prettier;remark-cli;resolve-from;string-width;sugarss;supports-hyperlinks;svg-tags;table;typescript;write-file-atomic,UNDC-80,ND-;@changesets/cli;husky;patch-package;rollup,NDC-5,UFD-0,TV-1089,TD-917,TM-112,TMV-179,TMD-173,TMM-5,TDV-79,TDD-74,TDM-4,TFV-73,TFD-73,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +style-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/eslint-config-webpack;babel-jest;cspell;css-loader;eslint;eslint-config-prettier;eslint-plugin-import;file-loader;jest;jest-environment-jsdom;jsdom;lint-staged;memfs;npm-run-all;prettier;sass;sass-loader;semver;standard-version;webpack;webpack-cli;webpack-dev-server,UNDC-26,ND-;husky;es-check;del-cli;cross-env;@babel/preset-env;@babel/cli,NDC-7,UFD-2,TV-1216,TD-1046,TM-134,TMV-282,TMD-272,TMM-9,TDV-250,TDD-241,TDM-9,TFV-243,TFD-241,TFM-2,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +superagent,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@babel/core;@babel/plugin-transform-runtime;@babel/runtime;@commitlint/cli;@commitlint/config-conventional;Base64;basic-auth-connect;body-parser;cookie-parser;cookiejar;debug;eslint-config-xo-lass;eslint-plugin-compat;eslint-plugin-node;express;express-session;fast-safe-stringify;fixpack;form-data;formidable;get-port;husky;lint-staged;marked;methods;mime;mocha;multer;nyc;qs;remark-cli;remark-preset-github;rimraf;should;should-http;xo;zuul,UNDC-38,ND-;@babel/cli;@babel/preset-env;babelify;browserify;cross-env;eslint;tinyify;component-emitter,NDC-9,UFD-0,TV-1721,TD-1327,TM-253,TMV-497,TMD-460,TMM-34,TDV-323,TDD-301,TDM-20,TFV-300,TFD-300,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-different,LTR-no,BC-no-only-package.json-unicode +supertest,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tailwindcss,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tape,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +teanager,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tehtehteh,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +terser-webpack-plugin,ID-???,ST-built-once,FR-misc-build-failure,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@testing-library/jest-dom,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@adobe/css-tools;@jest/globals;@types/bun;@types/web;aria-query;chalk;css.escape;dom-accessibility-api;expect;jest-environment-jsdom-sixteen;jest-watch-select-projects;jsdom;kcd-scripts;lodash;pretty-format;redent;rollup;vitest,UNDC-19,ND-;@rollup/plugin-commonjs;rollup-plugin-delete;typescript,NDC-4,UFD-0,TV-1108,TD-957,TM-125,TMV-80,TMD-76,TMM-4,TDV-57,TDD-53,TDM-4,TFV-53,TFD-53,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-yes,BC-no +@testing-library/react,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@testing-library/dom;@testing-library/jest-dom;@types/react;@types/react-dom;chalk;jest-diff;react-dom;rimraf,UNDC-9,ND-;dotenv-cli;kcd-scripts;npm-run-all;react;typescript;@babel/runtime,NDC-7,UFD-1,TV-1003,TD-884,TM-93,TMV-987,TMD-871,TMM-92,TDV-419,TDD-380,TDM-35,TFV-374,TFD-373,TFM-1,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-yes +@testing-library/user-event,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-;@esbuild-plugins/node-modules-polyfill;@testing-library/dom;@testing-library/jest-dom;@testing-library/react;@types/jest-in-case;@types/react;@types/sinonjs__fake-timers;css.escape;esbuild;esbuild-plugin-globals;eslint-import-resolver-typescript;eslint-plugin-local-rules;expect;is-ci;istanbul-lib-coverage;istanbul-lib-report;istanbul-lib-source-maps;istanbul-reports;jest-in-case;jest-mock;jest-serializer-ansi;jsdom;react;shared-scripts;ts-node;typescript,UNDC-27,ND-;react-dom;kcd-scripts;@ph.fritsche/toolbox;@ph.fritsche/scripts-config,NDC-5,UFD-0,TV-1258,TD-1080,TM-134,TMV-1142,TMD-992,TMM-117,TDV-43,TDD-37,TDM-6,TFV-37,TFD-37,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-yes +through2,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tradingcalc,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tsdx,ID-???,ST-failure,FR-invalid-lockfile-supplied,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ts-jest,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@commitlint/config-angular;@eslint/compat;@eslint/eslintrc;@eslint/js;@jest/transform;@jest/types;@types/babel__core;@types/fs-extra;@types/jest;@types/js-yaml;@types/lodash.camelcase;@types/lodash.set;@types/micromatch;@types/node;@types/semver;@types/yargs;@types/yargs-parser;@typescript-eslint/eslint-plugin;@typescript-eslint/parser;ejs;esbuild;eslint;eslint-config-prettier;eslint-plugin-import;eslint-plugin-jest;eslint-plugin-jsdoc;eslint-plugin-prettier;fast-json-stable-stringify;glob;globals;husky;jest;jest-util;js-yaml;json5;lint-staged;lodash.memoize;memfs;prettier;semver;type-fest;typescript;typescript-eslint;yargs-parser,UNDC-45,ND-;@commitlint/cli;@jest/globals;@types/ejs;@types/lodash.memoize;babel-jest;conventional-changelog-cli;execa;fs-extra;glob-gitignore;rimraf;make-error;bs-logger,NDC-13,UFD-n/a,TV-691,TD-624,TM-56,TMV-344,TMD-316,TMM-28,TDV-76,TDD-73,TDM-3,TFV-76,TFD-73,TFM-3,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-no +tslib,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tslint,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tslint-config-prettier,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ts-loader,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +ts-node,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +tsup,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-;@swc/core;@types/debug;@types/resolve;bumpp;bundle-require;cac;chokidar;consola;debug;esbuild;joycon;picocolors;postcss-load-config;postcss-simple-vars;prettier;resolve;resolve-from;rollup;sass;strip-json-comments;sucrase;svelte;svelte-preprocess;tinyexec;tinyglobby;tree-kill;typescript;vitest;wait-for-expect,UNDC-30,ND-;@microsoft/api-extractor;@rollup/plugin-json;@types/node;flat;postcss;rollup-plugin-dts;terser;ts-essentials;tsup;source-map,NDC-11,UFD-0,TV-327,TD-282,TM-45,TMV-190,TMD-177,TMM-13,TDV-56,TDD-54,TDM-2,TFV-54,TFD-54,TFM-0,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-yes +typedoc,ID-???,ST-experiment-limitation,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/chai,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/cookie-session,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +typescript,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@eslint/js;@octokit/rest;@types/chai;@types/diff;@types/minimist;@types/mocha;@types/ms;@types/source-map-support;@types/which;@typescript-eslint/rule-tester;@typescript-eslint/type-utils;@typescript-eslint/utils;azure-devops-node-api;chai;chalk;diff;dprint;eslint;eslint-formatter-autolinkable-stylish;eslint-plugin-regexp;fast-xml-parser;glob;globals;knip;minimist;mocha;mocha-fivemat-progress-reporter;monocart-coverage-reports;ms;playwright;source-map-support;tslib;typescript-eslint;which,UNDC-35,ND-;typescript;jsonc-parser;hereby;esbuild;chokidar;c8;@types/node;@esfx/canceltoken;@dprint/typescript;@dprint/formatter,NDC-11,UFD-0,TV-365,TD-331,TM-31,TMV-137,TMD-126,TMM-10,TDV-50,TDD-50,TDM-0,TFV-50,TFD-50,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-yes,BC-no +@typescript-eslint/eslint-plugin,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@typescript-eslint/parser,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/express,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/fs-extra,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/inquirer,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/jasmine,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/jest,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/jsonwebtoken,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/lodash,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/mocha,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/node,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/react,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/react-dom,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@types/uuid,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +uglify-js,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +uglifyjs-webpack-plugin,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/defaults;@webpack-contrib/eslint-config-webpack;babel-jest;cacache;commitlint-azure-pipelines-cli;del;eslint;eslint-config-prettier;eslint-plugin-import;find-cache-dir;husky;is-wsl;jest;jest-junit;lint-staged;memory-fs;npm-run-all;prettier;schema-utils;serialize-javascript;source-map;standard-version;terser;uglify-js;webpack;webpack-sources;worker-farm,UNDC-31,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli,NDC-5,UFD-0,TV-1229,TD-1017,TM-148,TMV-294,TMD-285,TMM-8,TDV-209,TDD-206,TDM-3,TFV-206,TFD-206,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +underscore,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;coveralls;docco;eslint-plugin-import;glob;gzip-size-cli;husky;karma;karma-qunit;karma-sauce-launcher;nyc;patch-package;pretty-bytes-cli;qunit,UNDC-14,ND-;terser;rollup;eslint;cpy-cli,NDC-5,UFD-0,TV-949,TD-798,TM-127,TMV-303,TMD-268,TMM-31,TDV-234,TDD-213,TDM-19,TFV-210,TFD-210,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +unique-names-generator,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-;@babel/core;@babel/preset-env;@types/jest;@typescript-eslint/parser;babel-jest;eslint;eslint-config-prettier;eslint-plugin-prettier;jest;np;prettier;prettier-eslint;rimraf;typescript,UNDC-15,ND-;microbundle;all-contributors-cli;@typescript-eslint/eslint-plugin;@babel/preset-typescript,NDC-5,UFD-0,TV-1032,TD-889,TM-113,TMV-596,TMD-563,TMM-31,TDV-269,TDD-261,TDM-7,TFV-261,TFD-261,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-no +url-loader,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@commitlint/cli;@commitlint/config-conventional;@webpack-contrib/defaults;@webpack-contrib/eslint-config-webpack;babel-jest;del;eslint;eslint-config-prettier;eslint-plugin-import;file-loader;husky;jest;lint-staged;loader-utils;memfs;mime-types;mini-svg-data-uri;npm-run-all;prettier;schema-utils;standard-version;webpack,UNDC-24,ND-;@babel/cli;@babel/preset-env;cross-env;del-cli,NDC-5,UFD-0,TV-1119,TD-972,TM-120,TMV-250,TMD-244,TMM-5,TDV-217,TDD-213,TDM-4,TFV-213,TFD-213,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no-only-package.json +uuid,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/eslint-parser;@commitlint/config-conventional;@eslint/js;@types/eslint__js;bundlewatch;commander;eslint;eslint-config-prettier;eslint-plugin-prettier;globals;jest;lint-staged;neostandard;npm-run-all;prettier;release-please;runmd;standard-version;typescript;typescript-eslint,UNDC-21,ND-;husky;@commitlint/cli,NDC-3,UFD-0,TV-846,TD-714,TM-102,TMV-100,TMD-99,TMM-1,TDV-6,TDD-6,TDM-0,TFV-6,TFD-6,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no +vite,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@vitejs/plugin-react,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@vitejs/plugin-vue,ID-???,ST-failure,FR-failed-to-checkout-revision-not-found,WS-n/a,SW-n/a,PL-n/a,YL-n/a,PNL-n/a,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vite-plugin-dts,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-;@commitlint/cli;@microsoft/api-extractor;@rollup/pluginutils;@types/debug;@types/minimist;@types/node;@types/prompts;@types/semver;@vexip-ui/commitlint-config;@vexip-ui/eslint-config;@vexip-ui/prettier-config;@volar/typescript;@vue/eslint-config-standard;@vue/eslint-config-typescript;@vue/language-core;compare-versions;conventional-changelog-cli;debug;eslint;execa;is-ci;kolorist;lint-staged;local-pkg;magic-string;minimist;pinst;prettier;pretty-quick;prompts;rimraf;semver;typescript;vite;vitest,UNDC-36,ND-;@vexip-ui/scripts;husky;tsx;unbuild,NDC-5,UFD-1,TV-774,TD-689,TM-74,TMV-224,TMD-217,TMM-7,TDV-94,TDD-90,TDM-4,TFV-91,TFD-90,TFM-1,PLC-same,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-different,TBDF-same,LTR-no,BC-yes +vitest,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vue,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@vue/cli-plugin-babel,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@vue/cli-plugin-eslint,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +@vue/cli-service,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vue-loader,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vue-router,ID-???,ST-failure,FR-failed-to-resolve,WS-yes,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vue-template-compiler,ID-???,ST-failure,FR-needs-other-build-sys,WS-no,SW-no,PL-no,YL-no,PNL-yes,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +vuex,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +web3-eve-cli,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +webpack,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +webpack-bundle-analyzer,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +webpack-cli,ID-???,ST-failure,FR-no-build-script,WS-yes,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +webpack-dev-server,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +webpack-merge,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@types/estree;flat;husky;prettier;tslib;typescript;webpack,UNDC-8,ND-;@types/flat;dts-cli;wildcard;clone-deep,NDC-5,UFD-0,TV-833,TD-759,TM-65,TMV-790,TMD-721,TMM-60,TDV-14,TDD-14,TDM-0,TFV-14,TFD-14,TFM-0,PLC-different,PLR-same,PLFR-n/a,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +web-vitals,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +winston,ID-yes,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@babel/core;@colors/colors;@dabh/diagnostics;@types/node;abstract-winston-transport;assume;async;cross-spawn-async;eslint;hock;is-stream;logform;mocha;nyc;one-time;readable-stream;rimraf;safe-stable-stringify;split2;stack-trace;std-mocks;through2;triple-beam;winston-compat;winston-transport,UNDC-26,ND-;@babel/cli;@babel/preset-env;@dabh/eslint-config-populist,NDC-4,UFD-0,TV-447,TD-397,TM-44,TMV-279,TMD-274,TMM-5,TDV-145,TDD-143,TDM-2,TFV-143,TFD-143,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-different,TBDD-same,TBDF-same,LTR-no,BC-no-only-package.json +ws,ID-???,ST-failure,FR-no-build-script,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +xml2js,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +yargs,ID-???,ST-failure,FR-misc-build-failure,WS-no,SW-no,PL-no,YL-no,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +yeoman-generator,ID-no,ST-built-with-lockfiles-removed,FR-n/a,WS-no,SW-no,PL-yes,YL-no,PNL-no,UND-;@types/ejs;@types/json-schema;@types/sinon;@vitest/coverage-v8;@yeoman/adapter;@yeoman/transform;chalk;debug;ejs;inquirer;jsdoc;json-schema;lodash-es;minimist;prettier;prettier-plugin-packagejson;semver;sinon;text-table;typescript;vitest;yeoman-assert;yeoman-environment;yeoman-test,UNDC-25,ND-;@types/debug;@types/minimist;@types/semver;@types/text-table;@yeoman/eslint;cpy-cli;type-fest;sort-keys;simple-git;read-package-up;mem-fs-editor;latest-version;github-username;execa;@yeoman/namespace;@types/lodash-es,NDC-17,UFD-0,TV-712,TD-635,TM-63,TMV-417,TMD-360,TMM-49,TDV-83,TDD-75,TDM-8,TFV-72,TFD-72,TFM-0,PLC-different,PLR-same,PLFR-same,TBR-same,TBDR-same,TBDD-same,TBDF-same,LTR-no,BC-no +zod,ID-???,ST-failure,FR-expects-network,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? +zone.js,ID-???,ST-failure,FR-failed-to-resolve,WS-no,SW-no,PL-no,YL-yes,PNL-no,UND-n/a,UNDC-n/a,ND-n/a,NDC-n/a,UFD-n/a,TV-n/a,TD-n/a,TM-n/a,TMV-n/a,TMD-n/a,TMM-n/a,TDV-n/a,TDD-n/a,TDM-n/a,TFV-n/a,TFD-n/a,TFM-n/a,PLC-n/a,PLR-n/a,PLFR-n/a,TBR-n/a,TBDR-n/a,TBDD-n/a,TBDF-n/a,LTR-no,BC-??? diff --git a/experiment-results.csv.license b/experiment-results.csv.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/experiment-results.csv.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/guix-package-update-commits.txt b/guix-package-update-commits.txt new file mode 100644 index 0000000..e076498 --- /dev/null +++ b/guix-package-update-commits.txt @@ -0,0 +1,48 @@ +ff5181e27e * daemon: Do not make chroot root directory read-only. +661bfd5459 * gnu: Remove duplicated package show-me-the-key. +1300d15763 * gnu: emacs-fj: Update to 0.6. +80cda80489 * man-db: Parse man macro arguments better. +c705d6e035 * man-db: Support mdoc-formatted man pages. +d1a1d7f2f7 * gnu: Add julia-simpletropical. +772b70455d * gnu: cgit: Update to 1.2.3-9.994d3fe. +c2f2dd1bf8 * gnu: guix-build-coordinator: Update to 0-128.7a253d1. +2d17db72d8 * gnu: font-go: Update to 2.010. +6fc5fb97cb * gnu: font-adobe-source-sans-pro: Update to 3.052. +fff4c6462f * gnu: font-arapey: Add revision number. +7dc2151550 * gnu: font-carlito: Update to 0.0.0-1.3a810ca. +5cdfd3d81f * gnu: azimuth: Update to 1.0.3-0.050f838. +70aa3b9c2f * gnu: font-adobe-source-han-sans: Update to 2.004. +198fe8bcdf * gnu: emacs-vundo: Update to 2.4.0. +0c7ffaacd2 * gnu: emacs-parsebib: Update to 6.7. +a775db2460 * gnu: emacs-jinx: Update to 2.1. +33c3ee5985 * gnu: emacs-julia-mode: Update to 1.0.2-0.7fc071e. +172e9a1aa1 * gnu: emacs-magit: Simplify package. +d262248c55 * gnu: localed: Remove trailing #t and re-indent. +383f7f5c89 * gnu: localed: Modernize. +41c40bc1cf * gnu: localed: Update to 257.4. +098b5cdf9c * gnu: elogind: Update to 255.17. +c17c6b9820 * services/base: Remove extraneous UDEV_CONFIG_FILE environment variable. +dedeb90501 * gnu: eudev: Build with udevrulesdir pointing to /etc/udev/rules.d. +744e973de3 * gnu: samba/pinned: Update to 4.18.1. +1 file changed, 2 insertions(+), 2 deletions(-) +gnu/packages/samba.scm | 4 ++-- + +modified gnu/packages/samba.scm +@@ -177,7 +177,7 @@ (define-public samba/pinned + (hidden-package + (package + (name "samba") +- (version "4.17.0") ++ (version "4.18.1") + (source + ;; For updaters: the current PGP fingerprint is + ;; 81F5E2832BD2545A1897B713AA99442FB680B620. +@@ -186,7 +186,7 @@ (define-public samba/pinned + (uri (string-append "https://download.samba.org/pub/samba/stable/" + "samba-" version ".tar.gz")) + (sha256 +- (base32 "0fl2y5avmyxjadh6zz0fwz35akd6c4j9lldzp2kyvjrgm36qx1h4")))) ++ (base32 "03ncp49pfpzjla205y3xpb9iy61dz4pryyrvyz26422a4hpsmpnf")))) + (build-system gnu-build-system) + (arguments + (list diff --git a/guix-package-update-commits.txt.license b/guix-package-update-commits.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/guix-package-update-commits.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/guix-pkg-repro-stats.png b/guix-pkg-repro-stats.png Binary files differnew file mode 100644 index 0000000..4a260e6 --- /dev/null +++ b/guix-pkg-repro-stats.png diff --git a/guix-pkg-repro-stats.png.license b/guix-pkg-repro-stats.png.license new file mode 100644 index 0000000..48f40f9 --- /dev/null +++ b/guix-pkg-repro-stats.png.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: LicenseRef-website-screenshot + +Copyright © 2016—2020 the GNU Guix community diff --git a/guix-python-axolotl-package.scm b/guix-python-axolotl-package.scm new file mode 100644 index 0000000..df3becf --- /dev/null +++ b/guix-python-axolotl-package.scm @@ -0,0 +1,29 @@ +(define-public python-axolotl + (package + (name "python-axolotl") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-axolotl" version)) + (sha256 + (base32 + "1bwdp24fmriffwx91aigs9k162albb51iskp23nc939z893q23py")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Don't install tests + (add-before 'install 'remove-tests + (lambda _ + (for-each delete-file-recursively + '("axolotl/tests" "build/lib/axolotl/tests")) + #t))))) + (propagated-inputs + (list python-axolotl-curve25519 python-cryptography python-protobuf)) + (home-page "https://github.com/tgalal/python-axolotl") + (synopsis "Python port of libaxolotl-android") + (description "This is a python port of libaxolotl-android. This +is a ratcheting forward secrecy protocol that works in synchronous and +asynchronous messaging environments.") + (license license:gpl3))) diff --git a/guix-python-axolotl-package.scm.license b/guix-python-axolotl-package.scm.license new file mode 100644 index 0000000..316bd31 --- /dev/null +++ b/guix-python-axolotl-package.scm.license @@ -0,0 +1,243 @@ +SPDX-License-Identifier: GPL-3.0-or-later + +Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> +Copyright © 2016, 2017, 2020, 2022, 2023 Marius Bakke <marius@gnu.org> +Copyright © 2015-2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il> + +The original license notice: + + This file is part of GNU Guix. + + GNU Guix is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or (at + your option) any later version. + + GNU Guix is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + + + +Changes since python-axolotl was packaged for GNU Guix: + Author: Woj. Kosior <koszko@koszko.org> + Date: Fri Sep 19 + + Definition of python-axolotl placed in a + + Author: Nicolas Graves <ngraves@ngraves.fr> + Date: Tue Aug 26 00:30:38 2025 +0200 + + gnu: python-axolotl: Switch to pyproject. + + * gnu/packages/python-crypto.scm (python-axolotl): + [source]: Switch to git-fetch. + [build-system]: Switch to pyproject-build-system. + [arguments]<#:phases>: Replace phase 'remove-tests by phase + 'cleanup-install. + [native-inputs]: Add python-pytest, python-setuptools, python-wheel. + [description]: Run guix style. + + Author: Arun Isaac <arunisaac@systemreboot.net> + Date: Tue Jun 2 07:33:29 2020 +0530 + + gnu: python-axolotl: Update to 0.2.3. + + * gnu/packages/python-crypto.scm (python-axolotl): Update to 0.2.3. + [source]: Use PyPI URI. + [propagated-inputs]: Remove python-dateutil and python-pycrypto. Add + python-cryptography. + + Author: Efraim Flashner <efraim@flashner.co.il> + Date: Mon Jan 6 11:49:37 2020 +0200 + + gnu: python-axolotl: Don't use unstable tarball. + + * gnu/packages/python-crypto.scm (python-axolotl)[source]: Download + using git-fetch. + + Author: Adam Van Ymeren <adam@vany.ca> + Date: Thu Nov 23 15:04:46 2017 -0500 + + gnu: python-axolotl: Update to 0.1.39 and fix build. + + python-axolotl has been failing since March, + https://hydra.gnu.org/job/gnu/master/python-axolotl-0.1.35.x86_64-linux + + This also fixes the OMEMO and OTR plugins for Gajim work. + + * gnu/packages/patches/python-axolotl-AES-fix.patch: New file. + * gnu/local.mk (dist_patch_DATA): Add it. + * gnu/packages/python-crypto.scm (python-axolotl): Upgrade to 0.1.39. + [source]: Use the patch. + + Author: Ludovic Courtès <ludo@gnu.org> + Date: Wed Nov 15 14:10:30 2017 +0100 + + gnu: Move crypto packages from python to python-crypto. + + * gnu/packages/python.scm (python-passlib, python2-passlib) + (python-py-bcrypt, python2-py-bcrypt) + (python-paramiko, python2-paramiko, python-ecdsa, python2-ecdsa) + (python-pycrypto, python2-pycrypto, python-keyring, python2-keyring) + (python-certifi, python2-certifi) + (python-cryptography-vectors, python2-cryptography-vectors) + (python-cryptography, python2-cryptography) + (python-pyopenssl, python2-pyopenssl) + (python-axolotl-curve25519, python2-axolotl-curve25519) + (python-axolotl, python2-axolotl, python2-slowaes) + (python-pyaes, python2-pyaes): Move to... + * gnu/packages/python-crypto.scm: ... here. New file. + * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. + * gnu/packages/admin.scm, gnu/packages/backup.scm, + gnu/packages/crypto.scm, gnu/packages/finance.scm, + gnu/packages/irc.scm, gnu/packages/jrnl.scm, + gnu/packages/messaging.scm, gnu/packages/openstack.scm, + gnu/packages/python-web.scm, gnu/packages/tls.scm, + gnu/packages/xorg.scm: Adjust accordingly. + + Author: Marius Bakke <marius@gnu.org> + Date: Fri Dec 16 01:07:41 2016 +0100 + + gnu: python-axolotl: Remove workaround for bug #20765. + + * gnu/packages/python.scm (python-axolotl, python2-axolotl)[arguments]: + Remove #:configure-flags. + + Author: Hartmut Goebel <h.goebel@crazy-compilers.com> + Date: Wed Sep 28 13:07:24 2016 +0200 + + gnu: Remove python-setuptools and python2-setuptools from inputs (part 1a) + + This patch contains the changes in python.scm where removing setuptools from + the inputs could be achieved by removing complete lines. + + * gnu/packages/python.scm (python-psutil, python2-psutil, + python-py-bcrypt, python2-py-bcrypt, + python-paramiko, python2-paramiko, + python-httplib2, python2-httplib2, + python-ecdsa, python2-ecdsa, + python-ccm, python2-ccm, + python2-backport-ssl-match-hostname, + python-pycrypto, python2-pycrypto, + python-six, python2-six, + python-dateutil, python2-dateutil, + python2-mechanize, + python-extras, python2-extras, + python-mimeparse, python2-mimeparse, + python-nose, python2-nose, + python-nose2, python2-nose2, + python-unittest2, python2-unittest2, + python-py, python2-py, + python-testresources, python2-testresources, + python-fixtures-0.3.16, + python-fixtures, python2-fixtures, + python-coverage, python2-coverage, + python-discover, python2-discover, + python-exif-read, python2-exif-read, + python-pyld, python2-pyld, + python-certifi, python2-certifi, + python-click, python2-click, + python-vcversioner, python2-vcversioner, + python-unidecode, python2-unidecode, + python-pyyaml, python2-pyyaml, + python-markupsafe, python2-markupsafe, + python-pystache, python2-pystache, + python-docutils, python2-docutils, + python-pygments, python2-pygments, + python-sphinx-rtd-theme, python2-sphinx-rtd-theme, + python-blinker, python2-blinker, + python-rq, python2-rq, + python-numpy, python2-numpy, + python-distutils-extra, python2-distutils-extra, + python2-elib.intl, + python-pillow, python2-pillow, + python-xcffib, python2-xcffib, + python-decorator, python2-decorator, + python-gridmap, python2-gridmap, + python-pickleshare, python2-pickleshare, + python-isodate, python2-isodate, + python-html5lib, python2-html5lib, + python2-cssutils, + python-cssselect, python2-cssselect, + python-netifaces, python2-netifaces, + python-sympy, python2-sympy, + python-testlib, python2-testlib, + python2-xlib, + python-singledispatch, python2-singledispatch, + python-backports-abc, python2-backports-abc, + python-pep8, python2-pep8, + python-pyflakes, python2-pyflakes, + python-fonttools, python2-fonttools, + python-ly, + python-appdirs, python2-appdirs, + python-netaddr, python2-netaddr, + python-wrapt, python2-wrapt, + python-iso8601, python2-iso8601, + python-monotonic, python2-monotonic, + python-prettytable, python2-prettytable, + python-pyasn1-modules, python2-pyasn1-modules, + python-idna, python2-idna, + python-pretend, python2-pretend, + python-cryptography-vectors, python2-cryptography-vectors, + python-cryptography, python2-cryptography, + python-pyopenssl, python2-pyopenssl, + python-debian, python2-debian, + python-chardet, python2-chardet, + python-zope-event, python2-zope-event, + python-zope-i18nmessageid, python2-zope-i18nmessageid, + python-websocket-client, python2-websocket-client, + python-args, python2-args, + python-astor, python2-astor, + python2-functools32, + python2-futures, + python2-promise, + python-colorama, python2-colorama, + python-pluggy, python2-pluggy, + python-jmespath, python2-jmespath, + python-botocore, python2-botocore, + awscli, + python-pytest-subtesthack, python2-pytest-subtesthack, + python-pastedeploy, python2-pastedeploy, + python-magic, python2-magic, + python2-s3cmd, + python2-bz2file, + python-cysignals, python2-cysignals, + python-py3status, + python-tblib, python2-tblib, + python-greenlet, python2-greenlet, + python-twisted, python2-twisted, + python-kazoo, python2-kazoo, + python-pykafka, python2-pykafka, + python2-jsonrpclib, + python-chai, python2-chai, + python-inflection, python2-inflection, + python-pylev, python2-pylev, + python-lazy-object-proxy, python2-lazy-object-proxy, + python-dnspython, python2-dnspython, + python-email-validator, python2-email-validator, + python-ukpostcodeparser, python2-ukpostcodeparser, + python-pyaml, python2-pyaml, + python-flexmock, python2-flexmock, + python-orator, python2-orator, + python-bleach, python2-bleach, + python-ipywidgets, python2-ipywidgets, + python-nbconvert, python2-nbconvert, + python-nbformat, python2-nbformat, + python-axolotl-curve25519, python-axolotl2-curve25519, + python-axolotl, python2-axolotl, + python-nautilus, python-s3transfer): Remove python-setuptools and + python2-setuptools from [inputs], [native-inputs] or [propagated-inputs]. + Remove [inputs], [native-inputs] and [propagated-inputs] where + python-setuptools or python2-setuptools were the sole entry. + + Author: Arun Isaac <arunisaac@systemreboot.net> + Date: Thu Oct 20 15:45:04 2016 +0530 + + gnu: Add python-axolotl. + + * gnu/packages/python.scm (python-axolotl, python2-axolotl): New variables. diff --git a/haskell-sth-buildinfo-excerpts.txt b/haskell-sth-buildinfo-excerpts.txt new file mode 100644 index 0000000..62c039d --- /dev/null +++ b/haskell-sth-buildinfo-excerpts.txt @@ -0,0 +1,26 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +Format: 1.0 +Source: haskell-base-compat-batteries +Binary: libghc-base-compat-batteries-dev libghc-base-compat-batteries-prof +Architecture: amd64 +Version: 0.11.2-1 +(*\itshape\color{TEXTGRAY}{[...]}*) +Checksums-Sha256: + db28e3a63a2306507c471693da3cd9a06609aabe8189712e7759ad7919e60b1f 82332 libghc-base-comp +at-batteries-dev_0.11.2-1_amd64.deb + f1a76638f3ce5f5584241363da07e01582b72837ade73ba0bdacf3bb221b366a 63004 libghc-base-comp +at-batteries-prof_0.11.2-1_amd64.deb +Build-Origin: Debian +Build-Architecture: amd64 +Build-Date: Wed, 15 Jun 2022 00:46:44 +0000 +Build-Path: /build/haskell-base-compat-batteries-rkofMw/haskell-base-compat-batteries-0. +11.2 +Installed-Build-Depends: + autoconf (= 2.71-2), + automake (= 1:1.16.5-1.3), + autopoint (= 0.21-6), + autotools-dev (= 20220109.1), + base-files (= 12.2), +(*\itshape\color{TEXTGRAY}{[...]}*) diff --git a/haskell-sth-buildinfo-excerpts.txt.license b/haskell-sth-buildinfo-excerpts.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/haskell-sth-buildinfo-excerpts.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/helper.sh b/helper.sh new file mode 100755 index 0000000..6d0f12e --- /dev/null +++ b/helper.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set -e + +DESCRIPTION_SED_SCRIPT=' +s/TREE$/Vanilla dependency tree/; +s/TREE-MIN/Unnecessary direct dependencies removed/; +s/TREE-DUMMY/Unnecessary dependencies dummified/; +s/TREE-FLAT/Conflicts removed where possible/; +' + +if [ "$1" = "--get-measure-types" ]; then + printf %s "VERS DEPS MULTIVER" +elif [ "$1" = "--get-tree-kinds" ]; then + printf %s "$DESCRIPTION_SED_SCRIPT" | awk -F '[/$]' '{print $2}' +elif [ "$1" = "--make-tree-kind-description" ]; then + sed "$DESCRIPTION_SED_SCRIPT" +elif [ "$1" = "--get-csv-columns" ]; then + shift + + RESULTS_PATH="$1" + + shift + + COL_REFS="" + + SEP="" + + while [ -n "$1" ]; do + HEAD_PART="$(head -1 "$RESULTS_PATH" | grep -Eo "^(.+,)?$1(,|\$)")" + + COL_NUM=$(($(printf %s "$HEAD_PART" | grep -oE ',.' | wc -l) + 1)) + + COL_REFS="$COL_REFS$SEP \$$COL_NUM" + + shift + + SEP=' ","' + done + + awk -F , "{print$COL_REFS;}" < "$RESULTS_PATH" +else + exit 1 +fi diff --git a/newer-typescript-changes.diffoscope b/newer-typescript-changes.diffoscope new file mode 100644 index 0000000..b8fa4fa --- /dev/null +++ b/newer-typescript-changes.diffoscope @@ -0,0 +1,32 @@ +│ ├── package/dist/src/concurrently.d.ts +│ │ @@ -1,9 +1,7 @@ +│ │ -/// <reference types="node" /> +│ │ -/// <reference types="node" /> +│ │ import { Writable } from 'stream'; +│ │ import { CloseEvent, Command, CommandIdentifier, CommandInfo, KillProcess, SpawnCommand } from './command'; +│ │ import { SuccessCondition } from './completion-listener'; +│ │ import { FlowController } from './flow-control/flow-controller'; +│ │ import { Logger } from './logger'; +│ │ /** +│ │ * A command that is to be passed into `concurrently()`. +│ ├── package/dist/src/command-parser/expand-arguments.d.ts +│ │ @@ -5,14 +5,14 @@ +│ │ */ +│ │ export declare class ExpandArguments implements CommandParser { +│ │ private readonly additionalArguments; +│ │ constructor(additionalArguments: string[]); +│ │ parse(commandInfo: CommandInfo): { +│ │ command: string; +│ │ name: string; +│ │ - env?: Record<string, unknown> | undefined; +│ │ - cwd?: string | undefined; +│ │ - prefixColor?: string | undefined; +│ │ - ipc?: number | undefined; +│ │ - raw?: boolean | undefined; +│ │ + env?: Record<string, unknown>; +│ │ + cwd?: string; +│ │ + prefixColor?: string; +│ │ + ipc?: number; +│ │ + raw?: boolean; +│ │ }; +│ │ } diff --git a/newer-typescript-changes.diffoscope.license b/newer-typescript-changes.diffoscope.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/newer-typescript-changes.diffoscope.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/npm-ci.txt b/npm-ci.txt new file mode 100644 index 0000000..0550d71 --- /dev/null +++ b/npm-ci.txt @@ -0,0 +1,2 @@ +npm --no-progress --no-update-notifier \ + --audit false ci --registry=http://localhost:8080 diff --git a/npm-ci.txt.license b/npm-ci.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/npm-ci.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/npm-pack.txt b/npm-pack.txt new file mode 100644 index 0000000..e78a9e0 --- /dev/null +++ b/npm-pack.txt @@ -0,0 +1,3 @@ +npm --no-progress --no-update-notifier \ + --audit false pack \ + --pack-destination=/PATH/TO/RESULTS/SUBDIR diff --git a/npm-pack.txt.license b/npm-pack.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/npm-pack.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/npm-run-build.txt b/npm-run-build.txt new file mode 100644 index 0000000..26e0e9e --- /dev/null +++ b/npm-run-build.txt @@ -0,0 +1,2 @@ +npm --no-progress --no-update-notifier \ + --audit false run build diff --git a/npm-run-build.txt.license b/npm-run-build.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/npm-run-build.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/npm-uninstall.txt b/npm-uninstall.txt new file mode 100644 index 0000000..f4523fb --- /dev/null +++ b/npm-uninstall.txt @@ -0,0 +1,6 @@ +npm --no-progress --no-update-notifier \ + --audit false uninstall \ + --ignore-scripts --package-lock-only \ + --package-lock-version=3 \ + --registry=http://localhost:8080 \ + Experiment-Dummy-Package-To-Delete diff --git a/npm-uninstall.txt.license b/npm-uninstall.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/npm-uninstall.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/occurances-of-tslib.txt b/occurances-of-tslib.txt new file mode 100644 index 0000000..1c9e3de --- /dev/null +++ b/occurances-of-tslib.txt @@ -0,0 +1,29 @@ +(*\itshape\color{TEXTGRAY}{[...]}*) + "node_modules/pvtsutils": { + "version": "1.3.5", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.1" + } + }, +(*\itshape\color{TEXTGRAY}{[...]}*) + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tsyringe": { + "version": "4.8.0", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, +(*\itshape\color{TEXTGRAY}{[...]}*) diff --git a/occurances-of-tslib.txt.license b/occurances-of-tslib.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/occurances-of-tslib.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/presentation-handouts.snm b/presentation-handouts.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/presentation-handouts.snm diff --git a/presentation-onlyslides.snm b/presentation-onlyslides.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/presentation-onlyslides.snm diff --git a/presentation-pympress.snm b/presentation-pympress.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/presentation-pympress.snm diff --git a/presentation-slidesandnotes.snm b/presentation-slidesandnotes.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/presentation-slidesandnotes.snm diff --git a/presentation.snm b/presentation.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/presentation.snm diff --git a/presentation.tex b/presentation.tex new file mode 100644 index 0000000..957f17f --- /dev/null +++ b/presentation.tex @@ -0,0 +1,683 @@ +%% SPDX-License-Identifier: CC0-1.0 +%% +%% Copyright (C) 2024, 2025 Woj. Kosior <koszko@koszko.org> + +\documentclass[ + hyperref={ + hyperfootnotes = false, + pdftex, + colorlinks = true, + linkbordercolor = ., + linkcolor = [rgb]{0,0.2,0}, + urlcolor = [rgb]{0,0,0.5}, + citecolor = [rgb]{0.5,0,0} + } +]{beamer} + +\usepackage{polski} +\usepackage{pgfpages} +\usetheme{Rochester} +\usecolortheme{seagull} +\usepackage{calc} +\usepackage{svg} +\usepackage{graphicx} +\usepackage[export]{adjustbox} +\usepackage{verbatimbox} +\usepackage{listings} +\usepackage{seqsplit} +\usepackage{soul} +\usepackage{substr} +\usepackage{colortbl} +\usepackage{booktabs,tabularx} +\usepackage[normalem]{ulem} + +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{footline}[frame number] + +\IfSubStringInString{\detokenize{-handouts}}{\jobname}{ + \mode<handout>{\setbeamercolor{background canvas}{bg=black!10}} + \pgfpagesuselayout{2 on 1}[letterpaper,border shrink=5mm] +}{} + +\IfSubStringInString{\detokenize{-onlynotes}}{\jobname}{ + \setbeameroption{show only notes} +}{} + +\IfSubStringInString{\detokenize{-onlyslides}}{\jobname}{ + % nothing +}{} + +\IfSubStringInString{\detokenize{-pympress}}{\jobname}{ + \usepackage{pgfpages} + \setbeameroption{show notes on second screen} +}{} + +\IfSubStringInString{\detokenize{-slidesandnotes}}{\jobname}{ + \setbeameroption{show notes} +}{} + +% https://tex.stackexchange.com/questions/249040/scale-column-of-a-table-in-percentage-of-textwidth#answer-249043 +\newdimen\netTableWidth +\newcommand{\columnsCount}[1]{% + \netTableWidth=\dimexpr + \linewidth + - #1\tabcolsep - #1\tabcolsep + - #1\arrayrulewidth -2\arrayrulewidth + \relax% +} + +\usepackage{tikzpagenodes} +\usetikzlibrary{calc} +\tikzset{frameoverlay/.style={overlay,remember picture,shift={(current page text area.south west)}, +x={($(current page text area.south east)-(current page text area.south west)$)}, +y={($(current page text area.north west)-(current page text area.south west)$)},nodes={anchor=south west}}} + +\newcommand{\logosInHeading}{ + \begin{tikzpicture}[frameoverlay] + \path + (-0.079,1.005) node{ + \includegraphics[ + height=0.5in + ]{Logo-WIET-2021.png} + } + (0.835,0.966) node{ + \includegraphics[ + height=0.7in + ]{agh_idub_pl_cmyk.pdf} + }; + \end{tikzpicture} +} + +\makeatletter +\long\def\beamer@@frametitle[#1]#2{% + \beamer@ifempty{#2}{}{% + \gdef\insertframetitle{\centering{#2\ifnum\beamer@autobreakcount>0 + \relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}% + \gdef\beamer@frametitle{#2}% + \gdef\beamer@shortframetitle{#1}% + \logosInHeading{}% +}% +} +\makeatother + +\newcommand{\svgframe}[2]{% + \begin{frame}{#1} + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{#2} + \begin{center} + \textit{(na podstawie opracowania własnego)} + \end{center} + \end{frame}% +} + +\newcommand{\puttitle}{Potwierdzanie autentyczności oprogramowania poprzez + powtarzalność kompilacji} + +\newcommand{\putauthorname}{Wojciech Kosior} + +\hypersetup{ + pdftitle = {\puttitle}, + pdfauthor = {\putauthorname} +} + +\title{\puttitle{}} +\date{} + +\begin{document} + +\begin{frame}{} + \titlepage + + \vspace{-0.5in} + + \renewcommand{\arraystretch}{\baselinestretch} + \columnsCount{2} + + {\small + \begin{tabular}{ m{.35\netTableWidth} m{.65\netTableWidth} } + Autor: & \putauthorname \\ + Opiekun pracy: & dr hab.\ inż.\ Piotr Pacyna, prof.\ AGH \\ + Wydział: & Informatyki, Elektroniki i Telekomunikacji + \end{tabular} + } + + \renewcommand{\arraystretch}{1.5} + + \vspace{2in} + \begin{tikzpicture}[frameoverlay] + \path + (0.22,0.027) node{ + \includegraphics[ + height=0.85in + ]{Logo-WIET-2021.png} + } + (0.5,0.005) node{ + \includegraphics[ + height=1.05in + ]{agh_idub_pl_cmyk.pdf} + }; + \end{tikzpicture} +\end{frame} + +\note{ + \begin{itemize} + \item nazywam się\ldots{} + \item opiekun to\ldots{} + \item praca o: zabezpieczenie łańcucha dostaw oprogramowania + \end{itemize} +} + +\svgframe{Złożoność procesu kompilacji}{build-process-overview.svg} + +\note{ + \begin{itemize} + \item kompilacja: szeroko rozumiana (pakiety, ``budowanie'') + \item slajd: przykład + \item kompilacja do norm dystrybucji: nawet setki lini skryptu-przepisu na + pakiet + \end{itemize} +} + +\begin{frame}{Najważniejsze pojęcia} + \begin{itemize} + \item powtarzalność \textit{(reproducibility)} + \item hermetyczność + \item bootstrapowalność + \end{itemize} + + \vspace{0.3in} + + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{boxes.svg} +\end{frame} + +\note{ + \begin{itemize} + \item przy każdym powtórzeniu tej samej kompilacji -- bit-do-bitu identyczny + wynik + \item wykorzystanie wielokrotnej kompilacji + \begin{itemize} + \item różne infrastruktury/organizacje + \item utrudnione zanieczyszczenie oprogramowania złośliwym kodem w procesie + kompilacji + \end{itemize} + \item warunek konieczny niewystarczający powtarzalności: niezależność od + zmiennych + \begin{itemize} + \item zainstalowane programy, zasoby sieciowe + \item stąd: izolowanie procesu na poziomie sieci i systemu plików + \end{itemize} + \item pakiet samozależny: pakowanie + \end{itemize} +} + +\begin{frame}{Cel pracy} + \begin{itemize} + \item \sout{zapewnić deterministyczne działanie kompilatorów i powiązanych + narzędzi} + \item \textbf{zapewnić niezmienność elementów na wejściu procesu + (re)kompilacji} + \item \textbf{uniknąć pojedynczych punktów podatności \textit{(single points + of failure)} w procesie} + \end{itemize} +\end{frame} + +\note{ + \begin{itemize} + \item usuwanie źródeł niepowtarzalności w procesie kompilacji + \begin{itemize} + \item dotychczasowe prace innych osób + \item \textbf{nie} przedmiot tych badań + \end{itemize} + \item zamiast tego + \begin{itemize} + \item konkretne wersje zależności, narzędzi i (meta)danych w 1. kompilacji + \begin{itemize} + \item zagwarantowanie, że można je zidentyfikować + \item zagwarantowanie, że przy powtórzeniu kompilacji nie zostaną użyte + inne wersje + \end{itemize} + \item proces rozwiązywania zależności + \begin{itemize} + \item często wykonywany automatycznie + \item weryfikowanie powtarzalności jego wyniku + \end{itemize} + \end{itemize} + \end{itemize} +} + +\begin{frame}{Stan dotychczasowy} + \vspace{-0.2in} + + \begin{center} + Kompilacja pakietów + \end{center} + + \renewcommand{\arraystretch}{\baselinestretch} + \columnsCount{2} + + {\small + \begin{tabular}{ + >{\centering\arraybackslash}m{.5\netTableWidth} + >{\centering\arraybackslash}m{.5\netTableWidth} + } + powtarzalność monitorowana & powtórzenie utrudnione + \end{tabular} + } + + \vspace{-0.3in} + + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{ecosystems-state.svg} + + \begin{center} + \textit{(na podstawie opracowania własnego, z wykorzystaniem logotypów + istniejących projektów)} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item praca skupiona na: repozytoria z tysiącami pakietów + \item Debian, GNU Guix + \begin{itemize} + \item state of the art + \item zasady działania opisane w pracy + \end{itemize} + \item repozytoria specyficzne dla konkretnych ekosystemów + \begin{itemize} + \item różna higiena + \item zautomatyzowanie rekompilacji = wyzwanie + \end{itemize} + \end{itemize} +} + +\begin{frame}{Postęp pakowania w 2025} + \renewcommand{\arraystretch}{1.5} + \columnsCount{4} + + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.43\netTableWidth} + >{\raggedright\arraybackslash}p{.19\netTableWidth} + >{\raggedright\arraybackslash}p{.19\netTableWidth} + >{\raggedright\arraybackslash}p{.19\netTableWidth} + } + \rowcolor{gray!40} + \textit{\textbf{ekosystem}} & + \textbf{PyPI} & + \textbf{npm} & + \textbf{crates} \\ + + \textit{\textbf{pakiety w GNU Guix}} & + $3\,699$ & + $55$ & + $3\,704$ \\ + + \textit{\textbf{pakiety w Debianie}} & + $5\,312$ & + $998$ & + $1\,424$ + \end{tabular} + \begin{center} + \textit{(na podstawie opracowania własnego)} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item stwierdzono: powolne przedostawanie się oprogramowania npm do + reprodukowalnych dystrybucji + \item \textbf{opisane obszernie} w pracy przypuszczenia powodów: trudne + bootstrapowanie, niskie zainteresowanie taką formą pakietów, \textbf{duże + drzewa zależności}, \textbf{dopuszczanie zależności występujących w wielu + wersjach jednocześnie} (aka konfliktów) + \end{itemize} +} + +\begin{frame}{Ekosystem npm} + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{dependee_counts.svg} + \begin{center} + \textit{(na podstawie opracowania własnego)} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item w pracy opisany dokładnie ekosystem npm (rodzaje zależności itd.) + \item popularność = ile innych pakietów używa danego pakietu + \item badanie Goswami'ego z 2019, porównanie, analizowane zmiany + \item ogółem olbrzymie drzewa zależności, po ponad 1000 pakietów do projektu + \item pytanie: jaka część zależności faktycznie potrzebna do kompilacji + pakietu? + \end{itemize} +} + +\begin{frame}{Problem rozwiązywania zależności} + Dotychczasowe i zaproponowane podejścia do powtarzalności (``paradygmaty'') + + \vspace{0.5\baselineskip} + + \begin{itemize} + \setcounter{enumi}{-1} + \itemsep0.5\baselineskip + \item Brak powtarzalności \pause + \item Zależności ustalone, brak kroku rozwiązywania zależności (GNU Guix) + \item Powtarzalność kompilacji \textbf{nieobejmująca rozwiązywania + zależności} (pliki lockfile, Debian) \pause + \item Rozwiązywanie zależności powtarzane w ramach rekompilacji (nowe!) + \end{itemize} + + \note<2>{ + \begin{itemize} + \item klasyczne podejście (paradygmat 2) -- określić zestaw zależności, + udostępnić je dla procesu kompilacji pakietu, wykonać proces, najlepiej w + izolacji + \begin{itemize} + \item powtórzenia w oparciu o określone raz drzewo zależności + \item samo budowanie drzewa -- generalnie nie powtarzalne + \end{itemize} + \item Guix, Nix: przepis na pakiet = zdefiniowane wszystko + \end{itemize} + } + + \note<3>{ + \begin{itemize} + \item zależności nieustalone a priori kompilacji + \item odpowiednie mechanizmy $\rightarrow{}$ gwarantowanie dostępności i + niezmienności metadanych \textbf{potencjalnych} zależności + \item budowanie drzewa zależności -- powtarzalne + \end{itemize} + } +\end{frame} + +\begin{frame}{Najważniejsze pytania badawcze} + \begin{itemize} + \itemsep0.5\baselineskip + \item Jakie są typowe rozmiary drzew zależności projektów npm? + \item W jakim stopniu można je zredukować? + \item Czy rozmiary drzew zależności i zależności w wielu wersjach jednocześnie + stanowią główną przeszkodę w pakowaniu oprogramowania npm? + \end{itemize} +\end{frame} + +\note{ + \begin{itemize} + \item interesują: drzewa zależności \textbf{kompilacji} + \item dodatkowo: eliminacja zależności bezpośrednich, pośrednich, czy + bezpośrednich+pośrednich? + \item i.e., opisane wcześniej przypuszczenia głównych problemów – czy słuszne? + \end{itemize} +} + +\begin{frame}{Eksperyment} + \begin{itemize} + \itemsep0.5\baselineskip + \item Próba rekompilacji najpopularniejszych pakietów z npm Registry + \item Eliminacja zbędnych zależności + \item Określenie minimalnych drzew zależności + \end{itemize} + + \vspace{0.3in} + + \begin{center} + \includesvg[ + width=0.2\linewidth, + inkscapelatex=false + ]{construction-crane.svg} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item ok. 300 najpopularniejszych pakietów z npm Registry + \item sprawdzenie: czy rekompilacja wg ``standardowej'' procedury możliwa + \item czy usunięcie danej zależności = błąd kompilacji? + \item rekompilacja wielokrotna każdego pakietu + \end{itemize} +} + +\begin{frame}{Statusy pakietów} + \vspace{-0.25\baselineskip} + + \begin{center} + \includesvg[ + width=0.95\linewidth, + inkscapelatex=false + ]{status-counts.svg} + \end{center} + + \begin{center} + \textit{(na podstawie opracowania własnego)} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item konwencjonalne procedury -- automatyczne zrekompilowanie 10-20\% pakietów + \item porównywalnie, jak u Goswami'ego w 2019 + \item pakiety zrekompilowane z powodzeniem: dalsze testowanie + \end{itemize} +} + +\begin{frame}{Rozmiary drzew zależności} + \includesvg[ + width=\linewidth, + inkscapelatex=false + ]{tree-size-stats-no-bc.svg} + + \vspace{-0.5\baselineskip} + + \begin{center} + \textit{(na podstawie opracowania własnego)} + \end{center} +\end{frame} + +\note{ + \begin{itemize} + \item wykres: pierwotne i zredukowane drzewa zależności pakietów + \item porównanie: pakiety, które mają odpowiedniki w Debianie i pozostałe + \item brak spodziewanego związku ``rozmiar drzewa zależności : obecność w + Debianie'' + \item nieusuwalne konflikty zależności -- również brak spodziewanego związku z + obecnością w Debianie + \end{itemize} +} + +\begin{frame}{Wnioski} + \begin{itemize} + \itemsep0.5\baselineskip + \item Główne przeszkody w pakowaniu oprogramowania npm inne od przypuszczanych + \pause + \item Dotychczasowe paradygmaty najprawdopodobniej wystarczające do + zastosowania powtarzalności kompilacji do oprogramowania npm\ldots{} \pause + \item \ldots{}za to powtarzalnie kompilowane pakiety w dystrybucjach -- + nieadekwatne do potrzeb developerów \pause + \item Poziom bezpieczeństwa wynikający z powtarzalności kompilacji trudny + do osiągnięcia inaczej\ldots{} \pause + \item \ldots{}ale rozpowszechnienie tego środka wymaga kompatybilności z + dominującymi narzędziami i formatami pakietów + \end{itemize} + + \note<1>{ + \begin{itemize} + \item główne przeszkody: nie wielkość drzew, nie konflikty zależności + \item raczej bootstrapowalność, marne zainteresowanie takimi pakietami w + formacie Guix'a + \end{itemize} + } + + \note<2>{ + \begin{itemize} + \item nowy paradygmat niekoniecznie potrzebny + \item Guix: trudna bootstrapowalność, ale też OK + \item Guix/Nix: brak SPOF jak w Debianie + \end{itemize} + } + + \note<3>{ + \begin{itemize} + \item zwykła, prosta komenda ``npm install'' + \item nie pożeniona z pakietami Guix + \end{itemize} + } + + \note<4>{ + \begin{itemize} + \item SolarWinds 2020 + \item pojednycza, niby dobrze zabezpieczona infra + \end{itemize} + } + + \note<5>{ + \begin{itemize} + \item Święty Graal: repozytorium z powtarzalnie zkompilowanymi pakietami + \textbf{w formacie npm} + \item analogicznie dla PyPI itd. + \end{itemize} + } +\end{frame} + +\begin{frame}{Dziękuję za uwagę!} + Grafiki podmiotów trzecich wykorzystane w prezentacji: + + \vspace{\baselineskip} + + {\small + \columnsCount{3} + \begin{tabular}{ + >{\raggedright\arraybackslash}p{.34\netTableWidth} + >{\raggedright\arraybackslash}p{.20\netTableWidth} + >{\raggedright\arraybackslash}p{.46\netTableWidth} + } + \href{https://en.wikipedia.org/wiki/File:Debian-OpenLogo.svg}{logo + Debian} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Debian-OpenLogo.svg} & + %% -- Software in the Public Interest, Inc (na licencjach + %% \href{https://creativecommons.org/licenses/by-sa/3.0/legalcode.en}{CC BY-SA + %% 3.0 Unported} lub + %% \href{https://www.gnu.org/licenses/lgpl-3.0.html#license-text}{GNU LGPL + %% wersja 3} lub późniejsza) + \\ + + \href{https://en.wikipedia.org/wiki/File:Guix_logo.svg}{logo GNU Guix} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Guix_logo.svg} & + %% -- + %% Luis Felipe López Acevedo (na licencji + %% \href{https://creativecommons.org/licenses/by-sa/4.0/legalcode.en}{CC BY-SA + %% 4.0 International}) + \\ + + \href{https://en.wikipedia.org/wiki/File:NixOS_logo.svg}{logo NixOS} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{NixOS_logo.svg} & + %% -- + %% Tim Cuthbertson (na licencji + %% \href{https://creativecommons.org/licenses/by/4.0/legalcode.en}{CC BY 4.0 + %% International}) + \\ + + \href{https://en.wikipedia.org/wiki/File:Archlinux-logo-standard-version.svg}{logo + Arch Linux} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Archlinux-logo-standard-version.svg} & + %% -- Judd Vinet, Aaron Griffin i Levente Polyák (na licencji GNU + %% GPL wersja 2 lub późniejsza) + \\ + + \href{https://en.wikipedia.org/wiki/File:Npm-logo.svg}{logo npm} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Npm-logo.svg} & + %% -- npm, Inc. + \\ + + \href{https://en.wikipedia.org/wiki/File:PyPI_logo.svg}{logo PyPI} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{PyPI_logo.svg} & + %% -- Python Software Foundation (na licencji GNU GPL wersja 2 lub + %% późniejsza) + \\ + + \href{https://en.wikipedia.org/wiki/File:Rust_programming_language_black_logo.svg}{logo + Rust} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Rust_programming_language_black_logo.svg} & + %% -- Rust Foundation (na licencji + %% \href{https://creativecommons.org/licenses/by/4.0/legalcode.en}{CC BY + %% 4.0 International}) + \\ + + \href{https://en.wikipedia.org/wiki/File:Apache_Maven_logo.svg}{logo + Apache Maven} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Apache_Maven_logo.svg} & + %% -- Apache Software Foundation (na licencji + %% \href{https://www.apache.org/licenses/LICENSE-2.0}{Apache 2.0}) + \\ + + \href{https://seeklogo.com/vector-logo/272997/composer}{logo Composer} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{composer-seeklogo.svg} & + %% -- WizardCat (na licencji + %% \href{https://github.com/composer/composer/raw/main/LICENSE}{Expat}) + \\ + + \href{https://openclipart.org/detail/202046/loupe-magnifer}{lupa} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{Loupe.svg} & + \href{https://openclipart.org/artist/spadassin}{openclipart.org/artist/spadassin} + \\ + + \href{https://openclipart.org/detail/3574/-by--3574}{kartonowe pudło} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{bogdanco_Simple_cardboard_box.svg} & + \href{https://openclipart.org/artist/bogdanco}{openclipart.org/artist/bogdanco} + \\ + + \href{https://openclipart.org/detail/168285/construction-crane}{żuraw + budowlany} & + \includesvg[ + height=\baselineskip, + inkscapelatex=false + ]{construction-crane.svg} & + \href{https://openclipart.org/artist/Markacio}{openclipart.org/artist/Markacio} + \end{tabular} + } +\end{frame} + +\end{document} + +% https://publicdomainvectors.org/en/free-clipart/Vector-image-of-closed-cardboard-box/19548.html +% https://publicdomainvectors.org/en/free-clipart/Loupe-magnifer/73563.html diff --git a/rebuilds-contamination-1party.svg b/rebuilds-contamination-1party.svg new file mode 100644 index 0000000..3f76cc6 --- /dev/null +++ b/rebuilds-contamination-1party.svg @@ -0,0 +1,653 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="rebuilds-contamination-1party.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="2.5584366" + inkscape:cx="264.22386" + inkscape:cy="370.34336" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + showgrid="false" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="marker33" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33" /> + </marker> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /> + <marker + style="overflow:visible" + id="marker33-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8" /> + </marker> + <marker + style="overflow:visible" + id="marker33-1-7" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8-8" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="400" + x="0" + y="0" /> + <text + xml:space="preserve" + style="font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + x="659.03473" + y="354.23218" + id="text60"><tspan + sodipodi:role="line" + id="tspan60" + style="stroke-width:1" + x="659.03473" + y="354.23218" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text61" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-7.2237155,-36.18825)"><tspan + x="666.77734" + y="359.8067" + id="tspan11"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan4">Build outputs do match, </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan21"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan20">contamination was not </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan24"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan22">detected.</tspan></tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 175.73,365.212 v -83.559 h 42.818" + id="path61" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 225.54798,304.337 2e-5,-15.684" + id="path66" + sodipodi:nodetypes="cc" /> + <use + x="0" + y="0" + xlink:href="#g65" + id="use73" + transform="translate(457.33403,139.85734)" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text73" + inkscape:label="text3" + transform="matrix(0.99999992,0,0,1.0000016,-481.63695,-245.13181)"><tspan + x="666.77734" + y="359.8067" + id="tspan28"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan25">Contamination gets </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan30"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan29">introduced by deliberate </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan36"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan35">human action during </tspan></tspan><tspan + x="666.77734" + y="400.58795" + id="tspan38"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan37">every build.</tspan></tspan></text> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4-9" + width="800" + height="400" + x="0" + y="0" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 160,0 V 400" + id="path12" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435001px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="79.771561" + y="21.935478" + id="text3" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="79.554054" + y="21.935478">build inputs</tspan></text> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="m 319.726,47.935 v 304.13" + id="path13" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="m 480,47.935 v 304.13" + id="path14" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 640,0 V 400" + id="path15" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.89056" + y="21.935417" + id="text23" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan23" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999996" + x="399.67307" + y="21.935417">software distributor; a single party, which rebuilds software on multiple infrastructures</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="719.70563" + y="21.935364" + id="text26" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan26" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="719.48816" + y="21.935364">software consumer</tspan></text> + <g + id="g1" + transform="translate(2.6e-5,139.858)"> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect26" + width="114.616" + height="85.299004" + x="182.692" + y="101.534" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="235.13669" + y="116.79645" + id="text32"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="234.91919" + y="116.79645" + id="tspan32">build environment</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect33" + width="114.616" + height="29" + x="182.692" + y="157.83273" /> + <g + id="g34" + transform="matrix(0.99999647,0,0,1,179.58561,-89.151178)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text34"><tspan + sodipodi:role="line" + id="tspan34" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">build</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect34" + width="37.526001" + height="14.5" + x="41.6516" + y="214.58449" /> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1-7)" + d="M 277.08,373.56518 V 328.6911" + id="path1" + sodipodi:nodetypes="cc" + transform="translate(-2.6e-5,-139.858)" /> + <g + id="g65" + transform="translate(-51.211273,-170.53722)"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#212121;stroke-width:0.75;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none" + id="path62" + cx="276.75925" + cy="312.33221" + r="5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="path63" + cx="275.11801" + cy="310.72949" + r="0.5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="circle63" + cx="278.40048" + cy="310.72949" + r="0.5" /> + <path + style="fill:none;fill-opacity:1;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 274.546,314.57533 c 1.53726,-1.47398 2.87901,-1.47799 4.425,0.0286" + id="path65" + sodipodi:nodetypes="cc" /> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.77739" + y="175.33215" + id="text33" + transform="translate(2.6e-5,139.858)"><tspan + sodipodi:role="line" + id="tspan33" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="239.55989" + y="175.33215">infrastructure A</tspan></text> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect71" + width="114.616" + height="295.29874" + x="22.691999" + y="58.580002" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,272.54133 h 79.929" + id="path17" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,181.13525 239.929,3.1e-4" + id="path46" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,89.729 399.929,3.1e-4" + id="path47" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 260.763,272.54164 417.808,-7.3e-4" + id="path48" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 420.763,181.13556 257.807,-3.4e-4" + id="path49" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 580.763,89.72931 97.807,-2e-4" + id="path50" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect53" + width="114.616" + height="169.217" + x="662.69202" + y="78.520996" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="M 720,264.688 V 241.73833" + id="path53" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999999, 0.999999;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 766.724,247.738 v 63.13001" + id="path60" + sodipodi:nodetypes="cc" /> + <g + id="g3"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:start;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="49.270584" + y="158.74438" + id="text69"><tspan + sodipodi:role="line" + id="tspan69" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="158.74438">software</tspan><tspan + sodipodi:role="line" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="172.33813" + id="tspan72">source code</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,159.672 H 110.139" + id="path55" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,173.267 H 110.139" + id="path18" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g12"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="74.926155" + y="210.2836" + id="text70"><tspan + sodipodi:role="line" + id="tspan70" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="74.708656" + y="210.2836">build tools</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,211.211 H 100.448" + id="path19" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g10"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="69.060753" + y="248.22868" + id="text71"><tspan + sodipodi:role="line" + id="tspan71" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="68.843254" + y="248.22868">libraries</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 49.860001,249.156 h 38.894" + id="path20" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g1" + id="use11" + transform="translate(160,-91.405997)" + style="display:inline" /> + <use + x="0" + y="0" + xlink:href="#g1" + id="use12" + transform="translate(320,-182.812)" + style="display:inline" /> + <g + id="g13"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="720.13354" + y="93.78334" + id="text53"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.91602" + y="93.78334" + id="tspan59">hash: 07ef5…</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82029,94.711 h 68.361" + id="path3-0" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g13" + id="use13" + transform="translate(1.22e-4,91.406111)" + style="display:inline" /> + <g + id="g14" + transform="translate(0,-27.187667)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.21313" + y="302.72876" + id="text50"><tspan + sodipodi:role="line" + id="tspan50" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="718.99561" + y="302.72876">built program</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82094,303.656 h 66.848" + id="path3-0-6" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g16" + transform="matrix(1.0000003,0,0,0.99998332,-2.6011835e-5,171.64614)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="190.52602" + y="204.42259" + id="text27"><tspan + sodipodi:role="line" + id="tspan27" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="190.30852" + y="204.42259">people</tspan></text> + <g + id="g1-2" + transform="translate(2.8864938,-153.44257)"> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 171.28348,358.79257 h 33.121" + id="path16" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 214.541,373.56518 277.08,373.565" + id="path28" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text31" + transform="translate(0,10.49994)" + x="-8.5231352" + y="0"><textPath + xlink:href="#path28" + startOffset="50%" + id="textPath31"><tspan + id="tspan31" + style="text-align:center;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«manage» </tspan></textPath></text> + <path + style="fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 277.08,373.56518 h 160 v -91.406" + id="path2" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 438.9225,373.56518 H 597.08 v -182.812" + id="path4" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 175.73,281.653 -0.5,-90.89982 203.318,-0.50618" + id="path5" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="M 175.23,190.75318 174.73,99.85336 538.548,98.841" + id="path6" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="399.87259" + y="223.78445" + id="text6"><tspan + sodipodi:role="line" + id="tspan6" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="399.65509" + y="223.78445">infrastructure B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="559.78229" + y="132.37845" + id="text7"><tspan + sodipodi:role="line" + id="tspan7" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="559.56476" + y="132.37845">infrastructure C</tspan></text> + <use + x="0" + y="0" + xlink:href="#g13" + id="use7" + transform="translate(-2.746582e-4,143.81311)" + style="display:inline" /> + </g> +</svg> diff --git a/rebuilds-contamination-1party.svg.license b/rebuilds-contamination-1party.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/rebuilds-contamination-1party.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/rebuilds-contamination-diagram.svg b/rebuilds-contamination-diagram.svg new file mode 100644 index 0000000..f97fa85 --- /dev/null +++ b/rebuilds-contamination-diagram.svg @@ -0,0 +1,675 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="rebuilds-contamination-diagram.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="6.0580389" + inkscape:cx="1024.0938" + inkscape:cy="477.79489" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="marker33" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33" /> + </marker> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /> + <marker + style="overflow:visible" + id="marker33-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8" /> + </marker> + <marker + style="overflow:visible" + id="marker33-1-2" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8-2" /> + </marker> + <marker + style="overflow:visible" + id="marker33-1-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8-29" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="400" + x="0" + y="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.76953" + y="264.78412" + id="text51"><tspan + sodipodi:role="line" + id="tspan51" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.552" + y="264.78412">hash: cfd21…</tspan></text> + <text + xml:space="preserve" + style="font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + x="659.03473" + y="354.23218" + id="text60"><tspan + sodipodi:role="line" + id="tspan60" + style="stroke-width:1" + x="659.03473" + y="354.23218" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text61" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-7.2237155,-21)"><tspan + x="666.77734" + y="359.8067" + id="tspan9"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan2">Build outputs do not </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan19"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan18">match, the build was </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan22"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan21">possibly contaminated.</tspan></tspan></text> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 175.73,360.615 v -51.774 h 42.818" + id="path61" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 225.54798,331.525 2e-5,-15.684" + id="path66" + sodipodi:nodetypes="cc" /> + <use + x="0" + y="0" + xlink:href="#g65" + id="use73" + transform="translate(457.334,-9.9995547e-4)" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text73" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-489.71147,-140.13151)"><tspan + x="666.77734" + y="359.8067" + id="tspan28"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan24">Contamination gets </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan30"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan29">introduced by deliberate </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan37"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan36">human action or spreads </tspan></tspan><tspan + x="666.77734" + y="400.58795" + id="tspan39"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan38">from infrastructure.</tspan></tspan></text> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4-9" + width="800" + height="400" + x="0" + y="0" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 160,0 V 400" + id="path12" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435001px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="79.771561" + y="21.935478" + id="text3" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="79.554054" + y="21.935478">build inputs</tspan></text> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 320,0 V 400" + id="path13" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 480,0 V 400" + id="path14" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 640,0 V 400" + id="path15" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.5524" + y="21.935387" + id="text20" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan20" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.5524" + y="21.935387">party A</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.3349" + y="35.529137" + id="tspan35">(the original distributor)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.89056" + y="21.935417" + id="text23" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan23" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999996" + x="399.67307" + y="21.935417">party B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="559.80231" + y="21.935371" + id="text25" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan25" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="559.58478" + y="21.935371">party C</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="719.70563" + y="21.935364" + id="text26" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan26" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="719.48816" + y="21.935364">software consumer</tspan></text> + <g + id="g1" + transform="translate(2.6e-5,167.046)"> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect26" + width="114.616" + height="85.299004" + x="182.692" + y="101.534" /> + <g + id="g16"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="190.52602" + y="204.42259" + id="text27"><tspan + sodipodi:role="line" + id="tspan27" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="190.30852" + y="204.42259">people</tspan></text> + <g + id="g1-2" + transform="translate(2.8864938,-153.44257)"> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 171.28348,358.79257 h 33.121" + id="path16" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="M 214.54097,201.92241 H 277.079 l 3e-5,-13.0893" + id="path28" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text31" + transform="translate(0,10.499939)" + x="-8.5231352" + y="0"><textPath + xlink:href="#path28" + startOffset="50%" + id="textPath31"><tspan + id="tspan31" + style="text-align:center;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«manage» </tspan></textPath></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="235.13669" + y="116.79645" + id="text32"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="234.91919" + y="116.79645" + id="tspan32">build environment</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.77739" + y="175.33215" + id="text33"><tspan + sodipodi:role="line" + id="tspan33" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="239.55989" + y="175.33215">infrastructure</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect33" + width="114.616" + height="29" + x="182.692" + y="157.83273" /> + <g + id="g34" + transform="matrix(0.99999647,0,0,1,179.58561,-89.151178)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text34"><tspan + sodipodi:role="line" + id="tspan34" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">build</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect34" + width="37.526001" + height="14.5" + x="41.6516" + y="214.58449" /> + </g> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect71" + width="114.616" + height="295.29874" + x="22.691999" + y="58.580002" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,299.729 h 79.929" + id="path17" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,194.729 239.929,3.1e-4" + id="path46" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 139.308,89.729 399.929,3.1e-4" + id="path47" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 260.763,299.72931 417.808,-7.3e-4" + id="path48" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 420.763,194.72931 257.807,-3.4e-4" + id="path49" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 580.763,89.72931 97.807,-2e-4" + id="path50" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect53" + width="114.616" + height="196.405" + x="662.69202" + y="78.520996" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="M 720,291.87542 V 268.926" + id="path53" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999999, 0.999999;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="M 766.724,274.92599 V 326.056" + id="path60" + sodipodi:nodetypes="cc" /> + <g + id="g3"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:start;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="49.270584" + y="158.74438" + id="text69"><tspan + sodipodi:role="line" + id="tspan69" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="158.74438">software</tspan><tspan + sodipodi:role="line" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="172.33813" + id="tspan72">source code</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,159.672 H 110.139" + id="path55" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,173.267 H 110.139" + id="path18" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g12"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="74.926155" + y="210.2836" + id="text70"><tspan + sodipodi:role="line" + id="tspan70" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="74.708656" + y="210.2836">build tools</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,211.211 H 100.448" + id="path19" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g10"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="69.060753" + y="248.22868" + id="text71"><tspan + sodipodi:role="line" + id="tspan71" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="68.843254" + y="248.22868">libraries</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 49.860001,249.156 h 38.894" + id="path20" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g1" + id="use11" + transform="translate(160,-105)" + style="display:inline" /> + <use + x="0" + y="0" + xlink:href="#g1" + id="use12" + transform="translate(320,-210)" + style="display:inline" /> + <g + id="g13"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="720.13354" + y="93.78334" + id="text53"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.91602" + y="93.78334" + id="tspan59">hash: e013f…</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82029,94.711 h 68.361" + id="path3-0" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g13" + id="use13" + transform="translate(1.22e-4,104.99986)" + style="display:inline" /> + <g + id="g14"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.21313" + y="302.72876" + id="text50"><tspan + sodipodi:role="line" + id="tspan50" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="718.99561" + y="302.72876">built program</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82094,303.656 h 66.848" + id="path3-0-6" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g65" + transform="translate(-51.211247,-3.4912144)"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#212121;stroke-width:0.75;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none" + id="path62" + cx="276.75925" + cy="312.33221" + r="5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="path63" + cx="275.11801" + cy="310.72949" + r="0.5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="circle63" + cx="278.40048" + cy="310.72949" + r="0.5" /> + <path + style="fill:none;fill-opacity:1;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 274.546,314.57533 c 1.53726,-1.47398 2.87901,-1.47799 4.425,0.0286" + id="path65" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.81999,265.712 h 67.634" + id="path3-0-7" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1-2)" + d="m 374.541,263.96841 h 62.53803 l 3e-5,-13.0893" + id="path28-7" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1-1)" + d="m 534.541,158.96841 h 62.53803 l 3e-5,-13.0893" + id="path28-9" + sodipodi:nodetypes="ccc" /> + <use + x="0" + y="0" + xlink:href="#g65" + id="use1" + transform="matrix(1.3,0,0,1.3,474.1624,-26.7508)" /> + </g> +</svg> diff --git a/rebuilds-contamination-diagram.svg.license b/rebuilds-contamination-diagram.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/rebuilds-contamination-diagram.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/rebuilds-inconclusive-diagram.svg b/rebuilds-inconclusive-diagram.svg new file mode 100644 index 0000000..e4c3709 --- /dev/null +++ b/rebuilds-inconclusive-diagram.svg @@ -0,0 +1,826 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="rebuilds-inconclusive-diagram.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="0.65728573" + inkscape:cx="350.68462" + inkscape:cy="324.05998" + inkscape:window-width="1440" + inkscape:window-height="876" + inkscape:window-x="1280" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="marker33" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33" /> + </marker> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /> + <marker + style="overflow:visible" + id="marker33-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8" /> + </marker> + <marker + style="overflow:visible" + id="marker33-5" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-4" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="400" + x="0" + y="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text73" + inkscape:label="text3" + transform="matrix(0.99999408,0,0,1.0000441,-491.61904,-101.47374)"><tspan + x="666.77734" + y="359.8067" + id="tspan2"><tspan + style="font-style:italic" + id="tspan1">Timestamp gets included.</tspan></tspan></text> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 160,0 V 400" + id="path2" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="79.771561" + y="21.93548" + id="text3" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="79.554062" + y="21.93548">build inputs</tspan></text> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 320,0 V 400" + id="path5" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 480,0 V 400" + id="path6" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 640,0 V 400" + id="path7" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="stroke-opacity:1;stroke-dashoffset:0;stroke-dasharray:3.99999, 3.99999;stroke-miterlimit:2.3;stroke-linejoin:round;stroke-width:0.999993;stroke:none;fill-opacity:1;fill:#212121;opacity:1;text-anchor:middle;letter-spacing:-0.434999px;text-align:center;-inkscape-font-specification:'DejaVu Sans';font-family:'DejaVu Sans';font-size:10.875px;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;" + x="239.5524" + y="21.935394" + id="text20" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan20" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.5524" + y="21.935394">party A</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.3349" + y="21.935394" + id="tspan35">(the original distributor)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.89056" + y="21.935427" + id="text23" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan23" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999996" + x="399.67307" + y="21.935427">party B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="559.80231" + y="21.935371" + id="text25" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan25" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="559.58478" + y="21.935371">party C</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="719.70563" + y="21.93536" + id="text26" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan26" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="719.48816" + y="21.93536">software consumer</tspan></text> + <g + id="g1" + transform="translate(2.6239157e-5,167.046)"> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect26" + width="114.616" + height="85.299004" + x="182.692" + y="101.534" /> + <g + id="g11"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="190.52602" + y="204.42259" + id="text27"><tspan + sodipodi:role="line" + id="tspan27" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="190.30852" + y="204.42259">people</tspan></text> + <g + id="g1-2" + transform="translate(2.8864938,-153.44257)"> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 171.28348,358.79257 h 33.121" + id="path10" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 214.54097,201.92241 H 277.079 l 3e-5,-13.0893" + id="path28" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text31" + transform="translate(0,10.499939)" + x="-8.5231352" + y="0"><textPath + xlink:href="#path28" + startOffset="50%" + id="textPath31"><tspan + id="tspan31" + style="text-align:center;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«manage» </tspan></textPath></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="235.13669" + y="116.79645" + id="text32"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="234.91919" + y="116.79645" + id="tspan32">build environment</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.77739" + y="175.33215" + id="text33"><tspan + sodipodi:role="line" + id="tspan33" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="239.55989" + y="175.33215">infrastructure</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect33" + width="114.616" + height="29" + x="182.692" + y="157.83273" /> + <g + id="g34" + transform="matrix(0.99999647,0,0,1,179.58561,-89.151178)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text34"><tspan + sodipodi:role="line" + id="tspan34" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">build</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect34" + width="37.526001" + height="14.5" + x="41.6516" + y="214.58449" /> + </g> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect71" + width="114.616" + height="295.29874" + x="22.691999" + y="58.580002" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,299.729 h 79.929" + id="path9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,194.729 239.929,3.1e-4" + id="path46" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,89.729 383.469,1.14e-4" + id="path47" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 260.763,299.72931 417.808,-7.3e-4" + id="path48" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 420.763,194.72931 257.807,-3.4e-4" + id="path49" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1,1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 595.223,89.729114 83.347,-3e-6" + id="path50" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect53" + width="114.616" + height="196.405" + x="662.69202" + y="78.521004" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 720,291.875 V 268.926" + id="path53" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999999, 0.999999;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 766.724,274.926 v 63.13" + id="path60" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999999, 0.999999;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-5)" + d="m 109.698,206.22937 h 11.878 V 270.4 H 80.000001 l 0,21.476" + id="path60-4" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 374.541,263.96841 h 62.53803 l 3e-5,-13.0893" + id="path28-5" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + x="659.03473" + y="354.23218" + id="text60"><tspan + sodipodi:role="line" + id="tspan60" + style="stroke-width:1" + x="659.03473" + y="354.23218" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text61" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-7.2237155,-9)" /> + <g + id="g3"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:start;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="49.270584" + y="158.74438" + id="text69"><tspan + sodipodi:role="line" + id="tspan69" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="158.74438">software</tspan><tspan + sodipodi:role="line" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="172.33813" + id="tspan72">source code</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,159.672 H 110.139" + id="path55" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,173.267 H 110.139" + id="path1" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g12"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="74.926155" + y="210.2836" + id="text70"><tspan + sodipodi:role="line" + id="tspan70" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="74.708656" + y="210.2836">build tools</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,211.211 H 100.448" + id="path3" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g10"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="69.060753" + y="248.22868" + id="text71"><tspan + sodipodi:role="line" + id="tspan71" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="68.843254" + y="248.22868">libraries</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 49.860001,249.156 h 38.894" + id="path4" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g1" + id="use11" + transform="translate(160,-105)" + style="display:inline" /> + <g + id="g13" + transform="translate(0,105.00011)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="720.13354" + y="93.78334" + id="text53"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.91602" + y="93.78334" + id="tspan59">hash: 2fe31…</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82029,94.711 h 68.361" + id="path3-0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="716.53064" + y="-11.216659" + id="text40"><tspan + sodipodi:role="line" + style="font-style:italic;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="716.31311" + y="-11.216659" + id="tspan40">no result yet</tspan></text> + </g> + <g + id="g14"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.21313" + y="302.72876" + id="text50"><tspan + sodipodi:role="line" + id="tspan50" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="718.99561" + y="302.72876">built program</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82094,303.656 h 66.848" + id="path3-0-6" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g21" + transform="translate(-21.211247,-3.4912144)"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#212121;stroke-width:0.75;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none" + id="path62" + cx="276.75925" + cy="312.33221" + r="5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="circle63" + cx="276.75925" + cy="312.33221" + r="0.5" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 276.75925,307.3322 v 1" + id="path16" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 276.75925,316.3322 v 1" + id="path17" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 281.75924,312.33221 h -1" + id="path18" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 272.75924,312.33221 h -1" + id="path19" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect20" + width="0.5" + height="3.4000001" + x="382.31351" + y="-170.09579" + transform="rotate(72)" /> + <rect + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect21" + width="0.5" + height="2" + x="-289.84192" + y="-302.46439" + transform="rotate(-177.6)" /> + </g> + <use + x="0" + y="0" + xlink:href="#g21" + id="use21" + transform="translate(501.156)" /> + <g + id="g22" + transform="translate(1.2207031e-4,171.00078)" + style="display:inline"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.76941" + y="93.78334" + id="text21"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.55188" + y="93.78334" + id="tspan21">hash: 8c9bf…</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82029,94.711 h 67.634" + id="path21" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#text73" + id="use22" + transform="translate(160,-105)" /> + <g + id="g28" + transform="translate(138.78875,-108.49121)"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#212121;stroke-width:0.75;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none" + id="circle22" + cx="276.75925" + cy="312.33221" + r="5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="circle23" + cx="276.75925" + cy="312.33221" + r="0.5" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 276.75925,307.3322 v 1" + id="path23" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 276.75925,316.3322 v 1" + id="path24" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 281.75924,312.33221 h -1" + id="path25" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 272.75924,312.33221 h -1" + id="path26" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect27" + width="0.5" + height="3.4000001" + x="382.31351" + y="-170.09579" + transform="rotate(72)" /> + <rect + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect28" + width="0.5" + height="2" + x="-289.84192" + y="-302.46439" + transform="rotate(-177.6)" /> + </g> + <g + id="g39" + transform="translate(320.00003,-42.954)" + style="display:inline"> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect29" + width="114.616" + height="85.299004" + x="182.692" + y="101.534" /> + <g + id="g30"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="190.52602" + y="204.42259" + id="text29"><tspan + sodipodi:role="line" + id="tspan29" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="190.30852" + y="204.42259">people</tspan></text> + <g + id="g29" + transform="translate(2.8864938,-153.44257)"> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 171.28348,358.79257 h 33.121" + id="path29" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 214.54097,201.92241 H 277.079 l 3e-5,-13.0893" + id="path30" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text30" + transform="translate(0,10.499939)" + x="-8.5231352" + y="0"><textPath + xlink:href="#path28" + startOffset="50%" + id="textPath30"><tspan + id="tspan30" + style="text-align:center;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«manage» </tspan></textPath></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.77739" + y="175.33215" + id="text37"><tspan + sodipodi:role="line" + id="tspan37" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="239.55989" + y="175.33215">infrastructure</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect37" + width="114.616" + height="29" + x="182.692" + y="157.83273" /> + <g + id="g40" + transform="translate(0.3690163,-7.8508891)"> + <g + id="g38" + transform="matrix(0.99999647,0,0,1,179.58561,-89.151178)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text38"><tspan + sodipodi:role="line" + id="tspan38" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.4146" + y="224.83426">queued</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="238.42801" + id="tspan39">for building</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect38" + width="70.446251" + height="30.202" + x="24.822426" + y="214.58418" /> + </g> + </g> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text41" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-7.2237155,-9)"><tspan + x="666.77734" + y="359.8067" + id="tspan5"><tspan + style="font-style:italic" + id="tspan4">Results are inconclusive.</tspan></tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:86.276;display:inline;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text42" + inkscape:label="text3" + transform="matrix(0.99999326,0,0,1.0000441,-624.5354,-57.093124)"><tspan + x="666.77734" + y="359.8067" + id="tspan7"><tspan + style="font-style:italic" + id="tspan6">include </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan9"><tspan + style="font-style:italic" + id="tspan8">timestamps in </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan11"><tspan + dx="0 0 0 0 0 0 0 0 0 0 0 0.43499899 -0.43499613" + style="font-style:italic" + id="tspan10">generated files</tspan></tspan></text> + </g> +</svg> diff --git a/rebuilds-inconclusive-diagram.svg.license b/rebuilds-inconclusive-diagram.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/rebuilds-inconclusive-diagram.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/rebuilds-no-contamination-diagram.svg b/rebuilds-no-contamination-diagram.svg new file mode 100644 index 0000000..804f163 --- /dev/null +++ b/rebuilds-no-contamination-diagram.svg @@ -0,0 +1,589 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="800pt" + height="400pt" + viewBox="0 0 800 400" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="rebuilds-no-contamination-diagram.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="pt" + inkscape:zoom="0.73303957" + inkscape:cx="821.23807" + inkscape:cy="521.79994" + inkscape:window-width="1280" + inkscape:window-height="749" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs1"> + <inkscape:path-effect + effect="powermask" + id="path-effect29" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect29" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <marker + style="overflow:visible" + id="marker33" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33" /> + </marker> + <inkscape:path-effect + effect="powermask" + id="path-effect28" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect28" + invert="false" + hide_mask="false" + background="false" + background_color="#ffffffff" /> + <inkscape:path-effect + effect="powermask" + id="path-effect27" + is_visible="true" + lpeversion="1" + uri="#mask-powermask-path-effect27" + invert="false" + hide_mask="false" + background="true" + background_color="#ffffffff" /> + <mask + maskUnits="userSpaceOnUse" + id="mask-powermask-path-effect29" /> + <marker + style="overflow:visible" + id="marker33-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8" /> + </marker> + <marker + style="overflow:visible" + id="marker33-1-6" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Wide arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" + d="M 3,-3 0,0 3,3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" + id="path33-8-1" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <rect + style="fill:#000000;fill-opacity:0;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect4" + width="800" + height="400" + x="0" + y="0" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 160,0 V 400" + id="path2" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="79.771561" + y="21.93548" + id="text3" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="79.554062" + y="21.93548">build inputs</tspan></text> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 320,0 V 400" + id="path5" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 480,0 V 400" + id="path6" + sodipodi:nodetypes="cc" /> + <path + style="opacity:1;fill:#000000;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + d="M 640,0 V 400" + id="path7" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="stroke-opacity:1;stroke-dashoffset:0;stroke-dasharray:3.99999, 3.99999;stroke-miterlimit:2.3;stroke-linejoin:round;stroke-width:0.999993;stroke:none;fill-opacity:1;fill:#212121;opacity:1;text-anchor:middle;letter-spacing:-0.434999px;text-align:center;-inkscape-font-specification:'DejaVu Sans';font-family:'DejaVu Sans';font-size:10.875px;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;" + x="239.5524" + y="21.935394" + id="text20" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan20" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.5524" + y="21.935394">party A</tspan><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995" + x="239.3349" + y="21.935394" + id="tspan35">(the original distributor)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="399.89056" + y="21.935427" + id="text23" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan23" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999996" + x="399.67307" + y="21.935427">party B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="559.80231" + y="21.935371" + id="text25" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan25" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="559.58478" + y="21.935371">party C</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="719.70563" + y="21.93536" + id="text26" + inkscape:label="text3"><tspan + sodipodi:role="line" + id="tspan26" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999993" + x="719.48816" + y="21.93536">software consumer</tspan></text> + <g + id="g1" + transform="translate(2.6239157e-5,167.046)"> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect26" + width="114.616" + height="85.299004" + x="182.692" + y="101.534" /> + <g + id="g11"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="190.52602" + y="204.42259" + id="text27"><tspan + sodipodi:role="line" + id="tspan27" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="190.30852" + y="204.42259">people</tspan></text> + <g + id="g1-2" + transform="translate(2.8864938,-153.44257)"> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 171.28348,358.79257 h 33.121" + id="path10" + sodipodi:nodetypes="cc" /> + </g> + </g> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 214.54097,201.92241 H 277.079 l 3e-5,-13.0893" + id="path28" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + id="text31" + transform="translate(0,10.499939)" + x="-8.5231352" + y="0"><textPath + xlink:href="#path28" + startOffset="50%" + id="textPath31"><tspan + id="tspan31" + style="text-align:center;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1">«manage» </tspan></textPath></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="235.13669" + y="116.79645" + id="text32"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="234.91919" + y="116.79645" + id="tspan32">build environment</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.434999px;text-anchor:middle;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="239.77739" + y="175.33215" + id="text33"><tspan + sodipodi:role="line" + id="tspan33" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998" + x="239.55989" + y="175.33215">infrastructure</tspan></text> + <rect + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999995;stroke-linejoin:round;stroke-miterlimit:2.3" + id="rect33" + width="114.616" + height="29" + x="182.692" + y="157.83273" /> + <g + id="g34" + transform="matrix(0.99999647,0,0,1,179.58561,-89.151178)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1" + x="60.4146" + y="224.83426" + id="text34"><tspan + sodipodi:role="line" + id="tspan34" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="60.197102" + y="224.83426">build</tspan></text> + <rect + style="opacity:1;fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect34" + width="37.526001" + height="14.5" + x="41.6516" + y="214.58449" /> + </g> + </g> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect71" + width="114.616" + height="295.29874" + x="22.691999" + y="58.580002" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,299.729 h 79.929" + id="path9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,194.729 239.929,3.1e-4" + id="path46" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 139.308,89.729 399.929,3.11e-4" + id="path47" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 260.763,299.72931 417.808,-7.3e-4" + id="path48" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 420.763,194.72931 257.807,-3.4e-4" + id="path49" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 580.763,89.729311 97.807,-2e-4" + id="path50" + sodipodi:nodetypes="cc" /> + <rect + style="fill:none;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1" + id="rect53" + width="114.616" + height="196.405" + x="662.69202" + y="78.521004" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="M 720,291.87542 V 268.926" + id="path53" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:0.999999, 0.999999;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33)" + d="m 766.724,274.926 v 51.13" + id="path60" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1)" + d="m 374.541,263.96841 h 62.53803 l 3e-5,-13.0893" + id="path28-5" + sodipodi:nodetypes="ccc" /> + <path + style="fill:none;fill-opacity:1;stroke:#555555;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker33-1-6)" + d="m 534.541,158.96841 h 62.53803 l 3e-5,-13.0893" + id="path28-3" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;letter-spacing:-0.435px;text-anchor:middle;fill:none;stroke:#555555;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + x="659.03473" + y="354.23218" + id="text60"><tspan + sodipodi:role="line" + id="tspan60" + style="stroke-width:1" + x="659.03473" + y="354.23218" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;letter-spacing:-0.434999px;text-anchor:start;white-space:pre;inline-size:131.66;display:inline;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999992;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:3.99999, 3.99999;stroke-dashoffset:0;stroke-opacity:1" + x="666.77734" + y="359.8067" + id="text61" + inkscape:label="text3" + transform="matrix(0.99999598,0,0,1,-7.2237155,-21.00025)"><tspan + x="666.77734" + y="359.8067" + id="tspan9"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan8">Build outputs do match, </tspan></tspan><tspan + x="666.77734" + y="373.40045" + id="tspan11"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan10">the build was likely not </tspan></tspan><tspan + x="666.77734" + y="386.9942" + id="tspan13"><tspan + style="font-style:italic;stroke-width:0.999993" + id="tspan12">contaminated.</tspan></tspan></text> + <g + id="g3"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:start;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:start;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="49.270584" + y="158.74438" + id="text69"><tspan + sodipodi:role="line" + id="tspan69" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="158.74438">software</tspan><tspan + sodipodi:role="line" + style="text-align:start;text-anchor:start;fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="49.270584" + y="172.33813" + id="tspan72">source code</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,159.672 H 110.139" + id="path55" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,173.267 H 110.139" + id="path1" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g12"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="74.926155" + y="210.2836" + id="text70"><tspan + sodipodi:role="line" + id="tspan70" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="74.708656" + y="210.2836">build tools</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="M 49.860001,211.211 H 100.448" + id="path3" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g10"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435001px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="69.060753" + y="248.22868" + id="text71"><tspan + sodipodi:role="line" + id="tspan71" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:1" + x="68.843254" + y="248.22868">libraries</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 49.860001,249.156 h 38.894" + id="path4" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g1" + id="use11" + transform="translate(160,-105)" + style="display:inline" /> + <use + x="0" + y="0" + xlink:href="#g1" + id="use12" + transform="translate(320,-210)" + style="display:inline" /> + <g + id="g13"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="720.13354" + y="93.78334" + id="text53"><tspan + sodipodi:role="line" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="719.91602" + y="93.78334" + id="tspan59">hash: e013f…</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82029,94.711 h 68.361" + id="path3-0" + sodipodi:nodetypes="cc" /> + </g> + <use + x="0" + y="0" + xlink:href="#g13" + id="use13" + transform="translate(1.2207031e-4,104.99986)" + style="display:inline" /> + <use + x="0" + y="0" + xlink:href="#g13" + id="use14" + transform="translate(1.2207031e-4,171.00078)" + style="display:inline" /> + <g + id="g14"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.875px;line-height:0px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';text-align:center;text-decoration:underline;text-decoration-line:underline;letter-spacing:-0.435px;text-anchor:middle;opacity:1;fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999998;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:4.00001, 4.00001;stroke-dashoffset:0;stroke-opacity:1" + x="719.21313" + y="302.72876" + id="text50"><tspan + sodipodi:role="line" + id="tspan50" + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999999" + x="718.99561" + y="302.72876">built program</tspan></text> + <path + style="fill:none;stroke:#212121;stroke-width:0.48;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 685.82094,303.656 h 66.848" + id="path3-0-6" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g65" + transform="matrix(1.3,0,0,1.3,363.45049,-31.289379)"> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#212121;stroke-width:0.75;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none" + id="path62" + cx="276.75925" + cy="312.33221" + r="5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="path63" + cx="275.11801" + cy="310.72949" + r="0.5" /> + <circle + style="fill:#212121;fill-opacity:1;stroke:none;stroke-width:0.999997;stroke-linejoin:round;stroke-miterlimit:2.3" + id="circle63" + cx="278.40048" + cy="310.72949" + r="0.5" /> + <path + style="fill:none;fill-opacity:1;stroke:#212121;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:2.3;stroke-dasharray:none;stroke-opacity:1" + d="m 274.546,313.42954 c 1.53726,1.47398 2.87901,1.47799 4.425,-0.0286" + id="path65" + sodipodi:nodetypes="cc" /> + </g> + </g> +</svg> diff --git a/rebuilds-no-contamination-diagram.svg.license b/rebuilds-no-contamination-diagram.svg.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/rebuilds-no-contamination-diagram.svg.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/removed-typescript-changes.diffoscope b/removed-typescript-changes.diffoscope new file mode 100644 index 0000000..3b2d3c3 --- /dev/null +++ b/removed-typescript-changes.diffoscope @@ -0,0 +1,43 @@ +│ ├── package/package.json +│ │ ├── Pretty-printed +│ │ │ @@ -3,6 +3,7 @@ +│ │ │ "bugs": { +│ │ │ "url": "https://github.com/testing-library/user-event/issues" +│ │ │ }, +│ │ │ + "dependencies": {}, +│ │ │ "description": "Fire events the same way the user does", +│ │ │ "devDependencies": { +│ │ │ "@esbuild-plugins/node-modules-polyfill": "^0.2.2", +│ │ │ @@ -40,23 +41,6 @@ +│ │ │ "node": ">=12", +│ │ │ "npm": ">=6" +│ │ │ }, +│ │ │ - "exports": { +│ │ │ - ".": { +│ │ │ - "default": "./dist/esm/index.js", +│ │ │ - "require": "./dist/cjs/index.js", +│ │ │ - "types": "./dist/types/index.d.ts" +│ │ │ - }, +│ │ │ - "./dist/cjs/*.js": { +│ │ │ - "default": "./dist/cjs/*.js", +│ │ │ - "import": "./dist/esm/*.js", +│ │ │ - "types": "./dist/types/*.d.ts" +│ │ │ - }, +│ │ │ - "./dist/esm/*.js": { +│ │ │ - "default": "./dist/esm/*.js", +│ │ │ - "require": "./dist/cjs/*.js", +│ │ │ - "types": "./dist/types/*.d.ts" +│ │ │ - } +│ │ │ - }, +│ │ │ "files": [ +│ │ │ "dist" +│ │ │ ], +│ │ │ @@ -68,8 +52,6 @@ +│ │ │ "testing" +│ │ │ ], +│ │ │ "license": "MIT", +│ │ │ - "main": "./dist/cjs/index.js", +│ │ │ - "module": "./dist/esm/index.js", +│ │ │ "name": "@testing-library/user-event", +│ │ │ "peerDependencies": { +│ │ │ "@testing-library/dom": ">=7.21.4" diff --git a/removed-typescript-changes.diffoscope.license b/removed-typescript-changes.diffoscope.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/removed-typescript-changes.diffoscope.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/ssh-clone-fail.txt b/ssh-clone-fail.txt new file mode 100644 index 0000000..e7900c6 --- /dev/null +++ b/ssh-clone-fail.txt @@ -0,0 +1,6 @@ +Cloning into 'new-checkout'... +Host key verification failed. +fatal: Could not read from remote repository. + +Please make sure you have the correct access rights +and the repository exists. diff --git a/ssh-clone-fail.txt.license b/ssh-clone-fail.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/ssh-clone-fail.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> diff --git a/status-counts.gnuplot b/status-counts.gnuplot new file mode 100755 index 0000000..ecab141 --- /dev/null +++ b/status-counts.gnuplot @@ -0,0 +1,29 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +set terminal svg size 800,500 font "DejaVu,sans,14.5"; +set output "status-counts.svg"; +#set title "Automated hermetized rebuild of top npm Registry packages"; +set ylabel "Package count"; +set datafile separator ","; +set boxwidth 0.5; +set style fill solid border -1; +set key noautotitle; +set xtics rotate by 30 right scale 0; +set bmargin 7; +set lmargin 11; +set rmargin 3.5; +set linetype 1 linecolor rgb "0x555555"; +set style data boxes; + +stats "status-counts.csv" using "ID" nooutput; + +set xrange [STATS_min-0.75:STATS_max+0.75]; + +plot "status-counts.csv" \ + using "ID":"COUNT":xtic(stringcolumn("CATEGORY")), \ + "" \ + using "ID":(column("COUNT") + 3):"COUNT" with labels; diff --git a/tree-size-stats-no-bc.gnuplot b/tree-size-stats-no-bc.gnuplot new file mode 100644 index 0000000..1be9de1 --- /dev/null +++ b/tree-size-stats-no-bc.gnuplot @@ -0,0 +1,11 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +stats_filename = "tree-size-stats-no-bc.csv"; +omit_breaking_changes = 1; +out_filename = "tree-size-stats-no-bc.svg"; + +load "tree-size-stats.gnuplot"; diff --git a/tree-size-stats.gnuplot b/tree-size-stats.gnuplot new file mode 100644 index 0000000..9c36b65 --- /dev/null +++ b/tree-size-stats.gnuplot @@ -0,0 +1,86 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +if (!exists("stats_filename")) stats_filename = "tree-size-stats.csv"; +if (!exists("omit_breaking_changes")) omit_breaking_changes = 0; +if (!exists("out_filename")) out_filename = "tree-size-stats.svg"; + +set terminal svg size 800,485 font "DejaVu,sans,14.5"; +set output out_filename; +#set title "Dependency tree sizes of rebuilt npm Registry packages"; +set ylabel "Dependency count"; +set datafile separator ","; +bw = 0.9; # box width +bg = 0.6; # box gap +bs = 2 * bw + bg; # box span +psh = 0.15; # point shift +set boxwidth bw; +set style fill solid border -1; +set key noautotitle invert; +#set xtics rotate by 30 right; +set xtics rotate by 11 right scale 0; +set bmargin 4.5; +set lmargin 11; +set rmargin 3.5; +set linetype 1 linecolor rgb "0x555555"; +set linetype 2 linecolor rgb "0x777777"; +set linetype 3 linecolor rgb "0x111111" pt 0; +set linetype 4 linecolor rgb "0x111111"; +unset pointintervalbox; + +stats "tree-sizes.csv" using "TREE-VERS" nooutput; + +lbl_shift = -(STATS_max / 25); + +ytic_max = 200 * (1 + floor(STATS_max / 200)); + +set ytics 0, 200; +do for [i=1:ytic_max/200] { + set ytics add (i * 200); +} + +set xrange [(-0.5 * (bg + bw)):(4 * bs - 0.5 * (bg + bw))]; + +set yrange [2*lbl_shift:ytic_max]; + +plot for [i=1:0:-1] stats_filename \ + using (($0 - 1) * bs + i * bw):\ + (column(i == 0 ? "VERS-AVG" : "DEPS-AVG")) \ + with boxes \ + title (i == 0 ? "All dependency package versions" : \ + "All dependency packages (version-agnostic)"), \ + for [i=0:1] "" \ + using (($0 - 1) * bs + i * bw):\ + (lbl_shift):\ + (stringcolumn(i == 0 ? "VERS-AVG" : "DEPS-AVG")) \ + with labels, \ + for [i=0:1] "" \ + using (($0 - 1) * bs + i * bw):\ + (column(i == 0 ? "VERS-AVG" : "DEPS-AVG")):\ + (column(i == 0 ? "VERS-STD_DEV" : "DEPS-STD_DEV")) \ + with yerrorbars lt 3, \ + "" \ + using ($0 * bs + 0.5 * bw):\ + "VERS-AVG":\ + (""):\ + xtic(stringcolumn("DESCRIPTION")) \ + with labels, \ + for [i=15:0:-1] "tree-sizes.csv" \ + using (omit_breaking_changes && column("BREAKING-CHANGES") == 1 ? \ + 1 / 0 : \ + column("IN-DEBIAN") == i % 2 ? \ + (i / 4) * bs + i % 4 / 2 * bw + (i % 2 * 2 - 1) * psh : \ + 1 / 0):\ + (column((i / 4 == 0 ? "TREE-" : \ + i / 4 == 1 ? "TREE-MIN-" : \ + i / 4 == 2 ? "TREE-DUMMY-" : \ + "TREE-FLAT-") \ + . \ + (i % 4 / 2 == 0 ? "VERS" : "DEPS"))) \ + with points lc 4 pt (i % 2 == 0 ? 6 : 7) ps 0.5 \ + title (i == 0 ? "Absent in Debian" : \ + i == 1 ? "Packaged in Debian" : \ + ""); diff --git a/unflattened-multiver-counts-no-bc.gnuplot b/unflattened-multiver-counts-no-bc.gnuplot new file mode 100644 index 0000000..e04cc01 --- /dev/null +++ b/unflattened-multiver-counts-no-bc.gnuplot @@ -0,0 +1,10 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +counts_filename = "unflattened-multiver-counts-no-bc.csv"; +out_filename = "unflattened-multiver-counts-no-bc.svg"; + +load "unflattened-multiver-counts.gnuplot"; diff --git a/unflattened-multiver-counts.gnuplot b/unflattened-multiver-counts.gnuplot new file mode 100644 index 0000000..5bd5201 --- /dev/null +++ b/unflattened-multiver-counts.gnuplot @@ -0,0 +1,51 @@ +#!/usr/bin/env gnuplot + +## SPDX-License-Identifier: CC0-1.0 +## +## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> + +if (!exists("counts_filename")) counts_filename = \ + "unflattened-multiver-counts.csv"; + +if (!exists("out_filename")) out_filename = "unflattened-multiver-counts.svg"; + +set terminal svg size 800,400 font "DejaVu,sans,14.5"; +set output out_filename; +#set title "Numbers of rebuilt packages present in Debian, categorized by their unflattenable build dependency counts."; +set ylabel "Built project count"; +set xlabel "Remaining dependency conflicts count"; +set datafile separator ","; +set boxwidth 0.5; +set style fill solid border -1; +set key noautotitle; +set xtics scale 0; +set lmargin 11; +set rmargin 3.5; +set linetype 1 linecolor rgb "0x777777"; +set linetype 2 linecolor rgb "0x333333"; + +stats "unflattened-multiver-counts.csv" using "ALL-PACKAGES" nooutput; + +lbl_shift = STATS_max / 40; +set yrange [0:(STATS_max * 1.1)]; + +plot counts_filename \ + using 0:"ALL-PACKAGES":xtic(stringcolumn("MULTIVER-COUNT")) \ + with boxes \ + title "All rebuilt", \ + "" \ + using 0:"IN-DEBIAN-PACKAGES" \ + with boxes fill pattern 5 \ + title "Packaged in Debian", \ + "" \ + using 0:\ + (column("ALL-PACKAGES") + lbl_shift):\ + (column("ALL-PACKAGES")) \ + with labels, \ + "" \ + using 0:\ + (column("IN-DEBIAN-PACKAGES") + lbl_shift):\ + ((column("IN-DEBIAN-PACKAGES") + STATS_max / 20 < \ + column("ALL-PACKAGES")) ? \ + stringcolumn("IN-DEBIAN-PACKAGES") : "") \ + with labels; diff --git a/warning-module-as-external.txt b/warning-module-as-external.txt new file mode 100644 index 0000000..1108f93 --- /dev/null +++ b/warning-module-as-external.txt @@ -0,0 +1,34 @@ + +> rollup-plugin-typescript2@0.36.0 prebuild +> rimraf dist/* + + +> rollup-plugin-typescript2@0.36.0 build +> rimraf dist/* && rollup -c + + +src/index.ts → dist/rollup-plugin-typescript2.cjs.js, dist/rollup-plug +in-typescript2.es.js, build-self/dist/rollup-plugin-typescript2.es.js... +rpt2: typescript version: 5.8.3 +rpt2: tslib version: 2.8.1 +rpt2: rollup version: 2.79.2 +rpt2: rollup-plugin-typescript2 version: 0.35.0 +rpt2: ambient types changed, redoing all semantic diagnostics +rpt2: transpiling '/tmp/checkout/src/index.ts' +rpt2: transpiling '/tmp/checkout/src/context.ts' +rpt2: transpiling '/tmp/checkout/src/host.ts' +rpt2: transpiling '/tmp/checkout/src/tsproxy.ts' +rpt2: transpiling '/tmp/checkout/src/ioptions.ts' +rpt2: transpiling '/tmp/checkout/src/tscache.ts' +rpt2: transpiling '/tmp/checkout/src/rollingcache.ts' +rpt2: transpiling '/tmp/checkout/src/icache.ts' +rpt2: transpiling '/tmp/checkout/src/diagnostics.ts' +rpt2: transpiling '/tmp/checkout/src/diagnostics-format-host.ts' +rpt2: transpiling '/tmp/checkout/src/parse-tsconfig.ts' +rpt2: transpiling '/tmp/checkout/src/get-options-overrides.ts' +rpt2: transpiling '/tmp/checkout/src/tslib.ts' +rpt2: rolling caches +(!) Unresolved dependencies +https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency +object-hash (imported by src/tscache.ts) +created dist/rollup-plugin-typescript2.cjs.js, dist/rollup-plugin-typescript2.es.js, build-self/dist/rollup-plugin-typescript2.es.js in 1m 0.7s diff --git a/warning-module-as-external.txt.license b/warning-module-as-external.txt.license new file mode 100644 index 0000000..893e2b7 --- /dev/null +++ b/warning-module-as-external.txt.license @@ -0,0 +1,3 @@ +SPDX-License-Identifier: CC0-1.0 + +Copyright (C) 2025 Woj. Kosior <koszko@koszko.org> |