From c15c376a2f3bf8e54e663e8f74bd047fb3316c14 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 30 May 2022 18:50:18 -0400 Subject: [PATCH 01/89] Start work on capper branch --- data/cfg.json | 5 ++++- src/arduino/index.ts | 11 ++++++++++- src/devices/index.ts | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/data/cfg.json b/data/cfg.json index 404f8da..655a50f 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -178,7 +178,10 @@ "cameras": "4", "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", - "cameras_projectors_identifier": "7" + "cameras_projectors_identifier": "7", + "camera_capper_identifier" : "8", + "camera_capper_projector_identifier" : "9", + "camera_capper_projectors_identifier" : "0" } } } diff --git a/src/arduino/index.ts b/src/arduino/index.ts index 2f44800..12e3900 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -252,7 +252,10 @@ class Arduino { || data === cfg.arduino.cmd.camera_second_forward || data === cfg.arduino.cmd.camera_second_backward || data === cfg.arduino.cmd.camera_second - || data === cfg.arduino.cmd.cameras) { + || data === cfg.arduino.cmd.cameras + || data === cfg.arduino.cmd.camera_capper_identifier + || data === cfg.arduino.cmd.camera_capper_projector_identifier + || data === cfg.arduino.cmd.camera_capper_projectors_identifier) { this.confirmExec(null, data); this.confirmExec = {}; @@ -314,6 +317,12 @@ class Arduino { type = 'camera,camera_second,projector' } else if (data === cfg.arduino.cmd.cameras_projectors_identifier) { type = 'camera,camera_second,projector,projector_second' + } else if (data === cfg.arduino.cmd.camera_capper_identifier) { + type = 'camera,capper' + } else if (data === cfg.arduino.cmd.camera_capper_projector_identifier) { + type = 'camera,capper,projector' + } else if (data === cfg.arduino.cmd.camera_capper_projectors_identifier) { + type = 'camera,capper,projector,projector_second' } return resolve(type) } diff --git a/src/devices/index.ts b/src/devices/index.ts index 1246403..7b6e041 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -419,7 +419,7 @@ class Devices { }) if (match.length === 0) { deviceEntry = { - type : type + type } deviceEntry[which] = device this.settings.state.devices.push(deviceEntry) -- 2.40.1 From f585aa2a5a7e5e1e36830e5d0205b3a3afe53130 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 4 Jun 2022 11:11:23 -0400 Subject: [PATCH 02/89] Upgrade electron 11 -> 19 (huge jump). Install new remote module to preserve legacy communication protocol. --- app/data/cfg.json | 7 +- app/js/app.js | 5 +- app/lib/arduino/index.js | 20 +- app/lib/arduino/index.js.map | 2 +- app/main.js | 16 +- app/package-lock.json | 5564 ++++++++++++++++------------------ app/package.json | 35 +- app/src/index.js | 5 +- processing/mcopy/cfg.json | 7 +- src/arduino/index.ts | 6 +- 10 files changed, 2641 insertions(+), 3026 deletions(-) diff --git a/app/data/cfg.json b/app/data/cfg.json index 738a729..655a50f 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.6.9", + "version": "1.7.0", "ext_port": 1111, "profiles": { "mcopy": { @@ -178,7 +178,10 @@ "cameras": "4", "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", - "cameras_projectors_identifier": "7" + "cameras_projectors_identifier": "7", + "camera_capper_identifier" : "8", + "camera_capper_projector_identifier" : "9", + "camera_capper_projectors_identifier" : "0" } } } diff --git a/app/js/app.js b/app/js/app.js index 87c1eac..30acff6 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2474,8 +2474,9 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k { mainWindow = null }) + require('@electron/remote/main').enable(mainWindow.webContents) } var errorState = function () { diff --git a/app/package-lock.json b/app/package-lock.json index 69ed9fd..17f182b 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -10,6 +10,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { + "@electron/remote": "^2.0.8", "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", @@ -21,46 +22,46 @@ "exec": "file:lib/exec", "exit": "file:lib/exit", "ffmpeg": "file:lib/ffmpeg", - "ffmpeg-static": "^4.2.7", + "ffmpeg-static": "^5.0.0", "ffprobe": "file:lib/ffprobe", "ffprobe-static": "^3.0.0", "filmout": "file:lib/filmout", "frame": "file:lib/frame", - "fs-extra": "^9.1.0", - "humanize-duration": "^3.25.1", + "fs-extra": "^10.1.0", + "humanize-duration": "^3.27.2", "intval": "file:lib/intval", "jimp": "^0.16.1", "light": "file:lib/light", "log": "file:lib/log", - "moment": "^2.29.1", + "moment": "^2.29.3", "mscript": "file:lib/mscript", - "node-notifier": "^9.0.0", + "node-notifier": "^10.0.1", "processing": "file:lib/processing", "proj": "file:lib/proj", "request": "^2.88.2", "sequencer": "file:lib/sequencer", - "serialport": "^9.0.7", + "serialport": "^10.4.0", "server": "file:lib/server", "settings": "file:lib/settings", "spawn": "file:lib/spawn", "system": "file:lib/system", "uuid": "^8.3.2", - "winston": "^3.3.3" + "winston": "^3.7.2" }, "devDependencies": { - "@types/jquery": "^3.5.5", - "chai": "^4.3.0", - "electron": "^11.3.0", + "@types/jquery": "^3.5.14", + "chai": "^4.3.6", + "electron": "^19.0.1", "electron-installer-common": "^0.10.3", - "electron-installer-dmg": "^3.0.0", - "electron-packager": "^15.4.0", - "electron-rebuild": "^2.3.5", - "electron-wix-msi": "^3.0.6", + "electron-installer-dmg": "^4.0.0", + "electron-packager": "^15.5.1", + "electron-rebuild": "^3.2.7", + "electron-wix-msi": "^4.0.0", "gulp": "^4.0.2", "gulp-concat": "^2.6.1", - "gulp-less": "^4.0.1", - "mocha": "^8.3.0", - "typescript": "^4.1.5" + "gulp-less": "^5.0.0", + "mocha": "^10.0.0", + "typescript": "^4.7.2" }, "optionalDependencies": { "electron-installer-debian": "^3.1.0" @@ -176,6 +177,14 @@ "hasInstallScript": true, "optional": true }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@dabh/diagnostics": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", @@ -201,24 +210,23 @@ } }, "node_modules/@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", - "dev": true, + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", "fs-extra": "^8.1.0", "got": "^9.6.0", "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "engines": { "node": ">=8.6" }, "optionalDependencies": { - "global-agent": "^2.0.2", + "global-agent": "^3.0.0", "global-tunnel-ng": "^2.7.1" } }, @@ -226,7 +234,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -240,20 +247,82 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "dependencies": { "graceful-fs": "^4.1.6" } }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@electron/get/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, "engines": { "node": ">= 4.0.0" } }, + "node_modules/@electron/remote": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", + "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==", + "peerDependencies": { + "electron": ">= 13.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, "node_modules/@jimp/bmp": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", @@ -697,154 +766,245 @@ "node": ">= 10" } }, - "node_modules/@serialport/binding-abstract": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.7.tgz", - "integrity": "sha512-g1ncCMIG9rMsxo/28ObYmXZcHThlvtZygsCANmyMUuFS7SwXY4+PhcEnt2+ZcMkEDNRiOklT+ngtIVx5GGpt/A==", + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, "dependencies": { - "debug": "^4.3.1" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=10.0.0" + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, - "funding": { - "url": "https://opencollective.com/serialport/donate" + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@serialport/binding-mock": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.7.tgz", - "integrity": "sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz", + "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==", "dependencies": { - "@serialport/binding-abstract": "^9.0.7", - "debug": "^4.3.1" + "@serialport/bindings-interface": "^1.2.1", + "debug": "^4.3.3" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" + } + }, + "node_modules/@serialport/bindings-cpp": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-10.7.0.tgz", + "integrity": "sha512-Xx1wA2UCG2loS32hxNvWJI4smCzGKhWqE85//fLRzHoGgE1lSLe3Nk7W40/ebrlGFHWRbQZmeaIF4chb2XLliA==", + "hasInstallScript": true, + "dependencies": { + "@serialport/bindings-interface": "1.2.1", + "@serialport/parser-readline": "^10.2.1", + "debug": "^4.3.2", + "node-addon-api": "^4.3.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12.17.0 <13.0 || >=14.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, - "node_modules/@serialport/bindings": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.7.tgz", - "integrity": "sha512-cNWaxnEbbpLoSJ6GMb0ZeCpaciczm8XRE4jgBqe/BflWZb+wyiTYIocbsySxpS40WT3kJ0sNTFag77uSmQ6ftg==", - "hasInstallScript": true, - "dependencies": { - "@serialport/binding-abstract": "^9.0.7", - "@serialport/parser-readline": "^9.0.7", - "bindings": "^1.5.0", - "debug": "^4.3.1", - "nan": "^2.14.2", - "prebuild-install": "^6.0.1" - }, + "node_modules/@serialport/bindings-cpp/node_modules/@serialport/bindings-interface": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz", + "integrity": "sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==", "engines": { - "node": ">=10.0.0" - }, - "funding": { - "url": "https://opencollective.com/serialport/donate" + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/@serialport/bindings-cpp/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, + "node_modules/@serialport/bindings-interface": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz", + "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==", + "engines": { + "node": "^12.22 || ^14.13 || >=16" } }, "node_modules/@serialport/parser-byte-length": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz", - "integrity": "sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-10.3.0.tgz", + "integrity": "sha512-pJ/VoFemzKRRNDHLhFfPThwP40QrGaEnm9TtwL7o2GihEPwzBg3T0bN13ew5TpbbUYZdMpUtpm3CGfl6av9rUQ==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/parser-cctalk": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz", - "integrity": "sha512-ert5jhMkeiTfr44TkbdySC09J8UwAsf/RxBucVN5Mz5enG509RggnkfFi4mfj3UCG2vZ7qsmM6gtZ62DshY02Q==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-10.3.0.tgz", + "integrity": "sha512-8ujmk8EvVbDPrNF4mM33bWvUYJOZ0wXbY3WCRazHRWvyCdL0VO0DQvW81ZqgoTpiDQZm5r8wQu9rmuemahF6vQ==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/parser-delimiter": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz", - "integrity": "sha512-Vb2NPeXPZ/28M4m5x4OAHFd8jRAeddNCgvL+Q+H/hqFPY1w47JcMLchC7pigRW8Cnt1fklmzfwdNQ8Fb+kMkxQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-10.3.0.tgz", + "integrity": "sha512-9E4Vj6s0UbbcCCTclwegHGPYjJhdm9qLCS0lowXQDEQC5naZnbsELemMHs93nD9jHPcyx1B4oXkMnVZLxX5TYw==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/parser-inter-byte-timeout": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.0.7.tgz", - "integrity": "sha512-lUZ3cwgUluBvJ1jf+0LQsqoiPYAokDO6+fRCw9HCfnrF/OS60Gm4rxuyo2uQIueqZkJ7NIFP+ibKsULrA47AEA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.3.0.tgz", + "integrity": "sha512-wKP0QK85NHgvT6BBB1qBfKBBU4pf8kespNXAZBUYmFT+P4n8r8IZE2mqigCD+AiZcfWNQoAizwOsT/Jx/qeVig==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, + "node_modules/@serialport/parser-packet-length": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-10.3.0.tgz", + "integrity": "sha512-bj0cWzt8YSQj/E5fRQVYdi4TsfTlZQrXlXrUwjyTsCONv8IPOHzsz+yY0fw5SEMiJtaLyqvPkCHLsttOd/zFsg==", + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/@serialport/parser-readline": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.7.tgz", - "integrity": "sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-10.3.0.tgz", + "integrity": "sha512-ki3ATZ3/RAqnqGROBKE7k+OeZ0DZXZ53GTca4q71OU5RazbbNhTOBQLKLXD3v9QZXCMJdg4hGW/2Y0DuMUqMQg==", "dependencies": { - "@serialport/parser-delimiter": "^9.0.7" + "@serialport/parser-delimiter": "10.3.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/parser-ready": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.7.tgz", - "integrity": "sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-10.3.0.tgz", + "integrity": "sha512-1owywJ4p592dJyVrEJZPIh6pUZ3/y/LN6kGTDH2wxdewRUITo/sGvDy0er5i2+dJD3yuowiAz0dOHSdz8tevJA==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/parser-regex": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.7.tgz", - "integrity": "sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-10.3.0.tgz", + "integrity": "sha512-tIogTs7CvTH+UUFnsvE7i33MSISyTPTGPWlglWYH2/5coipXY503jlaYS1YGe818wWNcSx6YAjMZRdhTWwM39w==", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-slip-encoder": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.3.0.tgz", + "integrity": "sha512-JI0ILF5sylWn8f0MuMzHFBix/iMUTa79/Z95KaPZYnVaEdA7h7hh/o21Jmon/26P3RJwL1SNJCjZ81zfan+LtQ==", + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-spacepacket": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-10.3.0.tgz", + "integrity": "sha512-PDF73ClEPsClD1FEJZHNuBevDKsJCkqy/XD5+S5eA6+tY5D4HLrVgSWsg+3qqB6+dlpwf2CzHe+uO8D3teuKHA==", + "engines": { + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, "node_modules/@serialport/stream": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.7.tgz", - "integrity": "sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-10.3.0.tgz", + "integrity": "sha512-7sooi5fHogYNVEJwxVdg872xO6TuMgQd2E9iRmv+o8pk/1dbBnPkmH6Ka3st1mVE+0KnIJqVlgei+ncSsqXIGw==", "dependencies": { - "debug": "^4.3.1" + "@serialport/bindings-interface": "1.2.1", + "debug": "^4.3.2" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" } }, + "node_modules/@serialport/stream/node_modules/@serialport/bindings-interface": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz", + "integrity": "sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==", + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, "engines": { "node": ">=6" } @@ -853,7 +1013,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -861,6 +1020,15 @@ "node": ">=6" } }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/@types/cacheable-request": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", @@ -905,9 +1073,9 @@ "dev": true }, "node_modules/@types/jquery": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", - "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", "dev": true, "dependencies": { "@types/sizzle": "*" @@ -929,10 +1097,9 @@ "optional": true }, "node_modules/@types/node": { - "version": "12.12.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.48.tgz", - "integrity": "sha512-m3Nmo/YaDUfYzdCQlxjF5pIy7TNyDTAJhIa//xtHcF0dlgYIBKULKnmloCPtByDxtZXrWV8Pge1AKT6/lRvVWg==", - "devOptional": true + "version": "16.11.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.38.tgz", + "integrity": "sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg==" }, "node_modules/@types/responselike": { "version": "1.0.0", @@ -971,32 +1138,10 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "node_modules/accord": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/accord/-/accord-0.29.0.tgz", - "integrity": "sha512-3OOR92FTc2p5/EcOzPcXp+Cbo+3C15nV9RXHlOUBCBpHhcB+0frbSNR9ehED/o7sTcyGVtqGJpguToEdlXhD0w==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.5.0", - "glob": "^7.0.5", - "indx": "^0.2.3", - "lodash.clone": "^4.3.2", - "lodash.defaults": "^4.0.1", - "lodash.flatten": "^4.2.0", - "lodash.merge": "^4.4.0", - "lodash.partialright": "^4.1.4", - "lodash.pick": "^4.2.1", - "lodash.uniq": "^4.3.0", - "resolve": "^1.5.0", - "semver": "^5.3.0", - "uglify-js": "^2.8.22", - "when": "^3.7.8" - } - }, "node_modules/agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { "debug": "4" }, @@ -1004,6 +1149,33 @@ "node": ">= 6.0.0" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", @@ -1015,32 +1187,6 @@ "uri-js": "^4.2.2" } }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/align-text/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/animated-gif-detector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/animated-gif-detector/-/animated-gif-detector-1.2.0.tgz", @@ -1061,18 +1207,6 @@ "node": ">=0.10.0" } }, - "node_modules/ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -1085,22 +1219,10 @@ "node": ">=0.10.0" } }, - "node_modules/ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "devOptional": true, "engines": { "node": ">=8" @@ -1144,9 +1266,9 @@ } }, "node_modules/appdmg": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.6.0.tgz", - "integrity": "sha512-vDz8cMf5c6BfoS72OmmHzzuxG5DFVDM6YCAkscjYh3GASGEBBRCZ10Bn515ZPSPHOpfI9Xu3MlApbd49C58pJg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.6.4.tgz", + "integrity": "sha512-YTilgNF0DF2DSRzGzzGDxaTMLXlhe3b3HB8RAaoJJ/VJXZbOlzIAcZ7gdPniHUVUuHjGwnS7fUMd4FvO2Rp94A==", "dev": true, "optional": true, "os": [ @@ -1172,17 +1294,10 @@ "node": ">=8.5" } }, - "node_modules/appdmg/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true, - "optional": true - }, "node_modules/appdmg/node_modules/image-size": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.4.tgz", - "integrity": "sha512-GqPgxs+VkOr12aWwjSkyRzf5atzObWpFtiRuDgxCl2I/SDpZOKZFRD3iIAeAN6/usmn8SeLWRt7a8JRYK0Whbw==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", "dev": true, "optional": true, "bin": { @@ -1192,16 +1307,6 @@ "node": ">=6.9.0" } }, - "node_modules/appdmg/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/append-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", @@ -1215,9 +1320,10 @@ } }, "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true }, "node_modules/archy": { "version": "1.0.0", @@ -1230,14 +1336,24 @@ "link": true }, "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, "dependencies": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -1289,13 +1405,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-buffer-from-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/array-buffer-from-string/-/array-buffer-from-string-0.1.0.tgz", - "integrity": "sha1-OxQ1H4YUnYTvxhLFrafthRadewc=", - "dev": true, - "optional": true - }, "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -1452,9 +1561,11 @@ } }, "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "optional": true }, "node_modules/async-done": { "version": "1.3.2", @@ -1498,6 +1609,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "devOptional": true, "engines": { "node": ">= 4.0.0" } @@ -1631,11 +1743,14 @@ } }, "node_modules/base32-encode": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-0.1.1.tgz", - "integrity": "sha512-jjc+6TC8PXrsxJ4CQr9ibioNhhAM1p/RvS9hy3Q+cxPphvXmLnFSkXoen2XXzNBrYjdmzajRtbFDl1x28F5F4A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-1.2.0.tgz", + "integrity": "sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A==", "dev": true, - "optional": true + "optional": true, + "dependencies": { + "to-data-view": "^1.1.0" + } }, "node_modules/base64-js": { "version": "1.5.1", @@ -1673,37 +1788,17 @@ "node": ">=0.10.0" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -1716,10 +1811,9 @@ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, "node_modules/boolean": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", - "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", - "dev": true, + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", "optional": true }, "node_modules/bplist-creator": { @@ -1824,7 +1918,6 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, "engines": { "node": "*" } @@ -1858,6 +1951,47 @@ "node": ">=0.10.0" } }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1891,7 +2025,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -1909,7 +2042,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -1921,7 +2053,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "engines": { "node": ">=8" } @@ -1948,34 +2079,22 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", "type-detect": "^4.0.5" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/chalk": { @@ -2088,6 +2207,15 @@ "node": ">=0.10.0" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -2145,7 +2273,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -2154,7 +2281,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { "node": ">=4" } @@ -2214,6 +2340,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -2303,9 +2430,10 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, "engines": { "node": ">=0.1.90" } @@ -2423,7 +2551,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, "optional": true, "dependencies": { "ini": "^1.3.4", @@ -2433,7 +2560,8 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true }, "node_modules/convert-source-map": { "version": "1.6.0", @@ -2463,13 +2591,6 @@ "is-plain-object": "^2.0.1" } }, - "node_modules/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true, - "optional": true - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2595,9 +2716,9 @@ } }, "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -2633,17 +2754,6 @@ "node": ">=0.10" } }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -2656,14 +2766,6 @@ "node": ">=0.12" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/default-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", @@ -2715,14 +2817,13 @@ "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, + "devOptional": true, "dependencies": { "object-keys": "^1.0.12" }, @@ -2734,7 +2835,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, + "devOptional": true, "engines": { "node": ">= 0.4" } @@ -2805,7 +2906,17 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, "node_modules/detect-file": { "version": "1.0.0", @@ -2820,6 +2931,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -2828,10 +2940,9 @@ } }, "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "optional": true }, "node_modules/devices": { @@ -2847,6 +2958,33 @@ "node": ">=0.3.1" } }, + "node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/dir-compare/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, "node_modules/display": { "resolved": "lib/display", "link": true @@ -2859,7 +2997,7 @@ "node_modules/ds-store": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ds-store/-/ds-store-0.1.6.tgz", - "integrity": "sha1-0QJO90btDBPw9/7IXH6FjoxLfKc=", + "integrity": "sha512-kY21M6Lz+76OS3bnCzjdsJSF7LBpLYGCVfavW8TgQD2XkcqIZ86W0y9qUDZu6fp7SIZzqosMDW2zi7zVFfv4hw==", "dev": true, "optional": true, "dependencies": { @@ -2871,8 +3009,7 @@ "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "node_modules/duplexify": { "version": "3.7.1", @@ -2936,14 +3073,13 @@ } }, "node_modules/electron": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.3.0.tgz", - "integrity": "sha512-MhdS0gok3wZBTscLBbYrOhLaQybCSAfkupazbK1dMP5c+84eVMxJE/QGohiWQkzs0tVFIJsAHyN19YKPbelNrQ==", - "dev": true, + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.1.tgz", + "integrity": "sha512-zuhJVV7nTDFrRZ7uAIylSD0Eoi1xcUV4UzGfpWsREI4W5GsxNGyZQeqQDpg43w8+7oED812oDrGfPh5kb9rcQA==", "hasInstallScript": true, "dependencies": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", "extract-zip": "^1.0.3" }, "bin": { @@ -2979,6 +3115,21 @@ "@types/fs-extra": "^9.0.1" } }, + "node_modules/electron-installer-common/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "devOptional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/electron-installer-common/node_modules/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -2991,6 +3142,15 @@ "node": ">=10" } }, + "node_modules/electron-installer-common/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "devOptional": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-installer-debian": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-3.1.0.tgz", @@ -3017,56 +3177,47 @@ "node": ">= 10.0.0" } }, + "node_modules/electron-installer-debian/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-installer-debian/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "optional": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-installer-dmg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-3.0.0.tgz", - "integrity": "sha512-a3z9ABUfLJtrLK1ize4j+wJKslodb0kRHgBuUN4GTckiUxtGdo49XCvvAHvQaOqQk3S5VTvuc6PoofnI9mKSCQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-4.0.0.tgz", + "integrity": "sha512-g3W6XnyUa7QGrAF7ViewHdt6bXV2KYU1Pm1CY3pZpp+H6mOjCHHAhf/iZAxtaX1ERCb+SQHz7xSsAHuNH9I8ZQ==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^8.0.1", + "debug": "^4.3.2", "minimist": "^1.1.1" }, "bin": { "electron-installer-dmg": "bin/electron-installer-dmg.js" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 12.13.0" }, "optionalDependencies": { - "appdmg": "^0.6.0" - } - }, - "node_modules/electron-installer-dmg/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/electron-installer-dmg/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-installer-dmg/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "appdmg": "^0.6.4" } }, "node_modules/electron-notarize": { @@ -3082,6 +3233,30 @@ "node": ">= 10.0.0" } }, + "node_modules/electron-notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-notarize/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-osx-sign": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", @@ -3119,12 +3294,13 @@ "dev": true }, "node_modules/electron-packager": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz", - "integrity": "sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==", + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.5.1.tgz", + "integrity": "sha512-9/fqF64GACZsLYLuFJ8vCqItMXbvsD0NMDLNfFmAv9mSqkqKWSZb5V3VE9CxT6CeXwZ6wN3YowEQuqBNyShEVg==", "dev": true, "dependencies": { "@electron/get": "^1.6.0", + "@electron/universal": "^1.2.1", "asar": "^3.1.0", "cross-spawn-windows-exe": "^1.2.0", "debug": "^4.0.1", @@ -3173,6 +3349,21 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/electron-packager/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/electron-packager/node_modules/get-stream": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", @@ -3185,18 +3376,6 @@ "node": ">=8" } }, - "node_modules/electron-packager/node_modules/rcedit": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", - "integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==", - "dev": true, - "dependencies": { - "cross-spawn-windows-exe": "^1.1.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/electron-packager/node_modules/semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", @@ -3209,6 +3388,15 @@ "node": ">=10" } }, + "node_modules/electron-packager/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-packager/node_modules/yargs-parser": { "version": "20.2.6", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", @@ -3219,29 +3407,53 @@ } }, "node_modules/electron-rebuild": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.5.tgz", - "integrity": "sha512-1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.7.tgz", + "integrity": "sha512-WvaW1EgRinDQ61khHFZfx30rkPQG5ItaOT0wrI7iJv9A3SbghriQGfZQfHZs25fWLBe6/vkv05LOqg6aDw6Wzw==", "dev": true, "dependencies": { - "@malept/cross-spawn-promise": "^1.1.1", - "colors": "^1.3.3", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", "debug": "^4.1.1", "detect-libc": "^1.0.3", - "fs-extra": "^9.0.1", + "fs-extra": "^10.0.0", "got": "^11.7.0", - "lzma-native": "^6.0.1", - "node-abi": "^2.19.2", - "node-gyp": "^7.1.0", + "lzma-native": "^8.0.5", + "node-abi": "^3.0.0", + "node-api-version": "^0.1.4", + "node-gyp": "^8.4.0", "ora": "^5.1.0", + "semver": "^7.3.5", "tar": "^6.0.5", - "yargs": "^16.0.0" + "yargs": "^17.0.1" }, "bin": { "electron-rebuild": "lib/src/cli.js" }, "engines": { - "node": ">=10.12.0" + "node": ">=12.13.0" + } + }, + "node_modules/electron-rebuild/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" } }, "node_modules/electron-rebuild/node_modules/@sindresorhus/is": { @@ -3415,6 +3627,21 @@ "lowercase-keys": "^2.0.0" } }, + "node_modules/electron-rebuild/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/electron-rebuild/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -3433,111 +3660,76 @@ } }, "node_modules/electron-rebuild/node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/electron-rebuild/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/electron-rebuild/node_modules/yargs-parser": { - "version": "20.2.6", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", - "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/electron-wix-msi": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-3.0.6.tgz", - "integrity": "sha512-MGvhr9jQkbPWwYibD3+64R6VOUYPtl091dwLgyS2/nOtgnbsdQOeeXLCszsjPaV/N93ee/mdNBeDqHrUdbqdig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-4.0.0.tgz", + "integrity": "sha512-LEQr5IQc8w7efIVt5tIQA0efew4slffW6tfDmbfpWDSR74HnfTkkfwBAwj9vMLT4q62cO4NnkVTEuMe7FxWMTw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^8.1.0", - "klaw": "^3.0.0", - "lodash": "^4.17.15", - "rcedit": "^2.1.0", + "debug": "^4.3.4", + "fs-extra": "^10.0.1", + "klaw": "^4.0.1", + "lodash": "^4.17.21", + "rcedit": "^3.0.1", "rcinfo": "^0.1.3", - "semver": "^6.3.0", - "uuid": "^3.3.3" + "semver": "^7.3.5", + "uuid": "^8.3.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=14.0.0" }, "optionalDependencies": { "@bitdisaster/exe-icon-extractor": "^1.0.10" } }, - "node_modules/electron-wix-msi/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/electron-wix-msi/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/electron-wix-msi/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" - } - }, - "node_modules/electron-wix-msi/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, + }, "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/electron-wix-msi/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" + "node": ">=10" } }, "node_modules/emoji-regex": { @@ -3551,16 +3743,32 @@ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "dev": true, + "optional": true + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, "optional": true, "engines": { "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, "node_modules/end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -3577,6 +3785,12 @@ "node": ">=6" } }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "node_modules/errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -3620,7 +3834,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, "optional": true }, "node_modules/es6-iterator": { @@ -3669,7 +3882,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=10" } @@ -3780,14 +3993,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -3915,7 +4120,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, "dependencies": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -3930,7 +4134,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -3938,8 +4141,7 @@ "node_modules/extract-zip/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/extsprintf": { "version": "1.3.0", @@ -3974,33 +4176,27 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "dependencies": { "pend": "~1.2.0" } }, "node_modules/fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, "node_modules/ffmpeg": { "resolved": "lib/ffmpeg", "link": true }, "node_modules/ffmpeg-static": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.2.7.tgz", - "integrity": "sha512-SGnOr2d+k0/9toRIv9t5/hN/DMYbm5XMtG0wVwGM1tEyXJAD6dbcWOEvfHq4LOySm9uykKL6LMC4eVPeteUnbQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-5.0.0.tgz", + "integrity": "sha512-z96jGVa8uCVMnyrTvbDZe0d5zbvIVQnfBN+vKDZoVK+ssYpfUJGEmo2DkuY43CA9Ytlsk+5ZVTFTqzvKw1gSaA==", "hasInstallScript": true, "dependencies": { "@derhuerst/http-basic": "^8.2.0", @@ -4009,7 +4205,7 @@ "progress": "^2.0.3" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/ffprobe": { @@ -4029,11 +4225,6 @@ "node": ">=6" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -4238,7 +4429,7 @@ "node_modules/fmix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz", - "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=", + "integrity": "sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==", "dev": true, "optional": true, "dependencies": { @@ -4308,23 +4499,17 @@ "resolved": "lib/frame", "link": true }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/fs-extra/node_modules/universalify": { @@ -4401,9 +4586,9 @@ } }, "node_modules/fs-temp": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.1.2.tgz", - "integrity": "sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.2.1.tgz", + "integrity": "sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w==", "dev": true, "optional": true, "dependencies": { @@ -4411,9 +4596,9 @@ } }, "node_modules/fs-xattr": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.3.0.tgz", - "integrity": "sha512-BixjoRM9etRFyWOtJRcflfu5HqBWLGTYbeHiL196VRUcc/nYgS2px6w4yVaj3XmrN1bk4rZBH82A8u5Z64YcXQ==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.3.1.tgz", + "integrity": "sha512-UVqkrEW0GfDabw4C3HOrFlxKfx0eeigfRne69FxSBdHIP8Qt5Sq6Pu3RM9KmMlkygtC4pPKkj5CiPO5USnj2GA==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5257,61 +5442,22 @@ "optional": true }, "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/generate-function": { @@ -5327,7 +5473,7 @@ "node_modules/generate-object-property": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", "dev": true, "optional": true, "dependencies": { @@ -5538,7 +5684,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -5572,15 +5717,10 @@ "omggif": "^1.0.10" } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "devOptional": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -5697,14 +5837,12 @@ } }, "node_modules/global-agent": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", - "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "optional": true, "dependencies": { "boolean": "^3.0.1", - "core-js": "^3.6.5", "es6-error": "^4.1.1", "matcher": "^3.0.0", "roarr": "^2.15.3", @@ -5716,11 +5854,13 @@ } }, "node_modules/global-agent/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -5762,7 +5902,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "dev": true, "optional": true, "dependencies": { "encodeurl": "^1.0.2", @@ -5775,16 +5914,18 @@ } }, "node_modules/globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", - "dev": true, + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "optional": true, "dependencies": { "define-properties": "^1.1.3" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glogg": { @@ -5803,7 +5944,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -5825,7 +5965,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -5837,7 +5976,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { "node": ">=4" } @@ -5847,14 +5985,11 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true }, "node_modules/growly": { "version": "1.3.0", @@ -6101,61 +6236,29 @@ } }, "node_modules/gulp-less": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-4.0.1.tgz", - "integrity": "sha512-hmM2k0FfQp7Ptm3ZaqO2CkMX3hqpiIOn4OHtuSsCeFym63F7oWlEua5v6u1cIjVUKYsVIs9zPg9vbqTEb/udpA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-5.0.0.tgz", + "integrity": "sha512-W2I3TewO/By6UZsM/wJG3pyK5M6J0NYmJAAhwYXQHR+38S0iDtZasmUgFCH3CQj+pQYw/PAIzxvFvwtEXz1HhQ==", "dev": true, "dependencies": { - "accord": "^0.29.0", - "less": "2.6.x || ^3.7.1", + "less": "^3.7.1 || ^4.0.0", "object-assign": "^4.0.1", - "plugin-error": "^0.1.2", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", + "plugin-error": "^1.0.0", + "replace-ext": "^2.0.0", + "through2": "^4.0.0", "vinyl-sourcemaps-apply": "^0.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/gulp-less/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/gulp-less/node_modules/readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "node_modules/gulp-less/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/gulp-less/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/gulp-less/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": ">= 10" } }, "node_modules/gulplog": { @@ -6211,7 +6314,8 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true }, "node_modules/has-value": { "version": "1.0.0", @@ -6282,8 +6386,21 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/http-response-object": { "version": "3.0.2", @@ -6338,17 +6455,27 @@ } }, "node_modules/humanize-duration": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.25.1.tgz", - "integrity": "sha512-P+dRo48gpLgc2R9tMRgiDRNULPKCmqFYgguwqOO2C0fjO35TgdURDQDANSR1Nt92iHlbHGMxOTnsB8H8xnMa2Q==" + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz", + "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==" }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -6373,15 +6500,6 @@ } ] }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, "node_modules/image-q": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", @@ -6406,17 +6524,35 @@ "node_modules/imul": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz", - "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=", + "integrity": "sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/indx": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz", - "integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA=", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "node_modules/inflight": { @@ -6437,7 +6573,8 @@ "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "devOptional": true }, "node_modules/interpret": { "version": "1.4.0", @@ -6461,6 +6598,12 @@ "node": ">=0.10.0" } }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -6641,24 +6784,30 @@ "node": ">=8" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, "node_modules/is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", + "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==", "dev": true, "optional": true }, "node_modules/is-my-json-valid": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", - "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "version": "2.20.6", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", + "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", "dev": true, "optional": true, "dependencies": { "generate-function": "^2.0.0", "generate-object-property": "^1.1.0", "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", + "jsonpointer": "^5.0.0", "xtend": "^4.0.0" } }, @@ -6719,7 +6868,7 @@ "node_modules/is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", "dev": true, "optional": true }, @@ -6738,7 +6887,7 @@ "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, "optional": true, "engines": { @@ -6762,6 +6911,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -6797,11 +6958,6 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "node_modules/isbinaryfile": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", @@ -6850,6 +7006,18 @@ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -6858,8 +7026,7 @@ "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "node_modules/json-schema": { "version": "0.2.3", @@ -6892,9 +7059,9 @@ } }, "node_modules/jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", "dev": true, "optional": true, "engines": { @@ -6934,7 +7101,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -6949,12 +7115,12 @@ } }, "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" + "engines": { + "node": ">=14.14.0" } }, "node_modules/kuler": { @@ -6975,15 +7141,6 @@ "node": ">= 0.10" } }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -7179,101 +7336,62 @@ } }, "node_modules/lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "devOptional": true }, - "node_modules/lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.partialright": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz", - "integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs=", - "dev": true - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "node_modules/log": { "resolved": "lib/log", "link": true }, "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "chalk": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", + "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", "dependencies": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", + "@colors/colors": "1.5.0", "fecha": "^4.2.0", "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "get-func-name": "^2.0.0" } }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7282,7 +7400,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -7291,16 +7408,15 @@ } }, "node_modules/lzma-native": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", - "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz", + "integrity": "sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA==", "dev": true, "hasInstallScript": true, "dependencies": { - "node-addon-api": "^1.6.0", - "node-pre-gyp": "^0.11.0", - "readable-stream": "^2.3.5", - "rimraf": "^2.7.1" + "node-addon-api": "^3.1.0", + "node-gyp-build": "^4.2.1", + "readable-stream": "^3.6.0" }, "bin": { "lzmajs": "bin/lzmajs" @@ -7309,22 +7425,10 @@ "node": ">=10.0.0" } }, - "node_modules/lzma-native/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/macos-alias": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/macos-alias/-/macos-alias-0.2.11.tgz", - "integrity": "sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo=", + "integrity": "sha512-zIUs3+qpml+w3wiRuADutd7XIO8UABqksot10Utl/tji4UxZzLG4fWDC+yJZoO8/Ehg5RqsvSRE/6TS5AEOeWw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -7335,6 +7439,33 @@ "nan": "^2.4.0" } }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -7414,7 +7545,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, "optional": true, "dependencies": { "escape-string-regexp": "^4.0.0" @@ -7486,17 +7616,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -7523,9 +7642,9 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -7534,6 +7653,71 @@ "node": ">=8" } }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -7583,49 +7767,41 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, "node_modules/mocha": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz", - "integrity": "sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", + "glob": "7.2.0", "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 10.12.0" + "node": ">= 14.0.0" }, "funding": { "type": "opencollective", @@ -7642,9 +7818,9 @@ } }, "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -7654,12 +7830,6 @@ "node": ">= 8" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/mocha/node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -7669,6 +7839,15 @@ "node": ">=8" } }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -7682,24 +7861,30 @@ } }, "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/mocha/node_modules/cliui": { @@ -7756,9 +7941,9 @@ } }, "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" @@ -7788,18 +7973,6 @@ "node": ">=0.12.0" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/mocha/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7815,6 +7988,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -7861,9 +8046,9 @@ } }, "node_modules/mocha/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" @@ -7884,21 +8069,6 @@ "node": ">=8.0" } }, - "node_modules/mocha/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mocha/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -7953,9 +8123,9 @@ } }, "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "engines": { "node": "*" } @@ -7970,13 +8140,13 @@ "link": true }, "node_modules/murmur-32": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.1.0.tgz", - "integrity": "sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.2.0.tgz", + "integrity": "sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==", "dev": true, "optional": true, "dependencies": { - "array-buffer-from-string": "^0.1.0", + "encode-utf8": "^1.0.3", "fmix": "^0.1.0", "imul": "^1.0.0" } @@ -7993,12 +8163,14 @@ "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true }, "node_modules/nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -8029,35 +8201,13 @@ "node": ">=0.10.0" } }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "node": ">= 0.6" } }, "node_modules/next-tick": { @@ -8074,34 +8224,77 @@ "optional": true }, "node_modules/node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", + "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "dev": true, "dependencies": { - "semver": "^5.4.1" + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true }, + "node_modules/node-api-version": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz", + "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-api-version/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", + "npmlog": "^6.0.0", "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", "which": "^2.0.2" }, "bin": { @@ -8111,10 +8304,20 @@ "node": ">= 10.12.0" } }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8142,22 +8345,25 @@ } }, "node_modules/node-notifier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.0.tgz", - "integrity": "sha512-SkwNwGnMMlSPrcoeH4CSo9XyWe72acAHEJGDdPdB+CyBVHsIYaTQ4U/1wk3URsyzC75xZLg2vzU2YaALlqDF1Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "dependencies": { "growly": "^1.3.0", "is-wsl": "^2.2.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shellwords": "^0.1.1", - "uuid": "^8.3.0", + "uuid": "^8.3.2", "which": "^2.0.2" } }, "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -8179,116 +8385,6 @@ "node": ">= 8" } }, - "node_modules/node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "dev": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/node-pre-gyp/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/node-pre-gyp/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/node-pre-gyp/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/node-pre-gyp/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/node-pre-gyp/node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -8332,7 +8428,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8349,20 +8444,10 @@ "node": ">= 0.10" } }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, "node_modules/npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, "optional": true, "dependencies": { "config-chain": "^1.1.11", @@ -8372,27 +8457,10 @@ "node": ">=4" } }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, "optional": true, "dependencies": { @@ -8403,20 +8471,25 @@ } }, "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8433,6 +8506,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8661,15 +8735,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -8682,30 +8747,10 @@ "node": ">=0.10.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, "engines": { "node": ">=6" } @@ -8744,6 +8789,21 @@ "node": ">=8" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -8807,7 +8867,7 @@ "node_modules/parse-color/node_modules/color-convert": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==", "dev": true, "optional": true }, @@ -8954,9 +9014,9 @@ } }, "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { "node": "*" @@ -8965,8 +9025,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "node_modules/performance-now": { "version": "2.1.0", @@ -8979,9 +9038,9 @@ "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -8994,7 +9053,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, "optional": true, "engines": { "node": ">=4" @@ -9033,85 +9091,31 @@ } }, "node_modules/plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", "dev": true, "dependencies": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" }, "engines": { "node": ">=6" } }, "node_modules/plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "dependencies": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "dependencies": { - "kind-of": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/pngjs": { @@ -9131,39 +9135,10 @@ "node": ">=0.10.0" } }, - "node_modules/prebuild-install": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.1.tgz", - "integrity": "sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==", - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, "engines": { "node": ">=4" } @@ -9206,11 +9181,29 @@ "resolved": "lib/proj", "link": true }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, "optional": true }, "node_modules/prr": { @@ -9284,14 +9277,14 @@ } }, "node_modules/random-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.1.tgz", - "integrity": "sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.2.tgz", + "integrity": "sha512-4jY0yoEaQ5v9StCl5kZbNIQlg1QheIDBrdkDn53EynpPb9FgO6//p3X/tgMnrC45XN6QZCzU1Xz/+pSSsJBpRw==", "dev": true, "optional": true, "dependencies": { - "base32-encode": "^0.1.0", - "murmur-32": "^0.1.0" + "base32-encode": "^0.1.0 || ^1.0.0", + "murmur-32": "^0.1.0 || ^0.2.0" } }, "node_modules/randombytes": { @@ -9303,35 +9296,16 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rcedit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.2.0.tgz", - "integrity": "sha512-dhFtYmQS+V8qQIANyX6zDK+sO50ayDePKApi46ZPK8I6QeyyTDD6LManMa7a3p3c9mLM4zi9QBP41pfhQ9p7Sg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", + "integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==", "dev": true, + "dependencies": { + "cross-spawn-windows-exe": "^1.1.0" + }, "engines": { - "node": ">= 8.0.0" + "node": ">= 10.0.0" } }, "node_modules/rcinfo": { @@ -9393,17 +9367,16 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/readdirp": { @@ -9697,7 +9670,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } @@ -9724,16 +9696,13 @@ "node": ">=0.12" } }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, - "dependencies": { - "align-text": "^0.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, "node_modules/rimraf": { @@ -9749,13 +9718,12 @@ } }, "node_modules/roarr": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", - "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", - "dev": true, + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "optional": true, "dependencies": { - "boolean": "^3.0.0", + "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", @@ -9766,13 +9734,6 @@ "node": ">=8.0" } }, - "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -9787,20 +9748,19 @@ "ret": "~0.1.10" } }, + "node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -9810,6 +9770,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -9818,7 +9779,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, "optional": true }, "node_modules/semver-greatest-satisfied-range": { @@ -9841,43 +9801,48 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, "optional": true, "dependencies": { "type-fest": "^0.13.1" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serialport": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/serialport/-/serialport-9.0.7.tgz", - "integrity": "sha512-NeDfVks3JAJ7s8cXDopx1iUUgC/7TaltE7iQGiSewIWMZaK7oStiz3VJzcuKgor7F+U/y6zbAnj4i6eHq0on+g==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/serialport/-/serialport-10.4.0.tgz", + "integrity": "sha512-PszPM5SnFMgSXom60PkKS2A9nMlNbHkuoyRBlzdSWw9rmgOn258+V0dYbWMrETJMM+TJV32vqBzjg5MmmUMwMw==", "dependencies": { - "@serialport/binding-mock": "^9.0.7", - "@serialport/bindings": "^9.0.7", - "@serialport/parser-byte-length": "^9.0.7", - "@serialport/parser-cctalk": "^9.0.7", - "@serialport/parser-delimiter": "^9.0.7", - "@serialport/parser-inter-byte-timeout": "^9.0.7", - "@serialport/parser-readline": "^9.0.7", - "@serialport/parser-ready": "^9.0.7", - "@serialport/parser-regex": "^9.0.7", - "@serialport/stream": "^9.0.7", - "debug": "^4.3.1" + "@serialport/binding-mock": "10.2.2", + "@serialport/bindings-cpp": "10.7.0", + "@serialport/parser-byte-length": "10.3.0", + "@serialport/parser-cctalk": "10.3.0", + "@serialport/parser-delimiter": "10.3.0", + "@serialport/parser-inter-byte-timeout": "10.3.0", + "@serialport/parser-packet-length": "10.3.0", + "@serialport/parser-readline": "10.3.0", + "@serialport/parser-ready": "10.3.0", + "@serialport/parser-regex": "10.3.0", + "@serialport/parser-slip-encoder": "10.3.0", + "@serialport/parser-spacepacket": "10.3.0", + "@serialport/stream": "10.3.0", + "debug": "^4.3.3" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "funding": { "url": "https://opencollective.com/serialport/donate" @@ -9890,7 +9855,8 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "devOptional": true }, "node_modules/set-value": { "version": "2.0.1", @@ -9952,38 +9918,10 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" }, "node_modules/signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -9993,6 +9931,16 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -10139,6 +10087,34 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -10224,6 +10200,12 @@ "node": ">=0.10.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true + }, "node_modules/sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -10248,6 +10230,18 @@ "node": ">=0.10.0" } }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -10312,26 +10306,26 @@ } }, "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "devOptional": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -10396,7 +10390,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, "dependencies": { "debug": "^4.1.0" }, @@ -10434,9 +10427,9 @@ "link": true }, "node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -10450,50 +10443,6 @@ "node": ">= 10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10511,6 +10460,15 @@ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, "node_modules/through2-filter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", @@ -10636,6 +10594,13 @@ "node": ">=0.10.0" } }, + "node_modules/to-data-view": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-data-view/-/to-data-view-1.1.0.tgz", + "integrity": "sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==", + "dev": true, + "optional": true + }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -10664,7 +10629,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, "engines": { "node": ">=6" } @@ -10787,20 +10751,10 @@ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dev": true, - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, "optional": true, "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" @@ -10841,10 +10795,12 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, "optional": true, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray": { @@ -10853,9 +10809,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -10865,64 +10821,6 @@ "node": ">=4.2.0" } }, - "node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/uglify-js/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglify-js/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/uglify-js/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -10976,6 +10874,24 @@ "node": ">=0.10.0" } }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, "node_modules/unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -10995,9 +10911,9 @@ } }, "node_modules/unorm": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.5.0.tgz", - "integrity": "sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", "dev": true, "optional": true, "engines": { @@ -11086,7 +11002,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -11103,12 +11018,6 @@ "node": ">=0.10.0" } }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", - "dev": true - }, "node_modules/utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -11295,12 +11204,6 @@ "defaults": "^1.0.3" } }, - "node_modules/when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", - "dev": true - }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -11319,97 +11222,52 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "optional": true }, - "node_modules/which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz", + "integrity": "sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==", "dependencies": { "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", + "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.2.0", + "logform": "^2.4.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" }, "engines": { "node": ">= 6.4.0" } }, - "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "engines": { - "node": ">= 6.4.0" - } + "node_modules/winston/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/winston/node_modules/is-stream": { "version": "2.0.0", @@ -11419,19 +11277,6 @@ "node": ">=8" } }, - "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -11441,19 +11286,10 @@ "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "node_modules/wrap-ansi": { @@ -11520,15 +11356,6 @@ "node": ">=4.0" } }, - "node_modules/xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "dev": true, - "engines": { - "node": ">=0.1" - } - }, "node_modules/xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -11546,8 +11373,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "15.4.1", @@ -11627,7 +11453,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -11662,6 +11487,11 @@ "dev": true, "optional": true }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + }, "@dabh/diagnostics": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", @@ -11684,19 +11514,18 @@ } }, "@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", - "dev": true, + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", "fs-extra": "^8.1.0", - "global-agent": "^2.0.2", + "global-agent": "^3.0.0", "global-tunnel-ng": "^2.7.1", "got": "^9.6.0", "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "dependencies": { @@ -11704,7 +11533,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -11715,19 +11543,69 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "@electron/remote": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", + "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==", + "requires": {} + }, + "@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", + "dev": true, + "requires": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true } } }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, "@jimp/bmp": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", @@ -12058,97 +11936,171 @@ "cross-spawn": "^7.0.1" } }, - "@serialport/binding-abstract": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.7.tgz", - "integrity": "sha512-g1ncCMIG9rMsxo/28ObYmXZcHThlvtZygsCANmyMUuFS7SwXY4+PhcEnt2+ZcMkEDNRiOklT+ngtIVx5GGpt/A==", + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, "requires": { - "debug": "^4.3.1" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "@serialport/binding-mock": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.7.tgz", - "integrity": "sha512-aR8H+htZwwZZkVb1MdbnNvGWw8eXVRqQ2qPhkbKyx0N/LY5aVIgCgT98Kt1YylLsG7SzNG+Jbhd4wzwEuPVT5Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz", + "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==", "requires": { - "@serialport/binding-abstract": "^9.0.7", - "debug": "^4.3.1" + "@serialport/bindings-interface": "^1.2.1", + "debug": "^4.3.3" } }, - "@serialport/bindings": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.7.tgz", - "integrity": "sha512-cNWaxnEbbpLoSJ6GMb0ZeCpaciczm8XRE4jgBqe/BflWZb+wyiTYIocbsySxpS40WT3kJ0sNTFag77uSmQ6ftg==", + "@serialport/bindings-cpp": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-10.7.0.tgz", + "integrity": "sha512-Xx1wA2UCG2loS32hxNvWJI4smCzGKhWqE85//fLRzHoGgE1lSLe3Nk7W40/ebrlGFHWRbQZmeaIF4chb2XLliA==", "requires": { - "@serialport/binding-abstract": "^9.0.7", - "@serialport/parser-readline": "^9.0.7", - "bindings": "^1.5.0", - "debug": "^4.3.1", - "nan": "^2.14.2", - "prebuild-install": "^6.0.1" + "@serialport/bindings-interface": "1.2.1", + "@serialport/parser-readline": "^10.2.1", + "debug": "^4.3.2", + "node-addon-api": "^4.3.0", + "node-gyp-build": "^4.3.0" + }, + "dependencies": { + "@serialport/bindings-interface": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz", + "integrity": "sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==" + }, + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + } } }, + "@serialport/bindings-interface": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz", + "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==" + }, "@serialport/parser-byte-length": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.7.tgz", - "integrity": "sha512-evf7oOOSBMBn2AZZbgBFMRIyEzlsyQkhqaPm7IBCPTxMDXRf4tKkFYJHYZB0/6d1W4eI0meH079UqmSsh/uoDA==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-10.3.0.tgz", + "integrity": "sha512-pJ/VoFemzKRRNDHLhFfPThwP40QrGaEnm9TtwL7o2GihEPwzBg3T0bN13ew5TpbbUYZdMpUtpm3CGfl6av9rUQ==" }, "@serialport/parser-cctalk": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.7.tgz", - "integrity": "sha512-ert5jhMkeiTfr44TkbdySC09J8UwAsf/RxBucVN5Mz5enG509RggnkfFi4mfj3UCG2vZ7qsmM6gtZ62DshY02Q==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-10.3.0.tgz", + "integrity": "sha512-8ujmk8EvVbDPrNF4mM33bWvUYJOZ0wXbY3WCRazHRWvyCdL0VO0DQvW81ZqgoTpiDQZm5r8wQu9rmuemahF6vQ==" }, "@serialport/parser-delimiter": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.7.tgz", - "integrity": "sha512-Vb2NPeXPZ/28M4m5x4OAHFd8jRAeddNCgvL+Q+H/hqFPY1w47JcMLchC7pigRW8Cnt1fklmzfwdNQ8Fb+kMkxQ==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-10.3.0.tgz", + "integrity": "sha512-9E4Vj6s0UbbcCCTclwegHGPYjJhdm9qLCS0lowXQDEQC5naZnbsELemMHs93nD9jHPcyx1B4oXkMnVZLxX5TYw==" }, "@serialport/parser-inter-byte-timeout": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.0.7.tgz", - "integrity": "sha512-lUZ3cwgUluBvJ1jf+0LQsqoiPYAokDO6+fRCw9HCfnrF/OS60Gm4rxuyo2uQIueqZkJ7NIFP+ibKsULrA47AEA==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-10.3.0.tgz", + "integrity": "sha512-wKP0QK85NHgvT6BBB1qBfKBBU4pf8kespNXAZBUYmFT+P4n8r8IZE2mqigCD+AiZcfWNQoAizwOsT/Jx/qeVig==" + }, + "@serialport/parser-packet-length": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-10.3.0.tgz", + "integrity": "sha512-bj0cWzt8YSQj/E5fRQVYdi4TsfTlZQrXlXrUwjyTsCONv8IPOHzsz+yY0fw5SEMiJtaLyqvPkCHLsttOd/zFsg==" }, "@serialport/parser-readline": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.7.tgz", - "integrity": "sha512-ydoLbgVQQPxWrwbe3Fhh4XnZexbkEQAC6M/qgRTzjnKvTjrD61CJNxLc3vyDaAPI9bJIhTiI7eTX3JB5jJv8Hg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-10.3.0.tgz", + "integrity": "sha512-ki3ATZ3/RAqnqGROBKE7k+OeZ0DZXZ53GTca4q71OU5RazbbNhTOBQLKLXD3v9QZXCMJdg4hGW/2Y0DuMUqMQg==", "requires": { - "@serialport/parser-delimiter": "^9.0.7" + "@serialport/parser-delimiter": "10.3.0" } }, "@serialport/parser-ready": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.7.tgz", - "integrity": "sha512-3qYhI4cNUPAYqVYvdwV57Y+PVRl4dJf1fPBtMoWtwDgwopsAXTR93WCs49WuUq9JCyNW+8Hrfqv8x8eNAD5Dqg==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-10.3.0.tgz", + "integrity": "sha512-1owywJ4p592dJyVrEJZPIh6pUZ3/y/LN6kGTDH2wxdewRUITo/sGvDy0er5i2+dJD3yuowiAz0dOHSdz8tevJA==" }, "@serialport/parser-regex": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.7.tgz", - "integrity": "sha512-5XF+FXbhqQ/5bVKM4NaGs1m+E9KjfmeCx/obwsKaUZognQF67jwoTfjJJWNP/21jKfxdl8XoCYjZjASl3XKRAw==" + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-10.3.0.tgz", + "integrity": "sha512-tIogTs7CvTH+UUFnsvE7i33MSISyTPTGPWlglWYH2/5coipXY503jlaYS1YGe818wWNcSx6YAjMZRdhTWwM39w==" + }, + "@serialport/parser-slip-encoder": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-10.3.0.tgz", + "integrity": "sha512-JI0ILF5sylWn8f0MuMzHFBix/iMUTa79/Z95KaPZYnVaEdA7h7hh/o21Jmon/26P3RJwL1SNJCjZ81zfan+LtQ==" + }, + "@serialport/parser-spacepacket": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-10.3.0.tgz", + "integrity": "sha512-PDF73ClEPsClD1FEJZHNuBevDKsJCkqy/XD5+S5eA6+tY5D4HLrVgSWsg+3qqB6+dlpwf2CzHe+uO8D3teuKHA==" }, "@serialport/stream": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.7.tgz", - "integrity": "sha512-c/h7HPAeFiryD9iTGlaSvPqHFHSZ0NMQHxC4rcmKS2Vu3qJuEtkBdTLABwsMp7iWEiSnI4KC3s7bHapaXP06FQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-10.3.0.tgz", + "integrity": "sha512-7sooi5fHogYNVEJwxVdg872xO6TuMgQd2E9iRmv+o8pk/1dbBnPkmH6Ka3st1mVE+0KnIJqVlgei+ncSsqXIGw==", "requires": { - "debug": "^4.3.1" + "@serialport/bindings-interface": "1.2.1", + "debug": "^4.3.2" + }, + "dependencies": { + "@serialport/bindings-interface": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.1.tgz", + "integrity": "sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==" + } } }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@types/cacheable-request": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", @@ -12193,9 +12145,9 @@ "dev": true }, "@types/jquery": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", - "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", "dev": true, "requires": { "@types/sizzle": "*" @@ -12217,10 +12169,9 @@ "optional": true }, "@types/node": { - "version": "12.12.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.48.tgz", - "integrity": "sha512-m3Nmo/YaDUfYzdCQlxjF5pIy7TNyDTAJhIa//xtHcF0dlgYIBKULKnmloCPtByDxtZXrWV8Pge1AKT6/lRvVWg==", - "devOptional": true + "version": "16.11.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.38.tgz", + "integrity": "sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg==" }, "@types/responselike": { "version": "1.0.0", @@ -12259,36 +12210,35 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "accord": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/accord/-/accord-0.29.0.tgz", - "integrity": "sha512-3OOR92FTc2p5/EcOzPcXp+Cbo+3C15nV9RXHlOUBCBpHhcB+0frbSNR9ehED/o7sTcyGVtqGJpguToEdlXhD0w==", - "dev": true, - "requires": { - "convert-source-map": "^1.5.0", - "glob": "^7.0.5", - "indx": "^0.2.3", - "lodash.clone": "^4.3.2", - "lodash.defaults": "^4.0.1", - "lodash.flatten": "^4.2.0", - "lodash.merge": "^4.4.0", - "lodash.partialright": "^4.1.4", - "lodash.pick": "^4.2.1", - "lodash.uniq": "^4.3.0", - "resolve": "^1.5.0", - "semver": "^5.3.0", - "uglify-js": "^2.8.22", - "when": "^3.7.8" - } - }, "agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", @@ -12300,28 +12250,6 @@ "uri-js": "^4.2.2" } }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "animated-gif-detector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/animated-gif-detector/-/animated-gif-detector-1.2.0.tgz", @@ -12339,15 +12267,6 @@ "ansi-wrap": "^0.1.0" } }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -12357,19 +12276,10 @@ "ansi-wrap": "0.1.0" } }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "devOptional": true }, "ansi-styles": { @@ -12404,9 +12314,9 @@ } }, "appdmg": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.6.0.tgz", - "integrity": "sha512-vDz8cMf5c6BfoS72OmmHzzuxG5DFVDM6YCAkscjYh3GASGEBBRCZ10Bn515ZPSPHOpfI9Xu3MlApbd49C58pJg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.6.4.tgz", + "integrity": "sha512-YTilgNF0DF2DSRzGzzGDxaTMLXlhe3b3HB8RAaoJJ/VJXZbOlzIAcZ7gdPniHUVUuHjGwnS7fUMd4FvO2Rp94A==", "dev": true, "optional": true, "requires": { @@ -12423,24 +12333,10 @@ "repeat-string": "^1.5.4" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true, - "optional": true - }, "image-size": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.4.tgz", - "integrity": "sha512-GqPgxs+VkOr12aWwjSkyRzf5atzObWpFtiRuDgxCl2I/SDpZOKZFRD3iIAeAN6/usmn8SeLWRt7a8JRYK0Whbw==", - "dev": true, - "optional": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", "dev": true, "optional": true } @@ -12456,9 +12352,10 @@ } }, "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true }, "archy": { "version": "1.0.0", @@ -12470,14 +12367,21 @@ "version": "file:lib/arduino" }, "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -12514,13 +12418,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-buffer-from-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/array-buffer-from-string/-/array-buffer-from-string-0.1.0.tgz", - "integrity": "sha1-OxQ1H4YUnYTvxhLFrafthRadewc=", - "dev": true, - "optional": true - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -12639,9 +12536,11 @@ "dev": true }, "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "optional": true }, "async-done": { "version": "1.3.2", @@ -12678,7 +12577,8 @@ "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "devOptional": true }, "atob": { "version": "2.1.2", @@ -12781,11 +12681,14 @@ } }, "base32-encode": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-0.1.1.tgz", - "integrity": "sha512-jjc+6TC8PXrsxJ4CQr9ibioNhhAM1p/RvS9hy3Q+cxPphvXmLnFSkXoen2XXzNBrYjdmzajRtbFDl1x28F5F4A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-1.2.0.tgz", + "integrity": "sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A==", "dev": true, - "optional": true + "optional": true, + "requires": { + "to-data-view": "^1.1.0" + } }, "base64-js": { "version": "1.5.1", @@ -12806,34 +12709,15 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "bluebird": { @@ -12848,10 +12732,9 @@ "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, "boolean": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", - "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", - "dev": true, + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", "optional": true }, "bplist-creator": { @@ -12937,8 +12820,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-equal": { "version": "1.0.0", @@ -12963,6 +12845,40 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -12990,7 +12906,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -13005,7 +12920,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -13013,8 +12927,7 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, @@ -13035,27 +12948,18 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, "chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", "type-detect": "^4.0.5" } }, @@ -13149,6 +13053,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -13191,7 +13101,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" }, @@ -13199,8 +13108,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" } } }, @@ -13259,7 +13167,8 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "collection-map": { "version": "1.0.0", @@ -13336,9 +13245,10 @@ "dev": true }, "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true }, "colorspace": { "version": "1.1.2", @@ -13442,7 +13352,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "dev": true, "optional": true, "requires": { "ini": "^1.3.4", @@ -13452,7 +13361,8 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true }, "convert-source-map": { "version": "1.6.0", @@ -13479,13 +13389,6 @@ "is-plain-object": "^2.0.1" } }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "dev": true, - "optional": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -13575,9 +13478,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" }, @@ -13601,14 +13504,6 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -13618,11 +13513,6 @@ "type-detect": "^4.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, "default-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", @@ -13666,14 +13556,13 @@ "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, + "devOptional": true, "requires": { "object-keys": "^1.0.12" }, @@ -13682,7 +13571,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "devOptional": true } } }, @@ -13738,7 +13627,14 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true }, "detect-file": { "version": "1.0.0", @@ -13749,13 +13645,13 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true }, "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "optional": true }, "devices": { @@ -13767,6 +13663,29 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "requires": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, "display": { "version": "file:lib/display" }, @@ -13778,7 +13697,7 @@ "ds-store": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ds-store/-/ds-store-0.1.6.tgz", - "integrity": "sha1-0QJO90btDBPw9/7IXH6FjoxLfKc=", + "integrity": "sha512-kY21M6Lz+76OS3bnCzjdsJSF7LBpLYGCVfavW8TgQD2XkcqIZ86W0y9qUDZu6fp7SIZzqosMDW2zi7zVFfv4hw==", "dev": true, "optional": true, "requires": { @@ -13790,8 +13709,7 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.7.1", @@ -13857,13 +13775,12 @@ } }, "electron": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.3.0.tgz", - "integrity": "sha512-MhdS0gok3wZBTscLBbYrOhLaQybCSAfkupazbK1dMP5c+84eVMxJE/QGohiWQkzs0tVFIJsAHyN19YKPbelNrQ==", - "dev": true, + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.1.tgz", + "integrity": "sha512-zuhJVV7nTDFrRZ7uAIylSD0Eoi1xcUV4UzGfpWsREI4W5GsxNGyZQeqQDpg43w8+7oED812oDrGfPh5kb9rcQA==", "requires": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", "extract-zip": "^1.0.3" } }, @@ -13885,11 +13802,29 @@ "tmp-promise": "^3.0.2" }, "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "devOptional": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "devOptional": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "devOptional": true } } }, @@ -13907,48 +13842,39 @@ "lodash": "^4.17.4", "word-wrap": "^1.2.3", "yargs": "^15.0.1" - } - }, - "electron-installer-dmg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-3.0.0.tgz", - "integrity": "sha512-a3z9ABUfLJtrLK1ize4j+wJKslodb0kRHgBuUN4GTckiUxtGdo49XCvvAHvQaOqQk3S5VTvuc6PoofnI9mKSCQ==", - "dev": true, - "requires": { - "appdmg": "^0.6.0", - "debug": "^4.1.1", - "fs-extra": "^8.0.1", - "minimist": "^1.1.1" }, "dependencies": { "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "optional": true } } }, + "electron-installer-dmg": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-4.0.0.tgz", + "integrity": "sha512-g3W6XnyUa7QGrAF7ViewHdt6bXV2KYU1Pm1CY3pZpp+H6mOjCHHAhf/iZAxtaX1ERCb+SQHz7xSsAHuNH9I8ZQ==", + "dev": true, + "requires": { + "appdmg": "^0.6.4", + "debug": "^4.3.2", + "minimist": "^1.1.1" + } + }, "electron-notarize": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.2.1.tgz", @@ -13957,6 +13883,26 @@ "requires": { "debug": "^4.1.1", "fs-extra": "^9.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "electron-osx-sign": { @@ -13991,12 +13937,13 @@ } }, "electron-packager": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz", - "integrity": "sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==", + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.5.1.tgz", + "integrity": "sha512-9/fqF64GACZsLYLuFJ8vCqItMXbvsD0NMDLNfFmAv9mSqkqKWSZb5V3VE9CxT6CeXwZ6wN3YowEQuqBNyShEVg==", "dev": true, "requires": { "@electron/get": "^1.6.0", + "@electron/universal": "^1.2.1", "asar": "^3.1.0", "cross-spawn-windows-exe": "^1.2.0", "debug": "^4.0.1", @@ -14028,6 +13975,18 @@ "yauzl": "^2.10.0" } }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "get-stream": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", @@ -14037,21 +13996,18 @@ "pump": "^3.0.0" } }, - "rcedit": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", - "integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==", - "dev": true, - "requires": { - "cross-spawn-windows-exe": "^1.1.0" - } - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, "yargs-parser": { "version": "20.2.6", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", @@ -14061,25 +14017,36 @@ } }, "electron-rebuild": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.5.tgz", - "integrity": "sha512-1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.7.tgz", + "integrity": "sha512-WvaW1EgRinDQ61khHFZfx30rkPQG5ItaOT0wrI7iJv9A3SbghriQGfZQfHZs25fWLBe6/vkv05LOqg6aDw6Wzw==", "dev": true, "requires": { - "@malept/cross-spawn-promise": "^1.1.1", - "colors": "^1.3.3", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", "debug": "^4.1.1", "detect-libc": "^1.0.3", - "fs-extra": "^9.0.1", + "fs-extra": "^10.0.0", "got": "^11.7.0", - "lzma-native": "^6.0.1", - "node-abi": "^2.19.2", - "node-gyp": "^7.1.0", + "lzma-native": "^8.0.5", + "node-abi": "^3.0.0", + "node-api-version": "^0.1.4", + "node-gyp": "^8.4.0", "ora": "^5.1.0", + "semver": "^7.3.5", "tar": "^6.0.5", - "yargs": "^16.0.0" + "yargs": "^17.0.1" }, "dependencies": { + "@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, "@sindresorhus/is": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", @@ -14206,6 +14173,15 @@ "lowercase-keys": "^2.0.0" } }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -14218,88 +14194,59 @@ } }, "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" } }, "yargs-parser": { - "version": "20.2.6", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", - "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true } } }, "electron-wix-msi": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-3.0.6.tgz", - "integrity": "sha512-MGvhr9jQkbPWwYibD3+64R6VOUYPtl091dwLgyS2/nOtgnbsdQOeeXLCszsjPaV/N93ee/mdNBeDqHrUdbqdig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-4.0.0.tgz", + "integrity": "sha512-LEQr5IQc8w7efIVt5tIQA0efew4slffW6tfDmbfpWDSR74HnfTkkfwBAwj9vMLT4q62cO4NnkVTEuMe7FxWMTw==", "dev": true, "requires": { "@bitdisaster/exe-icon-extractor": "^1.0.10", - "debug": "^4.1.1", - "fs-extra": "^8.1.0", - "klaw": "^3.0.0", - "lodash": "^4.17.15", - "rcedit": "^2.1.0", + "debug": "^4.3.4", + "fs-extra": "^10.0.1", + "klaw": "^4.0.1", + "lodash": "^4.17.21", + "rcedit": "^3.0.1", "rcinfo": "^0.1.3", - "semver": "^6.3.0", - "uuid": "^3.3.3" + "semver": "^7.3.5", + "uuid": "^8.3.2" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -14314,13 +14261,29 @@ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" }, + "encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "dev": true, + "optional": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, "optional": true }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -14334,6 +14297,12 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -14376,7 +14345,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, "optional": true }, "es6-iterator": { @@ -14422,7 +14390,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "devOptional": true }, "exec": { "version": "file:lib/exec" @@ -14517,11 +14485,6 @@ } } }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -14626,7 +14589,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, "requires": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -14638,7 +14600,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -14646,8 +14607,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -14678,32 +14638,26 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "requires": { "pend": "~1.2.0" } }, "fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, "ffmpeg": { "version": "file:lib/ffmpeg" }, "ffmpeg-static": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.2.7.tgz", - "integrity": "sha512-SGnOr2d+k0/9toRIv9t5/hN/DMYbm5XMtG0wVwGM1tEyXJAD6dbcWOEvfHq4LOySm9uykKL6LMC4eVPeteUnbQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-5.0.0.tgz", + "integrity": "sha512-z96jGVa8uCVMnyrTvbDZe0d5zbvIVQnfBN+vKDZoVK+ssYpfUJGEmo2DkuY43CA9Ytlsk+5ZVTFTqzvKw1gSaA==", "requires": { "@derhuerst/http-basic": "^8.2.0", "env-paths": "^2.2.0", @@ -14724,11 +14678,6 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", @@ -14902,7 +14851,7 @@ "fmix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz", - "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=", + "integrity": "sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==", "dev": true, "optional": true, "requires": { @@ -14956,17 +14905,11 @@ "frame": { "version": "file:lib/frame" }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" @@ -15041,9 +14984,9 @@ } }, "fs-temp": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.1.2.tgz", - "integrity": "sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.2.1.tgz", + "integrity": "sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w==", "dev": true, "optional": true, "requires": { @@ -15051,9 +14994,9 @@ } }, "fs-xattr": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.3.0.tgz", - "integrity": "sha512-BixjoRM9etRFyWOtJRcflfu5HqBWLGTYbeHiL196VRUcc/nYgS2px6w4yVaj3XmrN1bk4rZBH82A8u5Z64YcXQ==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.3.1.tgz", + "integrity": "sha512-UVqkrEW0GfDabw4C3HOrFlxKfx0eeigfRne69FxSBdHIP8Qt5Sq6Pu3RM9KmMlkygtC4pPKkj5CiPO5USnj2GA==", "dev": true, "optional": true }, @@ -15672,51 +15615,19 @@ "optional": true }, "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" } }, "generate-function": { @@ -15732,7 +15643,7 @@ "generate-object-property": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", "dev": true, "optional": true, "requires": { @@ -15897,7 +15808,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -15925,15 +15835,10 @@ "omggif": "^1.0.10" } }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "devOptional": true, "requires": { "fs.realpath": "^1.0.0", @@ -16039,14 +15944,12 @@ } }, "global-agent": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", - "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "optional": true, "requires": { "boolean": "^3.0.1", - "core-js": "^3.6.5", "es6-error": "^4.1.1", "matcher": "^3.0.0", "roarr": "^2.15.3", @@ -16055,11 +15958,13 @@ }, "dependencies": { "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "optional": true + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -16091,7 +15996,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "dev": true, "optional": true, "requires": { "encodeurl": "^1.0.2", @@ -16101,10 +16005,9 @@ } }, "globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", - "dev": true, + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "optional": true, "requires": { "define-properties": "^1.1.3" @@ -16123,7 +16026,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -16142,7 +16044,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -16150,8 +16051,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" } } }, @@ -16160,10 +16060,10 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", "dev": true }, "growly": { @@ -16382,59 +16282,24 @@ } }, "gulp-less": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-4.0.1.tgz", - "integrity": "sha512-hmM2k0FfQp7Ptm3ZaqO2CkMX3hqpiIOn4OHtuSsCeFym63F7oWlEua5v6u1cIjVUKYsVIs9zPg9vbqTEb/udpA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-5.0.0.tgz", + "integrity": "sha512-W2I3TewO/By6UZsM/wJG3pyK5M6J0NYmJAAhwYXQHR+38S0iDtZasmUgFCH3CQj+pQYw/PAIzxvFvwtEXz1HhQ==", "dev": true, "requires": { - "accord": "^0.29.0", - "less": "2.6.x || ^3.7.1", + "less": "^3.7.1 || ^4.0.0", "object-assign": "^4.0.1", - "plugin-error": "^0.1.2", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", + "plugin-error": "^1.0.0", + "replace-ext": "^2.0.0", + "through2": "^4.0.0", "vinyl-sourcemaps-apply": "^0.2.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, @@ -16476,7 +16341,8 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true }, "has-value": { "version": "1.0.0", @@ -16534,8 +16400,18 @@ "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } }, "http-response-object": { "version": "3.0.2", @@ -16582,17 +16458,27 @@ } }, "humanize-duration": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.25.1.tgz", - "integrity": "sha512-P+dRo48gpLgc2R9tMRgiDRNULPKCmqFYgguwqOO2C0fjO35TgdURDQDANSR1Nt92iHlbHGMxOTnsB8H8xnMa2Q==" + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz", + "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==" }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "ieee754": { @@ -16600,15 +16486,6 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "image-q": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", @@ -16624,14 +16501,26 @@ "imul": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz", - "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=", + "integrity": "sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==", "dev": true, "optional": true }, - "indx": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz", - "integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "inflight": { @@ -16652,7 +16541,8 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "devOptional": true }, "interpret": { "version": "1.4.0", @@ -16669,6 +16559,12 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -16810,24 +16706,30 @@ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", + "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==", "dev": true, "optional": true }, "is-my-json-valid": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", - "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "version": "2.20.6", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", + "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", "dev": true, "optional": true, "requires": { "generate-function": "^2.0.0", "generate-object-property": "^1.1.0", "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", + "jsonpointer": "^5.0.0", "xtend": "^4.0.0" } }, @@ -16875,7 +16777,7 @@ "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", "dev": true, "optional": true }, @@ -16891,7 +16793,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, "optional": true }, @@ -16909,6 +16811,12 @@ "unc-path-regex": "^0.1.2" } }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -16935,11 +16843,6 @@ "is-docker": "^2.0.0" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "isbinaryfile": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", @@ -16982,6 +16885,15 @@ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -16990,8 +16902,7 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-schema": { "version": "0.2.3", @@ -17024,9 +16935,9 @@ } }, "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", "dev": true, "optional": true }, @@ -17057,7 +16968,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -17069,13 +16979,10 @@ "dev": true }, "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "dev": true }, "kuler": { "version": "2.0.0", @@ -17092,12 +16999,6 @@ "es6-weak-map": "^2.0.1" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, "lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -17265,137 +17166,109 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "devOptional": true }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.partialright": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz", - "integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log": { "version": "file:lib/log" }, "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, "logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", + "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", "requires": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", + "@colors/colors": "1.5.0", "fecha": "^4.2.0", "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } }, "lzma-native": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", - "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz", + "integrity": "sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA==", "dev": true, "requires": { - "node-addon-api": "^1.6.0", - "node-pre-gyp": "^0.11.0", - "readable-stream": "^2.3.5", - "rimraf": "^2.7.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "node-addon-api": "^3.1.0", + "node-gyp-build": "^4.2.1", + "readable-stream": "^3.6.0" } }, "macos-alias": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/macos-alias/-/macos-alias-0.2.11.tgz", - "integrity": "sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo=", + "integrity": "sha512-zIUs3+qpml+w3wiRuADutd7XIO8UABqksot10Utl/tji4UxZzLG4fWDC+yJZoO8/Ehg5RqsvSRE/6TS5AEOeWw==", "dev": true, "optional": true, "requires": { "nan": "^2.4.0" } }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + } + }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -17459,7 +17332,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, "optional": true, "requires": { "escape-string-regexp": "^4.0.0" @@ -17510,11 +17382,6 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -17538,14 +17405,62 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "requires": { "yallist": "^4.0.0" } }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -17585,39 +17500,31 @@ "minimist": "^1.2.5" } }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, "mocha": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz", - "integrity": "sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.1", - "debug": "4.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", + "glob": "7.2.0", "he": "1.2.0", - "js-yaml": "4.0.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.1.20", - "serialize-javascript": "5.0.1", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -17630,27 +17537,30 @@ "dev": true }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -17661,19 +17571,19 @@ } }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "cliui": { @@ -17714,9 +17624,9 @@ "optional": true }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -17737,15 +17647,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -17755,6 +17656,15 @@ "p-locate": "^5.0.0" } }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -17786,9 +17696,9 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -17803,15 +17713,6 @@ "is-number": "^7.0.0" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -17853,9 +17754,9 @@ } }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "ms": { "version": "2.1.1", @@ -17866,13 +17767,13 @@ "version": "file:lib/mscript" }, "murmur-32": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.1.0.tgz", - "integrity": "sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.2.0.tgz", + "integrity": "sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==", "dev": true, "optional": true, "requires": { - "array-buffer-from-string": "^0.1.0", + "encode-utf8": "^1.0.3", "fmix": "^0.1.0", "imul": "^1.0.0" } @@ -17886,12 +17787,14 @@ "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true }, "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "nanomatch": { @@ -17913,32 +17816,11 @@ "to-regex": "^3.0.1" } }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "needle": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", - "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true }, "next-tick": { "version": "1.0.0", @@ -17954,41 +17836,73 @@ "optional": true }, "node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", + "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "dev": true, "requires": { - "semver": "^5.4.1" + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true }, + "node-api-version": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz", + "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==", + "dev": true, + "requires": { + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", + "npmlog": "^6.0.0", "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", "which": "^2.0.2" }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -18005,23 +17919,31 @@ } } }, + "node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" + }, "node-notifier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.0.tgz", - "integrity": "sha512-SkwNwGnMMlSPrcoeH4CSo9XyWe72acAHEJGDdPdB+CyBVHsIYaTQ4U/1wk3URsyzC75xZLg2vzU2YaALlqDF1Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", + "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "requires": { "growly": "^1.3.0", "is-wsl": "^2.2.0", - "semver": "^7.3.2", + "semver": "^7.3.5", "shellwords": "^0.1.1", - "uuid": "^8.3.0", + "uuid": "^8.3.2", "which": "^2.0.2" }, "dependencies": { "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } }, "which": { "version": "2.0.2", @@ -18033,105 +17955,6 @@ } } }, - "node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "dev": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -18165,8 +17988,7 @@ "normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "now-and-later": { "version": "2.0.1", @@ -18177,47 +17999,20 @@ "once": "^1.3.2" } }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, "npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, "optional": true, "requires": { "config-chain": "^1.1.11", "pify": "^3.0.0" } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, "optional": true, "requires": { @@ -18225,20 +18020,22 @@ } }, "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.9.0", @@ -18248,7 +18045,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-copy": { "version": "0.1.0", @@ -18438,12 +18236,6 @@ } } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -18453,27 +18245,10 @@ "lcid": "^1.0.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "p-finally": { "version": "1.0.0", @@ -18500,6 +18275,15 @@ "p-limit": "^2.2.0" } }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -18557,7 +18341,7 @@ "color-convert": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==", "dev": true, "optional": true } @@ -18672,16 +18456,15 @@ } }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { "version": "2.1.0", @@ -18694,16 +18477,15 @@ "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, "optional": true }, "pinkie": { @@ -18730,66 +18512,25 @@ } }, "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", "dev": true, "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" } }, "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" } }, "pngjs": { @@ -18803,33 +18544,10 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "prebuild-install": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.1.tgz", - "integrity": "sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "pretty-hrtime": { "version": "1.0.3", @@ -18858,11 +18576,26 @@ "proj": { "version": "file:lib/proj" }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, "optional": true }, "prr": { @@ -18926,14 +18659,14 @@ "dev": true }, "random-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.1.tgz", - "integrity": "sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.2.tgz", + "integrity": "sha512-4jY0yoEaQ5v9StCl5kZbNIQlg1QheIDBrdkDn53EynpPb9FgO6//p3X/tgMnrC45XN6QZCzU1Xz/+pSSsJBpRw==", "dev": true, "optional": true, "requires": { - "base32-encode": "^0.1.0", - "murmur-32": "^0.1.0" + "base32-encode": "^0.1.0 || ^1.0.0", + "murmur-32": "^0.1.0 || ^0.2.0" } }, "randombytes": { @@ -18945,29 +18678,14 @@ "safe-buffer": "^5.1.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } - } - }, "rcedit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-2.2.0.tgz", - "integrity": "sha512-dhFtYmQS+V8qQIANyX6zDK+sO50ayDePKApi46ZPK8I6QeyyTDD6LManMa7a3p3c9mLM4zi9QBP41pfhQ9p7Sg==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", + "integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==", + "dev": true, + "requires": { + "cross-spawn-windows-exe": "^1.1.0" + } }, "rcinfo": { "version": "0.1.3", @@ -19018,17 +18736,13 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { @@ -19286,7 +19000,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -19307,14 +19020,11 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true }, "rimraf": { "version": "3.0.2", @@ -19326,27 +19036,17 @@ } }, "roarr": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", - "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", - "dev": true, + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "optional": true, "requires": { - "boolean": "^3.0.0", + "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true - } } }, "safe-buffer": { @@ -19363,20 +19063,16 @@ "ret": "~0.1.10" } }, + "safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dev": true, - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -19385,13 +19081,13 @@ "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true }, "semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, "optional": true }, "semver-greatest-satisfied-range": { @@ -19410,37 +19106,39 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, "optional": true, "requires": { "type-fest": "^0.13.1" } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "serialport": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/serialport/-/serialport-9.0.7.tgz", - "integrity": "sha512-NeDfVks3JAJ7s8cXDopx1iUUgC/7TaltE7iQGiSewIWMZaK7oStiz3VJzcuKgor7F+U/y6zbAnj4i6eHq0on+g==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/serialport/-/serialport-10.4.0.tgz", + "integrity": "sha512-PszPM5SnFMgSXom60PkKS2A9nMlNbHkuoyRBlzdSWw9rmgOn258+V0dYbWMrETJMM+TJV32vqBzjg5MmmUMwMw==", "requires": { - "@serialport/binding-mock": "^9.0.7", - "@serialport/bindings": "^9.0.7", - "@serialport/parser-byte-length": "^9.0.7", - "@serialport/parser-cctalk": "^9.0.7", - "@serialport/parser-delimiter": "^9.0.7", - "@serialport/parser-inter-byte-timeout": "^9.0.7", - "@serialport/parser-readline": "^9.0.7", - "@serialport/parser-ready": "^9.0.7", - "@serialport/parser-regex": "^9.0.7", - "@serialport/stream": "^9.0.7", - "debug": "^4.3.1" + "@serialport/binding-mock": "10.2.2", + "@serialport/bindings-cpp": "10.7.0", + "@serialport/parser-byte-length": "10.3.0", + "@serialport/parser-cctalk": "10.3.0", + "@serialport/parser-delimiter": "10.3.0", + "@serialport/parser-inter-byte-timeout": "10.3.0", + "@serialport/parser-packet-length": "10.3.0", + "@serialport/parser-readline": "10.3.0", + "@serialport/parser-ready": "10.3.0", + "@serialport/parser-regex": "10.3.0", + "@serialport/parser-slip-encoder": "10.3.0", + "@serialport/parser-spacepacket": "10.3.0", + "@serialport/stream": "10.3.0", + "debug": "^4.3.3" } }, "server": { @@ -19449,7 +19147,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "devOptional": true }, "set-value": { "version": "2.0.1", @@ -19500,24 +19199,10 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "simple-swizzle": { "version": "0.2.2", @@ -19527,6 +19212,12 @@ "is-arrayish": "^0.3.1" } }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -19649,6 +19340,27 @@ } } }, + "socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -19724,6 +19436,12 @@ "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -19740,6 +19458,15 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -19794,23 +19521,23 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "devOptional": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "devOptional": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -19856,7 +19583,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, "requires": { "debug": "^4.1.0" } @@ -19884,9 +19610,9 @@ "version": "file:lib/system" }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -19905,53 +19631,20 @@ } } }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, "through2-filter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", @@ -20064,6 +19757,13 @@ "is-negated-glob": "^1.0.0" } }, + "to-data-view": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-data-view/-/to-data-view-1.1.0.tgz", + "integrity": "sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==", + "dev": true, + "optional": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -20087,8 +19787,7 @@ "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "to-regex": { "version": "3.0.2", @@ -20194,20 +19893,10 @@ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dev": true, - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, "optional": true }, "tunnel-agent": { @@ -20239,7 +19928,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, "optional": true }, "typedarray": { @@ -20248,60 +19936,11 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", + "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -20343,6 +19982,24 @@ "set-value": "^2.0.1" } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -20359,9 +20016,9 @@ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" }, "unorm": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.5.0.tgz", - "integrity": "sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", "dev": true, "optional": true }, @@ -20435,7 +20092,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" } @@ -20446,12 +20102,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", - "dev": true - }, "utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -20619,12 +20269,6 @@ "defaults": "^1.0.3" } }, - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", - "dev": true - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -20640,94 +20284,52 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "optional": true }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, "winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz", + "integrity": "sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==", "requires": { "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", + "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.2.0", + "logform": "^2.4.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" + "winston-transport": "^4.5.0" }, "dependencies": { + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } } } }, "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" } }, "word-wrap": { @@ -20736,16 +20338,10 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "optional": true }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "workerpool": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", - "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "wrap-ansi": { @@ -20802,12 +20398,6 @@ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, - "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "dev": true - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -20822,8 +20412,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "15.4.1", @@ -20884,7 +20473,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/app/package.json b/app/package.json index 4a4cd12..6954b6f 100644 --- a/app/package.json +++ b/app/package.json @@ -35,21 +35,22 @@ }, "homepage": "https://github.com/sixteenmillimeter/mcopy#readme", "devDependencies": { - "@types/jquery": "^3.5.5", - "chai": "^4.3.0", - "electron": "^11.3.0", + "@types/jquery": "^3.5.14", + "chai": "^4.3.6", + "electron": "^19.0.1", "electron-installer-common": "^0.10.3", - "electron-installer-dmg": "^3.0.0", - "electron-packager": "^15.4.0", - "electron-rebuild": "^2.3.5", - "electron-wix-msi": "^3.0.6", + "electron-installer-dmg": "^4.0.0", + "electron-packager": "^15.5.1", + "electron-rebuild": "^3.2.7", + "electron-wix-msi": "^4.0.0", "gulp": "^4.0.2", "gulp-concat": "^2.6.1", - "gulp-less": "^4.0.1", - "mocha": "^8.3.0", - "typescript": "^4.1.5" + "gulp-less": "^5.0.0", + "mocha": "^10.0.0", + "typescript": "^4.7.2" }, "dependencies": { + "@electron/remote": "^2.0.8", "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", @@ -61,31 +62,31 @@ "exec": "file:lib/exec", "exit": "file:lib/exit", "ffmpeg": "file:lib/ffmpeg", - "ffmpeg-static": "^4.2.7", + "ffmpeg-static": "^5.0.0", "ffprobe": "file:lib/ffprobe", "ffprobe-static": "^3.0.0", "filmout": "file:lib/filmout", "frame": "file:lib/frame", - "fs-extra": "^9.1.0", - "humanize-duration": "^3.25.1", + "fs-extra": "^10.1.0", + "humanize-duration": "^3.27.2", "intval": "file:lib/intval", "jimp": "^0.16.1", "light": "file:lib/light", "log": "file:lib/log", - "moment": "^2.29.1", + "moment": "^2.29.3", "mscript": "file:lib/mscript", - "node-notifier": "^9.0.0", + "node-notifier": "^10.0.1", "processing": "file:lib/processing", "proj": "file:lib/proj", "request": "^2.88.2", "sequencer": "file:lib/sequencer", - "serialport": "^9.0.7", + "serialport": "^10.4.0", "server": "file:lib/server", "settings": "file:lib/settings", "spawn": "file:lib/spawn", "system": "file:lib/system", "uuid": "^8.3.2", - "winston": "^3.3.3" + "winston": "^3.7.2" }, "optionalDependencies": { "electron-installer-debian": "^3.1.0" diff --git a/app/src/index.js b/app/src/index.js index 39db7b3..4262c11 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -1,7 +1,8 @@ const mcopy = {}; -const { remote, ipcRenderer } = require('electron'); -const dialog = require('electron').remote.dialog; +const remote = require('@electron/remote'); +const { ipcRenderer } = require('electron'); +const { dialog } = remote; const notifier = require('node-notifier'); const fs = require('fs'); const uuid = require('uuid').v4; diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index 738a729..655a50f 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.6.9", + "version": "1.7.0", "ext_port": 1111, "profiles": { "mcopy": { @@ -178,7 +178,10 @@ "cameras": "4", "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", - "cameras_projectors_identifier": "7" + "cameras_projectors_identifier": "7", + "camera_capper_identifier" : "8", + "camera_capper_projector_identifier" : "9", + "camera_capper_projectors_identifier" : "0" } } } diff --git a/src/arduino/index.ts b/src/arduino/index.ts index 12e3900..7c923bb 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -3,11 +3,11 @@ //import Log = require('log'); import { delay } from 'delay'; -const SerialPort = require('serialport') -const Readline = SerialPort.parsers.Readline +const { SerialPort } = require('serialport') +const { ReadlineParser } = require('@serialport/parser-readline') const exec = require('child_process').exec -const parser : any = new Readline('') +const parser : any = new ReadlineParser({ }) const newlineRe : RegExp = new RegExp('\n', 'g') const returnRe : RegExp = new RegExp('\r', 'g') -- 2.40.1 From c77201ef4e07f2c3cd3e61fb68ba5d1af9b002e8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 7 Jun 2022 07:55:26 -0400 Subject: [PATCH 03/89] Add new commands and identifiers for the capper, start moving into capital characters --- data/cfg.json | 5 +- ino/components/mcopy_capper/mcopy_capper.ino | 161 +++++++++++++++++++ 2 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 ino/components/mcopy_capper/mcopy_capper.ino diff --git a/data/cfg.json b/data/cfg.json index 655a50f..e1642cd 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -179,9 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", + "capper_identifier" : "C", "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0" + "camera_capper_projectors_identifier" : "0", + "cap_on" : "A", + "cap_off" : "B" } } } diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino new file mode 100644 index 0000000..ddd0bee --- /dev/null +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -0,0 +1,161 @@ + #include + +boolean debug_state = false; + +/* +---------------------------------------------------- +Servo - Arduino + - +Red - 5V +Black - GND +Yellow - PWM Pin (9 in example) + +Optical Endstop + - +Red - 5V +Black - GND +Yellow - Pin 10 +---------------------------------------------------- +*/ + +/* ------------------------------------------------ + * pins + * ------------------------------------------------*/ +//Arduino Duemilanove +const int PIN_SERVO = 9; +const int PIN_ENDSTOP = 10; + +volatile boolean running = false; +volatile boolean cap_state = false; +volatile boolean endstop_state = false; + +volatile int angle = 0; +const int cap_on_angle = 0; +const int cap_off_angle = 60; +volatile long timer = 0; + +const char cmd_cap_on = 'A'; +const char cmd_cap_off = 'B'; + +const char cmd_debug = 'd'; +const char cmd_connect = 'i'; +volatile char cmd_char = 'z'; +const char cmd_mcopy_identifier = 'm'; +const char cmd_capper_identifier = 'C'; + +const int serialDelay = 5; + +Servo servo; +//SG-5010 speed 0.18s / 60 degree +//converted to milliseconds/angle +const float servoSpeed = 180.0 / 60.0; + +void setup() { + Serial.begin(57600); + Serial.flush(); + Serial.setTimeout(serialDelay); + + Pins_init(); +} + +void loop() { + if (Serial.available()) { + /* read the most recent byte */ + cmd_char = (char)Serial.read(); + } + if (cmd_char != 'z') { + cmd(cmd_char); + cmd_char = 'z'; + } + timer = millis(); + +} + +void cmd (char val) { + if (val == cmd_debug) { + debug(); + } else if (val == cmd_connect) { + connect(); + } else if (val == cmd_mcopy_identifier) { + identify(); + } else if (val == cmd_cap_on) { + Cap_on(false); + } else if (val == cmd_cap_off) { + Cap_off(false); + } +} + +void debug () { + debug_state = true; + Serial.println(cmd_debug); + log("debugging enabled"); +} + +void connect () { + Serial.println(cmd_connect); + log("connect()"); +} + +void identify () { + Serial.println(cmd_capper_identifier); + log("identify()"); +} + +void Pins_init () { + pinMode(PIN_ENDSTOP, INPUT_PULLUP); +} + +void Servo_init () { + servo.attach(PIN_SERVO); + delay(100); + if (!Read_endstop()) { + Cap_off(true); + } +} + +boolean Read_endstop () { + return digitalRead(PIN_ENDSTOP) != LOW; +} + +void Servo_angle (int newAngle) { + servo.write(newAngle); + delay(Servo_delay(newAngle, angle)); + angle = newAngle; +} + +int Servo_delay (int angleA, int angleB) { + int angle = abs(angleA - angleB); + return (int) ceil((float) angle * servoSpeed); +} + +void Cap_off (boolean suppress) { + if (cap_state) { + Servo_angle(cap_off_angle); + cap_state = false; + } else { + log("Cap already off"); + } + log("Cap_off()"); + if (!suppress) { + Serial.println(cmd_cap_off); + } +} + +void Cap_on (boolean suppress) { + if (!cap_state) { + Servo_angle(cap_on_angle); + cap_state = true; + } else { + log("Cap already on"); + } + log("Cap_on()"); + if (!suppress) { + Serial.println(cmd_cap_on); + } +} + +void log (String msg) { + if (debug_state) { + Serial.println(msg); + } +} \ No newline at end of file -- 2.40.1 From 9d3bf24627c4830ca0fa5ff9f0fe36af2cda738f Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 7 Jun 2022 07:55:47 -0400 Subject: [PATCH 04/89] Hardware ideas for capper mount and flag. Need to model servo and add places for endstops --- scad/capper.scad | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ scad/common.scad | 5 ++++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 scad/capper.scad diff --git a/scad/capper.scad b/scad/capper.scad new file mode 100644 index 0000000..d878bdc --- /dev/null +++ b/scad/capper.scad @@ -0,0 +1,48 @@ +include ; + +// Using a Tower Pro SG-5010 servo + +// https://www.thingiverse.com/thing:83806 - Lego mount (has dimensions of servo body) +// https://www.thingiverse.com/thing:5241574 - Robot arm (just cool) + +LensVoidDiameter = 40; //mm +LensZ = 80; +LensY = 20; + +CapOffsetX = -50; +CapOffsetY = -11; + +module Mount () { + $fn = 200; + difference(){ + union(){ + difference(){ + cylinder(r=R(LensVoidDiameter)+15, h=LensY, center=true); + cylinder(r=R(LensVoidDiameter)+5, h=LensY+1, center=true); + } + translate([0,0,-(LensY/4)-(5/4)]) difference(){ + cylinder(r=R(LensVoidDiameter)+5, h=R(LensY)-R(5), center=true); + cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); + } + } + translate([0,R(LensVoidDiameter),0])cube([LensVoidDiameter*2, LensVoidDiameter, 5], center=true); + } + +} + +module Cap () { + $fn = 200; + difference(){ + union(){ + translate([CapOffsetX,CapOffsetY,0]){ + cylinder(r=R(LensVoidDiameter) + 4, h=4, center = true); + translate([35,(LensVoidDiameter/4)+1,0]) cube([50,R(LensVoidDiameter),4], center=true); + } + cylinder(r=5,h=10,center=true); + } + cylinder(r=2,h=10+1,center=true); + } +} + +Mount(); +translate([-CapOffsetX,-CapOffsetY,0]) rotate([0,0,-60]) Cap(); \ No newline at end of file diff --git a/scad/common.scad b/scad/common.scad index f0f53a3..48417a4 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -29,4 +29,7 @@ module trap_cube(height = 19, top_x = 30, top_y = 34, bottom_x = 45, bottom_y = cube([bottom_x - wall_thickness, bottom_y - wall_thickness, 0.1], center=true); } } -} \ No newline at end of file +} + +echo("common.scad - R()"); +function R (diameter) = diameter / 2.0; \ No newline at end of file -- 2.40.1 From f7a3c522607d2c5fecb004978b7c24acbb1c1821 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 10 Jun 2022 13:19:38 -0400 Subject: [PATCH 05/89] Silly typo: did not invoke Servo_init() and so servo was not initalizing --- ino/components/mcopy_capper/mcopy_capper.ino | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index ddd0bee..66ace66 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -56,6 +56,7 @@ void setup() { Serial.setTimeout(serialDelay); Pins_init(); + Servo_init(); } void loop() { @@ -108,6 +109,10 @@ void Pins_init () { void Servo_init () { servo.attach(PIN_SERVO); delay(100); + servo.write(180); + delay(500); + servo.write(0); + delay(500); if (!Read_endstop()) { Cap_off(true); } -- 2.40.1 From 818c8453ee42f898979f5bd6cca70dbd7b2cca14 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 11 Jun 2022 16:03:08 -0400 Subject: [PATCH 06/89] Capper OpenSCAD work --- scad/capper.scad | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scad/capper.scad b/scad/capper.scad index d878bdc..cf0396a 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -12,6 +12,8 @@ LensY = 20; CapOffsetX = -50; CapOffsetY = -11; +BoltSpacingY = 49; + module Mount () { $fn = 200; difference(){ @@ -24,10 +26,18 @@ module Mount () { cylinder(r=R(LensVoidDiameter)+5, h=R(LensY)-R(5), center=true); cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); } + difference () { + translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center = true); + cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); + translate([50, 0, -6]) { + cube([20, 40.25, 10], center = true); + translate([0, BoltSpacingY/2, 0]) + } + } } translate([0,R(LensVoidDiameter),0])cube([LensVoidDiameter*2, LensVoidDiameter, 5], center=true); } - + } module Cap () { -- 2.40.1 From 2f9201716a105675dd5d9f9493d1176365e2e444 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 12 Jun 2022 13:14:43 -0400 Subject: [PATCH 07/89] All capper work. Debug firmware for testing. STL of cap as printed. --- ino/components/mcopy_capper/mcopy_capper.ino | 29 +++++++------ scad/capper.scad | 42 +++++++++++++++---- stl/capper_cap.stl | Bin 0 -> 174284 bytes 3 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 stl/capper_cap.stl diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index 66ace66..0106e9f 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -1,6 +1,6 @@ #include -boolean debug_state = false; +boolean debug_state = true; /* ---------------------------------------------------- @@ -30,9 +30,10 @@ volatile boolean cap_state = false; volatile boolean endstop_state = false; volatile int angle = 0; -const int cap_on_angle = 0; -const int cap_off_angle = 60; +const int cap_on_angle = 153; +const int cap_off_angle = 93; volatile long timer = 0; +volatile int current_angle = 0; const char cmd_cap_on = 'A'; const char cmd_cap_off = 'B'; @@ -48,7 +49,7 @@ const int serialDelay = 5; Servo servo; //SG-5010 speed 0.18s / 60 degree //converted to milliseconds/angle -const float servoSpeed = 180.0 / 60.0; +const float servoSpeed = 200.0 / 60.0; void setup() { Serial.begin(57600); @@ -108,14 +109,10 @@ void Pins_init () { void Servo_init () { servo.attach(PIN_SERVO); - delay(100); - servo.write(180); - delay(500); - servo.write(0); - delay(500); - if (!Read_endstop()) { + Cap_off(true); + /*if (!Read_endstop()) { Cap_off(true); - } + }*/ } boolean Read_endstop () { @@ -124,7 +121,7 @@ boolean Read_endstop () { void Servo_angle (int newAngle) { servo.write(newAngle); - delay(Servo_delay(newAngle, angle)); + delay(Servo_delay(newAngle, angle) + 50); angle = newAngle; } @@ -134,7 +131,8 @@ int Servo_delay (int angleA, int angleB) { } void Cap_off (boolean suppress) { - if (cap_state) { + current_angle = servo.read(); + if (cap_state || current_angle != cap_off_angle) { Servo_angle(cap_off_angle); cap_state = false; } else { @@ -147,7 +145,8 @@ void Cap_off (boolean suppress) { } void Cap_on (boolean suppress) { - if (!cap_state) { + current_angle = servo.read(); + if (!cap_state || current_angle != cap_on_angle) { Servo_angle(cap_on_angle); cap_state = true; } else { @@ -163,4 +162,4 @@ void log (String msg) { if (debug_state) { Serial.println(msg); } -} \ No newline at end of file +} diff --git a/scad/capper.scad b/scad/capper.scad index cf0396a..a421ec1 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -11,8 +11,12 @@ LensY = 20; CapOffsetX = -50; CapOffsetY = -11; +CapLengthX = 50; +CapWidthZ = 4; +BoltSpacingX = 10; BoltSpacingY = 49; +BoltD = 5; module Mount () { $fn = 200; @@ -27,11 +31,14 @@ module Mount () { cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); } difference () { - translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center = true); + translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center=true); cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); translate([50, 0, -6]) { cube([20, 40.25, 10], center = true); - translate([0, BoltSpacingY/2, 0]) + translate([BoltSpacingX/2, BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); + translate([-BoltSpacingX/2, BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); + translate([BoltSpacingX/2, -BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); + translate([-BoltSpacingX/2, -BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); } } } @@ -46,13 +53,34 @@ module Cap () { union(){ translate([CapOffsetX,CapOffsetY,0]){ cylinder(r=R(LensVoidDiameter) + 4, h=4, center = true); - translate([35,(LensVoidDiameter/4)+1,0]) cube([50,R(LensVoidDiameter),4], center=true); + translate([35,(LensVoidDiameter/4)+1,0]) { + difference () { + cube([CapLengthX,R(LensVoidDiameter),CapWidthZ], center=true); + translate([R(CapLengthX)-(R(LensVoidDiameter)/2), 0, 0]) difference() { + cube([R(LensVoidDiameter),R(LensVoidDiameter), CapWidthZ+1], center=true); + cylinder(r=R(LensVoidDiameter)/2, h=CapWidthZ+1+1, center=true); + translate([-R(LensVoidDiameter)/2, 0, 0]) cube([R(LensVoidDiameter),R(LensVoidDiameter), CapWidthZ+1], center=true); + } + } + } } - cylinder(r=5,h=10,center=true); + translate([0, 0, -4]) cylinder(r=5,h=4,center=true); } - cylinder(r=2,h=10+1,center=true); + translate([0, 0, -4]) cylinder(r1=R(5.5), r2=R(5.4),h=4.01,center=true); + cylinder(r=R(5.4),h=10,center=true); } } +module Debug () { + Mount(); + translate([-CapOffsetX,-CapOffsetY,0]) rotate([0,0,-60]) Cap(); +} -Mount(); -translate([-CapOffsetX,-CapOffsetY,0]) rotate([0,0,-60]) Cap(); \ No newline at end of file +Render="Debug"; + +if (Render=="Debug") { + Debug(); +} else if (Render=="Cap") { + Cap(); +} else if (Render=="Mount") { + Mount(); +} \ No newline at end of file diff --git a/stl/capper_cap.stl b/stl/capper_cap.stl new file mode 100644 index 0000000000000000000000000000000000000000..54cdacbae3b167f47c33c7f97c00d770afacc0b6 GIT binary patch literal 174284 zcmbrnd;D!xS?@nBR1~>*IRb`?_dv`Yc)?_U*Z3lmsd@Q{rX3@r<1x+D$Pf#4n&bsB zQPD(5cPA-DMe<&&ee}%!4*hIQ$o%`M;k0^qY78e?J%O-#qjSrTX&i@J;=n@A%R~ zx4X{M3HdcGVefj1DtupeJzQb3a zy!hDSUp6fF{U14K^D~Q=CMDCZS01qWwG&@u>5R0#lR!x(jdbq1#rt2dxa0p#JLRkU z+pF)mx$BBurk9R-=N&hnv~{>0k&JYT1WGb#q;uE(+xK3uc)`2+|^)Y{O2#eTYkFqxZl3f=E(Vl;(i!O#36x~gNXx?+=U%gM`o<}?AHA+4zn;vm z-Q#u_E1i&^0@2M_kH?)a@;rq|AgrQ7-N{7BUE;Z~%P z&RwVDv|-0fzIxs{I!=DPOb_`f5Z#PbM!qyYck#0qr=9&e-;Y1N@X*b#yy9s28P12L z+xhVPNYwM;R-}>6x|Tlv^NSxIc=%Gjx@Vp9-SpxA`a9)z>G_}kVS4zRv8JDw0qELc*ajA7uI{<~bgAyGrQ1>P{7BG>G}5{2?741FYx(Nxo#VdhlgQHTdFA<$ zpcQGPbJyMN_`5Imz36y9Ru{eTAJQQ=yVm{c-21*rBOza9Ai5c=jC^U>{b%=~eD!(; zF6^#SI@`TycaqWx`6&?Hj1}oTJgNOyVb2q<45Xz|YlGD*F&t5Nl1Bf~qZWVg_?^BV zhaB*Qbl8LcO@6w}UX>Q8It~w6~?V9eh(uC*-F{%vh1m!=AfF-E-x3xgH-&x9iH&k(jX} zE$T(zd+g%fXWzm#YVGB|v=5uwN=s*?QzTH*>OrUBN#9kMZ&(d2U%l$`h1JALXI`(! zPl4!WtVm0v)=_@W(E>=dma+ZINK1nRN?J{3M62PP9?qceM?HhSAN4$2Iw4;g^(rx< zT_vkl8FU_wt`qg>%1@WrvOrp8^$a?Jl6KadhNs+ho8LNZaop`*;>W7iUdrv#k^gnO z&Bq^cM@wgyPS>on52>$DFW+Lxt# zb=q#*{yj=&tJk$PmQKh|k(jX}oxAR^ORw7bz-K?-HP{laPgK`HzBEY8SheS_Z|zWX zx<;)zy`@n4hvxnJa`NX%G~mWO&J zE;>DT(E?~ax=rOLhXj5Cd9cj;xL_O|qMH*?9 z)qa%UANB5ZU#tO;PLV)K>uos=Px@{#AH{xrKRW-E7+F2idz6)suQZ7nt9Cw&&Q`0P zzWBj@&-DF3t(MNd+hLpMUa+4mx{P#+1WH0}2~YA+uPfgVY*l6)2Kmw;F=Itq8rGgx zE7>)yJ+0@4a=Ug9TDskXo*xOGThd62(s5Ee_mLfaqqd zNK4}}7ysVky1#g&-ybzvV|wj;B&FN=u(bY>sOQ5P}FO;tUATSHuaRV zk=FNmM>&C#b{84Z?k-E` zA*$y4ffiZDR<(FZ-H#f%TitV7k(P$q3yTx(akLX`0q{;mT3bc}C2S|OD^dP!KkWX~ zUF90JPv+;N-od`@$d?9*8LM`myQg6k!0$oaQ7xu#&*L^CU}5mS zh&uaz)Tpy^hyI|YL(e-BwLj=qq>)xx?GO5X)Y>b_ul1o?jI{OiJUPW*v zetWbmTTQlUddQa!hz>0>T9KAUz1mHq!(H31aQRfc>_k3yNuVS=4d5wvoyCvU{_*pH z9%PF&`*nqUX_Bb%=v6Dy($M(IhDFx2y*;1EwYTNR3i;9i(al)3zM9d}P@i_8*1q3S zh<+s2WJpVc1WH0w1)ii)pY6UMjB;>10{PMa(P{(VTUfPcV%?A0hVyF|Er1rwkk28O zVQKv%!E2N>(s|hPo#I=Y!S<=emMqNt*T;A(H9p?jo}ke?#K2n4K1 zOQW{o{Cw1>{^W?_=t_eGN?J?LX?T)GZTt9spf(fKp^kEbF$>a2i>gn!vLEAk zU5ljImb7#3=|FV#X}M}eS{k)?=Nh%YRQFKc>%0u)r$CsAK4ta>tg>g9e5LDLgG((J zt&9|B3ygCRB0($CNK2!R{P=ZMV;0IC#y>3GVi}%}1V#a9m60#1#zp;D;pk@c+Y<6q zAi5bV($c8CJKqnq`kK|APWyp;X^>!47FMLCQEN5VV5G6ueXfCgX^@z)YJD7|rD6A< z?kd;7=xdt?Ad6uhfTdF;*p4ENw5Zy$^z%`l8Gh|@tN{7a0MX4@wXq`iG(^07Kk73> z%3a1aX5-HmFSGmqUtEJKN%3^Y~zFGw~Z)UIz^(699l_;p2CyL>iMu^)zzb$ zl=L{CZNJjF9$n9m1WLl}4S32!)WG+n*7VBlT3u_$utg9oogz`|TDKyNbRI^q%&LuG z`4z{$Qytl|{1k~9tBm|S)CR7B8mC1zWij;6t46IqoZ!_kL(4-QcXk4!8Ey2<{USd_ zf_n%n($c6s$c47IuTO(brQ6ZPXMAZf`vbu7}?C3UU22@0oTT{|?unU$jLF(HEtD zQTN=poqnlTY#Z^@Z$C1n&Cj_8{h}S5B0;~@t4G1E?-k;>-AANz&b*ObmF>ykY4i;W z(aS=g;pqB)&@c6hZTZ_Tp8jV)oi6{I+fMwVUy>q0zx8ao9(rCY#6G`zk96%jQV+Gn3USg!ho^H+ zeZFhZZ=6{pmA)wTi+UycF`-}T728If`MNu#LpERL8uVN1+9W&sH+*`Zlc6W6Yfulh zS{lri=ofGP<-^jkcYlp*&@bXwh3E@6TfrWOK+1t@XdF+2K{25 zLy82qmwNT?%CcS|p7^y}rv7LC$~EX0b3zKyi`A!J)VtRAgMO)3Y|Gz%@xQJR z+coGH?W+_C`lTL5`&NiYUAA93{Vsp!8uW{{T_O6S)Gz9j!S{oHsaI?p@y(a*n-03- zA6$ceG47lqLBG_)Y_Sz$-@Dy7?ReOgu0g*XfpCq!C=E{^-w*nwUa@UN|Hd1oU1xvA zHRu;H%M=Ovtxr4G!|b*d;`DF-VDb2Kzv&wEi+E`v`l8e?>Jx6_mwLsv5f6FNcNX?f z-x;m7kxU<@vHW6N{`L!QFZIyNSRrg5Y+vLd_^o|svo1uhls^5UK1F>$=$CrMw*2iE zb}sCk=)2E&uybPRI6FZ(_0uotmwM>?(=Tdm z;QK+p)GM~-Z@;i-l|8fcJ<%`w)RCZH>LKD~-iD7_uX^U%vsYPR_8(%_R)+nkHIDBG z{Zh|~`lnx5-C=czGTN+C@9!{@9trxT9-_GBZTRSXSRJUkP+5t7<1BBL_WGyKP^h z_WGw!?`KbEapISH#kTzI7uL42yGP#>{c`Lj65QTeQ@b8U=*-*j=@-^Uv?qz_Vqmy{O3#4q)VZTZ_Ts7|`p?OArI*p|Qjf_;7V?&tf? z?CZ0yPC9C^hs~Zh=}54@%ziZKNU-F6l_H$IBio=}54j$^IwlNU+z) z-X!Trun$;UNDEmc(ve_~jy*lnkzoI<*7~kNIuh0kwk=R@h_N%O9trl(YK`m~)Qbdr zTea?Uf^;OHulws;0Z|i1&liGm8_t)rG4bA(Ezj`<=ddKn^pr2 zBof;8t#+ifg@JBRBy@DQ+Ep3oX0HDup>wd+?qJdYRtQ}gTkUB_dY;hLw`?^7>3Kp| z__Eczq~{6UMa$NzAw5s%-d?trEa@8{{`j%W*3%<>1H_%5wru@RJ$(jxp3rk}*?Pr# z!VUC1p{Mh*_0>tw6RH80ErLLLo=`2bY;g_J^Mq=$WsA0uo+nhlF0ExO3mdN(=y}3o z8rCv4g7iG0cEYm7%Sg`?YKttboogDT=LxltmMykOdY(`#Y}q27q~{5>^p-6SOM0GA zYjWA5!=&d4wOE%eW=(pYkpHE%T4j+)&lB2*Y^_!!NY4{GPT5+mMv$H-bS|>BT8$t* zPw0GSYl9j=dY;fVm8}hG1nGG~*KM{os1c;+3Edmn+Mq^|o+otwWp7c6Anin7xPB3S z(+NZ=uXR`X;(t|tz>2h<5ZT(JGD`qdf3Spvo$>&m7u3c zsK(FMeqJT$DH5vjv$g7133`eI&oj@US_0X66y_-sw7Tm*UB2f5cR6W~S^fA)m+yJy zVGr^2JaO)e{(jH);ZJfa((}aKe&vcicfQrrogh6=yzzhk!=A@}=Q&Q0o+q~6^yxkK z`qvjaL3*CJ&%U48^M>V1oFF|<{P~+cyXX3IUf~4kdE)I){`{U#p7a_gNY4|We!>^_ zTzIqdoFF|0dcPdY*Xwm%p{=Kd;(yg7iG`xMTif z&x^1AkQ1cmiKE~4ojq6l)5n}3Jx@I1q1W%Z;2ocEg7iFb>487obI~bRI6-=zIP3fW zz2_6xf5r*Y^Ta>z^Ap=wKI02cke(;*c87ho-}j*}IYD}!c=bbWvVFpLzw89*dEyN( z+IRc38-K$I((}aIK6&%)6Ry453DWb#(MRmR{jT?3;{@q>;*Vc_;Pxj^y3PsG^Tf`Z z-)j4!%f9Ob>3QPCue{CnZyff0CrHl|m)+^$?Vo+nkDMSK3Dy&=8CVlVf~^T^kdDL$ zpLW>x3-5OKP30!iPtS*L|4zTI4Yz7_`@_3!qp24)NKnr-8XXB*S^7yYyOC?m6Sp}0 zj@x&5_C0++NYGQ%AYti!zxWfbK{^ue`qG`YuY1}K*C0Vp^Muj6Z?}(YkdDNEz2&ak z%YEazj#yEARUP_?|-lD_o{8F+(d%f^Muj&+Oe-|kdDMLhws=v@0tg>1_^4< z6GngS2StN)B>w$?W48Y=pXeGSs69^@eWy!q=KDc95?BAk{kA`R^e?yu32M(1M*ro* zZ|)kTBXRl z;^^;fZ2#569^o1!s69^@{q0v54bqXg^7_r~eKsEH8YHMaPZ<5ePZbT)k=Xx-Cu~3e zQ$>RWwdV<=uez>ikd8#xJw!+IQNAA}s69^<`WAjZNITINu3udDlMfsAg9Nps1_?{I z{fM-fLF2ABeZ+7+NYGQ%AYtitK1e$;XnbP7=Fg&kF&{NbPVd?g~A{{ku`yWpn zp1UOIDQb|gbbIcSjvAl%(ytEn2MKzL8YC>;>JQRUQGUxCml7;U7R-bGf2==)F5H$)`K7&HSY7zr*EI~;@f#0MS`B91_?{Iz8dMM@q5qu z{q0X3>%WelNYGQ%AYtj&gCrd_KJ=f@+dk>M{e3@3&{NbPVd>VdB^@>1bH9H3{I}l3 zHAv7?)F5H$*4ri>HJ$}rCV%?bkum&k6yg}j1RuUHAv7?)F5H$7V#n-HGbtrFWtV+ zm(O<%67&=`NLaeX;Yde~TmJB++kbx6%Upv5Jw*)?mTu8O(oy5LzV)*0E1&*bu0evH zq6P^|x0ogAsBz3cp0$0>XHIkt67&=`NLac>Qb|XRBj5e$}rCWTL zbkw-rOU~YY)Pdjju@n;Y6g5a#x<#EyM~%xK^@{Chee`_SAVE)2gM_79ESz-IIN+c^ z+U~x3plgtzr>H@~(k((yI%-_<;Xm5$fA=5#Ep-y~6g5a#x{VuN^g9JTA4HA}aqpzf+#`}NcHQSed;p?tJ zf}WxV2}`#zVbW3Kr{46M?K8Ii+cikgQ`8_~={8bLI%+)UZ(p;#^p&zjcfnwHQUErdl%OrK~GVGgrz@m;Bgar zAbOkoK`YW-cdnvqJDiSNRo|%arzqbBtM6ub{-B}6@HR)*7n|K=?}@t=ej7Wf3{kcE z4#vcav=jBu@cu_uhRwOM_r#s9Z+UpW8~6U#X1$a*y(ddwvC__>G~!~mR)k&-v3IYzUSc@v?5(>8$m15^-Yp2yX3aL|CL64Go&1= z@&pL`SH0nDsu0bo(QG-^b>svQ# zH0oP4u0bo(QG-^b>w7wDH0oP4u0bo(QG-^b@k`gqiN0{do8DR9+ne6LC8UdOBj~HX zwc~VsvuDkI99!P>o>-BN8uUe)zZK|2U%25-@2v0bO>f^4(#5tB^i|&saytG}p{)Bx z)OUL(R-}tfsA zU2GdcU!?0BN^8z}edEYAXhk||1gr9PuG9PtN+s8Ro?B&`kqQ&B_^Iqsosez?{;Nr$(riYVUSUh^ePW zsO@a;c1?(>r$$&`x%DPWUb%Lso*H32-`2+=G4<34^?vN#uB`8=JvG95iLs|x2=(q(JT=1nTdBUMl2?eSr$*R5*cPl3Q%{Ys<79ieN=!X9!p?;q z$yH+NsS)+bqHcA!t?K)7c9_t2#4#F9faXob5FP&oj?|Im6{%Dd~33 z>l;Vzi^RM}eXD6g&{Nc?Z%$1JdWuASJ8Mh1;q5beibQ<_Y(mgeBl&yId_-L~E;1e1DJxJ;kk}6}NEq zU9u&J48Iv$rS$me0|AW{x)QxQ_RCePy5|{Nl}805w1QNsIV$lt66`D2!BYPC>6ah7 z`c0|7;&40X!3w{0ok#nkG5Vz*ehY1dIO?5m(r;Moat->$uTZZLb*na{+_uWo)Qekn zzlXjl<$u4{HRu<=5M4C-!u3mTFZJ*XZG|X+j_y9Y->9DB;dY<5m3lmlUvFL^>Yn?y z(=YX^d;hOrzVD`QR1et4gxeZCu7O`{E*gE|`X&8R55F5%hyrLo&N%W<(m|hp=EN_4 z^>~G-N7wg*eyLa8`+xoN?7Ll%&bi>_u0g-}MdG5-7p`B@FZJ+ic7-T__T$L^dV_vj z>rJjfzxcJ_6{4QOg8e+}%Qfg1zvNpq`oh^&a)(We9O%0= z{EG23eq*l?1<-z+c+b}>()AJ7pkMsT?g~+_l8ImHRrmg1zdZe{*C}H6IoF_H`~q&# z=nH38;vF_E%A)VO68)<5G=BN75CzbFy!k`trvALEU4wq{>$EFGy%HyWsaM_mfBo|3 zKKtr)$x%Oc4f@3|#}|@VNSAOxB ztS?*%v915&`6|PHaC_@h!u9Zrl12@me)+iHeqnmz!N+A~1-}?kwzAGotn`*QKE{1v47#nU==sHY;rb=Fw?6G$55K-?)bQz-hdubI`VH^@ znUxj%VyxK8hR^VXoA{;PV6H^J+;QS5`YrNPvc9xcBR!3=V*8Hs!R@V2RM*2Vd=|nn z)6hQX_sySbxov%4Ph+guz7L<_DLU~>y}?|GeyMYzwQ8T0^(CwmhOuHR!+vmk>r>nH z@VldhaLhDxO(k7hmYeApW5p{(eNrbQ=$Cpb8$SI~_eRn^l9k03j@o*677MpB><9f) z55I<52*+$cbdM+9>y{h*Vyt+DsI@^df_|x|vf(aE6|WGr#z{udFZEQ0t)dla{0?k(qW&4$?cUO7?`6Jk zz&;22B9R_dhPLQZd6_*6(xbf{EA}(kPaqu$_8QpgCmjj)0oaBo9SOF)*&-($3AUrz zz9tlchU(%6aisD*)FBtV6KF-Pt z#do#H#?~3>NT^?sbR=Da+m87fRyKV4C0loFol$QvSHjv?-?f=qSzpw?8rxc=Bf%CD zTTY}Sp+1yW4SBU|aN98_#L9+`wU++PRy@hdQfp~!IZgZ?3^@$Gj6O8$SJ#ts=H+s5h7^VeOK?Q@iB5SzpvH8QUnNBcY!5LeC8+ zxFwjWVr9d}+9kuPnrfGfZ4~Ma=1TNS%x=qUagdG#+aGK{kdB0+5(_;svvM=H9kXGq zZ20s`wm;Z@px$7vM89Nff^`Y$NGKk&(33wax2^B%wG8IZSlRIDmza5$`3$DsV6H^J zanunqx++* z2wl!Iu1e|+=1TNSUZcEXcuhw_ao2^~QdzlSZBfhvva;c$tvce4wnlut`o{B5y}?|G ze#vvdbHl4A5{fu4)F#Zz&D;{q9I~?EqyC_xU1}@(R`EzvZ!lLvHICwZYLC`)FdhZc zkx;CCLv7ov+{`V(Tq7$RKB^5A6ICnOHMmba>Vvrwx~|GET022K(vi?8!-m@ES-F{8 zf;mN2HhlUetw>XEFjqqDt1EVGXzakZN+Ty5>P2J~NN?1RMET~UlbHlP%@d_$SJwZ5 zo+oTPr)?GKdBR3#+HsrGh3l<1q)*uo8*6FjpLDS)e3PE9ye*bRdY-VTZHusxo+m5@+v0wt=Lw6bwrC{jdBWnOEk;T@5*!UD zQLM^S$B!Fh>7nj_^=xMe2|EI|FS4_LAXq}ejr1kg%)8&bw^w9|)F^uq)E8E!o;X5G)~KSG`@ovbBF8tcJ0=LV1~l;&9mv z^~wIX_rE&2R>N3bq3?m9r$|^0V|B$UK~Ise8pi61Rf3)(VKt1^6{`e2MZ#(rt1DIs zdWwYAFjiNr67&=at6{9JSS9Ew5>~@lU9n2gQzWd0vASZFpr=S!4P$l1DnUuHtYu4P=kM$+60tEgoI+DGw{GWwd7(?(xCP1>z{ z|Ev3)zDU>joYTd&5jEcCCA1>#w*5$WtgjLt>+>{LYRkp8{2fMLCsx#U+kPZ&v}sWm zeQ(i0Ph+LFtg_)VjJ_siwb55k*I1vYRfh9HUp2nxRy79bX#?747=2C3QC;qlLQj)+ z>)!wBe9)>!1f8f+Lr)jmM%0+z#EP`r_9Jnvzrm{S)?To&+hpk)HT1N;51(Q5H7P4t zk#_Um|9b805y+(PEduH38fWyh%7)J{`kIv0MqfQ$Baog}8O{fN)u^Le)ySl$4QQWX z^ff7`jlO!Cv|IQ7SNlO`;qXtXeB%@>ggKG^mMT;e}~c6i50cowjT+Pi&nzpqMokN&rR87{Tn{R z=xb6|8+~=F8W;6^H}Czgjum~?Sg2doc+pYtV{x)SwmV8ev_dVfB#JNAlCgyxfX()SxfYH72`8qee_!gI1)Y z2CYcfnCu#j8e?@0T9J+#v?5)jxN9_OjMX)0MLKHGigb8L>~(lze8 zMx#b$U4vGnqXw-=*SPN*jT*;w4O)?o8nhx^BgJbpY8=-!Xhk||(28`86tB^!k>9c( zC7$e7q@xCXk*=}jH5xVY>l(Bo9W`i0y2h5*Xw+D-YtV{x)SwmV8jW6~QDeofK`YWx zgI1(#GopoRy6hUXA{{koMY_hX*J#vuv}@3cbkv{~=^CeA zqfw*Tu0bo(u2KK=)~nOU-%`jV=&9J0zmX_;{{BIrBT*yRNx8X{6r!Yyc1f4NHVWYJ z@1*a!q7sTJBz?~%uMksDrPRi}JpP^ZJ(s*fOg)v-erZt& z#T1gh=aN^5si#tEqkSI#PWqlpULmHQN~w)Odi*=-doFoZW8$fl_DhROD5j9~J(s*f zOg)v-erZt&#T1gh=aN^5si#ufFD)vem_pL`T=EJr^;AkVYN@D%VhTy$bIB{j)Ke+# zmull!{5$D;E_sERdMc$h;_mV9r0==p6=LeCl=@6SpM$eXOg%NiqKwwFUL`D+XubL| zUnzaO-R`|?eaV(n-(T{0W%N`^y*FX;@1*a!Qv@q6xRE)wEhjBeo3N6xs!^09K`xkme#-F6Nwt-PAc}X7V8;V zTK|SmBy=6w^^{cX<2lyPv9$gTpGfFhwfJ{Zv5y&9uf@{(H+Ct{wqeioxAU#ji zXtooi=ZPB4c7pUgQKQ*Tke(-MG}{T%k>IsUf=4|Pv?5(&;jR}6mXN5i@HGTWNYq&P z8iFMxYAifyi*np5mXN5i@HGTWNYq&P8iFMxYAk#WfmIyC=+gY#vRK725cCxH9IH46 zf}SFQRU89BPm#bXj)9=3NMIGmK+sbpu!>_K=qVCd#W4`{6bY>27zlcb1Xghj1U*Fp zt2hRNo+5!&90Ng5k-#dBfuN^IU=_ze&{HI^ien(?DH2%4F%a|=39RB62zrVHR&fjj zJw*bmI0k~AB7s#L13^!bz$%V`pr=S+6~{o(QzWp8V<6}$5?IAC5cCuYtl}65dWr;A zaSQ}KMFOih27;aK~IsuDvp7mr$}HG$3W0iB(Pp$Am}L)Y`wDnC|0FK9tmoY zn6J;V!eS;tPf-KwB?f|?rbJzHG7$6>32q5ibj+qvSE5~3X7QpwdV<}=osioV1>m@g4**0R&)$>B(TC_ zCPD3a0xLQOIucl6F_WP7Jb@J*104yhu$W0ud!E3Gj)9H@R#?m=s69_$MaMu#0xK+L z64ah2u%ct2BY_nbGYM+X6IjtP(2>9ji?=`5?Em|lc4rIffXGC9SN+km`PB3p1_KZEA+_pORTV%Nkr{A0xLQOdbGDV z16EkfB&a=4U`5A3M*=G>W)jq%C$OSppd*157BdNI&l6bDG0>5~3X7QpwdV<}=osio zV1>m@g4**0R&)$>B(TC_CPD3a0xLQOIucl6F_WP7Jb@J*104yhu$W0ud!E3Gj)9H@ zR#?m=s69_$MaMu#0xK+L64ah2u%ct2BY_nbGYM+X6IjtP(2>9ji?=`5?Em|lc4rIffXGC9SN+km`PB3p1_KZfsO=L zSj;4-Jx^do$3RB{D=cOb)Sf4>qGO;VffW`r32M(1SkW=ik-!RznFO`x39RTC=ty9N z#Y}?Q^8{9O40I&0!eS;t?Rf$#ItDrtSYa`fp!Ph06&(W|39PV~Nl<&9z>1E6js#X% z%p|BiPhdsIKt}>AEM^kao+q%PW1u5}6&5oIYR?l`(J|1GzzU0*1hwZ0tmqi%NE|t? z=$J`Rd!8`5t|l4iNMMD*gs209X0VKI}S_B??V9RnQ+ ztgx6#PW)jq%C$OSppd*157BdNI&l6bDG0>5~ z3X7QpwdV<}=osioV1>m@g4**0R&)$>Bn}=|bj&2EJx>^2SCb5MB(TC_CPD3a0xLQO zIuf@WS9HuIs69^@U00I~bR-@>uIQLaP1E6js(_f%p|BiPhfS&Ko3N3u_anj z59>kZuKV&|^p{@!y%#KvjghT~Ya;>SMFJ(6G}6jH`9)7(9CFQvwj|JD zWIb_Q9_bVblw{IKOQXBr3zlzr`>x$eb-dzmWhA6m2$Uq!NT;ql?%B^@zWRe#xd!hX zS|KeB5-8!CtbRwe6xz*^L^c!hwN)Vc87q%+zVK7~*;T2nddfYH zUflAt_xEd;}{cUmynhQ z36vz#NK4~=x~5Ljwbkjvo(Xyo32AANK#A|ie_pla*AhHQz(l?zhqI^TUt7`|^N`j`w55s0yMV3Hj0>F=Mq7{kZrq9=Y|{i+|5G82Lwp zJ|SNkBxbBuBJ|I``1h8-e&Hj%{$T44t+0f2?m7}ENu-h1Ry{%2?*Bde7Jfe1`1G5-7=}k!WIcAk+h4P7OT=n=b5up%vu{(FyI zyuaQbnDLi5Ul3_&kU&W$jkGkreDSjv4>*+$Ao-okigg`tw>Ab#8V%=c&YBgP9MzKOgw8yOM?VTGHIlxamE2VHg3P;4Ah7n5n4oq6Vh4FT@WZq zq>qwv^ zL_FY0TlK#;PFe0g_ZmMR9JRpcLPA;^Bv6t_BQ1?zlg1|%2k7)MqW|50w0+{3htu6x z547W%BVoR3iEl}x;VE_9&nk9hF)Z;tXU&zq?4$gAAU_gQKCoQ7 z=uLRM_0G3?x;>*(jMkDsN$91(Q|h{3R9pA?$K2YlEA)gpUKg&)NbnjZjkGk5_}1ym zbM}9xpAYN(tckHFM(ZPi67NSf8lI$4BVIdoOgs+vH&^aw$A@uakA9u8_21d@BZ1ho z$Ke`nv9p>^9`V}QVq~0w$+kN3SBM!apZ)pmSGT^i;*}c~x70TFoIQ?N-U<2A0MX4@ zt<3U%^NGK__?;SOKnppsrH8aMNT4K>Mml%h1J&MrVC}1Mh5$zLy(N3)Grr*GDH60I zjkLDP;!2Gua`n_*U1 zLjDRdW3@6X>|+-{d-=_?U+4G7!RyD;LWHgBNHE?;8fk6SljQ%4>gRO2t~k>kGvX8S zBhk%Rt;~pj+U;Jl@xX7Lwv!~EHfeA^EYGgd3JSoOSGw3t5L+f01x z6KQFXKuIQzbnd#H$KQSNowpwE=Yy?nys4FtFAWkiRvG!yu(6^`uPbc^yyNPlJ#D2} z8?71F%O!ylt|yz|Ng6LxJpb6*WpUO7)9v^XNc_6KRCwN)2fmv-6_?sT8?jRCerkROR| z#%g6||7{OCe0f*Jm!#35rO!EV3Hj0>!N@PHNawD*nU2++Q|UXS)#vj)zP@~`w|#8S zYkGx1i67Ckj(n%rGVr9W(lc?ZJ`+36h{nw2g!~m^#%g8evc;7YE%NJ%v!F5SIw4;g zAo>|ApMgC-6YChHw|%U&{o7wY*!PyL7o>HpNT9^q?Tv;fZPm}{dAM6oIk6pjMTt)w zq*n-(WYS3Ip?1F1G|-z+$xu5dq?KRmb0<&|dMWTE`a73iwfp{h_ICR4?Fv56k-tLB zSgpJT@pn4kpRVyltDQf2(rf&DSdD!BIj`_*7wOz}Bv9hDexu<@TlFZ_vzHzE5`UJU zg`8RIBP|UQCyK?JfUwog>W3M$| zTLr>Le*WrVk8t%FS{mwqY^eX?$BJ*>;!WR#d})xFvGV@lj^l4!+tlB`?+X?W)BF!@ zdxw@~XoaCgCJhoO$)u6aUH2CCH(#WFr)k(|&nYjyogXX4tdK7a5;ImSZ$YSyxS^Jx zA1fQreA3HqzmNFTwh`O+XUW94tG-@c4mW{)8+S_~O8gc5%p1Zim~hCC1`$)u5% z#?92ex_6DY^GyV6E!Eh&kDs4#?bUlae|CZBXRJK-+9LPf^V(8h&Cdr$WxQqa-kkiZ zM85VzeYJsLs|Z%4wI8*{@iqf$HJ@AghUH6q+pWf_=@kMci8RvMs;}x<@<{b_I(;z9 zf^+keJsIxv<@052aUT*W39~ogNt9;qEZTe@j!5Ho9}@Cch#9Mld~MZ5>eK#~o>`qf zxJnX75s{V#36x~gNK3=cx1B}Pz^G;7@9iKh4H78Hq>+|}jYZiAlW8ET#yO%Mv%K^R zUzfF=4-%M%8lrXZlr)Nb@vhxJ&@)SXXS193+3-4?@4NcksG7e*uyr>>=dRn*_~YRk zhcpdD&-uPmLcTOeV8n!0q@_`#wSKIy=bW?ak=r(3I1(1ettH`z!jrb@QyO3SsK%tU z8$D)n@V6xr@*~kP(g-Wk+K&@eKfPA>bIj{NBATeW= zkuQz9=dOXMtiL~Y!gs&y&vxWX14NJa(tOs#`#$s~BS=f*ZMt?pp%Fio_?1|XPsTna z9+61QSdo@Sefsz_5hEr(ZqR1Oa?WieP!dLB;3;`bW_OLrbm&d^?AZ2?!<`W!O{GJEkzYpYbB4+KiWj0AW}-ap@}{qqh{ zXa1H!LjDTD*^#g!t*v^y=Jfq(ol}GvraqSX(=T|B-{%;8T_I2sX0F1Mw(8BAyZc9) z2ifVvRuO)QDlwAALt2dKS-b?jK0B>wn{U} zcec6b77=bUtvR-d{1sxx%71}od>7yq+K*=|=HBUpR(Q58dBz9dA)lRZVNK_*BS90iwfG)FWwYXldvkT(*1A+O=)As`b2o;g^BUkzm)y+TSIAG1 zVDt=Dq_b)RT~mi#RL0e;wmj{|-|%M%`s!ZS)_iGz=x3~a{G;~hrBQp^z8@F`@R^b| zT9=S74G_Kc$=6tsmc|1$kMq|wpR>~ky}QI;Y(-icBv6t`BP|WJUbpIeh7P0Q{LPYt zd})xt@1oF(v@{;0_W-Wd`v9Fj*s8=?T1ZQS1WGb#q@|$|-iv#wiw5Bbsn z(ILKW zC1FMzJZY<5qPWt9YF&!&_$x^qcSL?9`WdT?{Os?TY}I#6I{wlS&jIqKp|?^7V#aFa z7lGO=4gL}n{UTo)^?BtQGgcY- z*?Xy5tzXMuVxnK3M)WgQ{!DB=WHp{%^z`LhHJ40#-XX%m-!cfZW+TBlw4{;N zR#gpu?iz7Hdb8JqW_7^DZ}evg(m4_+@hxdIJV~RzQRVxAh*!SlIFB&Q3XBA;NFyx` zy&1Mq-zDqOgXC{mCgexLTNxid`WH4k?H;U1=dM%VW1+Vc{JLV#gzX*VOM}FWRYtxv z?xC^4|FeIo&k;TMV|A~8eW9NZJ0dl`LZHOQgj-Y|p0rhp6m7NGlHIj!jD^=L@*~mD zSoyDuwJ6o_R^y`62T! z@>dAkk2^g3o_@|@MLPQop=Fy>gou~F$=KS4$d`uZ6g8qp%QC@=v^4Z=-)PTvjD~x! zu|Cxj@})t7BZsgeEsd`!2DhQ()#-zoHU2EAcWt?T zM$|WI{Eea3h7Ux~H$!IV?2#gScggQTw2=L+&*m5T+A77C8qvdVf)#0L*gUm125Gf^ z8#&}XfqZFz=x40F9&C47*PWpE$c`>?>V90`HQQ?P$<~zZbRCcR)@A_Ft+yhbMI5g= zWS4!r{04+pgGshBn)%f_FUi(bQxa*@AVDkAW7;(SP4nl!`++upcUO{s`(#>;Y11Gv zmYA=R9@CcpXpN(OvAzdce~n$axvd7I^sq9J=SQNh2IN+x$FyzLCp5PG^g6aZu0@r7 z#rn3&)R@0Yd=qO?jaH;>KfZs-uATo`f1kmQzpb}p`%%}?^DP|nO@qXGE7GR%>zZfz zclEsqTm8${6zwEp>w4K5rlvQhO@qW(l6~#4MvtCM<8;-7kFND#T|-v6IoCC7mF|3P zBwHiN(vetiMcOp(`1uRB&MtF=yKxP->}$rKe%9-f`5p63g9KMz8?8v2hOXO7bv634 zq^{4WTr089uB<L@@U}{gr32B| zmDjvvJ#8BI*1W#+>v*l!S4y__qxsUxNy*llG`%rx8YIS&oJo&q)3D=&`&>Ep$#$RH zG4kiim|i8u5>wx$fA%q}mbUy)sGoL}-a)sr@k;d7vQk+sE8EIhHN8rVCGiR$J(-@a z+l8)QKOc21b>;f1U&&UQv#qi<;!4^yNQ@=9t>fF>QNJVl2_#f*#YR zVfCzPPe13iPF3!(^1ITxtpe})k*F)YyA|m%Z5sB>ZTGo7HOsx7?cPp0s_u8pxBVco z-iowoSpB4W%8pMrUhTgATv82`Y(K27DrwUoF_y%;X!K+ny8pIxANsMXHJNgKORU~d zy31p}X@Ka*XB4eSn}+R!wybF+ZGm#VwoJB4URN|~zG;xKy_;H*HjSUvJel|ET^9N3 zv{qZP^@)|lRT8h5Nbve0J*G{=t|?txz8|_8ti7gOZ-v?Qq_nr;YQF6Uh`z4LxMD@x zG*15Ot9EYI-g(%Z_8T9+}|e%PvuY9%S% z`HGJv-!wpU>#azehVJn#yL08M8`oaVp$;GOO@qW(hj)3jB5fMyYy9z?`a2VKeMaT_ zJ>l&*Nw>8cJwFn5O<6n6tVoY(+p4E%yzBL4jNZ;*ZL8;Se8&70q8pEHhn7BR+mEN{ z-N9?VUE)5ruB@$fZd+w5#@gEIwohZ)H9(9dIg=jKreX6@UsUJ&s6A!vD)-A(|Hkwx zF_v_h^q97-vU;|)6IFlsTAa4+R=3(wwS5}%SBQSS6=~b5+CsMD)7SeTnMQ3#E3GeD zp;EP{rvuTgw<2vCYAr3*zVf=Zu12{uw{X&HY->!z_QAGN z*}g?3-?oaxdMnbVak1i8N7vuvs8^hFhhx>QcGFaPm8i$ctw@h)+bWBdC<0RULwy=M zTjq;>a_j4q{8eJT6=~Zl>qE6ZXXl??t`YrOf#sV9iS<_5dthyAhgQZyyhVzAffiv z8Y|MKQJ=ede(0>0=c{suC#TZG6V>x0!E2QCn6|C5ScyeIU)n zVk{Y2_fFULywhIeEYLqsc7AQ!Rm&vZ#Y%f$y{1h=wc0??%C441k7?VF8q4tgs68y@ z4skf8hbV>TN5YPv9bvN~J*G{g)&{OIKH-KM!1uh?40X>*j3q-Y<5r_5+wN>nNYs|_iWOc2P2-@?KXYkod3X9U=G#_* z=+|43HVxG{TiW}Dd|4f})ZQo4u=+xKthCorHQzKythXX<8dg79JtbeAT1Vb8f`%+Q zYc!Zjf>xx*v~88@!QD0zAYYwo zoGsNX$u#WVu&ZC$EiUTmNUXOaZChpiX2fKMzO!9ZRyUc(m|i8ulCITiB8EE3Y4z?D z6SYXEeDxLwwMeI1DL&es?PI>}If$#;UrctBLem*+?*hq=j`t{tHU;Fq7N{+;M25CjwH0*iU#wKcg zr`+MJDXlN1e)M!8`g+b+tVo+iZD0BM5MkpVsqTlhsg&;Q8msxXwIJ+DTw~??QS(is z-cf$6#=ADR`_47SeA6IN@6Ht~(xy?LKCV%pJ|c2^Mmas^n+A#cBwMi}Z5kE_Z*jQV zZddNmLQ;BYw|hDgwSBc>McOp#)xMOkcC{-vx2s)g-CgBg@pL5WJ+Wd%+B9mk*6XOT zm7#v-P`AgLIuf)ZJ*G{=`m}0e`E@n+Sp2LdwVqO^{TTDRNZ6BljTLFrs3W7h<*OT8 z0K+(^_Rq&clHF}GSt0D|E+w&LF?uo$i;1dT?dM~RMtKXs+gRpTEr6O{CB~8%hGj`!Ol%qy`FUS zE1i)x4HC2>J*G{=;+3celSLs-!(x;cWiyR2Z5kxT5?!x~a5j2Oo5l&6TYK4l7pNQ@$6i@tI1^iQ|{OI?-G zDqdG|((9i-y{;{3{ZTx(5APEp2_Q=~k`T57(=Any$UoV|Cj3Ka<{l<|VE{zt$?yvuusVQb+f> zU%OAvW6d!-idnNCH~NVq(xp#1!8PbN)*s_`^~-zcN<8b-Gu;>cQg5`k^Krtj-6OsH zRZnmY`i*_(k?EK9YM*FOd$c!=U;g8}rAIvH8LmOU){C*;%y6~$h3l8xcIwqDe=!hM zs9)~?XLm`Lyyk`Oi+-(lWG$vC@m1YX$2|2C-w*nwUfhp&oq4Bpr%%4zebH~NKk`)L zz0&ypX;TeqM~&+??wJ1LpI_@5^jqt$H5&EFFxd}kM~%}zby)hT%irW0^viy`6Mf-y z&WCv!Ia9AbB^J{?|EUMuE`92?Z*>j&jWK|6yZYscpT1W*bn{Bz5BjCvXm8imyU#c{ zU3{;1y9WJQ)UJ$$tv*HT6Ku;0p`^HOMgMKvvlx&P=*z>+{{gT^Gz1RX6 zRr=*2=iD+q^z$Ea4f>7qGDy^?=)%bvFXe$X%V z=34+K9k^e5&+@abLBF+KGHTRK>z7~EllszE+3yw)Pijvuw(ps)JFDc!{rH{pZ<-!> z@>Q-uzqL)YMx)jS6Afxdja&ZYKIw6P`wiEiU-jEl>D|}ssxMq`F`uDrNIkZqqQ>t& zv`hc}-D_Qgeigq?Z6rPtwZ`%NpkL}m;&ETSexZM^LBC^MYjr>9mwL7KaqXz_2j97N z@z#fR+0G#S*0EyGkHl%J)%O3j6Wka5QZEvB{qQ#yPrUIy?u&lw*!>!fT60b`s2w$Q zO)Ye7xi9*yag9-Omwo|XxqHB&-xBIh;ryjJQ`=Z|(M;SGWgznnMopO)#D`!5z zebF!Vsj$_m`mOVsJUlm zTI)MOdY)jpZYmlBN*s~xV3HArrPaqu$_8RIn=EsfnJW*=^CrHl|>{*bG zgzEBz>hx@9koR33QS|&suxG-a1@$7q{y=@I`F@a|C)l$f9SQaa>eIkANY4}XY2XCu zd4hcr(ve^ff;|h;kzjw|BJ~qaJ*V^&NY4}OS&)vz6JLMn;?{4tO}2B+^E}2fSKFfO zLEP%acS;}mo6@tOUeqA*8-IAGbp6K*L3*BG?}cgSh$MAC|uTx20!6 zdY<_C%MVNYeWDPg=Lz;+NJoNwj_;{2a@ng(Uxf5L!QKn$NT~0zP#+}QIp=w1#5)q~ zrLgxxy-2Xnq3bK@I`cb<^gMCT^KO$Kb$%g8&lBwLkd6dghUy^!r#@%YqOzvoASJt6jxs22(LYt*(*YGeC;ke(-w+h?Ej(T^5_^gO{n73oN@ zC!}6QQt!gIiu63eJ{9RmD7v!Hvnkurg6qD>3XE+ z3HGT-M?&?*LQj78%WdZzwn(t=r2g$fN7ZTS%@aD`3!OP9NY4}Ow~>wndt2;5&GY9wghJY?qRbgd(*IwTygActpp!YO6<=?H$F+7OF#>re4$_q55f|n#Kvz z^90*kq$9x^nKd=(NLWu>EmhwV?roio>-mvjO{Qq)LiM;?QE#4Lok%(otN|3YU8n`) z8l>k5wXGIvB{@NQo?z`mIuaJaQP08s^7z#G$(|nxK5O|5rd}lYR8!o2p*E=dB|T55 zb-YkJ*9p?|1fQs+BcV~Bg?d@;mwRht!|IQEekAye(ip`;Equ44-aNsl9qC9|v{Zdq z_scD@(QEaqJwFn>w|UP~FA}^bG-k9=kIVg%o+m8Eq+Xp9q~{6VkEA1^(Zq%N`|g)} zJI?S}eO~c;)%e;%{aL4}7d1%m$|oHOUKzY%NJqlPJ`@}AE#bD0b68gQgXdY}oeM<^ zoTgsXAYpNL#W0*8Jx}l&BOM8z1D+ewk+4xX#j1QuxVM_IWpBQCek6E&G-AD>2$5S+ zZ=T?hCLIZGiALTx6zOse(({Ck`YD>`1nGH#M}c%CY;;$#L-)($Q)ixeek5q6SqdA9 zBf1s!<_YSNjs(>;+hRlUP}d+Gi8>$7tw_+*JfT@5I~Ap!(DQ`Ngis{d3DP$}{Ph=) zRkYa&(vc|Nb`>iS+`oCkN;I!zLeCR6!=`N&=^G%vcFFFx=c{z1`lZe9Qp`PDuSk14 z5XGYGpQrnh(=Ta7+Gg~$b5m>^K`Wb+)2@+HY@Shj+C_pTB=k(&YITRKBq&vpzW!4eWS`>C}C zBEb?8HkYZjYMrQm`lVVjON~!tQ>PW_s6i{zYWpl(pCM|feP!dRu0bo(QG-^bZN5}% z&qabIB-HA&aaPxMqW;mIf8--eje&Rxtw_6ZUyy!DE7EGcE?e6-5-cHMbFy0dIua}) zVKb~+zrAcv+bVmTN~0#(&LFKwM-5t$wvm$-d5Ib}k4xh$u0bo(QG-^bZ5CJSAw_~E zBy8lQMZ)4%*~~AEn)p`HigeVV6=@r5X}!rvu!Mxo6l*=!NU(&2&HHMRNhj)`eyP6m z@IDT$NJkA?k+#v97F&)QiZl58({`26igeVV6=@sKX)%XLu!MxoMr(16NU(&2jpwxS zgt#Ay$<*Ka(6b#@q@xC{NZb6i7SV|WOGwykv^F9Xw@T3{pZ#t}msX^s2CYcj2v8eo zj2eon`7cD62CYa(4O)@5F{2ifiv&wZ*c`bQ_lpEeNZ5?GHcB4%!{*hMUs%YQR-~f_ ztw`ILQJW1DH55r5e$jzeq@xC{NZTk=i`+(nB_wPf-Vhx&q<2oyT9%NoQKmL?sMt0_ zacci1IXmaH3bYybji422o4MEG;%++-EFod@@YJQ_LRT<(&iwxd5E+k9W`i0+P28_{R)Lh zzqGwJe^x>((ous}r0vMsQ5iJ)BGmgaZzUw`?Af^*hyv&y)X1p4i<+&3R;1myFG%lK zLi0u1t|_~M291GW2?@K>?JAuTEFod{pWQnHQ8r5ZVfUZi3syoa(r!F#6|G3yQ^B4A zQw@!V+nb-RK`YWxgI1*d=~lLMzfygI1)ij64nct5-cHM{Tu6>3`E%|?T2Qb*?f#_CA1>##=}<8 zinR5*tdBL-u)d)6nXH6Xq@xC{NLydfdVYh(uvIJ}VLepqT}}y>kg#5`^?3)vH_hJW zu%5Q{VXcH#q~m_jinR6SttUQc4Ew!2CYbQ3*C6o;Jo=dM|5F+>pW6VSN8>M@2gF$NJkC&(pK5q zZcb~f>R}B1U<$5;Fge9ZD7C2lcvW?HIB`Wbq!jPj$5T#&ED;s z5cCwcihfDg`LJuYO0~1S+vggzA{{koMOrNYdmC_#Mx7Ds8nhzq8ud?aF%g?jJ0a*P z5^62k`-2mLo}B0l*Dtvxq}3v`HxASE4AvR3u0bo(QG-^b)v`>A9IVl(b7)z#T+er+ZyMYZ(rW43Ta9UYtm>>=_eCqx#e36GkHy|< zoDlTnwtXY$m$Z6C^|u=8I8FgnpR4DU)QfWsT9J+#v?8tE-S7(%)qMdiiej^TU4vGn zBcWcZ&GMZP^b`s8m+j5T2|-U~a|-9Z?O}UKtG8|MTBhk4tTTIEgI1*DRw-&=?^;d> zdWu^`zoZqJu(vbUY?Y!P_O7LC(28`_pcQG`Ytx_Zx$T4bvl3d7c8&U{Un=rpZ)Z*j zdUE5wAUYpVC#{G`va4pgRd&AZ*jov$NEh!-!>%d2B321{iiBOacGayC^yEZexPHkk zA+3l={Z;7Id(iGbyBAD@R-~f_tw`IG$DRS^$%*=>U)poT?rAHb73oOS*~1fpo}B0l zr%_9)mp4wGw&%J%FQ;2&&s=-{SxK-0UA&jS{nDQ6ihxWAdWwW%BKBVDgrFxU`oax! zot+?Ub)eN>)BR8s#ooK~5?YaV@4f%kbC*`6t-WCN@KnR z33`fzVj}h~*@U1cC;GzmOKu72ItSW4728Hw+sfKGwpFwu?Y4a*XhqsumDawS9xH1j zT6@h(XhphsZyMGPwN~URK~HYmH-dgiDoZvitw=}0`hwPzTP5fz64u|e-r_1jPfqlO>zCXT($>?qKJRottlw;XSSz6w>EgX< zSl`@w)~f_PxozJF`X#NHhW*~Jdn&e#uqc7`_f3OVq}{e}1g%JGCWrmLuzM=Dji@uN zy@XbzBT;8sPY8O7M4dN1A?V48zHmOXX4qcRnprda9(u8DM4f4!>{!u?bR_Cb>j^+OdqU7t zBUdqU8Y z6Mf+{!i()Ctr@0uy@}P@pw9nx4O)>d-kV09|2-k-$!+^a&@XAt#vOifwb(YI&K^&8 zbZJF;o>07c`2AJVk*G7qU4sO*BT;9JPY8NiAg?~m5VWeZzxP7Ws?OzJL)4kpUP7xnmwOGtBg!MqqRcB_eA$Zn!HhB~}e7tt{-z2kpf`04F z>@^y7rnQ&Qs?M`sL)2N&UP7xn&w35P^UU+led_S>7McIfmhA`q)_K-zH0qpYFQHYP zXT2AKR&}2BUI<#LP3>cc8Cs-gZz{r&&! zBf8DXMvzIx^r>}a>L880nX6E%2m^PcB%iv%_3S8*Tz&CcnyTW2Wy zme9&(2en98)KJ9B<~ln;E1QATqHXg8t!!RYi|9py&ksIVcoZVRt)gF>-_;_Mkx&HE z<~k=kCbY6SWG!AAi8`~_30m1awHA||Cun7}=UUu%o(NWD9*G*H(5lY4 z-3vi0Jx6Rd?ixa4PClw+8nmi2X!k#3Le$YyFhs~{BL#Tf8F(M;qrTWQc%I<}rmFhs7DZ3YfRvO!}nX+pLwhdTQ^SH%h zRp+<*T}!`eFW5}kH5wWZ@(~}~b6TlQV)I`2LeNU>9-H^NhEUte$8Su7R%%<>EY`gc zv{L)cX0h&tpp{yc)(TuhsEz2OF}78-Qp?rmq^=<}^5SDFM$k&FW1C^R7lKx5TU#4@ z4Z$`Q+gd#T@tkw3=vO@no0Gamqt3we5?ZMrV*Qc55VWfEI@b{D5&1}o9V=SZ`J!tG zdw>YX= z3AkZ`R`zDU#r3Cz{oav{9assi?AHS1r-c22hoW>|LM!`~5Q~RTi8_e_3%soHW{FYx=vFm*GK4))> zy)fP@@&2fD+TAa=aDJ=mvt()N_37j3`W*ALYxG6Q*JBxGzLTy`qLHYZ=D+wp^c2}Q zS7d7aM8ue+nMuYt`_S>jece+UVFGg5j+_s8-sTT?M z=-8*CUfd7*txs*&tIyyy`@!B8dtuaz8uUet`V3y9!M+pwRMd-mUZ3smi+-sW3HG+w z3!`4#5BjBEtr^zr2YXxWg;6hVRjqN{7yVK%66^`FheW-&AM{JTT3@Z%5B8ndr=nie zpf76F8g7jS`%dh=P%moG7d2{~xJD!NYtY}JUOc+Bu61AZOT9?2Clq=}(2M&)ztpQW z_15&+&Rz<8FVu@$Ra*eQAM{JTNU&eS{torxe$X%VYWrc$ez0G|{toq`27OVZwm8;k zu$RK#3-#ij*OrVQEBd8gB-pQE&w_e!Kj@cwwH>r(KiKDBUxa#5gTAOyTTW{<*ymth zgnChfzNk^#T5B}eOQ|*4!me=Y#iLu>aPEtKsTT?MIoKDWUfd7*rCx0TuGtUvAlS2@ zUeus3YScF48V&Y2>J!J074_nt*S4tpqF?Gof;|ZKET|XvgMO)3Te7>S&nxyh>Rsgf zLA|(DeAkkGsTT?MIqH?+8q|yXLBG_Syw6#Md~Lv?pHYwKhV3o&;#RF`w|~G0>P3P* z2=*+f7YV+LO1=5M0s98{gy-b-7z*eD*8@f>t{Ok0nI z#8}dWBRYEOL~K6$`OB04`YK&zgT~U1=y-*9NSg);T2;SJk7?7;s?!^7t$4+whu_Vw zGmK@?c}&Zmy_Sx|daGd;v#f2a>Kf9zM!TMK&lR((^UXWVTsI96-FmAy58c;AUfL?% z(&%`m#`E0eF>PC=m6Qi!Ea}?y>R0>d$+qf6-+#}>FFeoa7av zTW=NT3lFQAn?}d^FyjmnUz@znXEKetV!9LSt#Vs2J(cru&e^wEod3PYE=@yyWP3kC zez?L>*WQRwzG;xCZ(4ZCdOEA@+WmKI-DSrazEzwXG0sTnEKcKVEEWwC>#efIg6!8G zQ`ryQ8#{Hyn?}z$kQN2e)i0}I-EdEL9f)qdl^-k2nyl+otCrETpu9nxmGl_|HYQ

xx*v~ATx-+SotCLegX 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 literal 0 HcmV?d00001 -- 2.40.1 From 129647b863895dd87aaedf45065ae37563f52516 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 12 Jun 2022 13:37:00 -0400 Subject: [PATCH 08/89] App work --- app/css/app.css | 3 ++ app/less/settings.less | 6 +++- app/lib/devices/index.js | 67 +++++++++++++++++++++++++++++++---- app/lib/devices/index.js.map | 2 +- app/lib/settings/index.js | 3 +- app/lib/settings/index.js.map | 2 +- src/cam/index.ts | 43 ++++++++++++++++++---- src/devices/index.ts | 63 ++++++++++++++++++++++++++++---- src/settings/index.ts | 3 +- 9 files changed, 167 insertions(+), 25 deletions(-) diff --git a/app/css/app.css b/app/css/app.css index b48a3a4..7c6359e 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -696,6 +696,9 @@ button:focus { border-color: #DAE035; color: #DAE035; } +#settings input[type=text] { + width: 200px; +} #settings button { margin-top: -1px; float: right; diff --git a/app/less/settings.less b/app/less/settings.less index 88f87d6..9303294 100644 --- a/app/less/settings.less +++ b/app/less/settings.less @@ -6,7 +6,8 @@ > div > div{ width: 360px; } - input[type=text], select{ + input[type=text], + select{ .button(); display: inline-block; padding: 6px 12px; @@ -17,6 +18,9 @@ color: @SELECTED; } } + input[type=text]{ + width: 200px; + } button{ margin-top: -1px; float: right; diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index 0a64a76..c6baeb3 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -302,7 +302,7 @@ class Devices { return false; } } - else if ('camera,projector,projector_second') { + else if (type === 'camera,projector,projector_second') { this.connected.camera = device; this.connected.projector = device; this.connected.projector_second = device; @@ -316,7 +316,7 @@ class Devices { return false; } } - else if ('camera,camera_second,projector') { + else if (type === 'camera,camera_second,projector') { this.connected.camera = device; this.connected.camera_second = device; this.connected.projector = device; @@ -330,7 +330,7 @@ class Devices { return false; } } - else if ('camera,camera_second,projector,projector_second') { + else if (type === 'camera,camera_second,projector,projector_second') { this.connected.camera = device; this.connected.camera_second = device; this.connected.projector = device; @@ -346,6 +346,48 @@ class Devices { return false; } } + else if (type === 'camera,capper') { + this.connected.camera = device; + this.connected.capper = device; + this.arduino.aliasSerial('capper', device); + try { + connectSuccess = await this.arduino.connect('camera', device, false); + } + catch (err) { + this.log.error('Error connecting to camera and capper', err); + return false; + } + } + else if (type === 'camera,capper,projector') { + this.connected.camera = device; + this.connected.capper = device; + this.connected.projector = device; + this.arduino.aliasSerial('capper', device); + this.arduino.aliasSerial('projector', device); + try { + connectSuccess = await this.arduino.connect('camera', device, false); + } + catch (err) { + this.log.error('Error connecting to camera, capper and projector', err); + return false; + } + } + else if (type === 'camera,capper,projector,projector_second') { + this.connected.camera = device; + this.connected.capper = device; + this.connected.projector = device; + this.connected.projector_second = device; + this.arduino.aliasSerial('capper', device); + this.arduino.aliasSerial('projector', device); + this.arduino.aliasSerial('projector_second', device); + try { + connectSuccess = await this.arduino.connect('camera', device, false); + } + catch (err) { + this.log.error('Error connecting to camera, capper, projector and projector_second', err); + return false; + } + } return connectSuccess; } /** @@ -360,12 +402,14 @@ class Devices { let d; let cs = {}; let ps = {}; + let capper; let checklist = []; this.connected = { projector: false, camera: false, light: false, - projector_second: false + projector_second: false, + capper: false }; for (let device of devices) { try { @@ -402,10 +446,13 @@ class Devices { if (this.connected.projector_second) { ps = { arduino: this.connected.projector_second }; } + if (this.connected.capper) { + capper = { arduino: this.connected.capper }; + } if (this.settings.state.camera && this.settings.state.camera.intval) { c.intval = this.settings.state.camera.intval; } - return this.ready(p, c, l, cs, ps); + return this.ready(p, c, l, cs, ps, capper); } /** * @@ -419,7 +466,7 @@ class Devices { }); if (match.length === 0) { deviceEntry = { - type: type + type }; deviceEntry[which] = device; this.settings.state.devices.push(deviceEntry); @@ -430,13 +477,14 @@ class Devices { /** * **/ - ready(projector, camera, light, camera_second, projector_second) { + ready(projector, camera, light, camera_second, projector_second, capper) { let args = { camera, projector, light, profile: this.settings.state.profile }; + console.log("CHECK " + camera); if (projector_second && projector_second.arduino) { args.projector_second = projector_second; this.settings.update('projector_second', projector_second); @@ -452,6 +500,11 @@ class Devices { this.mainWindow.setSize(800, 800); } } + if (capper) { + this.mainWindow.setSize(800, 800); + this.settings.update('capper', capper); + args.capper = capper; + } this.settings.update('camera', camera); this.settings.update('projector', projector); this.settings.update('light', light); diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index fd06dab..9f04c13 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/settings/index.js b/app/lib/settings/index.js index 869e3b4..c52b69d 100644 --- a/app/lib/settings/index.js +++ b/app/lib/settings/index.js @@ -18,7 +18,8 @@ class Settings { profile: 'mcopy', camera: {}, projector: {}, - light: {} + light: {}, + capper: {} }; this.state = this.freshState(); } diff --git a/app/lib/settings/index.js.map b/app/lib/settings/index.js.map index 09bd78c..0903e4c 100644 --- a/app/lib/settings/index.js.map +++ b/app/lib/settings/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,yBAA0B;AAC1B,6BAA8B;AAC9B,+BAAgC;AAEhC,MAAM,QAAQ;IAcb;;QAEI;IACJ;QAhBQ,SAAI,GAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAChE,iBAAY,GAAS;YAC5B,MAAM,EAAG;gBACR,IAAI,EAAG,IAAI;gBACX,OAAO,EAAG,IAAI;aACd;YACD,OAAO,EAAG,EAAE;YACZ,OAAO,EAAG,OAAO;YACjB,MAAM,EAAG,EAAE;YACX,SAAS,EAAG,EAAE;YACd,KAAK,EAAG,EAAE;SACV,CAAA;QAMA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,QAAQ;QACrB,MAAM,GAAG,GAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,MAAM,GAAa,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,EAAE;YACZ,IAAI;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAA;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;SACD;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACG,KAAK,CAAC,IAAI;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACnB;IACF,CAAC;IACD;;QAEI;IACG,MAAM,CAAE,GAAY,EAAE,GAAS;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvB,CAAC;IACD;;QAEI;IACG,GAAG,CAAE,GAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD;;QAEI;IACG,GAAG;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD;;QAEI;IACG,KAAK,CAAC,OAAO;QACnB,IAAI,MAAM,CAAC;QACX,IAAI,GAAG,CAAC;QAER,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,MAAM,EAAE;YACX,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,yBAAyB;SACzB;aAAM;YACN,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;IACF,CAAC;IACD;;QAEI;IACG,KAAK,CAAC,KAAK;QACjB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE;YACX,IAAI;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;SACD;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAAA,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/cam/index.ts b/src/cam/index.ts index 903bc90..5861dfd 100644 --- a/src/cam/index.ts +++ b/src/cam/index.ts @@ -9,7 +9,8 @@ import { delay } from 'delay'; class Camera { private state : any = { pos : 0, - dir : true + dir : true, + capepr: false }; private arduino : Arduino = null; private intval : any = null; @@ -87,6 +88,28 @@ class Camera { return await this.end(cmd, id, ms); } + /** + * + **/ + public async cap (state : boolean, id : string) { + let cmd : string; + let ms : number; + + if (state) { + cmd = this.cfg.arduino.cmd[`${this.id}_forward`]; + } else { + cmd = this.cfg.arduino.cmd[`${this.id}_backward`]; + } + this.state.capper = state; + + try { + ms = await this.arduino.send(this.id, cmd); + } catch (err) { + this.log.error(err); + } + return await this.end(cmd, id, ms); + } + /** * **/ @@ -189,20 +212,26 @@ class Camera { private async listener (event : any, arg : any) { if (typeof arg.dir !== 'undefined') { try { - await this.set(arg.dir, arg.id); + await this.set(arg.dir, arg.id) } catch (err) { - this.log.error(err); + this.log.error(err) } } else if (typeof arg.frame !== 'undefined') { try { - await this.move(arg.frame, arg.id); + await this.move(arg.frame, arg.id) } catch (err) { - this.log.error(err); + this.log.error(err) } } else if (typeof arg.val !== 'undefined') { - this.state.pos = arg.val; + this.state.pos = arg.val + } else if (typeof arg.capper !== 'undefined') { + try { + await this.cap(arg.capper, arg.id) + } catch (err) { + this.log.error(err) + } } - event.returnValue = true; + event.returnValue = true } /** diff --git a/src/devices/index.ts b/src/devices/index.ts index 7b6e041..7eed24f 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -295,7 +295,7 @@ class Devices { this.log.error('Error connecting to camera, camera_secondary and projector', err) return false } - } else if ('camera,projector,projector_second') { + } else if (type === 'camera,projector,projector_second') { this.connected.camera = device this.connected.projector = device this.connected.projector_second = device @@ -307,7 +307,7 @@ class Devices { this.log.error('Error connecting to camera, projector and projector_second', err) return false } - } else if ('camera,camera_second,projector') { + } else if (type === 'camera,camera_second,projector') { this.connected.camera = device this.connected.camera_second = device this.connected.projector = device @@ -320,7 +320,7 @@ class Devices { this.log.error('Error connecting to camera, camera_second and projector', err) return false } - } else if ('camera,camera_second,projector,projector_second') { + } else if (type === 'camera,camera_second,projector,projector_second') { this.connected.camera = device this.connected.camera_second = device this.connected.projector = device @@ -335,6 +335,43 @@ class Devices { this.log.error('Error connecting to camera, camera_second, projector and projector_second', err) return false } + } else if (type === 'camera,capper') { + this.connected.camera = device + this.connected.capper = device + this.arduino.aliasSerial('capper', device) + try { + connectSuccess = await this.arduino.connect('camera', device, false) + } catch (err) { + this.log.error('Error connecting to camera and capper', err) + return false + } + } else if (type === 'camera,capper,projector') { + this.connected.camera = device + this.connected.capper = device + this.connected.projector = device + this.arduino.aliasSerial('capper', device) + this.arduino.aliasSerial('projector', device) + + try { + connectSuccess = await this.arduino.connect('camera', device, false) + } catch (err) { + this.log.error('Error connecting to camera, capper and projector', err) + return false + } + } else if (type === 'camera,capper,projector,projector_second') { + this.connected.camera = device + this.connected.capper = device + this.connected.projector = device + this.connected.projector_second = device + this.arduino.aliasSerial('capper', device) + this.arduino.aliasSerial('projector', device) + this.arduino.aliasSerial('projector_second', device) + try { + connectSuccess = await this.arduino.connect('camera', device, false) + } catch (err) { + this.log.error('Error connecting to camera, capper, projector and projector_second', err) + return false + } } return connectSuccess } @@ -350,13 +387,15 @@ class Devices { let d : any let cs : any = {} let ps : any = {} + let capper : any; let checklist : any[] = [] this.connected = { projector : false, camera : false, light : false, - projector_second : false + projector_second : false, + capper : false } for (let device of devices) { @@ -400,12 +439,15 @@ class Devices { ps = { arduino : this.connected.projector_second } } + if (this.connected.capper) { + capper = { arduino : this.connected.capper } + } if (this.settings.state.camera && this.settings.state.camera.intval) { c.intval = this.settings.state.camera.intval } - return this.ready(p, c, l, cs, ps) + return this.ready(p, c, l, cs, ps, capper) } /** * @@ -430,7 +472,7 @@ class Devices { /** * **/ - private ready (projector : any, camera : any, light : any, camera_second : any, projector_second : any) { + private ready (projector : any, camera : any, light : any, camera_second : any, projector_second : any, capper : any) { let args : any = { camera, projector, @@ -438,6 +480,7 @@ class Devices { profile: this.settings.state.profile } + console.log("CHECK " + camera) if (projector_second && projector_second.arduino) { args.projector_second = projector_second this.settings.update('projector_second', projector_second) @@ -454,9 +497,17 @@ class Devices { } } + if (capper) { + this.mainWindow.setSize(800, 800) + this.settings.update('capper', capper) + args.capper = capper + } + this.settings.update('camera', camera) this.settings.update('projector', projector) this.settings.update('light', light) + + this.settings.save() this.ui.send('ready', args) diff --git a/src/settings/index.ts b/src/settings/index.ts index 4d83d1a..c462654 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -15,7 +15,8 @@ class Settings { profile : 'mcopy', camera : {}, projector : {}, - light : {} + light : {}, + capper : {} } public state : any; /** -- 2.40.1 From 04a0330327ddef34bcd50598f4c11689933420d8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 12 Jun 2022 22:26:03 -0400 Subject: [PATCH 09/89] All work on first draft of capper hardware --- ino/components/mcopy_capper/mcopy_capper.ino | 2 +- scad/capper.scad | 151 ++++++++++++++++--- scad/common.scad | 41 ++++- stl/capper_cap.stl | Bin 174284 -> 202084 bytes stl/capper_mount_back.stl | Bin 0 -> 138684 bytes stl/capper_mount_front.stl | Bin 0 -> 390184 bytes stl/capper_opto.stl | Bin 0 -> 26484 bytes 7 files changed, 172 insertions(+), 22 deletions(-) create mode 100644 stl/capper_mount_back.stl create mode 100644 stl/capper_mount_front.stl create mode 100644 stl/capper_opto.stl diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index 0106e9f..bcbdf15 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -49,7 +49,7 @@ const int serialDelay = 5; Servo servo; //SG-5010 speed 0.18s / 60 degree //converted to milliseconds/angle -const float servoSpeed = 200.0 / 60.0; +const float servoSpeed = 400.0 / 60.0; void setup() { Serial.begin(57600); diff --git a/scad/capper.scad b/scad/capper.scad index a421ec1..6bc6bec 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -5,9 +5,11 @@ include ; // https://www.thingiverse.com/thing:83806 - Lego mount (has dimensions of servo body) // https://www.thingiverse.com/thing:5241574 - Robot arm (just cool) +currentAngle=-60; + LensVoidDiameter = 40; //mm LensZ = 80; -LensY = 20; +LensY = 30; CapOffsetX = -50; CapOffsetY = -11; @@ -16,35 +18,59 @@ CapWidthZ = 4; BoltSpacingX = 10; BoltSpacingY = 49; -BoltD = 5; +BoltD = 3.5; + +RailSlotsX = 20; +RailSlotsD = 6; + +MountBoltSpacingY=40; + +OptoEndstopAdjustZ=0.25; + +module BoltVoid () { + cylinder(r=R(BoltD), h=20, center=true); + translate([0, 0, 4]) m3_nut(5); +} module Mount () { $fn = 200; difference(){ union(){ - difference(){ + translate([0, 0, 5]) difference(){ cylinder(r=R(LensVoidDiameter)+15, h=LensY, center=true); cylinder(r=R(LensVoidDiameter)+5, h=LensY+1, center=true); } translate([0,0,-(LensY/4)-(5/4)]) difference(){ - cylinder(r=R(LensVoidDiameter)+5, h=R(LensY)-R(5), center=true); + cylinder(r=R(LensVoidDiameter)+5, h=R(LensY)-R(5)-10, center=true); cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); } difference () { - translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center=true); + union() { + translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center=true); + translate([0, 0, -6]) cylinder(r=R(LensVoidDiameter)+12, h=8, center=true); + } cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); + //servo translate([50, 0, -6]) { cube([20, 40.25, 10], center = true); - translate([BoltSpacingX/2, BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); - translate([-BoltSpacingX/2, BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); - translate([BoltSpacingX/2, -BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); - translate([-BoltSpacingX/2, -BoltSpacingY/2, 0])cylinder(r=R(BoltD), h=20, center=true); + translate([BoltSpacingX/2, BoltSpacingY/2, 0]) BoltVoid(); + translate([-BoltSpacingX/2, BoltSpacingY/2, 0]) BoltVoid(); + translate([BoltSpacingX/2, -BoltSpacingY/2, 0]) BoltVoid(); + translate([-BoltSpacingX/2, -BoltSpacingY/2, 0]) BoltVoid(); } + translate([50, 0, -6-3.01]) cube([2, 56, 2], center=true); } } - translate([0,R(LensVoidDiameter),0])cube([LensVoidDiameter*2, LensVoidDiameter, 5], center=true); + translate([0,R(LensVoidDiameter),1+7.5]) cube([LensVoidDiameter*2, LensVoidDiameter, 7], center=true); + // + translate([80, R(MountBoltSpacingY), 0]) RailSlots(); + translate([80, -R(MountBoltSpacingY), 0]) RailSlots(); + //endstop + translate([0, -34, 25-2-2]) { + cube([14, 20, 50], center=true); + translate([0, 11, -12.5]) cylinder(r=R(22), h=4, center=true); + } } - } module Cap () { @@ -66,21 +92,106 @@ module Cap () { } translate([0, 0, -4]) cylinder(r=5,h=4,center=true); } - translate([0, 0, -4]) cylinder(r1=R(5.5), r2=R(5.4),h=4.01,center=true); - cylinder(r=R(5.4),h=10,center=true); + translate([0, 0, -4]) cylinder(r1=R(5.85), r2=R(5.5), h=4.01,center=true, $fn=20); + cylinder(r=R(2.5), h=10,center=true); + translate([0, 0, 2.5]) cylinder(r=R(7.5), h=5,center=true); } -} -module Debug () { - Mount(); - translate([-CapOffsetX,-CapOffsetY,0]) rotate([0,0,-60]) Cap(); + translate([CapOffsetX,CapOffsetY - R(LensVoidDiameter) - 4, 1.25]) cylinder(r=R(15), h=1.5, center=true); } -Render="Debug"; +module MountFront () { + $fn=60; + difference () { + Mount(); + translate([0, -50, 50-2]) cube([100, 100, 100], center=true); + translate([0, 0, 50-2+7]) cube([100, 100, 100], center=true); + translate([0,-30,-2]) cylinder(r=R(4), h=3, center=true); + rotate([0,0,40]) translate([0,-30,-2]) cylinder(r=R(4), h=3, center=true); + rotate([0,0,-40])translate([0,-30,-2]) cylinder(r=R(4), h=3, center=true); + rotate([0,0,80]) translate([0,-30,-2]) cylinder(r=R(4), h=3, center=true); + rotate([0,0,-80])translate([0,-30,-2]) cylinder(r=R(4), h=3, center=true); + translate([90, 0, -11]) rotate([45,0,0]) cube([70, 4.3, 4.3], center=true); + } +} + +module MountBack () { + $fn=60; + difference () { + Mount(); + translate([0, 0, -50-1.999]) cube([400, 100, 100], center=true); + translate([0, 50, -50+2+7]) cube([100, 100, 100], center=true); + } + //translate([0,-30,-2]) cylinder(r=R(3.9), h=3, center=true); + rotate([0,0,40]) translate([0,-30,-2]) cylinder(r=R(3.9), h=3, center=true); + rotate([0,0,-40])translate([0,-30,-2]) cylinder(r=R(3.9), h=3, center=true); + rotate([0,0,80]) translate([0,-30,-2]) cylinder(r=R(3.9), h=3, center=true); + rotate([0,0,-80])translate([0,-30,-2]) cylinder(r=R(3.9), h=3, center=true); +} + +module RailSlots () { + translate([R(RailSlotsX), 0, 0]) cylinder(r=R(RailSlotsD), h=40, center=true); + translate([-R(RailSlotsX), 0, 0]) cylinder(r=R(RailSlotsD), h=40, center=true); + cube([RailSlotsX, RailSlotsD, 40], center=true); +} + +module RailMount () { + // + X=110; + RailD=15; + RailSpacingY=80; + $fn=60; + difference () { + translate([X, 0, -14]) difference () { + cube([100, LensVoidDiameter + 30.6, 8], center=true); + // + translate([-40, R(MountBoltSpacingY), 0]) cylinder(r=R(6),h=40,center=true); + translate([-40, -R(MountBoltSpacingY), 0]) cylinder(r=R(6),h=40,center=true); + } + + } + translate([X, 0, -11]) rotate([45,0,0]) cube([100, 4, 4], center=true); + translate([X + R(100), 0, -14]) cube([8, LensVoidDiameter + 30.6, 28], center=true); + translate([X + R(100) + 5 ,R(RailSpacingY),-14]) difference() { + translate([-2.5, -2.5, 0]) cylinder(r=R(RailD + 5), h=28, center=true); + cylinder(r=R(RailD), h=28+1, center=true); + } +} + +module OptoEndstopMount () { + translate([-5,9.5,20]) { + difference() { + cube([14-0.3, 14, 24], center=true); + translate([0, R(LensVoidDiameter)+15+4, 0]) cylinder(r=R(LensVoidDiameter)+15, h=LensY, center=true, $fn=200); + translate([0,-8.3,0]) cube([7.25, 8, 24+1], center=true); + translate([0,-5,-9+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); + translate([0,-5,10+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); + translate([0,1,1+OptoEndstopAdjustZ]) cube([8,14,11.5],center=true); + translate([0,6,.75+OptoEndstopAdjustZ]) cylinder(r=R(22), h=4, center=true); + } + + } +} + +module Debug () { + Mount(); + translate([-CapOffsetX,-CapOffsetY,6.11 + 1.9]) rotate([0,0,currentAngle]) Cap(); + //color("green") RailMount(); + translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); + translate([5, -38, -11.8]) OptoEndstopMount(); +} + +Render="OptoEndstopMount"; if (Render=="Debug") { Debug(); } else if (Render=="Cap") { Cap(); -} else if (Render=="Mount") { - Mount(); +} else if (Render=="MountFront") { + MountFront(); +} else if (Render=="MountBack") { + MountBack(); +} else if (Render=="RailMount") { + RailMount(); +} else if (Render=="OptoEndstopMount") { + rotate([-90,0,0]) OptoEndstopMount(); } \ No newline at end of file diff --git a/scad/common.scad b/scad/common.scad index 48417a4..2719a7e 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -32,4 +32,43 @@ module trap_cube(height = 19, top_x = 30, top_y = 34, bottom_x = 45, bottom_y = } echo("common.scad - R()"); -function R (diameter) = diameter / 2.0; \ No newline at end of file +function R (diameter) = diameter / 2.0; + +echo("common.scad - m3_nut"); +module m3_nut (H = 5) { + cylinder(r=R(6.6), h=H, center=true, $fn=6); +} + +module opto_endstop(){ + difference(){ + union(){ + // base PCB + color("green") cube([33.0,1.6,10.5]); + // add the switch module + translate([8.4,1.6,10.5/2-6.4/2]) optoswitch(); + // connector + translate([0.2,-7,0]) color("white") cube([5.8,7,10.5]); + // led + translate([3.5,1.6,10.5/2-1.5/2]) color("red") cube([2,0.7,1.5]); + } + translate([8.4,0,10.5/2-6.4/2]) { + for ( hole = [2.75,24.5-2.75] ){ + rotate([90,0,0]) translate([hole,6.4/2,-4]) cylinder(r=1.5, h=4.5,$fn=40); + } + } + } +} + +// switch module +module optoswitch() { + difference(){ + union (){ + color("gray") cube([24.5,3.5,6.4]); + color("gray")translate([6.63,0,0]) cube([4.45,11.3,6.3]); + color("gray")translate([13.63,0,0]) cube([4.45,11.3,6.3]); + } + for ( hole = [2.75,24.5-2.75] ){ + rotate([90,0,0]) translate([hole,6.4/2,-4]) cylinder(r=1.5, h=4.5,$fn=40); + } + } + } \ No newline at end of file diff --git a/stl/capper_cap.stl b/stl/capper_cap.stl index 54cdacbae3b167f47c33c7f97c00d770afacc0b6..64cd675ac05689c20282cfbd7ea2e65c70e9ef09 100644 GIT binary patch literal 202084 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

xx*v~ATx-+SotCLegX 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 diff --git a/stl/capper_mount_back.stl b/stl/capper_mount_back.stl new file mode 100644 index 0000000000000000000000000000000000000000..91f34034ae4c48fbe5e9c971c76d233673541bf4 GIT binary patch literal 138684 zcmbrndDtyiQTDwdK!8LfXQl$Ok?AZnx@heXU=9#K{kO*yUIMfB*i@viS0Mp0s|(nZqqhUdJCQ|L*m7{_1gu z?)9$I*Q-?rd9Tk1YOPic-Q>;?m;Kt=had3dhi#PiPdxZH#=AXXb>!xs{-4b~uKO$F zO|E~*BdgV3AI~Kx#IU4AwB*(5jN9CM^Ry$Ew(_o4-@nAy$E!T`S(Z=NKkOm@F<$Yq zFEDuzvPwk+wTN!AO7$0adC2CNvp#-U9IJbOe|*;?9zKd)^-=l75ppRN5s~6G1Uhmm zH9zP4?xgiQpQL&WFMRd!-EH4}ob^f9t1r~r(rV9DDj-(NT12bn)=nF%y|~5F#M|nIe|Wh=7o7Vy`^tC!HkUv2*_*y) zU+oiesW}mmA}yjrF0Fg4jjQ`V`C(pR9r&YR^>S=A9LvK3%hTi`nmwFHpDJn0~A(wjG@LhM>{P5d<%^<%^88m?S#91OJa@d|OW$C!&BsYr>k`pY_Ije5teXGZcb>F)`kBLfHFRwp9kG$J zDeT7|(KGSctaZ6Ox0PXID}xY2AW97zBA(9>2AXSSv`Y1md!4j-$sKOsHUIXpA0PkW zgm>H1u7B(`J~H0(jT@8qAghE#P>bj$i{nn$J8^UUfBc1w>iFB=|G=pKsl1l|s2s!* z&r1n`7?!k%E;YaFn;*CS#%q4nN6EkJUG~sr?)uGr<;C$Da^WB%Qj{0bAr}s-`TE6o zxPjNh%H6AE%FAloTf2FkLM|LcM2hkvI^@FfBX9q)&5dj{s;z9~jT&1@u@O0HJb9h! z^TGkdu%tzF;po5en9aef{eRw8UwPzZj+}7IYdFWHUv%t|8{PUi=LmU@h!n9C9dap^ z^~J%vS)W)n2J4GXEva#3t5B!bmR5VNQ3AwjS&L|mM6GVuwpC7Tr4>zUR^`|aj`my} zL})#nYdJ@KE{@xu{(^(&z4=kzAJ$G@W3`E`JX(Qlw(j-uywseCB`u;$>z;VZ6E_dM z-4ze29w&eP@<*P2-_twQ!|HRy%5So-+ErGmh@ckHO;*i+@z8bG-+A33?+?v!jYe@i z^KobOCm;StllL@+>+>zdYFUeDmFl?{zU}bse(w?9A6lig#)^YGKzl9@B9^s?7Kg1> z8_g=UmF8U3qplKBkNR93L@aA{K9e;MRod0+Uw`mgn_vFR+j^f{%|~k=pC2(F)mHJm z^f?g2l9u{8o|is9a{BS>-}}xzoI}=;>>s6E`vEWQuYJZBN97yO3kMNPT0|F)-mI7p zpWnStZ6zzltd@P{B`YR&pO6a&5s{+2hz_}M*xXoa#EZjLfJ2%K%B$|X-l9!be-P19 zI?b#J-DLHL+R19~ZKbxc+Iw47n{gCh$fZ<7M2fVC4!P9aEWVBGIMt)>sW!&C-fDY9 z)}FMQtWputQoMDww>!G!q?(`fmB+4car`5^t?JI=`Pzzl$ktuc==vsaBU(z=6WwH$ z>gJC+b^X`xJKYt8>_Da46Q5CX0iJmeTb^H(4Bqp8vIjryYEN)o?Xj z?Q^H~ufNZ?yzE!L<*EI>9{*jF_xko+96+p=wYt7N7l+nd8&|$ZX`KyAkGo9B(@2~U zk)o0i9dhaOx+eO#swC4(`W#^AWaZ0gM*CDNV z(h9k75D_WTB0A*4VfEP5wOuQ<)+=kl&TW#iK2GbEJy(Aa(Nz$}R zUsa36^D?_lwwuYF|662n5J4@Xn=Fpu=dQfI{V8|x{)iP$HIy|Twog1S^&nzNi|Eo; zw&NVEdz8+#y;@jhw|%KE`_-QItNL8^0AjVQMYQUn)4Wdg)>K0~4=P1}I-~EU(_}&v zrI{AdlFjbfm^I^TNwWYt*}F$%J&B{q+lZEuEsK`Zo^jZ$JzVFxX6;z!cBi>LmN~zt zSzDiPBbK#@R;euijd)aT%X1V;J!M>@^7gi>a_K=Ls6}+hWt8abp%aBTY$Q(S4;y_t z<2Xmig@cGlQC>ucTsX{TU&|5~huQ4Cc6+7Rxb0BFNFa;XOqk)rYv9dfBh^{T~b+wGl_SNO}vI3>>uKw$0OuY4_@aJt9_~$&uiXf)trcyvZu9tLN{5hYrDbj$s~+F``6q2&^5#A74{O~c zX7za=RJ+vsCgf5oA|j>s;DnBxO3iO#C;I!m`ElM>W}kIWx!&b`^{J=$BSot`pCgvE zRFZgJN>%L==csmxubkDY8I^B5FC0J&OIpe|o)-?SB_CdY#>Z7%ORNQLM=mRo$>yz{ zWVJ34Eya4OtXGb1vU%<&*Y&?M&sTQ}H!<8_`m_ULNj1H(8~U zuN@~Zt<=_Te%jKBwG)Sp&?<|Ah?X*~yN<3awaMbR@{x>R38L#nN97O0mKGz~z92!#^DaxhQd|G!q z@zvGUWN{GDQgVy7oWvmyr+mEPsQwb4gPeEqyl?<9ENN-p#q%-;<#DcF9Qk+UVK!zz zb4(tn_FVMOq8!?gcHPRS)xJtl|CeeM$M&+2wr`a;XOqk)ra(ekHAtOFdrv8^5vs z#2dfwYl$p-o!+Iznc8I4gNT;Wxi28lEhp7O=RsKEZcB?peXsGPl7w99K}4iTtDYuD zX@y+sp*^s!yIMtS>)LIG?T2Lz-qRX9wYsmn6JlA5Xw}2+i8glo<9%NJ?e^48Ud1bK z@}67#vI0syh*;JlS{!yavB7P|5!)qwKd;Yh&j@M}-DH)@EPxG8EPgWe8rEB6Zy(+$CxqDsep4+ivmYjO$fb4F zPOx|79rChke^TvLrzWdZM6{I7TQ<>mOcqC7OB~Ts@~+=< zQh&&{lEq|8;$SB`x205e?yv2+IDl9!YY{CD?d95`weGf>TV9hzW?GXh4kB7gZqb&L zIP6rk!8uAN2w$VB(P zk*C(INVk1#7agr7d>?Gj#X-cfmV4DIS{xRgAdlB!^?9stYWM21+E>{_F8x77q)3bC zkW0<&l)5qRd7NvHn8!TMvVJO(mhB_c3CX?Z6CzTiW$iPeLoOV;S<-!x>QPT|J~HeS zuULaoS|OKu5D_WPQBISNj+_dI&IPqUhHA-pe^h(N`=dRt{Sk=OvQ`(?lIJuA6~$ z2(HLYi)fAAI!b)6t)s-A?!nT}R)0qD3_x^~#i6xIYnJMvy+bRIIJ9?YozfU3-jW<&`2?SfLO7ti@Zo+Bbf z>~#(o|FR$CF#Qu40Pect_|8?AEc53~A4t#ZoO&NMYP z&TlrVtRB?8T_C7Mbdy!8YL|F_RQ7$<&{hfAD8BE8Txw24q^K2%4!N|hyyw_!J!(UF zRgby1Zpej$h)7XhHe)Ar$c3YNYki(a4_1VHy`$F&JN4w>bp-cqqC+mFQtQG`t#FVo6K+#`D5q zXTihOzZ>!GZlzkjqfUFu*Y@*KC%nQz#Ily3IV)OiRpXX?y{dbZw~1~=wR@^0Ar}rJ zB1Kw6hg|AWW4zSoL$fSBvfKTA%C|jNp98V7c3;pUTJ_N0QKKe@7H8S@I{#_)6i0h5 z4j>d~xu8X~I4ts0{wv?l>j|sV*sUHYlPAxVKhFqi5#3}jl|?h+UQMgBF;CIBCU@>7 z)_S7nzV1#4TVH*psVm%swsow^s)z2jaKgeQq&# z8${_T+RXPpyA4nrnavwpQB%A)5s@M-^EglFkV~oL$B=iz#+AHkqfSO*uP1M>M?9Y) zbb{15JZTYK>S2CY-9g6Pgi7LlOY6SLYF#2)%2W?W*Ls+&9<;t#tA(u^5p6gsMNtZB zRh1;5$W%p+WU)+Vb|M6{GV`dUt^x%p!b%bF2~ zY#muM%GYLBjbh&G+jDUcv8+Y3I24lszi5pxoN6nLsJY4FAfmR3Yt?phttN}Z{P}D7 zuv8E3!r_%yzVWjNXmKcdPBC%nk9P8MFK6{xXAg8n*vd0$5#3~QRJ%m= z(5^Ph!>oGH-f7QO4lP(A8uIjZb+NA|TnxkA3<*Rm5OQ=OdF8x77q)3bCkV}8aUm39mVJ#`8df41@isyv`h+#>K z=)$4%rg~8$)=H(h?Paes)$0`U91$tC<`X({Dy7o9wc!`7?d}})?Bw-`=QD(Ecy+=` zS}I9AFQu~mL-%U2f7Dnd-!pW_W<56Dn3=2|B%=ECT}w8pwW@11S))X6Kq%tSnrbjR zstfyyF<0&R7Gkxm<#7O0Bv-jn#Jk94oLbp+##D_}+mK6J>4X}HNbxo)Hk8-fs4LvQ_(CqFA|g_xMRdre=9d3Kp{(XB zMn~HD#!=FW=X1o8mP!)OYg?7K8hw7q*Df!F+Q-haekM@9?YXyAL#&pyh*n$4*2O#3 zwGZ4o=r)%4s)yCI#X&?%$-TyYvY}CYWZqWQToc_>yuv0X@pP$9io{IyBc;CQA3AKn8hwKF#yFRX3zFmx0N4MwV03t^F zmKM>K<8b8=VqYte+RE}BZ6-OoJ+B-SVp)r5an!fZd=<5mu-=fir+&MnH_=SaQL`Cg zvuV;Iy2&b);tc8@r5&fnr*-Mv-=1$H=pATUM5`XU57r){aaHX^AAQww8dZ;YE;%6- zy(2p+X=#MV^D^3HFCZ32x9paWv6rYPlP%v#R;h?+DbpRjqh&{woK!0HH`ZPE^(bHU zz4}@u3AxmRh)9u^Mu^6Mv_dZRkRM#$RJD~^cZz55l4ym9y`;&i2N5l0if3?i%SrW6 zOkaH~UhlY1@0oMFw&&Z3Wi6i{(=4!eK8z#c^ee)BeKtn-6|=9J$Me!wKnzP-rF{yz z$clvvpFT$eZNqq8IDi~4_f|u z^WOJ!^L^_L`?z=X=pB{aY{w~*CnF+7T11CjYOZ#|`v!^x^pQa;tjQ`B5iP|=1831B zYn0SmeV^xXnouj+x;1LmQAy%?DHRaf4Q5(Im;R_;HDB8`H*^BhJU1)M&r-^_Jy)rK z2+y58r54euxy}XQrBo)-=vh9xcK z8_x@e){ycySbLpgHPfHkB;F-+Kg0B{LrE|H9oFyt!iW0%9eaC2X07TQ=t@ovBaW6Y z`OIU1H{Xc3;6)$mFZjwi&cS@EpP_LK1vQmwgHpLnzQ$m-+4_Um_)x$9ysLO#%vYx| z&Chu~Sl-$S&JkXbIpQ`C`(Xcsr{2!ss?!zT_*qfq3Q9KG2_j z$H#Tbi}|)Qj(WEJ4QrN{eBs5JN>xF_`s$Bpp08*scfjt-a}dwWVDyxtISA>qozH?BDv04|d9n`PwQp zeci!zhd|UG+!uoRlCS6n;&MN@-{0?NKivtzeCu86LOqx-`D$-Ecjoxfn;q`oe6#O3 z2lH)y>e^OA!42y=O7>MM=1ab!8;Bph;d}eDPd(Pl%Y2)Ue7irGFZt?-aqi6VtZ%-% z|K|G2&cS@E|Dm$zPblR@zP3Ml9=c}`8oY&(8=f1Xo-QDl$c`;wJgD206XFn8@VO?kKEMM{!-9Vi7 z+pp^H`S&BIkCFp)d{Wx?Xt-wdz{g5VdH7f0NPTB-W}q zEvMaf3GE%)K^a{M?4Myx>xEVg(M?|n+9I@3h|Y);|LVE@(JwvKTbC`G?`s=oSko4v zjY7VruTs&npv6ISM$k^6{Xld^aM!0bKy*fM59i)abVhvYq0j8~KlM4=r^Xui^DP9T zin+IwFC(}kbEhUcBe=hE-z7RD)ZglN)q`c{8?G6_{gwMJ`7**zjpf}dS5%@iLRO4=OQm8-=-0>yt~gwY$d?hE z+nn=6XN2rGjXITzB~f&T=FYr7I8!-;$(K1eCpcG#&Innqnr~ufNzB*h?-|WY#SzYt zPrl3{3tX#!@?yU3H?y^D&cX4@aZJ9@10V)LN70rQ%rP7$aZi z&>2drvhrfS)vvX{!I8lcL%z(xUSn?(oe?@cYIjkoSd!|8TPPKKjlD^}%%M}Tc1dwC z-+TwzFvFUCz`h}0)7Q$t7G+Bloe?_!YqwXaSdx58)-c1G?Zb8>U(;8q3K%5eb{c~%Lta8bs{<=IJu(sMn>(0;X2WoyV|=GKX0JdLPF*s6}+blyK`o-q_8G&f%^YTtO>g8;i|EWjEuzha8^b!!9A+ohsNy}{A52p~s*lA*l9;X)3nS)wH z+xcURGj-;$Q&D}JV^8-7lNQmLgIYw}Icf}VLguj3U42{DylT)QI&)BqXgd#%;T6do ziu?<24Yi2Q9MmG(PN`$~gE9vr{-{NC=AahQcG@1p6P7s`J4h{}GY7SZHm|`LUc<~` zo{8!A7^p>b=AahQ=F1qvUz$1i_6fC!&K%St+I%u&_?9yV-(#T`(V2r8lZ*LM@^*2epW{z8K}nnRA#|ZIri2Dbyl5b5M(D8&jh^Idcy44vz9KDTP`@ zXAWu+ZF6IkCuh!KUQR{hdJ46O&K%St+UEEu-_M-G=D4DKJ%w6CXAWu+ZEMvi-_M-G z{Hs%hA+?Ck9MmG(*4$CPpE-wlwrfP=p1hrt7SWl5T14C4G0Iys=TMBkJW@)b7SWl5 zT149(ILccz=P=)AeMfCip2$gy=*&SaqHQl9_XFy@Y0L}w0a5p6cfDF4!&qs8+1 zt<0oFbmmBTA^Oj3t5N=?IfwZrrx@C#1$5@17SU!Sj`AUxXpmUU9kht9cVP=0vL0pm ziGx~1gTnk*)FN6p0J6&FZ6)hbmY-6nMRew%7SZ*-ZGl79qbxshP>blyK`o-|ecJ+u ztVdaX;-D7MnS)wH>-I`k*}Sb}J<9S^3blyN9MmFOmY}S%IftxAS$;~P7SWl5T13}7 zy#)?gkFxy4K`o*)2epWs z4r&oCOHfwXoI}>5EI*}Ci|EWjEuv)!$|{?4$a<9Jrxa=tojIsQv@AhcWpfT$kFxxf zLM@^*2epWnB`B+G&LQhjmY-6nMRew%7SXm=X*F8lko73bPaM=DI&)Bq=z2G~z#;2V zmY+DNMRew%7SXZrs}UIH*N*=AahQ^)_>X zL)N1#KXFit=*&SaqU&wu0*9bk# zW4gd$?_hPS)xL93i|EWjEu!maOO^9# z9Lg!)M9Tg|G~bDfB&es$MkzB(PnylMKiKlY>StP}Y%qWaaHgZb)grIX*ZGE|tyOvpp; z2x{r16suC^VEeG$Si+2`UUFw=zB(zz>Y5R3AGRC$GNO9PorC%6q!hbEM(A`EI}5dR z?uorCBiN#BX_hb}Y*&-N-Al!Mb?%8hI3w5xIx9!tkS`;u&)Yeeug*PTOJs!3N@0Ic zOQ)Eya593u#@=KJGeT#ju%no-PBCGrWdwVTy-B`|FdI(q(RBmU`RX z5!BL|B<$df;K<;JVF@$BEM)n@orC%6OcM5dMws2M?=3lkS~_9GDI+5|mN>>(!i=ci zW#?eNDv>znD}zd;k|~8+YA4lej^OCysALIqsnkwtFXhF2)qConIS0op$1(Xbhx%Ln zuDqD9MxjQ{oI_(uV@oO2(%jHko+CKIIr3S;Tq?~CX(}(~s~M|0&N(z=m7h|mrFBFt zKSyv*aIUa~xm4AU>v=I>t%n+Oa}KR;>R+W$OKYy?&K#jNSL0ME)Y49%HDHe5Oyvw_ zopL>@kJa;HzS_~Wmd!b;x7JgrrCn2N@*Kgr%{k8!=2B@b*NUmUn6Gw!?JaYT>U;GR zYFX64s6BFyu&4ojG09V?B@0SB_Z-0$hbs~5l z;iaOMMT(4y@|Yv+9TRj#Ge_9FGWsQ5Pob8@ z`izRxnIpJzaz$mkt?=h>@c1_elo#{0n59wiMsp5(uW0%*0ktfuYE%@|9AWP+`R|n| zg<2NtH7W*cjB5BGZJOTMBT2=0B{6Umnm%(t#~-fng6 z>gM&}ZpmGge9kcxCVzWbYoh1He92dI1Hs*ryD0fGg89}p*!k*;>T*VKf91YQK1U1% z=WjJmzj@Al$(K2}zjEItUq&$Bx-)d@gSu+FoDtlSxl<=TL56~xc7tv^U-A{*KyVM| z-cG)ZV0rERQSCm?SN9T^GlF|K_jd9*VkkI&_f>mTr+P47@)g}caM!0bK)#G%zI9J@ zzPiJ?oDsAWXg`q85ktZGTff>lJJo~vlCS6nf|dm>4)SFL^Q}9z^VNOV-)hbX+9I@3 z$mfWm;QVVO^=s_Ye(w2_FLTfqslB$ZRv=$Su)NiN=!B@&z(PG}z0j&5pK}a_$=~#r zmEn0YU-A{*K+xWy9Yns2V7}F=sb$|~$I1N+oktMZzUaGJd%lgRzKks`qB~1_s^u>p)x-94j~q~Wm4BQ}LoW3oB2rXd zqC+nAc!zx-eyHEsHpFz|jeS@7hCD|^N-fodj+{!Ve$jr*^bz&<4QeZPYAahGr!U?# zSv4o3rA+SZ zeYJ^0>$*^#>6x zrAszd%Sjyi#gOmWZ#=85Y~8J2Fzd8CPhT2q@;0KS_&zwHTTUvKjrO(84_`}oqL1^Z zS~TR+A4Eiow1^J5^v9X@yGws)zw51fm_N@wc1p2zaJqeu=Y@laB`u;0hkpIk`oqVS zwXVJ{=4-pPsJ>>luY5zEBO*mwM2B2Tb;~l({rib^)^U1lvh&|KbcP+LN)FQgcD%I8O8;$>Dzf)!1v9dFcN9n0eDtZKm ze?K)Ns6}+hrLF8&d)8-sy*o)9v>C!*BEFF4h)9tZ(IJ-}e3boW-`&e^h7I8hR|-AQ z@w{*Vv0Bn1x^QT%vK7epk9r?vE!cS+r>#cbAMLqXmxy{xwxvb1da#ztIcllwX_wyS zXwSt#M6IE7G%cdVp>{Hqb5uWrBdTA+N>x#(HHVGt`6VF_CmFljUV@cuT}>%uBOP5_FQdc<7z@I zYZ0yeTnO!+gjmudy42&&#lG^fYkA40va)uvL#OvE+jG@}h-EFJ zH4^{bevjp4Zyw&O{%GIp>e6?-Y~`z8L)}KS6tSOU|I?qeLe_K5@wz5zh4VSB8ghS) z=hK=vA(pg=E^YNyv#oAbzu#{6QEp2q#qQXq$isMEIEYx%BD!!qgk0)DM5L%BM2B4J@$dHC z=ej6f5gVTJ5>&0mNVy*z^sErbV>sQBPj#^Hn{0x&2X3TcbEaF7+TH zQlv$6$fX`Sr-$|J|jqWD0wDDWny$IR4EL zFD-~65T%Bp<*UTx70Dbeuck$Gk-uTTIJK_7IMvQLQ>=lNqKmi#lT|7r>Rpj*5#40f zNx#(yt50W+jo9njWv#v!tDQg32x`?+ife^jO7(KHFl0Aql$b|Y-<0)Hq7_>!w6sDl zHBSg?5smLP`W!qQv$pP#UUOOCvVXwUeIbQTX_!G6;A7w-~X$; zwyI5Ww(-2woQNeYqD#%q8e3ai9rm`uU0S=x>+~fe-Jg4%jE9IR#k7c?WYwcPblvqg zZEP9G5YY)@XG}mmFZBRowWLLKsmI&x*PxzMe+{axuVPk|g*;wf_9m-TM6{G?rFL}7 zNj)fUm%Lu8N9-SBuRgg^Wsm2j9zd*?w1_VCxP|>nrFp!3?D7_XzMhZ^2N98?yoe6D zaMaVC_jx_5d2Q={W%8cJmri~Dd^+7ZqNU_>X3I%!W#{wtQ|d1%xARBmo=Eu-#nGN` zBk2EZT12Y{&10|;kH)T@Gdw@lkbcULOU;Rh6qSVNkW1@oOlhQuqs}#N6OAd28fmrX zss|9mvX*;mD_Zr?@7-Nke<{{ZEK}S9&$1zxQV|g;sv*%KmzrxGfh99V8(D999Fep_ zE*wNeinMG_Oz4mc$0>KX!RFcaYq4r8i<9vyG26?T|}75~A!y zMGKK&ky9C0no;niDiX-XG4DCu2cWsx6%HcmT(gueB7_`W=cdW3hrFn=M>Vdh|I=$& zW6Df+yHruEE@#BDR_AZ;$+9gR=G9)Cui824p6V$zy3zA(&-d*A6S1si9+v5w9IA)r zpUo=wI#-L#YiPBtKIH6A&IoD|-DH(Y-WBtQdp+70n*2O4eO;$vRr|rM%#h0{F)!+2?YHXlX7%|9_dQlx?YZg!gwC}K zT12ZJ)hFW|)hA<5{S2tp!Q{R08o8Vh1Fh6$v^X?3Y{WZ<=7xGv9GVX{`aR$FT=f8A zSk@w196EK`S<0=9dbaGuVOEW9VolEXco{)0qMNKz>4d6tr~0G$`uvW?PpaamzJBM< zh?e4!9MzwgeTzPJ569ST=UO{E;p>a-xk{ybqKX)nwTM<*sV`tNs2_ZVtFz1cX_|xe z97P1R)O&#rS?I}AS!>>|4LsYj6OGxu*3DHs}JJGeOooKS! zO23e2{yra9?cUi>MLKiZSenk9bzBiqPou6ybd$w#Yx||xKfCa4&SAS({jHQv-e8~K z;%Kt!K}1Wjk^tRgap)EfHuY$2H7Z}TmOXA>EgEvEIT4W}Eo+|%9dhXpvl(=*^>Ni! zxGvez?YT+?gic<*DvP~o5v`h6|CP5@^GuC1!xZXuVN6A>w@2hkyy*0ugVXuYWUG1Qw8%h&z*(|d63xk?4Z%GUD*Eu!T; zf5ifa%G=OKyT&2!IS}AzT11zcE5agdpLzx`<{V|wo~s@}4AnztPxm~+BJ7>^Ts>H= za9>NR6+Q}4EpP9ekW1?l5h*G!(IJ<5XnzXtp!xdh7kh1W#utLybJYWgVOfi4)#FQc z^LmxfKgjE0wn2Tf@MssZN^*&_Z#OpiV)sGqC^Jj0) zij?izMrlibXwB71YV%`dcP#bW(S9eWTOcdNo<|C4B`x&;V$jMw*CJZ|p_8yyAaT@_ zu;*nKpiaUj7vEfw_qGt!BD%@SL2Is7Qll8E_ru4l)?cljDtkOH^#DRK6EiKfPdqPe zRaXXYt2(#6>~(IN>~^A7440?1#1YF{oqJcchm@UDXAeZy=;Yuj<^`U9kEhA1IT0H)rrO1$5w;BtWmxaX_xcotCg)K`n^>3;A$Chv?F@8`b$H^ zS`rAgNz?LmW#TTS(pvJwdw=*WTQi(}7oxPTt)hox-DSQ+hdiyjhhyDsDZYv>)Ld(# zB0nuM(`QukI(HFgX&O_^rO9etBC5~QwTN!AdeD6B8+p*xy0)wNH-uEfI=e=3gj{M) zM5IWI=#cf?Pep5-qx5!Gr<5AoV6va76anGSGlE(+UMF;uRdc(GTH6hiw^h9bu&14W zcS)rbUwf`n5kW6U(;`|N7WcYFq^#Sx%GX-dV^Y;VA(xsH5h>CN+gDm4m)4aJPM$UE zj)=zfdhi6%WR;4DmXb#X$HL?t3|mw_#8D+ND^tEjU%Nss^{D{MqB2uJ9bjXFnEV2!Juj*fKD_MN950!6|)mB8blxgfb zx{h5(uU5KwRiuUL(LBP+OMmCMR(rl@|DT9uEutkW`oUrvd=A=Jo!-yp$u#8BRzyUK z+JxwkOIy`*t#i~1Bi%$^ps_^Yz858>rM{UuyJ^FTjkby5D0KIEuu?X znZ2;7cl5e(_cOCnYCn4k<9VqE5ldP`7Y=zi<>|C~tZa5xe`^=<)K>27Z81MJ5Z34J zL6sKKO;+pH8%6K)HWK}o#PtGtw-Gs^82x^%%KB1een%8KuCSk`i{b49C8H5NxRDsE*) z&DwewV)Aq=<8nqUYZ0wkd%nf{Z0weo9BPw>c8^Xy6=~KIv7|+GXT|1k^$uCDl@qITGB|N2gY z_lK<=qgDr%-E3dKn^0{-E^S3bq)3bCkV{+XJr>-Ck9Kk}KEHjdQ3U2MDc=_H=YAVL zAzI25ndw@#iq@P|bBifD7*R+yj?8Pz$cpw{H78u>gH#o{;20y%V%mU z=c_H^&oiQ>xGzKJXxC~vsUBvx>-N>HzPfLRb?+9e_+-V(PA#oVM5IWI=#ce%x>59c z)SmK^)H9XIZUK%OrE>(eh;Fj#ArFrH0BWlmS>yAr#(Ry*H=Y*`B9^pN+jw4TUhhAg zquz5kN3~I$Bc2xyB9^q2Z#*v?W-YC4l@o{T_E9TM)f#PObB=gkIDk-$*G!A(!cljF z@N&x6v#-4B4&eP9a^WB%Qj}NSOB@|?;m{2LJQHqlE5&Roe?LR{hCD|^inPo+o6sSb zQrYd5-h=dUrM6K^Dy903P4?R?MDGwmEux#Oab>Zbdf(aSN0dtCt+5SW^N>qDh=`Q! z+D1;L9y-k<;+yuO!OHp3&Zici%)^pvEMU-B% zmfSa8y)AymaZg35IS`7WU(h029D0vTr>|0e{Z}VBk9DncMWu@8l7SfV%n2=`#UYPc z*zGND$t;=aW_&M2Jtf4jtVOgq6#amx7umJ;)O}>KUQODvkJVQDq@8KqkQD@CW-Rb|yft3n`JN^a4Xlj>2==W81iit*B^+Uvox z$MaGTAmT*twGAzmJ=Nuu=5s@PHdU|nm$fZ<@u+T`+{Hgc-o-glJLY^ZcMeIa}TuNoWzQff6DPNzT z1Le!8UU}zh&(-HdENc<1{X>ZAft)zR-q0TVQ@N`LazZR=5nbw`IbI{36jS7Lx_VM; zzEc#d*U6(3CIoA^j8;AD+&m#dOY9BpJ6z>fJ&0J+B0AN>*OH1b=1zOK#{#II+jI3t zt+^1|ofou-)*P(k%IA3k3)ehXWTvl8 zs-ewyo&87ggaC=NZvb@>exl zPO3-sWq3Vol~HMYrdl0Tey>M7FQp=4NlUej=cVTIkA+=gRz{78_Is61r&i_Lo~!0S z3}%ZgXc4V?=$5*kIrU!AsJmyeo3%XZlr4^UUg`maPN_33qDwu@$FSD>OX~9$w=~^` zTPggFI^B$$ta=bpZ^K=S=q9TkikQ^hvr#Dayjrh0R;@i32N3esYEK=--n59;JU373 z!RmXRI8?)i_U{^0?&^CD1UQ-&(WR~Ie51$#&DvF~`E>VhrO2KTkK~vT^otPPWVMx@ z1rLXRx5W;c6*fh>nSF)G!-N=?wTKpnb%WPIlHF8v`X)oE;d$MyKJ&e?M7oscMXrcJ z`a)1kzhjZn>W^)Xxt98X+}nu4p}e9b8W|xkaS+jdT_X@eZ*x#<8(r#T2wz8pHTM1Z zeuZQp>hoHvgh0&`qH$M_!3gZ{Jp9hb5=X6vI0osrl6Z^mqc>fidN7r$l)WHW!iL_i zIcrNq%SmN1)TaC!ZRKC?*k`*nxoA3K`np(IWtPyTb%iM$?JFL6l(grittP}^ZPf*P z(;|ACL#-QaVhES({D8djzwLVD{s?r8D?xHSViuJW`WMr>kewh9L#s#ABD%;oGyhdr zzvK0>FI=$ywp)CAlzsJ(JFUjYo%BtUk9JK~&539!M?0dMtoq&D?(L4PZ*$z@hmPx? z_qDHhzCZN9EA)Hs{&(kV@;0KS9O#K|vP$)F^Yy)^Mj?Il0oUuF_OpNM9RGdEpXq=6 znMa+Y$>JcQr5xyqZn8Mm_J-R}f1`Yx>Z-4~aew-0?{kj#|J#lGy|e$qIhrgEB3jCU zp6DivJbdDyAgNT;mJvgCTPU4U!^`7Q45y!h; za-;DNjy>D+z5LB@JYMN``u5JzuF2bomU6Tsy2&b)?u4K9miT7PO^o$jp08Tr{eb(L2jw$VgTi|8f`t?28w)VImM{+u5gU-p=P^Ri#= zML#@V<9ho2xuac^w-GJHYzCm4tkT}qqL41E-(mUUk?W85IPtHX<7=O}!Fcy4%0qOt zYqB_qXemcKqMIy^7g?mpN9xgD*L@|J+s2_k6kHGGPu#%legqwleq%H^%yCD_oVg5iKRJI4viY>h0ziJ*9p(>h$}b*Inyl&HfCF zqdgY~5!wgmTFN(`OMbaUVE=CYHm=RuKIZlxKk=&lTmR~F-ZxF&MzoXzJ<&~8sXE&~ zo^pP9L%OYSIi{Tv<{8ma4)jDfxpJ(*F~(YJ=rP_5YVtOsr5x=n-wEAh)%<_keb=?j zZdlo$?etx-8IE>e`quf~&tLZfZ>#oP97HT@5iO2G7B6vr{W^^G?SAz6wa@v|{_kJ% zLg#4D#R0@>S?g%mo{PgQnGI~8sUF-do4k!^DF^yiTepL1PAZkHiEFHhbv-}O+iEwK zHSuWIRibqKO;B~Z10=UO;)LFl&tHx8d|BcW!au@Av6*v>$PbSt$J9^H?^%)^EzIAWOOmE z+Vk306T(_?L5pZ{nANw2oj9$1nnlG?}VH6>bpT7 zdx`A^RaU8pXekGJqMNLm|AhIe$LgoP$=_UK9KP}CQD=jHUH`=Rt=~P@$lZy z#~EW^`t&beZT!!Z^?S=lyC!cVTFTLm=q9UFW+AU(Q`hmTyl!Io7aP9GdQL=3$s?R& z+Ps|h=H!R!_Y+&G4)h!uO%?|cEhX2s<)nJ(-6g&Ev$DT-DmvQH3TyHh6z2|rD2 zaQ>+I`i@g=_-v791nu+2=Vy_rg!T=6i}AW!jqz%hzMmlbIDgs+vdXFl5iP}c&U%{g zopU-_xYf6=cH$tPOn9BLoet70v8*3%y;jRITbUV=ZO&MIRFaTYb2|@ia31W- zdC<>*b)C{`ZnF5^WnXkS{;cvvhqhAt39=#%^bMg>5z$ie4$yL{9BXjY z{nhiWXWV>Zb&d&P9Ftbtck@oY!ry>+b8k`A()y>IESg=?Ao4;suZr#l%Y6&aBFd@# zWe)4j$w!twUb_&~;+Ssw@{PuQt;$ZVHuASiMFh3ls&r8ZYH{VurD}J=TsaT)ZGGJ4 zAc9(L)!s&^MdNhG{@^)rcd3|fw)z@oz)e2wMEXd#OVw`mvlgwW#-JV~f?AxL8PPo3 zoZFm(+od96c|Oh&ZL}*!Mo};tV{GZ&rQ+P?KEE45t!x1_jOJk6P0(gI(9{3W^vm5r zLr{w+vW(y?;#^@XWCTmad}*EUMo=r;?G2M_PAz)dn*MgpsYTl^BRHQqAK3~S!J0GQ zY$rBMt_QW~O=$Yt^`KVsIc$$z&S%ap)@e5f^UWvWhROAy7Ej1cf4d&kGW)7}^tS84 z*3DYsx!XqMHKUDuwn8pdPHBjI^Vcw5^XZPZ*@h}fyN_)8s(JRkG_8zom|Ri+BrNUa!y3F z6K_W3oQSYpX7b{&9yuo>XiXB4b0VVIqPbK#Cn9(fB1g{25JN$gIaqGJd3M_VT{3dC zlULTt+(fjqOhz!Lrmq>*PDL5PoE$L}oZCLrOeNY@>QS-C^I2XP6KzB}bvO z{X?g1^AxS&TdMae?)|7ECPyk{L>mqHCZ>%mahUgf4S)OO7iqI7-^6AFwK!9oEDpUV z44>t+bGDt#{g>DuiJ(?%H}_xGoZK^EUpIyix!!HMC$)MYd9v6>@MO|X6Yfu*Zb|)4 zc!N9P>a#l9@kHNbao8>LglH)|(fj@I8&{l<+x6h6X4%{B zvyEUqmdEi$A)4LB`EgN*X15*fh~8cEX15*fh|Y+%d$q5g>Q<)hR~J>PX6Z3n=%NtK z(qk0TMIoA{$6KI_LNrT{_buCqw%_I2wmoqh!9H)cA@2$=3ejvs-a%dzg0qY0+=Cpi z&C+8`(KZJW&C=s7z(pZASBTD~YWr)8J=eHuyY@B*=i2h_b5V$9GjdnEC%5Jy)~(*t%)y*;saO)C#TTuR5lkVX z*%Gx>6*jDyLWGT&$zE~gp+JVUjVrx_WoH@MB0e8cze-^L3~S~^w2j2+POs?;!4x8F zu1t5H8Nn1HY(`D-myQ?;ZdlvO(3i6%Z+N%gaBD2Xnt2i3?kTogmnlTpN;KVIHwM+5 zDMZ-%*vEaOBZh(-*0%0;`f8T?gIYvq4r&o?>+TdUo)JtTqTN$$*PJOt*zPmMojAu( znB2bVB7&bJvaP|J4F32nRDbc2}@Ii(@mJ;ioCa!NzAdx~vDPHBjCX4ppLl!oBR zBG)6QG(@{~*yhM74bg5Lwh=j{A*M-fbCM{l!h>?e|j$x}N<*|8fo()iX^3_s0K`yF zEM3ef&Z6ei2f`{etaDzCL$fQQNIWiljkxgX9L^I&ljSe5Nb(8MQg}-781b5uN@a1# zYs4W>K4e<@O%?|cErsU+kIbw&iNhjgH#N3ak+Lehwk;R(_LPzjz3iNI^(dv!T)PMGHMZh+jk##=!LI7zEe)FJ0X}- ze~-sGzJ9;s4n6jxcWnrV8I^wB&)*_eUeqGGD*Hc!zL=zMX?b2JfBy1^o_^ocU1m;2 z)&FZ8)FOKSHkUv2*_*z_(HX&%_ASn?zu_NV?$8D2{!K#^3gc*B^2}O9SLH&bZ@l_9 zMO5>D*}Lqa%iQ&wo-cDMss%S}s73UpUv%uD8{PUi>x=FFU`qXxl5>3Jk(W7i!Y!}S z5QW0(QNOD+(;~Vm`#*!edp&(`=~LIa^r1H$e?!lgITh7{8#dG;`h<5MbLe-^JgJpx z2n18wH=VlvCfC2@p?h5SR~n)KtR80T`qv56Ce$LjD*HcH^YVQk&+BeaSRML_2mgl4 z%&Djr+_0e*(W`rZzkk;w9^Ohd1cE6Rf#mTRD&f5z|K0w|w>-5W3c%`N-!+)NbV@Cv ztFr$y#4o*hUa!B;xB9Dn?lhN~Q&BCrVM8r@uibyMNTvGzCBEKY<*CnVr5Xak6nned zzgr^2!yfV<{S_}8Ux6yx`fpx+@``hg<*&awcFX@U1lJO-KC_i!C=k0hz$(Mlfb+j* z@Ba+?w)XVJUe0;05=AvQxB_sda&Bf0&K%B1&fv_!*~wYNd6PLfs?%J-+{_%D6CB|j z)0rcUIE?T#@&y?RZrE_Va`bV$72QB^EOCr+RAz*IbHKk!xIOxqlOu-U;20(P+Gl*R zzxD%O+D3aN8uT^I>G##BMRew%7SZ=S?X&$U&wu3tNBy>lr%;RN%t0-p?|ksw{)R7o z!vaVBPKl>bi|EWjEuv38{Ez)J9~Zx6S{us#v000+o>GhG%t0-pzkTe-`+qn=zuL3C zGPLicc0IL-&K%St`mxveNPo{aZWcJ~8;13_8M>ZYL}w0a5&hfW|3I(*&FfLWbm=M7 zB06(Wi)htB{Bw@_ZA?$07SWl5T12Za)Q)ow`zD}&;Z`ZsB06(Wi)f80jfXi$`#xOf zBQLaw&K%5(Xw40c>p4gLVveU!i|EWjEuuBYH9zMZ^&2~$LM@^*2epXSTBUVn&SAfh z<-d`k6lxKjIjBXn_HwP4bB^{s%g%TF&>}i>FfXEIVQ8(NbJVY)c?z|N&K%StS~ie& zojFJSu9~M%i|EWjEuv+=X~&y$)ZcdU6lxKjIjBXnTa~u=&N-?-+Eb`SbmpKI(XxAG z1+~qwbk5Pf#MJfFB06(Wi)fv1 zWhKu!+BY-1o?1j_4r&ptv$-tvIS0SwNiCu?2epWn$3SO=IY;~bAjq8&<^SnKni0%tH=?A-o0icTVR^YPPFh41xp41BSUub? zw~Q{hVPiGi=$u?jG9l*NO9*Sx{pi6tUm&cfre9tpg50?tHX8P0#1U=ds{YPXw8#<% z(d5e5|S@-*xEkEKEZr#H`te_VqOoHge4?j=CD0# zjQx)J+ODQ(;{^`eImg(Asbzbu;*b{*EIaGO66R8w1u%v+!Fa)5I7j6XsjL zJG#KZK49OFFLT(bXpFNH^R2&fyue{+wK2|p)UwkZehsRzOwrMv7kiT>Z2GFXojJ!i zzcODtrRp2s3#DSOu{X(=Iqd8_#yOn%>YLT_#yBx z_qmO!QGOY*Q%m1PmIq{BDvofDe3mem%I3x>zl`!?zWl|YjIbFy%F7}IwfN24jNqK$ zTww__!q$;dUKVjMUt16B*NwN^%2u~gJ`*9RmA`J>Sp2SNlm|ozYS~UOeWknUYm{)N zat5o+pP^DQ zU)%ks-)zVT+slv0J0S$M%qFS7*|1#?voMax*B}J76e*@ty`ED{Po5EGjUAEaKnQB(Z<066urV9)i2MLTP|IxH>6dAnzD9{zu19pL7lK-5 zPuJhI-LARW(?@hh7lK-Lr&oWWdmF)(lPfCQEtkry{3AM}i-Y;v{h)sH$)9J0ojs1| z#4QB1>Tf9^K0hn>xi=+r9&wes(@G>k`b9MK6_h^(dWbLwxq zt+;1!FJZeCWclw9zwYOK&YgkijNp3Cb)M*q;Cjw=p6HC=>daM}=#1d%%vGD{jNn?! zHJIp(;9AQynCOh)T5ERiv<4HM5nMUBq7t1ETsgU-5}grT2f02Hoe^9IxjrT|AQoSO z)spKY(E!+5!qt+i9nl%VRgJ41(HX&2jjJ8e8NpSJs~yo9!Bvf`9nl%VHHvE&(HX%t zifb3q8NoG*YZuWO!8M9&7ttBPHOl;a)7nM!gc!7cP%Hl~)$vD)W?SJDwX7(Gvi6lP ziBoI7COX1Eb1kBaT-bu6#MYG*M!Iap+^Ik+mHo}Nh$e@$%iHAfwfgG6h+iw%R~+dw zB2ub9z_sGtzB!`$EN1y;K9#5Z4V&sum?3gbrac5A-l!5g(JW!n4Mg=PI0vaC>bJYI~o6Fqund7&gSLOi`%xOXlno;jL_4M)8 zH`vTLn3E$+TYrOo!%KcDM_lP+&lo>)=KEZ(Cw-TTuGEG2`WK%*cF+Ecnbw8>>lx#- zuKV7GFm3$}`X$xr_i>1>=k^5zYs)&Zv?X^Dh~sTS)wE?AzP%V7ThrX zs*zSWwhz%0$Do?8(C+LH_J2lj{BXo@RAvNII5Ie5CWHyYhP}q#oXw94voD1_{MqAa zS329Qz65B&7|Jzt`CBVMq2-uSd1{(vKh&WP%#axEgr zoe|U``ez^hN8^c~E_@lm6e2GC>hs6b{@{ZPZB_kLo)FS$|&wbhW`cI&BCj?W7_`)^z#^>F63BeR1 z_W$_hOL5MlgklFWvE#^~~wNNB+-W{N#Ay1K#5D z!_NNXc$?3>w*DS{WAV2jm20UjX2>RpBhiS!VyOhy&LiIpZN6n<@bNc5k&7syx<4V8((ZjQGd`*|Df=Q;=ZGNSsaydEjvas#nYb80>N556#7_^k7sgM1Ump!xB!ANbOE z@3(x`wTLG7gfJn`D5A-i5!7P7SAW&NjZe7V=bSqus=v)^NG+l>f?7mh^49-89{R=- zNA=J-2epXK9MmHE+n@iB@sU^je5=P$aCU2n6e3PO?W^NEPF*Th^#XdSs718rK5cJEu&U@K6$G>~ozcj>Ds_M=3Qc;WOTqEbd6_ODAn07`qS}JKU+o#wTRB8I{oS|AMf>da|CnBrDDEB*BjG?QXP2OE5=Lw zX&LR*B06(Wi|BgCy1?=LPygBYfoGL@PA#Hy&989vSB;l?dHGFmBA8Py6}5=2_qYqC zy3WmCJ-+wjWxcAmx~@fZE)}(iuD8ew984kNoj>=Q@%h&(D|qH0f?Ah6?zQ9RPJ8PD zN4@p-6l%TkJ+B=PUt-B;S#P9gwPpQssmQ^6-+!yujsJD}pD&cE-rjo(wLbFl*Nu1h z>Eidz97Is-u+4y*oc)dkjv7Y&Hjnf*UqWA)>}oEc8c>jqns|5$(B89MmGZMqey&)MyG%p%&4ZgIYw>$5HBB z{yS`V)~6QH89_fxjfU_N@}##LQKKOoLG(o+N{pA=yF~9s)M$u;0D3o~MngD)=-mi< zriji6YSCv^BO{zIBhLEubH`T z=U;wueAKVK!VxS9OPCR4CxSUSVkkKOo{Zw&W@TrcGJ+|rQ;qOgsQD?+|I~Q!x1Q!H z)FQf+CrWkrq4pb!fBobcf;nZxogaMO*xmSvGX!(W^o;iun><<7XC1b=IZ6I1WE~FXx~Z(V2r}{ac&*{C zm3tS0TK9X+`QyotyvM~LsP(cF|8xB5Gk@)35Y&3?o4zqV>}K~}K-AbM9}Uzx=gQw2 z&pH1=4Kb9u3>$hm=sS7%?Y}#o{=yG0AechLUtH_L@lOA9c0<(WvU{}>zw0T~BHERw zQc;WOlmF(z@pD%`+&Cr#Q;2xNuYGU)@)zE@fM5y{PkHC}#LM@`J zvi~z|s73T+zWlxMN3ZaP#xd1{DMXB4|K50;(_XoNUhr%;RN zTn}myeeW~AJHFx-f4IQG6e3>mstd+%-fmbx)W}6op%&4(RMaB+UVrqR@%VQf z`iN*EpT#Zdt3wNIMJ=MqmpPc1MOO6@b4B!Sghg-l5fw&sM(7PX`2n;>5kYQ83~87TwlIWL?QUIP{jD?)+6MY7w0|s718J-1QN$nK>*HP~SXq4r&pd zIjBXn#SZonrJFe{&cNRSR6VFgbVg8%==Yp@dLMDU6JpTXZZR4DHlsMGMf8L)!DBi7 z9ZMlBma~tjS&P{0mm_7FFZnF~vX6M-%)t~QEXK1>F~Sw*@w-z=>~6~6%2f&NM#$d+ zmYg|QcDrNibt@n(q9??lnp;$tQ#s{#LHE$d@@-bBnf#}@`^HTKTzaV-y!aN~;cvXnb2#bgFFSdA_lrQ#r32n#L*QOU%QP#seI(_(h z$d@^YFt1S`ku^l`Mp%?h9}zo5??zbcPajc1L}!G>J?g93v)YGxB8)*2Ch~ z`iOxedN;zN>H3JXBRV7OW=!7*_wusrX65Vap%+sRi}C9tUXXm5gY~e;!#<)IiOvX% z5!H9vot<;VZsPigfzAlKAJo^T9l^5O$xdHdy_kAf%w->Ooh)JIU_Dq8q8%|5oX3k! z`4VB#pM6A|W)8bc)fcV3yezw&=JkE*To2=!zNhag%$I!5VcPl|Hq^44N_~yr(H8gG zN1ScZmAVjiJK5{)Nv&7ZBH9tAtv|CYkr&YxzuQN=a8dRD8iFZASX6NzanBjSl=^E0 zzL!{ZbRW^!CHLU4`}01cUf81MH_?~5Tk8&iU|!^~DDOVv&?gQZB1VoQ(IAs zXh)c~{_M<&yok2=_CBKHi*EVvu(3#&9+5Ru+0AdJZ!oudRM@aFk6<4+3g+w6Z;be@ zgLwz_iy;dhNb_>`;W4F_`9<}MAqxoe*7o7~rIz`3^;;kd2=i0-;q#^zErVQh?)20$ zpT2(oV}XMRYMG^^U-q~d1hvfK)313fv@SWQWp=23&EsMa)G~WozteFs2x^&?uixgl z7zDNKw4&eUxEKVrxbo%x;3|`}u!3ggK?JodzNC-X zmW;3%7X8+iuRheWsFyzCXLci~Wsx;~MD=8ZMepd>xtxPq7VpzXSOQG+6k+?w@VIkPaK1KkXl4rWM;2#B~Lr2Y3py;*qgU~ythj&qKj_%@33J# zSaw@;^}8~y9z!6whLeNb6NjOO4Yi2o&M+ZN$faUQc!Ql09IqDN-bWNXcZrPPoKCuALF| zC(+MDzKr0m&wTAYjehxU4*GiN10vsU4(7`8PdURMqM+^mLU($hp zhxuCkey{fzr+Hq9Y-O;oJ?kApr4V6n@bvL6P*wJSGJ;z6mQWvWC}jjo#ged28DY1S zz1|2^shF?5?bOGcRvBS$RP}mWPY7z+J6L_Z&9xgrEql+ak9W*6g6+e0W1TX>-agZ> zjCrY;uf4C<$D41v5!AAG;`(?WFC*AKY&VuLBkWDRUT^EEt(dR9+tK)?G$Yt+>`m4wBUlgS zYwxA@@lNb+1hwpK**@O8-Ho7@y^-6;yS=*+)UvmJ`*`CxBRDcRV%Q29!J0E)dwaQ$ z_n>zpsAX?R_wjwN-3V&g_r3b%FMqLA)Uxk;S)Z3LjqT>3mVNoFk8h#vMo^0}2pPc< z&JwbvSF0cT=JnRsxoPj;vy9bewYuLv*WGxo*_;roB`u;QuT~$u#V@U2`^Pu(uTw7V zOVY|5L_~_Thz_}M{O#XgX?=;e-Now>rBVvlu6SPR0mN!ai|E4fd;fII=H8F^b+1Rv zJEd?&#q+{J#F7@#h2uM4xbNovx47V-`Z7kJQaE-)o+Bbf>_mrLO7+XXbEoyIuXr`D z$C72Ce4};eh)9tZ(IJ;ooqNo0ZLWU*PaIY~-czHdl){Llkmra<5j)W#mr`Bo+fUj& zc;xwTY#?!|0!a>B67SV;n#_q<(u5&~rpi&sI7xEktDPku&qk5<97HT>5nVVgeW%B- zf8+kQ@;S&D^EgLKE9AmKM5IWI=#UGC_4iu6sIj|r5|UP|426S;NRbxNAs3FHI`h?s zAN>QTI7f^`rLcYCdEp>pNsH*h@!>l@esh)Iyp^xJvA-&XyK~5MM5KtF=#WdPva6z%{a&k>O#cA`Trr8?=XGY;P6 z=%dshL!4`r7cJR%K10|jX{VpiBD$2y+G-;!Ky4NFr&4HH#`CGICd85!(S_qZ54_dE zFWvF+UXLi1Qg|wg=Y<1^)shy`h2!a0J$3Vk&;RcGRF8;U^c3zg+q;x0&k(C6Euu?3_H3=X`U5`U<7&yPBCVLUg@cGlkrvS* z7Y?(1)@J+odd0U-;@uT#g$VLBx_4 z(S_sD-?-l94L9vK>hp+*R|@TfcwRVw7?!k%E*!79%#$|PfBab|i6bl-rEtXwd5(w_ zu@fC~Db>}i4%e{rfjGj-P+pu}Ar}rJB1L%-9dfPt51g{mYAuei`ji)=e?u-Dwi8T< zNKsxyhg>+`VdtCQwmuODSJ8N1N%@96M?{LWhz_}wO172RSUx}K%?xj?v_dW%L_~_T zhz_}M+{f13&!2gQw-w(2Xk zLoOWqX0r<=j_?5}h4U_+mwFJfq(yY$&>Xj!>+>T@rM%dpAr}rJB1L%-9dhANe_Jp5 zxQaKYl*0F};(6g9Vo8hW!eMLsVO!gsBis#E ztH<-gLBx_4(S_r(!&&cpk?rZKM~pUO0dlmb8d29JY$yQXUX-1VSlnpLkw4 zh*;7hx^U>6X8XDCgR!eAFIsvb7Y-sKMR^e&a^aAV!Oomsk2ujQh2Ei%=ZHuVJJBJR zQrQ{ju$^(7BUaJE(cVjq=QG5>RVK8EE~UD)?H!M}_iy?f3`<5SwC+QmBO*oYM2B2T z^?0kpHP1Z5`y)=N%8MtukP8P9k)pha4!Llszh#waT*a=Yy!eiDJf9<$w1_UH(%HjK z6wVO{rO=-g&kF|;OIk!1j%V7s{`sez@F1%oOeX$QgJsRf;sI*EY10OJ-D+FLGH{!#M1e5&cPjr z28@&bJ~pv5A8NOBVuKc77^s$jR>#GHaa6>U6K|N-y-RdPgq0xIK@ee2y*X6gimf8oe^<@lok=>-i-+V-ZnZT z!rGP=5#-*Dh`Y^gbVh`wFD)X-y&DmCA=~JT2v4K5h#>cFMA+Bc=!^)9URp$udp9C% z^=))U#A!lWM38$oBK*nQ=!}Tl3~3QT?u?)o(c!07PIhPhfKMEbvw`iY{_9m<68!d6 zJfF@6ff#IuoPHrIw1_So7SFIoJj3+sj@AeMTaD5Rxo{8>Dbli$F`+{)9Ciz^j(Y=} z&;I*!O0ju2{q|ivFC0WHX%SsG>dk1JqrB!yu|0hHWihtMY6Zlwq(yY$F#pvW{;R3% zHn;tE8>JO;sRt2}A}!V_U3MUj5fEr4@2*tKyl6)ApoAbjXFnqIcFc z-sk_;b$%h+Y-JgrgNmTApp(ujh^z=Yi7;w^k5ouO6xJ@bkr;^5fu%%b2fCSv0;4hs zG$=$ODk{=6?CAR*rli`i{gXwBqFL<}cOFDr4~(GhYhCL%`&u(=-lLm!-@p4>&-=_X z>(8uNYpwfvJ8wdsYCraKAt<*-5X&qoX=~K;+FLxY-OrY+dr3QgQc>8}NCJdvs! z*w*OlecE@0lE9;=q_M40GpP@ld#(OQJJC;`>L={y0a9*_BxX@b zTSMz`Vm`5*ye3bLo%S=;u+Ib@snh(uIl6NCkW;*ZCQd?XHiMJR{e=d)2M!JJIhd>>VNKMCsOWO1)=%G zQ&iH{=yPN@-LtDl-_FgDr^X-q`4*I0BZ*m5($=UaSoe75)y}n(r{)&+efqJ_1Rkl^ zOuJ6>NC_m@h>(-VOt{!Jc_Ee zeW$Ulp*iY!2HAdh^3)vJe*OdYnZP4;evgX6cCGZ>PEX@>?bggzJBdP3HGj3AV}Wgr zB=9I#(%9Chr{TAFe!ic(RDJ4pK9cfcp9wsQsvh!AW4l&bPZVow+c_rk)SS$IZVL99 zz$5jVDcWgl*Q&2cZ7nBvQRS+6vHfI9Y-=QeN4b*5wnnXIxW#&g{S4{6GO*7C9;sK~ zaHp|dtG@oK{m%2hTjQwx^eM`%5rkGDouZVNa%68cEEe zlD3AP;jmtmJDfc9!j+eDYXq^*qLQ{oe}dJ%^O}cgXH?0P-vQ;;2x9*RV@_tee_L;yVjhflsX>8Z3KVxa1qvlB3DPzi&?GoiDVwpuH?OOGfne98L z*QZ=LO2M{95_ps=X>4os)d~6>3q1gNYF>0d;fiu=Br%Ih+8Xsv!@a-Lpf?oSiBt0A z-Hvi=Br%Ih+8VV=?-uL&Hug^(ent7~(z?E#$fz3q?liVF>XU0-U;934F07s1El=Up3F@7WSFIqrCKk6ou_t zY0Xk!pSaSql!v>I2+FMy#4?LY+8TXrZTrsac}+VdTb}HHQf`eP)>%~2*61rUTmOnt zs&dslTsyH+QP|c<0*|7S#1)+}yMM@2&vEvX>?pTJ60@kJtx?~_J=T%6 z{--?I)5AU!c%)9hR8iQjRbS80?uoPpimK;>``K{V)<^=6awUyzje2|FL4V(1WoAOT zvdy6UL@cwYq+Kh$x1^q*?(N)t}I7L~L$Y6bSAzGho1uv?!>o*ZXVZjB^n zQAt~)uinx3v1acs=Xxl&Mi5%vwx3K&l=4z;jar5DkabIp=;g^VIpx*}Vx2`LZ4Ir- zP`^Rn2O}1FvS)#PCh$l-X>8X@^D$brB@KR2%9ZUav!+5es{lL<;)HC znZP4;?rMs{cCA!@|E>3Ioo6EpYY?w>8QDf9k(r*4KN8sj40Ist(B37H+5uFpvW1+r zKIhMo^Pfp%rcon_ygMg764_5oA~RhRvzFofIkL~0L~4&3N#qDS>5<6!&m=O_HNiMj zbx(REa?U%6)V?P2?vwOLFjiAdl1S}qBJXNRj|BI2X(W-_*97g-ksb+J7DXkI+Sddv z+>ss$`n!rsBDJpxMqx*KBX;>5*WrPf5-uSp{OKM z`5*U@uBaqZ`@Q9W<$Gl54@Nn^X;UT>`5;~n?*Oi;O~m7=h%kpvz^<^KoU8nr*eE%s+<^B3}D zzYY6L;E_7LNkw71R-gNPdpDzvIobPDp4?fLa%%*!%%YOE#tZ9RnK$^|*Oi@M<;lF1 zTO){N7L~L$ex}w;ywZE5tn9NZPwt0Hxix}VW>HC73J%`Z>x>`%Ehf>>u! zNn4}u=+Nc>W_waADtDeM zxX=EU-{)jEO?h&UPV6&*N9svqyH@(H{kPupD#=gFPTpL}t1s*kSxgj|8W|C@P86z9!g{{78=k=f@~2iPXL( z*v0%vj|3;qC@P86z9!iB{78=kXVfSviPXL(*d6^yj|6AbC@P86z9zVzAL)_cR2xMl zk=oY;EyIx>iSO;F=qM_Q)V?Ozf&EC21n1x=Dv8v-CfKw6NRI?3=O`+P)V?NY!;kbx zaMq5Zl1S}qg5JQ99tqCcQB)GCeNE7-InpD+={$-`BDJpx_Mt!0BSBlMs3cPRnqcSp zBRvwd^omL%wXX^KB1d{8I8jGYNu>5QL9gaWj|Aksb;51y@uOseMhb%m0xc3HCQvR1&FuP0*7)(j&n> z?TShwwXX?!#YcK4R`p&pD)rchUUa>iQO}+ACPcAow#c-c>UmS{UU(48EJ}GPw?^MD zqm9+_3g;K4yx3;~kD`*scC9}Bo|oRg(D$;)tD37%QP|c<0*|7S#oQ;E{UL*sj%!KK+XO>uQaO{#Sg1%EjG4QP|c<0*|7S#^$?4{BxRutuDViu*EQ0`iNN$s`tzyIldQW=dZSB_<|t&s#CHTsSx?YhdIUS3O-TO)~Cl=4z;jlT16`#u=`C|6$L z*w#n_k8&lAZH-!^fBR7FBc$(~|E_Z7tO2$)lE9-}Nn=|h*Nf)elF@|nQf`ePmRXeY zQf>|HA*?rr>SL@qYGib$yp&rbh-DU~yp&txwY4|ZbG0v^{#V(Xq}Qjslv^W-S(Nfp zZjE29^(DXC_lL_~QQn=g&jcQ+Cynh|_5J$VoaL;wRMgmVCV@v$Nn=~%*;Lo9G^@AVn z@8jeZ$0${KDYr%t%PdNHDYr)5;qG-$Z2R2t-<5}6jq+lj2|S8Q8r!w{NWK5@J@rnf zu3ct_@$H!>Pcg}Rxhr(_CM@H9k;#s(t)b-bXll zka_iCp9wrtPa4~``r_Je=?U*CyJSnxC{I%1gO5l9)v)FXh(I-n&|bt?P(_2!moY}^jf!qHj%xQrYNcFxSHreO5_ps=X>4os zU7FkH$eBiFHkFrhYa}s?QeMif@hxwB_hY};_v_1<#>`8(HIkS`DKF*Lc>Jwjc=(Hb zZ^N7gWY$r6DYr%t>nuunDYr&FMb=)d?SGY?tUKk_2x6T@DKF*L==ovjG&?@KN0IJ zDrwiMTAW+8QTlzX*#pRaH09O^VwpuLFXh(wntJB^r7!opuQ@xEGX>aZ0*};_#&)f~ zzRoxJSl_QNXJxZ*Nco9aXHlvN<*wC}wWGsx)gRUUio2+C<&#QmYb1e3xst}VhTaR; z+xOCdP_BI9ifxS~@F-W(*w%Pk^%39P_Y2RFJEKPBrQ8}x%%YT+a%)uo>Ou9d+HWxL zWO+ZQ+!{&DqLi0%Yt%UE7UQUmv+ZkywCN0bMPXYb2|S9bUf51!TcfV42V7TmHEjR$ z8=q`>>ss0#fBNI?oJq>9k;E)Yc`3I>|3$U`RsEi~Pp<#eG^mO4Qf`eTW>NW>tfBX0 z^!7_#R!g?|$x?rcrIi_J$We)BabK zpNUzNYC^edRVz{+u!bc)HKN;o{GI>SG$^-560<1frQ8}dGqIolQRBW%r)SGk^A{Uu zZ&PlKBxX@bTSNQ%#=PkE*$;l8Y1Bw)`?cSGs(lXZGl56yH3ziQ*sfK76N%s8_Q$t> zZyMF=Z|{B5-$(rhTltAtXHlvN<*rrT+i!7i-#BTw?%JEqDOMD=HIl%isJfr;G`2OW z9lX&FR;#vs!)rg<^5$=Xa%&_pi&9?7tx>as_n1%IzU?R8(lqi4$37Eyq+a8loyK;p zv{y#V!)-75mEUg~HN&?3<`=!aedpNLNCJ;?)!f@oV_T!oq%zO2aXN6#AZ$9*S$VO~ z1Rh1z+`>*{yH>qNc3bMN=07)`*Dg;zao;!vo^op>F^fvt8r9<5X``xT*`9vuKQxVM zm$tw8mw#^mE6S}A#5#*oUdpXewc7Wmt{&v}y083?rjhq3%Ja_ zkNUi*W;wU7U4OWJj%@oVw?-1PDCMQx8hsxY=Be9vpj>&!!L~*cc$ACpMp4+-=ubx5 zwM$P%p1i`b&jcRjO&Z&^>O0Ccje6R*z4%+-*sfQ;XXV8{6L=JrG`4HicS&m+H5;`p zAN-}Jkx|&zNCJ;?C5>&3ns0x=e0%navX4u-HIkS`DKF*LsArIOo=RWqr#n0syQt33Iw zVV?;+Qm5Tj6t-*CpBuE#k)JU8(Ue;wh;?)C%!_t)+F$d(NIOyH4v z&FStmwrf=@;%}^>&(Uc1qbWZVvnbVsa@VTX(BEPWed~WJSN86)t&s#C<)UAzC~Rxg z6UAFRgKWPEMb)hQ_TZ=9)c$YS)<^=6a`9VH6t*?$3GajcOn9wlDcft_^2(OCo&#^+ z_+2k=zYof-5rm#1pQ4nPa%=S6DQ`>7!_{-A?R`J=c+;rW0^6Vd{Y#q$<<PgJ@qThL2)4)Cxc%+^*wrkaQk7wI$9!9zH&WUY}B=9H~^D~OVwnpCpvwa`@Y892^Wy(*)KH8Rt zsH9!1dc*DB--**3Zrf|V{T1zhmDdvG)<|L&rM#3|qd$pjpCj*NTqVj&xix~&8*c4N z%qZoh+#1^dy07Kb%FH(RCQsI#a%&_pi%QxW%l@|xqlRo{a+I-$moXBv_Uf#WJk{*fd6(y0{*F^rdlOBoeAt#aA*Tn3; za{fNDx1B_4j~YqL##CnwX6WTfA~TH|NzBHEXN{cAOd>Ol8cEP1D{s;xk-fVlGSf9d z+b)fyM}j`5qLN7MYl1t@ksgU0jV6)W*F@f5Q zk?lv)BayS2Nu>5QL93=3COr~4>y$)lUlYtHOC#x#$XTu=Qu~@9_f)_tgomfQu~^q-96GHk+U^Pr1mwDeUYR`f;lABB#G3% zCbA!$^hhuRA&n$b`z8Mn8&5 zBDF^%qmpKPrA*6GyLde8`+jH_kM>MZ9`0)Dt5fcNdlIv#q^(gqY}{i{jy5KjhgvBw l_L;z=sQk3pu2tW?^{)Rx-ZQvIDT?wFvCg7Y6Utqy{|Ai3OO^lt literal 0 HcmV?d00001 diff --git a/stl/capper_mount_front.stl b/stl/capper_mount_front.stl new file mode 100644 index 0000000000000000000000000000000000000000..b2a3ff388227287c9cb9988b67562a7a4c1a45f6 GIT binary patch literal 390184 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 oyQ6 Date: Mon, 13 Jun 2022 08:08:42 -0400 Subject: [PATCH 10/89] Allow capper identifier in list of acceptable responses. --- app/data/cfg.json | 5 ++- app/lib/arduino/index.js | 9 ++++-- app/lib/arduino/index.js.map | 2 +- app/lib/cam/index.js | 32 +++++++++++++++++++- app/lib/cam/index.js.map | 2 +- app/lib/devices/index.js | 2 +- app/lib/devices/index.js.map | 2 +- ino/components/mcopy_capper/mcopy_capper.ino | 2 +- processing/mcopy/cfg.json | 5 ++- src/arduino/index.ts | 15 ++++++--- src/devices/index.ts | 2 +- 11 files changed, 63 insertions(+), 15 deletions(-) diff --git a/app/data/cfg.json b/app/data/cfg.json index 655a50f..e1642cd 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -179,9 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", + "capper_identifier" : "C", "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0" + "camera_capper_projectors_identifier" : "0", + "cap_on" : "A", + "cap_off" : "B" } } } diff --git a/app/lib/arduino/index.js b/app/lib/arduino/index.js index 42f0ec7..a1d36d9 100644 --- a/app/lib/arduino/index.js +++ b/app/lib/arduino/index.js @@ -100,7 +100,6 @@ class Arduino { //console.error(err) return reject(err); } - // }); }); } @@ -190,7 +189,8 @@ class Arduino { let connectSuccess; this.path[serial] = device; this.alias[serial] = device; - this.serial[device] = new SerialPort(this.path[serial], { + this.serial[device] = new SerialPort({ + path: this.path[serial], autoOpen: false, baudRate: cfg.arduino.baud, parser: parser @@ -242,6 +242,7 @@ class Arduino { || data === cfg.arduino.cmd.camera_second_backward || data === cfg.arduino.cmd.camera_second || data === cfg.arduino.cmd.cameras + || data === cfg.arduino.cmd.capper_identifier || data === cfg.arduino.cmd.camera_capper_identifier || data === cfg.arduino.cmd.camera_capper_projector_identifier || data === cfg.arduino.cmd.camera_capper_projectors_identifier) { @@ -316,6 +317,9 @@ class Arduino { else if (data === cfg.arduino.cmd.cameras_projectors_identifier) { type = 'camera,camera_second,projector,projector_second'; } + else if (data === cfg.arduino.cmd.capper_identifier) { + type = 'capper'; + } else if (data === cfg.arduino.cmd.camera_capper_identifier) { type = 'camera,capper'; } @@ -330,6 +334,7 @@ class Arduino { await delay_1.delay(cfg.arduino.serialDelay); try { writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.mcopy_identifier); + this.log.info(writeSuccess); } catch (e) { return reject(e); diff --git a/app/lib/arduino/index.js.map b/app/lib/arduino/index.js.map index e42e2b2..3e0d168 100644 --- a/app/lib/arduino/index.js.map +++ b/app/lib/arduino/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/cam/index.js b/app/lib/cam/index.js index c91f6eb..18074ee 100644 --- a/app/lib/cam/index.js +++ b/app/lib/cam/index.js @@ -10,7 +10,8 @@ class Camera { constructor(arduino, cfg, ui, filmout, second = false) { this.state = { pos: 0, - dir: true + dir: true, + capepr: false }; this.arduino = null; this.intval = null; @@ -80,6 +81,27 @@ class Camera { } return await this.end(cmd, id, ms); } + /** + * + **/ + async cap(state, id) { + let cmd; + let ms; + if (state) { + cmd = this.cfg.arduino.cmd[`${this.id}_forward`]; + } + else { + cmd = this.cfg.arduino.cmd[`${this.id}_backward`]; + } + this.state.capper = state; + try { + ms = await this.arduino.send(this.id, cmd); + } + catch (err) { + this.log.error(err); + } + return await this.end(cmd, id, ms); + } /** * **/ @@ -202,6 +224,14 @@ class Camera { else if (typeof arg.val !== 'undefined') { this.state.pos = arg.val; } + else if (typeof arg.capper !== 'undefined') { + try { + await this.cap(arg.capper, arg.id); + } + catch (err) { + this.log.error(err); + } + } event.returnValue = true; } /** diff --git a/app/lib/cam/index.js.map b/app/lib/cam/index.js.map index 8afb303..2a2fb57 100644 --- a/app/lib/cam/index.js.map +++ b/app/lib/cam/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cam/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,mCAAgC;AAChC,2CAAwC;AAGxC,2CAA2C;AAE3C,MAAM,MAAM;IAeX;;QAEI;IACJ,YAAa,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,SAAmB,KAAK;QAjBpF,UAAK,GAAS;YACrB,GAAG,EAAG,CAAC;YACP,GAAG,EAAG,IAAI;YACV,MAAM,EAAE,KAAK;SACb,CAAC;QACM,YAAO,GAAa,IAAI,CAAC;QACzB,WAAM,GAAS,IAAI,CAAC;QACpB,eAAU,GAAS,IAAI,CAAC;QAMxB,OAAE,GAAY,QAAQ,CAAC;QAK9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,MAAM;YAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,GAAG,CAAE,GAAa,EAAE,EAAW;QAC3C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAEhB,IAAI,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SACjD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAErB,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACvC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,GAAG,CAAE,KAAe,EAAE,EAAW;QAC9C,IAAI,GAAY,CAAC;QACjB,IAAI,EAAW,CAAC;QAEhB,IAAI,KAAK,EAAE;YACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;SACjD;aAAM;YACN,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAE1B,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,IAAI,CAAE,KAAc,EAAE,EAAW;QAC7C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAW,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SAC1B;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,IAAI;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,0BAA0B;YAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACzB;QACD,4CAA4C;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,KAAW,EAAE,EAAW;QAC1C,MAAM,GAAG,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAW,CAAC;QAChB,IAAI;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SAC1C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;SAC9C;QACD,6CAA6C;QAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;QAEI;IACG,QAAQ,CAAE,QAAiB,EAAE,EAAW;QAC9C,IAAI,GAAG,GAAY,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAW,EAAE,EAAE;YAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,aAAa,CAAE,KAAW,EAAE,GAAS;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAS,EAAE,EAAW,EAAE,KAAe,EAAE,EAAE;oBAC/D,IAAI,GAAG,EAAE;wBACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;wBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;qBAClB;yBAAM;wBACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,GAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAC,CAAA;wBAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;qBAC5D;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;gBACrB,CAAC,CAAC,CAAA;aACF;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAClB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;aACrB;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,iBAAiB,CAAE,KAAW,EAAE,GAAS;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,GAAG,EAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE;YAC5C,IAAI;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;aAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;SACxB;aAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;YAC7C,IAAI;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAClC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,GAAG,CAAE,GAAY,EAAE,EAAW,EAAE,EAAW;QACxD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;YAChD,OAAO,GAAG,uBAAuB,CAAC;SAClC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE;YACxD,OAAO,GAAG,wBAAwB,CAAC;SACnC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;YAC9D,OAAO,GAAG,8BAA8B,CAAC;SACzC;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC/D,OAAO,GAAG,+BAA+B,CAAC;SAC1C;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YACtD,OAAO,GAAG,gBAAgB,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnB,OAAO,IAAI,UAAU,CAAC;aACtB;iBAAM;gBACN,OAAO,IAAI,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,UAAU,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjD,OAAO,IAAI,iCAAiC,CAAC;SAC7C;QACD,OAAO,IAAI,IAAI,EAAE,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;IACpD,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,GAAS,EAAE,EAAQ,EAAE,OAAa,EAAE,MAAgB;IACjG,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAA"} \ No newline at end of file diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index c6baeb3..a246c12 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -501,9 +501,9 @@ class Devices { } } if (capper) { + args.capper = capper; this.mainWindow.setSize(800, 800); this.settings.update('capper', capper); - args.capper = capper; } this.settings.update('camera', camera); this.settings.update('projector', projector); diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index 9f04c13..93c9cd6 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,iCAA8B;AAC9B,2BAA4B;AAE5B;;;;IAII;AAEJ,MAAM,OAAO;IAYZ;;;QAGI;IACJ,YAAa,OAAiB,EAAE,QAAc,EAAE,UAAgB,EAAE,GAAS;QAbpE,cAAS,GAAS,EAAE,CAAA;QAc1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IACD;;;QAGI;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,SAAS,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IACD;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD;;;QAGI;IACI,QAAQ,CAAE,KAAW,EAAE,GAAS;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IACD;;QAEI;IACG,KAAK,CAAC,SAAS;QACrB,IAAI,OAAkB,CAAC;QACvB,IAAG;YACF,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SACzC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,aAAK,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IACD;;QAEI;IACI,KAAK,CAAE,OAAkB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAe,EAAE,EAAE;YACnE,IAAI,MAAM,CAAC,OAAO,EAAE;gBACnB,OAAO,MAAM,CAAC;aACd;QACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAe,EAAE,EAAE;YAC1B,OAAO,MAAM,CAAC,OAAO,CAAC;QACvB,CAAC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,OAAO,CAAC;SACf;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrD,OAAO,CAAC,CAAC;aACT;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5D,OAAO,CAAC,CAAC,CAAC;aACV;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,WAAW,CAAE,MAAe;QACzC,IAAI,cAAoB,CAAC;QACzB,IAAI,aAAmB,CAAC;QACxB,IAAI,IAAU,CAAC;QAEf,IAAI;YACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SACpE;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;SACX;QAED,MAAM,aAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI;YACH,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;SACX;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEzE,MAAM,aAAK,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YAClD,OAAO,IAAI,CAAA;SACX;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEzE,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,aAAa;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,WAAW,CAAA;QACtC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACjF,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACzE,OAAO,IAAI,CAAA;IACZ,CAAC;IACA;;IAEG;IACI,KAAK,CAAC,UAAU;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW,CAAA;QACnC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;SACxC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC9E,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACZ,CAAC;IACD;;QAEI;IACI,KAAK,CAAC,SAAS;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAA;QAClC,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7E,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACrE,OAAO,IAAI,CAAA;IACZ,CAAC;IACA;;OAEG;IACI,KAAK,CAAC,aAAa,CAAE,MAAe,EAAE,IAAU;QACvD,IAAI,YAAkB,CAAC;QACvB,IAAI,cAAoB,CAAC;QACzB,IAAK;YACJ,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;SACzC;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;YACvD,OAAO,KAAK,CAAA;SACZ;QACD,IAAI,IAAI,KAAK,WAAW,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;gBACpD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAC1E;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;gBACjD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACvE;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACnE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;gBAChD,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACtE;aAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzC,IAAG;gBACF,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;gBAC9D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAElF;aAAM,IAAI,IAAI,KAAK,wBAAwB,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAA;gBACtE,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAE3F;aAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAA;gBAC/D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACnF;aAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;YACvC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aAC9E;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;gBAC9D,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SACjF;aAAM,IAAI,IAAI,KAAK,4BAA4B,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAA;gBAC5E,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,eAAe,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aAC3E;YAAC,OAAO,GAAG,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAA;gBACjF,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,mCAAmC,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAA;gBACjF,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,gCAAgC,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAE7C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAA;gBAC9E,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,iDAAiD,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,CAAA;YACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YAEpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2EAA2E,EAAE,GAAG,CAAC,CAAA;gBAChG,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,eAAe,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;gBAC5D,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,yBAAyB,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAE7C,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAA;gBACvE,OAAO,KAAK,CAAA;aACZ;SACD;aAAM,IAAI,IAAI,KAAK,0CAA0C,EAAE;YAC/D,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAA;YACjC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;YACpD,IAAI;gBACH,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;aACpE;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oEAAoE,EAAE,GAAG,CAAC,CAAA;gBACzF,OAAO,KAAK,CAAA;aACZ;SACD;QACD,OAAO,cAAc,CAAA;IACtB,CAAC;IACA;;OAEG;IACJ,qCAAqC;IAC7B,KAAK,CAAC,GAAG,CAAE,OAAkB;QACpC,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,CAAC,GAAS,EAAE,CAAA;QAChB,IAAI,IAAa,CAAC;QAClB,IAAI,CAAO,CAAA;QACX,IAAI,EAAE,GAAS,EAAE,CAAA;QACjB,IAAI,EAAE,GAAS,EAAE,CAAA;QACjB,IAAI,MAAY,CAAC;QACjB,IAAI,SAAS,GAAW,EAAE,CAAA;QAE1B,IAAI,CAAC,SAAS,GAAG;YAChB,SAAS,EAAG,KAAK;YACjB,MAAM,EAAG,KAAK;YACd,KAAK,EAAG,KAAK;YACb,gBAAgB,EAAG,KAAK;YACxB,MAAM,EAAG,KAAK;SACd,CAAA;QAED,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YAC3B,IAAI;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;aACrC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;gBAClD,MAAM,GAAG,CAAA;aACT;YAED,IAAI;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;aACtC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;gBACjD,MAAM,GAAG,CAAA;aACT;SACD;QAED,uBAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC9B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;SAC1B;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;QAEpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;SACvB;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QAEjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;SACtB;QACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAEhC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YACjC,EAAE,GAAG,EAAE,OAAO,EAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;SAC/C;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACpC,EAAE,GAAG,EAAE,OAAO,EAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAA;SAClD;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1B,MAAM,GAAG,EAAE,OAAO,EAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;SAC5C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YACpE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;SAE5C;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IACA;;OAEG;IACI,QAAQ,CAAE,KAAc,EAAE,MAAY,EAAE,IAAa;QAC5D,IAAI,WAAiB,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAS,EAAE,EAAE;YAC9D,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;gBACxC,OAAO,GAAG,CAAA;aACV;QACF,CAAC,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,WAAW,GAAG;gBACb,IAAI;aACJ,CAAA;YACD,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;SACpB;IACF,CAAC;IACA;;OAEG;IACI,KAAK,CAAE,SAAe,EAAE,MAAY,EAAE,KAAW,EAAE,aAAmB,EAAE,gBAAsB,EAAE,MAAY;QACnH,IAAI,IAAI,GAAS;YAChB,MAAM;YACN,SAAS;YACT,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;SACpC,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAA;QAC9B,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,EAAE;YACjD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SACjC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;YACpD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACjC;iBAAM;gBACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;aACjC;SACD;QAED,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;SACtC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAGpC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACZ,CAAC;CAMD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,OAAiB,EAAE,QAAc,EAAE,UAAgB,EAAE,GAAS;IACxF,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;AACvD,CAAC,CAAA"} \ No newline at end of file diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index bcbdf15..edb763d 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -1,6 +1,6 @@ #include -boolean debug_state = true; +boolean debug_state = false; /* ---------------------------------------------------- diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index 655a50f..e1642cd 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -179,9 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", + "capper_identifier" : "C", "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0" + "camera_capper_projectors_identifier" : "0", + "cap_on" : "A", + "cap_off" : "B" } } } diff --git a/src/arduino/index.ts b/src/arduino/index.ts index 7c923bb..15bb09c 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -108,7 +108,6 @@ class Arduino { //console.error(err) return reject(err) } - // }) }) } @@ -198,9 +197,10 @@ class Arduino { async connect (serial : string, device : string, confirm : any) { return new Promise(async (resolve, reject) => { let connectSuccess : any - this.path[serial] = device; - this.alias[serial] = device; - this.serial[device] = new SerialPort(this.path[serial], { + this.path[serial] = device + this.alias[serial] = device + this.serial[device] = new SerialPort({ + path : this.path[serial], autoOpen : false, baudRate: cfg.arduino.baud, parser: parser @@ -253,6 +253,8 @@ class Arduino { || data === cfg.arduino.cmd.camera_second_backward || data === cfg.arduino.cmd.camera_second || data === cfg.arduino.cmd.cameras + + || data === cfg.arduino.cmd.capper_identifier || data === cfg.arduino.cmd.camera_capper_identifier || data === cfg.arduino.cmd.camera_capper_projector_identifier || data === cfg.arduino.cmd.camera_capper_projectors_identifier) { @@ -317,6 +319,8 @@ class Arduino { type = 'camera,camera_second,projector' } else if (data === cfg.arduino.cmd.cameras_projectors_identifier) { type = 'camera,camera_second,projector,projector_second' + } else if (data === cfg.arduino.cmd.capper_identifier) { + type = 'capper' } else if (data === cfg.arduino.cmd.camera_capper_identifier) { type = 'camera,capper' } else if (data === cfg.arduino.cmd.camera_capper_projector_identifier) { @@ -326,9 +330,12 @@ class Arduino { } return resolve(type) } + await delay(cfg.arduino.serialDelay) + try { writeSuccess = await this.sendAsync(device, cfg.arduino.cmd.mcopy_identifier) + this.log.info(writeSuccess) } catch (e) { return reject(e) } diff --git a/src/devices/index.ts b/src/devices/index.ts index 7eed24f..18aea67 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -498,9 +498,9 @@ class Devices { } if (capper) { + args.capper = capper this.mainWindow.setSize(800, 800) this.settings.update('capper', capper) - args.capper = capper } this.settings.update('camera', camera) -- 2.40.1 From 28dc19fc324fc1642c9fe1fdeae2ed21a463eff5 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 13 Jun 2022 22:46:13 -0400 Subject: [PATCH 11/89] Work on endstop functionality --- ino/components/mcopy_capper/mcopy_capper.ino | 46 +++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index edb763d..afa87f7 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -1,6 +1,6 @@ #include -boolean debug_state = false; +boolean debug_state = true; /* ---------------------------------------------------- @@ -24,6 +24,7 @@ Yellow - Pin 10 //Arduino Duemilanove const int PIN_SERVO = 9; const int PIN_ENDSTOP = 10; +const int PIN_ENDSTOP_PWR = 11; volatile boolean running = false; volatile boolean cap_state = false; @@ -81,9 +82,9 @@ void cmd (char val) { } else if (val == cmd_mcopy_identifier) { identify(); } else if (val == cmd_cap_on) { - Cap_on(false); + Cap_on(false, false); } else if (val == cmd_cap_off) { - Cap_off(false); + Cap_off(false, false); } } @@ -105,18 +106,29 @@ void identify () { void Pins_init () { pinMode(PIN_ENDSTOP, INPUT_PULLUP); + pinMode(PIN_ENDSTOP_PWR, OUTPUT); + Endstop_on(); } void Servo_init () { servo.attach(PIN_SERVO); - Cap_off(true); - /*if (!Read_endstop()) { - Cap_off(true); - }*/ + Cap_off(true, true); } boolean Read_endstop () { - return digitalRead(PIN_ENDSTOP) != LOW; + endstop_state = digitalRead(PIN_ENDSTOP) != LOW; + log(endstop_state); + return endstop_state; +} + +void Endstop_on () { + digitalWrite(PIN_ENDSTOP_PWR, HIGH); + delay(1); +} + +void Endstop_off () { + digitalWrite(PIN_ENDSTOP_PWR, LOW); + delay(1); } void Servo_angle (int newAngle) { @@ -130,28 +142,38 @@ int Servo_delay (int angleA, int angleB) { return (int) ceil((float) angle * servoSpeed); } -void Cap_off (boolean suppress) { +void Cap_off (boolean suppress, boolean force) { + Endstop_on(); current_angle = servo.read(); - if (cap_state || current_angle != cap_off_angle) { + if ((Read_endstop() || force) && (cap_state || current_angle != cap_off_angle)) { Servo_angle(cap_off_angle); cap_state = false; } else { log("Cap already off"); } + while (Read_endstop()) { + delay(1); + } + Endstop_off(); log("Cap_off()"); if (!suppress) { Serial.println(cmd_cap_off); } } -void Cap_on (boolean suppress) { +void Cap_on (boolean suppress, boolean force) { + Endstop_on(); current_angle = servo.read(); - if (!cap_state || current_angle != cap_on_angle) { + if ((!Read_endstop() || force) && (!cap_state || current_angle != cap_on_angle)) { Servo_angle(cap_on_angle); cap_state = true; } else { log("Cap already on"); } + while (!Read_endstop()) { + delay(1); + } + Endstop_off(); log("Cap_on()"); if (!suppress) { Serial.println(cmd_cap_on); -- 2.40.1 From 78f7ac0e68361cd389b82dcf76e6f47066681f51 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 13 Jun 2022 22:46:23 -0400 Subject: [PATCH 12/89] Mount work --- scad/capper.scad | 10 +++++----- stl/capper_mount_back.stl | Bin 138684 -> 138684 bytes stl/capper_mount_front.stl | Bin 390184 -> 390184 bytes 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 6bc6bec..8169ba7 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -5,7 +5,7 @@ include ; // https://www.thingiverse.com/thing:83806 - Lego mount (has dimensions of servo body) // https://www.thingiverse.com/thing:5241574 - Robot arm (just cool) -currentAngle=-60; +currentAngle=0; LensVoidDiameter = 40; //mm LensZ = 80; @@ -61,7 +61,7 @@ module Mount () { translate([50, 0, -6-3.01]) cube([2, 56, 2], center=true); } } - translate([0,R(LensVoidDiameter),1+7.5]) cube([LensVoidDiameter*2, LensVoidDiameter, 7], center=true); + translate([0,R(LensVoidDiameter),1+4.5]) cube([LensVoidDiameter*2, LensVoidDiameter, 7], center=true); // translate([80, R(MountBoltSpacingY), 0]) RailSlots(); translate([80, -R(MountBoltSpacingY), 0]) RailSlots(); @@ -174,13 +174,13 @@ module OptoEndstopMount () { module Debug () { Mount(); - translate([-CapOffsetX,-CapOffsetY,6.11 + 1.9]) rotate([0,0,currentAngle]) Cap(); + translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); //color("green") RailMount(); translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); - translate([5, -38, -11.8]) OptoEndstopMount(); + //translate([5, -38, -11.8]) OptoEndstopMount(); } -Render="OptoEndstopMount"; +Render="MountFront"; if (Render=="Debug") { Debug(); diff --git a/stl/capper_mount_back.stl b/stl/capper_mount_back.stl index 91f34034ae4c48fbe5e9c971c76d233673541bf4..9e14afb4651a897874e130ed95b487d02904ceb8 100644 GIT binary patch delta 19759 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 Date: Thu, 16 Jun 2022 00:29:31 -0400 Subject: [PATCH 13/89] Work on the opto endstop mount. This needs to be re-oriented before next print. --- scad/capper.scad | 47 ++++++++++++++++++++++-------- stl/capper_opto_endstop_mount.stl | Bin 0 -> 17684 bytes 2 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 stl/capper_opto_endstop_mount.stl diff --git a/scad/capper.scad b/scad/capper.scad index 8169ba7..c2120b4 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -25,7 +25,26 @@ RailSlotsD = 6; MountBoltSpacingY=40; -OptoEndstopAdjustZ=0.25; +OptoEndstopAdjustZ=2; + +module OptoEndstop () { + $fn=30; + Y=5; + Z2=3.64-1.75; + difference () { + union() { + cube([11.15, 28.25, 1.75], center=true); + translate([0,14,0]) cylinder(r=R(6), h=1.75, center=true); + translate([0,-14,0]) cylinder(r=R(6), h=1.75, center=true); + } + translate([0,14,0]) cylinder(r=R(2.85), h=1.75+1, center=true); + translate([0,-14,0]) cylinder(r=R(2.85), h=1.75+1, center=true); + } + translate([-R(6.1)+1.2, R(28.25)-R(Y+4.15+4.15)-3.65, 0]) { + translate([0,R(Y)+R(4.15),-R(1.75)-R(10.15)]) cube([6.1, 4.15, 10.15], center=true); + translate([0,-R(Y)-R(4.15),-R(1.75)-R(10.15)]) cube([6.1, 4.15, 10.15], center=true); + } +} module BoltVoid () { cylinder(r=R(BoltD), h=20, center=true); @@ -68,7 +87,7 @@ module Mount () { //endstop translate([0, -34, 25-2-2]) { cube([14, 20, 50], center=true); - translate([0, 11, -12.5]) cylinder(r=R(22), h=4, center=true); + translate([0, 11, -14]) cylinder(r=R(22), h=4, center=true); } } } @@ -158,15 +177,18 @@ module RailMount () { } module OptoEndstopMount () { + translate([-5,9.5,20]) { + difference() { - cube([14-0.3, 14, 24], center=true); - translate([0, R(LensVoidDiameter)+15+4, 0]) cylinder(r=R(LensVoidDiameter)+15, h=LensY, center=true, $fn=200); - translate([0,-8.3,0]) cube([7.25, 8, 24+1], center=true); - translate([0,-5,-9+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); - translate([0,-5,10+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); - translate([0,1,1+OptoEndstopAdjustZ]) cube([8,14,11.5],center=true); - translate([0,6,.75+OptoEndstopAdjustZ]) cylinder(r=R(22), h=4, center=true); + translate([0, 0, 4]) cube([14-0.3-0.3, 14, 32], center=true); + translate([0, R(LensVoidDiameter)+15+4, 0]) cylinder(r=R(LensVoidDiameter)+15, h=LensY + 10, center=true, $fn=200); + translate([0,-8.3, 12]) cube([9, 8, 5], center=true); + //translate([0,-5,-9+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); + translate([-2,-5,15+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); + translate([0,1,-3+OptoEndstopAdjustZ]) cube([8,20,15],center=true); + //pathway void + translate([0,6,-3 +OptoEndstopAdjustZ]) cylinder(r=R(22), h=4, center=true); } } @@ -176,11 +198,12 @@ module Debug () { Mount(); translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); //color("green") RailMount(); - translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); - //translate([5, -38, -11.8]) OptoEndstopMount(); + //translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); + //color("green") translate([5, -38, -11.8]) OptoEndstopMount(); + translate([-2, -38 + 2, -11.8 + 20 + OptoEndstopAdjustZ+.75]) rotate([90, 180, 0]) OptoEndstop(); } -Render="MountFront"; +Render="Debug"; if (Render=="Debug") { Debug(); diff --git a/stl/capper_opto_endstop_mount.stl b/stl/capper_opto_endstop_mount.stl new file mode 100644 index 0000000000000000000000000000000000000000..af7a271cfada766295e83e79765fb3be2f7777c9 GIT binary patch literal 17684 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 Fe*wZC6OI4? literal 0 HcmV?d00001 -- 2.40.1 From 62a66f5f6d0a245bf96bc5986a221d8e5a3192f0 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 17 Jun 2022 23:39:19 -0400 Subject: [PATCH 14/89] More mount work and start of endstop logic. Rebuilding the B&H projector unity. --- ino/components/mcopy_capper/mcopy_capper.ino | 12 ++--- .../mcopy_projector/mcopy_projector.ino | 32 +++++++++---- scad/capper.scad | 44 +++++++++++------- stl/jk_projector_knob.stl | Bin 37684 -> 37684 bytes 4 files changed, 55 insertions(+), 33 deletions(-) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index afa87f7..d59a97d 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -145,15 +145,15 @@ int Servo_delay (int angleA, int angleB) { void Cap_off (boolean suppress, boolean force) { Endstop_on(); current_angle = servo.read(); - if ((Read_endstop() || force) && (cap_state || current_angle != cap_off_angle)) { + if ( (cap_state || current_angle != cap_off_angle)) { Servo_angle(cap_off_angle); cap_state = false; } else { log("Cap already off"); } - while (Read_endstop()) { + /*while (Read_endstop()) { delay(1); - } + }*/ Endstop_off(); log("Cap_off()"); if (!suppress) { @@ -164,15 +164,15 @@ void Cap_off (boolean suppress, boolean force) { void Cap_on (boolean suppress, boolean force) { Endstop_on(); current_angle = servo.read(); - if ((!Read_endstop() || force) && (!cap_state || current_angle != cap_on_angle)) { + if ( (!cap_state || current_angle != cap_on_angle)) { Servo_angle(cap_on_angle); cap_state = true; } else { log("Cap already on"); } - while (!Read_endstop()) { + /*while (!Read_endstop()) { delay(1); - } + }*/ Endstop_off(); log("Cap_on()"); if (!suppress) { diff --git a/ino/components/mcopy_projector/mcopy_projector.ino b/ino/components/mcopy_projector/mcopy_projector.ino index 7983fde..b529650 100644 --- a/ino/components/mcopy_projector/mcopy_projector.ino +++ b/ino/components/mcopy_projector/mcopy_projector.ino @@ -1,13 +1,14 @@ boolean debug_state = false; -const int proj_fwd_pin = 12; -const int proj_bwd_pin = 11; -const int proj_pin = 10; +const int proj_fwd_pin = 9; +const int proj_bwd_pin = 10; +const int proj_micro_pin = 4; const int proj_time = 1200; const int proj_delay = 42; boolean proj_dir = true; boolean proj_running = false; +volatile int proj_micro_raw; const char cmd_projector = 'p'; const char cmd_proj_forward = 'g'; @@ -25,6 +26,16 @@ void setup() { Serial.begin(57600); Serial.flush(); Serial.setTimeout(serialDelay); + pins_init(); +} + +void pins_init () { + pinMode(proj_fwd_pin, OUTPUT); + pinMode(proj_bwd_pin, OUTPUT); + pinMode(proj_micro_pin, INPUT_PULLUP); + + analogWrite(proj_fwd_pin, 0); + analogWrite(proj_bwd_pin, 0); } void loop() { @@ -36,6 +47,9 @@ void loop() { cmd(cmd_char); cmd_char = 'z'; } + if (proj_running) { + proj_reading(); + } } void cmd (char val) { @@ -72,11 +86,11 @@ void identify () { void proj_start () { if (proj_dir) { - digitalWrite(proj_fwd_pin, HIGH); - digitalWrite(proj_bwd_pin, LOW); + analogWrite(proj_fwd_pin, 255); + analogWrite(proj_bwd_pin, 0); } else { - digitalWrite(proj_bwd_pin, HIGH); - digitalWrite(proj_fwd_pin, LOW); + analogWrite(proj_bwd_pin, 255); + analogWrite(proj_fwd_pin, 0); } proj_running = true; delay(500); // Let bump pass out of microswitch @@ -95,8 +109,8 @@ void proj_reading () { } void proj_stop () { - digitalWrite(proj_bwd_pin, LOW); - digitalWrite(proj_fwd_pin, LOW); + analogWrite(proj_bwd_pin, 0); + analogWrite(proj_fwd_pin, 0); proj_running = false; diff --git a/scad/capper.scad b/scad/capper.scad index c2120b4..86c279f 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -25,7 +25,7 @@ RailSlotsD = 6; MountBoltSpacingY=40; -OptoEndstopAdjustZ=2; +OptoEndstopAdjustZ=2-9; module OptoEndstop () { $fn=30; @@ -44,6 +44,7 @@ module OptoEndstop () { translate([0,R(Y)+R(4.15),-R(1.75)-R(10.15)]) cube([6.1, 4.15, 10.15], center=true); translate([0,-R(Y)-R(4.15),-R(1.75)-R(10.15)]) cube([6.1, 4.15, 10.15], center=true); } + translate([3,4, -R(1.75)-R(.75)]) cube([3.6, 15.7, .75], center=true); } module BoltVoid () { @@ -85,9 +86,12 @@ module Mount () { translate([80, R(MountBoltSpacingY), 0]) RailSlots(); translate([80, -R(MountBoltSpacingY), 0]) RailSlots(); //endstop - translate([0, -34, 25-2-2]) { - cube([14, 20, 50], center=true); - translate([0, 11, -14]) cylinder(r=R(22), h=4, center=true); + translate([0, -34, 25-2-2-10]) { + difference () { + cube([14, 20, 50], center=true); + translate([0, R(LensVoidDiameter)+10+4.01, 0]) cylinder(r=R(LensVoidDiameter)+5, h=LensY + 29, center=true, $fn=200); + } + translate([0, 11, -14+9]) cylinder(r=R(22), h=4, center=true); } } } @@ -178,29 +182,33 @@ module RailMount () { module OptoEndstopMount () { - translate([-5,9.5,20]) { - - difference() { - translate([0, 0, 4]) cube([14-0.3-0.3, 14, 32], center=true); - translate([0, R(LensVoidDiameter)+15+4, 0]) cylinder(r=R(LensVoidDiameter)+15, h=LensY + 10, center=true, $fn=200); - translate([0,-8.3, 12]) cube([9, 8, 5], center=true); - //translate([0,-5,-9+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=10,center=true, $fn=40); - translate([-2,-5,15+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); - translate([0,1,-3+OptoEndstopAdjustZ]) cube([8,20,15],center=true); - //pathway void - translate([0,6,-3 +OptoEndstopAdjustZ]) cylinder(r=R(22), h=4, center=true); + translate([-5,9.5,20]) { + difference() { + translate([0, 0, 1-7.25]) cube([14-0.3-0.3, 14, 32+4], center=true); + //lens void + translate([0, R(LensVoidDiameter)+5+4, 0]) cylinder(r=R(LensVoidDiameter)+5, h=LensY + 29, center=true, $fn=200); + //connector void + translate([0,-8.3, -14.5]) cube([9, 8, 5], center=true); + //bolts + translate([2,-5,-13.25+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); + translate([2,-5,15+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); + //main void + translate([1,1,-3]) cube([8,20,15],center=true); + //pathway void + translate([0,6,-2]) cylinder(r=R(22), h=4, center=true); + //smd voids + translate([-5, -6.5, -3]) cube([3.6, 1, 18], center=true); } - } } module Debug () { Mount(); - translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); + //translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); //color("green") RailMount(); //translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); //color("green") translate([5, -38, -11.8]) OptoEndstopMount(); - translate([-2, -38 + 2, -11.8 + 20 + OptoEndstopAdjustZ+.75]) rotate([90, 180, 0]) OptoEndstop(); + //translate([2, -38 + 2, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0]) OptoEndstop(); } Render="Debug"; diff --git a/stl/jk_projector_knob.stl b/stl/jk_projector_knob.stl index 731bf443d1966f84bbd519e79378a29233fd6dcf..d775c1cfb356a2e1f92ba50cb62567408307e8cd 100644 GIT binary patch delta 500 zcmWNOElitX6onIlKvW<|K#=e;3hTBq%Fo~%l&xbOK}=L2DkdN~34di2m_SS-DiEXx zfmpJMg&-zM_yhuhnD_(&fj}TC5C{YzhzbOcdheUubMABQjSiZkgQi-e%jFO9?Q6Nw zB`132;ImxM%76Riuld;9{7;7DN=eRya$8zXcFVs$%Bev)osvW9(^qm~LcT2HhbH|= z-lDhdi~JC@dowul;iTNrBOfN^=!Lwuyx`w`^WMWZIj(9BIXHD%W=7=Jck(0l|EN!= z-MIV{%xEHZ{8H{5j-4Hq|14q!YLWgO@a8h|)q-3G>k7YFqMVPRrzek> z(1v}~pxq1;YaL(a*T2jE(LNHR5yrkFa=@Ar@MW2?KOkQd?d-k$1K*an@*=+9U@WYn zS(bNGs$!p^Y+j0e%{G*aU7~dad4Ubo-pCjHE5zAlRF180VSC9Xp6IzJLI)`4OJMOv rSXV&V1|sn9K~mhAP9mW?2Pq(t@mQRU!V751VIp(IWq(^K1L8W2!bG(J%X@7Fh&r} z*dS~Wgf9q!AP9mW2!bF8e$u`7-1|STo4YK?T^8K@l>0s|#~UMuHS+ts91h7_Q*voS zo^O)N2IQv}`Kw*N;apuIr*`D}S^20>e&yZAI5_+FPB~jEA9DU}m9MsC)ydCrPA|x- zXoVqs@E4=E(jf0o$ZIq5Ql)${Dql>>$!WQ0N|_P)7@5Kz`3)N>sL#8x0(P1LtAaKe zd8wZfOye)y2Y6oXmGfW+{LnIQW2|W^xd%Vy XT|m>1a3&DFrs*7&WOsC{-KY2;aGTVx -- 2.40.1 From 4c13c54815432a85338a579841ef996cee74ee85 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 20 Jun 2022 13:00:40 -0400 Subject: [PATCH 15/89] Updates to endstop mount design. Had incorrectly positioned voids for SMD chips on the endstop --- scad/capper.scad | 12 ++++++------ stl/capper_opto_endstop_mount.stl | Bin 17684 -> 30584 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 86c279f..6d08096 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -193,11 +193,11 @@ module OptoEndstopMount () { translate([2,-5,-13.25+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); translate([2,-5,15+OptoEndstopAdjustZ]) rotate([90, 0, 0]) cylinder(r=R(2.9),h=20,center=true, $fn=40); //main void - translate([1,1,-3]) cube([8,20,15],center=true); + translate([-0.5,1,-3]) cube([8,20,15],center=true); //pathway void - translate([0,6,-2]) cylinder(r=R(22), h=4, center=true); + translate([0,6,-2]) cylinder(r=R(22), h=6, center=true); //smd voids - translate([-5, -6.5, -3]) cube([3.6, 1, 18], center=true); + translate([5, -6.5, -3]) cube([3.6, 1, 18], center=true); } } } @@ -207,11 +207,11 @@ module Debug () { //translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); //color("green") RailMount(); //translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); - //color("green") translate([5, -38, -11.8]) OptoEndstopMount(); - //translate([2, -38 + 2, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0]) OptoEndstop(); + color("green") translate([5, -38, -11.8]) OptoEndstopMount(); + translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0]) OptoEndstop(); } -Render="Debug"; +Render="OptoEndstopMount"; if (Render=="Debug") { Debug(); diff --git a/stl/capper_opto_endstop_mount.stl b/stl/capper_opto_endstop_mount.stl index af7a271cfada766295e83e79765fb3be2f7777c9..744959b0fba90040caf8c5d0753b476ce06103ba 100644 GIT binary patch literal 30584 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 literal 17684 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 Fe*wZC6OI4? -- 2.40.1 From e275539fb0cd5bf0b06c633ace5766724f969f54 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 22 Jun 2022 07:45:01 -0400 Subject: [PATCH 16/89] Remove endstop completely and start rounding surfaces. --- scad/capper.scad | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 6d08096..931a54f 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -56,14 +56,18 @@ module Mount () { $fn = 200; difference(){ union(){ + //outer cylinder translate([0, 0, 5]) difference(){ cylinder(r=R(LensVoidDiameter)+15, h=LensY, center=true); cylinder(r=R(LensVoidDiameter)+5, h=LensY+1, center=true); + translate([0, 0, 10.01]) cylinder(r1=R(LensVoidDiameter), r2=R(LensVoidDiameter)+10, h=10, center=true); } + translate([0,0,-(LensY/4)-(5/4)]) difference(){ cylinder(r=R(LensVoidDiameter)+5, h=R(LensY)-R(5)-10, center=true); cylinder(r=R(LensVoidDiameter), h=LensY+1, center=true); } + difference () { union() { translate([50, 0, -6]) cube([100, LensVoidDiameter + 30, 8], center=true); @@ -85,14 +89,16 @@ module Mount () { // translate([80, R(MountBoltSpacingY), 0]) RailSlots(); translate([80, -R(MountBoltSpacingY), 0]) RailSlots(); + + translate([0, 0, -4]) cylinder(r2=R(LensVoidDiameter)-5, r1=R(LensVoidDiameter)+5, h=LensY/2, center=true); //endstop - translate([0, -34, 25-2-2-10]) { + /*translate([0, -34, 25-2-2-10]) { difference () { cube([14, 20, 50], center=true); translate([0, R(LensVoidDiameter)+10+4.01, 0]) cylinder(r=R(LensVoidDiameter)+5, h=LensY + 29, center=true, $fn=200); } translate([0, 11, -14+9]) cylinder(r=R(22), h=4, center=true); - } + }*/ } } @@ -119,7 +125,9 @@ module Cap () { cylinder(r=R(2.5), h=10,center=true); translate([0, 0, 2.5]) cylinder(r=R(7.5), h=5,center=true); } - translate([CapOffsetX,CapOffsetY - R(LensVoidDiameter) - 4, 1.25]) cylinder(r=R(15), h=1.5, center=true); + + //removed, unneeded + //translate([CapOffsetX,CapOffsetY - R(LensVoidDiameter) - 4, 1.25]) cylinder(r=R(15), h=1.5, center=true); } module MountFront () { @@ -204,14 +212,14 @@ module OptoEndstopMount () { module Debug () { Mount(); - //translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); + translate([-CapOffsetX,-CapOffsetY,5.71]) rotate([0,0,currentAngle]) Cap(); //color("green") RailMount(); //translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); - color("green") translate([5, -38, -11.8]) OptoEndstopMount(); - translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0]) OptoEndstop(); + //color("green") translate([5, -38, -11.8]) OptoEndstopMount(); + //translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0])OptoEndstop(); } -Render="OptoEndstopMount"; +Render="Debug"; if (Render=="Debug") { Debug(); @@ -224,5 +232,6 @@ if (Render=="Debug") { } else if (Render=="RailMount") { RailMount(); } else if (Render=="OptoEndstopMount") { - rotate([-90,0,0]) OptoEndstopMount(); + echo("Deprecated"); + //rotate([-90,0,0]) OptoEndstopMount(); } \ No newline at end of file -- 2.40.1 From 2924efe39f8550e3a4ceee3372edd1ccea03b21a Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 28 Jun 2022 08:34:29 -0400 Subject: [PATCH 17/89] Reduce the size of the void for the screw in the cap. --- scad/capper.scad | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 931a54f..232db7a 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -123,7 +123,7 @@ module Cap () { } translate([0, 0, -4]) cylinder(r1=R(5.85), r2=R(5.5), h=4.01,center=true, $fn=20); cylinder(r=R(2.5), h=10,center=true); - translate([0, 0, 2.5]) cylinder(r=R(7.5), h=5,center=true); + translate([0, 0, 2.5]) cylinder(r=R(6.5), h=5,center=true); } //removed, unneeded @@ -219,7 +219,7 @@ module Debug () { //translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0])OptoEndstop(); } -Render="Debug"; +Render="Cap"; if (Render=="Debug") { Debug(); @@ -228,7 +228,7 @@ if (Render=="Debug") { } else if (Render=="MountFront") { MountFront(); } else if (Render=="MountBack") { - MountBack(); + rotate([180, 0, 0]) MountBack(); } else if (Render=="RailMount") { RailMount(); } else if (Render=="OptoEndstopMount") { -- 2.40.1 From c0f056cd8db626b6435a469ff04599cf86864e32 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 28 Jun 2022 08:38:11 -0400 Subject: [PATCH 18/89] Re-render all STLs for capper, removing the opto endstop component (for now) --- stl/capper_cap.stl | Bin 202084 -> 179884 bytes stl/capper_mount_back.stl | Bin 138684 -> 189284 bytes stl/capper_mount_front.stl | Bin 390184 -> 468584 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/stl/capper_cap.stl b/stl/capper_cap.stl index 64cd675ac05689c20282cfbd7ea2e65c70e9ef09..45f0e429f690a78b1f7e1b064d9ae283838b638e 100644 GIT binary patch delta 44316 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 ONQXSab9uC*0s8-&Jj&Go literal 202084 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%0A>H6B4>WHBf(WiCmH%KX>@ADU* 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 diff --git a/stl/capper_mount_front.stl b/stl/capper_mount_front.stl index 543ff1d4dc718747b68c134bdc9ecffc365cf566..89acd77edfe281313bb1dda9c57b6c26dcc827cf 100644 GIT binary patch delta 115463 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 Pr$V=o#p?fDcFX?*cF4I( delta 42232 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 Date: Tue, 28 Jun 2022 08:58:31 -0400 Subject: [PATCH 19/89] Remove opto endstop logic, ready for hardware testing. --- ino/components/mcopy_capper/mcopy_capper.ino | 55 +++++--------------- 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index d59a97d..3d1c147 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -8,31 +8,27 @@ Servo - Arduino - Red - 5V Black - GND -Yellow - PWM Pin (9 in example) +Yellow - PWM Pin (9 in this example) -Optical Endstop - - -Red - 5V -Black - GND -Yellow - Pin 10 +Using TowerPro SG-5010 + + TowerPro +as servos for development ---------------------------------------------------- */ /* ------------------------------------------------ * pins * ------------------------------------------------*/ -//Arduino Duemilanove +//Arduino Duemilanove + +//Arduino Uno const int PIN_SERVO = 9; -const int PIN_ENDSTOP = 10; -const int PIN_ENDSTOP_PWR = 11; volatile boolean running = false; volatile boolean cap_state = false; -volatile boolean endstop_state = false; volatile int angle = 0; -const int cap_on_angle = 153; -const int cap_off_angle = 93; +const int cap_on_angle = 153; // tune this variable to your servo +const int cap_off_angle = 93; // -60 degrees apart volatile long timer = 0; volatile int current_angle = 0; @@ -49,6 +45,7 @@ const int serialDelay = 5; Servo servo; //SG-5010 speed 0.18s / 60 degree +// //converted to milliseconds/angle const float servoSpeed = 400.0 / 60.0; @@ -105,9 +102,7 @@ void identify () { } void Pins_init () { - pinMode(PIN_ENDSTOP, INPUT_PULLUP); - pinMode(PIN_ENDSTOP_PWR, OUTPUT); - Endstop_on(); + // } void Servo_init () { @@ -115,22 +110,6 @@ void Servo_init () { Cap_off(true, true); } -boolean Read_endstop () { - endstop_state = digitalRead(PIN_ENDSTOP) != LOW; - log(endstop_state); - return endstop_state; -} - -void Endstop_on () { - digitalWrite(PIN_ENDSTOP_PWR, HIGH); - delay(1); -} - -void Endstop_off () { - digitalWrite(PIN_ENDSTOP_PWR, LOW); - delay(1); -} - void Servo_angle (int newAngle) { servo.write(newAngle); delay(Servo_delay(newAngle, angle) + 50); @@ -143,18 +122,13 @@ int Servo_delay (int angleA, int angleB) { } void Cap_off (boolean suppress, boolean force) { - Endstop_on(); current_angle = servo.read(); - if ( (cap_state || current_angle != cap_off_angle)) { + if (cap_state || current_angle != cap_off_angle) { Servo_angle(cap_off_angle); cap_state = false; } else { log("Cap already off"); } - /*while (Read_endstop()) { - delay(1); - }*/ - Endstop_off(); log("Cap_off()"); if (!suppress) { Serial.println(cmd_cap_off); @@ -162,18 +136,13 @@ void Cap_off (boolean suppress, boolean force) { } void Cap_on (boolean suppress, boolean force) { - Endstop_on(); current_angle = servo.read(); - if ( (!cap_state || current_angle != cap_on_angle)) { + if (!cap_state || current_angle != cap_on_angle) { Servo_angle(cap_on_angle); cap_state = true; } else { log("Cap already on"); } - /*while (!Read_endstop()) { - delay(1); - }*/ - Endstop_off(); log("Cap_on()"); if (!suppress) { Serial.println(cmd_cap_on); -- 2.40.1 From c0ec81c0f9880c56cf3c888105ac2a450020989e Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 6 Jul 2022 14:42:16 -0400 Subject: [PATCH 20/89] Add Servo debug script --- .../mcopy_servo_debug/mcopy_servo_debug.ino | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 ino/components/mcopy_servo_debug/mcopy_servo_debug.ino diff --git a/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino b/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino new file mode 100644 index 0000000..4788f54 --- /dev/null +++ b/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino @@ -0,0 +1,36 @@ +#include + +const int PIN_SERVO = 9; +Servo servo; + +/* +---------------------------------------------------- +Servo - Arduino + - +Red - 5V +Black - GND +Yellow - PWM Pin (9 in this example) + +Using TowerPro SG-5010 - default 93 + TowerPro MG-995 - +as servos for development +---------------------------------------------------- +*/ + +void setup() { + Serial.begin(57600); + Serial.flush(); + + Servo_init(); +} + +void loop() { + +} + +void Servo_init () { + servo.attach(PIN_SERVO); + int angle = servo.read(); + Serial.print("Default angle: "); + Serial.println(angle); +} -- 2.40.1 From 18dbb72a543430816fca05a4a75cf7f8e5c74a8c Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 6 Jul 2022 14:42:53 -0400 Subject: [PATCH 21/89] Minor updates to comments --- ino/components/mcopy_capper/mcopy_capper.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index 3d1c147..a677500 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -1,4 +1,4 @@ - #include +#include boolean debug_state = true; @@ -10,8 +10,8 @@ Red - 5V Black - GND Yellow - PWM Pin (9 in this example) -Using TowerPro SG-5010 + - TowerPro +Using TowerPro SG-5010 - default angle 93 + TowerPro MG-995 - default angle 93 as servos for development ---------------------------------------------------- */ -- 2.40.1 From 76799bd66d33fab092c221a02027197126660316 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 13 Jul 2022 08:28:18 -0400 Subject: [PATCH 22/89] Capper work --- data/cfg.json | 4 +- src/capper/index.ts | 107 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 src/capper/index.ts diff --git a/data/cfg.json b/data/cfg.json index e1642cd..52b86ca 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -183,8 +183,8 @@ "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", "camera_capper_projectors_identifier" : "0", - "cap_on" : "A", - "cap_off" : "B" + "capper_on" : "A", + "capper_off" : "B" } } } diff --git a/src/capper/index.ts b/src/capper/index.ts new file mode 100644 index 0000000..4c324a3 --- /dev/null +++ b/src/capper/index.ts @@ -0,0 +1,107 @@ +'use strict'; + +import { Intval } from 'intval'; +import { Processing } from 'processing'; +import { delay } from 'delay'; + +/** class representing capper functions **/ + +class Capper { + private state : any = { + capper : false + }; + private arduino : Arduino = null; + private log : any; + private cfg : any; + private filmout : any; + private ui : any; + private ipc : any; + private id : string = 'capper'; + /** + * + **/ + constructor (arduino : Arduino, cfg : any, ui : any, filmout : any) { + this.arduino = arduino; + this.cfg = cfg; + this.ui = ui; + this.filmout = filmout; + this.init(); + } + + /** + * + **/ + private async init () { + const Log = require('log'); + this.log = await Log({ label : this.id }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + + /** + * + **/ + private listen () { + this.ipc.on(this.id, this.listener.bind(this)); + } + + /** + * + **/ + public async capper (state : boolean, id : string) { + let cmd : string; + let ms : number; + + if (state) { + cmd = this.cfg.arduino.cmd[`${this.id}_on`]; + } else { + cmd = this.cfg.arduino.cmd[`${this.id}_off`]; + } + + this.state.capper = state; + + try { + ms = await this.arduino.send(this.id, cmd); + } catch (err) { + this.log.error(err); + } + return await this.end(cmd, id, ms); + } + + + /** + * + **/ + private async listener (event : any, arg : any) { + if (typeof arg.capper !== 'undefined') { + try { + await this.capper(arg.capper, arg.id) + } catch (err) { + this.log.error(err) + } + } + event.returnValue = true + } + + /** + * + **/ + private async end (cmd : string, id : string, ms : number) { + let message = ''; + + if (cmd === this.cfg.arduino.cmd.capper_on) { + message = 'Capper set to ON'; + } else if (cmd === this.cfg.arduino.cmd.capper_off) { + message = 'Capper set to OFF'; + } + + message += ` ${ms}ms` + + this.log.info(message); + this.ui.send(this.id, {cmd: cmd, id : id, ms: ms}); + } +} + +module.exports = function (arduino : Arduino, cfg : any, ui : any, filmout: any) { + return new Capper(arduino, cfg, ui, filmout); +} \ No newline at end of file -- 2.40.1 From c33c6e24f68bbafa990f5cc2bd7d7be55e4257b1 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 13 Jul 2022 09:01:25 -0400 Subject: [PATCH 23/89] Work on motor rod --- scad/motor.scad | 5 +++++ stl/motor_rod.stl | Bin 0 -> 779684 bytes 2 files changed, 5 insertions(+) create mode 100644 stl/motor_rod.stl diff --git a/scad/motor.scad b/scad/motor.scad index 0caf0d8..f41b078 100644 --- a/scad/motor.scad +++ b/scad/motor.scad @@ -522,3 +522,8 @@ module bolex_stand () { } } +PART="rod"; + +if (PART == "rod") { + rod(); +} diff --git a/stl/motor_rod.stl b/stl/motor_rod.stl new file mode 100644 index 0000000000000000000000000000000000000000..0bdb2b97e9d99e4c31e94a372e18a50852bcca6c GIT binary patch literal 779684 zcmbrn3*2vGng73H@7-o&=M<5rtp=rH+Y!nBuJw$V4#-pvDLLd6Vmk~ul+}qEDm9XM zC{iO+DyJgs?^@p{%9M^8)wDAdh7zHZQ-0Uyy07cLKll2sFaOu;|Ge_-tF^B8{kc!; zKCkt>aoNE~y?Mv!*DTug=z|VEa@FGh@6WwE6vbx0JhlAWmWu`m>yASoYubB$HaumW z`$vB}@9#~q_MXF{n3{DP*K@+}z>8_Oab1Y3_AC#1_kt1{*KYWuX8n`SZ4lOvuljXU z6t(;}HS4x%5aD;=#kAW&bE71dxbw}VDTSgcfoX|sdI7MGk> z&O2bwrAUXTJcL!WxE8#E9j-GWw_EtYi)pt5efTl=4px5NL6Rr4gd460n~6Rzrh~>^AN^+aDhF=dFMAUs=2-mL% z4dfG2k3=9P^3&=asZ&UC2sd00HW3ACUe}B1pdqmuNIFyl^%k`bcO)i_q(e3QdQ68C zMV}YbL1Xt*uNkiS)KL;{0YdW!cO<7vFAu*SG>EACyqFFeNCVQM8WL~B3}Nw8gT|{j+_?G6!#is_GWY92gNVA%i|L?Y<>7gS zGEfaG1Jyw6a6M=+(dUJ5{d&+qJ0k6gr=#(7__Km=(Z1k%&|sp^D}5$%F=>3PcKH*NvAHNiHp&7yEY9eiF{bjo!dOdl*RO|k5CLe+D})=a2m6sZ+m!eZ z5yCk1S{X$mEc}cA4==Za1`~b8_OgNBTj zFmBg$c&u=T`z5~~G??h~VmfF@%Yg9}G-|KyxMQVh`IDZ4q9CH^^I|$^NbU~Mvq3}R zt7CQC;pfh;hjb88^m#EIG^{47hQ|tbET=Ucem!Uqkv+BU#dOfH8Dt~r@OiD4IhUH- zK_erqmLM$e6XE4{(6AAJ_8;CGz{`3#(auNxMZpAnG3|EHu-w&jSnf)`>GKiC>V7?> zg9$4sO}Tq99W<<0)BfDlmEd0A?V!Pg-$7VRyB##F$C0>e3#T(k+_8R1%iQ{vV0*6y z0;4{iL8`jVKba01@C-jS)-f=T(y(}jB1=UDaTMLz+w& ztr|?{gp?Y!eX6GfYfmPOX2R^m)R>i)sEx=ICUWgbgwYx<)5#xs)ziW$!P=7vqnS`U zC#>geG#xYxW9`WV_q(juA;SOVxl@SA+F^b*UayP~MEE~G4$_%r4`DT&?$|g%aSll@ zNKIrS8-=L@(?&=NyHAv-L!V93?jek3BG~F1erdhZ{sUn#k!epPq-LZR&PKI8v9fU@ z?l56?^Ynz&SBx?>?o3mp!gJmoSt?<4j|OVIw+v=8p?0nzEda)C7M9ZH#UUj|+p9y zFu~fB37_{PhD_&#t$3*h6RbU%@bxliFdc~+HIcnoPrO=qg2un-`NNNoCNTcsae~`E zE>WTe<99T*G^g^AT%)MB-D1&Td)WaxLA;7PHySRwec|j@N1a@?D}Q!)@J$P6&v@1; zm0u6B*-nU83&CDY!*)6nLlEXQAdLYuj8Hoe600F%Wg5{-VxqLgO6{UJ@t&W5>l^EC zzkH7yP74|m$RYPEoV@^X|NcgUjU`Pv0hK?$bXOet4Hx{cin@n_v8C=kkT?99P}(pQo0` z9=OKr*^eAwo&E5>Xs|mKEEl)<39WFT~KjHo5YIs=Z~0 z^3T6Djrz*tL_-L^!vyS%DDINozNrs=Xn;H0ed4Ne`A-+jzUb_CRp(uHZ8?AY1)6fV zLppwIMAysd1I|9Ya=R$LcjcB>?|aHM!%AlL(C|9C>|ai*immS->^ieBru?Vx^xA%f z5Q{s6=MTI*O^KNQp=*Ype)6c2!(}~wRx};;VrfTqk+n;BNeUaJcE>*-Ruwm1-`x4x zRXrE+)eAkTTj;lj)HxQ2$5-?#6cOVM6weB~0gi9@uBd3*Jr*ZurkYpu8a(l<*hYAu|4 zG3~V-EqKT)X+@W!73DijsBQg9h?V4SBe^@Y+$~>l;3~29{q3gtYD@0w^`Ido*hmQu z5fb#Zm>8?A|G!@C5B6w+~~5gabk;WTWtyU;6&J2#E7DxE;v?%|^M@mMWd z%X=Kt(7NkA3)8NFkV0O8*k|rGnTE#-8mw0o`<^no`bDy<_-0w@gcn-N1XHaxj{zHt9mP; z?R-f2%Z*?!reQlBQZ7Uz8q1B4mBLlCHp&RS9yGAW0>Z-8mW*j`yJAf&r6x8Yq$W1# z>8-{z*Z*aX*Tm*I+xt^1HL;YMm=RVJ)e9j>O(a5UVktGT;c!{cYK&@!l;0*JjP;Ja zcW7;2`Q?9qwx;~B_kW@M!D_*lHc_vKl!I7b2!!iiOz(5jyDPsQi4ugjucXmH!w9t# zfmoS_-s#e4sS#2jq-}4cZCAqMYi)bE-Zjsj6?#s?_VzgTIF0l; znFiCW7c^|V+xY19l^>a>x$7+_G%()9^^gu5?`oO57t`K8hIUt&TE?OS8H?&uE6;XA zZApW+#GZ4#9><~s8H;+$pk9cH(_TwLdxdyO>obtCXvue&fQ>qxh=03c&*rwH7ic;> zg*X4-QPuqF{BnaY&5NV{nDV-in*JZs_HzB<{DGb7)f#K>zRi(BJaJ^M!8Gf|+%0AP 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

Lk0PaLXG(XgFoMBHkbKBlN6cuh6+u7;t@07=Q_ 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 sGVCe(SkJbm6QQm`pvH9Vr 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

Wex&b2&4c%Cmgohq38apW29Fe}FSHgEMovb7nH1 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 Y>G?Wei*W13ts3WR5uUH}IlAlqe?(;8JOBUy literal 0 HcmV?d00001 -- 2.40.1 From 8ec5816364d68f30869c700169f9714997dba149 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 13 Jul 2022 10:15:47 -0400 Subject: [PATCH 24/89] Adjust settings page to support Processing input --- app/css/app.css | 3 +++ app/less/settings.less | 3 +++ 2 files changed, 6 insertions(+) diff --git a/app/css/app.css b/app/css/app.css index 7c6359e..770f11b 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -650,6 +650,9 @@ button:focus { ::-webkit-scrollbar-thumb:window-inactive { background: rgba(0, 0, 0, 0.05); } +#settings h4 { + margin-bottom: 1px; +} #settings > div { width: 300px; margin: 0 auto; diff --git a/app/less/settings.less b/app/less/settings.less index 9303294..8ed0b3b 100644 --- a/app/less/settings.less +++ b/app/less/settings.less @@ -1,4 +1,7 @@ #settings{ + h4{ + margin-bottom: 1px; + } > div{ width: 300px; margin: 0 auto; -- 2.40.1 From 70c2c695f0e0fd153e73e4dca5ddc49c418273e3 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 13 Jul 2022 15:21:26 -0400 Subject: [PATCH 25/89] All capper work. Need to wrap all actions in the 'b' command and push functionality to a lower level to prevent unneeded complexity. --- app/data/cfg.json | 4 +- app/index.html | 4 ++ app/js/app.js | 2 + app/lib/arduino/index.js | 4 +- app/lib/arduino/index.js.map | 2 +- app/lib/capper/index.js | 89 ++++++++++++++++++++++++++++++++++++ app/lib/capper/index.js.map | 1 + app/lib/devices/index.js | 20 +++++++- app/lib/devices/index.js.map | 2 +- app/lib/ui/capper.js | 57 +++++++++++++++++++++++ app/lib/ui/capper.js.map | 1 + app/lib/ui/devices.js | 3 ++ app/lib/ui/devices.js.map | 2 +- app/main.js | 5 ++ app/package-lock.json | 9 ++++ app/package.json | 1 + app/src/index.js | 2 + app/src/lib/ui/capper.ts | 83 +++++++++++++++++++++++++++++++++ app/src/lib/ui/devices.ts | 3 ++ app/src/lib/ui/grid.ts | 3 +- processing/mcopy/cfg.json | 4 +- scad/capper.scad | 6 +++ src/arduino/index.ts | 4 +- src/devices/index.ts | 19 +++++++- 24 files changed, 318 insertions(+), 12 deletions(-) create mode 100644 app/lib/capper/index.js create mode 100644 app/lib/capper/index.js.map create mode 100644 app/lib/ui/capper.js create mode 100644 app/lib/ui/capper.js.map create mode 100644 app/src/lib/ui/capper.ts diff --git a/app/data/cfg.json b/app/data/cfg.json index e1642cd..52b86ca 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -183,8 +183,8 @@ "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", "camera_capper_projectors_identifier" : "0", - "cap_on" : "A", - "cap_off" : "B" + "capper_on" : "A", + "capper_off" : "B" } } } diff --git a/app/index.html b/app/index.html index 7a5cf85..3999dc0 100644 --- a/app/index.html +++ b/app/index.html @@ -45,6 +45,8 @@

+ +
@@ -60,6 +62,8 @@
PROJ
PROJ2
+
BLANK
+
LIGHT
diff --git a/app/js/app.js b/app/js/app.js index 30acff6..983c5cd 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2496,6 +2496,7 @@ const cmd = require('./lib/ui/cmd.js'); const devices = require('./lib/ui/devices.js'); const filmout = require('./lib/ui/filmout.js'); const mse = require('./lib/ui/mscript.js'); +const capper = require('./lib/ui/capper.js'); const Mscript = require('./lib/mscript'); const { delay } = require('./lib/delay'); @@ -2525,4 +2526,5 @@ async function init () { proj.init(); cam.init(); seq.init(); + capper.init(); }; \ No newline at end of file diff --git a/app/lib/arduino/index.js b/app/lib/arduino/index.js index a1d36d9..52c0c79 100644 --- a/app/lib/arduino/index.js +++ b/app/lib/arduino/index.js @@ -360,7 +360,9 @@ class Arduino { write: async function (cmd, cb) { const t = { c: cfg.arduino.cam.time + cfg.arduino.cam.delay, - p: cfg.arduino.proj.time + cfg.arduino.proj.delay + p: cfg.arduino.proj.time + cfg.arduino.proj.delay, + A: 180, + B: 180 }; let timeout = t[cmd]; if (typeof timeout === 'undefined') diff --git a/app/lib/arduino/index.js.map b/app/lib/arduino/index.js.map index 3e0d168..fe8272e 100644 --- a/app/lib/arduino/index.js.map +++ b/app/lib/arduino/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/arduino/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/capper/index.js b/app/lib/capper/index.js new file mode 100644 index 0000000..5463674 --- /dev/null +++ b/app/lib/capper/index.js @@ -0,0 +1,89 @@ +'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +/** class representing capper functions **/ +class Capper { + /** + * + **/ + constructor(arduino, cfg, ui, filmout) { + this.state = { + capper: false + }; + this.arduino = null; + this.id = 'capper'; + this.arduino = arduino; + this.cfg = cfg; + this.ui = ui; + this.filmout = filmout; + this.init(); + } + /** + * + **/ + async init() { + const Log = require('log'); + this.log = await Log({ label: this.id }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + /** + * + **/ + listen() { + this.ipc.on(this.id, this.listener.bind(this)); + } + /** + * + **/ + async capper(state, id) { + let cmd; + let ms; + if (state) { + cmd = this.cfg.arduino.cmd[`${this.id}_on`]; + } + else { + cmd = this.cfg.arduino.cmd[`${this.id}_off`]; + } + this.state.capper = state; + try { + ms = await this.arduino.send(this.id, cmd); + } + catch (err) { + this.log.error(err); + } + return await this.end(cmd, id, ms); + } + /** + * + **/ + async listener(event, arg) { + if (typeof arg.capper !== 'undefined') { + try { + await this.capper(arg.capper, arg.id); + } + catch (err) { + this.log.error(err); + } + } + event.returnValue = true; + } + /** + * + **/ + async end(cmd, id, ms) { + let message = ''; + if (cmd === this.cfg.arduino.cmd.capper_on) { + message = 'Capper set to ON'; + } + else if (cmd === this.cfg.arduino.cmd.capper_off) { + message = 'Capper set to OFF'; + } + message += ` ${ms}ms`; + this.log.info(message); + this.ui.send(this.id, { cmd: cmd, id: id, ms: ms }); + } +} +module.exports = function (arduino, cfg, ui, filmout) { + return new Capper(arduino, cfg, ui, filmout); +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/capper/index.js.map b/app/lib/capper/index.js.map new file mode 100644 index 0000000..43c1f2c --- /dev/null +++ b/app/lib/capper/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index a246c12..771eaa6 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -170,6 +170,22 @@ class Devices { this.log.info('Connected to fake LIGHT device', 'SERIAL', true, true); return true; } + /** + * + **/ + async fakeCapper() { + this.connected.capper = '/dev/fake'; + try { + await this.arduino.fakeConnect('capper'); + } + catch (err) { + console.error(err); + this.log.error(`Error connecting to fake CAPPER device`, 'SERIAL', true, true); + return false; + } + this.log.info('Connected to fake CAPPER device', 'SERIAL', true, true); + return true; + } /** * **/ @@ -449,6 +465,9 @@ class Devices { if (this.connected.capper) { capper = { arduino: this.connected.capper }; } + else { + await this.fakeCapper(); + } if (this.settings.state.camera && this.settings.state.camera.intval) { c.intval = this.settings.state.camera.intval; } @@ -484,7 +503,6 @@ class Devices { light, profile: this.settings.state.profile }; - console.log("CHECK " + camera); if (projector_second && projector_second.arduino) { args.projector_second = projector_second; this.settings.update('projector_second', projector_second); diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index 93c9cd6..0450003 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/capper.js b/app/lib/ui/capper.js new file mode 100644 index 0000000..db499aa --- /dev/null +++ b/app/lib/ui/capper.js @@ -0,0 +1,57 @@ +'use strict'; +let capper; +class Capper { + constructor() { + this.queue = {}; + this.lock = false; + this.id = 'capper'; + this.state = true; + } + init() { + this.listen(); + } + enable() { + $('.capper').addClass('on'); + } + set(state, callback) { + let obj; + if (this.lock) { + return false; + } + obj = { + state, + id: uuid() + }; + ipcRenderer.sendSync(this.id, obj); + if (typeof callback !== 'undefined') { + obj.callback = callback; + } + this.queue[obj.id] = obj; + this.lock = true; + } + end(c, id, ms) { + if (c === cfg.arduino.cmd.capper_on) { + this.state = true; + } + else if (c === cfg.arduino.cmd.capper_off) { + this.state = false; + } + if (typeof this.queue[id] !== 'undefined') { + if (typeof this.queue[id].callback !== 'undefined') { + this.queue[id].callback(ms); + } + delete this.queue[id]; + this.lock = false; + } + } + listen() { + ipcRenderer.on(this.id, function (event, arg) { + capper.end(arg.cmd, arg.id, arg.ms); + return event.returnValue = true; + }); + } + ; +} +capper = new Capper(); +module.exports = capper; +//# sourceMappingURL=capper.js.map \ No newline at end of file diff --git a/app/lib/ui/capper.js.map b/app/lib/ui/capper.js.map new file mode 100644 index 0000000..68299ef --- /dev/null +++ b/app/lib/ui/capper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"capper.js","sourceRoot":"","sources":["../../src/lib/ui/capper.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAQb,IAAI,MAAe,CAAC;AAQpB,MAAM,MAAM;IAMX;QALA,UAAK,GAAS,EAAE,CAAC;QACjB,SAAI,GAAa,KAAK,CAAC;QACvB,OAAE,GAAY,QAAQ,CAAC;QACvB,UAAK,GAAa,IAAI,CAAC;IAIvB,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEM,MAAM;QACZ,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAE,KAAe,EAAE,QAAmB;QAC/C,IAAI,GAAiB,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,KAAK,CAAC;SACb;QAED,GAAG,GAAG;YACL,KAAK;YACL,EAAE,EAAG,IAAI,EAAE;SACX,CAAC;QAEF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEnC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACxB;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAEM,GAAG,CAAE,CAAU,EAAE,EAAW,EAAE,EAAW;QAC/C,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACnB;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE;YAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE;gBACnD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAClB;IACF,CAAC;IACO,MAAM;QACb,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,KAAa,EAAE,GAAS;YACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAAA,CAAC;CAEF;AAED,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"} \ No newline at end of file diff --git a/app/lib/ui/devices.js b/app/lib/ui/devices.js index 8159861..891e69b 100644 --- a/app/lib/ui/devices.js +++ b/app/lib/ui/devices.js @@ -98,6 +98,9 @@ class Devices { //add second row of camera pads to grid cam.second.enable(); } + if (arg.capper) { + capper.enable(); + } return event.returnValue = true; }); } diff --git a/app/lib/ui/devices.js.map b/app/lib/ui/devices.js.map index 9a1a754..c404b8a 100644 --- a/app/lib/ui/devices.js.map +++ b/app/lib/ui/devices.js.map @@ -1 +1 @@ -{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/lib/ui/devices.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAEb,qCAAqC;AAGrC,IAAI,OAAiB,CAAC;AAEtB,MAAM,OAAO;IAEZ;QADQ,OAAE,GAAY,SAAS,CAAC;IAGhC,CAAC;IACD,IAAI;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM;QACL,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,KAAK,CAAE,KAAW,EAAE,GAAS;;YAClC,kBAAkB;YAClB,IAAI,GAAS,CAAC;YACd,IAAI,IAAI,GAAW,EAAE,CAAC;YACtB,IAAI,MAAM,GAAY,eAAe,CAAC;YACtC,IAAI,CAAO,CAAC;YACZ,YAAY;YACZ,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI;gBACH,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnB;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf;YACD,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE;oBACrD,IAAI,MAAM,KAAK,eAAe,EAAE;wBAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAA;qBAC9B;yBAAM;wBACN,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;qBAC/B;iBACD;gBACD,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBACpB,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC9B;YAED,IAAI,MAAM,KAAK,eAAe,EAAE;gBAC/B,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aAC9B;iBAAM;gBACN,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAA;aAClD;YAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;oBACnB,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC1B;aACD;YAED,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;gBACvB,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC9B,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChF,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;oBACxD,KAAK,CAAC,OAAO,EAAE,CAAC;iBAChB;qBAAM;oBACN,KAAK,CAAC,MAAM,EAAE,CAAC;iBACf;gBACD,8BAA8B;aAC9B;YAED,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,EAAE,CAAC;YAEZ,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACzB,0CAA0C;gBAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACrB;YACD,IAAI,GAAG,CAAC,aAAa,EAAE;gBACtB,uCAAuC;gBACvC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACpB;YACD,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC;KAAA;IAED,QAAQ;QACP,MAAM,IAAI,GAAc,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAS,CAAC,CAAC,UAAU,CAAC,CAAA;QAChC,IAAI,GAAG,CAAC;QACR,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACrB,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAY,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAY,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAE,OAAgB;QACxB,GAAG,CAAC,IAAI,CAAC,qCAAqC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACrB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;SACpB;QACD,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;YACxD,KAAK,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM;YACN,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;QACD,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,MAAM;QACL,MAAM,GAAG,GAAY,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAY,CAAC;QAClD,IAAI,OAAO,GAAa,KAAK,CAAC;QAC9B,IAAI,GAAG,GAAS;YACf,OAAO,EAAE,IAAI;YACb,GAAG;SACH,CAAC;QAEF,IAAK,GAAG,KAAK,EAAE,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;YAC9C,OAAO,GAAG,OAAO,CAAC,iDAAiD,GAAG,GAAG,CAAC,CAAC;SAC3E;aAAM;YACN,KAAK,CAAC,2CAA2C,CAAC,CAAC;SACnD;QAED,IAAI,OAAO,EAAE;YACZ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,2BAA2B,GAAG,EAAE,CAAC,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SAChC;aAAM;YACN,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACnC;IACF,CAAC;IAGD,QAAQ,CAAE,GAAS,EAAE,IAAU;QAC9B,IAAI,KAAW,CAAC;QAChB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC9C,eAAe;YACf,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACxB,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,0BAA0B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC3D,GAAG,CAAC,WAAW,EAAE,CAAA;SACjB;aAAM;YACN,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACnC;IACF,CAAC;IAED,UAAU;QACT,MAAM,GAAG,GAAY,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAY,CAAC;QACtD,IAAI,OAAO,GAAa,KAAK,CAAC;QAC9B,IAAI,GAAG,GAAS;YACf,GAAG;SACH,CAAC;QAEF,IAAK,GAAG,KAAK,EAAE,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;YAC9C,OAAO,GAAG,OAAO,CAAC,oDAAoD,GAAG,GAAG,CAAC,CAAC;SAC9E;aAAM;YACN,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,EAAE;YACZ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,8BAA8B,GAAG,EAAE,CAAC,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;YACN,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SACvC;IACF,CAAC;IAED,YAAY;QACX,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,UAAU;QACT,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,4DAA4D,CAAC,CAAC;IACjF,CAAC;CACD;AAED,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAExB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/lib/ui/devices.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/main.js b/app/main.js index e820f9b..1b6bd60 100644 --- a/app/main.js +++ b/app/main.js @@ -37,6 +37,7 @@ let filmout; let dev; let cmd; let seq; +let capper; const cfg = require('./data/cfg.json') @@ -127,6 +128,10 @@ var init = async function () { proj2 = require('proj')(arduino, cfg, mainWindow.webContents, filmout, true) } + if (dev && dev.connected && dev.connected.capper) { + capper = require('capper')(arduino, cfg, mainWindow.webContents, filmout, true) + } + cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2) seq = require('sequencer')(cfg, cmd, mainWindow.webContents) } diff --git a/app/package-lock.json b/app/package-lock.json index 17f182b..2fff654 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -14,6 +14,7 @@ "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", + "capper": "file:lib/capper", "capture": "file:lib/capture", "cmd": "file:lib/cmd", "delay": "file:lib/delay", @@ -75,6 +76,7 @@ "version": "1.0.0", "license": "ISC" }, + "lib/capper": {}, "lib/capture": { "version": "1.0.0", "license": "ISC" @@ -2070,6 +2072,10 @@ "node": ">=6" } }, + "node_modules/capper": { + "resolved": "lib/capper", + "link": true + }, "node_modules/capture": { "resolved": "lib/capture", "link": true @@ -12940,6 +12946,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "optional": true }, + "capper": { + "version": "file:lib/capper" + }, "capture": { "version": "file:lib/capture" }, diff --git a/app/package.json b/app/package.json index 6954b6f..fe3a5f3 100644 --- a/app/package.json +++ b/app/package.json @@ -54,6 +54,7 @@ "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", + "capper" : "file:lib/capper", "capture": "file:lib/capture", "cmd": "file:lib/cmd", "delay": "file:lib/delay", diff --git a/app/src/index.js b/app/src/index.js index 4262c11..a3e96ec 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -22,6 +22,7 @@ const cmd = require('./lib/ui/cmd.js'); const devices = require('./lib/ui/devices.js'); const filmout = require('./lib/ui/filmout.js'); const mse = require('./lib/ui/mscript.js'); +const capper = require('./lib/ui/capper.js'); const Mscript = require('./lib/mscript'); const { delay } = require('./lib/delay'); @@ -51,4 +52,5 @@ async function init () { proj.init(); cam.init(); seq.init(); + capper.init(); }; \ No newline at end of file diff --git a/app/src/lib/ui/capper.ts b/app/src/lib/ui/capper.ts new file mode 100644 index 0000000..f910e80 --- /dev/null +++ b/app/src/lib/ui/capper.ts @@ -0,0 +1,83 @@ +'use strict'; + +/// + +declare var uuid : any; +declare var ipcRenderer : any; +declare var w2ui : any; + +let capper : Capper; + +interface CapperEvent { + id : string; + state : boolean; + callback? : Function; +} + +class Capper { + public enabled = false; + queue : any = {}; + lock : boolean = false; + id : string = 'capper'; + state : boolean = true; + + constructor () { + + } + + init () { + this.listen(); + } + + public enable () { + $('.capper').addClass('on'); + enabled = true + } + + public set (state : boolean, callback : Function) { + let obj : CapperEvent; + + if (this.lock) { + return false; + } + + obj = { + state, + id : uuid() + }; + + ipcRenderer.sendSync(this.id, obj); + + if (typeof callback !== 'undefined') { + obj.callback = callback; + } + + this.queue[obj.id] = obj; + this.lock = true; + } + + public end (c : string, id : string, ms : number) { + if (c === cfg.arduino.cmd.capper_on) { + this.state = true; + } else if (c === cfg.arduino.cmd.capper_off) { + this.state = false; + } + if (typeof this.queue[id] !== 'undefined') { + if (typeof this.queue[id].callback !== 'undefined') { + this.queue[id].callback(ms); + } + delete this.queue[id]; + this.lock = false; + } + } + private listen () { + ipcRenderer.on(this.id, function (event : Event, arg : any) { + capper.end(arg.cmd, arg.id, arg.ms); + return event.returnValue = true; + }); + }; + +} + +capper = new Capper(); +module.exports = capper; \ No newline at end of file diff --git a/app/src/lib/ui/devices.ts b/app/src/lib/ui/devices.ts index fafb3ff..c10b979 100644 --- a/app/src/lib/ui/devices.ts +++ b/app/src/lib/ui/devices.ts @@ -96,6 +96,9 @@ class Devices { //add second row of camera pads to grid cam.second.enable(); } + if (arg.capper) { + capper.enable(); + } return event.returnValue = true; } diff --git a/app/src/lib/ui/grid.ts b/app/src/lib/ui/grid.ts index 4299a24..5cc6435 100644 --- a/app/src/lib/ui/grid.ts +++ b/app/src/lib/ui/grid.ts @@ -122,7 +122,8 @@ class Grid { 'camera_backward', 'camera_second_backward', 'projector_backward', - 'projector_second_backward', + 'projector_second_backward', + 'black', 'light_set', 'numbers' ]; diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index e1642cd..52b86ca 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -183,8 +183,8 @@ "camera_capper_identifier" : "8", "camera_capper_projector_identifier" : "9", "camera_capper_projectors_identifier" : "0", - "cap_on" : "A", - "cap_off" : "B" + "capper_on" : "A", + "capper_off" : "B" } } } diff --git a/scad/capper.scad b/scad/capper.scad index 232db7a..402c3b6 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -219,6 +219,10 @@ module Debug () { //translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0])OptoEndstop(); } +module Base () { + +} + Render="Cap"; if (Render=="Debug") { @@ -234,4 +238,6 @@ if (Render=="Debug") { } else if (Render=="OptoEndstopMount") { echo("Deprecated"); //rotate([-90,0,0]) OptoEndstopMount(); +} else if (Render=="Base") { + } \ No newline at end of file diff --git a/src/arduino/index.ts b/src/arduino/index.ts index 15bb09c..8721c3c 100644 --- a/src/arduino/index.ts +++ b/src/arduino/index.ts @@ -360,7 +360,9 @@ class Arduino { write : async function (cmd : string, cb : any) { const t : any = { c : cfg.arduino.cam.time + cfg.arduino.cam.delay, - p : cfg.arduino.proj.time + cfg.arduino.proj.delay + p : cfg.arduino.proj.time + cfg.arduino.proj.delay, + A : 180, + B : 180 } let timeout : number = t[cmd] if (typeof timeout === 'undefined') timeout = 10 diff --git a/src/devices/index.ts b/src/devices/index.ts index 18aea67..95902b6 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -182,6 +182,22 @@ class Devices { this.log.info('Connected to fake LIGHT device', 'SERIAL', true, true) return true } + + /** + * + **/ + private async fakeCapper () { + this.connected.capper = '/dev/fake' + try { + await this.arduino.fakeConnect('capper') + } catch (err) { + console.error(err) + this.log.error(`Error connecting to fake CAPPER device`, 'SERIAL', true, true) + return false + } + this.log.info('Connected to fake CAPPER device', 'SERIAL', true, true) + return true + } /** * **/ @@ -441,6 +457,8 @@ class Devices { if (this.connected.capper) { capper = { arduino : this.connected.capper } + } else { + await this.fakeCapper() } if (this.settings.state.camera && this.settings.state.camera.intval) { @@ -480,7 +498,6 @@ class Devices { profile: this.settings.state.profile } - console.log("CHECK " + camera) if (projector_second && projector_second.arduino) { args.projector_second = projector_second this.settings.update('projector_second', projector_second) -- 2.40.1 From bc48765b35f019e4bca5cc36162b325f6d176345 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Wed, 13 Jul 2022 18:16:43 -0400 Subject: [PATCH 26/89] Start work on base --- scad/capper.scad | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 402c3b6..6e6d415 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -220,10 +220,10 @@ module Debug () { } module Base () { - + cube([1, 1, 1], center = true); } -Render="Cap"; +Render="Base"; if (Render=="Debug") { Debug(); @@ -239,5 +239,5 @@ if (Render=="Debug") { echo("Deprecated"); //rotate([-90,0,0]) OptoEndstopMount(); } else if (Render=="Base") { - + Base(); } \ No newline at end of file -- 2.40.1 From ea055d6e56d5a32d2f95099088bd05c0d582ee02 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 13 Jul 2022 23:04:00 -0400 Subject: [PATCH 27/89] Capper case candidate --- scad/capper.scad | 21 ++++++++++++++++++++- scad/common.scad | 6 +++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/scad/capper.scad b/scad/capper.scad index 6e6d415..0c724f2 100644 --- a/scad/capper.scad +++ b/scad/capper.scad @@ -217,10 +217,29 @@ module Debug () { //translate([5, -38, -11.8+OptoEndstopAdjustZ]) rotate([0, -90, 0]) opto_endstop(); //color("green") translate([5, -38, -11.8]) OptoEndstopMount(); //translate([1.5, -38 + 2 -10, -11.8 + 11 + 2 +.75]) rotate([90, 0, 0])OptoEndstop(); + translate([130, 0, 0]) Base(); + translate([80, 0, 30]) cube([110 + 50, 10, 10], center = true); } module Base () { - cube([1, 1, 1], center = true); + $fn = 60; + difference () { + cube([110, LensVoidDiameter + 30, 8], center=true); + translate([-45, R(MountBoltSpacingY), 0]) cylinder(r=R(RailSlotsD) + .25, h=40, center=true); + translate([-45, -R(MountBoltSpacingY), 0]) cylinder(r=R(RailSlotsD) + .25, h=40, center=true); + } + translate([15, 0, -R(50)]) cube([10, LensVoidDiameter + 30, 50], center=true); + difference () { + translate([50, 0, -R(50)]) cube([10, LensVoidDiameter + 30, 50], center=true); + translate([50, 20, -40]) rotate([0, 90, 0]) { + cylinder(r=R(RailSlotsD) + .25, h=40, center=true); + translate([0, 0, -11]) rotate([0, 0, 30]) hex(13.5, 22); + } + translate([50, -20, -40]) rotate([0, 90, 0]) { + cylinder(r=R(RailSlotsD) + .25, h=40, center=true); + translate([0, 0, -11]) rotate([0, 0, 30]) hex(13.5, 22); + } + } } Render="Base"; diff --git a/scad/common.scad b/scad/common.scad index 2719a7e..e603ba9 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -71,4 +71,8 @@ module optoswitch() { rotate([90,0,0]) translate([hole,6.4/2,-4]) cylinder(r=1.5, h=4.5,$fn=40); } } - } \ No newline at end of file + } + + module hex (diag = 10, h = 1) { + cylinder(r = diag / 2, h = h, center = true, $fn = 6); +} \ No newline at end of file -- 2.40.1 From 9d0545aa4fc6c148f76948dadf39cd68c283472f Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 15 Jul 2022 18:11:26 -0400 Subject: [PATCH 28/89] All capper features in app, can shoot blank frames, can turn on capper independently and can schedule blank frames in the sequencer. Some cleanup may be needed but there are no noticeable regressions in the app. TODO: Finish all arduino scripts. --- app/css/app.css | 24 +++++- app/data/cfg.json | 4 +- app/index.html | 18 ++++- app/less/app.less | 3 +- app/less/cmd.less | 4 + app/less/seq.less | 11 +++ app/lib/capper/index.js | 4 +- app/lib/capper/index.js.map | 2 +- app/lib/cmd/index.js | 33 +++++--- app/lib/cmd/index.js.map | 2 +- app/lib/devices/index.js | 13 ++- app/lib/devices/index.js.map | 2 +- app/lib/ui/capper.js | 21 ++++- app/lib/ui/capper.js.map | 2 +- app/lib/ui/cmd.js | 153 +++++++++++++++++++++++++++++------ app/lib/ui/devices.js | 11 +-- app/lib/ui/devices.js.map | 2 +- app/lib/ui/grid.js | 65 ++++++++++++++- app/lib/ui/grid.js.map | 2 +- app/lib/ui/seq.js | 9 +++ app/lib/ui/seq.js.map | 2 +- app/main.js | 5 +- app/scripts/dev.sh | 2 + app/src/lib/ui/capper.ts | 21 ++++- app/src/lib/ui/devices.ts | 14 ++-- app/src/lib/ui/grid.ts | 58 +++++++++++-- app/src/lib/ui/seq.ts | 10 +++ data/cfg.json | 4 +- processing/mcopy/cfg.json | 4 +- src/capper/index.ts | 6 +- src/cmd/index.ts | 36 ++++++--- src/devices/index.ts | 12 ++- 32 files changed, 443 insertions(+), 116 deletions(-) diff --git a/app/css/app.css b/app/css/app.css index 770f11b..d3425a7 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -484,6 +484,9 @@ button:focus { #sequence #projector_second_backward > div { color: #bf2e39; } +#sequence #black input[type=checkbox]:checked { + background: white; +} #sequence input[type=checkbox] { -webkit-appearance: none; -moz-appearance: none; @@ -500,6 +503,10 @@ button:focus { box-sizing: border-box; cursor: pointer; } +#sequence input[type=checkbox].disabled { + cursor: not-allowed; + border-color: #646464; +} #sequence .L { display: inline-block; width: 35px; @@ -627,6 +634,11 @@ button:focus { background: #AB1A25; border-color: #AB1A25; } +.cmd:active.capper, +.cmd.active.capper { + background: white; + color: #272b30; +} .cmd:active i, .cmd.active i { color: #272b30; @@ -1140,19 +1152,23 @@ button:focus { float: right; } .cam2, -.proj2 { +.proj2, +.black { display: none; } .cam2 > *, -.proj2 > * { +.proj2 > *, +.black > * { visibility: hidden; } .cam2.on, -.proj2.on { +.proj2.on, +.black.on { display: block; } .cam2.on > *, -.proj2.on > * { +.proj2.on > *, +.black.on > * { visibility: visible; } #overlay { diff --git a/app/data/cfg.json b/app/data/cfg.json index 52b86ca..8b82f50 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -15,8 +15,8 @@ "momentary": 0 }, "black": { - "before": 0, - "after": 0 + "before": 100, + "after": 100 }, "light": false }, diff --git a/app/index.html b/app/index.html index 3999dc0..150c118 100644 --- a/app/index.html +++ b/app/index.html @@ -46,7 +46,7 @@
-
+
@@ -62,7 +62,7 @@
PROJ
PROJ2
-
BLANK
+
BLANK
LIGHT
@@ -162,6 +162,20 @@ +
+ +
+
+ +
diff --git a/app/less/app.less b/app/less/app.less index 1ff9bc2..20e2cee 100644 --- a/app/less/app.less +++ b/app/less/app.less @@ -175,7 +175,8 @@ } .cam2, -.proj2{ +.proj2, +.black{ display : none; > * { visibility: hidden; diff --git a/app/less/cmd.less b/app/less/cmd.less index c1765eb..2d0c81c 100644 --- a/app/less/cmd.less +++ b/app/less/cmd.less @@ -42,6 +42,10 @@ background: @BACKWARD; border-color: @BACKWARD; } + &.capper{ + background: white; + color: @BG; + } i{ color: @BG; } diff --git a/app/less/seq.less b/app/less/seq.less index e6920ea..d8ad2f2 100644 --- a/app/less/seq.less +++ b/app/less/seq.less @@ -126,6 +126,13 @@ color: @BACKWARD + @SECOND; } } + #black{ + input[type=checkbox]{ + &:checked{ + background: white; + } + } + } input[type=checkbox]{ -webkit-appearance: none; -moz-appearance: none; @@ -141,6 +148,10 @@ display: inline-block; box-sizing: border-box; cursor: pointer; + &.disabled{ + cursor: not-allowed; + border-color: rgb(100, 100, 100); + } } .L{ display: inline-block; diff --git a/app/lib/capper/index.js b/app/lib/capper/index.js index 5463674..6d2b33c 100644 --- a/app/lib/capper/index.js +++ b/app/lib/capper/index.js @@ -57,9 +57,9 @@ class Capper { * **/ async listener(event, arg) { - if (typeof arg.capper !== 'undefined') { + if (typeof arg.state !== 'undefined') { try { - await this.capper(arg.capper, arg.id); + await this.capper(arg.state, arg.id); } catch (err) { this.log.error(err); diff --git a/app/lib/capper/index.js.map b/app/lib/capper/index.js.map index 43c1f2c..6698de0 100644 --- a/app/lib/capper/index.js.map +++ b/app/lib/capper/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capper/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/cmd/index.js b/app/lib/cmd/index.js index b159fc6..951e444 100644 --- a/app/lib/cmd/index.js +++ b/app/lib/cmd/index.js @@ -14,15 +14,17 @@ class Commands { * @param {object} cam2 (optional) Camera 2 * @param {object} proj2 {optional} Projector 2 **/ - constructor(cfg, proj, cam, light, cam2 = null, proj2 = null) { + constructor(cfg, proj, cam, light, cam2 = null, proj2 = null, capper = null) { this.cfg = cfg; this.proj = proj; this.cam = cam; this.light = light; - if (cam2) + if (cam2 !== null) this.cam2 = cam2; - if (proj2) + if (proj2 !== null) this.proj2 = proj2; + if (capper !== null) + this.capper = capper; this.ipc = require('electron').ipcMain; } /** @@ -101,18 +103,25 @@ class Commands { async black_forward() { const id = uuid_1.v4(); const off = [0, 0, 0]; - let ms; + let ms = 0; try { if (!this.cam.state.dir) { await delay_1.delay(this.cfg.arduino.serialDelay); await this.cam.set(true); } await delay_1.delay(this.cfg.arduino.serialDelay); + if (this.capper) { + ms += await this.capper.capper(true, id); + } + await delay_1.delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); //make sure set to off await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); + ms += await this.cam.move(); await delay_1.delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); + if (this.capper) { + ms += await this.capper.capper(false, id); + } } catch (err) { throw err; @@ -155,18 +164,24 @@ class Commands { async black_backward() { const id = uuid_1.v4(); const off = [0, 0, 0]; - let ms; + let ms = 0; try { if (this.cam.state.dir) { await delay_1.delay(this.cfg.arduino.serialDelay); await this.cam.set(false); } + if (this.capper) { + ms += await this.capper.capper(true, id); + } await delay_1.delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); //make sure set to off await delay_1.delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); + ms += await this.cam.move(); await delay_1.delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); + if (this.capper) { + ms += await this.capper.capper(false, id); + } } catch (err) { throw err; @@ -571,7 +586,7 @@ class Commands { return ms; } } -module.exports = function (cfg, proj, cam, light, cam2, proj2) { - return new Commands(cfg, proj, cam, light, cam2, proj2); +module.exports = function (cfg, proj, cam, light, cam2, proj2, capper) { + return new Commands(cfg, proj, cam, light, cam2, proj2, capper); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/cmd/index.js.map b/app/lib/cmd/index.js.map index f91a2d1..7205729 100644 --- a/app/lib/cmd/index.js.map +++ b/app/lib/cmd/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index 771eaa6..5c1cf3b 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -418,7 +418,7 @@ class Devices { let d; let cs = {}; let ps = {}; - let capper; + let capper = {}; let checklist = []; this.connected = { projector: false, @@ -457,16 +457,13 @@ class Devices { } l.arduino = this.connected.light; if (this.connected.camera_second) { - cs = { arduino: this.connected.camera_second }; + cs.arduino = this.connected.camera_second; } if (this.connected.projector_second) { - ps = { arduino: this.connected.projector_second }; + ps.arduino = this.connected.projector_second; } if (this.connected.capper) { - capper = { arduino: this.connected.capper }; - } - else { - await this.fakeCapper(); + capper.arduino = this.connected.capper; } if (this.settings.state.camera && this.settings.state.camera.intval) { c.intval = this.settings.state.camera.intval; @@ -518,7 +515,7 @@ class Devices { this.mainWindow.setSize(800, 800); } } - if (capper) { + if (capper && capper.arduino) { args.capper = capper; this.mainWindow.setSize(800, 800); this.settings.update('capper', capper); diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index 0450003..dfa0600 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/capper.js b/app/lib/ui/capper.js index db499aa..c759c73 100644 --- a/app/lib/ui/capper.js +++ b/app/lib/ui/capper.js @@ -2,18 +2,24 @@ let capper; class Capper { constructor() { + this.enabled = false; this.queue = {}; this.lock = false; this.id = 'capper'; - this.state = true; + this.state = false; } init() { this.listen(); } enable() { - $('.capper').addClass('on'); + $('.black').addClass('on'); + $('#cmd_black_forward').parent().removeClass('hide'); + $('#cmd_black_backward').parent().removeClass('hide'); + $('#cmd_capper_on').parent().removeClass('hide'); + $('#cmd_capper_off').parent().removeClass('hide'); + this.enabled = true; } - set(state, callback) { + capper(state, callback) { let obj; if (this.lock) { return false; @@ -28,6 +34,15 @@ class Capper { } this.queue[obj.id] = obj; this.lock = true; + this.state = state; + if (state) { + $('#cmd_capper_on').addClass('active'); + $('#cmd_capper_off').removeClass('active'); + } + else { + $('#cmd_capper_off').addClass('active'); + $('#cmd_capper_on').removeClass('active'); + } } end(c, id, ms) { if (c === cfg.arduino.cmd.capper_on) { diff --git a/app/lib/ui/capper.js.map b/app/lib/ui/capper.js.map index 68299ef..b246024 100644 --- a/app/lib/ui/capper.js.map +++ b/app/lib/ui/capper.js.map @@ -1 +1 @@ -{"version":3,"file":"capper.js","sourceRoot":"","sources":["../../src/lib/ui/capper.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAQb,IAAI,MAAe,CAAC;AAQpB,MAAM,MAAM;IAMX;QALA,UAAK,GAAS,EAAE,CAAC;QACjB,SAAI,GAAa,KAAK,CAAC;QACvB,OAAE,GAAY,QAAQ,CAAC;QACvB,UAAK,GAAa,IAAI,CAAC;IAIvB,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEM,MAAM;QACZ,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAE,KAAe,EAAE,QAAmB;QAC/C,IAAI,GAAiB,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,KAAK,CAAC;SACb;QAED,GAAG,GAAG;YACL,KAAK;YACL,EAAE,EAAG,IAAI,EAAE;SACX,CAAC;QAEF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEnC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACxB;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAEM,GAAG,CAAE,CAAU,EAAE,EAAW,EAAE,EAAW;QAC/C,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACnB;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE;YAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE;gBACnD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAClB;IACF,CAAC;IACO,MAAM;QACb,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,KAAa,EAAE,GAAS;YACzD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAAA,CAAC;CAEF;AAED,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACtB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"} \ No newline at end of file +{"version":3,"file":"capper.js","sourceRoot":"","sources":["../../src/lib/ui/capper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/cmd.js b/app/lib/ui/cmd.js index 7815c61..3e53eee 100644 --- a/app/lib/ui/cmd.js +++ b/app/lib/ui/cmd.js @@ -155,24 +155,63 @@ cmd.black_forward = function (callback) { if (callback) { callback(ms); } }; $('#cmd_black_forward').addClass('active'); + if (!cam.dir) { - cam.set(true, function () { - setTimeout( function () { - light.display(off); - light.set(off, function () { - setTimeout( function () { - cam.move(res); - }, cfg.arduino.serialDelay); - }); - }, cfg.arduino.serialDelay); - }); + if (capper.enabled) { + cam.set(true, function () { + setTimeout( function () { + capper.capper(true, function () { + setTimeout( function () { + light.display(off); + light.set(off, function () { + setTimeout( function () { + cam.move(function () { + setTimeout(function () { + capper.capper(false, res); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay) + }) + }, cfg.arduino.serialDelay); + }); + } else { + cam.set(true, function () { + setTimeout( function () { + light.display(off); + light.set(off, function () { + setTimeout( function () { + cam.move(res); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + } } else { - light.display(off); - light.set(off, function () { - setTimeout(function () { - cam.move(res); - }, cfg.arduino.serialDelay); - }); + if (capper.enabled) { + capper.capper(true, function () { + setTimeout( function () { + light.display(off); + light.set(off, function () { + setTimeout( function () { + cam.move(function () { + setTimeout(function () { + capper.capper(false, res); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + } else { + light.display(off); + light.set(off, function () { + setTimeout(function () { + cam.move(res); + }, cfg.arduino.serialDelay); + }); + } } }; /** @@ -226,21 +265,57 @@ cmd.black_backward = function (callback) { }; $('#cmd_black_backward').addClass('active'); if (cam.dir) { - cam.set(false, function () { + if (capper.enabled) { + cam.set(false, function () { + setTimeout( function () { + capper.capper(true, function () { + setTimeout(function () { + light.display(off); + light.set(off, function () { + cam.move(function () { + setTimeout(function () { + capper.capper(false, res); + }, cfg.arduino.serialDelay); + }); + }); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + } else { + cam.set(false, function () { + setTimeout(function () { + light.display(off); + light.set(off, function () { + cam.move(res); + }); + }, cfg.arduino.serialDelay); + }); + } + } else { + if (capper.enabled) { + capper.capper(true, function () { + setTimeout( function () { + light.display(off); + light.set(off, function () { + setTimeout( function () { + cam.move(function () { + setTimeout(function () { + capper.capper(false, res); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + }, cfg.arduino.serialDelay); + }); + } else { setTimeout(function () { light.display(off); light.set(off, function () { cam.move(res); }); }, cfg.arduino.serialDelay); - }); - } else { - setTimeout(function () { - light.display(off); - light.set(off, function () { - cam.move(res); - }); - }, cfg.arduino.serialDelay); + } } }; @@ -534,4 +609,32 @@ cmd.projector_second_to = function (t) { } } +/** + * Turn the capper on (block the camera) + * + * @param {function} callback Function to call after capper is on + **/ +cmd.capper_on = function (callback) { + 'use strict'; + var res = function (ms) { + gui.updateState(); + if (callback) { callback(ms); } + }; + capper.capper(true, res); +}; + +/** + * Turn the capper off (not blocking the camera) + * + * @param {function} callback Function to call after capper is off + **/ +cmd.capper_off = function (callback) { + 'use strict'; + var res = function (ms) { + gui.updateState(); + if (callback) { callback(ms); } + }; + capper.capper(false, res); +}; + module.exports = cmd; \ No newline at end of file diff --git a/app/lib/ui/devices.js b/app/lib/ui/devices.js index 891e69b..c9fde1d 100644 --- a/app/lib/ui/devices.js +++ b/app/lib/ui/devices.js @@ -85,11 +85,6 @@ class Devices { } //devices.profile(arg.profile) } - seq.set(0, cfg.cmd.camera_forward); - seq.set(1, cfg.cmd.projector_forward); - grid.state(0); - grid.state(1); - seq.stats(); if (arg.projector_second) { //add second row of projector pads to grid proj.second.enable(); @@ -99,8 +94,14 @@ class Devices { cam.second.enable(); } if (arg.capper) { + //add capper features to grid capper.enable(); } + seq.set(0, cfg.cmd.camera_forward); + seq.set(1, cfg.cmd.projector_forward); + grid.state(0); + grid.state(1); + seq.stats(); return event.returnValue = true; }); } diff --git a/app/lib/ui/devices.js.map b/app/lib/ui/devices.js.map index c404b8a..818060d 100644 --- a/app/lib/ui/devices.js.map +++ b/app/lib/ui/devices.js.map @@ -1 +1 @@ -{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/lib/ui/devices.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/lib/ui/devices.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/grid.js b/app/lib/ui/grid.js index 49dacd2..6e9f24a 100644 --- a/app/lib/ui/grid.js +++ b/app/lib/ui/grid.js @@ -6,6 +6,9 @@ let grid; class Grid { constructor() { this.swatchesElem = {}; + this.projector_cmds = [ + 'PF', 'PB', 'P2F', 'P2B', 'PPF', 'PPB' + ]; } init() { this.refresh(); @@ -24,8 +27,8 @@ class Grid { const step = seq.grid[x]; let className; let className2; + elem.prop('checked', false); if (typeof step !== 'undefined') { - elem.prop('checked', false); if (step.cmd === cfg.cmd.cameras_forward) { className = cfg.cmd.camera_forward; className2 = cfg.cmd.camera_second_forward; @@ -58,6 +61,14 @@ class Grid { className = cfg.cmd.projector_backward; className2 = cfg.cmd.projector_second_forward; } + else if (step.cmd === cfg.cmd.black_forward) { + className = cfg.cmd.camera_forward; + className2 = 'black'; + } + else if (step.cmd === cfg.cmd.black_backward) { + className = cfg.cmd.camera_backward; + className2 = 'black'; + } else { className = step.cmd; } @@ -75,6 +86,12 @@ class Grid { .removeClass('a') .prop('title', ''); } + if (capper.enabled && this.projector_cmds.indexOf(step.cmd) !== -1) { + $(`.black[x=${x}]`).addClass('disabled'); + } + else if (capper.enabled) { + $(`.black[x=${x}]`).removeClass('disabled'); + } } else { lightElem.css('background', 'transparent') @@ -113,6 +130,7 @@ class Grid { 'camera_second_backward', 'projector_backward', 'projector_second_backward', + 'black', 'light_set', 'numbers' ]; @@ -132,6 +150,10 @@ class Grid { elem = `
`; $(cmd).append($(elem)); } + else if (cmds[i] === 'black') { + elem = ``; + $(cmd).append($(elem)); + } else { elem = ``; $(cmd).append($(elem).addClass(cfg.cmd[cmds[i]])); @@ -159,7 +181,24 @@ class Grid { current = seq.grid[x].cmd + ''; // cast to string, bad hack } if (checked) { - if (cam.second.enabled && current.indexOf('C') !== -1) { + if (c.indexOf('black') !== -1) { + if (other === '') { + c = cfg.cmd.black_forward; + } + else if (current.indexOf('C') !== -1) { + if (other == cfg.cmd.camera_forward) { + c = cfg.cmd.black_forward; + } + else if (other === cfg.cmd.camera_backward) { + c = cfg.cmd.black_backward; + } + } + else if (current.indexOf('P') !== -1) { + $(elem).prop('checked', false); + return; + } + } + else if (cam.second.enabled && current.indexOf('C') !== -1) { if (c === cfg.cmd.camera_forward) { if (other === cfg.cmd.camera_second_forward) { c = cfg.cmd.cameras_forward; @@ -254,7 +293,27 @@ class Grid { seq.set(x, c); } else { - if (cam.second.enabled && current.indexOf('C') !== -1) { + if (c.indexOf('black') !== -1) { + if (current === 'BF' || current === 'BB') { + if (other === cfg.cmd.camera_forward) { + c = cfg.cmd.camera_forward; + } + else if (other === cfg.cmd.camera_backward) { + c = cfg.cmd.camera_backward; + } + } + else if (current.indexOf('P') !== -1) { + $(elem).prop('checked', false); + return; + } + } + else if (other === 'black' && current === cfg.cmd.camera_forward) { + c = ''; + } + else if (other === 'black' && current === cfg.cmd.camera_backward) { + c = ''; + } + else if (cam.second.enabled && current.indexOf('C') !== -1) { if (current === cfg.cmd.cameras_forward) { if (other === cfg.cmd.camera_second_forward) { c = cfg.cmd.camera_second_forward; diff --git a/app/lib/ui/grid.js.map b/app/lib/ui/grid.js.map index c2aef30..4ed300f 100644 --- a/app/lib/ui/grid.js.map +++ b/app/lib/ui/grid.js.map @@ -1 +1 @@ -{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/lib/ui/grid.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/lib/ui/grid.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/seq.js b/app/lib/ui/seq.js index 7cfa5ec..adf701e 100644 --- a/app/lib/ui/seq.js +++ b/app/lib/ui/seq.js @@ -47,10 +47,19 @@ class Sequence { log.info('Sequence stopped', 'SERIAL', true); timeStr = (arg.ms < 2000) ? `${arg.ms}ms` : humanizeDuration(arg.ms); gui.notify(`SEQUENCE`, `Sequence finished in ${timeStr}`); + if (capper.enabled && this.arr.some(this.hasCapper)) { + $('#cmd_capper_off').addClass('active'); + $('#cmd_capper_on').removeClass('active'); + } } } return event.returnValue = true; } + hasCapper(el) { + if (['BF', 'BB'].indexOf(el.cmd) !== -1) { + return true; + } + } progress(step, loop) { const elem = $('.progress-bar'); const len = this.arr.length; diff --git a/app/lib/ui/seq.js.map b/app/lib/ui/seq.js.map index baae696..e4c4529 100644 --- a/app/lib/ui/seq.js.map +++ b/app/lib/ui/seq.js.map @@ -1 +1 @@ -{"version":3,"file":"seq.js","sourceRoot":"","sources":["../../src/lib/ui/seq.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"seq.js","sourceRoot":"","sources":["../../src/lib/ui/seq.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/main.js b/app/main.js index 1b6bd60..52909cf 100644 --- a/app/main.js +++ b/app/main.js @@ -127,12 +127,11 @@ var init = async function () { if (dev && dev.connected && dev.connected.projector_second) { proj2 = require('proj')(arduino, cfg, mainWindow.webContents, filmout, true) } - if (dev && dev.connected && dev.connected.capper) { capper = require('capper')(arduino, cfg, mainWindow.webContents, filmout, true) } - - cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2) + + cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2, capper) seq = require('sequencer')(cfg, cmd, mainWindow.webContents) } diff --git a/app/scripts/dev.sh b/app/scripts/dev.sh index 1da49e1..262fdcc 100644 --- a/app/scripts/dev.sh +++ b/app/scripts/dev.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + # compile main process code cd .. npm run compile diff --git a/app/src/lib/ui/capper.ts b/app/src/lib/ui/capper.ts index f910e80..878d8f4 100644 --- a/app/src/lib/ui/capper.ts +++ b/app/src/lib/ui/capper.ts @@ -19,7 +19,7 @@ class Capper { queue : any = {}; lock : boolean = false; id : string = 'capper'; - state : boolean = true; + state : boolean = false; constructor () { @@ -30,11 +30,15 @@ class Capper { } public enable () { - $('.capper').addClass('on'); - enabled = true + $('.black').addClass('on'); + $('#cmd_black_forward').parent().removeClass('hide'); + $('#cmd_black_backward').parent().removeClass('hide'); + $('#cmd_capper_on').parent().removeClass('hide'); + $('#cmd_capper_off').parent().removeClass('hide'); + this.enabled = true; } - public set (state : boolean, callback : Function) { + public capper (state : boolean, callback : Function) { let obj : CapperEvent; if (this.lock) { @@ -54,6 +58,15 @@ class Capper { this.queue[obj.id] = obj; this.lock = true; + this.state = state; + + if (state) { + $('#cmd_capper_on').addClass('active'); + $('#cmd_capper_off').removeClass('active'); + } else { + $('#cmd_capper_off').addClass('active'); + $('#cmd_capper_on').removeClass('active'); + } } public end (c : string, id : string, ms : number) { diff --git a/app/src/lib/ui/devices.ts b/app/src/lib/ui/devices.ts index c10b979..1fa510c 100644 --- a/app/src/lib/ui/devices.ts +++ b/app/src/lib/ui/devices.ts @@ -81,12 +81,6 @@ class Devices { } //devices.profile(arg.profile) } - - seq.set(0, cfg.cmd.camera_forward); - seq.set(1, cfg.cmd.projector_forward); - grid.state(0); - grid.state(1); - seq.stats(); if (arg.projector_second) { //add second row of projector pads to grid @@ -97,8 +91,16 @@ class Devices { cam.second.enable(); } if (arg.capper) { + //add capper features to grid capper.enable(); } + + seq.set(0, cfg.cmd.camera_forward); + seq.set(1, cfg.cmd.projector_forward); + grid.state(0); + grid.state(1); + seq.stats(); + return event.returnValue = true; } diff --git a/app/src/lib/ui/grid.ts b/app/src/lib/ui/grid.ts index 5cc6435..334369a 100644 --- a/app/src/lib/ui/grid.ts +++ b/app/src/lib/ui/grid.ts @@ -19,6 +19,9 @@ let grid : Grid; *******/ class Grid { private swatchesElem : any = {}; + private projector_cmds : string[] = [ + 'PF', 'PB', 'P2F', 'P2B', 'PPF', 'PPB' + ]; constructor () { } @@ -40,8 +43,9 @@ class Grid { const step : Step = seq.grid[x]; let className : string; let className2 : string; + + elem.prop('checked', false); if (typeof step !== 'undefined') { - elem.prop('checked', false); if (step.cmd === cfg.cmd.cameras_forward) { className = cfg.cmd.camera_forward; className2 = cfg.cmd.camera_second_forward; @@ -67,6 +71,12 @@ class Grid { } else if (step.cmd === cfg.cmd.projector_backward_projector_second_forward) { className = cfg.cmd.projector_backward; className2 = cfg.cmd.projector_second_forward; + } else if (step.cmd === cfg.cmd.black_forward) { + className = cfg.cmd.camera_forward; + className2 = 'black'; + } else if (step.cmd === cfg.cmd.black_backward) { + className = cfg.cmd.camera_backward; + className2 = 'black'; } else { className = step.cmd; } @@ -80,12 +90,17 @@ class Grid { lightElem.css('background', `rgb(${step.light})`) .addClass('a') .prop('title', `rgb(${seq.light})`); - } else { lightElem.css('background', 'transparent') .removeClass('a') .prop('title', ''); } + if (capper.enabled && this.projector_cmds.indexOf(step.cmd) !== -1) { + $(`.black[x=${x}]`).addClass('disabled'); + } else if (capper.enabled) { + $(`.black[x=${x}]`).removeClass('disabled'); + } + } else { lightElem.css('background', 'transparent') .removeClass('a') @@ -142,6 +157,9 @@ class Grid { } else if (cmds[i] === 'light_set') { elem = `
` $(cmd).append($(elem)); + } else if (cmds[i] === 'black') { + elem = ``; + $(cmd).append($(elem)); } else { elem = ``; $(cmd).append($(elem).addClass(cfg.cmd[cmds[i]])); @@ -170,7 +188,20 @@ class Grid { current = seq.grid[x].cmd + ''; // cast to string, bad hack } if (checked) { - if (cam.second.enabled && current.indexOf('C') !== -1) { + if (c.indexOf('black') !== -1) { + if (other === '') { + c = cfg.cmd.black_forward; + } else if (current.indexOf('C') !== -1) { + if (other == cfg.cmd.camera_forward) { + c = cfg.cmd.black_forward; + } else if (other === cfg.cmd.camera_backward) { + c = cfg.cmd.black_backward; + } + } else if (current.indexOf('P') !== -1) { + $(elem).prop('checked', false); + return; + } + } else if (cam.second.enabled && current.indexOf('C') !== -1) { if (c === cfg.cmd.camera_forward) { if (other === cfg.cmd.camera_second_forward) { c = cfg.cmd.cameras_forward; @@ -198,7 +229,6 @@ class Grid { } } else if (proj.second.enabled && current.indexOf('P') !== -1) { if (c === cfg.cmd.projector_forward) { - if (current === cfg.cmd.projectors_backward) { c = cfg.cmd.projector_forward_projector_second_backward; } else if (current === cfg.cmd.projector_backward_projector_second_forward) { @@ -209,7 +239,6 @@ class Grid { c = cfg.cmd.projector_forward_projector_second_backward; } } else if (c === cfg.cmd.projector_backward) { - if (current === cfg.cmd.projectors_forward) { c = cfg.cmd.projector_backward_projector_second_forward; } else if (current === cfg.cmd.projector_forward_projector_second_backward) { @@ -220,7 +249,6 @@ class Grid { c = cfg.cmd.projectors_backward; } } else if (c === cfg.cmd.projector_second_forward) { - if (current === cfg.cmd.projectors_backward) { c = cfg.cmd.projector_backward_projector_second_forward; } else if (current === cfg.cmd.projector_forward_projector_second_backward) { @@ -231,7 +259,6 @@ class Grid { c = cfg.cmd.projector_backward_projector_second_forward; } } else if (c === cfg.cmd.projector_second_backward) { - if (current === cfg.cmd.projectors_forward) { c = cfg.cmd.projector_forward_projector_second_backward; } else if (current === cfg.cmd.projector_backward_projector_second_forward) { @@ -245,7 +272,22 @@ class Grid { } seq.set(x, c); } else { - if (cam.second.enabled && current.indexOf('C') !== -1) { + if (c.indexOf('black') !== -1) { + if (current === 'BF' || current === 'BB') { + if (other === cfg.cmd.camera_forward) { + c = cfg.cmd.camera_forward; + } else if (other === cfg.cmd.camera_backward) { + c = cfg.cmd.camera_backward; + } + } else if (current.indexOf('P') !== -1) { + $(elem).prop('checked', false); + return; + } + } else if (other === 'black' && current === cfg.cmd.camera_forward) { + c = ''; + } else if (other === 'black' && current === cfg.cmd.camera_backward) { + c = ''; + } else if (cam.second.enabled && current.indexOf('C') !== -1) { if (current === cfg.cmd.cameras_forward) { if (other === cfg.cmd.camera_second_forward) { c = cfg.cmd.camera_second_forward; diff --git a/app/src/lib/ui/seq.ts b/app/src/lib/ui/seq.ts index d946779..5e4d91e 100644 --- a/app/src/lib/ui/seq.ts +++ b/app/src/lib/ui/seq.ts @@ -71,11 +71,21 @@ class Sequence { log.info('Sequence stopped', 'SERIAL', true); timeStr = ( arg.ms < 2000 ) ? `${arg.ms}ms` : humanizeDuration(arg.ms); gui.notify(`SEQUENCE`, `Sequence finished in ${timeStr}`); + if (capper.enabled && this.arr.some(this.hasCapper)) { + $('#cmd_capper_off').addClass('active'); + $('#cmd_capper_on').removeClass('active'); + } } } return event.returnValue = true; } + private hasCapper (el : any) { + if (['BF', 'BB'].indexOf(el.cmd) !== -1) { + return true; + } + } + private progress (step : number, loop : number) { const elem : any = $('.progress-bar'); const len : number = this.arr.length; diff --git a/data/cfg.json b/data/cfg.json index 52b86ca..8b82f50 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -15,8 +15,8 @@ "momentary": 0 }, "black": { - "before": 0, - "after": 0 + "before": 100, + "after": 100 }, "light": false }, diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index 52b86ca..8b82f50 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -15,8 +15,8 @@ "momentary": 0 }, "black": { - "before": 0, - "after": 0 + "before": 100, + "after": 100 }, "light": false }, diff --git a/src/capper/index.ts b/src/capper/index.ts index 4c324a3..1bc4824 100644 --- a/src/capper/index.ts +++ b/src/capper/index.ts @@ -65,17 +65,17 @@ class Capper { } catch (err) { this.log.error(err); } + return await this.end(cmd, id, ms); } - /** * **/ private async listener (event : any, arg : any) { - if (typeof arg.capper !== 'undefined') { + if (typeof arg.state !== 'undefined') { try { - await this.capper(arg.capper, arg.id) + await this.capper(arg.state, arg.id) } catch (err) { this.log.error(err) } diff --git a/src/cmd/index.ts b/src/cmd/index.ts index 0006e16..ce6c30e 100644 --- a/src/cmd/index.ts +++ b/src/cmd/index.ts @@ -11,6 +11,8 @@ class Commands { private cam2 : any; private proj2 : any; + private capper : any; + private cfg : any; private ipc : any; @@ -26,15 +28,16 @@ class Commands { * @param {object} proj2 {optional} Projector 2 **/ - constructor (cfg : any, proj : any, cam : any, light : any, cam2 : any = null, proj2 : any = null) { + constructor (cfg : any, proj : any, cam : any, light : any, cam2 : any = null, proj2 : any = null, capper : any = null) { this.cfg = cfg; this.proj = proj; this.cam = cam; this.light = light; - if (cam2) this.cam2 = cam2; - if (proj2) this.proj2 = proj2; - + if (cam2 !== null) this.cam2 = cam2; + if (proj2 !== null) this.proj2 = proj2; + if (capper !== null) this.capper = capper; + this.ipc = require('electron').ipcMain; } @@ -111,18 +114,25 @@ class Commands { public async black_forward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; - let ms : number; + let ms : number = 0; try { if (!this.cam.state.dir) { await delay(this.cfg.arduino.serialDelay); await this.cam.set(true); } await delay(this.cfg.arduino.serialDelay); + if (this.capper) { + ms += await this.capper.capper(true, id); + } + await delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); //make sure set to off await delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); + ms += await this.cam.move(); await delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); + if (this.capper) { + ms += await this.capper.capper(false, id); + } } catch (err) { throw err; } @@ -163,18 +173,24 @@ class Commands { public async black_backward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; - let ms : number; + let ms : number = 0; try { if (this.cam.state.dir) { await delay(this.cfg.arduino.serialDelay); await this.cam.set(false); } + if (this.capper) { + ms += await this.capper.capper(true, id); + } await delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); //make sure set to off await delay(this.cfg.arduino.serialDelay); - ms = await this.cam.move(); + ms += await this.cam.move(); await delay(this.cfg.arduino.serialDelay); await this.light.set(off, id); + if (this.capper) { + ms += await this.capper.capper(false, id); + } } catch (err) { throw err; } @@ -575,6 +591,6 @@ class Commands { } } -module.exports = function (cfg : any, proj : any, cam : any, light : any, cam2 : any, proj2 : any) { - return new Commands(cfg, proj, cam, light, cam2, proj2); +module.exports = function (cfg : any, proj : any, cam : any, light : any, cam2 : any, proj2 : any, capper : any) { + return new Commands(cfg, proj, cam, light, cam2, proj2, capper); } \ No newline at end of file diff --git a/src/devices/index.ts b/src/devices/index.ts index 95902b6..4cd1dc7 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -403,7 +403,7 @@ class Devices { let d : any let cs : any = {} let ps : any = {} - let capper : any; + let capper : any = {} let checklist : any[] = [] this.connected = { @@ -448,17 +448,15 @@ class Devices { l.arduino = this.connected.light if (this.connected.camera_second) { - cs = { arduino : this.connected.camera_second } + cs.arduino = this.connected.camera_second } if (this.connected.projector_second) { - ps = { arduino : this.connected.projector_second } + ps.arduino = this.connected.projector_second } if (this.connected.capper) { - capper = { arduino : this.connected.capper } - } else { - await this.fakeCapper() + capper.arduino = this.connected.capper } if (this.settings.state.camera && this.settings.state.camera.intval) { @@ -514,7 +512,7 @@ class Devices { } } - if (capper) { + if (capper && capper.arduino) { args.capper = capper this.mainWindow.setSize(800, 800) this.settings.update('capper', capper) -- 2.40.1 From 6582154ec65904bb036528527e38830bb8996615 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 17 Jul 2022 09:56:03 -0400 Subject: [PATCH 29/89] Fix debug script and component --- ino/components/mcopy_capper/mcopy_capper.ino | 4 ++-- ino/components/mcopy_servo_debug/mcopy_servo_debug.ino | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ino/components/mcopy_capper/mcopy_capper.ino b/ino/components/mcopy_capper/mcopy_capper.ino index a677500..0cae7b8 100644 --- a/ino/components/mcopy_capper/mcopy_capper.ino +++ b/ino/components/mcopy_capper/mcopy_capper.ino @@ -1,6 +1,6 @@ #include -boolean debug_state = true; +boolean debug_state = false; /* ---------------------------------------------------- @@ -21,7 +21,7 @@ as servos for development * ------------------------------------------------*/ //Arduino Duemilanove + //Arduino Uno -const int PIN_SERVO = 9; +const int PIN_SERVO = 6; volatile boolean running = false; volatile boolean cap_state = false; diff --git a/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino b/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino index 4788f54..5ebec80 100644 --- a/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino +++ b/ino/components/mcopy_servo_debug/mcopy_servo_debug.ino @@ -1,6 +1,6 @@ #include -const int PIN_SERVO = 9; +const int PIN_SERVO = 6; Servo servo; /* @@ -25,7 +25,10 @@ void setup() { } void loop() { - + delay(1000); + servo.write(153); + delay(1000); + servo.write(93); } void Servo_init () { -- 2.40.1 From 3f759f5678005400488d4cd24e4fa457ebc983d7 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 17 Jul 2022 09:57:52 -0400 Subject: [PATCH 30/89] Add the ability to detect a single capper device --- app/lib/devices/index.js | 10 ++++++++++ app/lib/devices/index.js.map | 2 +- src/devices/index.ts | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/lib/devices/index.js b/app/lib/devices/index.js index 5c1cf3b..2ace91e 100644 --- a/app/lib/devices/index.js +++ b/app/lib/devices/index.js @@ -362,6 +362,16 @@ class Devices { return false; } } + else if (type === 'capper') { + this.connected.capper = device; + try { + connectSuccess = await this.arduino.connect('capper', device, false); + } + catch (err) { + this.log.error('Error connecting capper', err); + return false; + } + } else if (type === 'camera,capper') { this.connected.camera = device; this.connected.capper = device; diff --git a/app/lib/devices/index.js.map b/app/lib/devices/index.js.map index dfa0600..45eac8b 100644 --- a/app/lib/devices/index.js.map +++ b/app/lib/devices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/devices/index.ts b/src/devices/index.ts index 4cd1dc7..1fc5263 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -351,6 +351,14 @@ class Devices { this.log.error('Error connecting to camera, camera_second, projector and projector_second', err) return false } + } else if (type === 'capper') { + this.connected.capper = device + try { + connectSuccess = await this.arduino.connect('capper', device, false) + } catch (err) { + this.log.error('Error connecting capper', err) + return false + } } else if (type === 'camera,capper') { this.connected.camera = device this.connected.capper = device -- 2.40.1 From f55b72044cc39f9ae7dbdb42a4fa64dfa332a5be Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 17 Jul 2022 11:05:20 -0400 Subject: [PATCH 31/89] Mcopy firmware with optional capper feature --- ...copy_mono_firmware_camera_bolex_capper.ino | 260 ++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 ino/mcopy_mono_firmware_camera_bolex_capper/mcopy_mono_firmware_camera_bolex_capper.ino diff --git a/ino/mcopy_mono_firmware_camera_bolex_capper/mcopy_mono_firmware_camera_bolex_capper.ino b/ino/mcopy_mono_firmware_camera_bolex_capper/mcopy_mono_firmware_camera_bolex_capper.ino new file mode 100644 index 0000000..62e83a7 --- /dev/null +++ b/ino/mcopy_mono_firmware_camera_bolex_capper/mcopy_mono_firmware_camera_bolex_capper.ino @@ -0,0 +1,260 @@ +/** + * This is a specialized version of the mcopy firmware for + * controlling the JK104-R/Bolex camera of the optical printer + * at MONO NO AWARE. This uses a Sainsmart 8 Solid State Relay + * board wired into the directional switches of a JK104-R/Bolex camera + * controller box, a secondary projector controller box and it + * runs on an Arduino Uno compatible board. + * + * 7/17/2022 + * + * This firmware has been modified to include an optional capper element. + * + * Pins + * 12 - CH1 - BWD CAM 1 + * 11 - CH2 - FWD CAM 1 (bridged to CH1) + * 10 - CH3 - BWD CAM 1 + * 09 - CH4 - FWD CAM 1 (bridged to CH3) + * 08 - CH5 - BWD CAM 1 + * - controls the directional relays of the Bolex Camera. + * 07 - CH8 - 4 pronged trigger cable + * - triggers the camera + * + * 06 - SIGNAL - Capper servo signal + * 05 - GND - Closed circuit to GND in cable to detect capper is attached. + */ + +#include + +boolean debug_state = false; + +Servo servo; + +const int cam_bwd_pin_1 = 12; +const int cam_fwd_pin_1 = 11; +const int cam_bwd_pin_2 = 10; +const int cam_fwd_pin_2 = 9; +const int cam_bwd_pin_3 = 8; +const int cam_pin = 7; +const int capper_pin = 6; //servo +const int capper_exists_pin = 5; + +const int cam_momentary = 60; +const int cam_time = 600; //secondary projector speed +const int cam_delay = 42; + +volatile boolean cam_dir = true; +volatile boolean cam_running = false; +volatile boolean capper_exists = false; +volatile boolean capper_state = false; + +volatile int capper_angle = 0; +const int capper_on_angle = 153; // tune this variable to your servo +const int capper_off_angle = 93; // -60 degrees apart + +//SG-5010 speed 0.18s / 60 degree +// +//converted to milliseconds/angle +const float servo_speed = 400.0 / 60.0; + +const char cmd_camera = 'c'; +const char cmd_cam_forward = 'e'; +const char cmd_cam_backward = 'f'; + +const char cmd_debug = 'd'; +const char cmd_connect = 'i'; +volatile char cmd_char = 'z'; +const char cmd_mcopy_identifier = 'm'; +const char cmd_cam_identifier = 'k'; + +const char cmd_camera_capper_identifier = '8'; +const char cmd_capper_on = 'A'; +const char cmd_capper_off = 'B'; + +const int serialDelay = 5; + +void setup() { + Serial.begin(57600); + Serial.flush(); + Serial.setTimeout(serialDelay); + + pinMode(cam_fwd_pin_1, OUTPUT); + pinMode(cam_bwd_pin_1, OUTPUT); + + pinMode(cam_fwd_pin_2, OUTPUT); + pinMode(cam_bwd_pin_2, OUTPUT); + + pinMode(cam_bwd_pin_3, OUTPUT); + + pinMode(cam_pin, OUTPUT); + + pinMode(capper_exists_pin, INPUT_PULLUP); + + digitalWrite(cam_pin, LOW); + + digitalWrite(cam_fwd_pin_1, HIGH); + digitalWrite(cam_fwd_pin_2, HIGH); + + digitalWrite(cam_bwd_pin_1, LOW); + digitalWrite(cam_bwd_pin_2, LOW); + digitalWrite(cam_bwd_pin_3, LOW); + + capper_init(); +} + +void loop() { + if (Serial.available()) { + /* read the most recent byte */ + cmd_char = (char)Serial.read(); + } + if (cmd_char != 'z') { + cmd(cmd_char); + cmd_char = 'z'; + } +} + +void cmd (char val) { + if (val == cmd_debug) { + debug(); + } else if (val == cmd_connect) { + connect(); + } else if (val == cmd_mcopy_identifier) { + identify(); + } else if (val == cmd_camera) { + camera(); + } else if (val == cmd_cam_forward) { + cam_direction(true); + } else if (val == cmd_cam_backward) { + cam_direction(false); + } else if (capper_exists && val == cmd_capper_on) { + capper_on(false, false); + } else if (capper_exists && val == cmd_capper_off) { + capper_off(false, false); + } +} + +void debug () { + debug_state = true; + Serial.println(cmd_debug); + log("debugging enabled"); +} + +void connect () { + Serial.println(cmd_connect); + log("connect()"); +} + +void identify () { + if (capper_exists) { + Serial.println(cmd_camera_capper_identifier); + } else { + Serial.println(cmd_cam_identifier); + } + log("identify()"); +} + +void camera () { + if (!cam_running) { + cam_running = true; + digitalWrite(cam_pin, HIGH); + + delay(cam_momentary); + digitalWrite(cam_pin, LOW); + + delay(cam_time - cam_momentary + cam_delay); + + Serial.println(cmd_camera); + log("camera()"); + cam_running = false; + + } +} + +void cam_direction (boolean state) { + cam_dir = state; + digitalWrite(cam_fwd_pin_1, LOW); + digitalWrite(cam_fwd_pin_2, LOW); + + digitalWrite(cam_bwd_pin_1, LOW); + digitalWrite(cam_bwd_pin_2, LOW); + digitalWrite(cam_bwd_pin_3, LOW); + + if (state) { + digitalWrite(cam_fwd_pin_1, HIGH); + digitalWrite(cam_fwd_pin_2, HIGH); + + Serial.println(cmd_cam_forward); + log("cam_direction -> true"); + } else { + digitalWrite(cam_bwd_pin_1, HIGH); + digitalWrite(cam_bwd_pin_2, HIGH); + digitalWrite(cam_bwd_pin_3, HIGH); + + Serial.println(cmd_cam_backward); + log("cam_direction -> false"); + } + //delay(50); //delay after direction change to account for slippage of the belt +} + +boolean does_capper_exist () { + boolean exists = false; + if (digitalRead(capper_exists_pin) == 0) { + exists = true; + } + return exists; +} + +void capper_init () { + capper_exists = does_capper_exist(); + if (capper_exists) { + log("Capper exists"); + servo.attach(capper_pin); + capper_off(true, true); + } +} + +void set_capper_angle (int newAngle) { + int delay_time = get_capper_delay(newAngle, capper_angle) + 50; + servo.write(newAngle); + delay(delay_time); + capper_angle = newAngle; +} + +int get_capper_delay (int angleA, int angleB) { + int range = abs(angleA - angleB); + return (int) ceil((float) range * servo_speed); +} + +void capper_off (boolean suppress, boolean force) { + int current_angle = servo.read(); + if (capper_state || current_angle != capper_off_angle) { + set_capper_angle(capper_off_angle); + capper_state = false; + } else { + log("Capper already off"); + } + log("cap_off()"); + if (!suppress) { + Serial.println(cmd_capper_off); + } +} + +void capper_on (boolean suppress, boolean force) { + int current_angle = servo.read(); + if (!capper_state || current_angle != capper_on_angle) { + set_capper_angle(capper_on_angle); + capper_state = true; + } else { + log("Capper already on"); + } + log("capper_on()"); + if (!suppress) { + Serial.println(cmd_capper_on); + } +} + +void log (String msg) { + if (debug_state) { + Serial.println(msg); + } +} \ No newline at end of file -- 2.40.1 From 1964d6002d62ab309444159b6e908c4d9cf50025 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 22 Jul 2022 21:56:43 -0400 Subject: [PATCH 32/89] Add mono logo as png, but might use svg instead. Render crashed PC. --- scad/mono_logo.png | Bin 0 -> 109506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 scad/mono_logo.png diff --git a/scad/mono_logo.png b/scad/mono_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5df57ba67743ecf3895c9fb548acba9124cac2 GIT binary patch literal 109506 zcmeI*y=x^^7zXeeSy3ZfiH()8SgiO5tc{X2!Cb{vBnVo_3W9}=U}KjctY{(X`UhCL zAS_r3ij5#{VJ8-TAU2j_qgIl5CgaB3yC?U3=bh(#KLgp_oIK~v+~2&jIrrYlz3)78 z>G880_ic1tcXqL}^=#MmPYfS-x`FP+i;ExJUuRy~d}_1nK7H@*e_p!XeSX(#JI}w~ zb@%={eDv?`K6Ih$?(Y^`o4arHUB7>@*B`nRH-x}#h$5^p2#^xi2c#q=OaNAhT}euq z0IU$Zl9Vt3SRr;LDPaPzLhMRX!USN2*p;M&3BU@mD@h3xfE8j_k`g8WE5xoOB}@QT zh+Roam;kI0yONYvfg4YLw|(jKEP zC8I>%tQkScyFyCYNSPp|5=xGdQZ`a1NU4O9W2BUglnGKQq2w4TWg}&Rlu9T$MoQU8 znINSSN{*3IHc}=?sf3baq?C=62~sMdx-O4&%6Af*yYj*(I}QYJ{L zgpy;Vl#P@LQYxY37%62VWdca~+s9WQDDqkWCDoJ|kafzptuaeV*ij`VDPaPzLhMRX z!USN2*p;M&3BU@mD@h3xIJHpUpZX>57tVM`IoM5fbYi6Rwas)#QhFRsj6)rE<&vh^ zk(4k;QvOdlrys{EJi!Nt`Hrp#DKUsSwEa>q(2=Q|!Eo;)l5;S7YMYbn51Hf27J z?obp=nU!O~l({*UN|~W!k(7BlmPeVbV_}pzJC;P5xnnVu5XZOAUvs~<6z4qx3Rq)8 zOkD?s-g2ib#nBz7tSJj}%$l++$9yS^bIg>oM8_N{3w6wnvRuc!D2sN?h_ZCYTqrAW z%!0BG$MlrdI3}j7$uT8mWsb=x>vK#)S*2qF%32*`Q&#L4m9lQfc$C#UMxt!NF$QHL zj=?G0aSTg2%kk;o&%Lm8Ex@7M*>bi}Pvp)rJ>o0N(d}{&$_5>SP`2rar)<^{Oxdy{ zlCp6}7$qGslyr2C07^QJj&mvLc8NEIbDMMoFVQm)nf{Lzg^maYZReCMIjt3B%{u&$L=K^}#w z)tp92%{47EnG&a2+o^7$95wj^ex*Z=ltUFRmzFJOP*M{~NzD_Q^SW{@#54WK0YS;$ zL{d_7(w)d7`n7+weWrs>@MGbIHPMvgnLc~@K0LnXj!IEm0LtO^x7eJ4C|lGFN7NlCm<*#FRB@rl%Y=XRkohKjfJOrPHk7KhA6@ z%h$|_vT)7JC`;DNkFr?JEGf&>%#{+S8SNp@j445y(H`>5n{w2gy?l?OnLVY`EM)m! z1Z5eTrBD{2SrBFJnq^UDtyvspzM3Uc;xwVl_d+R0&Ab+z^w03lQWGfPWJu&^{{4in59tb0al$=xC5!vmQzZnpU$a z%CwrbQ6|)^kTR8Kos^^I{5wXjj()3_av+HNW2kD%xSF+7M$~M8GL~i=luCturPBupV>4?=|5No%^EJt@?%6FmEJlk`VN)* z4M_<*cBCXFOaNAhT}euq0IU$Zl9Vt3SRr;LDPaPzLhMRX!USN2*p;M&3BU@mD@h3x zfE8j_k`g8WE5xoOB}@QTh+UZr<&}FLi~PC(uv;Fq5IYpcOG;A01Ym{Om866TzzVS| zNeL5x6=GMC5+(pE#I7VIOaNAhT}euq0IU$Zl9Vt3SRr;LDPaPzLhMRX!USN2*p;M& z3BU@mD@h3xfE8j_nkYZG{L#znUKgPMYslNUt4Tn+PZ%6@|*tx&0`E{ literal 0 HcmV?d00001 -- 2.40.1 From ee0ab663d719fa71b8160b41903252c49eaf9250 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 3 Aug 2022 09:02:47 -0400 Subject: [PATCH 33/89] Complete the alert feature. Have not created pause, but this could be done using the same alert object to prevent code duplication. --- app/js/app.js | 2 + app/lib/alert/index.js | 58 +++++++++++++++++++++++++++++ app/lib/alert/index.js.map | 1 + app/lib/cmd/index.js | 64 ++++++++++++++++++++++---------- app/lib/cmd/index.js.map | 2 +- app/lib/mscript/index.js | 40 +++++++++++++++++--- app/lib/mscript/index.js.map | 2 +- app/lib/sequencer/index.js | 3 +- app/lib/sequencer/index.js.map | 2 +- app/lib/ui/alert.js | 27 ++++++++++++++ app/lib/ui/alert.js.map | 1 + app/main.js | 5 ++- app/package-lock.json | 9 +++++ app/package.json | 1 + app/src/index.js | 2 + app/src/lib/ui/alert.ts | 40 ++++++++++++++++++++ src/alert/index.ts | 68 ++++++++++++++++++++++++++++++++++ src/cmd/index.ts | 67 +++++++++++++++++++++++---------- src/mscript/index.ts | 52 +++++++++++++++++++++++--- src/sequencer/index.ts | 3 +- 20 files changed, 390 insertions(+), 59 deletions(-) create mode 100644 app/lib/alert/index.js create mode 100644 app/lib/alert/index.js.map create mode 100644 app/lib/ui/alert.js create mode 100644 app/lib/ui/alert.js.map create mode 100644 app/src/lib/ui/alert.ts create mode 100644 src/alert/index.ts diff --git a/app/js/app.js b/app/js/app.js index 983c5cd..c014b66 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2499,6 +2499,7 @@ const mse = require('./lib/ui/mscript.js'); const capper = require('./lib/ui/capper.js'); const Mscript = require('./lib/mscript'); const { delay } = require('./lib/delay'); +const alertObj = require('./lib/ui/alert.js'); let log; @@ -2527,4 +2528,5 @@ async function init () { cam.init(); seq.init(); capper.init(); + alertObj.init(); }; \ No newline at end of file diff --git a/app/lib/alert/index.js b/app/lib/alert/index.js new file mode 100644 index 0000000..ba185a3 --- /dev/null +++ b/app/lib/alert/index.js @@ -0,0 +1,58 @@ +'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +/* class representing alert functionality */ +class Alert { + constructor(ui) { + this.id = 'alert'; + this.cb = null; + this.ui = ui; + this.init(); + } + /** + * + **/ + async init() { + const Log = require('log'); + this.log = await Log({ label: this.id }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + /** + * + **/ + listen() { + this.ipc.on(this.id, this.listener.bind(this)); + } + /** + * + **/ + async listener(event, arg) { + if (this.cb !== null) { + try { + await this.cb(arg.state, arg.id); + } + catch (err) { + this.log.error(err); + } + } + event.returnValue = true; + } + /** + * + **/ + async start(cmd) { + const start = +new Date(); + const msg = (cmd + '').replace('ALERT', '').replace('Alert', '').replace('alert', '').trim(); + this.ui.send(this.id, { msg }); + return new Promise(function (resolve, reject) { + this.cb = function () { + const ms = (+new Date()) - start; + return resolve(ms); + }; + }.bind(this)); + } +} +module.exports = function (ui) { + return new Alert(ui); +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/alert/index.js.map b/app/lib/alert/index.js.map new file mode 100644 index 0000000..be739ef --- /dev/null +++ b/app/lib/alert/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/alert/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,4CAA4C;AAE5C,MAAM,KAAK;IAOV,YAAc,EAAQ;QAJd,OAAE,GAAY,OAAO,CAAA;QACrB,OAAE,GAAc,IAAI,CAAA;QAI3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,IAAI;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;QACtC,IAAI,CAAC,MAAM,EAAE,CAAA;IACd,CAAC;IAED;;QAEI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED;;QAEI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;YACrB,IAAI;gBACH,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;aAChC;YAAC,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;SACD;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAED;;QAEI;IACG,KAAK,CAAC,KAAK,CAAE,GAAY;QAC/B,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACrG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9B,OAAO,IAAI,OAAO,CAAC,UAAU,OAAkB,EAAE,MAAiB;YACjE,IAAI,CAAC,EAAE,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;gBACjC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAA;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,EAAQ;IAClC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAA"} \ No newline at end of file diff --git a/app/lib/cmd/index.js b/app/lib/cmd/index.js index 951e444..db6fa3a 100644 --- a/app/lib/cmd/index.js +++ b/app/lib/cmd/index.js @@ -12,13 +12,14 @@ class Commands { * @param {object} cam Camera 1 * @param {object} light Light source * @param {object} cam2 (optional) Camera 2 - * @param {object} proj2 {optional} Projector 2 + * @param {object} proj2 (optional) Projector 2 **/ - constructor(cfg, proj, cam, light, cam2 = null, proj2 = null, capper = null) { + constructor(cfg, proj, cam, light, alert, cam2 = null, proj2 = null, capper = null) { this.cfg = cfg; this.proj = proj; this.cam = cam; this.light = light; + this.alertObj = alert; if (cam2 !== null) this.cam2 = cam2; if (proj2 !== null) @@ -70,13 +71,14 @@ class Commands { /** * Move the camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_forward(rgb = [255, 255, 255]) { + async camera_forward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let ms; try { if (!this.cam.state.dir) { @@ -131,13 +133,14 @@ class Commands { /** * Move the camera one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_backward(rgb = [255, 255, 255]) { + async camera_backward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let ms; try { if (this.cam.state.dir) { @@ -191,13 +194,14 @@ class Commands { /** * Move the second camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_second_forward(rgb = [255, 255, 255]) { + async camera_second_forward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let ms; try { if (!this.cam2.state.dir) { @@ -219,13 +223,14 @@ class Commands { /** * Move the second camera one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_second_backward(rgb = [255, 255, 255]) { + async camera_second_backward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let ms; try { if (this.cam2.state.dir) { @@ -247,13 +252,14 @@ class Commands { /** * Move the both cameras one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async cameras_forward(rgb = [255, 255, 255]) { + async cameras_forward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let both; let ms; try { @@ -288,13 +294,14 @@ class Commands { /** * Move the both cameras one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async cameras_backward(rgb = [255, 255, 255]) { + async cameras_backward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let both; let ms; try { @@ -329,13 +336,14 @@ class Commands { /** * Move first camera one frame forward and rewind secondary camera one frame backward * - * @param {array} rgb Color to set light for frames + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_forward_camera_second_backward(rgb = [255, 255, 255]) { + async camera_forward_camera_second_backward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let both; let ms; try { @@ -370,13 +378,14 @@ class Commands { /** * Rewind first camera one frame backward and move secondary camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - async camera_backward_camera_second_forward(rgb = [255, 255, 255]) { + async camera_backward_camera_second_forward() { const id = uuid_1.v4(); const off = [0, 0, 0]; + let rgb = [255, 255, 255]; let both; let ms; try { @@ -585,8 +594,23 @@ class Commands { } return ms; } + /** + * Throws an alert to pause a sequence + * + * @returns {integer} Length of action in ms + **/ + async alert(cmd) { + let ms; + try { + ms = await this.alertObj.start(cmd.light); //change this meta + } + catch (err) { + throw err; + } + return ms; + } } -module.exports = function (cfg, proj, cam, light, cam2, proj2, capper) { - return new Commands(cfg, proj, cam, light, cam2, proj2, capper); +module.exports = function (cfg, proj, cam, light, alert, cam2, proj2, capper) { + return new Commands(cfg, proj, cam, light, alert, cam2, proj2, capper); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/cmd/index.js.map b/app/lib/cmd/index.js.map index 7205729..b8797fd 100644 --- a/app/lib/cmd/index.js.map +++ b/app/lib/cmd/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index daf4dbd..eebb801 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -7,8 +7,22 @@ const CMD = [ 'BF', 'CB', 'PB', - 'BB' + 'BB', + 'C2F', + 'C2B', + 'CCF', + 'CCB', + 'P2F', + 'P2B', + 'PPF', + 'PPB' ]; +/* + 'CFCB', + 'CBCF', + 'PFPB', + 'PBPF' +*/ const ALTS = { 'CF': ['CAMERA FORWARD', 'CAM FORWARD'], 'PF': ['PROJECTOR FORWARD', 'PROJ FORWARD'], @@ -17,8 +31,22 @@ const ALTS = { 'PB': ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], 'BB': ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], 'L ': ['LIGHT', 'COLOR', 'LAMP'], - 'F ': ['FADE'] + 'F ': ['FADE'], + 'C2F': ['CAMERA2 FORWARD', 'CAM2 FORWARD'], + 'C2B': ['CAMERA2 BACKWARD', 'CAM2 BACKWARD', 'CAMERA2 BACK', 'CAM2 BACK'], + 'CCF': ['CAMERAS FORWARD', 'CAMS FORWARD'], + 'CCB': ['CAMERAS BACKWARD', 'CAMS BACKWARD', 'CAMERAS BACK', 'CAMS BACK'], + 'P2F': ['PROJECTOR2 FORWARD', 'PROJ2 FORWARD'], + 'P2B': ['PROJECTOR2 BACKWARD', 'PROJ2 BACKWARD', 'PROJECTOR2 BACK', 'PROJ2 BACK'], + 'PPF': ['PROJECTORS FORWARD', 'PROJS FORWARD'], + 'PPB': ['PROJECTORS BACKWARD', 'PROJS BACKWARD', 'PROJECTORS BACK', 'PROJS BACK'], }; +/* + 'CFCB' : [ ], + 'CBCF' : [ ], + 'PFPB' : [ ], + 'PBPF' : [ ] +*/ const PAUSE = 'PAUSE'; const ALERT = 'ALERT'; /** helper functions */ @@ -56,7 +84,9 @@ class Mscript { clear() { this.lines = []; this.cam = 0; + this.cam2 = 0; this.proj = 0; + this.proj2 = 0; this.color = ''; this.loops = []; this.rec = -1; @@ -654,7 +684,7 @@ class Mscript { .push(lenStr); } else { - this.arr.push('AL'); + this.arr.push('PA'); this.meta.push(lenStr); } } @@ -671,11 +701,11 @@ class Mscript { this.loops[this.rec].arr .push('AL'); this.loops[this.rec].meta - .push(msg); + .push(line); } else { this.arr.push('AL'); - this.meta.push(msg); + this.meta.push(line); } } /** diff --git a/app/lib/mscript/index.js.map b/app/lib/mscript/index.js.map index ea5ec61..2d3d46a 100644 --- a/app/lib/mscript/index.js.map +++ b/app/lib/mscript/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AASb,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,KAAK,GAAG,aAAa,CAAC;AAC5B,MAAM,GAAG,GAAG;IACX,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACL,CAAC;AACF;;;;;EAKE;AAEF,MAAM,IAAI,GAAG;IACZ,IAAI,EAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACxC,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC5C,IAAI,EAAG,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;IAC3D,IAAI,EAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC;IACrE,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC;IAC3E,IAAI,EAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC;IACrD,IAAI,EAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IACjC,IAAI,EAAG,CAAC,MAAM,CAAC;IACf,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACxC,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAC3C,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;IAClF,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;CACrF,CAAC;AACF;;;;;EAKE;AACF,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,KAAK,GAAG,OAAO,CAAC;AAEtB,uBAAuB;AAEvB;;;;;;IAMI;AACJ,SAAS,UAAU,CAAE,GAAY,EAAE,MAAe,EAAE,QAAkB;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,EAAE;QACjB,QAAQ,GAAG,CAAC,CAAC;KACb;SAAM,IAAI,QAAQ,GAAG,MAAM,EAAE;QAC7B,QAAQ,GAAG,MAAM,CAAC;KAClB;IACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAChE,CAAC;AAED,oBAAoB;AACpB,MAAM,OAAO;IAiBZ;;;QAGI;IAEJ;QACC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAEd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;QACvD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;;;;;;;;OASG;IACH,SAAS,CAAE,IAAa,EAAE,QAAmB;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7B;QAED,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;YAC7C,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,mDAAmD;YACvE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAA;QAEF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,oCAAoC;gBACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,2BAA2B;gBACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB;gBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC3D,UAAU;gBACV,sBAAsB;aACtB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;aAErC;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjB;SACD;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,+BAA+B;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAE7B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,mDAAmD;YACnD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;aAAM;YACN,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;IACF,CAAC;IACD;;;;;;QAMI;IACJ,QAAQ,CAAE,IAAa;QACtB,IAAI,KAAK,GAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,GAAY,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAS,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAa,KAAK,CAAC;QAE7B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACxC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,IAAI,KAAK;gBACT,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,qBAAqB;YACpD,IAAI;gBACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;YAAC,OAAO,GAAG,EAAE;gBACb,uBAAuB;aACvB;SACD;QACD,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC5B;QACD,6BAA6B;IAC9B,CAAC;IAED;;;;;;;QAOI;IACJ,gBAAgB,CAAC,IAAa;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAClC,IAAI,CAAC,YAAY,CAAC,IAAI,EACtB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACf;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACnE;IACF,CAAC;IACD;;;;;OAKG;IACH,QAAQ,CAAE,IAAa,EAAE,IAAe;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACtB,GAAG,EAAG,EAAE;YACR,IAAI,EAAG,EAAE;YACT,GAAG,EAAG,CAAC;YACP,IAAI,EAAG,CAAC;YACR,GAAG,EAAG,IAAI,GAAG,EAAE;SACf,CAAC;QACF,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;IACF,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,QAAmB,CAAC;QACxB,IAAI,KAAW,CAAC;QAChB,IAAI,GAAS,CAAC;QACd,IAAI,GAAY,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;gBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBACnC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACpC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAA;aACF;YACD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC1C;iBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;qBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI;qBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EACtC,QAAQ,CAAC,CAAC;aACd;SACD;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;OAIG;IACH,IAAI,CAAE,IAAa;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrC,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;;;OAMG;IACH,UAAU,CAAE,GAAa;QACxB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD;;;;;;OAMG;IACH,QAAQ,CAAE,GAAY;QACrB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACE;;;;;;;;;OASA;IACH,QAAQ,CAAE,KAAW,EAAE,GAAS,EAAE,GAAY,EAAE,CAAU;QACzD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACN,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;SACD;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1B,CAAC;IACD;;;;QAII;IACJ,GAAG,CAAE,GAAY;QAChB,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,IAAa,EAAE,EAAE;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAA;IACH,CAAC;IACD;;;;;;QAMI;IACJ,OAAO,CAAE,GAAS;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;;;;;OAKG;IACH,MAAM,CAAE,GAAY,EAAE,MAAe,CAAC;QACrC,IAAI,GAAG,KAAK,KAAK,EAAE;YAClB,8BAA8B;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBACnB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBACvC;qBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBAC3D;aACD;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;aAC3B;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5B;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;SAExB;IACF,CAAC;IACD;;;;;;;;OAQG;IACH,UAAU,CAAE,GAAY,EAAE,GAAY;QACrC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;;;;OAOG;IACH,YAAY,CAAE,GAAY,EAAE,GAAY;QACvC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAY,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,GAAG,KAAK,IAAI;mBACZ,GAAG,KAAK,IAAI,EAAE;gBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;iBAAM,IAAI,GAAG,KAAK,IAAI;mBAClB,GAAG,KAAK,IAAI,EAAE;gBAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChB;iBAAM;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACb;SACD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,WAAW,CAAE,GAAY;QACxB,oCAAoC;QACpC,MAAM,KAAK,GAAY,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;QAII;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,GAAY,CAAC;QACjB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEvB,IAAI;YACH,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;SACrD;QAAC,OAAO,GAAG,EAAE;YACb,GAAG,GAAG,CAAC,CAAC;SACR;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACf,GAAG,GAAG,CAAC,CAAC;SACR;QAED,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,MAAM,CAAC,CAAC;SACf;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3C,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;SACb;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;IACD,CAAC;IAEF;;;;OAIG;IACH,IAAI,CAAE,GAAY;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/app/lib/sequencer/index.js b/app/lib/sequencer/index.js index a742f34..443f866 100644 --- a/app/lib/sequencer/index.js +++ b/app/lib/sequencer/index.js @@ -230,8 +230,7 @@ class Sequencer { const cmdOriginal = this.arr[x].cmd; const cmd = this.CMDS[cmdOriginal]; this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); - //I wrote this when I was very tired and delirious - return await this.cmd[cmd](); + return await this.cmd[cmd](this.arr[x]); } } module.exports = function (cfg, cmd, ui) { diff --git a/app/lib/sequencer/index.js.map b/app/lib/sequencer/index.js.map index 08bcbc7..d6935bb 100644 --- a/app/lib/sequencer/index.js.map +++ b/app/lib/sequencer/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,2BAA4B;AAC5B,uCAA2C;AAG3C,6BAA6B;AAE7B,IAAI,GAAe,CAAC;AAEpB,MAAM,SAAS;IAoBd;;;;;;;QAOI;IAEJ,YAAa,GAAS,EAAE,GAAS,EAAE,EAAQ;QA5BnC,YAAO,GAAa,KAAK,CAAC;QAC1B,WAAM,GAAa,KAAK,CAAC;QAEzB,SAAI,GAAW,EAAE,CAAC;QAClB,cAAS,GAAY,CAAC,CAAC;QAEvB,QAAG,GAAW,EAAE,CAAC,CAAC,yBAAyB;QAC3C,UAAK,GAAY,CAAC,CAAC;QAInB,SAAI,GAAS,EAAE,CAAC;QAIhB,OAAE,GAAY,UAAU,CAAC;QACzB,YAAO,GAAa,KAAK,CAAC;QAajC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED;;;;;QAKI;IACI,IAAI,CAAE,GAAS;QACtB,IAAI,IAAI,GAAc,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC1B;QACD,EAAE;QACF,EAAE;IACH,CAAC;IAED;;;;QAII;IACI,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED;;;QAGI;IACI,MAAM;QACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;QAMI;IACI,KAAK,CAAC,QAAQ,CAAE,KAAW,EAAE,GAAS;QAC7C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChB;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACvB;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACzB;QACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;QAKI;IACG,QAAQ,CAAE,KAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;QAII;IACG,QAAQ,CAAE,KAAa;QAC7B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SACzB;IACF,CAAC;IAEE;;;;QAII;IACA,UAAU,CAAE,KAAgB;QAClC,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SACzB;IACF,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,KAAK,CAAE,GAAS;QAC5B,MAAM,KAAK,GAAY,2BAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvE,IAAI,SAAS,GAAY,CAAC,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,EAAW,CAAC;QAEhB,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,oBAAoB;SACxC;aAAM;YACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;SACrB;QAED,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,iBAAiB;SACzC;aAAM;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAG,IAAI,EAAE,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;YACjD,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAC3C;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpC,YAAY;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,KAAK,EAAG,IAAI,EAAE,CAAC,CAAC;YAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,YAAY;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBAClB,MAAM;iBACN;gBAED,iCAAiC;gBACjC,OAAO,IAAI,CAAC,MAAM,EAAE;oBACnB,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;iBAChB;gBAED,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;oBACvC,SAAS;iBACT;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,IAAI,EAAG,CAAC,EAAE,KAAK,EAAG,IAAI,EAAE,CAAC,CAAC;gBAE5D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEnB,UAAU;gBACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,CAAC,EAAG,IAAI,EAAG,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClB,MAAM;aACN;YACD,UAAU;YACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,CAAC,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;YACjD,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC5C;QAED,2BAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,EAAE,GAAG,CAAE,CAAC,IAAI,IAAI,EAAE,CAAE,GAAG,SAAS,CAAC;QACjC,cAAc;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;QAEI;IACG,KAAK;QACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;QAEI;IACG,IAAI;QACV,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACtC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE;YACf,2BAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QACD,QAAQ;IAET,CAAC;IAED;;;;QAII;IACI,KAAK,CAAC,IAAI,CAAG,CAAS;QAC7B,IAAI;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;SACrB;QAAC,OAAO,GAAG,EAAE;YACb,MAAM,GAAG,CAAC;SACV;IACF,CAAC;IAED;;;;QAII;IACI,KAAK,CAAC,OAAO,CAAE,CAAU;QAChC,MAAM,WAAW,GAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,MAAM,GAAG,GAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,WAAW,QAAQ,GAAG,EAAE,CAAC,CAAC;QACjD,kDAAkD;QAClD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,GAAS,EAAE,GAAS,EAAE,EAAQ;IACxD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequencer/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/alert.js b/app/lib/ui/alert.js new file mode 100644 index 0000000..35ce560 --- /dev/null +++ b/app/lib/ui/alert.js @@ -0,0 +1,27 @@ +'use strict'; +let alertObj; +class Alert { + constructor() { + this.id = 'alert'; + } + init() { + this.listen(); + } + start(msg) { + alert(msg); + this.end(); + } + end() { + const obj = {}; + ipcRenderer.sendSync(this.id, obj); + } + listen() { + ipcRenderer.on(this.id, (function (event, arg) { + this.start(arg.msg); + }).bind(this)); + } + ; +} +alertObj = new Alert(); +module.exports = alertObj; +//# sourceMappingURL=alert.js.map \ No newline at end of file diff --git a/app/lib/ui/alert.js.map b/app/lib/ui/alert.js.map new file mode 100644 index 0000000..91eb38c --- /dev/null +++ b/app/lib/ui/alert.js.map @@ -0,0 +1 @@ +{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/lib/ui/alert.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAOb,IAAI,QAAgB,CAAC;AAErB,MAAM,KAAK;IAGV;QAFA,OAAE,GAAY,OAAO,CAAC;IAGtB,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEM,KAAK,CAAE,GAAY;QACzB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IAEO,GAAG;QACV,MAAM,GAAG,GAAS,EAAE,CAAC;QAErB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAEO,MAAM;QACb,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,KAAa,EAAE,GAAS;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAAA,CAAC;CAEF;AAED,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;AACvB,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC"} \ No newline at end of file diff --git a/app/main.js b/app/main.js index 52909cf..e08be3c 100644 --- a/app/main.js +++ b/app/main.js @@ -38,6 +38,7 @@ let dev; let cmd; let seq; let capper; +let alert; const cfg = require('./data/cfg.json') @@ -119,6 +120,7 @@ var init = async function () { filmout = require('filmout')(display, ffmpeg, ffprobe, mainWindow.webContents, light) cam = require('cam')(arduino, cfg, mainWindow.webContents, filmout) proj = require('proj')(arduino, cfg, mainWindow.webContents, filmout) + alert = require('alert')(mainWindow.webContents) if (dev && dev.connected && dev.connected.camera_second) { cam2 = require('cam')(arduino, cfg, mainWindow.webContents, filmout, true) @@ -131,8 +133,9 @@ var init = async function () { capper = require('capper')(arduino, cfg, mainWindow.webContents, filmout, true) } - cmd = require('cmd')(cfg, proj, cam, light, cam2, proj2, capper) + cmd = require('cmd')(cfg, proj, cam, light, alert, cam2, proj2, capper) seq = require('sequencer')(cfg, cmd, mainWindow.webContents) + } app.on('ready', init) diff --git a/app/package-lock.json b/app/package-lock.json index 2fff654..9b54d92 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -11,6 +11,7 @@ "license": "MIT", "dependencies": { "@electron/remote": "^2.0.8", + "alert": "file:lib/alert", "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", @@ -68,6 +69,7 @@ "electron-installer-debian": "^3.1.0" } }, + "lib/alert": {}, "lib/arduino": { "version": "1.0.0", "license": "ISC" @@ -1189,6 +1191,10 @@ "uri-js": "^4.2.2" } }, + "node_modules/alert": { + "resolved": "lib/alert", + "link": true + }, "node_modules/animated-gif-detector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/animated-gif-detector/-/animated-gif-detector-1.2.0.tgz", @@ -12256,6 +12262,9 @@ "uri-js": "^4.2.2" } }, + "alert": { + "version": "file:lib/alert" + }, "animated-gif-detector": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/animated-gif-detector/-/animated-gif-detector-1.2.0.tgz", diff --git a/app/package.json b/app/package.json index fe3a5f3..e1da19f 100644 --- a/app/package.json +++ b/app/package.json @@ -51,6 +51,7 @@ }, "dependencies": { "@electron/remote": "^2.0.8", + "alert" : "file:lib/alert", "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", diff --git a/app/src/index.js b/app/src/index.js index a3e96ec..d4e58af 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -25,6 +25,7 @@ const mse = require('./lib/ui/mscript.js'); const capper = require('./lib/ui/capper.js'); const Mscript = require('./lib/mscript'); const { delay } = require('./lib/delay'); +const alertObj = require('./lib/ui/alert.js'); let log; @@ -53,4 +54,5 @@ async function init () { cam.init(); seq.init(); capper.init(); + alertObj.init(); }; \ No newline at end of file diff --git a/app/src/lib/ui/alert.ts b/app/src/lib/ui/alert.ts new file mode 100644 index 0000000..1d559cd --- /dev/null +++ b/app/src/lib/ui/alert.ts @@ -0,0 +1,40 @@ +'use strict'; + +/// + +declare var uuid : any; +declare var ipcRenderer : any; + +let alertObj : Alert; + +class Alert { + id : string = 'alert'; + + constructor () { + } + + public init () { + this.listen(); + } + + public start (msg : string) { + alert(msg); + this.end(); + } + + private end () { + const obj : any = {}; + + ipcRenderer.sendSync(this.id, obj); + } + + private listen () { + ipcRenderer.on(this.id, (function (event : Event, arg : any) { + this.start(arg.msg); + }).bind(this)); + }; + +} + +alertObj = new Alert(); +module.exports = alertObj; \ No newline at end of file diff --git a/src/alert/index.ts b/src/alert/index.ts new file mode 100644 index 0000000..082ceef --- /dev/null +++ b/src/alert/index.ts @@ -0,0 +1,68 @@ +'use strict'; + +import { delay } from 'delay' + +/* class representing alert functionality */ + +class Alert { + private ipc : any + private log : any + private id : string = 'alert' + private cb : Function = null + private ui : any + + constructor ( ui : any) { + this.ui = ui + this.init() + } + + /** + * + **/ + private async init () { + const Log = require('log') + this.log = await Log({ label : this.id }) + this.ipc = require('electron').ipcMain + this.listen() + } + + /** + * + **/ + private listen () { + this.ipc.on(this.id, this.listener.bind(this)) + } + + /** + * + **/ + private async listener (event : any, arg : any) { + if (this.cb !== null) { + try { + await this.cb(arg.state, arg.id) + } catch (err) { + this.log.error(err) + } + } + event.returnValue = true + } + + /** + * + **/ + public async start (cmd : string) { + const start = +new Date(); + const msg : string = (cmd + '').replace('ALERT', '').replace('Alert', '').replace('alert', '').trim() + this.ui.send(this.id, { msg }) + return new Promise(function (resolve : Function, reject : Function) { + this.cb = function () { + const ms = (+new Date()) - start; + return resolve(ms); + } + }.bind(this)); + } +} + +module.exports = function (ui : any) { + return new Alert(ui); +} \ No newline at end of file diff --git a/src/cmd/index.ts b/src/cmd/index.ts index ce6c30e..5fd5962 100644 --- a/src/cmd/index.ts +++ b/src/cmd/index.ts @@ -13,6 +13,8 @@ class Commands { private capper : any; + private alertObj : any; + private cfg : any; private ipc : any; @@ -25,14 +27,15 @@ class Commands { * @param {object} cam Camera 1 * @param {object} light Light source * @param {object} cam2 (optional) Camera 2 - * @param {object} proj2 {optional} Projector 2 + * @param {object} proj2 (optional) Projector 2 **/ - constructor (cfg : any, proj : any, cam : any, light : any, cam2 : any = null, proj2 : any = null, capper : any = null) { + constructor (cfg : any, proj : any, cam : any, light : any, alert : any, cam2 : any = null, proj2 : any = null, capper : any = null) { this.cfg = cfg; this.proj = proj; this.cam = cam; this.light = light; + this.alertObj = alert; if (cam2 !== null) this.cam2 = cam2; if (proj2 !== null) this.proj2 = proj2; @@ -82,13 +85,14 @@ class Commands { /** * Move the camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_forward (rgb : number[] = [255, 255, 255]) { + public async camera_forward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let ms : number; try { if (!this.cam.state.dir) { @@ -141,13 +145,14 @@ class Commands { /** * Move the camera one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_backward (rgb : number[] = [255, 255, 255]) { + public async camera_backward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let ms : number; try { if (this.cam.state.dir) { @@ -200,13 +205,14 @@ class Commands { /** * Move the second camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_second_forward (rgb : number[] = [255, 255, 255]) { + public async camera_second_forward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let ms : number; try { if (!this.cam2.state.dir) { @@ -228,13 +234,14 @@ class Commands { /** * Move the second camera one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_second_backward (rgb : number[] = [255, 255, 255]) { + public async camera_second_backward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let ms : number; try { if (this.cam2.state.dir) { @@ -257,13 +264,14 @@ class Commands { /** * Move the both cameras one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async cameras_forward (rgb : number[] = [255, 255, 255]) { + public async cameras_forward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let both : number[]; let ms : number; try { @@ -298,13 +306,14 @@ class Commands { /** * Move the both cameras one frame backward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async cameras_backward (rgb : number[] = [255, 255, 255]) { + public async cameras_backward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let both : number[]; let ms : number; try { @@ -340,13 +349,14 @@ class Commands { /** * Move first camera one frame forward and rewind secondary camera one frame backward * - * @param {array} rgb Color to set light for frames + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_forward_camera_second_backward (rgb : number[] = [255, 255, 255]) { + public async camera_forward_camera_second_backward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let both : number[]; let ms : number; try { @@ -381,13 +391,14 @@ class Commands { /** * Rewind first camera one frame backward and move secondary camera one frame forward * - * @param {array} rgb Color to set light for frame + * @param {object} cmd Full cmd object * * @returns {integer} Length of action in ms **/ - public async camera_backward_camera_second_forward (rgb : number[] = [255, 255, 255]) { + public async camera_backward_camera_second_forward () { const id : string = uuid(); const off : number[] = [0, 0, 0]; + let rgb : number[] = [255, 255, 255]; let both : number[]; let ms : number; try { @@ -589,8 +600,24 @@ class Commands { } return ms; } + + /** + * Throws an alert to pause a sequence + * + * @returns {integer} Length of action in ms + **/ + + public async alert (cmd : any) { + let ms : number; + try { + ms = await this.alertObj.start(cmd.light); //change this meta + } catch (err) { + throw err; + } + return ms; + } } -module.exports = function (cfg : any, proj : any, cam : any, light : any, cam2 : any, proj2 : any, capper : any) { - return new Commands(cfg, proj, cam, light, cam2, proj2, capper); +module.exports = function (cfg : any, proj : any, cam : any, light : any, alert : any, cam2 : any, proj2 : any, capper : any) { + return new Commands(cfg, proj, cam, light, alert, cam2, proj2, capper); } \ No newline at end of file diff --git a/src/mscript/index.ts b/src/mscript/index.ts index 618208f..8f99f75 100644 --- a/src/mscript/index.ts +++ b/src/mscript/index.ts @@ -15,8 +15,23 @@ const CMD = [ 'BF', 'CB', 'PB', - 'BB' + 'BB', + 'C2F', + 'C2B', + 'CCF', + 'CCB', + 'P2F', + 'P2B', + 'PPF', + 'PPB' ]; +/* + 'CFCB', + 'CBCF', + 'PFPB', + 'PBPF' +*/ + const ALTS = { 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], @@ -25,9 +40,22 @@ const ALTS = { 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], 'L ' : ['LIGHT', 'COLOR', 'LAMP'], - 'F ' : ['FADE'] + 'F ' : ['FADE'], + 'C2F' : ['CAMERA2 FORWARD', 'CAM2 FORWARD'], + 'C2B' : ['CAMERA2 BACKWARD', 'CAM2 BACKWARD', 'CAMERA2 BACK', 'CAM2 BACK'], + 'CCF' : ['CAMERAS FORWARD', 'CAMS FORWARD'], + 'CCB' : ['CAMERAS BACKWARD', 'CAMS BACKWARD', 'CAMERAS BACK', 'CAMS BACK'], + 'P2F' : ['PROJECTOR2 FORWARD', 'PROJ2 FORWARD'], + 'P2B' : ['PROJECTOR2 BACKWARD', 'PROJ2 BACKWARD', 'PROJECTOR2 BACK', 'PROJ2 BACK'], + 'PPF' : ['PROJECTORS FORWARD', 'PROJS FORWARD'], + 'PPB' : ['PROJECTORS BACKWARD', 'PROJS BACKWARD', 'PROJECTORS BACK', 'PROJS BACK'], }; - +/* + 'CFCB' : [ ], + 'CBCF' : [ ], + 'PFPB' : [ ], + 'PBPF' : [ ] +*/ const PAUSE = 'PAUSE'; const ALERT = 'ALERT'; @@ -57,7 +85,9 @@ class Mscript { output : any; lines : any[]; cam : number; + cam2 : number; proj : number; + proj2 : number; color : string; loops : any[]; rec : number; @@ -83,7 +113,9 @@ class Mscript { this.lines = []; this.cam = 0; + this.cam2 = 0; this.proj = 0; + this.proj2 = 0; this.color = ''; this.loops = []; this.rec = -1; @@ -667,7 +699,7 @@ class Mscript { this.loops[this.rec].meta .push(lenStr); } else { - this.arr.push('AL'); + this.arr.push('PA'); this.meta.push(lenStr); } } @@ -685,10 +717,10 @@ class Mscript { this.loops[this.rec].arr .push('AL'); this.loops[this.rec].meta - .push(msg); + .push(line); } else { this.arr.push('AL'); - this.meta.push(msg); + this.meta.push(line); } } @@ -727,6 +759,14 @@ BF - Black forwards CB - Camera backwards PB - Projector backwards BB - Black backwards +C2F - Camera 2 forwards +C2B - Camera 2 backwards +CCF - Both cameras forwards +CCB - Both cameras backwards +P2F - Projector 2 forwards +P2B - Projector 2 backwards +PPF - Both projectors forwards +PPB - Both projectors backwards ALERT {MESSAGE} - Stop the sequence and requiure user interaction to complete PAUSE # - Pause the sequence for a # of seconds diff --git a/src/sequencer/index.ts b/src/sequencer/index.ts index 868824c..c5fcf05 100644 --- a/src/sequencer/index.ts +++ b/src/sequencer/index.ts @@ -266,8 +266,7 @@ class Sequencer { const cmdOriginal : string = this.arr[x].cmd; const cmd : string = this.CMDS[cmdOriginal]; this.log.info(`CMD: '${cmdOriginal}' -> ${cmd}`); - //I wrote this when I was very tired and delirious - return await this.cmd[cmd](); + return await this.cmd[cmd](this.arr[x]); } } -- 2.40.1 From fe61e63e763e8f86ed2cb88b4e75de7910399e33 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 4 Aug 2022 10:52:00 -0400 Subject: [PATCH 34/89] Add secondary projector and camera commands to the mscript module --- app/lib/mscript/index.js | 302 ++++++++++++++++++++++++++++++++--- app/lib/mscript/index.js.map | 2 +- app/lib/ui/mscript.js | 6 +- src/mscript/index.ts | 289 +++++++++++++++++++++++++++++---- 4 files changed, 540 insertions(+), 59 deletions(-) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index eebb801..34fe2c4 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -15,14 +15,28 @@ const CMD = [ 'P2F', 'P2B', 'PPF', - 'PPB' -]; -/* + 'PPB', 'CFCB', 'CBCF', 'PFPB', 'PBPF' -*/ +]; +const CAMERA_SECONDARY = [ + 'C2F', + 'C2B', + 'CCF', + 'CCB', + 'CFCB', + 'CBCF' +]; +const PROJECTOR_SECONDARY = [ + 'P2F', + 'P2B', + 'PPF', + 'PPB', + 'PFPB', + 'PBPF' +]; const ALTS = { 'CF': ['CAMERA FORWARD', 'CAM FORWARD'], 'PF': ['PROJECTOR FORWARD', 'PROJ FORWARD'], @@ -40,13 +54,11 @@ const ALTS = { 'P2B': ['PROJECTOR2 BACKWARD', 'PROJ2 BACKWARD', 'PROJECTOR2 BACK', 'PROJ2 BACK'], 'PPF': ['PROJECTORS FORWARD', 'PROJS FORWARD'], 'PPB': ['PROJECTORS BACKWARD', 'PROJS BACKWARD', 'PROJECTORS BACK', 'PROJS BACK'], + 'CFCB': [], + 'CBCF': [], + 'PFPB': [], + 'PBPF': [] }; -/* - 'CFCB' : [ ], - 'CBCF' : [ ], - 'PFPB' : [ ], - 'PBPF' : [ ] -*/ const PAUSE = 'PAUSE'; const ALERT = 'ALERT'; /** helper functions */ @@ -91,6 +103,8 @@ class Mscript { this.loops = []; this.rec = -1; this.two = ''; + this.three = ''; + this.four = ''; this.arr = []; this.meta = []; this.target = 0; //move to target using CAM # or PROJ # @@ -123,11 +137,19 @@ class Mscript { }); for (let line of this.lines) { this.two = line.substring(0, 2); - if (CMD.indexOf(this.two) !== -1) { - this.basic_cmd(line); + this.three = line.substring(0, 3); + this.four = line.substring(0, 4); + if (CMD.indexOf(this.four) !== -1) { + this.basic_cmd(line, this.four); + } + else if (CMD.indexOf(this.three) !== -1) { + this.basic_cmd(line, this.three); + } + else if (CMD.indexOf(this.two) !== -1) { + this.basic_cmd(line, this.two); } else if (startsWith(line, PAUSE)) { - this.pause(line); + //this.pause(line); } else if (startsWith(line, ALERT)) { this.alert(line); @@ -147,9 +169,15 @@ class Mscript { else if (startsWith(line, 'END')) { this.end_loop(line); } - else if (startsWith(line, 'CAM')) { //directly go to that frame (black?) + else if (startsWith(line, 'CAM2')) { //directly go to that frame + this.move_cam2(line); + } + else if (startsWith(line, 'CAM')) { //directly go to that frame this.move_cam(line); } + else if (startsWith(line, 'PROJ2')) { //directly go to that frame + this.move_proj2(line); + } else if (startsWith(line, 'PROJ')) { //directly go to that frame this.move_proj(line); } @@ -160,17 +188,18 @@ class Mscript { //comments //ignore while parsing } - else if (startsWith(line, 'ALERT')) { - } - else if (startsWith(line, 'PAUSE')) { - this.pause(line); - } } this.output.success = true; this.output.arr = this.arr; //all instructions this.output.meta = this.meta; //all metadata for instructions this.output.cam = this.cam; this.output.proj = this.proj; + if (this.contains(this.arr, CAMERA_SECONDARY)) { + this.output.cam2 = this.cam2; + } + if (this.contains(this.arr, PROJECTOR_SECONDARY)) { + this.output.proj2 = this.proj2; + } if (typeof callback !== 'undefined') { //should only be invoked by running mscript.tests() callback(this.output); @@ -233,25 +262,26 @@ class Mscript { * Interpret a basic two character command * * @param {string} line Line of script to interpret + * @param {string} short The short command to use */ - basic_cmd(line) { + basic_cmd(line, short) { if (this.rec !== -1) { //hold generated arr in state loop array this.loops[this.rec].arr - .push.apply(this.loops[this.rec].arr, this.str_to_arr(line, this.two)); + .push.apply(this.loops[this.rec].arr, this.str_to_arr(line, short)); this.loops[this.rec].meta - .push.apply(this.loops[this.rec].meta, this.light_to_arr(line, this.two)); + .push.apply(this.loops[this.rec].meta, this.light_to_arr(line, short)); } else { - this.arr.push.apply(this.arr, this.str_to_arr(line, this.two)); - this.meta.push.apply(this.meta, this.light_to_arr(line, this.two)); + this.arr.push.apply(this.arr, this.str_to_arr(line, short)); + this.meta.push.apply(this.meta, this.light_to_arr(line, short)); } } /** * Start a new loop * * @param {string} line Line to evaluate as either loop or fade - * @param {boolean} fade Flag as boolean if true + * @param {boolean} fade Flag as true if fade */ new_loop(line, fade) { this.rec++; @@ -260,6 +290,8 @@ class Mscript { meta: [], cam: 0, proj: 0, + cam2: 0, + proj2: 0, cmd: line + '' }; if (fade) { @@ -345,6 +377,50 @@ class Mscript { } } } + /** + * Move secondary camera to explicitly-defined frame + * + * @param {string} line Line to interpret with camera move statement + */ + move_cam2(line) { + this.target = parseInt(line.split('CAM2 ')[1]); + if (this.rec !== -1) { + if (this.target > this.cam2) { + this.dist = this.target - this.cam2; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('C2F'); + this.loops[this.rec].meta.push(BLACK); + this.update('C2F'); + } + } + else { + this.dist = this.cam2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('C2B'); + this.loops[this.rec].meta.push(BLACK); + this.update('C2B'); + } + } + } + else { + if (this.target > this.cam2) { + this.dist = this.target - this.cam2; + for (let x = 0; x < this.dist; x++) { + this.arr.push('C2F'); + this.meta.push(BLACK); + this.update('C2F'); + } + } + else { + this.dist = this.cam2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('C2B'); + this.meta.push(BLACK); + this.update('C2B'); + } + } + } + } /** * Move projector to explicitly-defined frame * @@ -389,13 +465,63 @@ class Mscript { } } } + /** + * Move projector to explicitly-defined frame + * + * @param {string} line Line containing `move` statement to interpret + */ + move_proj2(line) { + this.target = parseInt(line.split('PROJ2 ')[1]); + if (this.rec !== -1) { + if (this.target > this.proj2) { + this.dist = this.target - this.proj2; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('P2F'); + this.loops[this.rec].meta.push(''); + this.update('P2F'); + } + } + else { + this.dist = this.proj2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('P2B'); + this.loops[this.rec].meta.push(''); + this.update('P2B'); + } + } + } + else { + if (this.target > this.proj2) { + this.dist = this.target - this.proj2; + for (let x = 0; x < this.dist; x++) { + this.arr.push('P2F'); + this.meta.push(''); + this.update('P2F'); + } + } + else { + this.dist = this.proj2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('P2B'); + this.meta.push(''); + this.update('P2B'); + } + } + } + } /** * Set the state of either the cam or projector * * @param line {string} String containing set statement */ set_state(line) { - if (startsWith(line, 'SET CAM')) { + if (startsWith(line, 'SET CAM2')) { + parseInt(line.split('SET CAM2')[1]); + } + else if (startsWith(line, 'SET PROJ2')) { + this.cam2 = parseInt(line.split('SET PROJ2')[1]); + } + else if (startsWith(line, 'SET CAM')) { this.cam = parseInt(line.split('SET CAM')[1]); } else if (startsWith(line, 'SET PROJ')) { @@ -588,6 +714,118 @@ class Mscript { this.loops[this.rec].cam -= val; } } + else if (cmd === 'C2F') { + if (this.rec === -1) { + this.cam2 += val; + } + else { + this.loops[this.rec].cam2 += val; + } + } + else if (cmd === 'C2B') { + if (this.rec === -1) { + this.cam2 -= val; + } + else { + this.loops[this.rec].cam2 -= val; + } + } + else if (cmd === 'CCF') { + if (this.rec === -1) { + this.cam += val; + this.cam2 += val; + } + else { + this.loops[this.rec].cam2 += val; + this.loops[this.rec].cam2 += val; + } + } + else if (cmd === 'CCB') { + if (this.rec === -1) { + this.cam -= val; + this.cam2 -= val; + } + else { + this.loops[this.rec].cam2 -= val; + this.loops[this.rec].cam2 -= val; + } + } + else if (cmd === 'P2F') { + if (this.rec === -1) { + this.proj2 += val; + } + else { + this.loops[this.rec].proj2 += val; + } + } + else if (cmd === 'P2B') { + if (this.rec === -1) { + this.proj2 -= val; + } + else { + this.loops[this.rec].proj2 -= val; + } + } + else if (cmd === 'PPF') { + if (this.rec === -1) { + this.proj += val; + this.proj2 += val; + } + else { + this.loops[this.rec].proj += val; + this.loops[this.rec].proj2 += val; + } + } + else if (cmd === 'PPB') { + if (this.rec === -1) { + this.proj -= val; + this.proj2 -= val; + } + else { + this.loops[this.rec].proj -= val; + this.loops[this.rec].proj2 -= val; + } + } + else if (cmd === 'CFCB') { + if (this.rec === -1) { + this.cam += val; + this.cam2 -= val; + } + else { + this.loops[this.rec].cam += val; + this.loops[this.rec].cam2 -= val; + } + } + else if (cmd === 'CBCF') { + if (this.rec === -1) { + this.cam -= val; + this.cam2 += val; + } + else { + this.loops[this.rec].cam -= val; + this.loops[this.rec].cam2 += val; + } + } + else if (cmd === 'PFPB') { + if (this.rec === -1) { + this.proj += val; + this.proj2 -= val; + } + else { + this.loops[this.rec].proj += val; + this.loops[this.rec].proj2 -= val; + } + } + else if (cmd === 'PBPF') { + if (this.rec === -1) { + this.proj -= val; + this.proj2 += val; + } + else { + this.loops[this.rec].proj -= val; + this.loops[this.rec].proj2 += val; + } + } else if (cmd === 'L ') { } } @@ -716,6 +954,18 @@ class Mscript { fail(msg) { throw new Error(msg); } + /** + * Determine if array contains matching elements of + * another array + * + * @param {Array} arr Original array to compare + * @param {Array} arr2 Array to compare elements from + * + * @returns {boolean} Whether arr contains elements in arr2 + **/ + contains(arr, arr2) { + return arr.some(r => arr2.includes(r)); + } } module.exports = Mscript; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/mscript/index.js.map b/app/lib/mscript/index.js.map index 2d3d46a..606f354 100644 --- a/app/lib/mscript/index.js.map +++ b/app/lib/mscript/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/mscript.js b/app/lib/ui/mscript.js index 769c6da..c55c5a7 100644 --- a/app/lib/ui/mscript.js +++ b/app/lib/ui/mscript.js @@ -111,11 +111,13 @@ mse.mscript.compile = function () { const mscript = new Mscript(); let output = mscript.interpret(data); let len = output.arr.length; - + const cam2 = typeof output.cam2 !== 'undefined' ? `, CAM2 : ${output.cam2}` : ''; + const proj2 = typeof output.proj2 !== 'undefined' ? `, PROJ2 : ${output.proj2}` : ''; + mse.mscript.raw = data; mse.mscript.data = output; //mse.console.print(JSON.stringify(output, null, '\t') + '\n') - mse.console.print(`Sequence contains ${len} step${(len === 1 ? '' : 's')}, CAM: ${output.cam}, PROJ: ${output.proj}`); + mse.console.print(`Sequence contains ${len} step${(len === 1 ? '' : 's')}, CAM: ${output.cam}, PROJ: ${output.proj}${cam2}${proj2}`); }; mse.mscript.prepare = function () { diff --git a/src/mscript/index.ts b/src/mscript/index.ts index 8f99f75..b7bbd47 100644 --- a/src/mscript/index.ts +++ b/src/mscript/index.ts @@ -7,9 +7,9 @@ interface RGB extends Array{ [index : number] : number; } -const BLACK = '0,0,0'; -const WHITE = '255,255,255'; -const CMD = [ +const BLACK : string = '0,0,0'; +const WHITE : string = '255,255,255'; +const CMD : string[] = [ 'CF', 'PF', 'BF', @@ -23,16 +23,32 @@ const CMD = [ 'P2F', 'P2B', 'PPF', - 'PPB' -]; -/* - 'CFCB', + 'PPB', + 'CFCB', 'CBCF', 'PFPB', 'PBPF' -*/ +]; -const ALTS = { +const CAMERA_SECONDARY : string[] = [ + 'C2F', + 'C2B', + 'CCF', + 'CCB', + 'CFCB', + 'CBCF' +]; + +const PROJECTOR_SECONDARY : string[] = [ + 'P2F', + 'P2B', + 'PPF', + 'PPB', + 'PFPB', + 'PBPF' +]; + +const ALTS : any = { 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], 'BF' : ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], @@ -49,13 +65,13 @@ const ALTS = { 'P2B' : ['PROJECTOR2 BACKWARD', 'PROJ2 BACKWARD', 'PROJECTOR2 BACK', 'PROJ2 BACK'], 'PPF' : ['PROJECTORS FORWARD', 'PROJS FORWARD'], 'PPB' : ['PROJECTORS BACKWARD', 'PROJS BACKWARD', 'PROJECTORS BACK', 'PROJS BACK'], -}; -/* + 'CFCB' : [ ], 'CBCF' : [ ], 'PFPB' : [ ], 'PBPF' : [ ] -*/ +}; + const PAUSE = 'PAUSE'; const ALERT = 'ALERT'; @@ -92,6 +108,8 @@ class Mscript { loops : any[]; rec : number; two : string; + three : string; + four : string; arr : any[]; meta : string[]; target : number; @@ -119,8 +137,9 @@ class Mscript { this.color = ''; this.loops = []; this.rec = -1; - this.two = ''; + this.three = ''; + this.four = ''; this.arr = []; this.meta = []; this.target = 0; //move to target using CAM # or PROJ # @@ -159,10 +178,16 @@ class Mscript { for (let line of this.lines) { this.two = line.substring(0, 2); - if (CMD.indexOf(this.two) !== -1) { - this.basic_cmd(line); + this.three = line.substring(0, 3); + this.four = line.substring(0, 4); + if (CMD.indexOf(this.four) !== -1) { + this.basic_cmd(line, this.four); + } else if (CMD.indexOf(this.three) !== -1) { + this.basic_cmd(line, this.three); + } else if (CMD.indexOf(this.two) !== -1) { + this.basic_cmd(line, this.two); } else if (startsWith(line, PAUSE)) { - this.pause(line); + //this.pause(line); } else if (startsWith(line, ALERT)) { this.alert(line); } else if (startsWith(line, '@') || line.indexOf('@') !== -1) { @@ -175,8 +200,12 @@ class Mscript { this.new_loop(line, true); } else if (startsWith(line, 'END')) { this.end_loop(line); - } else if (startsWith(line, 'CAM')) { //directly go to that frame (black?) + } else if (startsWith(line, 'CAM2')) { //directly go to that frame + this.move_cam2(line); + } else if (startsWith(line, 'CAM')) { //directly go to that frame this.move_cam(line); + } else if (startsWith(line, 'PROJ2')) { //directly go to that frame + this.move_proj2(line); } else if (startsWith(line, 'PROJ')) { //directly go to that frame this.move_proj(line); } else if (startsWith(line, 'SET')) { //set that state @@ -184,10 +213,6 @@ class Mscript { } else if (startsWith(line, '#') || startsWith(line, '//')) { //comments //ignore while parsing - } else if (startsWith(line, 'ALERT')) { - - } else if (startsWith(line, 'PAUSE')) { - this.pause(line); } } @@ -196,6 +221,12 @@ class Mscript { this.output.meta = this.meta; //all metadata for instructions this.output.cam = this.cam; this.output.proj = this.proj; + if (this.contains(this.arr, CAMERA_SECONDARY)) { + this.output.cam2 = this.cam2; + } + if (this.contains(this.arr, PROJECTOR_SECONDARY)) { + this.output.proj2 = this.proj2; + } if (typeof callback !== 'undefined') { //should only be invoked by running mscript.tests() @@ -263,28 +294,29 @@ class Mscript { * Interpret a basic two character command * * @param {string} line Line of script to interpret + * @param {string} short The short command to use */ - basic_cmd (line : string) { + basic_cmd (line : string, short : string) { if (this.rec !== -1) { //hold generated arr in state loop array this.loops[this.rec].arr .push.apply(this.loops[this.rec].arr, this.str_to_arr(line, - this.two)); + short)); this.loops[this.rec].meta .push.apply(this.loops[this.rec].meta, this.light_to_arr(line, - this.two)); + short)); } else { - this.arr.push.apply(this.arr, this.str_to_arr(line, this.two)); - this.meta.push.apply(this.meta, this.light_to_arr(line, this.two)); + this.arr.push.apply(this.arr, this.str_to_arr(line, short)); + this.meta.push.apply(this.meta, this.light_to_arr(line, short)); } } /** * Start a new loop * * @param {string} line Line to evaluate as either loop or fade - * @param {boolean} fade Flag as boolean if true + * @param {boolean} fade Flag as true if fade */ new_loop (line : string, fade? : boolean) { this.rec++; @@ -293,6 +325,8 @@ class Mscript { meta : [], cam : 0, proj : 0, + cam2 : 0, + proj2 : 0, cmd : line + '' }; if (fade) { @@ -378,6 +412,49 @@ class Mscript { } } } + + /** + * Move secondary camera to explicitly-defined frame + * + * @param {string} line Line to interpret with camera move statement + */ + move_cam2 (line : string) { + this.target = parseInt(line.split('CAM2 ')[1]); + if (this.rec !== -1) { + if (this.target > this.cam2) { + this.dist = this.target - this.cam2; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('C2F'); + this.loops[this.rec].meta.push(BLACK); + this.update('C2F'); + } + } else { + this.dist = this.cam2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('C2B'); + this.loops[this.rec].meta.push(BLACK); + this.update('C2B'); + } + } + } else { + if (this.target > this.cam2) { + this.dist = this.target - this.cam2; + for (let x = 0; x < this.dist; x++) { + this.arr.push('C2F'); + this.meta.push(BLACK); + this.update('C2F'); + } + } else { + this.dist = this.cam2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('C2B'); + this.meta.push(BLACK); + this.update('C2B'); + } + } + } + } + /** * Move projector to explicitly-defined frame * @@ -419,13 +496,59 @@ class Mscript { } } } + + /** + * Move projector to explicitly-defined frame + * + * @param {string} line Line containing `move` statement to interpret + */ + move_proj2 (line : string) { + this.target = parseInt(line.split('PROJ2 ')[1]); + if (this.rec !== -1) { + if (this.target > this.proj2) { + this.dist = this.target - this.proj2; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('P2F'); + this.loops[this.rec].meta.push(''); + this.update('P2F'); + } + } else { + this.dist = this.proj2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('P2B'); + this.loops[this.rec].meta.push(''); + this.update('P2B'); + } + } + } else { + if (this.target > this.proj2) { + this.dist = this.target - this.proj2; + for (let x = 0; x < this.dist; x++) { + this.arr.push('P2F'); + this.meta.push(''); + this.update('P2F'); + } + } else { + this.dist = this.proj2 - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('P2B'); + this.meta.push(''); + this.update('P2B'); + } + } + } + } /** * Set the state of either the cam or projector * * @param line {string} String containing set statement */ set_state (line : string) { - if (startsWith(line, 'SET CAM')) { + if (startsWith(line, 'SET CAM2')) { + parseInt(line.split('SET CAM2')[1]); + } else if (startsWith(line, 'SET PROJ2')) { + this.cam2 = parseInt(line.split('SET PROJ2')[1]); + } else if (startsWith(line, 'SET CAM')) { this.cam = parseInt(line.split('SET CAM')[1]); } else if (startsWith(line, 'SET PROJ')) { this.proj = parseInt(line.split('SET PROJ')[1]); @@ -602,7 +725,95 @@ class Mscript { this.cam -= val; } else { this.loops[this.rec].cam -= val; - } + } + } else if (cmd === 'C2F') { + if (this.rec === -1) { + this.cam2 += val; + } else { + this.loops[this.rec].cam2 += val; + } + } else if (cmd === 'C2B') { + if (this.rec === -1) { + this.cam2 -= val; + } else { + this.loops[this.rec].cam2 -= val; + } + } else if (cmd === 'CCF') { + if (this.rec === -1) { + this.cam += val; + this.cam2 += val; + } else { + this.loops[this.rec].cam2 += val; + this.loops[this.rec].cam2 += val; + } + } else if (cmd === 'CCB') { + if (this.rec === -1) { + this.cam -= val; + this.cam2 -= val; + } else { + this.loops[this.rec].cam2 -= val; + this.loops[this.rec].cam2 -= val; + } + } else if (cmd === 'P2F') { + if (this.rec === -1) { + this.proj2 += val; + } else { + this.loops[this.rec].proj2 += val; + } + } else if (cmd === 'P2B') { + if (this.rec === -1) { + this.proj2 -= val; + } else { + this.loops[this.rec].proj2 -= val; + } + } else if (cmd === 'PPF') { + if (this.rec === -1) { + this.proj += val; + this.proj2 += val; + } else { + this.loops[this.rec].proj += val + this.loops[this.rec].proj2 += val; + } + } else if (cmd === 'PPB') { + if (this.rec === -1) { + this.proj -= val; + this.proj2 -= val; + } else { + this.loops[this.rec].proj -= val + this.loops[this.rec].proj2 -= val; + } + } else if (cmd === 'CFCB') { + if (this.rec === -1) { + this.cam += val; + this.cam2 -= val; + } else { + this.loops[this.rec].cam += val; + this.loops[this.rec].cam2 -= val; + } + } else if (cmd === 'CBCF') { + if (this.rec === -1) { + this.cam -= val; + this.cam2 += val; + } else { + this.loops[this.rec].cam -= val; + this.loops[this.rec].cam2 += val; + } + } else if (cmd === 'PFPB') { + if (this.rec === -1) { + this.proj += val; + this.proj2 -= val; + } else { + this.loops[this.rec].proj += val; + this.loops[this.rec].proj2 -= val; + } + } else if (cmd === 'PBPF') { + if (this.rec === -1) { + this.proj -= val; + this.proj2 += val; + } else { + this.loops[this.rec].proj -= val; + this.loops[this.rec].proj2 += val; + } } else if (cmd === 'L ') { } @@ -732,6 +943,19 @@ class Mscript { fail (msg : string) { throw new Error(msg); } + + /** + * Determine if array contains matching elements of + * another array + * + * @param {Array} arr Original array to compare + * @param {Array} arr2 Array to compare elements from + * + * @returns {boolean} Whether arr contains elements in arr2 + **/ + contains (arr : string[], arr2 : string[]) { + return arr.some(r => arr2.includes(r)); + } } module.exports = Mscript; @@ -742,9 +966,15 @@ module.exports = Mscript; CAM # - go to camera frame # PROJ # - go to projector frame # +CAM2 # - go to camera 2 frame # +PROJ # - go to projector 2 frame # + SET CAM # - sets camera count to # SET PROJ # - sets projector count to # +SET CAM2 # - sets camera 2 count to # +SET PROJ2 # - sets projector 2 count to # + LOOP # - begin loop, can nest recursively, # times END LOOP - (or END) closes loop @@ -769,6 +999,5 @@ PPF - Both projectors forwards PPB - Both projectors backwards ALERT {MESSAGE} - Stop the sequence and requiure user interaction to complete -PAUSE # - Pause the sequence for a # of seconds */ \ No newline at end of file -- 2.40.1 From b29478cb5811551c1644115329258618dc3b5db1 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 4 Aug 2022 10:57:36 -0400 Subject: [PATCH 35/89] Increment build patch version --- app/package-lock.json | 4 ++-- app/package.json | 6 +++--- data/cfg.json | 14 +++++++------- package-lock.json | 4 ++-- package.json | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index 9b54d92..9b812e0 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcopy-app", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mcopy-app", - "version": "1.7.0", + "version": "1.7.1", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/app/package.json b/app/package.json index e1da19f..8238510 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "mcopy-app", - "version": "1.7.0", + "version": "1.7.1", "description": "GUI for the mcopy small gauge film optical printer platform", "main": "main.js", "scripts": { @@ -51,11 +51,11 @@ }, "dependencies": { "@electron/remote": "^2.0.8", - "alert" : "file:lib/alert", + "alert": "file:lib/alert", "animated-gif-detector": "^1.2.0", "arduino": "file:lib/arduino", "cam": "file:lib/cam", - "capper" : "file:lib/capper", + "capper": "file:lib/capper", "capture": "file:lib/capture", "cmd": "file:lib/cmd", "delay": "file:lib/delay", diff --git a/data/cfg.json b/data/cfg.json index 8b82f50..ce87033 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.7.0", + "version": "1.7.1", "ext_port": 1111, "profiles": { "mcopy": { @@ -179,12 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", - "capper_identifier" : "C", - "camera_capper_identifier" : "8", - "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0", - "capper_on" : "A", - "capper_off" : "B" + "capper_identifier": "C", + "camera_capper_identifier": "8", + "camera_capper_projector_identifier": "9", + "camera_capper_projectors_identifier": "0", + "capper_on": "A", + "capper_off": "B" } } } diff --git a/package-lock.json b/package-lock.json index 6c8b1e5..cbe2456 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcopy", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mcopy", - "version": "1.7.0", + "version": "1.7.1", "license": "MIT", "dependencies": { "arduino": "file:app/lib/arduino", diff --git a/package.json b/package.json index e8bb834..778da15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcopy", - "version": "1.7.0", + "version": "1.7.1", "description": "Small gauge film optical printer platform", "main": "build.js", "directories": { -- 2.40.1 From 3ec1373f08515e8247c81f01dc35d6fea35edaf3 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Sun, 7 Aug 2022 17:23:06 -0400 Subject: [PATCH 36/89] Caught a possible ancient bug in the loop logic for calculating state of camera and projector backwards movements. --- app/data/cfg.json | 14 +++++++------- app/lib/mscript/index.js | 4 ++-- app/lib/mscript/index.js.map | 2 +- processing/mcopy/cfg.json | 14 +++++++------- src/mscript/index.ts | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/data/cfg.json b/app/data/cfg.json index 8b82f50..ce87033 100644 --- a/app/data/cfg.json +++ b/app/data/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.7.0", + "version": "1.7.1", "ext_port": 1111, "profiles": { "mcopy": { @@ -179,12 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", - "capper_identifier" : "C", - "camera_capper_identifier" : "8", - "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0", - "capper_on" : "A", - "capper_off" : "B" + "capper_identifier": "C", + "camera_capper_identifier": "8", + "camera_capper_projector_identifier": "9", + "camera_capper_projectors_identifier": "0", + "capper_on": "A", + "capper_off": "B" } } } diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 34fe2c4..c510995 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -679,7 +679,7 @@ class Mscript { this.cam -= val; } else { - this.loops[this.rec].cam--; + this.loops[this.rec].cam -= val; } } else if (cmd === 'PF') { @@ -695,7 +695,7 @@ class Mscript { this.proj -= val; } else { - this.loops[this.rec].proj--; + this.loops[this.rec].proj -= val; } } else if (cmd === 'BF') { diff --git a/app/lib/mscript/index.js.map b/app/lib/mscript/index.js.map index 606f354..8678848 100644 --- a/app/lib/mscript/index.js.map +++ b/app/lib/mscript/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AASb,MAAM,KAAK,GAAY,OAAO,CAAC;AAC/B,MAAM,KAAK,GAAY,aAAa,CAAC;AACrC,MAAM,GAAG,GAAc;IACtB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACH,MAAM;IACN,MAAM;IACN,MAAM;CACT,CAAC;AAEF,MAAM,gBAAgB,GAAc;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACH,MAAM;CACT,CAAC;AAEF,MAAM,mBAAmB,GAAc;IACtC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACF,MAAM;IACN,MAAM;CACT,CAAC;AAEF,MAAM,IAAI,GAAS;IAClB,IAAI,EAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACxC,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC5C,IAAI,EAAG,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;IAC3D,IAAI,EAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC;IACrE,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC;IAC3E,IAAI,EAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC;IACrD,IAAI,EAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IACjC,IAAI,EAAG,CAAC,MAAM,CAAC;IACf,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACxC,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAC3C,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;IAClF,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;IAElF,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;CACf,CAAC;AAEF,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,KAAK,GAAG,OAAO,CAAC;AAEtB,uBAAuB;AAEvB;;;;;;IAMI;AACJ,SAAS,UAAU,CAAE,GAAY,EAAE,MAAe,EAAE,QAAkB;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,EAAE;QACjB,QAAQ,GAAG,CAAC,CAAC;KACb;SAAM,IAAI,QAAQ,GAAG,MAAM,EAAE;QAC7B,QAAQ,GAAG,MAAM,CAAC;KAClB;IACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAChE,CAAC;AAED,oBAAoB;AACpB,MAAM,OAAO;IAmBZ;;;QAGI;IAEJ;QACC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;QACvD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;;;;;;;;OASG;IACH,SAAS,CAAE,IAAa,EAAE,QAAmB;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7B;QAED,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;YAC7C,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,mDAAmD;YACvE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAA;QAEF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,mBAAmB;aACnB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,4BAA4B;gBAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,4BAA4B;gBACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,2BAA2B;gBAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACtB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,2BAA2B;gBACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB;gBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC3D,UAAU;gBACV,sBAAsB;aACtB;SACD;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,+BAA+B;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SAC/B;QAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,mDAAmD;YACnD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;aAAM;YACN,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;IACF,CAAC;IACD;;;;;;QAMI;IACJ,QAAQ,CAAE,IAAa;QACtB,IAAI,KAAK,GAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,GAAY,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAS,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAa,KAAK,CAAC;QAE7B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACxC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,IAAI,KAAK;gBACT,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,qBAAqB;YACpD,IAAI;gBACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;YAAC,OAAO,GAAG,EAAE;gBACb,uBAAuB;aACvB;SACD;QACD,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC5B;QACD,6BAA6B;IAC9B,CAAC;IAED;;;;;;;QAOI;IACJ,gBAAgB,CAAC,IAAa;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IACD;;;;;OAKG;IACH,SAAS,CAAE,IAAa,EAAE,KAAc;QACvC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,KAAK,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAClC,IAAI,CAAC,YAAY,CAAC,IAAI,EACtB,KAAK,CAAC,CAAC,CAAC;SACZ;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAChE;IACF,CAAC;IACD;;;;;OAKG;IACH,QAAQ,CAAE,IAAa,EAAE,IAAe;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACtB,GAAG,EAAG,EAAE;YACR,IAAI,EAAG,EAAE;YACT,GAAG,EAAG,CAAC;YACP,IAAI,EAAG,CAAC;YACR,IAAI,EAAG,CAAC;YACR,KAAK,EAAG,CAAC;YACT,GAAG,EAAG,IAAI,GAAG,EAAE;SACf,CAAC;QACF,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;IACF,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,QAAmB,CAAC;QACxB,IAAI,KAAW,CAAC;QAChB,IAAI,GAAS,CAAC;QACd,IAAI,GAAY,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;gBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBACnC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACpC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAA;aACF;YACD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC1C;iBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;qBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI;qBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EACtC,QAAQ,CAAC,CAAC;aACd;SACD;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAE,IAAa;QACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;YACzC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YACvC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;OAIG;IACH,IAAI,CAAE,IAAa;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrC,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;;;OAMG;IACH,UAAU,CAAE,GAAa;QACxB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD;;;;;;OAMG;IACH,QAAQ,CAAE,GAAY;QACrB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACE;;;;;;;;;OASA;IACH,QAAQ,CAAE,KAAW,EAAE,GAAS,EAAE,GAAY,EAAE,CAAU;QACzD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACN,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;SACD;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1B,CAAC;IACD;;;;QAII;IACJ,GAAG,CAAE,GAAY;QAChB,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,IAAa,EAAE,EAAE;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAA;IACH,CAAC;IACD;;;;;;QAMI;IACJ,OAAO,CAAE,GAAS;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;;;;;OAKG;IACH,MAAM,CAAE,GAAY,EAAE,MAAe,CAAC;QACrC,IAAI,GAAG,KAAK,KAAK,EAAE;YAClB,8BAA8B;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBACnB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBACvC;qBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBAC3D;aACD;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAA;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAA;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;SAExB;IACF,CAAC;IACD;;;;;;;;OAQG;IACH,UAAU,CAAE,GAAY,EAAE,GAAY;QACrC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;;;;OAOG;IACH,YAAY,CAAE,GAAY,EAAE,GAAY;QACvC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAY,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,GAAG,KAAK,IAAI;mBACZ,GAAG,KAAK,IAAI,EAAE;gBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;iBAAM,IAAI,GAAG,KAAK,IAAI;mBAClB,GAAG,KAAK,IAAI,EAAE;gBAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChB;iBAAM;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACb;SACD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,WAAW,CAAE,GAAY;QACxB,oCAAoC;QACpC,MAAM,KAAK,GAAY,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;QAII;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,GAAY,CAAC;QACjB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEvB,IAAI;YACH,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;SACrD;QAAC,OAAO,GAAG,EAAE;YACb,GAAG,GAAG,CAAC,CAAC;SACR;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACf,GAAG,GAAG,CAAC,CAAC;SACR;QAED,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,MAAM,CAAC,CAAC;SACf;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3C,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;SACb;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;IACD,CAAC;IAEF;;;;OAIG;IACH,IAAI,CAAE,GAAY;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;;;;;;QAQI;IACJ,QAAQ,CAAE,GAAc,EAAE,IAAe;QACxC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file diff --git a/processing/mcopy/cfg.json b/processing/mcopy/cfg.json index 8b82f50..ce87033 100644 --- a/processing/mcopy/cfg.json +++ b/processing/mcopy/cfg.json @@ -1,5 +1,5 @@ { - "version": "1.7.0", + "version": "1.7.1", "ext_port": 1111, "profiles": { "mcopy": { @@ -179,12 +179,12 @@ "camera_projectors_identifier": "5", "cameras_projector_identifier": "6", "cameras_projectors_identifier": "7", - "capper_identifier" : "C", - "camera_capper_identifier" : "8", - "camera_capper_projector_identifier" : "9", - "camera_capper_projectors_identifier" : "0", - "capper_on" : "A", - "capper_off" : "B" + "capper_identifier": "C", + "camera_capper_identifier": "8", + "camera_capper_projector_identifier": "9", + "camera_capper_projectors_identifier": "0", + "capper_on": "A", + "capper_off": "B" } } } diff --git a/src/mscript/index.ts b/src/mscript/index.ts index b7bbd47..8241c14 100644 --- a/src/mscript/index.ts +++ b/src/mscript/index.ts @@ -700,7 +700,7 @@ class Mscript { if (this.rec === -1) { this.cam -= val; } else { - this.loops[this.rec].cam--; + this.loops[this.rec].cam -= val; } } else if (cmd === 'PF') { if (this.rec === -1) { @@ -712,7 +712,7 @@ class Mscript { if (this.rec === -1) { this.proj -= val; } else { - this.loops[this.rec].proj--; + this.loops[this.rec].proj -= val; } } else if (cmd === 'BF') { if (this.rec === -1) { -- 2.40.1 From 6601c030f750a597108c0cfe409fb191824d8b6f Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Sun, 7 Aug 2022 22:10:53 -0400 Subject: [PATCH 37/89] Refactor mscript GUI code into Typescript --- app/lib/mscript/index.d.ts | 243 +++++++++++++++++ app/lib/mscript/index.js | 7 +- app/lib/mscript/index.js.map | 2 +- app/lib/ui/mscript.js | 501 +++++++++++++++++++---------------- app/lib/ui/mscript.js.map | 1 + app/package-lock.json | 49 ++++ app/package.json | 1 + app/src/lib/ui/mscript.ts | 320 ++++++++++++++++++++++ app/tsconfig.json | 3 +- src/mscript/index.ts | 16 +- tsconfig.json | 1 + 11 files changed, 907 insertions(+), 237 deletions(-) create mode 100644 app/lib/mscript/index.d.ts create mode 100644 app/lib/ui/mscript.js.map create mode 100644 app/src/lib/ui/mscript.ts diff --git a/app/lib/mscript/index.d.ts b/app/lib/mscript/index.d.ts new file mode 100644 index 0000000..6c40b81 --- /dev/null +++ b/app/lib/mscript/index.d.ts @@ -0,0 +1,243 @@ +/** @module lib/mscript */ +interface RGB extends Array { + [index: number]: number; +} +/** class Mscript */ +export declare class Mscript { + output: any; + lines: string[]; + cam: number; + cam2: number; + proj: number; + proj2: number; + color: string; + loops: any[]; + rec: number; + two: string; + three: string; + four: string; + arr: any[]; + meta: string[]; + target: number; + dist: number; + variables: any; + /** + * @constructor + * Create new Mscript interpreter + **/ + constructor(); + /** + * Clear the state of the script + */ + clear(): void; + /** + * Main function, accepts multi-line string, parses into lines + * and interprets the instructions from the text. Returns an array + * of steps to be fed into the mcopy sequence. + * + * @param {string} text Mscript text to interpret + * @param {function} callback Function to call when string is interpreted + * + * @returns {object} if callback is not provided + */ + interpret(text: string, callback?: Function): any; + /** + * Interprets variables for complex sequence behavior. + * TODO: Fully implement, add test coverage + * + * @param {string} line Line containing a variable assignment + * + **/ + variable(line: string): void; + /** + * Replace variable with value at time of interpretation + * TODO: Implement this please + * + * @param {string} line Line containing variable to be replaced with value + * + * @returns {string} New string to be interpreted + **/ + variable_replace(line: string): string; + /** + * Interpret a basic two character command + * + * @param {string} line Line of script to interpret + * @param {string} short The short command to use + */ + basic_cmd(line: string, short: string): void; + /** + * Start a new loop + * + * @param {string} line Line to evaluate as either loop or fade + * @param {boolean} fade Flag as true if fade + */ + new_loop(line: string, fade?: boolean): void; + /** + * Close the most recent loop + * + * @param {string} line Line to interpret + */ + end_loop(line: string): void; + /** + * Move camera to explicitly-defined frame + * + * @param {string} line Line to interpret with camera move statement + */ + move_cam(line: string): void; + /** + * Move secondary camera to explicitly-defined frame + * + * @param {string} line Line to interpret with camera move statement + */ + move_cam2(line: string): void; + /** + * Move projector to explicitly-defined frame + * + * @param {string} line Line containing `move` statement to interpret + */ + move_proj(line: string): void; + /** + * Move projector to explicitly-defined frame + * + * @param {string} line Line containing `move` statement to interpret + */ + move_proj2(line: string): void; + /** + * Set the state of either the cam or projector + * + * @param line {string} String containing set statement + */ + set_state(line: string): void; + /** + * Return the last loop + * + * @returns {object} + */ + last_loop(): any; + /** + * Return the second-last loop + * + * @returns {object} Loop array + */ + parent_loop(): any; + /** + * Extract the loop count integer from a LOOP cmd + * + * @returns {integer} Loop count in string parsed into integer + */ + loop_count(str: string): number; + /** + * Execute a fade of frame length, from color to another color + * + * @param {string} line Line containing a fade initiator + */ + fade(line: string): void; + /** + * Extract the fade length integer from a FADE cmd + * + * @param {string} str Line containing the length of fade in frames + */ + fade_count(str: string): number; + /** + * Extract the start color from a string + * + * @param {string} str Line containing the start color value in a fade initiator + * + * @returns {array} Array containing RGB color values + */ + fade_start(str: string): RGB; + /** + * Extract the end color from a string + * + * @param {string} str Line containing the end color value in a fade initiator + * + * @returns {array} Array containing RGB color values + */ + fade_end(str: string): RGB; + /** + * Determine the state of a fade at a particular frame in the sequence, x + * + * @param {array} start Color the fade starts at + * @param {array} end Color the fade finishes at + * @param {integer} len Total length of the fade in frames + * @param {integer} x Position of the fade to get color value of + * + * @returns {array} Array containing RGB color values + */ + fade_rgb(start: RGB, end: RGB, len: number, x: number): string; + /** + * Parse string into array of RGB color values. 0-255 octet. + * + * @param {string} str String containing only color values as `#,#,#` + **/ + rgb(str: string): RGB; + /** + * Cast RGB color values as string + * + * @param {array} arr Array to join into string + * + * @returns {string} String of RGB values + **/ + rgb_str(arr: RGB): string; + /** + * Increase the state of a specific object, such as the camera/projector, + * by the value defined in val. + * + * @param {string} cmd String representing command to interpret and update state + */ + update(cmd: string, val?: number): void; + /** + * Split string on command, turn into array of commands + * as long as count variable. Default 1. + * + * @param {string} str String to split + * @param {string} cmd String representing command to split at + * + * @returns {array} Array containing commands + */ + str_to_arr(str: string, cmd: string): string[]; + /** + * Split a string on a command to extract data for light array + * + * @param {string} str String containing light command + * @param {string} cmd String representing command + * + * @returns {array} An RGB array containing the color values + */ + light_to_arr(str: string, cmd: string): RGB; + /** + * Split a string to extract an rgb color value + * + * @param {string} Color string assign to color property + */ + light_state(str: string): void; + /** + * Interpret a pause command + * + * @param {string} line String containing pause command + **/ + pause(line: string): void; + /** + * Interpret an alert command + * + * @param {string} line String containing pause command + **/ + alert(line: string): void; + /** + * Throw an error with specific message + * + * @param {string} msg Error message to print + */ + fail(msg: string): void; + /** + * Determine if array contains matching elements of + * another array + * + * @param {Array} arr Original array to compare + * @param {Array} arr2 Array to compare elements from + * + * @returns {boolean} Whether arr contains elements in arr2 + **/ + contains(arr: string[], arr2: string[]): boolean; +} +export {}; diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index c510995..364a088 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -1,4 +1,6 @@ 'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Mscript = void 0; const BLACK = '0,0,0'; const WHITE = '255,255,255'; const CMD = [ @@ -122,7 +124,7 @@ class Mscript { * * @returns {object} if callback is not provided */ - interpret(text, callback) { + interpret(text, callback = null) { this.clear(); if (typeof text === 'undefined') { return this.fail('No input'); @@ -200,7 +202,7 @@ class Mscript { if (this.contains(this.arr, PROJECTOR_SECONDARY)) { this.output.proj2 = this.proj2; } - if (typeof callback !== 'undefined') { + if (typeof callback !== 'undefined' && callback != null) { //should only be invoked by running mscript.tests() callback(this.output); } @@ -967,5 +969,6 @@ class Mscript { return arr.some(r => arr2.includes(r)); } } +exports.Mscript = Mscript; module.exports = Mscript; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/mscript/index.js.map b/app/lib/mscript/index.js.map index 8678848..ba042c9 100644 --- a/app/lib/mscript/index.js.map +++ b/app/lib/mscript/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AASb,MAAM,KAAK,GAAY,OAAO,CAAC;AAC/B,MAAM,KAAK,GAAY,aAAa,CAAC;AACrC,MAAM,GAAG,GAAc;IACtB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACH,MAAM;IACN,MAAM;IACN,MAAM;CACT,CAAC;AAEF,MAAM,gBAAgB,GAAc;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACH,MAAM;CACT,CAAC;AAEF,MAAM,mBAAmB,GAAc;IACtC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACF,MAAM;IACN,MAAM;CACT,CAAC;AAEF,MAAM,IAAI,GAAS;IAClB,IAAI,EAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACxC,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC5C,IAAI,EAAG,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;IAC3D,IAAI,EAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC;IACrE,IAAI,EAAG,CAAC,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC;IAC3E,IAAI,EAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC;IACrD,IAAI,EAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IACjC,IAAI,EAAG,CAAC,MAAM,CAAC;IACf,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACxC,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC;IAC3C,KAAK,EAAG,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;IAClF,KAAK,EAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC;IAC/C,KAAK,EAAG,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;IAElF,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;IACZ,MAAM,EAAG,EAAG;CACf,CAAC;AAEF,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,KAAK,GAAG,OAAO,CAAC;AAEtB,uBAAuB;AAEvB;;;;;;IAMI;AACJ,SAAS,UAAU,CAAE,GAAY,EAAE,MAAe,EAAE,QAAkB;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,EAAE;QACjB,QAAQ,GAAG,CAAC,CAAC;KACb;SAAM,IAAI,QAAQ,GAAG,MAAM,EAAE;QAC7B,QAAQ,GAAG,MAAM,CAAC;KAClB;IACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAChE,CAAC;AAED,oBAAoB;AACpB,MAAM,OAAO;IAmBZ;;;QAGI;IAEJ;QACC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,sCAAsC;QACvD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IACD;;;;;;;;;OASG;IACH,SAAS,CAAE,IAAa,EAAE,QAAmB;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7B;QAED,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY;YAC7C,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,mDAAmD;YACvE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAA;QAEF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,mBAAmB;aACnB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACvB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,4BAA4B;gBAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,4BAA4B;gBACjE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,2BAA2B;gBAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACtB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,2BAA2B;gBACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB;gBACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC3D,UAAU;gBACV,sBAAsB;aACtB;SACD;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,+BAA+B;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SAC/B;QAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACpC,mDAAmD;YACnD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;aAAM;YACN,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;IACF,CAAC;IACD;;;;;;QAMI;IACJ,QAAQ,CAAE,IAAa;QACtB,IAAI,KAAK,GAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,GAAG,GAAY,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAS,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAa,KAAK,CAAC;QAE7B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACxC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,IAAI,KAAK;gBACT,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,qBAAqB;YACpD,IAAI;gBACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;YAAC,OAAO,GAAG,EAAE;gBACb,uBAAuB;aACvB;SACD;QACD,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC5B;QACD,6BAA6B;IAC9B,CAAC;IAED;;;;;;;QAOI;IACJ,gBAAgB,CAAC,IAAa;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IACD;;;;;OAKG;IACH,SAAS,CAAE,IAAa,EAAE,KAAc;QACvC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,KAAK,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAClC,IAAI,CAAC,YAAY,CAAC,IAAI,EACtB,KAAK,CAAC,CAAC,CAAC;SACZ;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAChE;IACF,CAAC;IACD;;;;;OAKG;IACH,QAAQ,CAAE,IAAa,EAAE,IAAe;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACtB,GAAG,EAAG,EAAE;YACR,IAAI,EAAG,EAAE;YACT,GAAG,EAAG,CAAC;YACP,IAAI,EAAG,CAAC;YACR,IAAI,EAAG,CAAC;YACR,KAAK,EAAG,CAAC;YACT,GAAG,EAAG,IAAI,GAAG,EAAE;SACf,CAAC;QACF,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;IACF,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,QAAmB,CAAC;QACxB,IAAI,KAAW,CAAC;QAChB,IAAI,GAAS,CAAC;QACd,IAAI,GAAY,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;gBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBACnC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACpC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAA;aACF;YACD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC1C;iBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;qBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI;qBAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EACtC,QAAQ,CAAC,CAAC;aACd;SACD;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,QAAQ,CAAE,IAAa;QACtB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;aACD;SACD;IACF,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAE,IAAa;QACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;aAAM;YACN,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnB;aACD;SACD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAE,IAAa;QACvB,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;YACzC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YACvC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;aAAM,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;IACF,CAAC;IACD;;;;OAIG;IACH,SAAS;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;OAIG;IACH,IAAI,CAAE,IAAa;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrC,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAE,GAAY;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD;;;;;;OAMG;IACH,UAAU,CAAE,GAAa;QACxB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD;;;;;;OAMG;IACH,QAAQ,CAAE,GAAY;QACrB,IAAI,KAAK,GAAY,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACE;;;;;;;;;OASA;IACH,QAAQ,CAAE,KAAW,EAAE,GAAS,EAAE,GAAY,EAAE,CAAU;QACzD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACN,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACvD;SACD;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1B,CAAC;IACD;;;;QAII;IACJ,GAAG,CAAE,GAAY;QAChB,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,IAAa,EAAE,EAAE;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAA;IACH,CAAC;IACD;;;;;;QAMI;IACJ,OAAO,CAAE,GAAS;QACjB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;;;;;OAKG;IACH,MAAM,CAAE,GAAY,EAAE,MAAe,CAAC;QACrC,IAAI,GAAG,KAAK,KAAK,EAAE;YAClB,8BAA8B;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBACnB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBACvC;qBAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;iBAC3D;aACD;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;aAChB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aAChC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAA;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAA;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;aACjB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;aACjC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;aAClB;iBAAM;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;aAClC;SACD;aAAM,IAAI,GAAG,KAAK,IAAI,EAAE;SAExB;IACF,CAAC;IACD;;;;;;;;OAQG;IACH,UAAU,CAAE,GAAY,EAAE,GAAY;QACrC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;;;;OAOG;IACH,YAAY,CAAE,GAAY,EAAE,GAAY;QACvC,MAAM,GAAG,GAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAY,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,CAAC,GAAG,CAAC,CAAC;SACN;aAAM;YACN,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;QACD,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,GAAG,KAAK,IAAI;mBACZ,GAAG,KAAK,IAAI,EAAE;gBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;iBAAM,IAAI,GAAG,KAAK,IAAI;mBAClB,GAAG,KAAK,IAAI,EAAE;gBAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChB;iBAAM;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACb;SACD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IACD;;;;OAIG;IACH,WAAW,CAAE,GAAY;QACxB,oCAAoC;QACpC,MAAM,KAAK,GAAY,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;;QAII;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,GAAY,CAAC;QACjB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEvB,IAAI;YACH,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;SACrD;QAAC,OAAO,GAAG,EAAE;YACb,GAAG,GAAG,CAAC,CAAC;SACR;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACf,GAAG,GAAG,CAAC,CAAC;SACR;QAED,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,MAAM,CAAC,CAAC;SACf;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAE,IAAa;QACnB,IAAI,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3C,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;iBACtB,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;iBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;SACb;aAAM;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;IACD,CAAC;IAEF;;;;OAIG;IACH,IAAI,CAAE,GAAY;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;;;;;;QAQI;IACJ,QAAQ,CAAE,GAAc,EAAE,IAAe;QACxC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/mscript.js b/app/lib/ui/mscript.js index c55c5a7..0bcb37e 100644 --- a/app/lib/ui/mscript.js +++ b/app/lib/ui/mscript.js @@ -1,233 +1,280 @@ -const mse = {}; - +'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +const mscript_1 = require("mscript"); /****** - Mscript GUI + Mscript GUI *******/ -mse.mscript = {}; -mse.mscript.editor = {}; -mse.mscript.data = {}; -mse.mscript.raw = ''; -mse.mscript.init = function () { - 'use strict'; - $('#editor').val('CF 1\nPF 1'); - mse.mscript.editor = CodeMirror.fromTextArea(document.getElementById('editor'), { - lineNumbers: true, - mode: 'python', - matchBrackets: true, - theme: 'monokai' - }); - mse.mscript.editor.setSize(null, $(window).height() - $('footer').eq(0).height() - 30); - mse.mscript.editor.on('change', function (e) { - // - }); - $(document).on('resize', function (e) { - mse.mscript.editor.setSize(null, $(window).height() - $('footer').eq(0).height() - 30); - }); -}; -mse.mscript.open = function () { - 'use strict'; - mse.mscript.editor.setSize(null, $(window).height() - $('footer').eq(0).height() - 30); - mse.mscript.editor.refresh(); -}; -mse.mscript.fromSequence = function () { - //ehhhhh - 'use strict'; - let str; - let tmp = []; - let cont; - let cmd; - //str = seq.grid.map(step => { return step.cmd }).join('\n'); //quick hack - //console.dir(seq.grid); - for (let step of seq.grid) { - if (!step || !step.cmd) continue; - cmd = step.cmd; - if (tmp.length > 0 && tmp[tmp.length - 1].cmd === cmd) { - tmp[tmp.length - 1].num++; - continue; - } - tmp.push({ cmd : cmd, num : 1 }); - } - tmp = tmp.map(line => { - return `${line.cmd} ${line.num}` - }) - //console.dir(tmp) - if (seq.gridLoops > 1) { - tmp.map(line => { - return ` ${line}`; - }) - tmp.reverse(); - tmp.push(`LOOP ${seq.gridLoops}`); - tmp.reverse(); - tmp.push('END'); - } - - str = tmp.join('\n'); - - nav.change('script'); - cont = confirm(`Are you sure you want to over-write the current sequence?`); - if (cont) { - mse.mscript.editor.getDoc().setValue(str); - } -}; -mse.mscript.toGUI = function () { - 'use strict'; - let c; - let step; - for (let x = 0; x < mse.mscript.data.arr.length; x++) { - c = mse.mscript.data.arr[x]; - seq.set(x, c); - if (c === 'CF' || c === 'CB') { - if (typeof mse.mscript.data.meta[x] !== 'undefined' && mse.mscript.data.meta[x] !== '') { - seq.setLight(x, mse.mscript.data.meta[x]); - } else { - seq.setLight(x, light.color); - } - } else { - //unset light? - } - grid.state(x); - } -}; -mse.mscript.toSequence = function () { - 'use strict'; - const data = mse.mscript.editor.getValue(); - let cont; - if (data !== mse.mscript.raw) { - cont = confirm(`Current script has not been compiled. Compile first?`); - if (cont) { - mse.mscript.compile() - } - } - mse.console.print(`Sending compiled script to GUI sequencer...`); - seq.clear(); - mse.mscript.toGUI(); - grid.refresh(); - seq.stats(); - return nav.change('sequencer'); +class MscriptGUI { + constructor() { + this.editor = {}; + this.data = {}; + this.raw = ''; + } + /** + * Initializes the mscript GUI. Sets up CodeMirror instance, + * binds events and sets height of editor. + **/ + init() { + const startingScript = `CF 1 +PF 1`; + const editorHeight = $(window).height() - $('footer').eq(0).height() - 30; + const editorElem = document.getElementById('editor'); + const editorConfig = { + lineNumbers: true, + mode: 'python', + matchBrackets: true, + theme: 'monokai' + }; + $('#editor').val(startingScript); + this.editor = CodeMirror.fromTextArea(editorElem, editorConfig); + this.editor.setSize(null, editorHeight); + this.editor.on('change', (e) => { }); + $(document).on('resize', function (e) { + this.editor.setSize(null, editorHeight); + }.bind(this)); + } + /** + * Callback for when open event occurs. + **/ + open() { + //recalcuate in case resize has occurred needed + const editorHeight = $(window).height() - $('footer').eq(0).height() - 30; + this.editor.setSize(null, editorHeight); + this.editor.refresh(); + } + /** + * Create script from the sequencer's current state. + * Previous comment: ehhhh + * TODO: Make this smarter. + **/ + fromSequence() { + let str; + let tmp = []; + let cont; + let cmd; + //str = seq.grid.map(step => { return step.cmd }).join('\n'); //quick hack + //console.dir(seq.grid); + for (let step of seq.grid) { + if (!step || !step.cmd) { + continue; + } + cmd = step.cmd; + if (tmp.length > 0 && tmp[tmp.length - 1].cmd === cmd) { + tmp[tmp.length - 1].num++; + continue; + } + tmp.push({ cmd, num: 1 }); + } + tmp = tmp.map(line => { + return `${line.cmd} ${line.num}`; + }); + if (seq.gridLoops > 1) { + tmp.map(line => { + return ` ${line}`; + }); + tmp.reverse(); + tmp.push(`LOOP ${seq.gridLoops}`); + tmp.reverse(); + tmp.push('END'); + } + str = tmp.join('\n'); + nav.change('script'); + cont = confirm(`Are you sure you want to over-write the current sequence?`); + if (cont) { + this.editor.getDoc().setValue(str); + } + } + /** + * Take current compiled mscript state and send it to the sequencer + * GUI. TODO: Add confirm step if sequence is longer than X steps. + * TODO: Make this smarter (detect outer non-fade loop and assign to loop counter) + **/ + toGUI() { + let c; + let step; + for (let x = 0; x < this.data.arr.length; x++) { + c = this.data.arr[x]; + seq.set(x, c); + if (c === 'CF' || c === 'CB') { + if (typeof this.data.meta[x] !== 'undefined' && this.data.meta[x] !== '') { + seq.setLight(x, this.data.meta[x]); + } + else { + seq.setLight(x, light.color); + } + } + else { + //unset light? + } + grid.state(x); + } + } + /** + * Handles compilation of mscript and switches to sequencer + * GUI after confirmation questions. + **/ + toSequence() { + const data = this.editor.getValue(); + let cont = false; + if (data !== this.raw) { + cont = confirm(`Current script has not been compiled. Compile first?`); + if (cont) { + this.compile(); + } + } + mse.console.print(`Sending compiled script to GUI sequencer...`); + seq.clear(); + this.toGUI(); + grid.refresh(); + seq.stats(); + return nav.change('sequencer'); + } + /** + * Compiles text in editor using the Mscript library. + * + **/ + compile() { + const data = this.editor.getValue(); + const mscript = new mscript_1.Mscript(); + const output = mscript.interpret(data); + const len = output.arr.length; + const cam2 = typeof output.cam2 !== 'undefined' ? `, CAM2 : ${output.cam2}` : ''; + const proj2 = typeof output.proj2 !== 'undefined' ? `, PROJ2 : ${output.proj2}` : ''; + const report = `Sequence contains ${len} step${(len === 1 ? '' : 's')}, CAM: ${output.cam}, PROJ: ${output.proj}${cam2}${proj2}`; + this.raw = data; + this.data = output; + //mse.console.print(JSON.stringify(output, null, '\t') + '\n') + mse.console.print(report); + } + /** + * This function re-writes the optional "meta" attribute + * of an mcopy command object to "light". TODO: change this. + * Do not re-write this object and improve the consumers + * of the compiled data. + **/ + prepare() { + const arr = []; + let obj; + for (let i = 0; i < this.data.arr.length; i++) { + obj = { + cmd: this.data.arr[i] + }; + if (typeof this.data.meta[i] !== 'undefined' && this.data.meta[i] !== '') { + obj.light = this.data.meta[i]; + } + else { + obj.light = light.color.join(','); + } + arr.push(obj); + } + return arr; + } + /** + * Method which compiles script if needs and then runs as a sequence. + **/ + run() { + const data = this.editor.getValue(); + let arr; + let cont = false; + if (data !== this.raw) { + cont = confirm(`Current script has not been compiled. Compile first?`); + if (cont) { + this.compile(); + } + } + arr = this.prepare(); + mse.console.print(`Started running compiled sequence...`); + gui.overlay(true); + gui.spinner(true, `Running mscript sequence...`, true, true); + return seq.exec(arr, 1); + } } -mse.mscript.compile = function () { - 'use strict'; - const data = mse.mscript.editor.getValue(); - const mscript = new Mscript(); - let output = mscript.interpret(data); - let len = output.arr.length; - const cam2 = typeof output.cam2 !== 'undefined' ? `, CAM2 : ${output.cam2}` : ''; - const proj2 = typeof output.proj2 !== 'undefined' ? `, PROJ2 : ${output.proj2}` : ''; - - mse.mscript.raw = data; - mse.mscript.data = output; - //mse.console.print(JSON.stringify(output, null, '\t') + '\n') - mse.console.print(`Sequence contains ${len} step${(len === 1 ? '' : 's')}, CAM: ${output.cam}, PROJ: ${output.proj}${cam2}${proj2}`); -}; - -mse.mscript.prepare = function () { - 'use strict'; - const arr = []; - let obj; - for (let i = 0; i < mse.mscript.data.arr.length; i++) { - obj = { - cmd : mse.mscript.data.arr[i] - }; - if (typeof mse.mscript.data.meta[i] !== 'undefined' && mse.mscript.data.meta[i] !== '') { - obj.light = mse.mscript.data.meta[i]; - } else { - obj.light = light.color.join(','); - } - arr.push(obj); - } - return arr; -}; - -mse.mscript.run = function () { - 'use strict'; - const data = mse.mscript.editor.getValue(); - let arr; - let cont; - if (data !== mse.mscript.raw) { - cont = confirm(`Current script has not been compiled. Compile first?`); - if (cont) { - mse.mscript.compile(); - } - } - arr = mse.mscript.prepare(); - mse.console.print(`Started running compiled sequence...`); - gui.overlay(true); - gui.spinner(true, `Running mscript sequence...`, true, true); - return seq.exec(arr, 1); -}; - /******* - * gui console + * Mscript GUI Console *******/ -mse.console = {}; -mse.console.elem = {}; -mse.console.init = function () { - 'use script'; - mse.console.elem = $('#console textarea'); - mse.console.elem.on('keyup', function (e) { - var code = e.keyCode || e.which; - if (code === 13) { - mse.console.exec(); - e.preventDefault(); - return false; - } - }); +class MscriptConsole { + /** + * Initializes the console by creating the element + * containing the output text and binding to + * keyup event. + **/ + init() { + this.elem = $('#console textarea'); + this.elem.on('keyup', function (e) { + var code = e.keyCode || e.which; + if (code === 13) { + this.exec(); + e.preventDefault(); + return false; + } + }.bind(this)); + } + /** + * Parse the current state of the console and get the last + * line to add to the current state array. + **/ + parse() { + const lines = (this.elem.val() + '').split('\n'); + const line = lines[lines.length - 2].replace('>', '').trim(); + this.lines.push(line); + } + /** + * Executes the command in the last line of the console. + * TODO: implement the remaining commands. Currently only camera + * forward and backward will be executed. + **/ + exec() { + let command; + this.parse(); + command = this.lines[this.lines.length - 1].replace('>', '').trim(); + log.info(command); + this.newLine(); + if (mscript.cmd.indexOf(command) !== -1) { + if (command === 'CF') { + cmd.camera_forward(light.color); + } + else if (cmd === 'CB') { + cmd.camera_backward(light.color); + } + } + if (command === 'compile') { + mse.mscript.compile(); + } + else if (command === 'run') { + mse.mscript.run(); + } + } + /** + * Adds a new line to the console after an event + * and re-establishes the height of the array. Animates + * the console to scroll down to last line. + **/ + newLine() { + let current = (this.elem.val() + ''); + let height; + current += '> '; + this.elem.val(current); + height = this.elem[0].scrollHeight; + this.elem.animate({ + scrollTop: height + }, 'normal'); + } + /** + * Print string to the console and add new line + **/ + print(str) { + let current = (this.elem.val() + ''); + let height; + current += str; + mse.console.elem.val(current); + mse.console.elem.focus(); + this.newLine(); + } +} +const mse = { + mscript: new MscriptGUI(), + console: new MscriptConsole() }; -mse.console.lines = []; -mse.console.parse = function () { - 'use strict'; - const lines = mse.console.elem.val().split('\n'); - const line = lines[lines.length - 2].replace('>', '').trim(); - mse.console.lines.push(line); -}; - -mse.console.exec = function () { - 'use strict'; - let command; - mse.console.parse(); - command = mse.console.lines[mse.console.lines.length - 1].replace('>', '').trim(); - log.info(command); - mse.console.newLine(); - if (mscript.cmd.indexOf(command) !== -1) { - if (command === 'CF') { - cmd.camera_forward(light.color); - } else if (cmd === 'CB') { - cmd.camera_backward(light.color); - } - } - - if (command === 'compile') { - mse.mscript.compile(); - } else if (command === 'run') { - mse.mscript.run(); - } -}; - -mse.console.newLine = function () { - 'use strict'; - let current = mse.console.elem.val(); - let height; - current += '> '; - mse.console.elem.val(current); - height = mse.console.elem[0].scrollHeight; - mse.console.elem.animate({ - scrollTop : height - },'normal'); -}; - -mse.console.print = function (str) { - 'use strict' - let current = mse.console.elem.val(); - let height; - current += str; - current += '\n> '; - mse.console.elem.val(current); - mse.console.elem.focus(); - - height = mse.console.elem[0].scrollHeight; - mse.console.elem.animate({ - scrollTop : height - },'normal'); -}; - -module.exports = mse; \ No newline at end of file +module.exports = mse; +//# sourceMappingURL=mscript.js.map \ No newline at end of file diff --git a/app/lib/ui/mscript.js.map b/app/lib/ui/mscript.js.map new file mode 100644 index 0000000..e661d72 --- /dev/null +++ b/app/lib/ui/mscript.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mscript.js","sourceRoot":"","sources":["../../src/lib/ui/mscript.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/package-lock.json b/app/package-lock.json index 9b812e0..896fa53 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -51,6 +51,7 @@ "winston": "^3.7.2" }, "devDependencies": { + "@types/codemirror": "^5.60.5", "@types/jquery": "^3.5.14", "chai": "^4.3.6", "electron": "^19.0.1", @@ -1045,12 +1046,27 @@ "@types/responselike": "*" } }, + "node_modules/@types/codemirror": { + "version": "5.60.5", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", + "integrity": "sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==", + "dev": true, + "dependencies": { + "@types/tern": "*" + } + }, "node_modules/@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "devOptional": true }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, "node_modules/@types/fs-extra": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", @@ -1120,6 +1136,15 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", "dev": true }, + "node_modules/@types/tern": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz", + "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/@types/yauzl": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", @@ -12125,12 +12150,27 @@ "@types/responselike": "*" } }, + "@types/codemirror": { + "version": "5.60.5", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.5.tgz", + "integrity": "sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==", + "dev": true, + "requires": { + "@types/tern": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "devOptional": true }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, "@types/fs-extra": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", @@ -12200,6 +12240,15 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", "dev": true }, + "@types/tern": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz", + "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, "@types/yauzl": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", diff --git a/app/package.json b/app/package.json index 8238510..de12728 100644 --- a/app/package.json +++ b/app/package.json @@ -35,6 +35,7 @@ }, "homepage": "https://github.com/sixteenmillimeter/mcopy#readme", "devDependencies": { + "@types/codemirror": "^5.60.5", "@types/jquery": "^3.5.14", "chai": "^4.3.6", "electron": "^19.0.1", diff --git a/app/src/lib/ui/mscript.ts b/app/src/lib/ui/mscript.ts new file mode 100644 index 0000000..b825cec --- /dev/null +++ b/app/src/lib/ui/mscript.ts @@ -0,0 +1,320 @@ +'use strict'; + +/// + +import { Mscript } from 'mscript'; + +declare var nav : any; +declare var gui : any; +declare var CodeMirror : any; +declare var mscript : any; +declare var cmd : any; + +interface MSE { + mscript : MscriptGUI, + console : MscriptConsole +} + +/****** + Mscript GUI +*******/ + +class MscriptGUI { + public editor : any = {}; + public data : any = {}; + public raw : string = ''; + + constructor () { + + } + + /** + * Initializes the mscript GUI. Sets up CodeMirror instance, + * binds events and sets height of editor. + **/ + public init () { + const startingScript : string = `CF 1 +PF 1`; + const editorHeight : number = $(window).height() - $('footer').eq(0).height() - 30; + const editorElem : HTMLTextAreaElement = document.getElementById('editor') as HTMLTextAreaElement; + const editorConfig : any = { + lineNumbers: true, + mode: 'python', + matchBrackets: true, + theme: 'monokai' + }; + $('#editor').val(startingScript); + this.editor = CodeMirror.fromTextArea(editorElem, editorConfig); + this.editor.setSize(null, editorHeight); + this.editor.on('change', (e : Event) => { }); + $(document).on('resize', function (e : Event) { + this.editor.setSize(null, editorHeight); + }.bind(this)); + } + + /** + * Callback for when open event occurs. + **/ + public open () { + //recalcuate in case resize has occurred needed + const editorHeight : number = $(window).height() - $('footer').eq(0).height() - 30; + this.editor.setSize(null, editorHeight); + this.editor.refresh(); + } + + /** + * Create script from the sequencer's current state. + * Previous comment: ehhhh + * TODO: Make this smarter. + **/ + fromSequence () { + let str : string; + let tmp : any[] = []; + let cont : boolean; + let cmd : string; + + //str = seq.grid.map(step => { return step.cmd }).join('\n'); //quick hack + //console.dir(seq.grid); + + for (let step of seq.grid) { + if (!step || !step.cmd) { + continue; + } + cmd = step.cmd; + if (tmp.length > 0 && tmp[tmp.length - 1].cmd === cmd) { + tmp[tmp.length - 1].num++; + continue; + } + tmp.push({ cmd, num : 1 }); + } + + tmp = tmp.map(line => { + return `${line.cmd} ${line.num}` + }) + + if (seq.gridLoops > 1) { + tmp.map(line => { + return ` ${line}`; + }) + tmp.reverse(); + tmp.push(`LOOP ${seq.gridLoops}`); + tmp.reverse(); + tmp.push('END'); + } + + str = tmp.join('\n'); + + nav.change('script'); + cont = confirm(`Are you sure you want to over-write the current sequence?`); + if (cont) { + this.editor.getDoc().setValue(str); + } + } + + /** + * Take current compiled mscript state and send it to the sequencer + * GUI. TODO: Add confirm step if sequence is longer than X steps. + * TODO: Make this smarter (detect outer non-fade loop and assign to loop counter) + **/ + toGUI () { + let c : string; + let step : string; + for (let x : number = 0; x < this.data.arr.length; x++) { + c = this.data.arr[x]; + seq.set(x, c); + if (c === 'CF' || c === 'CB') { + if (typeof this.data.meta[x] !== 'undefined' && this.data.meta[x] !== '') { + seq.setLight(x, this.data.meta[x]); + } else { + seq.setLight(x, light.color); + } + } else { + //unset light? + } + grid.state(x); + } + } + + /** + * Handles compilation of mscript and switches to sequencer + * GUI after confirmation questions. + **/ + toSequence () { + const data : string = this.editor.getValue(); + let cont : boolean = false; + if (data !== this.raw) { + cont = confirm(`Current script has not been compiled. Compile first?`); + if (cont) { + this.compile() + } + } + mse.console.print(`Sending compiled script to GUI sequencer...`); + seq.clear(); + this.toGUI(); + grid.refresh(); + seq.stats(); + return nav.change('sequencer'); + } + + /** + * Compiles text in editor using the Mscript library. + * + **/ + compile () { + const data : string = this.editor.getValue(); + const mscript : Mscript = new Mscript(); + const output : any = mscript.interpret(data); + const len : number = output.arr.length; + const cam2 : string = typeof output.cam2 !== 'undefined' ? `, CAM2 : ${output.cam2}` : ''; + const proj2 : string = typeof output.proj2 !== 'undefined' ? `, PROJ2 : ${output.proj2}` : ''; + const report : string = `Sequence contains ${len} step${(len === 1 ? '' : 's')}, CAM: ${output.cam}, PROJ: ${output.proj}${cam2}${proj2}`; + + this.raw = data; + this.data = output; + //mse.console.print(JSON.stringify(output, null, '\t') + '\n') + mse.console.print(report); + } + + /** + * This function re-writes the optional "meta" attribute + * of an mcopy command object to "light". TODO: change this. + * Do not re-write this object and improve the consumers + * of the compiled data. + **/ + prepare () { + const arr : any[] = []; + let obj : any; + for (let i : number = 0; i < this.data.arr.length; i++) { + obj = { + cmd : this.data.arr[i] + }; + if (typeof this.data.meta[i] !== 'undefined' && this.data.meta[i] !== '') { + obj.light = this.data.meta[i]; + } else { + obj.light = light.color.join(','); + } + arr.push(obj); + } + return arr; + } + + /** + * Method which compiles script if needs and then runs as a sequence. + **/ + run () { + const data : string = this.editor.getValue(); + let arr : any[]; + let cont : boolean = false; + if (data !== this.raw) { + cont = confirm(`Current script has not been compiled. Compile first?`); + if (cont) { + this.compile(); + } + } + arr = this.prepare(); + mse.console.print(`Started running compiled sequence...`); + gui.overlay(true); + gui.spinner(true, `Running mscript sequence...`, true, true); + return seq.exec(arr, 1); + } +} + + +/******* + * Mscript GUI Console + *******/ + +class MscriptConsole { + public elem : JQuery; + private lines : string[]; + + + /** + * Initializes the console by creating the element + * containing the output text and binding to + * keyup event. + **/ + public init () { + this.elem = $('#console textarea'); + this.elem.on('keyup', function (e : KeyboardEvent) { + var code : number = e.keyCode || e.which; + if (code === 13) { + this.exec(); + e.preventDefault(); + return false; + } + }.bind(this)); + } + + /** + * Parse the current state of the console and get the last + * line to add to the current state array. + **/ + parse () { + const lines : string[] = (this.elem.val() + '').split('\n'); + const line : string = lines[lines.length - 2].replace('>', '').trim(); + this.lines.push(line); + } + + /** + * Executes the command in the last line of the console. + * TODO: implement the remaining commands. Currently only camera + * forward and backward will be executed. + **/ + exec () { + let command : string; + this.parse(); + command = this.lines[this.lines.length - 1].replace('>', '').trim(); + log.info(command); + this.newLine(); + if (mscript.cmd.indexOf(command) !== -1) { + if (command === 'CF') { + cmd.camera_forward(light.color); + } else if (cmd === 'CB') { + cmd.camera_backward(light.color); + } + } + + if (command === 'compile') { + mse.mscript.compile(); + } else if (command === 'run') { + mse.mscript.run(); + } + } + + /** + * Adds a new line to the console after an event + * and re-establishes the height of the array. Animates + * the console to scroll down to last line. + **/ + newLine () { + let current : string = (this.elem.val() + ''); + let height : number; + current += '> '; + this.elem.val(current); + height = this.elem[0].scrollHeight; + this.elem.animate({ + scrollTop : height + }, 'normal'); + } + + /** + * Print string to the console and add new line + **/ + print (str : string) { + let current : string = (this.elem.val() + ''); + let height : number; + current += str; + mse.console.elem.val(current); + mse.console.elem.focus(); + + this.newLine(); + } +} + +const mse : MSE = { + mscript : new MscriptGUI(), + console : new MscriptConsole() +}; + +module.exports = mse; \ No newline at end of file diff --git a/app/tsconfig.json b/app/tsconfig.json index 427d0dd..0f7945c 100644 --- a/app/tsconfig.json +++ b/app/tsconfig.json @@ -11,7 +11,8 @@ "outDir": "./", "rootDir" : "./src/", "paths" : { - "log" : ["./lib/log"] + "log" : ["./lib/log"], + "mscript" : ["./lib/mscript"] } }, "exclude" : [ diff --git a/src/mscript/index.ts b/src/mscript/index.ts index 8241c14..55a3e02 100644 --- a/src/mscript/index.ts +++ b/src/mscript/index.ts @@ -72,8 +72,8 @@ const ALTS : any = { 'PBPF' : [ ] }; -const PAUSE = 'PAUSE'; -const ALERT = 'ALERT'; +const PAUSE : string = 'PAUSE'; +const ALERT : string = 'ALERT'; /** helper functions */ @@ -86,20 +86,24 @@ const ALERT = 'ALERT'; **/ function startsWith (str : string, target : string, position? : number) : boolean { const { length } = str; + position = position == null ? 0 : position; + if (position < 0) { position = 0; } else if (position > length) { position = length; } + target = `${target}`; + return str.slice(position, position + target.length) == target; } /** class Mscript */ -class Mscript { +export class Mscript { output : any; - lines : any[]; + lines : string[]; cam : number; cam2 : number; proj : number; @@ -159,7 +163,7 @@ class Mscript { * * @returns {object} if callback is not provided */ - interpret (text : string, callback : Function) { + interpret (text : string, callback : Function = null) { this.clear() if (typeof text === 'undefined') { @@ -228,7 +232,7 @@ class Mscript { this.output.proj2 = this.proj2; } - if (typeof callback !== 'undefined') { + if (typeof callback !== 'undefined' && callback != null) { //should only be invoked by running mscript.tests() callback(this.output); } else { diff --git a/tsconfig.json b/tsconfig.json index b01b6ec..4a1c7ed 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "moduleResolution": "node", "sourceMap": true, "removeComments" : false, + "declaration" : true, "baseUrl" : "lib", "outDir": "./lib/", "rootDir" : "./src/", -- 2.40.1 From 72b50773566ddb27abcfba972ce0439cbfb4140d Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Sun, 7 Aug 2022 22:18:58 -0400 Subject: [PATCH 38/89] Restructure includes and type definition files so that mscript runs --- app/lib/mscript/index.d.ts | 2 +- app/lib/mscript/index.js | 3 +-- app/lib/mscript/index.js.map | 2 +- app/lib/ui/mscript.js | 8 ++++++-- app/lib/ui/mscript.js.map | 2 +- app/src/lib/ui/mscript.ts | 3 ++- app/test/mscript.test.js | 2 ++ src/mscript/index.ts | 2 +- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/lib/mscript/index.d.ts b/app/lib/mscript/index.d.ts index 6c40b81..0a89f28 100644 --- a/app/lib/mscript/index.d.ts +++ b/app/lib/mscript/index.d.ts @@ -3,7 +3,7 @@ interface RGB extends Array { [index: number]: number; } /** class Mscript */ -export declare class Mscript { +export default class Mscript { output: any; lines: string[]; cam: number; diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 364a088..1833918 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -1,6 +1,5 @@ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Mscript = void 0; const BLACK = '0,0,0'; const WHITE = '255,255,255'; const CMD = [ @@ -969,6 +968,6 @@ class Mscript { return arr.some(r => arr2.includes(r)); } } -exports.Mscript = Mscript; +exports.default = Mscript; module.exports = Mscript; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/mscript/index.js.map b/app/lib/mscript/index.js.map index ba042c9..1f6946d 100644 --- a/app/lib/mscript/index.js.map +++ b/app/lib/mscript/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mscript/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/lib/ui/mscript.js b/app/lib/ui/mscript.js index 0bcb37e..f3f6355 100644 --- a/app/lib/ui/mscript.js +++ b/app/lib/ui/mscript.js @@ -1,7 +1,10 @@ 'use strict'; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); /// -const mscript_1 = require("mscript"); +const mscript_1 = __importDefault(require("mscript")); /****** Mscript GUI *******/ @@ -136,7 +139,7 @@ PF 1`; **/ compile() { const data = this.editor.getValue(); - const mscript = new mscript_1.Mscript(); + const mscript = new mscript_1.default(); const output = mscript.interpret(data); const len = output.arr.length; const cam2 = typeof output.cam2 !== 'undefined' ? `, CAM2 : ${output.cam2}` : ''; @@ -267,6 +270,7 @@ class MscriptConsole { let current = (this.elem.val() + ''); let height; current += str; + current += '\n'; mse.console.elem.val(current); mse.console.elem.focus(); this.newLine(); diff --git a/app/lib/ui/mscript.js.map b/app/lib/ui/mscript.js.map index e661d72..d9825c5 100644 --- a/app/lib/ui/mscript.js.map +++ b/app/lib/ui/mscript.js.map @@ -1 +1 @@ -{"version":3,"file":"mscript.js","sourceRoot":"","sources":["../../src/lib/ui/mscript.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,qCAAqC;AAErC,qCAAkC;AAalC;;QAEQ;AAER,MAAM,UAAU;IAKf;QAJO,WAAM,GAAS,EAAE,CAAC;QAClB,SAAI,GAAS,EAAE,CAAC;QAChB,QAAG,GAAY,EAAE,CAAC;IAIzB,CAAC;IAED;;;QAGI;IACG,IAAI;QACV,MAAM,cAAc,GAAY;KAC7B,CAAC;QACJ,MAAM,YAAY,GAAY,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACnF,MAAM,UAAU,GAAyB,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAwB,CAAC;QAClG,MAAM,YAAY,GAAS;YAC1B,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,SAAS;SAChB,CAAC;QACF,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAS;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC;IAED;;QAEI;IACG,IAAI;QACV,+CAA+C;QAC/C,MAAM,YAAY,GAAY,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;QAII;IACH,YAAY;QACZ,IAAI,GAAY,CAAC;QACjB,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,IAAc,CAAC;QACnB,IAAI,GAAY,CAAC;QAEjB,0EAA0E;QAC1E,wBAAwB;QAExB,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,SAAS;aACT;YACD,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACf,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtD,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC1B,SAAS;aACT;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAG,CAAC,EAAE,CAAC,CAAC;SAC3B;QAED,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACd,OAAO,IAAI,IAAI,EAAE,CAAC;YACnB,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChB;QAED,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,GAAG,OAAO,CAAC,2DAA2D,CAAC,CAAC;QAC5E,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACnC;IACF,CAAC;IAED;;;;QAII;IACJ,KAAK;QACJ,IAAI,CAAU,CAAC;QACf,IAAI,IAAa,CAAC;QAClB,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnC;qBAAM;oBACN,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC7B;aACD;iBAAM;gBACN,cAAc;aACd;YACD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACd;IACF,CAAC;IAED;;;QAGI;IACH,UAAU;QACV,MAAM,IAAI,GAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAa,KAAK,CAAC;QAC3B,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,GAAG,OAAO,CAAC,sDAAsD,CAAC,CAAC;YACvE,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;aACd;SACD;QACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED;;;QAGI;IACH,OAAO;QACP,MAAM,IAAI,GAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAa,IAAI,iBAAO,EAAE,CAAC;QACxC,MAAM,MAAM,GAAS,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAY,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QACvC,MAAM,IAAI,GAAY,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,KAAK,GAAY,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,MAAM,GAAY,qBAAqB,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,WAAW,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;QAE1I,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,8DAA8D;QAC9D,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;QAKI;IACJ,OAAO;QACN,MAAM,GAAG,GAAW,EAAE,CAAC;QACvB,IAAI,GAAS,CAAC;QACd,KAAK,IAAI,CAAC,GAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,GAAG,GAAG;gBACL,GAAG,EAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACtB,CAAC;YACF,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACN,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACd;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;QAEI;IACJ,GAAG;QACF,MAAM,IAAI,GAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,GAAa,KAAK,CAAC;QAC3B,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,GAAG,OAAO,CAAC,sDAAsD,CAAC,CAAC;YACvE,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;aACf;SACD;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;CACD;AAGD;;SAES;AAET,MAAM,cAAc;IAKnB;;;;QAII;IACG,IAAI;QACV,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAiB;YAChD,IAAI,IAAI,GAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;YACzC,IAAI,IAAI,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;aACb;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACf,CAAC;IAED;;;QAGI;IACJ,KAAK;QACJ,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAY,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;QAII;IACJ,IAAI;QACH,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YACxC,IAAI,OAAO,KAAK,IAAI,EAAE;gBACrB,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAChC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACxB,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACjC;SACD;QAED,IAAI,OAAO,KAAK,SAAS,EAAE;YAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACtB;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE;YAC7B,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SAClB;IACF,CAAC;IAED;;;;QAII;IACJ,OAAO;QACN,IAAI,OAAO,GAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAe,CAAC;QACpB,OAAO,IAAI,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACd,SAAS,EAAG,MAAM;SACrB,EAAE,QAAQ,CAAC,CAAC;IACd,CAAC;IAED;;QAEI;IACJ,KAAK,CAAE,GAAY;QAClB,IAAI,OAAO,GAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAe,CAAC;QACpB,OAAO,IAAI,GAAG,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACD;AAED,MAAM,GAAG,GAAS;IACjB,OAAO,EAAG,IAAI,UAAU,EAAE;IAC1B,OAAO,EAAG,IAAI,cAAc,EAAE;CAC9B,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC"} \ No newline at end of file +{"version":3,"file":"mscript.js","sourceRoot":"","sources":["../../src/lib/ui/mscript.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app/src/lib/ui/mscript.ts b/app/src/lib/ui/mscript.ts index b825cec..14d3a0b 100644 --- a/app/src/lib/ui/mscript.ts +++ b/app/src/lib/ui/mscript.ts @@ -2,7 +2,7 @@ /// -import { Mscript } from 'mscript'; +import Mscript from 'mscript'; declare var nav : any; declare var gui : any; @@ -305,6 +305,7 @@ class MscriptConsole { let current : string = (this.elem.val() + ''); let height : number; current += str; + current += '\n'; mse.console.elem.val(current); mse.console.elem.focus(); diff --git a/app/test/mscript.test.js b/app/test/mscript.test.js index 012269e..ca3bb92 100644 --- a/app/test/mscript.test.js +++ b/app/test/mscript.test.js @@ -258,6 +258,8 @@ CF 10` }) }) +//secondary + /*describe('mscript - Variables', () => { const script1 = `@LIGHT=200,200,200 diff --git a/src/mscript/index.ts b/src/mscript/index.ts index 55a3e02..61bfd9c 100644 --- a/src/mscript/index.ts +++ b/src/mscript/index.ts @@ -101,7 +101,7 @@ function startsWith (str : string, target : string, position? : number) : boolea } /** class Mscript */ -export class Mscript { +export default class Mscript { output : any; lines : string[]; cam : number; -- 2.40.1 From d5ecd9e057126652e1925b7dd34116a9de3d01c5 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 16 Sep 2022 09:45:19 -0400 Subject: [PATCH 39/89] Improve capper documentation --- src/cmd/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cmd/index.ts b/src/cmd/index.ts index 5fd5962..4210f65 100644 --- a/src/cmd/index.ts +++ b/src/cmd/index.ts @@ -26,8 +26,11 @@ class Commands { * @param {object} proj Projector 1 * @param {object} cam Camera 1 * @param {object} light Light source + * @param {object} alert Alert object * @param {object} cam2 (optional) Camera 2 * @param {object} proj2 (optional) Projector 2 + * @param {object} capper Capper object + * **/ constructor (cfg : any, proj : any, cam : any, light : any, alert : any, cam2 : any = null, proj2 : any = null, capper : any = null) { -- 2.40.1 From 5026cf869f2910864a2e1e088fe2b11a70cf367e Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 7 Oct 2022 19:47:56 -0400 Subject: [PATCH 40/89] Arri-S work --- app/lib/alert/index.d.ts | 1 + app/lib/arduino/index.d.ts | 1 + app/lib/cam/index.d.ts | 1 + app/lib/capper/index.d.ts | 1 + app/lib/cmd/index.d.ts | 1 + app/lib/delay/index.d.ts | 0 app/lib/devices/index.d.ts | 1 + app/lib/display/index.d.ts | 1 + app/lib/exec/index.d.ts | 13 +++++++ app/lib/exit/index.d.ts | 8 ++++ app/lib/ffmpeg/index.d.ts | 1 + app/lib/ffprobe/index.d.ts | 1 + app/lib/filmout/index.d.ts | 1 + app/lib/frame/index.d.ts | 15 ++++++++ app/lib/intval/index.d.ts | 9 +++++ app/lib/light/index.d.ts | 1 + app/lib/log/index.d.ts | 1 + app/lib/processing/index.d.ts | 1 + app/lib/proj/index.d.ts | 2 + app/lib/sequencer/index.d.ts | 1 + app/lib/settings/index.d.ts | 1 + app/lib/system/index.d.ts | 1 + scad/arri_s.scad | 72 +++++++++++++++++++++++++++++++++++ 23 files changed, 135 insertions(+) create mode 100644 app/lib/alert/index.d.ts create mode 100644 app/lib/arduino/index.d.ts create mode 100644 app/lib/cam/index.d.ts create mode 100644 app/lib/capper/index.d.ts create mode 100644 app/lib/cmd/index.d.ts create mode 100644 app/lib/delay/index.d.ts create mode 100644 app/lib/devices/index.d.ts create mode 100644 app/lib/display/index.d.ts create mode 100644 app/lib/exec/index.d.ts create mode 100644 app/lib/exit/index.d.ts create mode 100644 app/lib/ffmpeg/index.d.ts create mode 100644 app/lib/ffprobe/index.d.ts create mode 100644 app/lib/filmout/index.d.ts create mode 100644 app/lib/frame/index.d.ts create mode 100644 app/lib/intval/index.d.ts create mode 100644 app/lib/light/index.d.ts create mode 100644 app/lib/log/index.d.ts create mode 100644 app/lib/processing/index.d.ts create mode 100644 app/lib/proj/index.d.ts create mode 100644 app/lib/sequencer/index.d.ts create mode 100644 app/lib/settings/index.d.ts create mode 100644 app/lib/system/index.d.ts create mode 100644 scad/arri_s.scad diff --git a/app/lib/alert/index.d.ts b/app/lib/alert/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/alert/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/arduino/index.d.ts b/app/lib/arduino/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/arduino/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/cam/index.d.ts b/app/lib/cam/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/cam/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/capper/index.d.ts b/app/lib/capper/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/capper/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/cmd/index.d.ts b/app/lib/cmd/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/cmd/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/delay/index.d.ts b/app/lib/delay/index.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/app/lib/devices/index.d.ts b/app/lib/devices/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/devices/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/display/index.d.ts b/app/lib/display/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/display/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/exec/index.d.ts b/app/lib/exec/index.d.ts new file mode 100644 index 0000000..001b960 --- /dev/null +++ b/app/lib/exec/index.d.ts @@ -0,0 +1,13 @@ +declare const execRaw: any; +/** + * Promisified child_process.exec + * + * @param cmd + * @param arg + * @param opts See child_process.exec node docs + * @param {stream.Writable} opts.stdout If defined, child process stdout will be piped to it. + * @param {stream.Writable} opts.stderr If defined, child process stderr will be piped to it. + * + * @returns {Promise<{ stdout: string, stderr: stderr }>} + */ +declare function exec(...args: string[]): Promise; diff --git a/app/lib/exit/index.d.ts b/app/lib/exit/index.d.ts new file mode 100644 index 0000000..6a939da --- /dev/null +++ b/app/lib/exit/index.d.ts @@ -0,0 +1,8 @@ +/** + * Exit process with either a 0 code or other + * specified failure code. Print message to console first. + * + * @param {string} msg Reason for exit + * @param {integer} code process exit code, default 0 + **/ +declare function exit(msg: string, code?: number): void; diff --git a/app/lib/ffmpeg/index.d.ts b/app/lib/ffmpeg/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/ffmpeg/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/ffprobe/index.d.ts b/app/lib/ffprobe/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/ffprobe/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/filmout/index.d.ts b/app/lib/filmout/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/filmout/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/frame/index.d.ts b/app/lib/frame/index.d.ts new file mode 100644 index 0000000..11935c4 --- /dev/null +++ b/app/lib/frame/index.d.ts @@ -0,0 +1,15 @@ +interface RGBA { + r: number; + g: number; + b: number; + a: number; +} +export default class Frame { + static info(imagePath: string): Promise<{ + width: any; + height: any; + }>; + static solidColor(width: number, height: number, color: RGBA): Promise; + static blend(inPath: any, color: RGBA, imagePath: string): Promise; +} +export {}; diff --git a/app/lib/intval/index.d.ts b/app/lib/intval/index.d.ts new file mode 100644 index 0000000..c00ab7f --- /dev/null +++ b/app/lib/intval/index.d.ts @@ -0,0 +1,9 @@ +declare class Intval { + private _baseUrl; + private req; + constructor(url: string); + move(): Promise; + setDir(dir: boolean): Promise; + setExposure(exposure: number, cb: Function): Promise; + connect(cb: Function): void; +} diff --git a/app/lib/light/index.d.ts b/app/lib/light/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/light/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/log/index.d.ts b/app/lib/log/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/log/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/processing/index.d.ts b/app/lib/processing/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/processing/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/proj/index.d.ts b/app/lib/proj/index.d.ts new file mode 100644 index 0000000..ae6360f --- /dev/null +++ b/app/lib/proj/index.d.ts @@ -0,0 +1,2 @@ +/** class representing the Projector features **/ +export {}; diff --git a/app/lib/sequencer/index.d.ts b/app/lib/sequencer/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/sequencer/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/settings/index.d.ts b/app/lib/settings/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/settings/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/app/lib/system/index.d.ts b/app/lib/system/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/app/lib/system/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/scad/arri_s.scad b/scad/arri_s.scad new file mode 100644 index 0000000..a2e560d --- /dev/null +++ b/scad/arri_s.scad @@ -0,0 +1,72 @@ +// Arri-S Animation Motor + +include <../common.scad>; + +BarrelDiameter = 40; +BarrelLength = 75; + +SeatDiameter = 20; +SeatLength = 3; + +CapLength = 30; +CapDiameter = 30; +CapThickness = 3; + +CapCatchDiameter = 28; +CapCatchLength = 2; +CapCatchOffset = 24; + +CapRimDiameter = 37; +CapRimThickness = 3; + +NotchDiameter = 2; +NotchOffset = 3; + +DriveLength = 8; +DriveDiameter1 = 14; +DriveDiameter2 = 12; + +module motorBarrel () { + $fn = 200; + cylinder(r = BarrelDiameter / 2, r2 = (BarrelDiameter - 1) / 2, h = BarrelLength, center = true); +} + +module motorSeat () { + $fn = 120; + cylinder(r = SeatDiameter / 2, h = SeatLength, center = true); +} + +module motor () { + motorBarrel(); + translate([0, 0, (BarrelLength / 2) + (SeatLength / 2)]) motorSeat(); + //notch + $fn = 50; + translate([BarrelDiameter / 2, 0, -(BarrelLength / 2) + NotchOffset]) { + rotate([0, 90, 0]) { + cylinder(r = NotchDiameter / 2, h = 1, center = true); + translate([0, 0, NotchDiameter / 4]) sphere(r = NotchDiameter / 2); + } + } +} + +module capBellowsAdapter () { + $fn = 200; + difference () { + cylinder(r = CapDiameter / 2, h = CapLength, center = true); + cylinder(r = (CapDiameter - CapThickness) / 2, h = CapLength + 1, center = true); + //catch + translate([0, 0, (CapLength / 2) - CapCatchOffset]) difference () { + cylinder(r = (CapDiameter + 1) / 2, h = CapCatchLength, center = true); + cylinder(r = CapCatchDiameter / 2, h = CapCatchLength + 1, center = true); + } + } + translate([0, 0, (CapLength / 2) + (CapRimThickness / 2)]) { + difference () { + cylinder(r = CapRimDiameter / 2, h = CapRimThickness, center = true); + cube([CapDiameter - CapThickness - 8, CapDiameter - CapThickness - 8, CapRimThickness + 1], center = true); + } + } +} + +motor(); +//capBellowsAdapter(); -- 2.40.1 From 206c266b08b40eb0309466328e705cf63a85ecd5 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 9 Oct 2022 11:22:12 -0400 Subject: [PATCH 41/89] Added Arri-S motor and cap measurements as taken 10/8/2022 --- scad/arri_s.scad | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index a2e560d..5eba012 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -1,30 +1,30 @@ // Arri-S Animation Motor -include <../common.scad>; +include <./common.scad>; -BarrelDiameter = 40; -BarrelLength = 75; +BarrelDiameter = 45.1; +BarrelLength = 52; SeatDiameter = 20; -SeatLength = 3; +SeatLength = 5.8; -CapLength = 30; -CapDiameter = 30; +CapLength = 19; +CapDiameter = 40; CapThickness = 3; -CapCatchDiameter = 28; +CapCatchDiameter = 38; CapCatchLength = 2; -CapCatchOffset = 24; +CapCatchOffset = 15; -CapRimDiameter = 37; +CapRimDiameter = 46.5; CapRimThickness = 3; NotchDiameter = 2; NotchOffset = 3; -DriveLength = 8; -DriveDiameter1 = 14; -DriveDiameter2 = 12; +DriveLength = 7; +DriveDiameter1 = 11; +DriveDiameter2 = 9; module motorBarrel () { $fn = 200; @@ -36,7 +36,7 @@ module motorSeat () { cylinder(r = SeatDiameter / 2, h = SeatLength, center = true); } -module motor () { +module motorOriginal () { motorBarrel(); translate([0, 0, (BarrelLength / 2) + (SeatLength / 2)]) motorSeat(); //notch @@ -63,10 +63,10 @@ module capBellowsAdapter () { translate([0, 0, (CapLength / 2) + (CapRimThickness / 2)]) { difference () { cylinder(r = CapRimDiameter / 2, h = CapRimThickness, center = true); - cube([CapDiameter - CapThickness - 8, CapDiameter - CapThickness - 8, CapRimThickness + 1], center = true); + cube([CapDiameter - CapThickness - 12, CapDiameter - CapThickness - 12, CapRimThickness + 1], center = true); } } } -motor(); -//capBellowsAdapter(); +//motorOriginal(); +capBellowsAdapter(); -- 2.40.1 From 3419172535af7f8d918393f47b25707ac4148091 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 15 Oct 2022 00:13:05 -0400 Subject: [PATCH 42/89] Arri-S work --- scad/arri_s.scad | 113 +++++++++++++++++++++++++++++++++++++++++------ scad/common.scad | 26 +++++++++++ 2 files changed, 125 insertions(+), 14 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 5eba012..59eb51c 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -2,7 +2,7 @@ include <./common.scad>; -BarrelDiameter = 45.1; +BarrelDiameter = 45; BarrelLength = 52; SeatDiameter = 20; @@ -26,14 +26,25 @@ DriveLength = 7; DriveDiameter1 = 11; DriveDiameter2 = 9; +ShaftLength = 2.75; +ShaftDiameter = 5; + module motorBarrel () { $fn = 200; - cylinder(r = BarrelDiameter / 2, r2 = (BarrelDiameter - 1) / 2, h = BarrelLength, center = true); + cylinder(r = R(BarrelDiameter), h = BarrelLength, center = true); } module motorSeat () { $fn = 120; - cylinder(r = SeatDiameter / 2, h = SeatLength, center = true); + cylinder(r = R(SeatDiameter), h = SeatLength, center = true); +} + +module motorShaft () { + cylinder(r = R(ShaftDiameter), h = ShaftLength, center = true); +} + +module motorDrive () { + cylinder(r = R(DriveDiameter1), h = DriveLength, center = true); } module motorOriginal () { @@ -43,30 +54,104 @@ module motorOriginal () { $fn = 50; translate([BarrelDiameter / 2, 0, -(BarrelLength / 2) + NotchOffset]) { rotate([0, 90, 0]) { - cylinder(r = NotchDiameter / 2, h = 1, center = true); - translate([0, 0, NotchDiameter / 4]) sphere(r = NotchDiameter / 2); + cylinder(r = R(NotchDiameter), h = 1, center = true); + translate([0, 0, NotchDiameter / 4]) sphere(r = R(NotchDiameter)); } } + translate([0, 0, (BarrelLength / 2) + (SeatLength) + (ShaftLength / 2)]) motorShaft(); + translate([0, 0, (BarrelLength / 2) + (SeatLength) + (ShaftLength) + (DriveLength / 2)]) motorDrive(); } -module capBellowsAdapter () { +module bodyCap () { $fn = 200; difference () { - cylinder(r = CapDiameter / 2, h = CapLength, center = true); - cylinder(r = (CapDiameter - CapThickness) / 2, h = CapLength + 1, center = true); + cylinder(r = R(CapDiameter), h = CapLength, center = true); + cylinder(r = R(CapDiameter - CapThickness), h = CapLength + 1, center = true); //catch translate([0, 0, (CapLength / 2) - CapCatchOffset]) difference () { - cylinder(r = (CapDiameter + 1) / 2, h = CapCatchLength, center = true); - cylinder(r = CapCatchDiameter / 2, h = CapCatchLength + 1, center = true); + cylinder(r = R(CapDiameter + 1), h = CapCatchLength, center = true); + cylinder(r = R(CapCatchDiameter), h = CapCatchLength + 1, center = true); } } translate([0, 0, (CapLength / 2) + (CapRimThickness / 2)]) { difference () { - cylinder(r = CapRimDiameter / 2, h = CapRimThickness, center = true); - cube([CapDiameter - CapThickness - 12, CapDiameter - CapThickness - 12, CapRimThickness + 1], center = true); + cylinder(r = R(CapRimDiameter), h = CapRimThickness, center = true); } } } -//motorOriginal(); -capBellowsAdapter(); +module bodyCapBellowsAdapter () { + $fn = 200; + difference () { + bodyCap(); + translate([0, 0, (CapLength / 2) + (CapRimThickness / 2)]) { + cube([CapDiameter - CapThickness - 12, CapDiameter - CapThickness - 12, CapRimThickness + 1], center = true); + } + } +} + +module animationMotorBodyPositive () { + difference () { + motorBarrel(); + //hollow out + translate([0, 0, 4]) cylinder(r = R(BarrelDiameter) - 5, h = BarrelLength, center = true, $fn = 200); + //cut + translate([0, 0, 20]) cube([100, 100, BarrelLength], center = true); + cylinder(r = R(23), h = BarrelLength + 1, center = true, $fn = 100); + translate([0, (BarrelDiameter / 2) - 2, -10]) cube([8, 8, 16], center = true); + } + + //rim + translate([0, 0, -(BarrelLength / 2) - (3 / 2)]) { + difference () { + cylinder(r = R(BarrelDiameter) + 2, h = 3, center = true, $fn = 200); + cylinder(r = R(23), h = 3 + 1, center = true, $fn = 100); + } + } + //motor pad + translate([0, 0, -(BarrelLength / 2) - (3) - (4 / 2)]) { + difference () { + union () { + cube([42, 42, 4], center = true); + cylinder(r = R(BarrelDiameter) + 2, h = 4, center = true, $fn = 200); + } + cylinder(r = R(23), h = 4 + 1, center = true, $fn = 100); + for (i = [0 : 3]) { + rotate([0, 0, (i * 90) + 45]) translate([29.7, 0, 0]) cube([5.5, 5.5, 4 + 1], center = true); + } + } + } + + //notch + $fn = 50; + rotate([0, 0, 35]) { + translate([BarrelDiameter / 2, 0, -(BarrelLength / 2) + NotchOffset]) { + rotate([0, 90, 0]) { + cylinder(r = R(NotchDiameter), h = 1, center = true); + translate([0, 0, NotchDiameter / 4]) sphere(r = R(NotchDiameter)); + } + } + } +} + +module boltSlot () { + cylinder(r = R(6), h = 40, center = true, $fn = 40); + cylinder(r = R(3.25), h = 50, center = true, $fn = 40); +} + +module animationMotorBody () { + boltZOffset = -6; + difference () { + animationMotorBodyPositive(); + translate([31/2, 31/2, boltZOffset]) boltSlot(); + translate([31/2, -31/2, boltZOffset]) boltSlot(); + translate([-31/2, 31/2, boltZOffset]) boltSlot(); + translate([-31/2, -31/2, -6]) boltSlot(); + } +} + +//translate([0, 50, 0]) color("red") motorOriginal(); +//bodyCapBellowsAdapter(); +//animationMotorBody(); +//translate([0, 0, -49.5]) color("green") NEMA17(); +//bodyCap(); \ No newline at end of file diff --git a/scad/common.scad b/scad/common.scad index e603ba9..a32dd47 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -75,4 +75,30 @@ module optoswitch() { module hex (diag = 10, h = 1) { cylinder(r = diag / 2, h = h, center = true, $fn = 6); +} + +//NEMA17 Stepper +module NEMA17 ( H = 33 ) { //alt = 47.5 + difference () { + cube([42, 42, H], center = true); + for (i = [0 : 3]) { + rotate([0, 0, (i * 90) + 45]) translate([29.7, 0, 0]) cube([5.5, 5.5, H + 1], center = true); + } + translate([31/2, 31/2, (H/2)-1.9]) cylinder(r = R(3), h = 4, center = true, $fn=30); + translate([-31/2, 31/2, (H/2)-1.9]) cylinder(r = R(3), h = 4, center = true, $fn=30); + translate([31/2, -31/2, (H/2)-1.9]) cylinder(r = R(3), h = 4, center = true, $fn=30); + translate([-31/2, -31/2, (H/2)-1.9]) cylinder(r = R(3), h = 4, center = true, $fn=30); + } + //pad + translate([0, 0, (H/2) + (1.9/2)]) { + cylinder(r = R(22), h = 1.9, center = true, $fn = 100); + } + //shaft + translate([0, 0, (H/2) + (22.75/2)]) { + difference () { + cylinder(r = R(5), h = 22.75, center = true, $fn = 30); + translate([0, 4.5, 4.7]) cube([5, 5, 22.75], center = true); + } + + } } \ No newline at end of file -- 2.40.1 From 4281ca4390be5758844dd0b08c80474189f46476 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 16 Oct 2022 19:03:02 -0400 Subject: [PATCH 43/89] Work on Arri-S DC motor --- scad/arri_s.scad | 77 +++++++++++- scad/common.scad | 22 ++++ scad/daylight_spool_mount.scad | 33 +++++ scad/takeup.scad | 214 +++++++++++++++++++++++++++++++++ 4 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 scad/daylight_spool_mount.scad create mode 100755 scad/takeup.scad diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 59eb51c..70674a0 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -1,6 +1,7 @@ // Arri-S Animation Motor include <./common.scad>; +include <./takeup.scad>; BarrelDiameter = 45; BarrelLength = 52; @@ -29,6 +30,8 @@ DriveDiameter2 = 9; ShaftLength = 2.75; ShaftDiameter = 5; +PART = "none"; + module motorBarrel () { $fn = 200; cylinder(r = R(BarrelDiameter), h = BarrelLength, center = true); @@ -150,8 +153,80 @@ module animationMotorBody () { } } +module animationMotorDCBodyPositive () { + difference () { + motorBarrel(); + //hollow out + translate([0, 0, 4]) cylinder(r = R(BarrelDiameter) - 5, h = BarrelLength, center = true, $fn = 200); + //cut + translate([0, 0, 20]) cube([100, 100, BarrelLength], center = true); + cylinder(r = R(23), h = BarrelLength + 1, center = true, $fn = 100); + //window + translate([0, (BarrelDiameter / 2) - 2, -10]) cube([8, 8, 30], center = true); + } + + //rim + translate([0, 0, -(BarrelLength / 2) - (8 / 2)]) { + difference () { + cylinder(r = R(BarrelDiameter) + 2, h = 8, center = true, $fn = 200); + cylinder(r = R(23), h = 8 + 1, center = true, $fn = 100); + } + } + + //geared motor mount + translate([0, 0, -34 - 4]) { + intersection () { + rotate([0, 0, -90]) minimal_mount(); + union () { + cylinder(r = R(BarrelDiameter) + 2, h = 10, center = true, $fn = 200); + translate([0, -30, 0]) cube([33, 60, 10], center = true); + } + } + } + + + //notch + $fn = 50; + rotate([0, 0, 35]) { + translate([BarrelDiameter / 2, 0, -(BarrelLength / 2) + NotchOffset]) { + rotate([0, 90, 0]) { + cylinder(r = R(NotchDiameter), h = 1, center = true); + translate([0, 0, NotchDiameter / 4]) sphere(r = R(NotchDiameter)); + } + } + } + + +} + +module boltSlotDC () { + cylinder(r = R(6), h = 40, center = true, $fn = 40); +} + +module animationMotorDCBody () { + boltZOffset = -15.01; + difference () { + animationMotorDCBodyPositive(); + translate ([0, -8, 0]) { + translate([MOTOR_MOUNT_Y/2, MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); + translate([MOTOR_MOUNT_Y/2, -MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); + translate([-MOTOR_MOUNT_Y/2, MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); + translate([-MOTOR_MOUNT_Y/2, -MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); + } + //microswitch + translate([-22, -8.75-1.25, -34 + (4/2)-.5]) { + cube([16, 28, 9.5 + 4], center = true); + //microswitch lever + translate([10, 8, 2]) cube([16, 15, 5.5], center = true); + } + } + //color("red") translate([0, -8.75, -45-4]) rotate([180, 0, -90]) geared_motor(); + color("blue") translate([-22, -10, -30.5]) microswitch(); +} + //translate([0, 50, 0]) color("red") motorOriginal(); //bodyCapBellowsAdapter(); //animationMotorBody(); //translate([0, 0, -49.5]) color("green") NEMA17(); -//bodyCap(); \ No newline at end of file +//bodyCap(); +animationMotorDCBody(); \ No newline at end of file diff --git a/scad/common.scad b/scad/common.scad index a32dd47..c7a9d9b 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -101,4 +101,26 @@ module NEMA17 ( H = 33 ) { //alt = 47.5 } } +} + +//Geartisan Worm Gear Motor - JSX40-370 +module geared_motor () { + cube([46, 32, 21], center = true); + translate([(46 / 2) + (30 / 2), 0, 1.5]) rotate([0, 90, 0]) cylinder(r = 24 / 2, h = 30, center = true, $fn = 80); + translate([-(46 / 2) + 14.5, 0, -18.5]) rotate([0, 0, 90]) motor_shaft(); + //pad + translate([-(46 / 2) + 14.5, 0, -(1 / 2) - 10.5]) cylinder(r = 13 / 2, h = 1, center = true, $fn = 60); + //mount pads + translate([-0.5, 0, -(1.5 / 2) - 10.5]) motor_mounts(); +} + +module microswitch (position = [0, 0, 0], rotation = [0, 0, 0]) { + translate(position) { + rotate(rotation) { + cube([16, 28, 9.5], center = true); + translate([10, 8, 0]) rotate([0, 0, -7]) cube([1, 28, 4], center = true); + translate([8 + 7, 14 + 8, 0]) cylinder(r = 2.5, h = 4, center = true); + translate([0, -19, 0]) cube([6, 11, 9.5], center = true); + } + } } \ No newline at end of file diff --git a/scad/daylight_spool_mount.scad b/scad/daylight_spool_mount.scad new file mode 100644 index 0000000..db10c98 --- /dev/null +++ b/scad/daylight_spool_mount.scad @@ -0,0 +1,33 @@ +SQUARE_INNER = 7.8; +time = 0; + +module reel_holder (top = true, base = true) { + $fn = 60; + difference(){ + translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true); + for (i = [0:4]) { + rotate([0, 0, (i * 90)]){ + translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, 18.5 / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true); + } + } + } + difference () { + union() { + translate([0, 0, (18.5 / 2) + (3.5 / 2)]) cylinder(r = SQUARE_INNER / 2, h = 3.5, center = true); + translate([0, 0, (18.5 / 2) + (7.5 / 2)]) sphere(SQUARE_INNER / 2); + } + translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true); + } + if (base) { + difference () { + translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true); + //translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch + difference() { + translate([0, 0, -14.3]) cylinder(r = 8 / 2, h = 2, center = true); + translate([0, 6, -14.3]) cube([8, 8, 2], center = true); + } + } + } +} + +//rotate([0, 0, time]) reel_holder(); \ No newline at end of file diff --git a/scad/takeup.scad b/scad/takeup.scad new file mode 100755 index 0000000..e43670c --- /dev/null +++ b/scad/takeup.scad @@ -0,0 +1,214 @@ +include ; +include ; + +COUPLING_D = 37; + +WASHER_D = 35.7; //1 + 1/3 diameter? +WASHER_H = 2.4; + +MOTOR_SHAFT_D = 6; +MOTOR_SHAFT_H = 16; +MOTOR_SHAFT_HOBBLE = 1; + +MOTOR_MOUNT_X = 32.5; +MOTOR_MOUNT_Y = 17.5; + +module hex (diag = 10, h = 1) { + cylinder(r = diag / 2, h = h, center = true, $fn = 6); +} + +module motor_shaft () { + difference () { + cylinder(r = R(MOTOR_SHAFT_D), h = MOTOR_SHAFT_H, center = true, $fn = 60); + translate([MOTOR_SHAFT_D - MOTOR_SHAFT_HOBBLE, 0, 0]) cube([MOTOR_SHAFT_D, MOTOR_SHAFT_D, MOTOR_SHAFT_H + 1], center = true); + } +} + +module motor_mounts () { + Z = 1.5; + D = 7.5; + + translate([MOTOR_MOUNT_X / 2, MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); + translate([-MOTOR_MOUNT_X / 2, MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); + translate([MOTOR_MOUNT_X / 2, -MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); + translate([-MOTOR_MOUNT_X / 2, -MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); +} + +module motor_mount_pad (D, Z) { + difference () { + cylinder(r = R(D), h = Z, center = true, $fn = 40); + //bolt void + cylinder(r = R(2.5), h = Z + 1, center = true, $fn = 40); + } +} + +module magnetic_coupling (MAGNETS = 4, MAGNET_D = 8.1, MAGNET_H = 2.5) { + H = 3; + OFFSET = 12; + difference () { + union () { + cylinder(r = R(COUPLING_D), h = MAGNET_H + H, center = true, $fn = 100); + translate([0, 0, -6]) cylinder(r = R(12.5), h = 10, center = true, $fn = 60); + translate([0, 0, -5]) cylinder(r = R(20), h = 5, center = true, $fn = 60); + } + //motor shaft void + scale([1.1, 1.1, 2]) motor_shaft(); + //magnet voids + for (i = [0 : MAGNETS - 1]) { + rotate([0, 0, i * (360 / MAGNETS)]) { + translate([0, OFFSET, H - MAGNET_H + 1.01]) { + cylinder(r = R(MAGNET_D), h = MAGNET_H, center = true, $fn = 50); + } + } + } + //m3 nut + translate([6, 0, -9]) { + cube([2.75, 5.75, 10], center = true); + translate([0, 0, 5]) rotate([0, 90, 0]) { + cylinder(r = R(6.75), h = 2.75, center = true, $fn = 6); + translate([0, 0, 4]) cylinder(r = R(3.25), h = 20, center = true, $fn = 30); + translate([0, 0, 13.5]) cylinder(r = R(6), h = 20, center = true, $fn = 30); + } + } + } +} + +module slip_coupling (MAGNET_H = 2.5) { + H = 16; + difference () { + translate([0, 0, 2]) cylinder(r = R(45), h = H, center = true, $fn = 100); + translate([0, 0, 2 -(H / 2) + (MAGNET_H + 3) / 2]) cylinder(r = R(COUPLING_D + 0.7), h = MAGNET_H + 3.01, center = true, $fn = 160); + translate([0, 0, 2 -(H / 2) + (MAGNET_H + 3) + (WASHER_H / 2)]) cylinder(r = R(WASHER_D), h = WASHER_H, center = true, $fn = 160); + translate([0, 0, 2 + (H / 2) - (5 / 2)]) cube([25, 10, 5.01], center = true); + translate([0, 0, 2 + (H / 2) - (5 / 2)]) cube([10, 25, 5.01], center = true); + //corners with voids for M3 + translate([-8.75, -8.75, 2 + (H / 2) - (5 / 2)]) { + translate([0, 0, 1]) cube([(25 - 10) / 2, (25 - 10) / 2, 5.01], center = true); + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, -4.25]) hex(6, 2.75); + } + translate([8.75, 8.75, 2 + (H / 2) - (5 / 2)]) { + translate([0, 0, 1]) cube([(25 - 10) / 2, (25 - 10) / 2, 5.01], center = true); + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, -4.25]) hex(6, 2.75); + } + } +} + +module daylight_spool_insert () { + translate([0, 0, 14]) reel_holder(true, false); + union () { + cube([25 - .4, 10 - .4, 5], center = true); + cube([10 - .4, 25 - .4, 5], center = true); + translate([-8.75, -8.75, 0]) difference () { + translate([.2, .2, 1/2]) cube([(25 - 10) / 2, (25 - 10) / 2, 4], center = true); + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 2]) cylinder(r = R(5.75), h = 3.5, center = true, $fn = 40); + } + translate([8.75, 8.75, 0]) difference () { + translate([ -.2, -.2, 1/2]) cube([(25 - 10) / 2, (25 - 10) / 2, 4], center = true); + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 2]) cylinder(r = R(5.75), h = 3.5, center = true, $fn = 40); + } + } +} + +module motor_mount_void (D, Z) { + cylinder(r = R(D), h = Z, center = true, $fn = 40); + //bolt void + translate([0, 0, 5]) cylinder(r = R(3.25), h = Z + 10, center = true, $fn = 40); + translate([0, 0, 4.75]) cylinder(r = R(6), h = 3.5, center = true, $fn = 40); +} + +module mount_plate_void () { + cylinder(r = R(4.25), h = 20, center = true, $fn = 40); + translate([0, 0, 0.5]) cylinder(r = R(8), h = 3, center = true, $fn = 40); +} + +module mount_plate () { + Z = 1.5; + D = 7.5 + 1.5; + + X = 60; + Y = 60; + + MOUNT_X = 42; + MOUNT_Y = 42; + + CORNER = 3; + X_CORNER = (X / 2) - (CORNER / 2); + Y_CORNER = (Y / 2) - (CORNER / 2); + + //center + //color("red") cylinder(r = 15 / 2, h = 20, center = true, $fn = 60); + + difference () { + translate([0, 0, 3.26 - .5]) cube([X, Y, 7], center = true); + + //motor void (centered) + translate([7, 0, 0]) { + translate([-(46 / 2) + 15 + 1, 0, 0]) cylinder(r = R(15), h = 20, center = true, $fn = 60); + translate([(MOTOR_MOUNT_X / 2)+1, (MOTOR_MOUNT_Y / 2), 0]) motor_mount_void(D, Z); + translate([-(MOTOR_MOUNT_X / 2)+1, (MOTOR_MOUNT_Y / 2), 0]) motor_mount_void(D, Z); + translate([(MOTOR_MOUNT_X / 2)+1, -(MOTOR_MOUNT_Y / 2), 0]) motor_mount_void(D, Z); + translate([-(MOTOR_MOUNT_X / 2)+1, -(MOTOR_MOUNT_Y / 2), 0]) motor_mount_void(D, Z); + + translate([-8 + 12.5 + 1, 0, 0]) cube([7.5, 17, Z], center = true); + } + + translate([MOUNT_X / 2, MOUNT_Y / 2, 0]) mount_plate_void(); + translate([-MOUNT_X / 2, MOUNT_Y / 2, 0]) mount_plate_void(); + translate([MOUNT_X / 2, -MOUNT_Y / 2, 0]) mount_plate_void(); + translate([-MOUNT_X / 2,-MOUNT_Y / 2, 0]) mount_plate_void(); + + + translate([X_CORNER, Y_CORNER, 3.26 - .5]) cube([CORNER, CORNER, 8], center = true); + translate([-X_CORNER, Y_CORNER, 3.26 - .5]) cube([CORNER, CORNER, 8], center = true); + translate([X_CORNER, -Y_CORNER, 3.26 - .5]) cube([CORNER, CORNER, 8], center = true); + translate([-X_CORNER, -Y_CORNER, 3.26 - .5]) cube([CORNER, CORNER, 8], center = true); + } + translate([X_CORNER - (CORNER / 2), Y_CORNER - (CORNER / 2), 3.26 - .5]) cylinder(r = CORNER, h = 7, center = true, $fn = 40); + translate([-X_CORNER + (CORNER / 2), Y_CORNER - (CORNER / 2), 3.26 - .5]) cylinder(r = CORNER, h = 7, center = true, $fn = 40); + translate([X_CORNER - (CORNER / 2), -Y_CORNER + (CORNER / 2), 3.26 - .5]) cylinder(r = CORNER, h = 7, center = true, $fn = 40); + translate([-X_CORNER + (CORNER / 2), -Y_CORNER + (CORNER / 2), 3.26 - .5]) cylinder(r = CORNER, h = 7, center = true, $fn = 40); +} + +//centered, minimal geometry needed to add +//58x52 +module minimal_mount () { + difference () { + mount_plate(); + translate([50 + 29, 0, 0]) cube([100, 100, 100], center = true); + translate([-50 - 29, 0, 0]) cube([100, 100, 100], center = true); + translate([0, 50 + 26, 0]) cube([100, 100, 100], center = true); + translate([0, -50 - 26, 0]) cube([100, 100, 100], center = true); + } +} + +module debug_assembled () { + translate([(46 / 2) - 14.5, 0, 0]) rotate([180, 0, 0]) geared_motor(); + color("green") translate([0, 0, 11]) mount_plate(); + color("blue") translate([0, 0, 23]) rotate([0, 0, -90]) //magnetic_coupling(); + difference () { + translate([0, 0, 26.5]) slip_coupling(); + translate([-50, 0, 0]) cube([100, 100, 150], center = true); + } + color("red") translate([0, 0, 34]) daylight_spool_insert(); +} + +PART = "mount_plate"; + +if (PART == "slip_coupling") { + slip_coupling(); +} else if (PART == "magnetic_coupling") { + magnetic_coupling(); +} else if (PART == "mount_plate") { + //42x42 M4 mounting holes + mount_plate(); +} else if (PART == "daylight_spool_insert") { + daylight_spool_insert(); +} else if (PART == "minimal_mount") { + minimal_mount(); +} else if (PART == "debug") { + debug_assembled(); +} -- 2.40.1 From 81fc54af8df3dc9856dce67a2fe516fc7d25f770 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 19 Oct 2022 06:38:56 -0400 Subject: [PATCH 44/89] DC motor design has all components designed, need to print, test and adjust. --- scad/arri_s.scad | 143 ++++++++++++++++++++++++++++++++++++++++++++--- scad/takeup.scad | 2 +- 2 files changed, 137 insertions(+), 8 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 70674a0..ebb88f0 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -30,6 +30,13 @@ DriveDiameter2 = 9; ShaftLength = 2.75; ShaftDiameter = 5; +MicroswitchCompression = 8.7 - 6.9; //min + +BearingDiameter = 22.5; +BearingInnerDiameter = 11.5; + +capM3OffsetZ = 11.5; + PART = "none"; module motorBarrel () { @@ -159,10 +166,10 @@ module animationMotorDCBodyPositive () { //hollow out translate([0, 0, 4]) cylinder(r = R(BarrelDiameter) - 5, h = BarrelLength, center = true, $fn = 200); //cut - translate([0, 0, 20]) cube([100, 100, BarrelLength], center = true); + translate([0, 0, 40]) cube([100, 100, BarrelLength], center = true); cylinder(r = R(23), h = BarrelLength + 1, center = true, $fn = 100); //window - translate([0, (BarrelDiameter / 2) - 2, -10]) cube([8, 8, 30], center = true); + translate([0, (BarrelDiameter / 2) - 2, -10+5]) cube([8, 8, 40], center = true); } //rim @@ -216,17 +223,139 @@ module animationMotorDCBody () { //microswitch translate([-22, -8.75-1.25, -34 + (4/2)-.5]) { cube([16, 28, 9.5 + 4], center = true); + translate([0, 0, 30]) cube([16, 28, 60], center = true); //microswitch lever - translate([10, 8, 2]) cube([16, 15, 5.5], center = true); + translate([10, 8-3, 2]) cube([16, 15+6, 8], center = true); } + //cap m3s + rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + } + rotate([0, 0, 120]) translate([14.5, 0, capM3OffsetZ]) { + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + } + } + translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04]) difference() { + cube([16.1, 28.1, 2.4], center = true); + translate([-(16 / 2) + 3, (28 / 2) - 3, 0]) cylinder(r = R(3.5), h = 2.4 + 1, center = true, $fn = 40); + translate([(16 / 2) - 3, -(28 / 2) + 3, 0]) cylinder(r = R(3.5), h = 2.4 + 1, center = true, $fn = 40); } - //color("red") translate([0, -8.75, -45-4]) rotate([180, 0, -90]) geared_motor(); - color("blue") translate([-22, -10, -30.5]) microswitch(); } -//translate([0, 50, 0]) color("red") motorOriginal(); +module animationMotorDCCapPositive () { + difference() { + cylinder(r = R(BarrelDiameter), h = 10, center = true, $fn = 200); + translate([0, 0, -(10 /2) + (7.5/2) - 0.1]) cylinder(r = R(BearingDiameter), h = 7.5, center = true, $fn = 80); + cylinder(r = R(13), h = 10 + 1, center = true, $fn = 80); + } + translate([0, 0, -(10/2)-(5/2)]) difference() { + cylinder(r = R(BarrelDiameter) - 5.3, h = 5, center = true, $fn = 200); + cylinder(r = R(BarrelDiameter) - 7.5, h = 5 + 1, center = true, $fn = 200); + } + translate([0, 0, -(10/2)-(5/2)]) difference() { + union() { + rotate([0, 0, -60]) translate([13, 0, 0]) cube([6, 8, 5], center = true); + rotate([0, 0, 120]) translate([13, 0, 0]) cube([6, 8, 5], center = true); + } + cylinder(r = R(BearingDiameter)+1, h = 5 + 1, center = true, $fn = 200); + } + translate([0, 0, -(10/2)-(5/2)]) intersection() { + cylinder(r = R(BarrelDiameter), h = 5, center = true, $fn = 200); + translate([0, (BarrelDiameter / 2) - 2, 0]) cube([8-0.3, 8, 30], center = true); + } + translate([0, 0, -(10/2)-(5/2)]) intersection() { + cylinder(r = R(BarrelDiameter), h = 5, center = true, $fn = 200); + translate([-22, -8.75-1.25, 0]) cube([16-0.3, 28-0.3, 20], center = true); + } +} + +module animationMotorDCCap () { + difference() { + animationMotorDCCapPositive(); + rotate([0, 0, -60]) translate([14.5, 0, -(10/2)-(5/2)]) { + cube([2.5, 5.7, 6], center = true); + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 10, center = true, $fn = 40); + } + rotate([0, 0, 120]) translate([14.5, 0, -(10/2)-(5/2)]) { + cube([2.5, 5.7, 6], center = true); + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 10, center = true, $fn = 40); + } + } +} + +module driveCouplingDC () { + D = 15.5; + H = 45; + difference() { + union() { + cylinder(r = R(D), h = H, center = true, $fn = 80); + translate([0, 0, 2]) cylinder(r = R(BearingInnerDiameter), h = H, center = true, $fn = 80); + } + translate([0, 0, -(H/2)+5]) rotate([0, 0, 180]) motor_shaft(); + //bottom M3 + translate([-4.5, 0, -(H/2)+4.9]) cube([2.5, 5.7, 10], center = true); + translate([-10, 0, -(H/2) + 9 - 3]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + //top M3 + translate([-4.5, 0, (H/2)-4.9+2]) cube([2.5, 5.7, 10], center = true); + translate([-10, 0, (H/2)-9+5]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, (H/2)-3]) difference() { + cylinder(r = R(7.8), h = 10.2, center = true, $fn = 100); + translate([-7.8+2, 0, 0]) cube([7.8, 7.8, 10+1], center = true); + } + } +} + +module driveCouplingDCConnector () { + H = 17; + H2 = 20; + RIDGES=5; + translate([0, 0, 0]) difference() { + cylinder(r = R(7.8), h = H, center = true, $fn = 100); + translate([-7.8+2, 0, 0]) cube([7.8, 7.8, H+1], center = true); + translate([-2, 0, -5]) rotate([90, 30, 90]) m3_nut(); + } + translate([0, 0, (H/2)+(H2/2)]) cylinder(r = R(BearingInnerDiameter), h = H2, center = true, $fn = 80); + difference() { + union(){ + for (i = [0 : RIDGES-1]) { + rotate([0, 0, i*(360/RIDGES)]) translate([0, 0, (H/2)+H2-3]) rotate([90, 0, 0]) cylinder(r = R(13), h = 1, center = true, $fn = 80); + } + } + translate([0, 0, (H/2)+H2+(20/2)]) cube([20, 20, 20], center = true); + } +} +/* +translate([0, 20, 0]) color("red") motorOriginal(); //bodyCapBellowsAdapter(); //animationMotorBody(); //translate([0, 0, -49.5]) color("green") NEMA17(); //bodyCap(); -animationMotorDCBody(); \ No newline at end of file +color("red") translate([0, -8.75, -45-4]) rotate([180, 0, -90]) geared_motor(); + //color("blue") translate([-22, -10, -30.5]) microswitch(); +difference() { + animationMotorDCBody(); + translate([0, 50, 0]) cube([100, 100, 100], center = true); +} +translate([0, 0, 19.5]) difference() { + animationMotorDCCap(); + translate([0, 50, 0]) cube([100, 100, 100], center = true); +} +difference() { + translate([0, 0, -10]) color("blue") driveCouplingDC(); + translate([0, 50, 0]) cube([100, 100, 100], center = true); +} + +translate([0, 0, 13.5]) driveCouplingDCConnector(); +*/ +//translate([0, 0, 19.5]) animationMotorDCCap(); +PART = "animation_motor_DC"; + +if (PART == "drive_coupling_DC_connector") { + driveCouplingDCConnector(); +} else if (PART == "drive_coupling_DC") { + driveCouplingDC(); +} else if (PART == "animation_motor_DC_cap") { + animationMotorDCCap(); +} else if (PART == "animation_motor_DC") { + animationMotorDCBody(); +} \ No newline at end of file diff --git a/scad/takeup.scad b/scad/takeup.scad index e43670c..89d049d 100755 --- a/scad/takeup.scad +++ b/scad/takeup.scad @@ -26,7 +26,7 @@ module motor_shaft () { module motor_mounts () { Z = 1.5; - D = 7.5; + D = 7.5 + 0.3; translate([MOTOR_MOUNT_X / 2, MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); translate([-MOTOR_MOUNT_X / 2, MOTOR_MOUNT_Y / 2, 0]) motor_mount_pad(D, Z); -- 2.40.1 From 755ea757f7a89a13bb45779f50149106cbed8136 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 21 Oct 2022 15:24:21 -0400 Subject: [PATCH 45/89] Add set screw for bearing and counter sink bolt caps for other cap m3s --- scad/arri_s.scad | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index ebb88f0..de4cce5 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -229,10 +229,16 @@ module animationMotorDCBody () { } //cap m3s rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { - rotate([0, 90, 0]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } } rotate([0, 0, 120]) translate([14.5, 0, capM3OffsetZ]) { - rotate([0, 90, 0]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } } } translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04]) difference() { @@ -280,6 +286,14 @@ module animationMotorDCCap () { cube([2.5, 5.7, 6], center = true); rotate([0, 90, 0]) cylinder(r = R(3.25), h = 10, center = true, $fn = 40); } + //m3 set screw + rotate([0, 0, 180]) translate([14.5, 0, 0]) { + translate([2, 0, -6]) cube([2.5, 5.7, 20], center = true); + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } + } } } @@ -348,14 +362,14 @@ difference() { translate([0, 0, 13.5]) driveCouplingDCConnector(); */ //translate([0, 0, 19.5]) animationMotorDCCap(); -PART = "animation_motor_DC"; +PART2 = "animation_motor_DC"; -if (PART == "drive_coupling_DC_connector") { +if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); -} else if (PART == "drive_coupling_DC") { +} else if (PART2 == "drive_coupling_DC") { driveCouplingDC(); -} else if (PART == "animation_motor_DC_cap") { +} else if (PART2 == "animation_motor_DC_cap") { animationMotorDCCap(); -} else if (PART == "animation_motor_DC") { +} else if (PART2 == "animation_motor_DC") { animationMotorDCBody(); } \ No newline at end of file -- 2.40.1 From 69273d2a1c500dbabf70c0d7182626ea17b07bf1 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 21 Oct 2022 15:26:17 -0400 Subject: [PATCH 46/89] Increase scale of motor shaft void by 5% --- scad/arri_s.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index de4cce5..26c685d 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -305,7 +305,7 @@ module driveCouplingDC () { cylinder(r = R(D), h = H, center = true, $fn = 80); translate([0, 0, 2]) cylinder(r = R(BearingInnerDiameter), h = H, center = true, $fn = 80); } - translate([0, 0, -(H/2)+5]) rotate([0, 0, 180]) motor_shaft(); + translate([0, 0, -(H/2)+5]) rotate([0, 0, 180]) scale([1.05, 1.05, 1]) motor_shaft(); //bottom M3 translate([-4.5, 0, -(H/2)+4.9]) cube([2.5, 5.7, 10], center = true); translate([-10, 0, -(H/2) + 9 - 3]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); -- 2.40.1 From d9a8576701d4b4479154a9d57f201173e92f8517 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 21 Oct 2022 16:05:56 -0400 Subject: [PATCH 47/89] Adjust size of drive coupling for the DC connector --- scad/arri_s.scad | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 26c685d..52a9191 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -322,17 +322,21 @@ module driveCouplingDC () { module driveCouplingDCConnector () { H = 17; H2 = 20; + H3 = 4; + D1 = 9; RIDGES=5; + SHAFT_D = 7.8; translate([0, 0, 0]) difference() { - cylinder(r = R(7.8), h = H, center = true, $fn = 100); - translate([-7.8+2, 0, 0]) cube([7.8, 7.8, H+1], center = true); + cylinder(r = R(SHAFT_D), h = H, center = true, $fn = 100); + translate([-SHAFT_D+2, 0, 0]) cube([SHAFT_D, SHAFT_D, H+1], center = true); translate([-2, 0, -5]) rotate([90, 30, 90]) m3_nut(); } - translate([0, 0, (H/2)+(H2/2)]) cylinder(r = R(BearingInnerDiameter), h = H2, center = true, $fn = 80); + translate([0, 0, (H/2)+(H2/2)]) cylinder(r = R(D1), h = H2, center = true, $fn = 80); + translate([0, 0, (H/2)+(H3/2)]) cylinder(r1 = R(BearingInnerDiameter), r2 = R(D1), h = H3, center = true, $fn = 80); difference() { union(){ for (i = [0 : RIDGES-1]) { - rotate([0, 0, i*(360/RIDGES)]) translate([0, 0, (H/2)+H2-3]) rotate([90, 0, 0]) cylinder(r = R(13), h = 1, center = true, $fn = 80); + rotate([0, 0, i*(360/RIDGES)]) translate([0, 0, (H/2)+H2-3]) rotate([90, 0, 0]) cylinder(r = R(DriveDiameter1), h = 1, center = true, $fn = 80); } } translate([0, 0, (H/2)+H2+(20/2)]) cube([20, 20, 20], center = true); -- 2.40.1 From b20a6084e65dc4c390d664525278867e55407ab7 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 27 Oct 2022 18:10:13 -0400 Subject: [PATCH 48/89] Allow for more space for the microswitch --- scad/arri_s.scad | 48 +++++++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 52a9191..80edab3 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -161,6 +161,7 @@ module animationMotorBody () { } module animationMotorDCBodyPositive () { + rimH = 10; difference () { motorBarrel(); //hollow out @@ -169,19 +170,19 @@ module animationMotorDCBodyPositive () { translate([0, 0, 40]) cube([100, 100, BarrelLength], center = true); cylinder(r = R(23), h = BarrelLength + 1, center = true, $fn = 100); //window - translate([0, (BarrelDiameter / 2) - 2, -10+5]) cube([8, 8, 40], center = true); + translate([0, (BarrelDiameter / 2) - 2, -10+5+30]) cube([8, 8, 40], center = true); } //rim - translate([0, 0, -(BarrelLength / 2) - (8 / 2)]) { + translate([0, 0, -(BarrelLength / 2) - (rimH / 2)]) { difference () { - cylinder(r = R(BarrelDiameter) + 2, h = 8, center = true, $fn = 200); - cylinder(r = R(23), h = 8 + 1, center = true, $fn = 100); + cylinder(r = R(BarrelDiameter) + 2, h = rimH, center = true, $fn = 200); + cylinder(r = R(23), h = rimH + 1, center = true, $fn = 100); } } //geared motor mount - translate([0, 0, -34 - 4]) { + translate([0, 0, -34 - 4 - 3]) { intersection () { rotate([0, 0, -90]) minimal_mount(); union () { @@ -207,13 +208,18 @@ module animationMotorDCBodyPositive () { } module boltSlotDC () { - cylinder(r = R(6), h = 40, center = true, $fn = 40); + cylinder(r = R(6), h = 42, center = true, $fn = 40); } module animationMotorDCBody () { boltZOffset = -15.01; + padZ = 5.4; difference () { - animationMotorDCBodyPositive(); + union () { + animationMotorDCBodyPositive(); + translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04-1.5]) cube([16.1+1, 28.1+1, padZ], center = true); + } + cylinder(r = R(18), h = 160, center = true, $fn = 100); translate ([0, -8, 0]) { translate([MOTOR_MOUNT_Y/2, MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); translate([MOTOR_MOUNT_Y/2, -MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); @@ -222,11 +228,12 @@ module animationMotorDCBody () { } //microswitch translate([-22, -8.75-1.25, -34 + (4/2)-.5]) { - cube([16, 28, 9.5 + 4], center = true); - translate([0, 0, 30]) cube([16, 28, 60], center = true); - //microswitch lever - translate([10, 8-3, 2]) cube([16, 15+6, 8], center = true); - } + cube([16 + 1.1, 28 + 1.1, 8], center = true); + translate([0, 0, 30]) cube([16, 28, 60], center = true); + translate([6, 7, 28]) cube([26, 15, 60], center = true); + //microswitch lever + translate([10, 8-3, 2]) cube([16, 15+6, 8], center = true); + } //cap m3s rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { rotate([0, 90, 0]) { @@ -240,12 +247,19 @@ module animationMotorDCBody () { translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); } } + translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04-1.5]) { + translate([-(16 / 2) + 3, (28 / 2) - 3, 0]) { + cylinder(r = R(3.5), h = padZ + 1, center = true, $fn = 40); + translate([0, 0, -padZ/2 - 1]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); + } + translate([(16 / 2) - 3, -(28 / 2) + 3, 0]) { + cylinder(r = R(3.5), h = padZ + 1, center = true, $fn = 40); + translate([0, 0, -padZ/2 - 1]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); + } + } } - translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04]) difference() { - cube([16.1, 28.1, 2.4], center = true); - translate([-(16 / 2) + 3, (28 / 2) - 3, 0]) cylinder(r = R(3.5), h = 2.4 + 1, center = true, $fn = 40); - translate([(16 / 2) - 3, -(28 / 2) + 3, 0]) cylinder(r = R(3.5), h = 2.4 + 1, center = true, $fn = 40); - } + + } module animationMotorDCCapPositive () { -- 2.40.1 From 42b3aa767de21a3b73314a359b5d5498f4ba7ef1 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 28 Oct 2022 01:32:58 -0400 Subject: [PATCH 49/89] Allow for even more space for microswritch --- scad/arri_s.scad | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 80edab3..ebfc1f4 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -161,7 +161,7 @@ module animationMotorBody () { } module animationMotorDCBodyPositive () { - rimH = 10; + rimH = 10 + 3.5; difference () { motorBarrel(); //hollow out @@ -182,7 +182,7 @@ module animationMotorDCBodyPositive () { } //geared motor mount - translate([0, 0, -34 - 4 - 3]) { + translate([0, 0, -34 - 4 - 3 - 3.5]) { intersection () { rotate([0, 0, -90]) minimal_mount(); union () { @@ -208,7 +208,7 @@ module animationMotorDCBodyPositive () { } module boltSlotDC () { - cylinder(r = R(6), h = 42, center = true, $fn = 40); + cylinder(r = R(6), h = 52, center = true, $fn = 40); } module animationMotorDCBody () { @@ -227,12 +227,12 @@ module animationMotorDCBody () { translate([-MOTOR_MOUNT_Y/2, -MOTOR_MOUNT_X/2, boltZOffset]) boltSlotDC(); } //microswitch - translate([-22, -8.75-1.25, -34 + (4/2)-.5]) { + translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 2]) { cube([16 + 1.1, 28 + 1.1, 8], center = true); translate([0, 0, 30]) cube([16, 28, 60], center = true); translate([6, 7, 28]) cube([26, 15, 60], center = true); //microswitch lever - translate([10, 8-3, 2]) cube([16, 15+6, 8], center = true); + translate([10, 8-3, 2-1]) cube([16, 15+6, 8], center = true); } //cap m3s rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { @@ -247,14 +247,15 @@ module animationMotorDCBody () { translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); } } + //microswitch m3s translate([-22, -8.75-1.25, -34 + (4/2)-.5 - 5.04-1.5]) { translate([-(16 / 2) + 3, (28 / 2) - 3, 0]) { cylinder(r = R(3.5), h = padZ + 1, center = true, $fn = 40); - translate([0, 0, -padZ/2 - 1]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); + translate([0, 0, -5.9]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); } translate([(16 / 2) - 3, -(28 / 2) + 3, 0]) { cylinder(r = R(3.5), h = padZ + 1, center = true, $fn = 40); - translate([0, 0, -padZ/2 - 1]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); + translate([0, 0, -5.9]) cylinder(r = R(6), h = padZ + 1, center = true, $fn = 40); } } } @@ -313,7 +314,8 @@ module animationMotorDCCap () { module driveCouplingDC () { D = 15.5; - H = 45; + H = 49; + Divot = 2.75; difference() { union() { cylinder(r = R(D), h = H, center = true, $fn = 80); @@ -321,7 +323,7 @@ module driveCouplingDC () { } translate([0, 0, -(H/2)+5]) rotate([0, 0, 180]) scale([1.05, 1.05, 1]) motor_shaft(); //bottom M3 - translate([-4.5, 0, -(H/2)+4.9]) cube([2.5, 5.7, 10], center = true); + translate([-4.5, 0, -(H/2) + 4.9]) cube([2.5, 5.7, 12], center = true); translate([-10, 0, -(H/2) + 9 - 3]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); //top M3 translate([-4.5, 0, (H/2)-4.9+2]) cube([2.5, 5.7, 10], center = true); @@ -330,7 +332,11 @@ module driveCouplingDC () { cylinder(r = R(7.8), h = 10.2, center = true, $fn = 100); translate([-7.8+2, 0, 0]) cube([7.8, 7.8, 10+1], center = true); } + //divot for switch + translate([0, -D + Divot, 0]) cylinder(r = R(D), h = H + 1, center = true, $fn = 80); + translate([0, -D + (3 * (Divot / 4)), 0]) cube([D, D, H + 1], center = true); } + } module driveCouplingDCConnector () { @@ -376,10 +382,14 @@ difference() { translate([0, 0, -10]) color("blue") driveCouplingDC(); translate([0, 50, 0]) cube([100, 100, 100], center = true); } - +//color("red") translate([0, -8.75, -45-4-3-3.5]) rotate([180, 0, -90]) geared_motor(); translate([0, 0, 13.5]) driveCouplingDCConnector(); -*/ +translate([0, 0, -12]) color("blue") driveCouplingDC(); //translate([0, 0, 19.5]) animationMotorDCCap(); +animationMotorDCBody(); +*/ + + PART2 = "animation_motor_DC"; if (PART2 == "drive_coupling_DC_connector") { -- 2.40.1 From bb5b7c78977ec87f1e2ba5ee90532d0e278c093e Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 28 Oct 2022 07:44:19 -0400 Subject: [PATCH 50/89] Add divot to the drive coupling --- scad/arri_s.scad | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index ebfc1f4..8434a5a 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -333,10 +333,16 @@ module driveCouplingDC () { translate([-7.8+2, 0, 0]) cube([7.8, 7.8, 10+1], center = true); } //divot for switch - translate([0, -D + Divot, 0]) cylinder(r = R(D), h = H + 1, center = true, $fn = 80); + translate([0, -D + Divot, 0]) cylinder(r = R(D), h = H, center = true, $fn = 80); translate([0, -D + (3 * (Divot / 4)), 0]) cube([D, D, H + 1], center = true); + difference () { + translate([0, -D + 4, 0]) cube([D, D, H], center = true); + translate([0, -D + 4, 0]) cube([8, D+1, H + 1], center = true); + translate([4.25, -(D / 2) + 4.6, 0]) cylinder(r = R(D/3), h = H + 1, center = true, $fn = 60); + translate([-4.25, -(D / 2) + 4.6, 0]) cylinder(r = R(D/3), h = H + 1, center = true, $fn = 60); + } } - + } module driveCouplingDCConnector () { @@ -390,7 +396,7 @@ animationMotorDCBody(); */ -PART2 = "animation_motor_DC"; +PART2 = "drive_coupling_DC"; if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); -- 2.40.1 From 787e6ed06ee5f7b1b041a87b1fb081866cf08c9a Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 28 Oct 2022 07:50:30 -0400 Subject: [PATCH 51/89] Add a concept arri_s camera controller firmware. Using class-based approach as an experiment in Arduino code structure. --- .../mcopy_arri_s_firmware.ino | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino new file mode 100644 index 0000000..6b56dbb --- /dev/null +++ b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino @@ -0,0 +1,117 @@ +volatile boolean DEBUG = true; + +class ArriSMotor { + public: + int speed = 255; + int average = -1; + boolean direction = true; + boolean running = false; + boolean primed = false; + + void Begin () { + pinMode(pinPositive, OUTPUT); + pinMode(pinNegative, OUTPUT); + pinMode(pinMicroswitch, INPUT_PULLUP); + } + + void Start (boolean dir) { + startTime = millis(); + direction = dir; + + Run(direction, speed); + + running = true; + primed = false; + }; + + void Run (boolean dir, int speed) { + if (dir) { + analogWrite(pinPositive, speed); + analogWrite(pinNegative, 0); + } else { + analogWrite(pinPositive, 0); + analogWrite(pinNegative, speed); + } + } + + void CheckMicroswitch () { + int value = digitalRead(pinMicroswitch); + if (value == 1) { + if (running && !primed && millis() - startTime > primeTime) { + primed = true; + } + } + + if (value == 0) { + if (running && primed && millis() - startTime > minTime) { + Stop(); + } + } + }; + + private: + int pinPositive = 5; + int pinNegative = 6; + int pinMicroswitch = 7; + + int startTime = 0; + int primeTime = 100; + int minTime = 200; + + void Stop () { + int val = 1; + digitalWrite(pinPositive, LOW); + digitalWrite(pinNegative, LOW); + Run(!direction, 55); + delay(50); + digitalWrite(pinPositive, LOW); + digitalWrite(pinNegative, LOW); + running = false; + primed = false; + EvaluateTiming(); + } + + void EvaluateTiming () { + long ms = millis() - startTime; + + if (ms < 0) { + return; + } + + if (average == -1) { + average = ms; + } else { + average = round(( ms + average ) / 2); + } + + if (DEBUG) { + Serial.print("Frame: "); + Serial.print(ms); + Serial.println("ms"); + + Serial.print("Average: "); + Serial.print(average); + Serial.println("ms"); + } + } +}; + +ArriSMotor motor; + +void setup() { + Serial.begin(57600); + motor.Begin(); +} + +boolean d = false; +void loop() { + if (!motor.running) { + delay(3000); + motor.Start(d); + d = !d; + } + motor.CheckMicroswitch(); + if (!motor.primed) { + delay(1); + } +} \ No newline at end of file -- 2.40.1 From 98f2c7a24a9b2405d64c87b95e908c518f833272 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 28 Oct 2022 11:28:30 -0400 Subject: [PATCH 52/89] Pausing work on arri_s_DC firmware because hardware is less than ideal. Too much play in the motor position to trust right now. Steppers better approach. --- .../mcopy_arri_s_DC_firmware.ino} | 60 +++++++++++++------ 1 file changed, 42 insertions(+), 18 deletions(-) rename ino/{mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino => mcopy_arri_s_DC_firmware/mcopy_arri_s_DC_firmware.ino} (65%) diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_DC_firmware/mcopy_arri_s_DC_firmware.ino similarity index 65% rename from ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino rename to ino/mcopy_arri_s_DC_firmware/mcopy_arri_s_DC_firmware.ino index 6b56dbb..70bd097 100644 --- a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino +++ b/ino/mcopy_arri_s_DC_firmware/mcopy_arri_s_DC_firmware.ino @@ -16,8 +16,9 @@ class ArriSMotor { void Start (boolean dir) { startTime = millis(); + rotationTime = startTime; direction = dir; - + rotations = 0; Run(direction, speed); running = true; @@ -26,49 +27,67 @@ class ArriSMotor { void Run (boolean dir, int speed) { if (dir) { - analogWrite(pinPositive, speed); - analogWrite(pinNegative, 0); - } else { analogWrite(pinPositive, 0); analogWrite(pinNegative, speed); + } else { + analogWrite(pinPositive, speed); + analogWrite(pinNegative, 0); } } void CheckMicroswitch () { int value = digitalRead(pinMicroswitch); if (value == 1) { - if (running && !primed && millis() - startTime > primeTime) { + if (running && !primed && millis() - rotationTime > primeTime) { primed = true; } } if (value == 0) { - if (running && primed && millis() - startTime > minTime) { - Stop(); + if (running && primed && millis() - rotationTime > minTime) { + if (rotations < rotationsPer - 1) { + rotations++; + primed = false; + rotationTime = millis(); + } else { + Stop(); + } } } }; private: - int pinPositive = 5; - int pinNegative = 6; - int pinMicroswitch = 7; + const int pinPositive = 5; + const int pinNegative = 6; + const int pinMicroswitch = 7; - int startTime = 0; - int primeTime = 100; - int minTime = 200; + const int rotationsPer = 3; + volatile int rotations = 0; + + volatile long startTime = 0; + volatile long rotationTime = 0; + const int primeTime = 100; + const int minTime = 200; void Stop () { int val = 1; digitalWrite(pinPositive, LOW); digitalWrite(pinNegative, LOW); - Run(!direction, 55); - delay(50); + EvaluateTiming(); + Run(!direction, 40); + long c = millis(); + while (val == 1) { + delay(4); + val = digitalRead(pinMicroswitch); + } + Serial.print("Correction: "); + Serial.print(millis() - c); + Serial.println("ms"); digitalWrite(pinPositive, LOW); digitalWrite(pinNegative, LOW); running = false; primed = false; - EvaluateTiming(); + } void EvaluateTiming () { @@ -104,11 +123,16 @@ void setup() { } boolean d = false; +int count = 0; void loop() { if (!motor.running) { - delay(3000); + delay(5000); motor.Start(d); - d = !d; + count++; + if (count > 9) { + d = !d; + count = 0; + } } motor.CheckMicroswitch(); if (!motor.primed) { -- 2.40.1 From 1fcbec7466b3721a727ef7471f1fbd0cc402157a Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 28 Oct 2022 19:46:02 -0400 Subject: [PATCH 53/89] Work on stepper motor design and software. Motor still moves more slowly than it should but will investigate multiple factors leading to this result --- .../mcopy_arri_s_firmware.ino | 75 ++++++++++++++++ scad/arri_s.scad | 90 +++++++++++++++++-- 2 files changed, 158 insertions(+), 7 deletions(-) create mode 100644 ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino new file mode 100644 index 0000000..eaf5761 --- /dev/null +++ b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino @@ -0,0 +1,75 @@ + +#include +#include + +volatile boolean DEBUG = true; + +Adafruit_MotorShield AFMStop(0x60); +// Create the motor shield object with the default I2C address +Adafruit_MotorShield AFMS = Adafruit_MotorShield(); +//Set up for a 200step motor (NEMA 17) +Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 1); + +void forwardstep() { + myMotor->onestep(FORWARD, DOUBLE); +} + +void backwardstep() { + myMotor->onestep(BACKWARD, DOUBLE); +} + +//Set up AccelStepper +AccelStepper stepper(forwardstep, backwardstep); + +void setupMotor () { + TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz + + if (!AFMS.begin()) { // default frequency 1.6KHz + Serial.println("Could not find Motor Shield. Check wiring."); + while (1); + } + Serial.println("Motor Shield found."); + //myMotor->setSpeed(600); + //stepper.setMaxSpeed(600.0); + //stepper.setSpeed(600.0); + //stepper.setAcceleration(500.0); +} + +void setup() { + Serial.begin(57600); + setupMotor(); + + //stepper.setMaxSpeed(600.0); + //stepper.move(600); +} + +void loop() { + // put your main code here, to run repeatedly: + //Serial.println("Microstep steps"); + //myMotor->step(200, FORWARD, MICROSTEP); + + //myMotor->step(round(200 / 8), FORWARD, SINGLE); //109ms @ speed 600 + //myMotor->step(round(200 / 8), FORWARD, SINGLE); //172ms @ speed 100 + + //myMotor->step(round(200 / 8), FORWARD, MICROSTEP); //1557ms @ speed 600 + //myMotor->step(round(200 / 8), FORWARD, MICROSTEP); //1621ms @ speed 100 + + //myMotor->step(200, FORWARD, SINGLE); //873ms @ speed 600 + //myMotor->step(200, FORWARD, SINGLE); //1377ms @ speed 100 + + //myMotor->step(200, FORWARD, MICROSTEP); //12466ms @ speed 600 + //myMotor->step(200, FORWARD, MICROSTEP); //12967ms @ speed 100 + + //if (stepper.distanceToGo() != 0) { + long startTime = millis(); + //stepper.runToNewPosition(0); + //stepper.runToNewPosition(600); + myMotor->step(600, FORWARD, DOUBLE); + //myMotor->step(600, FORWARD, SINGLE); + stepper.run(); + long stopTime = millis(); + Serial.print(stopTime - startTime); + Serial.println("ms"); + delay(1000); + //} +} \ No newline at end of file diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 8434a5a..ae6b83d 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -100,15 +100,20 @@ module bodyCapBellowsAdapter () { } } +/** + ** Stepper Motor Design + **/ + module animationMotorBodyPositive () { difference () { motorBarrel(); //hollow out translate([0, 0, 4]) cylinder(r = R(BarrelDiameter) - 5, h = BarrelLength, center = true, $fn = 200); //cut - translate([0, 0, 20]) cube([100, 100, BarrelLength], center = true); + translate([0, 0, 40]) cube([100, 100, BarrelLength], center = true); cylinder(r = R(23), h = BarrelLength + 1, center = true, $fn = 100); - translate([0, (BarrelDiameter / 2) - 2, -10]) cube([8, 8, 16], center = true); + //window + translate([0, (BarrelDiameter / 2) - 2, -5]) cube([8, 20, 42], center = true); } //rim @@ -145,21 +150,85 @@ module animationMotorBodyPositive () { } module boltSlot () { - cylinder(r = R(6), h = 40, center = true, $fn = 40); - cylinder(r = R(3.25), h = 50, center = true, $fn = 40); + cylinder(r = R(6), h = 46.5, center = true, $fn = 40); + cylinder(r = R(3.25), h = 55, center = true, $fn = 40); } module animationMotorBody () { boltZOffset = -6; difference () { animationMotorBodyPositive(); + //m3 bolts (vertical) translate([31/2, 31/2, boltZOffset]) boltSlot(); translate([31/2, -31/2, boltZOffset]) boltSlot(); translate([-31/2, 31/2, boltZOffset]) boltSlot(); translate([-31/2, -31/2, -6]) boltSlot(); + // //cap m3s + rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } + } + rotate([0, 0, 120]) translate([14.5, 0, capM3OffsetZ]) { + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } + } } } +module animationMotorCapPositive () { + difference() { + cylinder(r = R(BarrelDiameter), h = 10, center = true, $fn = 200); + translate([0, 0, -(10 /2) + (7.5/2) - 0.1]) cylinder(r = R(BearingDiameter), h = 7.5, center = true, $fn = 80); + cylinder(r = R(13), h = 10 + 1, center = true, $fn = 80); + } + translate([0, 0, -(10/2)-(5/2)]) difference() { + cylinder(r = R(BarrelDiameter) - 5.3, h = 5, center = true, $fn = 200); + cylinder(r = R(BarrelDiameter) - 7.5, h = 5 + 1, center = true, $fn = 200); + } + translate([0, 0, -(10/2)-(5/2)]) difference() { + union() { + rotate([0, 0, -60]) translate([13, 0, 0]) cube([6, 8, 5], center = true); + rotate([0, 0, 120]) translate([13, 0, 0]) cube([6, 8, 5], center = true); + } + cylinder(r = R(BearingDiameter)+1, h = 5 + 1, center = true, $fn = 200); + } + translate([0, 0, -(10/2)-(5/2)]) intersection() { + cylinder(r = R(BarrelDiameter), h = 5, center = true, $fn = 200); + translate([0, (BarrelDiameter / 2) - 2, 0]) cube([8-0.3, 8, 30], center = true); + } + +} + +module animationMotorCap () { + difference() { + animationMotorCapPositive(); + rotate([0, 0, -60]) translate([14.5, 0, -(10/2)-(5/2)]) { + cube([2.5, 5.7, 6], center = true); + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 10, center = true, $fn = 40); + } + rotate([0, 0, 120]) translate([14.5, 0, -(10/2)-(5/2)]) { + cube([2.5, 5.7, 6], center = true); + rotate([0, 90, 0]) cylinder(r = R(3.25), h = 10, center = true, $fn = 40); + } + //m3 set screw + rotate([0, 0, 180]) translate([14.5, 0, 0]) { + translate([2, 0, -6]) cube([2.5, 5.7, 20], center = true); + rotate([0, 90, 0]) { + cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, 6.5]) cylinder(r = R(6), h = 3, center = true, $fn = 40); + } + } + } +} + +/** + ** DC Motor Design + **/ + module animationMotorDCBodyPositive () { rimH = 10 + 3.5; difference () { @@ -368,11 +437,14 @@ module driveCouplingDCConnector () { translate([0, 0, (H/2)+H2+(20/2)]) cube([20, 20, 20], center = true); } } + +//translate([0, 20, 0]) color("red") motorOriginal(); +//translate([0, -50, 0]) animationMotorDCBody(); +//translate([0, -50, 19.5]) animationMotorDCCap(); /* -translate([0, 20, 0]) color("red") motorOriginal(); //bodyCapBellowsAdapter(); //animationMotorBody(); -//translate([0, 0, -49.5]) color("green") NEMA17(); +// //bodyCap(); color("red") translate([0, -8.75, -45-4]) rotate([180, 0, -90]) geared_motor(); //color("blue") translate([-22, -10, -30.5]) microswitch(); @@ -394,9 +466,11 @@ translate([0, 0, -12]) color("blue") driveCouplingDC(); //translate([0, 0, 19.5]) animationMotorDCCap(); animationMotorDCBody(); */ +//translate([0, 0, -49.5]) color("green") NEMA17(); +//color("blue") translate([0, 0, 19.5]) animationMotorCap(); -PART2 = "drive_coupling_DC"; +PART2 = "animation_motor"; if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); @@ -406,4 +480,6 @@ if (PART2 == "drive_coupling_DC_connector") { animationMotorDCCap(); } else if (PART2 == "animation_motor_DC") { animationMotorDCBody(); +} else if (PART2 == "animation_motor") { + animationMotorBody(); } \ No newline at end of file -- 2.40.1 From fcb77232ec192033e523b06ba8da16feed8a1b24 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 30 Oct 2022 12:14:25 -0400 Subject: [PATCH 54/89] Create the driveCoupling module for the stepper motor design --- scad/arri_s.scad | 40 ++++++++++++++++++++++++++++++++++++---- scad/common.scad | 17 +++++++++-------- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index ae6b83d..03a5543 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -225,6 +225,30 @@ module animationMotorCap () { } } +module driveCoupling () { + D = 15.5; + H = 41; + Divot = 2.75; + difference() { + union() { + cylinder(r = R(D), h = H, center = true, $fn = 80); + translate([0, 0, 2]) cylinder(r = R(BearingInnerDiameter), h = H, center = true, $fn = 80); + } + translate([0, 0, -(H/2)+6.5]) rotate([0, 0, 90]) scale([1.05, 1.05, 1]) NEMA17_motor_shaft(); + //bottom M3 + translate([-4.5, 0, -(H/2) + 4.9]) cube([2.5, 5.7, 12], center = true); + translate([-10, 0, -(H/2) + 9 - 3]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + //top M3 + translate([-4.5, 0, (H/2)-4.9+2]) cube([2.5, 5.7, 10], center = true); + translate([-10, 0, (H/2)-9+5]) rotate([90, 0, 90]) cylinder(r = R(3.25), h = 20, center = true, $fn = 40); + translate([0, 0, (H/2)-3]) difference() { + cylinder(r = R(7.8), h = 10.2, center = true, $fn = 100); + translate([-7.8+2, 0, 0]) cube([7.8, 7.8, 10+1], center = true); + } + } + +} + /** ** DC Motor Design **/ @@ -465,21 +489,29 @@ translate([0, 0, 13.5]) driveCouplingDCConnector(); translate([0, 0, -12]) color("blue") driveCouplingDC(); //translate([0, 0, 19.5]) animationMotorDCCap(); animationMotorDCBody(); +//translate([0, 0, -49.5]) color("green") rotate([0, 0, 90]) NEMA17(); +translate([0, 0, -8])driveCoupling(); +color("blue") translate([0, 0, 19.5]) difference() { + animationMotorCap(); + translate([0, 50, 0]) cube([100, 100, 100], center = true); +} */ -//translate([0, 0, -49.5]) color("green") NEMA17(); -//color("blue") translate([0, 0, 19.5]) animationMotorCap(); -PART2 = "animation_motor"; +PART2 = "drive_coupling"; if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); } else if (PART2 == "drive_coupling_DC") { driveCouplingDC(); } else if (PART2 == "animation_motor_DC_cap") { - animationMotorDCCap(); + rotate([180, 0, 0]) animationMotorDCCap(); } else if (PART2 == "animation_motor_DC") { animationMotorDCBody(); } else if (PART2 == "animation_motor") { animationMotorBody(); +} else if (PART2 == "animation_motor_cap") { + rotate([180, 0, 0]) animationMotorCap(); +} else if (PART2 == "drive_coupling") { + driveCoupling(); } \ No newline at end of file diff --git a/scad/common.scad b/scad/common.scad index c7a9d9b..bc95042 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -77,6 +77,14 @@ module optoswitch() { cylinder(r = diag / 2, h = h, center = true, $fn = 6); } +module NEMA17_motor_shaft (L = 22.75) { + //shaft + difference () { + cylinder(r = R(5), h = L, center = true, $fn = 30); + translate([0, 4.5, 4.7]) cube([5, 5, L+1], center = true); + } +} + //NEMA17 Stepper module NEMA17 ( H = 33 ) { //alt = 47.5 difference () { @@ -93,14 +101,7 @@ module NEMA17 ( H = 33 ) { //alt = 47.5 translate([0, 0, (H/2) + (1.9/2)]) { cylinder(r = R(22), h = 1.9, center = true, $fn = 100); } - //shaft - translate([0, 0, (H/2) + (22.75/2)]) { - difference () { - cylinder(r = R(5), h = 22.75, center = true, $fn = 30); - translate([0, 4.5, 4.7]) cube([5, 5, 22.75], center = true); - } - - } + translate([0, 0, (H/2) + (L/2)]) NEMA17_motor_shaft(); } //Geartisan Worm Gear Motor - JSX40-370 -- 2.40.1 From ee1e9c9feb75288c84d8afcd9b9b44d9e6b7d868 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 4 Nov 2022 19:37:11 -0400 Subject: [PATCH 55/89] Stepper firmware is working. Needed extra tape around coupling connector to add friction to connection and now it keeps. --- .../mcopy_arri_s_firmware.ino | 146 +++++++++++------- scad/arri_s.scad | 2 +- 2 files changed, 94 insertions(+), 54 deletions(-) diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino index eaf5761..23cdd03 100644 --- a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino +++ b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino @@ -1,75 +1,115 @@ - -#include #include -volatile boolean DEBUG = true; +volatile boolean debug_state = true; +volatile boolean cam_dir = true; + +const int fullRotation = 600; +const int openRotationForward = 300; +const int openRotationBackward = 300; + +//CAMERA COMMANDS +const char cmd_camera = 'c'; +const char cmd_cam_forward = 'e'; +const char cmd_cam_backward = 'f'; + +const char cmd_debug = 'd'; +const char cmd_connect = 'i'; +volatile char cmd_char = 'z'; +const char cmd_mcopy_identifier = 'm'; +const char cmd_cam_identifier = 'k'; + +const int serialDelay = 5; -Adafruit_MotorShield AFMStop(0x60); -// Create the motor shield object with the default I2C address Adafruit_MotorShield AFMS = Adafruit_MotorShield(); //Set up for a 200step motor (NEMA 17) -Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 1); - -void forwardstep() { - myMotor->onestep(FORWARD, DOUBLE); -} - -void backwardstep() { - myMotor->onestep(BACKWARD, DOUBLE); -} - -//Set up AccelStepper -AccelStepper stepper(forwardstep, backwardstep); +Adafruit_StepperMotor *stepper = AFMS.getStepper(200, 1); void setupMotor () { - TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz - + //TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz if (!AFMS.begin()) { // default frequency 1.6KHz - Serial.println("Could not find Motor Shield. Check wiring."); + log("Could not find Motor Shield. Check wiring."); while (1); } - Serial.println("Motor Shield found."); - //myMotor->setSpeed(600); - //stepper.setMaxSpeed(600.0); - //stepper.setSpeed(600.0); - //stepper.setAcceleration(500.0); + + log("Motor Shield found."); + stepper->setSpeed(600); } void setup() { Serial.begin(57600); setupMotor(); - - //stepper.setMaxSpeed(600.0); - //stepper.move(600); } void loop() { - // put your main code here, to run repeatedly: - //Serial.println("Microstep steps"); - //myMotor->step(200, FORWARD, MICROSTEP); - - //myMotor->step(round(200 / 8), FORWARD, SINGLE); //109ms @ speed 600 - //myMotor->step(round(200 / 8), FORWARD, SINGLE); //172ms @ speed 100 + if (Serial.available()) { + // read the most recent byte + cmd_char = (char)Serial.read(); + } + if (cmd_char != 'z') { + cmd(cmd_char); + cmd_char = 'z'; + } +} - //myMotor->step(round(200 / 8), FORWARD, MICROSTEP); //1557ms @ speed 600 - //myMotor->step(round(200 / 8), FORWARD, MICROSTEP); //1621ms @ speed 100 +void cmd (char val) { + if (val == cmd_debug) { + debug(); + } else if (val == cmd_connect) { + connect(); + } else if (val == cmd_mcopy_identifier) { + identify(); + } else if (val == cmd_cam_forward) { + setDir(true); //explicit + } else if (val == cmd_cam_backward) { + setDir(false); + } else if (val == cmd_camera) { + cam(); + } +} - //myMotor->step(200, FORWARD, SINGLE); //873ms @ speed 600 - //myMotor->step(200, FORWARD, SINGLE); //1377ms @ speed 100 +void debug () { + debug_state = true; + Serial.println(cmd_debug); + log("debugging enabled"); +} - //myMotor->step(200, FORWARD, MICROSTEP); //12466ms @ speed 600 - //myMotor->step(200, FORWARD, MICROSTEP); //12967ms @ speed 100 - - //if (stepper.distanceToGo() != 0) { - long startTime = millis(); - //stepper.runToNewPosition(0); - //stepper.runToNewPosition(600); - myMotor->step(600, FORWARD, DOUBLE); - //myMotor->step(600, FORWARD, SINGLE); - stepper.run(); - long stopTime = millis(); - Serial.print(stopTime - startTime); - Serial.println("ms"); - delay(1000); - //} +void connect () { + Serial.println(cmd_connect); + log("connect()"); +} + +void identify () { + Serial.println(cmd_cam_identifier); + log("identify()"); +} + +void setDir (boolean dir) { + cam_dir = dir; + if (cam_dir) { + Serial.println(cmd_cam_forward); + log("setDir = true"); + } else { + Serial.println(cmd_cam_backward); + log("setDir -> false"); + } +} + +void cam () { + long startTime = millis(); + if (cam_dir) { + stepper->step(fullRotation, FORWARD, DOUBLE); + Serial.println(cmd_cam_forward); + log("cam -> forward"); + } else { + stepper->step(fullRotation, BACKWARD, DOUBLE); + Serial.println(cmd_cam_backward); + log("cam -> backward"); + } + log(String(millis() - startTime)); +} + +void log (String msg) { + if (debug_state) { + Serial.println(msg); + } } \ No newline at end of file diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 03a5543..8771d69 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -227,7 +227,7 @@ module animationMotorCap () { module driveCoupling () { D = 15.5; - H = 41; + H = 41-3; Divot = 2.75; difference() { union() { -- 2.40.1 From 3942cd05bee044be7be942092b4ec41b0202e2ba Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 11 Nov 2022 15:47:43 -0500 Subject: [PATCH 56/89] Declare stepsPerRevolution so change is explicit when that happens --- ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino index 23cdd03..4cc1a0b 100644 --- a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino +++ b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino @@ -2,8 +2,10 @@ volatile boolean debug_state = true; volatile boolean cam_dir = true; +volatile boolean running = true; -const int fullRotation = 600; +const int stepsPerRevolution = 200; +const int fullRotation = 3 * stepsPerRevolution; const int openRotationForward = 300; const int openRotationBackward = 300; @@ -22,7 +24,7 @@ const int serialDelay = 5; Adafruit_MotorShield AFMS = Adafruit_MotorShield(); //Set up for a 200step motor (NEMA 17) -Adafruit_StepperMotor *stepper = AFMS.getStepper(200, 1); +Adafruit_StepperMotor *stepper = AFMS.getStepper(200, 2); void setupMotor () { //TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz -- 2.40.1 From dec96ec9be9d21f0d52324d4aa6b517a7bfc2c90 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 11 Nov 2022 15:47:58 -0500 Subject: [PATCH 57/89] Use variable in stepper declaration --- ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino index 4cc1a0b..03a59eb 100644 --- a/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino +++ b/ino/mcopy_arri_s_firmware/mcopy_arri_s_firmware.ino @@ -24,7 +24,7 @@ const int serialDelay = 5; Adafruit_MotorShield AFMS = Adafruit_MotorShield(); //Set up for a 200step motor (NEMA 17) -Adafruit_StepperMotor *stepper = AFMS.getStepper(200, 2); +Adafruit_StepperMotor *stepper = AFMS.getStepper(stepsPerRevolution, 2); void setupMotor () { //TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz -- 2.40.1 From cbd70012282b9f57edfce0e3539664e41070b9d1 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 13 Nov 2022 17:35:18 -0500 Subject: [PATCH 58/89] Save work on the JK99 shield. --- hardware/mcopy_MONO_JK99_shield.fzz | Bin 0 -> 25231 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 hardware/mcopy_MONO_JK99_shield.fzz diff --git a/hardware/mcopy_MONO_JK99_shield.fzz b/hardware/mcopy_MONO_JK99_shield.fzz new file mode 100644 index 0000000000000000000000000000000000000000..276e4394d528dd1be78739bbdad2f802169b01f1 GIT binary patch literal 25231 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

T+ucd>4TsA;V=BSkAJ~i9sX^9Z+ZvUaK0Q4 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�@4HVn&o%gJJSrr~ge>SRbc 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 F{{flB6}JEY literal 0 HcmV?d00001 -- 2.40.1 From ef0d2469016dfb36083baf88b81c82148238c6d8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 2 Jan 2023 13:53:30 -0500 Subject: [PATCH 65/89] Increase the inner diameter of the bellows board to allow the threads to pass through cleanly and be held in place by the screw --- scad/bellows.scad | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scad/bellows.scad b/scad/bellows.scad index 62f6b20..5a33bfb 100644 --- a/scad/bellows.scad +++ b/scad/bellows.scad @@ -23,7 +23,7 @@ module bellows_camera_board () { difference () { cube([60, 60, H], center = true); //center - cylinder(r = 38 / 2, h = H + 1, center = true, $fn = 360); + cylinder(r = 39 / 2, h = H + 1, center = true, $fn = 360); //center bevels translate([0, 0, 2.25]) cylinder(r1 = 36 / 2, r2 = 40 / 2, h = 1.5, center = true, $fn = 360); translate([0, 0, -2.25]) cylinder(r1 = 40 / 2, r2 = 36 / 2, h = 1.5, center = true, $fn = 360); @@ -53,7 +53,7 @@ module camera_mount () { } } -PART = "camera_mount"; +PART = "bellows_camera_board"; if (PART == "bellows_camera_board") { bellows_camera_board(); -- 2.40.1 From 0829ec9081b1136059eecc4dd8b809595acd42e8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 2 Jan 2023 13:53:41 -0500 Subject: [PATCH 66/89] Use a variable --- scad/bellows.scad | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scad/bellows.scad b/scad/bellows.scad index 5a33bfb..fa2f00b 100644 --- a/scad/bellows.scad +++ b/scad/bellows.scad @@ -20,13 +20,14 @@ module cmount_male(len = 4) { module bellows_camera_board () { H = 6; + INNER_D = 39; difference () { cube([60, 60, H], center = true); //center - cylinder(r = 39 / 2, h = H + 1, center = true, $fn = 360); + cylinder(r = INNER_D / 2, h = H + 1, center = true, $fn = 360); //center bevels - translate([0, 0, 2.25]) cylinder(r1 = 36 / 2, r2 = 40 / 2, h = 1.5, center = true, $fn = 360); - translate([0, 0, -2.25]) cylinder(r1 = 40 / 2, r2 = 36 / 2, h = 1.5, center = true, $fn = 360); + translate([0, 0, 2.25]) cylinder(r1 = (INNER_D - 2) / 2, r2 = (INNER_D + 2) / 2, h = 1.5, center = true, $fn = 360); + translate([0, 0, -2.25]) cylinder(r1 = (INNER_D + 2) / 2, r2 = (INNER_D - 2) / 2, h = 1.5, center = true, $fn = 360); //corners for (i = [0 : 3]) { rotate([0, 0, i * (360 / 4) + 45 ]) translate([43.5, 0, 0]) cube([11, 11, H + 1], center = true); -- 2.40.1 From 95612c1d188dbfff0b17fb822cca080fb2e63ccc Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 2 Jan 2023 14:30:54 -0500 Subject: [PATCH 67/89] Add m3 nuts --- scad/jk_lens_assembly.scad | 60 ++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index d2c4a1b..151b7f3 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -4,6 +4,7 @@ include <./common.scad>; include <./bellows.scad>; + PART = ""; LinearBearingOuterDiameter = 15; @@ -28,19 +29,19 @@ XWidth = 50; FrontOffset = 0; BackOffset = 10; -module linearBearing () { +module linearBearing (pad = 0) { difference () { - cylinder(r = R(LinearBearingOuterDiameter), h = LinearBearingHeight, center = true, $fn = 100); + cylinder(r = R(LinearBearingOuterDiameter + pad), h = LinearBearingHeight, center = true, $fn = 100); cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + 1, center = true, $fn = 60); } } -module threadedRod (H = 40) { - color("green") cylinder(r = R(ThreadDiameter), h = H, center = true, $fn = 60); +module threadedRod (H = 40, pad = 0) { + color("green") cylinder(r = R(ThreadDiameter + pad), h = H, center = true, $fn = 60); } -module linearMotionRod (H = 40) { - color("blue") cylinder(r = R(LinearMotionDiameter), h = H, center = true, $fn = 60); +module linearMotionRod (H = 40, pad = 0) { + color("blue") cylinder(r = R(LinearMotionDiameter + pad), h = H, center = true, $fn = 60); } module TNut () { @@ -53,26 +54,44 @@ module TNut () { } } +module m3BoltNut (bolt = 20, nut = 3.5) { + cylinder(r = 3.1 / 2, h = bolt, center = true, $fn = 40); + + translate([0, 0, nut]) color("red") { + cylinder(r = 8 / 2, h = 2.5, center = true, $fn = 6); + translate([-4, 0, 0]) cube([8, 6.9, 2.5], center = true); + } +} + module lensAssemblyBellowsBoard () { - rotate([0, 0, 90]) bellows_camera_board(); //bottom difference () { - translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80); + union () { + rotate([0, 0, 90]) bellows_camera_board(); + translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80); + } rotate([-90, 0, 0]) { translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut(); + //m3 + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut(); translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(); + //m3 + translate([(XWidth/2) - 2.5 - 5, -FrontOffset - 8, -XOffset]) rotate([0, 90, 0]) rotate([0, 0, 90]) m3BoltNut(); } - rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength, 0.5); + translate([0, -XOffset, -10.5]) cube([100,30, 15], center = true); } //top difference () { - translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 24, center = true, $fn = 80); + translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(25), h = 24, center = true, $fn = 80); rotate([-90, 0, 0]) { - translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing(); + translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing(0.25); } - translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true); + //translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true); + translate([0, XOffset, -10.5]) cube([24 + 1,30, 15], center = true); rotate([-90, 0, 0]) translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); } + } module lensAssemblyThreadedZ () { @@ -148,17 +167,16 @@ module lensAssemblyLinearZ () { //x threaded rod translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) threadedRod(50); } - } -rotate([90, 0, 0]) lensAssemblyBellowsBoard(); +//rotate([90, 0, 0]) lensAssemblyBellowsBoard(); -translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); -translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); +//translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); +//translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); //Z axis //translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength); -translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); +//translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); //translate([40, 8, 0]) linearBearing(); //translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); @@ -169,7 +187,7 @@ translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); //X axis //translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); -translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); +//translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); //translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); //translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut(); @@ -177,3 +195,9 @@ translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLen //translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); + +PART = "lens_assembly_bellows_board"; + +if (PART == "lens_assembly_bellows_board") { + lensAssemblyBellowsBoard(); +} -- 2.40.1 From 9b34b4e026ef7da07036a61d9877fead490481b7 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 2 Jan 2023 14:33:16 -0500 Subject: [PATCH 68/89] Adjust the height of the mount (-14.5mm) and make bolt voids larger --- scad/arri_s_mount.scad | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scad/arri_s_mount.scad b/scad/arri_s_mount.scad index 14936f5..c5cd5aa 100644 --- a/scad/arri_s_mount.scad +++ b/scad/arri_s_mount.scad @@ -1,6 +1,6 @@ include <./common.scad>; -Z = 100; +Z = 100 - 14.5; baseX = 134.5; baseY = 105.4; @@ -47,8 +47,8 @@ module mount () { //center void translate([0, 0, -camBoltZ]) cube([mountBoltsX - 20, innerBaseY, Z], center =true); translate([0, 0, -camBoltZ]) cube([baseX + 1, innerBaseY - 40, Z], center =true); - bolts(boltD, Z + 1); - // + bolts(boltD + .4, Z + 1); + //inset translate([0, 0, (Z / 2) - (Z / 2) + 15]) bolts(20, Z); camera_bolt(); } -- 2.40.1 From 41504caac98001038b48324275754a46b94e8e8a Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 2 Jan 2023 17:11:44 -0500 Subject: [PATCH 69/89] Increase the bolt size on the bellows board --- scad/bellows.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scad/bellows.scad b/scad/bellows.scad index fa2f00b..d762885 100644 --- a/scad/bellows.scad +++ b/scad/bellows.scad @@ -33,7 +33,7 @@ module bellows_camera_board () { rotate([0, 0, i * (360 / 4) + 45 ]) translate([43.5, 0, 0]) cube([11, 11, H + 1], center = true); } //bolt - translate([0, 30, 0]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 30, center = true, $fn = 30); + translate([0, 30, 0]) rotate([90, 0, 0]) cylinder(r = (4 / 2), h = 30, center = true, $fn = 30); } } -- 2.40.1 From 164bde8cced88528754405836bb296d5acb0a7c3 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 3 Jan 2023 21:16:19 -0500 Subject: [PATCH 70/89] All arri s mount and jk lens assembly work. need to do some branch cleanup on this project and tackle capper issues for merge of this branch. --- scad/arri_s_mount.scad | 29 +++++++++++- scad/jk_lens_assembly.scad | 61 +++++++++++++++---------- stl/arri_s_camera_bellows_board.stl | Bin 280884 -> 332684 bytes stl/arri_s_mount.stl | Bin 106884 -> 110084 bytes stl/arri_s_mount_center_fitting.stl | Bin 0 -> 18884 bytes stl/camera_bellows_board.stl | Bin 0 -> 251284 bytes stl/jk_lens_assembly_bellows_board.stl | Bin 0 -> 413084 bytes 7 files changed, 65 insertions(+), 25 deletions(-) create mode 100644 stl/arri_s_mount_center_fitting.stl create mode 100644 stl/camera_bellows_board.stl create mode 100644 stl/jk_lens_assembly_bellows_board.stl diff --git a/scad/arri_s_mount.scad b/scad/arri_s_mount.scad index c5cd5aa..b5b1db5 100644 --- a/scad/arri_s_mount.scad +++ b/scad/arri_s_mount.scad @@ -41,18 +41,45 @@ module camera_bolt (width = 20) { cube([width, camBoltD, Z + 1], center = true); } +module wing_nuts (nutZ = 0) { + translate([mountBoltsX/2, mountBoltsY/2, nutZ]) rotate([0, 0, 5]) cube([3.5, 22, 11], center = true); + translate([-mountBoltsX/2, mountBoltsY/2, nutZ]) rotate([0, 0, 5]) cube([3.5, 22, 11], center = true); + translate([mountBoltsX/2, -mountBoltsY/2, nutZ]) rotate([0, 0, 5]) cube([3.5, 22, 11], center = true); + translate([-mountBoltsX/2, -mountBoltsY/2, nutZ]) rotate([0, 0, 5]) cube([3.5, 22, 11], center = true); +} + module mount () { difference () { rounded_cube([mountBoltsX + 20, baseY, Z], d = 20, center =true, $fn = 60); //center void translate([0, 0, -camBoltZ]) cube([mountBoltsX - 20, innerBaseY, Z], center =true); + //side void translate([0, 0, -camBoltZ]) cube([baseX + 1, innerBaseY - 40, Z], center =true); bolts(boltD + .4, Z + 1); //inset translate([0, 0, (Z / 2) - (Z / 2) + 15]) bolts(20, Z); camera_bolt(); + wing_nuts(-(Z / 2) + 20.5); + } +} + +module center_fitting () { + SMALL_D = 4.5; + SMALL_Z = 9; + LARGE_D = 9.4; + translate([10.7, 0, 0]) cylinder(r = R(SMALL_D), h = SMALL_Z, center = true, $fn = 40); + difference () { + //cube + translate([(SMALL_D/2) + (LARGE_D / 2), 0, -(SMALL_Z/2)-(camBoltZ/2)]) cube([camBoltD + SMALL_D, camBoltD - 0.3, camBoltZ], center = true); + cylinder(r = R(LARGE_D), h = 60, center = true, $fn = 60); + translate([10.7 - 1, 0, 0]) difference () { + translate([(camBoltD + 1) / 2, 0, 0]) cube([camBoltD + 1, camBoltD + 1, 60], center = true); + cylinder(r = R(camBoltD), h = 60, center = true, $fn = 60); + } } } //base(); -translate([0, 0, (baseZ/2) + (Z/2) + 5]) mount(); \ No newline at end of file +//translate([0, 0, (baseZ/2) + (Z/2) + 5]) mount(); +//translate([0, 0, (baseZ/2) + Z + 9]) +center_fitting(); \ No newline at end of file diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 151b7f3..471fe4e 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -72,26 +72,35 @@ module lensAssemblyBellowsBoard () { } rotate([-90, 0, 0]) { translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut(); - //m3 - translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut(); + //m3s + // -centered + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut(); + // -top no nut + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset + 8]) rotate([0, -90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + // -bottom no nut + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset - 8]) rotate([0, -90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(); - //m3 + //m3s + // -center translate([(XWidth/2) - 2.5 - 5, -FrontOffset - 8, -XOffset]) rotate([0, 90, 0]) rotate([0, 0, 90]) m3BoltNut(); + // -top no nut + translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset + 8]) rotate([0, 90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + // -bottom no nut + translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset - 8]) rotate([0, 90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); } rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength, 0.5); translate([0, -XOffset, -10.5]) cube([100,30, 15], center = true); } + //top difference () { translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(25), h = 24, center = true, $fn = 80); rotate([-90, 0, 0]) { translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing(0.25); } - //translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true); translate([0, XOffset, -10.5]) cube([24 + 1,30, 15], center = true); rotate([-90, 0, 0]) translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); } - } module lensAssemblyThreadedZ () { @@ -169,35 +178,39 @@ module lensAssemblyLinearZ () { } } -//rotate([90, 0, 0]) lensAssemblyBellowsBoard(); +module debug () { + rotate([90, 0, 0]) lensAssemblyBellowsBoard(); -//translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); -//translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); + translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); + translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); -//Z axis -//translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength); -//translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); + //Z axis + //translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength); + //translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); -//translate([40, 8, 0]) linearBearing(); -//translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); -//translate([-40, 8, -25]) TNut(); + //translate([40, 8, 0]) linearBearing(); + //translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); + //translate([-40, 8, -25]) TNut(); -//translate([ZOffset, 5, 15]) color("blue") m4_nut(); -//translate([ZOffset, 5, -15]) color("blue") m4_nut(); + //translate([ZOffset, 5, 15]) color("blue") m4_nut(); + //translate([ZOffset, 5, -15]) color("blue") m4_nut(); -//X axis -//translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); -//translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); + //X axis + //translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + //translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); -//translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); -//translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut(); -//translate([25, -8, -XOffset]) rotate([0, -90, 0]) TNut(); + //translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); + //translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut(); + //translate([25, -8, -XOffset]) rotate([0, -90, 0]) TNut(); -//translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); -//translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); + //translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); + //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); +} PART = "lens_assembly_bellows_board"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); +} else { + debug(); } diff --git a/stl/arri_s_camera_bellows_board.stl b/stl/arri_s_camera_bellows_board.stl index c65d66d83b8d2ef135e6936c94d80028fb349546..e9c656610a068dc47c3cd74827a2de3955886059 100644 GIT binary patch literal 332684 zcmbrH3Dh-3b*@{~XdK`~j1o=6Br2lffc)gD@SSRmQxpf#L{W@$5RHICqD195iv!?@ zXpBfi)M!A%Ps~NWQ;ib_t{UTjLzFBBOyYowCL-#6-(9=9-`#)r@ve2hwdCKPu4nJ+ zsk&;{u3Zm0_K8nB{GRO}-ty36p76w{Ua$H8{k!_Nn&wB>+Oeh{{JU(LE4rph`NIFY zpvC_vC;Zm>?}@)hVxpANxzJa_#_v4w@6MyGU+(j--DP{;DP8#CFG0WAqu%blulS7F zyUAm}%->P+o4@mq|M1`V_n#j1+3v6Z^P1_pCx0;zQPX!&a_i{dyBh&uG{O` z=Pcjx{!0T9HL>JwkNeq9l83H8*FEN6?!0{F9U>7meFG)G`RZTn*zMXo)))TQ=b)Q^ zk%*eU3F3|yT=zT@ezv?mozhOMi|wmG?DvX)-@#fbp{2Z5>vDeIMalbo@+&(@DxszP z%yYShKd_Qb!>g-=mh!8c%YEXV+w*YR_f6|K$mU z4SPy(q~+7cYXuu^ePUq4elIp~9!uTDDSfXXH=PDix8;0#-|XOAU$* zms7DMYJI6o&%FMwXI{<&HduqqnoJRWtyc9sjy>qUnZ$Y5`I}Jp>)z|p_WS>S z&09ycddztr*dlS^Pv1tu?Dcx>s-He0P^u%bYpD_4*Q&8U-a+abXxQGSreYg~R`opM zk%2h&?EP_vQ@+9FtgRC9$Ut0n)k}={>c_`KJTee(dff+%xZ7WkiFjln9&?MY8S#5h z7!&cxKwNh5wKLD-Z}uJ&@yI~j>K8XR;+#+N&f;%XuT?xU5C`3A|4bW?J#I|IBLfki z9vZ1Opr^m*_dV#DnR=hG$6MR^=SqpRc!?3;S^agZH1+eZJnc$c_1`CF+SvbFZ)ugb z;*-SjpMA3t4_>~dReGNI_B+lr;;>h}xm9|ecHwXM?gHokt)b&PoQ zZm(&To+pmH&kc-t^CwSkm7XWQb?@IW;`EbGYL%WRe)}FbG2-R-dUdPxJn`n=zqt`l zz2cRv((^>q+|r0Ao$`uS>3QP6K6NW2UVG~kTcziTt6#gX5jQyJWo@Jjv+EuF?0xTO z#1HTE(pKqt8^8I3{f&6+nJ;dYo+lpr%0DpT*^3voO3xFIzUe_m{PA%wXq67cO53Zm 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 IGPEuHF9|iD-T(jq literal 280884 zcmbrnd(?g3Rn~V}ltxNLxyTE{Vk#E}gND$Q%SgWG>_E{XpeYs8ItVGkD8ZCqiU<

T+ucd>4TsA;V=BSkAJ~i9sX^9Z+ZvUaK0Q4 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�@4HVn&o%gJJSrr~ge>SRbc zy3%muDM0i@bb_MI^Q=JWI4jEQYs9{kqbXIMB1c_mY|kerqbH6x%;!oi_&TC;G>03y z(r^%4LZrn(zl`xx{X~Re`W$X8Y7#pf;U0*6G#u&Qjk>B+%UD_DJG~;tYn*vD#5p~` zVc|X+j(nOU>Z*1V!?z@f+r`hM^cs=ArI2!TrLkP6$QL5k5BgP4jQv2qBSUjkdtZhl zDyR4G(gcTgcbww{hjw@4*&glaIF*saIH6H`jc_SPR~pN8Dsx$$o2XTIoWzXSn7R&! zAy|>^NI4pgyrZJc^Nvyr`ulxu+q-@`BJZ_mb4OR2QmNk(d%naJF`ug+4}Xc$!(S5D zJ0krhA(eA@NL3n+Tmb|}t^hVtg}`!0RL=1A1-dlBK^!M1eh2+DZ$}@(4%R@dV6daE zuMp>bDMwSPY(cS)*r*8(U$N*^b*q3rN9GuUyc84Rq9KqpHD3x9#Dkr?o_)7v^ znkZHJWFEoc>sptpG#rko9L>mM?W>V!q~S;(S=f;tuc#CC%6!tIKXuU&F6HP-Q>u)i zk2bH~KKzOIw1E)gnb?k~oPHOTChW-hJUDW8mfkpt$yk$H_EgNy!PgMyTmeK*NjVxj zw1a%iis_(VjnpHeEzotHQW@f`-DvCsv9_cf4F_{M;|Uyj;u?0;ysP_TKCewX9I-Do z&getac+z|3n4d+B9QVWMREF;;CPzLS4ua@}^x~)_Lu$l}CP%LHkJynb{fYL-)xFYV z)gRZ#-XIVz<>*RNyScuK`y*$T6CAlhQhKbM;(AB8l%p#RM@9lhU1{_=&12NV5-%ug zZ=3JEBYbDFkEYEvju6WkmS^vaI`J{8u2U*U>`RR~YN_4%Ij^vTlLhwAd4F(H8Ftil zICS>GlVO4Iok>ZJbI#Bdvl`EN1wykI&vu3093?`k(r~D!4@BjRb$g&o6Lp0@pYi0N zpL>Md_g2^8FvNLZYV6O`j`U0%MR88g#6(@C|3Yc?e2aP;z6=mVK;%;pF6C(KVBNEv z-DP}Iu;*!((zi?8QluM#r)xOdT1kyFuh2A}=7_qgnKQiE`QGB_yJOyM2;SVXBjsr9 z$jE`<(8w^JKB-gPTi!E~*J%$&>`UqHnxhEP4q^bb!wZh`2#?e0sD-)?haq?q0?}RMjJ*8=E{4@`y=;;W8JRna5$oNkS;amkIN*_x?CXr!m2xy3 zw7126q(5owYwzR!Xm9d#gs+`*&Jdz|riK^i@j*Y;V#e&o-YMT8Fg!Xc5q6~CClKl1 z(beG{3aQeB9l3+N9Q4Z_WRxU#kYPt%hru}^7Pl6*?UZEG?C97FV zSZO#MQ91oIv^2q?{W;HuN8e44(1c#*5oQGHr_yUgGw_+4%>aQctfz_aKaD!{Df0>WJ|Qz2!;8j*L$XMCJ6|Z)u`boDCA`ebBF- z1{@=2)Ky(yBXZnbNjaKQWgGw;?21^IM2+SNW}xdj9EMmT2Ub$S!6|8I8a{w%^R)0p z8~6&T(v&KF0D-8SQCER3O_VC{+Ni6%YlGcadX{wC=vFJRd{gZDm*xH z6&_M`ol@nxJrMg+>iHJEr&)h~X7qBy2=P+rQ<|7-peufT|=Drr5ugr*{_15 zX6JaSZRoA**kOosmFo7cq#O;$Pv|+B&&~KIO&a~w85lz zCQf`+hrU#4I2=(qw|9=N^mUGSduMXo+?OWWe4pdyzVtpgpXw?RF^Z-x=^0W=4|H7b zh}0WWj;=KAvCnZc6?)VHnyRj%R4!$DmzoxWx_Z6#|3CHZKNg63Gw&^5Sj{&b-%OQW zBP!=+a&)CB)jr3~eWBxvt_z(&e97OKpM5>+ zjq-f=F{IEh4N8k+Twfs$`%*W&H$KtytCxx6Q#Kr0my{IW&0M&}X$a#`jSeYC(@TCr z&%?by?~YP)ob_Jy7(=jD??308gJDNq#|}dr_N5$+9X~FPzqa8}gz4b8Vcc4{#c2rR za4AP)$Ga)+^+*4M`TdFY?${VV_`bI!##@1vrc{p5eK({WU1=Wqji{X4<(uAtE=`o`B#yV; zaOljV^xjt*%NQ)$X_Gy*SUw_u|yd`EaNAMf3gZkg7Bsj;NeI>zAhM z95+*;Z=FxIyU)>Q{odN&+pYJ zJ-){i>5kZ!ax`|ld6(n%uFyB}J#T#*0B-%~h)*wuu9yRv+0-5f<~`;n`ckfz zl^*N%xZV*i<>*So!5qlU);VsLb-VPAbvu0e&k@C;zBEdB6SMSOTI%X4@}9pez326n z+Z(I_jNAuf;{KccRnWF zRnjxQF0Zui+EEMG;fTt);hS3nU1{w2pLRKVjhZHLI-+uJ?@TXWQBFSW(7yI!`&!1^ z6J^&d!*@EAjy-OsDU~B!N~82ZR~pN;OTE~>Hl<=#TlBKW%`~NQMCIJDmmTOz(}J2g zFPhI||DpLczhg4&kj`O;(%9jMD`vO+`*uj27y)o=yAHr%MJL)=i7~-%mb#q_Wv4i~$`<%{k z%ePFEBi4xvw>S-994_T(>|igb{TdvH{90?+kza8QJL)=iIAUMwCcYM={aR@1h|+b- zx2gGl2~tyCr_)0VPU8SijM^p~F3SDWg z|B5)?VZ-s@dhbgUb>)c4p-vVKq?R<-KTIG2(dUhU12>Lh*Gdp&#yw13L_194_T(?D#&t$LpBy z@xrgbx&b@%WwsMv<-(4-jvbEJmvS_AIKp)C^|$1R@BSt?b~s{R>c-I6p?$$6ePnpN zVr`2Z+N<5O^2d(4jvbEJmvS_AXn%7_U!QTrt}!|EOyuCk4o4J+OF0@lxc_ul#dvjy z-xInzT1{#6^5Z&bM`X`fNjVx0#u1GUD~{3oBtiY~3vQ(yQ5-JiXzEHUnWL?JV!uy$ zwW?un0|)D%Ok;;5Do5=sFM&o+A@t?uk;V?K$d0y#OQ~45rQTT2Eqt=W5yheYT6!6O zQxkS@kL%8j=W+B6C+=z0+ZcD19^-CY?}!`|L(0*WhJ$-tckYT~jJxPv#$BbUD@PQ^ z&3);8xT`dEC7=G$&JALngB|$V@rPqarD<75RL<}-NMiUI0^JemflyAYKa(TYrJ2T# zeU9O02y|(}jvT2U9rVkQ`UFRLQpczr*E_iM4+)RZYvyV8aD@VAL>BVQw ztR@6){_gq?*0b|HEV&Yvo}2spF0RrKca^48j;Nf6WgQ*p(nRe#qH=Cs?^K%BrK+5< zZWqT`x5KCZ^8Sd}b6WvS+53(lD!oQj&bW(&7G?`ydEOs^D2{O# zg_M={K0Ff_`AaSb{p6X*@7IQBg0-R~ZelGrr>QIXG6sT`uV=>z-#t6Z7+1!1I1F*th_)l;XznQXwCq$n zN1X5_I!^u;Zq=0`jKifIO4*Mc8r99ZT4e`x>RyE9X5`q#I({d99>|UorygnSa75+wsE6Xf4$ieXtyX&+YIcs1I!>!|q|P)Pj?io{q#RvoI5?l@oW66! zjI-$F-pDj{<%r7Zvwm@8-+iR};{pdUGO|)N7`-pYuIRgYJ^SuJsPFDbIT}0E+XtdJ z;x0C$fU1{v#{Ly@` zDK*ZW(Yu^GD~%nFD2@^16;j2KeV4P;rSEcP8hX_$`NFQ+Dejd_uMsXqOD^b2Q!4d# z&V*MSaZfCIxmPlc<&LPFadIq)aiUCVRlDp9SnVJ5W52;_A1QVctniVl>ubcml%pvX z`x|yGog+rIak!MDsa>siFY;w9YtfivX=kl6!z)O8RCF)_5ydg$GNd=WI18U@TRX__$0KzZKfFS*YrL=$n_G=c zuG1cl(4KQg%F&ccJK^ugBQ+>yUGWv|nS(aq2M1|K6o*U2-g)7^KO8tG;`9eCoJDb} zfE}Dgae@;4YFx(-N9;>E8ap`e;uNcM$eTSl)MEw*rFF!S2vbS)Q|s7AUGNYd^iy9AA0K+Pd*Ms-vhRjH zRi^1B+IbB`<;31;pi2|&p_?;<;=C{AXe`fBbj6`)n!)j~jPv54RE97PmvS_1u6gzmCzsS!p4U)b zPAT)AALls9;fQ@HN5i4@!Xr*DJBO?t9OHxr?x`d8r5sIN$p>&WKf|(aW8WYD(KeNa z!x5De`~HEhwcT|Nt(FEy_%)J`_SomRX{*WNpssSY6ysH{WKPscu3nTLE2p^L5iaHE zN@GW^mR1~bQq5Wmy)8PvBZ_0J!h{&Bvp`40?@@8c!J&xX=`~OJ9dd{&o__rJB-Ov( zzBtmfhhl^WqH-c~d7w)Zb~vJP^ej>7C8{|2Xb(qJPDCyzM?@|!d}@#1*84cV?OUFR zHJnyt)3P?yC^4mvbn(fkf5YJjmvVHaY4hI^$G2}dVjN74;ad_1b>)cS=)0}rpss#c z&qn=+dPeG?AN4Qm#T=tSoc~kyx{e)=(1^1miN1-pNN(BTh~jW5 zM`K6s=);cO(T5$Zz?m_zqpo9zAt4tex4O?x<^a=Nvp2|GaG0qGp!r%b&)vZ^DBqgz`X*pa7} z(XZ;{=XN=FR4Hzzx=vj=B2On*QjUfrPc2s*H?a<3)j|6g2X*C$;&3TPN1M<7#3OZ; z-a(aBo{8CqsPw~KU56w6iGkRcax@(29b9qfTxD?FaQ1<35pMnGhAJluwALlXEjt{sFXd?L$S9<_cID4iy-+9N zYgJ7s-A^_;LTdwBE~HeO16^q>&nTo7M?b+RO_a(Jl{2E7#22Sz3!nbY*`%)So=SYR9k%l;%t|cNtQej7OW5+&+OO1F2N_c-b;Df^} ztmZhdwqn&nPR^FWQP<&c#J-fH;lKyCGC@5VTkj-l%ub6MD$;BMC@R4P*?jLF6C(IN^9L`Y6Tm1)Qoe3 zkMgMck;H?|iEub#U&_&NXs!E9tzcIiw|9jeF-4N5t{ky1`OTsJLHq$d4m@-EA&kSN9E~0Mq<8cy`9WiSfZp5{ zOJeNLm8Py7;ZlySG#vSi`-)@i&(XW=&y}XG98nzOnYfTD4(ckSaid>lJgu&3G?-&~ zm3~;_Y$M$f`%;dEBcpLw92(UI$IWEiQ%CGeIhwj+4rJCj=%+Zoi5ZM~FMmMyAasOF zIl9u->!FTD?Um8P!PH?teY4)(`d1*kq^=N0z|HfiUTX-egY${EjX z2f8%T6WRZ>tM42mPG1rcx3=)zcSLc7hb2pR!@4KaSe|>e=)1Y|lAf{WRC?^f;(ABq zo-CvsU1==O9psAR!K2&aTnfMJe1ABiIL6L2q>6*~$cU}zyLpnUt0NLj=@B6o*E_8JkE@926^n-a=u)`4NeJMv{N3Qx-9I>)U zjuBr1_tX%^;Zlyq4%IGkuSZ#ZR=pqdOi=px&F6J>9XkvWGFz$99x73`2XU_}4%qq4 z=Z?jZ?Xe(cp^cQIN$a_ci#>ln&P?TLjyZ(-sq`9AIsL@d&sgJW@{2uxzMRo6&tRQs zbJL_c)DtNKQ91qOxHukUhx9)Nh1r^MLLarLc`44D;i&5?#Cc!J(X@x^=`r=yIpRr_ zc_0g;Lw>$M7z+h%AfSW`Bz@Y4oB=uIT|~3;{KS`W#>?< zna`>?XmdyGOF0@lh!y3DSvZLNWR}DZkN>ah*x`tMDMw=m2%ebj9P#Fke7+$f-4<@~ zJEAyT%F)=NXC^N8Of}_~o;azFXX$Bkomyvlji?-P%u%y}t~9l)XC^N8Ye9BqeIkH)$WL(iu$SRa2SG}Fe}xSl%wI$`3mo{SaFO9Dxo7L zb+l|l7>7$an!3s-c!DFJ;GtB@eI6WjoqlDAv-h}?ax@(IB+`mw+^O(QhMpS2I9$rn z)D_SB@D$G>eynf#Mbv#pZ}iBKj_7eDg`U^IXrcvqZi!VH|F#^ST}h4}Inog><>*RN zyEeI)iOkTQW5g7}x5N}FjpdFgj)+{& z62@8jQd-q+M*IpN&z}<^qO$hgR_*R6l_M%=#C`-iV?UI}@{C+wag1k|BoU`Fake)1 zL`M|Ih+#qRR2*0?U&-S$y8Y!)~*Kr*?48cl&JT+cYj>e9RbXsv}6*kbZhD&bjFobcq zl%ugjXHmSbFMKlc6j4Vf>?p5F_vmzlOF6pISiaBEJvXLlRjSGfk5`s(yzNh=#d6L* zc<;bLKh8UtSFuB0ihJHQKzmf0+I2+b#2bMIx-?;jBP=J*J7$jXoh*E^!x6<1Zv;w? zn>aa{ON$-EAoJ{<%wXqr(r%HmM}#k)d91DLE5sq6`B_Ohnl>i}nJ4Kw$9Vb(zQr#Z z>4q>4mvS_&N32D%gyZQd@lm_X9U0GX=FC8&we-Y{oagc*noif@Fa!}0J5r9m&JiWb$8@PHij(@9nMNoWJj>%<~UXPkd!dW~=?M^~Cs@jL?_kj@e3 zb&Fok@iL9&j;NgecB$f^cJWX%M$ zeEr)CIi3xVboQ%Amplm9>wL*^+;TkQJHK?g`L-|H=*|AN!;z&5U0tu+SLHfi{?EVs zrPEV?@~1+V>&>z9Zj|agqs|d4##skB&e!iK=Xmtb6cP6EZy&l`Z^dg+>-9Td((>SN zz0Ozi)b1C&_urj<>HR+7j#9baiv38A^Nc%(FM1wJZtk70?&fu=e(`x!X9i z^|GSn++x(#OrcU`?S>t$*ZER7{&&8-^o6(6TfN(7g)Y~tvzL6%b8Uy~b-tSI)^>dB zfBD7Ji$35>gTwV|Jf7y6VU5TZJYk{hb-pkl|C}#h{l{KD{e$;>WpKFOx;NK$xL)VW z)(q~>@eTK1G`-uKzAHFfZ{6o>JF=IAF4yaPo#P!(UpRfjOMf^xT(6C;bKgDBxbwyJ zI$!pf)3%pnzlt1}a`dcy;qYN^#A6GiMFlWwZSs`60ua6RrE_v?3kNN5^ znEu^g`^h^HUO!qVMg-{Aavu$RlyJVz;rF)R^N#Kazf=7Vc63Ml-2d_U)64&8th{*x z|0p{vL1Ia_cKDs@cd+wy4!`gGespw4{E=V&-03xM^Kb58_mbq(13RVi`_Au2=j$AP z7x~@g=#Kc5pZc8X%m3@Q40bPx$Aol*-$j0RIbTP7_P2l5^wD4S2ZO`)_V|**oG;${ zyjMD3$*%PuJcfEeR-kh&< zyzQsGaC(b>^WMSXdgU*f(wCvU`kgOcKVEOnSMs#^KmOV0Pp|xIPY({)E58P%qKoHI9zW&+qqM_UJ@^%^L38z`S52?`Y&|3UY_s}=MIOL z#7pRWokKQEk_=t0m*-AY;vEhziI>p%I)~a~QVBwr>%|9)mvwuedr7>6&eu8A3n$fN z=yJVyYVksDIlLrZLg(uouGje--4VL~CiS6U_mbp!^iHW<%F)i(IW&$;x)(y1>($9< zL?~=6cPU3ZU+2(xIOz@z4%e%hAmSUg94_T(=j$Ar3FI~X^x$y4It`yR!tT_SOF7#4 zI)`SoNh4*$WClj@s$N4Tcz2<@j%T8RaRqdTI`$#3o*;oR2|+83U*q6`j4cSN34 zhLj_m`#M7V+mlwt8+1qH*=9&N!nv;_v`;^2y}m(rM4q38lp~z`Izs-2llC1ObVtVm`39br$`+&jX#uOsBgI%%&N z9FFb?&OWq%4k<@C_jQE)aYyZdH|UPQccoo@NI9Z$8{~X(g#3y}?c_IT185Y@nC6gj zgloEvkbm?j|H1~{5%a%@47#~@gmYg<%sKNo=;-SRytYfJ9NiIO$J4o#YK53fdmVw- zcB$Ph-;9g)zzez5&pbp&49rMEk}BmC(BM>zL& z1YX2b_HZdjcMg|wG(N^coS>@qrs#R%WKl%qR`OF0_<-?Cfk92TK`?^2HL94_T({C~@? zuXEsKBwn7naw$i54wrH?-n?b^+BqzG_}--)-8o#!(RlNgU3llfXGrW4cDR(IJBLd- z8gJg>P3Ro>3>PnlOF6o8xRj&u<}H4d&VkQx@z%JMqdSL7IU3*G;t%Q^^2sc3n7(%@ zM|TdFax}iV#jn*lh{RpIXD;RF&f!vy#y7Y4=Q@XcWcU0>o4b^wJBLd-8XMq8Q|G`2 z^pWFIj_w>T=1gQjTV=1gQjTWsVBFtw;Ll?mC8-8o#!(aeF&Ut12IlVLt0$E6(IIb6!o z%;n6(TMp)O=2dcB%F&&}r5w$gg!ROhgEa~319Du-(VfGk9L?H_bn}>rQf9%F&&}r5w%roptq=gEc$r zXL4N1(VfGk9L+w2{lS)ly$AaMa$L&Mox`OZ&3=k~&Xyyeca9vFa&+f#DMzy}WWToM zU@yqNj2xG8ba3RK^MxHMyG0P}Y1wO%c1wKx9pDxRj$ihf6tHGtQ*hZihp&8gVj_<5G_994_VP zjMv!V(Ckc{OyszfqdSL7Ia(`#@vhN8mvXdL`b53#aA-F{3`^v=l%qR`OF3FQ7M``-;n1##h?K~2DMxn> zmvXdrUOY>>!=c?B5h;=5QjYE%F6C(LAoHE%>v>SSR3cJ>!=)VEIb6!o*Z}`_yut?b zk>gU1?i?=VXxf5$+;Y$s)C)N-<>=1gQjVri(I2)P^eNhx9G7x*=Wr=Ub8pbEw;bFX z^iy(N%F&&}r5w#Y&i%RN;2!6GBgds2-8o#!(HRr6!@*d^xB-VtIl6PWl%pAQ885eX zFy=D;k>gU1?i?=VXzg5yNZH|F?qD2;!=)VEIb6!o+PRK*9tI-+oG;9Q%tvszl%qR` zOF5dkoOyU#SIp(itK_(pqdSL7Ihr*I>xnG~YZBH6C2f;|-bnJCG4@;=V-2KRMD z#(Qkg9l>6ZeHk2%aPI4fjQ7}}JAz#)`%5?+;oR2|8Sk+{cSOc`gp?zk`#K`yJvQi$ z$Ow^;a)fhVM`XOm2Hg=EArexKaPI4fjQ7~04Wje&Ii@6}9O2vs;Kbb!8Sk+{cSOc` zgp?y(Q%B7In#UzaxTfofIfo|#$G5N}-4Pk%VL3CxxvwKK-s1{-#zkGlb8%Ucd}n*a z%*4}(T<;ti6%u+g-XqdmzJ()WJT?f|)HxiH@g5s=M`VmgNIAkaT}NcR#|GUI8RHRB zj&Sblh>Z8xq78Ds;CEX_A4fR10o2veA;Ba(DWQ<2hIl{TGBk=Q%nRAY92~8b=FM64s9pT*95%{Z@6@a5V0-yS_ z%5a2pUq|3~Usf`X?g-8XmerCYoVz19Ggww$j@J5$Xpx<|aw$hUU+2)OkNA?%<$ASF zBwA#Lqe&Us`8tPIukmCXBbn>fdY7}K9S)ajXyfY~T7?r|61rTk*6o~u?Qpo1qn)pF zaHfW54Le+~_8*+(?Qpo1qn)pFa5lK?uw1Y9QJhKcaJZDCov(9fcSn3l=yJW<4-zf1 z!{JhncD~M$F&?4I^=eOF7#4I)`@K#FvCF*Q@m2eL5ML6y zT(A5LoZ0Vi$d^I1NaVPbydOjo>>ymP^LYt-spOMcz8SPci-cZzafpc6;qa1p37xNV z$hSna$VRWcQABp^aJYqDLg(uo8L<(%T(4{(_G5>`E%XvPU+0hw;Z5VNb-ii}>TZX_ zOX4MTzRn?ETX@spaJ}jw#D45>cuBm3&eu8Ar^1^ChwD{OC-!59L;W^~53ub&ia`2wkpM;~|k8I~;DU*MjqP4vmN5 z8^aFQt8tx3jvWrS)@#A}I)}#f@QuOYdNn^WpX_jGwh2!c2$#~VNnFMb!t2ND%}dxz zrCD=)$H4V!_Gh*}!QByFKVEOn*AeoAg{KQ$u2-uV;xcwPv?d9^6$qEo3W_L;9fa4Y z*R+?gmr84^@LR#*dbJXaCzH08dmDJ$IA7<`x-k4!=yJVU(Gq2`V~19&;e`U>Qt}=V zGqHp4R`b^M682JQ)g4|aI9#vx3&c$9aAe#<)5FD;o zyRmp`Xv>i?6M=9ko;$$HvPI}U6ZiOg$Z@H78bZ$iZ4uu4yjQwS2m5J1IDh9pbh%!h z>cD5R<={yUyf@^y6wjLA0ofvWz64(kIWEN$FnB<=2=C$E^W7#hL;G5ulfkosuCABo za`@%QaE^Znk!^5Cj>ofPO~>_Fc0pu&M2<^2x+DB9^1I7z3dDKF#XE%J*%C_SeAza4 z!;TpsJN&-$`_cJQIQ}=wF#Iqk)eS z&KHRDjElEfad!rX^X0v=V~39hK1w)WFIC=yq099;Uq|@(;p2+)1>!v8;+`?tI@3T{R@lo@mBun~6*Bntf@%Gk%E={2M{tjO`LR;lf-l10|S<+m0MCJIq z^x`eF3!l(@+rZwxOFWFO#yfY3zfn5g#hYn39Krs7kz${|pes#X@ofWp|87d%#JT^B zj(71cnx>8@j(F$pKo7$a8awp;og-h>ksXJOv((l2`VeuQO5gINW2Wg>j;Nel zo>g4lZO0dmG7X2mBXs0@LZUE^`1;VIm$=tVQ&*0toEyGylzQU}M+=|oO5boh+Be)X zMlinHHe&hk7;=73+jK~O@s)QB$<8awpW=_6k{?i_lDe!Xue;=9g)Hy5eF6C(K*yo6^4ktR^9i1H5;fUgJ zDMw?6zQ1$PS6sNy54G>pS6j-15O0PdhGrgv9pO@rt~906cZ7C0`WJ3YlPq^c<;2(J zhtHun=q33TrD%^lwUC~OPRJ*K^~IR+r0xpAmjrgC98G)VSCm#9`cmjX-w;c^JPj<% z4PhKE~RwpLFUga~0R8e;eYEeRn10=<6KgE)rVb)EgYs z)jo$yIhwl4FU8Jw%-^h)-uPM;@0^%RIIh!646%Iib|vL#?8q5u-1|uFabOP2-S(t)^h7iVHdPus98o#9caE+!b~vJP9$fG8HDd8$ha-w( zyi+!$N)vYIo5+tq9n`NVHz@9pnqMF8>N*^TIP6O~`Z~w$U7>HH&XQaF`y4LiXzJ?S zpY$jbU(%L->S~|Er5sIN)8X(jzj=Bc zUtYkDjNTvzPfNa;B)%J-?*pM!hTuz>J5r9OuAV0jzP!*mZtn^`zQ~uQGK6usl%uhn zcb@Al!Z_G+mszRt8r@eE5|r*^GW#xcIs zqmnopJJb`8d4HU9eI-2}xjfcax=wo-f;%dspk2z*w1**#k+k3}Q$5dd7DF;(AB8l%p$+;C{&yAm7uZuXo&N^l;S!En)Z+lk11K_h_4zYM|=}0 zIVhDOjKifIjpf`M>WxuXs-E`@x`&@%;5-^a?eer;mEIytvJS)#n3yI zChE!&l{3C8BgFWsS)k*~i$_-C2mLbkT=fxO#f$Yi9Ce*GXO+JoSk1Gp?oy7XR3KQ1 zca9NtFLZoaFyHEk<&G#0mvS^MnBUF}jy!RrR77;-)9XTy^cqn)YPIxdlK;RyIUD=&^EquyyA$yyGX@5_8FN*-{ninAdKV2q#TVM`bOMEtIMMhhlpE@j2w%~cl%ub6#OftEDMw?6BTUzQp&#z*I(9f>Uurz_1-Jgg2BE@^jHb}lKB}oF@)TEG z?}*9?uQMeJsnQg8?JmdoF0v4P)V{{izgSlsSf1Y#4m-+nt&qn1q92y;{sv!1>`OVC zy2|efuQ;?q8XWPB_0h5&u`lIl+MF?$QSP80V<2N8^+U`Wqa3YPX)Jd{<-}M!(4`4G z9APTp zz47hTrL?jm&v70f^ve?yU47uYubh}DJx*xidPlgFqbp6nqED%(tT^I(vdJ+{XyBVV zqBzEBPe>I<))n7_jQyZ2&;41{?mg!o=&e|sHKKC*uCX*_3+{0AFVLDMm6DV2rBs#E zca6nC3+jyXqEp4FD|t-uhw5s4KZ>(XrQ_R>nWlCfQE?;>_;&}o($_iS8<30MsWeen z`y4k@=?#DK!lxF@@7Kosk$zlS?Otb`e9Knp;opsPN9;>E8q4$hwJVO><-54>E&km| zcSLcxl%ug+Cnk^d^~D%>b(WIPyT&QWNgkI8j=D}SF$5l#9Vth{p|he#`tIb4!=Gf; z3UF}Kf`%{-mvS_9rMdQE^LgxmXb;Vz#BWO?=Jrgl5iX_qb)YLvsrETy4qx;#w`Us5 z9Z@-PqLdtCAEgpfyNa^7SX@T}_uh)9vtl7_<(mD9hZn-MVTNpL92;$m?b$w8eg zda-s%bKMb@)4vE@9H4cof3Y}#@StG__r@Ft5HSIn#tuigRQmTM5itR&2|IMEf3Y}# zCCA=*6)^z|pX_i%am3mGKo=i&`OTsJJJIg^GD7sx;i|YN)L}`TXHW1K-MJ-z}T*E=H5AVbR0 zmB#Y?g8hnPoTW-)oTZ}az9Wib_!&Z~IIvtNSe!dw4*KOOvh)n^kkWBt#`$oh8{(Y) ztCf_aDb+s5@N!8aPRx=6%MD>1F6C(2{L7#F+{bGOO$_N_tF883);~tFb9g+87 zNIAOF)D;|W-f)bu1ii~xqV!U#1yLL~ak9WunMf4}mMe1LvEmt`J@Q@)Dc0|-lHsW9 zD+JMoJ5mvAkk={IK1W17q|_Ko#E0dEFb$m0dIPh=&^9mawTI&ihi1#*Tds z&B%je_?F2;|pXY2=6s<9uWw6dJGP<@3R^$f;XmxNTV3%U-2rC}F3T&GlqIOCVzN;#U^C0?63 zq;rJFJkbx!xqxeuq#RvoEYGoh#c{(E z_!%|XBPctgsBbZmMW1O67>k(U>^it*<@KNYfsUupE4$_pAu0 z(MqpNRXLggN^i{mtU%`Wz_&}(7IxT41NtX4AXV3?D@W{0#kwTXl*$pMD^?bZRCsDx zNzJ2=BZ?#LRNjCnDMwSgj8z&PjxvKtr|~W|_ruh6>@dV(Un=I0@y4``wiZOa4WjF4r zBZ|YN9E~09Jy`A29_%+*?bB-22IILRU8lDj;;=8}=<6K*W<0G$2RCiL&*4&zrmiv~ zCG5zE6v`Xpp+-EVAMWZp9EMmTYgST@UN{t4v*OU%|Ihz%R7$a zn!3WDpJzp!{Nx*GE8V;RcJ6p%ripG%Q7ewvXQtlRe`cD#>xkkQPf;Pk z>28*my2|tO;KO3Uq0rRQnuZd7}G{wIhmSoU&ubeR0r& z^g{Lc3++)6DX|tIe(WBb=)-fGQaPe>dZbHf!g9rs?Qq0eWYNnSCDWA35tY*;c8Y^G zR~*ifs4eWsdo9XdaT4S1(sk@`#J<$6MOk2n;)#yLt96d?rd#P9V@aetqBva2(b$px ztKdjak*>y@Bk>f4-nvd*8G^|E9Vth{k>02k$1U;yiN0Clhd!Y=W(t)mEe~C;*ZER7{&&7;mpbLi=;V4| z@tW_NKJNMPU68rP&ol0PalOu$wQ$@4r60dV1dPk1rgp?%M1n8@wU(XUNt@A%@GZ; z>Q`P~=gS@w+?^x+)WP9;|F?hi52vTT?(Od3?uhJ(q099;Uq{%Ub8@|pKI|V%4}Uej z&b6|`^*Uen%HZxCwtt;m?|XgkE2kIy?4R7RBYS)3a=p&iIdqmXv5uooT<`n;&NogU z{htsCn00lYap#Ncb-wKR!QDCJTbOv8AG%!c%{x6Y{r{A`3)F7kRo3?!4Mm9v!q5+j z1}WtxG9pM(%>TUK8&mj33P>7KASGM`s!>cJjWjTjybuBiDTXA5+re^aKq^Gka50ke zemk_*W?0CeDk3ccRco=4SZQPN(mubr=U(%fd+*m{&lvynUuUiP%xB&9T64~|_I}^> z`A-x_!p@g`qC%JJb-oZj&ye%Qr5v5lN@$v87liLJxei|D)?QoNeb4Z{q@#;vtR?r+ za@!dkUGnT7zMlI!@B2ze`0DJdwxc`3*IHkL9o-RTk)3?hzUtk+{q(cX`S_g?^tIO4 zVCU-`zH<7C>gbLzd+_8ndFJ2#meX@?p1o5mUpak6b-vEw>!7cXj_wFw)qJ&cbVtZO zA9umM?jQW6uRFc-d!M({4qw%LwR67Ck-kjma=lOf=dV6J|L}P`9KNdgYUg~N!`CQZ zyBysS>3Ida*W@jq{HISJ`qV$ZQ!8JieC=|+&fzPLuSAaS2u0C|rUbj!!!)Lh9eCO*NK9_usIl3csL+CW$ zRk}HOO}_aRFF)zOom%-^@;T;wouf{$ZqPaOs?~7raQMvd8RLAN!$-|W)6pGKCvLj8 zWHr%vpEN!@wenH((R9Af;c+yuXA`5(DmvWKdB#gID8CzY@Dxi zc>j36Il3b%hJ3?nGisvM?W7sBQ!DQu?>Fb`9QG~%tLD(Fo#3P=VTZ%}$NSCsI!Af* zH|#J&ul7K8pdAixt@ncSb&iT<+_1L}y|R?pdv`dzwcZQP*EziI-X=$PL`F7)-D@Hn z5u0wOR$g~+lk;^B*@$sVfc4e&%GSj;-Qn<>cnzJebI8_>`$}-QUfJx}*gG6v6R)B3 zb&h-&AauE2`5yQRI~-mUuc7mGj{4G!?%bJP`A{cW2Rj^I6R)B3bq?3-e2(sjjNJ#j z*F@gqt?Z(mTDg>?ov(A`Nkiyzz4C%@Wv%USxRj%vuXE(-Qs{EM^5$=4L+)_6l%t)m zbL7qC(B*m+mAI8Hyu;yAj&{Dzp{T^IY}?S~dKF!{m4&{;;ZlxvzRuyg6luAYy&ifU z-4Ti(-O2|EDMz@b>j>^-$cxyZJ3?`=TX{wy zbwqxrW`phs#U*bQkqRkCIQMl#z8kzjcZA}rNBOoPtEeH|UN~)b}WlJER=p z+}9C&#Z_MR2Hg?!zupv5j&Sblh`D6mUmblN;a?+hbVm^HURu6I%(cCasP}nqB0j$K zLProGUq;Xo&V3zWZy85?T+xZ>!;TG%yIKsKFBmBg~(H%jAd|BZf;oR2|b=tGO(O8)Cg$VhwhC9N!L;gIY^c%VJ zt@{`QM-#hVc8Ovj8bySB*^6At(VfGk98K(6F_WEnMTC6WQ(el@ox`OZt$onG#8xdi zUx<(|wt-7Ix^uXcqlsNB%CgfABIJvW<5G_994_T(*(LTxAa4f|^2NGyDMxn>mvXf1 zE8dITX$KMV#Y%N4M|TdFa&+Dt*x?{TzF6BX<>=1gQjR8e&HDh`m<$o}#cOaWM|TdF zax}4P?#FF8h>$Pdk4rhabGVeFIc--YXNQ9b`QrDvl%qR`OF3FzQG8`(+YVy5i~s6U zj_w>T=1gQjV7IoHtL` zu|A@uOC-gm9Njrw%F)Ca=No%#4q~56M98Ha-8o#!(Zm?JOSl~mBAH8M%cUIMIb6!o zL=1ViaLYj?bBXD>l%qR`OF3GxrF>s;-B-jVm)N9BIl6PWl%r__{M&ZW2J}(lQjYE% zF6C&(f_~g`Fc$O+B`)RY&f!vyW==65wj9hU#+MS8a&+f#DMu@kIx(-e96TG$Q%YRQ z(VfGk9G&->b~t#(dEVe~DMxn>mvVI8joRU0tzzAP!=)VEIb6!oinmX!m)pK#&1L>aH8TMqUP)^SQ)%F&&}r5w#3$o{qEU=L(JqQs>f-8o#!(d^~y!&?sa za`sh9T*}d%!=)Upvm(CgvBQB)f_(soOF6o8xRj%@t+0!>?ZCFe&Y{Gm9Njrw%F#NB z<0}k19N381YjC)fqdSL7IT~9RJ9XO*Y+dY5N?gj(ox`OZo$r6_aA31zKf~ctj_w>T zmvXe8TJHPov?EWX zqr{~g-8o#!(OP}ttYX^^t#I7l2@aQXbmwp>M{5<0GnXxgR%&kV1cysGx^uXcqqQ4w z-)E<TmP4KozD<<4l%qR`OF3Fz3^x^aIOO@@+eC>=Il6PWl%wUva8qH2BhTWa#HAeF zIb6!o@?yBDu)~pO@loPZj_w>T=1gQjW$Z!JgQ1 z$n(Lsi4vD`bmwp>N6U+eyU$w=Y%A;>N?gj(ox`OZjg5$Xx8;!MlkX_XPBbY;cMg|w zG`22w>Xt*E&+=YsSj3BzqdSM|ax^wO_V$(|Pw%6|r5xQkT*}dS6?hk04tx*%07_iS z(VfGk9G&+Ab~xlKan~S9T*}d%!=)UZ_W*V{^0q*fxRj%VBmassFK#3RBG3Le=#I$S z0vm*LUq|HG{|4O=d0QZ)9O2y85qb8%L3c#n76>UvIQMl#p8apo9g(*MLdp@&eI1c! z{~L5iP-XBtqaPE$n|26MLj&M!a5p&6#HhdkCw*^AV5p#NP zA9O^X{a-=PI?k88EwI!i-bQ1Ua812dj>xnB4Z0)pyg#HI;hL@^^6Y`{cq46k>~v(xnB4Z0)pwm?WZ!nv;_^6YA^aWYC=idg$%adr;Z>wI3rj*uy|P}p2e8v}uZh>t`8o%u48+N3hwGIU z&OLw~4zG#V(D^zCrzOP6;BdY2CgRQbZSQ(byoS!#IppJTb09ceFK1Ciq_!Mh6R)B3 zbq-Fih?Akq_2$|A4hLsyi#O_0c@n>a@Va}OyoSA2oDD8swd>`?a`D?c!t3sBa=wn> zjB|+&xL!_Pm-s_Rcx$~EoUbDkncyBk^oi?LEQ3@1oxbwcdM`L%=TL-&djO%!^(rRA zss0WJC*j1f7;~4(bM+mB_mB6R*Ras5_7qu=51{_%cuzRsaGaH=1=T(5dI zzTUHaKD>Xt-<+>=sAoCV4-VI>8NwO;PCGQ-oY6;#OKIM6;=Y6MG4QeR8unUg-f~7C zx?FFblJ9W%82H#YU+2*C#~FR-a=m#hBhqLY5?epPt$>*5Yu-8iV0;l1@;d*7o%@;T;wokLa(r{TfjdS#7qw!PC1*;brwM~O@2>GBRj79S_oQQ}gvTse2%LHG>! zneS~n*q?Fk9J*X@o>cE}aCes|3nS%HyrV%pV>^QWO!%|nH9Xj#_#VJSECyY!mv=OX zXKXpR8BHvP5|`qQ3!)QS1oyRxlThMP+$bm3utji-oTvvSE~WSACn5)11b5qsVNl{y z+=eF(utjj=o`?h`F2x;v;s9HOuLizKcuybfPkbF_BEEpGu9r6z__KaKa?I~3$uW<# z-&z27ILF_*Ip9)`&e6Qza`+nMYnQia*1m9XQysqyU9Q*pI>Of|U%Q+y5a$_pzPMiJ z%Q<$xZHKRFzS=q8tbO6gxf{A%uk&?;uWG*9IbR^oGwytGz0Q|2|9;yJU)6lIbG}*o z!jVr@=yJWz*Ac!B`uga6fjG~&_=eE@U_<0VCS2)FC4l0+@s6&I$uZlTAQ=)7PRvP z;ymNx>q)GAQD5iFwQHvxzB>D=?R>NLg(KI*(B*oauOoat_jTU+0&!kAT(9%x`nb~$ z-vNAQaK2tE-q<37N{_l;=j#aHGkh;`zCfI3TzvD4eIhuVuYTWTy|()<9q9o-}`=x=(?g8f+K7A7!KF_r+(L~Pygs+e%}s9*Hs)@!^d#A-hcSn-+20U z|MT;AIJ&Ol$Qs^mTka#}dcXEXuR8sP5B!Q9j;^aXvWAc0aJ_H%^gn%i@$Y-h4oBBj z99hH1aJb%Yd+Ilw{@jPYeuty$Dvqq-V>n#zcTTT7ec(HOc!#6wDvqq-V>n#zZ@vBc z(;xZTzrMrKbrna}@G%^&_p`q3Po19hPkv^Hqw6Y;tl?ugT<`z-KYh*V8{Tj4K6Tes z99hH1aJb&z@=LEcz415geM_(FDvqq-V>n#zOMdRp9geQ6II@P1;c&gL`|rQ}^wb~tEjt`tS8-$wV|_f>pT6$8-nahaFFF0> zxBm7Wj;^aXvWAc0aJ@hKwwIh<_}L${!_jpWN7nE$9Ip2_zw||?U;8hA*A7S5RUBEv z$8fmb|KS&3aC-e8`{*5xuB$k*hL7QJy)XF9pLhDgA9(r>N7q#xS;NP0xZXeduAh1O z#>*clj`KWK&X=yMII@P1;c&gr`D>qgdg42twZqYM6-UDO^%R1b}Nr! zgXo$ZAusVLKWBsJnj9hD^(gOagXo$ZA^-R&pKycdnjA5wU%NqcO&x)6zWC>q%xHY` z;=YD(DSY#4-!+6w;b~VNUPCk~`OP&>*ARHuixggP&4p_Sm%^v5`F0KAQh2B}r>`Mg z3V*Ynn`;P{!h5V|^BTgX@CEDnzlLxrJiA(Bt|43sKdsiWYY3OZ>#DW#8p5UUp=v$8 zhHxo7qFVE>AzTXoruLO<2$#ZJslDqO!lm#%YJa?ja49^A+JifSe~stdp5WT4OP;+J zYrZU&dgk#Ynw62T^QD&*VpFU03<(abqSNe+mX(n!UkOo zbIh`8l6FEM9DN;;c0wQ=eI1c@LLeM{9g%iIARK)ik#<5L9DN;;c0wQ=eI1c@LLeM{ z9g%iIARK)ik#<5L9DN;;c0wQ=eI1c@LLeM{9g%iIARK)ik#<5L9DN;;c0wQ=eI1c@ zLLeM{9g%iIAR5{r{TWOK%4^96E&C2_fQ?ZK}>UucRA;n5gtijBl!1_8tAk* zqJ|yOOJcoR+JRlNgGgH>OA3(|#}1;G6e2B-9YilFL|Pm>h+a~Nv^aJUy`&InaqJ*^ zNg>kW*g^D?LZrp9gXkrNNQ+|!(Mt-E7RL^vmlPr`jvYiVDMVTvJBVIVh_pC%5WS=j zX>sfzdPyPD;@Cm-l0u}#v4iL(g-DBI2hmFkkru!XV)i6h9d05RLuU&+Hkgaf-_ z&C$6F(>byx!Qp%*4+n7u@$-^X=e*%dFZ@m}?WmjN zuZrKt<;`eDvup7a!0t7>76RguLEbxH46`i zY`OHrFB^|9GgrR#6^L_=ln^(kl5#XH-{**5HcpPWEn_21t6CX{OF5b`*KeO+_(gNt zk?#UTJMzwc)UeXj$`MuKUkiQJeQBcQ`t9?}U*B-t@V0V(A@ptcm8MpXsFJt2-uNCl zZ|lx2M?Waqk?-(Q_t1|9q$;1jGQ>IGEM7@Dnp)*Azppr6wfuHFe9N26k!}d%a4ARA zyFd3Af9la&p8bO0s9L@1KHskny_HYz8sfY!<>>1iH}NG^-lL$eii5t|=Wr=U(^sGT z+FyS3@&|t?+F@~ZEPiegsNOf+p2Jp*bVHo4NI6;@uX)yoU%u$mo;YgA5At7^8#H*t z1zk_yIzBn9lMat3A_E|6gg5!Jt z@{dPfxqWW_z+`E0IKoOMM_XDPANz*yc=Nyf=$A!bS+pPPkGl=hsb3|TZ!JW+A5Wg*k3q zSpEueMat3A#+=gJioRkVX{Jce4Y5mZF_Pxi*^*u%tRzlI7qn@ThTC_4+M}mF?aQJa zJb&2FaOC+A>3A+Pe}%XrIQpQ7Nf^a^1m%aa;t({$2of92~Q{k=E5 zB-)XudLfnPb)>neZnu*haYYJWce$M;4X>6h`b65Id0HGCd5RnymVfGqD^kSGmRoPq zpt*arxvQL*yS%%CXQB4RJYLe`aD+>_O>Jpu{QWQa^5gsd*w4Qi&F%x3&oNnA9FDM( z$2mj z2$yoSrB5-h9%x=gJM63|q9F3iB@y$ATQ8CB2x28WQjS*5^!#0T4(Sj1mb^uCOFMig zv-ApKB_~H)S~dI2uYAh!BC3k}JBuMpXekaD!8Plv-t{Pf3M?mqYB`-~5Y@vxnfQ$KF=(^_on zB`pp|SV`NFO_MZeypN0`eWekMv8J#549fCXh$~W#u3D+z4~MLka)-@8dZ}ULk9GvY z*FHyE`lNZKexmhoV26N$BRvb!VUuKjN1U%nIeH3?(8DSEL** z4q2}kvv+v|>=q7Lvb?E9`ef-9!b(oEaR=Jcsui}Ct?gkMp%;5<@pmk}LRiV;k( zRGV8kutU&IJ1o6ISjoxJmR7BD6z>jq;d_uN6OOTNGm-0 ziZ-OR#7P#mx+G#emi&%5Uy*XOYV})x=zT7~^G81+IP8`u9`?99YWd9e>=kb0he;LIDYE;|J8#(``8mnfHX>dT??n^uu-h;zos)>4iZ#}hyDvg6SUmS)wT#<6Lv?+dk;mM`1 z%zDK}z*dmXn|P8ly+XK@qb)5B@(qsoAaH0mAWA1beNVqmVwb*({El!bM_XF8B1TQ* zSrliR?aPiViCA~-T^U0haz9^7Ia*~J?XR`w5cP+{(n6(o7YHj^{HQ?t zJ|8yRk>`+h!XIG%ITD}+n2x-Do+t5)f;#CW8~B0V>Y%%3d1LRd*VsWeThRr+en zdUeY6iZzN=;-0>;v^X4LC5uM~V)66>eK^Rry2xURcG#&U?+fyk6V>8|_uiMZI2>Um z%NYv@th8}TI;_`=x@xgrLn>|D;7F@B(j9R{YO?%k*zLiQR(R-2%bPTD*qHIOsUxgp zvF-zHnx--4F&;UB(W5zP(W91LA*^JX8G$xU;$&UdYONV}IH-looA-+sFP-5VEcq*h zJy8)?B7Q>4EnolE`Nz@D2N&OocpQ-~>5RDFlGeW+;Zo*P;Sn#I#6cWG&wBJ#?kv$- zeDh`Bwe$*MCCeTaXw#%xrG>m$89bdD|2U%!D~Wcbg&g@EVI|9R9#XktkXEg7wnsa1 zwkvncaMH`nkNl4Cvqnc-`ZVIAN5(vTe(w?nbS2b>qdk$#`_ z#Ca|6oRj9f7C$l4al$(g+!fuCA}YD$i-&b2eKkC<<$D>E-!HIy@i^j&l%vI=7&6gX z`s$p~TIEIznV2r=ljV!U5cKYz6fxu_UmCvobE>O#)Ew}ef?!k3=SK?6~aoE z^C%FkD~qO+ESVSo$;=(( z(kq0OaH2@mInb6?yNHijOa}i_dd68Q>4=pP4I{rJv}T;LggDGVTUw}$??zu?Phl~k zDC;%-V?1)D zj`460!qVc%-5?NFve+eoHcjH-epkk?h(-|?m7be8`(Osr4$EI5G*_1!DK6z`X~5Q9 z{Bx{TELAu-i^Q6R!}9fSL!7TjIa(Zfr|9X7d0N66fBK#K3;ba&jr0m(CEVnoHi5RZ z(D@9;nCBBEJvR}LBi;i?K2ee15mvH1sUc;WPUBuiaAcpPF4{1@!$KdDzd|6hBPGd^ zuXIKS;lN`FdyRH@%*yh`VTdIHDLvyx0%=F<-+6ZT0ABnt>`tW8D<;j^6xLJZcZ8KJ zCww7gnp7+8A4l6imbh{3heRad(=HKFNccL!N)}rb1bfM%N&hD1!mBhN?OFjG>Jn`?Gb+s4n3XWWlh4dGrB?_mX;CiIq*`VyBc2b{iW*2y zthGcYNV5hn=@r6C0=b|~lQbyqdd&N~oQ4mJ1^sA%&+^4#2yXoDNkxqkEe*uSh%WYtq=e;kyN2L!_0lmI^;D(JI59#!99c*wD-&bfu?9db0GXBdjE5}cbjur=ZGL~}#wPQI~p(gjtz--5ouYWt@ijAc}NxgC4r^7a6TbNXs) zDMyQgdz{=765>D%pVPx&pTC9~Xv^2X4RQ8e*rb-Vebz+FSxe$M&z0dGj$92$FRMi4 zkF_KaF6C%Ti--6aHx$&2gIW5-5Q%h6@L76=u#)CMm?mjRt1tR0tv=})F*4F8%h$gh zkrw1yYKf7BrV+Udj*Q$zNyhgAZTb3l#`YiQ->BW1A z{El!bM_XDP+M^z1yqz0#%Qq$2W$v~6NFw&AC133@1QGf@DMw2K`q>LL73^n7N{XW4VJ0zkLa9F-j zhB#c2a(h;G;+b6#x@>vThM_YOdkN$zylNb*@gUh$IC)*Qw2A6zkQw(519Ii+? zS{&M)FIWK@^MiKh(-JGzj*LHhPu(rOLRd+QG@B;XD&Njr&JFOa)o=6(v3CBj8jSP` zVI}PZT+xa}lhB&&mt5OiLLtM_iGLr#I0; z?)~tz!PgOfQgsC_RGvX4|&c__d^&Ya=Ss5NG_c9jWlsGG81S1BiB5?{bHX zyD^d&_hd+m(-AJ^XiE!~ch938W@Rkaq;!tEwUO?Kv^m#OjuwZ$Qt&|Uhtm#jU~?9% z++in@K3TrB8RC$3;#z946GPKDm5FxPjuX!b&kKA!8=2O>d75~t7(pv(JDF(`k4~z& z_ZoATHc)5kj)jRu35TV{;Rq{<9$3((N!oJ9iCX23BRwOgPde5uRwmLNk-OJgYKiHS zKaJiE4zt3eJ)FR!*Yfr69FIWcNUfzDEe`G(usYDYvYW$}hCQP#k{IXbk?x2qQjQji z8?!OBq&vb!(4`ie zAvDEP%e%6px4qS$^XHfkgJxSfuT8?MX($bLUoPn^C z#Xkpu1+ZumM}D&=5ZW)el@NL@p4_6t9pO@rwzO)+yya~qJsxM~Co7O@66?A~j`U*h zM!F#m%=8^8M+?O{D);W-$n%fjaDTw^PYrRnA{96HxOYcw$B9XBh(~|oenD6+STMB1 z@|Dgr77&NdPR<4`4eTAPK$KflE$)HmD%w`mj_~!>(UulRMsb28qd51}-DifS)ec8k z$r2q3v}qCtwk|WCb`aa)S%5=cG0{!Z_|Z#R9FDM(b`#7ri6h?yi1F|!N3PnEhwH>tn%kg+bJF<7BC+=3VE0b=XUPrj!=V(idgZmQPf)E97P7)VU?hU89 z_jthYS-v<8!P_-^QjV5}w5cz&BQ0d1GMbU!5iaFuON%4#Uqw4CLciF%)Z}FO`nMr?qiT7R)ukLQj@&2Q*#C_7QnQQ#-PWm11((0dQ&N~xt`Q$%+`p~ETapm5fp7n~aKmEoheX-IvmWIO- zF6HP-!|^Zl9^~)L_aLj~cPIU>`svHw^(irzDh-Dts-*X5X@VnXN%U3Dl8L(KTvGaO znPZXehZhani}5(CpH6C}a&O|XlnIyx~KLT`99~TefwWJz2zH!@)o^c`44{Z^za}31Epm@j5HjMsFItLqbm)^ zC;q_s>A$3JtI>{JGn7jSf8M13kF_My4KWLCq#RB9ncAQJ(|lK7{eP<-R_@K|^Iq`v zx37ES4~O2$ryYhk>`OTsj_=gF89y+;M}K(!f1vLk|LgAxj(2_j6VuK6d`ECpJ{*qN zm%2GsJ{%vd@58T>^z@D||JZx_Cs!h+6^EPGuE_6*D$&kq=t{%!6aVDL zAG}cC-=S-t{!ica^z?Up|Ab!6{L}J$R6gx+#J-fH;rMiY_wy_ATddh9!J$2H(k`d8 z){?moBi#_^eW@FE&_u(bXYioAE`jo}!bUN2PBpO*lqyRYs9{kqp6ji@r$1I`1U9Ef}VBt z8zpa&e*U0$Nv{!Aa)(_q(3J+QXZ*sGi#9#i6HhK28a38krN_D(`5oa>j;=HuKc@4j zhj||L*-!qLx4(M$3(CET^^g@0j>=yl4y>A6DM!w^seUH=xL>GJOYvZ9#W33G#s+XF0$b?&WA(o&NpUdbc>@S z-2QNMrL!GJ_7FJ4E>`|T-NOc@?y7C3*N7^ig@vv(`MENLH<2sDea;U!Ap<&_~LR)d1T~=~zoL9}Yuck?lx18jhpBo$#Fec7k@{N&ERy ztF%#KeH`{mN2tC-%F&gkR@ys`><9<_(cW=lub}SQJ7N!^O_g3Fszh(X8@kf8L-yNI zc3f~2;?BIH?jd!A`%8|lG#tN8aqth%Zz0kDtk$#xzfe}W(l?f-9gc7*M^_pS{2RO$ zb=A2nvapKBI9EO#hB(wLxihQJ(Qu^A5btKB1#n9{a@SXSSObyY5iaHEO2hGWI+gkM ze4i6rM^=k+?@nL!Zr^_T+2?$`(l?f-9gc7*M^_pSt%q-BT~uEkv}9GV#umOmVoUL&d`X5v7XCTjJgx~F!l^KCfvY)p%N zr9I?$HVq9BJ1|?@ib}JjJx5^5Jj<*3nkV(Qx2<;DgW( zJPGD0dhtW>JK(D{9FC}x?!}iTIEXPQauDB{$lXhA8hez|V~>jbj&R$+(UqoFvU`rQ ze`3sK>tOTTqt~tCO0N-Ba&vNYrD=!8`^dP{SGkf+a9}$yaCCM9FC}x;n4-UG{Ny@I=j2%cZ3xan-tGbP2$;}^qeal&wQrW2tDUR z%F&gkR@gm6Sq@qgv2|E!;J}K}$SEDqdFHPWhkYqWQ!CkskJ2B+yStx#K;1XjUe0a} zN9Dueh$add=BIl9u+idZ5MLi&pMArV42h%2(o z!BP1u#9?2`(X`{Y>pQ7mq;DJ0j-1uE=%vpV`?}I_IHF3%^AYIM1P3-Ewjvx_M~NV6has?*CTvA&wU35_b%aPK9QYnsemSq$Ka`F*L*~Qbh}=I`Qe*!JO@{-q z5_N5$6JLESX9J}@en+^Jqbm&u_5xObhU1KlfE9pVY=-v%PUE^`cexJ}=G3&dq8X9gA5@yYa)e8< zD)8JRRcY(1Xh*hOdh`wbF^@+~KWaOA7sS%LQL>MQLq60ad?^rV4+cj@paWg`w8Ihm zQX@_snj(_=V;OseMt|^tZ}63E9bEF^AcC_X_N5$6J7o7fSnOTdI>bvRI8^tHEsl7J z^5JmAzLcZk&@*_kXK-59K|Nj5;)_&zji{1XMF(2XV5X@RYc4CPdgF|Ko>1E1`)lQ| z5Qlv!M^meeI$!8<_EuIJINVmRd^jAjFXd=BWG`Io3=%Izxi{Dj6SZUvD!oQj$?$Ok zojy*WM}$7wL0dGhCOC*IVU^G0yyVl4JOv2EzLcY>Ri5K89*3IkVZCssBZ<4^OefME zfoHdsax@%iWduiB8On`Q5^RysTluuZ5owF8q#O-Lp5sKz@u3#mC(mvs+EMv%IAUK) zH|XSnVM9{eacUWBVtVfP==D{t(s1NC=V}%0rwgSi`bzO*;>e7Lc9w~FG3>dEDjoY3 z`)=gN9yJgy<>*RNtBhX-M@FMU7j_o=2^^KCR*tBW5#Y3Ku2&Xlj)wCc&Y(8}TqW3K4TR^WiYWaw-!X`)D{a`Vn)ttXKV(E%1@4gNbhbX9B3l7_<(`%;dEBcnJmuaf;1T^`M@G#rkolF^PpmnJyWhKp+U1nuCNEnp$aByX1X_B?h3}*vTfI zVmN$9?Fj96J5r9$@wl+Q(+>6G#A*$PdU|5*&9TY!8sSoot~7lmAL@u_1V=@-@8S*_ z);@gPC!5o2M3wZ2d1<0noYh*)GJV-G=J&KCM^@=IqDsb&98$Rl2Rgj%i~RE#bNMyX z?Dxf}<+>97VCK^f`R5DbT&s^uIhtCbAJjpA&<_vwO^aOV@T0NeBfleD%F&gkR=G07 znCHrHi(Y?g)h9J9ToBZz#kA5oK%ax@(HX?i{$!I86lVmxw&-)Fz^+$g<9xRj$SP4A+g zRSpjH(8K7`^T%0;(%}zg{u;3_ z6?a~_qXKI5EI662gxX=>$&Jm(B4M^_pS;>S66&*{I;i1~hr(h+aR-;H!bFx$C> zvXUD2OG48?L|-LhqVDc5S3d2?S_NWX%F(og*cCA>`bu6yoTpKDc^2`k!&hlI98o3x z=22;aBhS2IKgU;QHlkPl*~FZMuhMHom5h_IK$j+Jg+0yr1nsC3g|S;sa8&*Z!EHnK z+Le@}sZ~a6gQF~f5hDw9<-_5Kia>_N8ao2LQ2B7+d*HRuj*1CcF{l6^EB+&ky?*+GBmq&iMXa$SkLALE?6BYc(FM;k}X-9${Z zBN0lE^(xYX1H^e>%F%G-S<%9gH&TXGyl`YbedUO>saH~thJ$;xM2o0ZMue0bJ6Xh+ zXh-G4VTePR9Kf&w>m(p50(3Q^KWsi#S$Q@^bqsBkZ?$~jZze1e%r5sH=v@&pB`#^ogT?72u zTWg2XqaBgo5!sHAa&)DsRmL)6JktJ9ZbZ5AOlMde%3mRt=tq?7qjO$iU%|mF$;d>% zvt9Xcq(v5pw7i0&q#O-L-k^)|kjINkuVDr~rlOvFh8v8;Re$|74Ms-#CeN)xrpv%Bc4@`}co zN3AMZ(SqQpd^ik2)L=&{?tWxG9C^+e<5AI% z=v_`KgM%2{oL(cUq(@as6Sa~rc)^-s?kYw#Va?Fm+HvA+JM-6weJMv%tGpK;9NgTI z?HnAOeR0;sm{)p@sFJY42f8$6?{ZH+#-nc5jB}g`j>=ynG*Y+3GrE+csTDQ}(QWz) zJ4CHl?hQAwr`e_+@7+ayN4S)uD^0BwG2k9Rv_reWMC1UDjD#pX&N(C95S(BURar?n znszAe%6oUwj_TcUS4|S*uA0(o1im19AySU6H0{XvRkS0cQ4_kb3t6E-SN;ld-j{MT zwNf1J5w{u{kMfGfQzVJ8M@70L@)=x7IT{Z3S@v5v%90t8vu#cwY+%w3tR91$J4i4{E5)tJdQNxDd^cCNECFN*1co&D6LSJc4WsGFReIzmB zKB1{2GVT*nj;?gJgEQgit6JfrCY%pX*^aS3jx%8p=RAX4NjVyhToZ#MS2!U?bSTi3 z&j=dgT$X<9mctgQd^qyNJ^Ct7+?CtCqV7jIqDuN31EmR$yn7xTdBUUIh{G^ngD+=j zDSD(RND+u9@ULpvD3oQdPsgK9C}wTyH_ zERmv>l%wgZJWGu+PY+_E?sBRCC@c{?G-BlijAhQ$hx(qsRKbVD4l z__k7xrdGT&vD~dqn|gu+pN$y^N99v1LvTBKN6OJ~$Yy7yrX8H)G&c`?W!i!G2Ql))Ye&(Fk^N-#yOi9x9=Y0I}uYS?#Rln_v)C(Qqno3@e zc|#;xwe9GRc+M}sP+tIkV{kaaxvwJ<9UPACh_C*4UwHcK-~Eo@aD;PTMBGLD2bVt1D^2bhp^A|rVI2_^J*Aa;h4o7#ybAIn1J^lP2 zeRgm-!nv;_5*-|l?ug5u_#>xZ_vnSe;Rxrxj!1NHIJzSahY!(g=D)j>^L^1v|FhE< z{L(9eyCYm`2OWGJ;Zm;mf4}{_(~~~swL2V%n58H1R*5BCS=(>s{Yxo!r*ZYM({oK>@e(7g+IJ&Ol$QnL|!}Z>M@_&5# z`%nCDI~-kCabyi2!{K`W)oVWK^rTPyl^u?*t2nZTkKu5=U-8|~I(_7~9OBtL*q`&U z>ne_{;bS;l@85jc$DRK0KYW)Rj;^aXvWAc0aJ|3g!=7>a>i7JOI~-kCabykSS+Ry| z=k#aL^*;5xpEy0~eco$_qw6Y;tl?ugT<>%LkKcRxlz)M}aHs$3&-vJO6-U!YmTnT5zJ3| zc#Y_q9Kln=xUUgilOuSRnT=~i*W?IR7@mmE<;8qqa5g4LMyWR2*W9KjyJ zDz`>-O^#saV(nccx+X`kpRyyY5nYob*yY)$)`+gj5!fE=o@+$cY5y(UcBs$N7v*Cjnw_#n0HN%&}_Khn^#?vBQ)dg_vUWb ze&n}L zWfNUP$le)JvX-W@yBy)qgwOo8+7&?0hxANkrPi||8*XZr<#~pkkG-T2*K5@+$XIvv zOx}g%ine(@u4)Z?H%ihr{QrSS+i-&}hFlp=b06J>zoAhJgrlz`(l!i4T9z}~AiW)F z8-|pl4N#s}NTqEUX-8j2q;0rCUq|Q}#L5hWqpu^Ua|h8&3h|`b7TrPgl0u}Fxr68> zg-9!N2hmFkkyhpoqL&mRt;`)nFDXP?nLCJHQi!xNcM!d#5NY-8A!g4jO44SG^mT-+ z;0fz1{c}lUE8Y=fG#j;^!t)WE4eM)-=$afcKjYMY=#8}3u;j55W&cmuYio|qU6{U> zWKA}FB@c(Zk_iiM&C$6F(>byx!Qp%*4~KlE35#;g(YXuLIkG0f;d~_zhdj6mD{{@z zxeL=dvL?add?gPD)~cS|+cih$E==dhngoaQl{_5sb|);=HAm+zOy|g&1c&pLJRI`D zCv4j_N9Qg~=g6AegLb}>heMHp32S)G(YXuLIkG0f;d~_zhvF3z_Vb#fa~Gy_WKDv@ z`AQxRMNuX!?lni}E==dhngoaQl{_4Z?M&F{YmUxcn9h+kxd-ihB@YL?y!P}BN9Qg~ z=g67_hx3&@9EyWY_yOy7bne1*j;u*=IA6)bp{U)2=dkAJ+=b~JS(D&!zLJL{SL#?x zcKG7y+C@Z3)+9KbFA(P$H`)bS(?8`t%4(^0_}Vue~!O}P)u~fXQHnhah<~v znZ946L;E@Y7Kb9W6J8clj&M!0>>eV~_iJ>>o)?7T#}j@TQjT!$S#}SR==(J~WX}si zQSAv&4k<@C_bj`INc3fm4%zd9P^?|Q%Q)Zha)fiwvU`X`2Zy6W_Pii;0x;n%QWHlw z_bj`INOW*GI%LlaB7DBQLFWkPo@MtCiHiJU9|2YiYdwes{`V z2)?Xgq&vrJ{_yKgPx&=Bq09B^O&;FpDUS1uJ0G*<8@$i@`K|Xe`}Ux??yXZuk+2a3*sIB z=W9;C=kBX+VRyaxetqP3gzI&_?CJY$JD&5mUw!($Kk>TI<$Cj7{o*(u;?Mb*BY2N4 z*Xw+Zu-?tIMI9=cqw^L37Id#|rKea`p%`q1Ti^L>iq zNZ9%4dY!MnSg{_#_xqWzIz9J2e{<+^z4>lNahzuoSxfU1bYz0Q{vivOLD@BSyh z^7Of%`o5vd_2!-Q;z*bf^EZTo!};>*iu@Fg|DBKj&f$D|@fUwU=yJVzzr8rlGwyuM zr}mz9xL)U*Wfz1?IXa)m(9{vWTly|~eUI|J&-X+}cMjjle1~&%M?Ckx`_j`Ff5C@E zpLqZ9zQ+8f?s}H^PUbtD^K}m2mwdl+bVv9uD=?R=fX*IHkL9o-R6e$nTi zUiOvr$M~IwNY`6*>%Q`}*4JR?>m0sv`iko4j`+Wy{QT4Z`(OUSO-<^ZzjdvA<@6QR z`8tQMgT6jGx+C7>^Z%0*|It@o6W(H{zqTXj>xZu^&eu6;HLXXN>&-V@cR2h>y|pLU z`8tO`6aK6?x+9n&%oJ+nHOY5vcWUJ`+-JV?bq<~lB;jzq^>*EQ%>BvndF*_h!)LY6 zF-La<>j-tGR$dc-gRdieX84S8zK&qcrSIWzy}X~w3?jcHd}jEJalVf5QS;GsbVslU zGKXOIn&^GJc&lz(D<3rFb` z99a3R{BXEl{{mGiox^nzUBmBy&(R%GUn$U6H4NdJt|N#N z;tj#!=#I!QV1|?yPzK#&bWvP{;196^liu>4aMy(NZoP0fZ9ii4{irB;s6s9ly>;^>ea9QkF6Wt<1XHFXY0X!hMNv)%bRM}99OI2_@c zI)@|l6x}aRt)n}Ko=(0S6C93kO`XG~9Ich%ep!_|M}EyJI9$rnox`OZt@Y}DSzSAa zR?+dTQkQac=Wr=UYu&wHc8SiR-Qb=G2v3wtIl6PWl%utO+%LOb=g2SS1cysGx^uXc zqqPs-FZ+Dw$nW?Bhf6uSbGVeFwV&TF_DbiF%`m>r?^2HL94_T(SsC|>-PJi{`;6ZL za4AQ34wrJYtfl+Ke(W5w;rNzb^p#6Fx^uXcqh<9?i{;!oWQ&ep8FMK|cMg|ww5-=@ z@c=r9Z0d=1gQjV5yFfBe@=kV{wxRj$i zhf6tHKF+lGqMgIPK;u%5?i?=VX!&Z>;!}5y{Ekobl}kCgbGVeF<#SF;G@*0Iubqe% zF&-}E=+5C%j+Q4pEm4uqA^&`QliH;m-8o#!(emi0B_7l{6ldU=1gQjS(+ zVp`%_og=?y6&x<*=+5C%j#h+aS|WO#Bfqf~94_VP&f!vyR@`S=B9om%(Wr@t6l3mE zj_w>T!kfIl6PWl%q8k6VakAhkq5+r5xQkT*}d!QxnmmEr;e* zeiinPNaT=mbmwp>N9);`h!$-*@+)Fd;!=+894_T(J>wJcr7ee^@%&zwZVs4~qdSL7 zIa+JgM0{z>p}1szD@<#aaVbZ44wrJY_Ku18(w0N# z2K-J`l(>|mJBLd-T6^F`L~6^SJ&0x^uXcqqUb$M5MMH+RMl9u)36^JBLd- zS~kfmvXdhtBHuzmP5AHM4XHgmvVIHa4AR2Mx2O9Z8;PH z%wJB@^I=ks?i?=VXxX|GF{~|zB7pe~+`E%YIl6PWl%r*{PsFgc9Et$u_jm73F6HRX z;Zly4?=ca>+H&AAVC_?qC$W*v)7MBJ?9ch=QjR7jiY30~z+=GLr^KZkZ4|mqdc<-lXW+NZ>&9Njrw%F$T=SmIj_JO-?NN?gj(ox`OZo#(ha9C!>^`*66FqdSL7 zIU4I9OMKf7JO-?NN?gj(ox`OZjrETuzU9DUz}lz8r5xQkT*}dT^1H)<$AGmDhf6uS zbGVeF^Q?G>1CIe~9}bstbmwp>M|0ALCBE$|JO-?NN?gj(ox`OZjrETuzU9DUz}lz8 zr5xQkT*}dTy1c`I$AGmDhf6uSbGVeFvHr2dx9z}Vz}lz8r5xQkT*}dTy1c`I$AGmD zhf6uSbGVeF^E`To1CIe~9}bstbmwp>M`QhCiEsM~j{$3+5|?sx=Wr=U=XvxF2Oa~~ zJ{&IP=+5C%j?NS89S%GOtbI6K%F&&}r5vp}HNO5Hi1Um)AMqHl_Tg|TM|TdFa&(?x z@3aGt0c#%)mvVIHa4ARY8Rse9;lN|S+K0oX9Njrw%F$Y@SdDf#@EEZ6;czKOcMg|w zG}b?sIGO@+o^j_R9s|}sB`)RY&f!vy#`?z+-*VtFVC_@lQjYE%F6C&fe=PAW2Oa~~ zJ|!;Y=+5C%j@DkzZoR{S$AGmDhf6uSbGVeF^OSst1CIe~9}bstbmwp>M`QhCiEsM~ zj{$3+5|?sx=Wr=U%SOZs+~L4uz}knyr5xQkT*}e1b;obP1mZm7&PO~3*`2}RQjYE% zF6HPvSKny|9s|}s?QkhacMg|wbe^m4aNsfEIl$pkj_w>T<>)+D-{Htp?3(VfGk9G&OqI~;jV9wjd2=+5DYJTu>* z196^l=VP9ehg3t%C;U~bB8y zN939LE_y+ok9khM)FgkwCvFaKC&17Pha>XLe1l%}^Zzqr&MA9HIl?tvN939L2Hg>P zP99Q@aPI4fJTu>*J0j1|L&_1(y+YV;UpYEY$wSi$F`xZMNuIKA_&Orb$wSKZ<|+9O zhf6uy`8r3QlZP(Xo2TSE94_T(=j$AKP9C~kul5g4+;=!!%F)i(Ir5x5bh%#QX3HMj z5qatz2$v!Xwpa!o;d-6VYuFLQ+K2?QJG)+@V2g#*5ndCoq4RYFv9`sIa=k>s7E7%o zye3{l=j#Y!ZHqnVdS&%-e!eq;UK6jO^L36q^$uOGmnhg`Id=q+v&GtWDPmfSJ>L;t zcW;x|up@|^Enb7`C8o9bB^}{)_cl3SN62I0_gJFku9ukB;$L-yx7K^X`8q9NeAIk2ov(8+-bkX$^)hd%@s=acext;tc$(<>Ey8Dp&ls;^uN6-d{emvn%QMal z+H&~J@EPNLor6_@8G$a>%UZ>=v*lprVV+XrQmmjn(OZPiC7)wn!(J;^P@Yh9xn6bx zR;Dcn>pJTOB`(Eo!wS1a_^1DQVt-=&LznAi*JP*Ia^xv%l(-aoIs4ZZ;WON4 zzSpqVioKlu2wkohn}nTv%YlW#E=h??VJTrxY!UuU__N|Q?6tyD!ahKk>&1SLxZbKlpMUN4g_?t@Sn7`2umCaq-m% zo{wAF;d-5KmR%6O*7_Rkd>!F>^LY%ue7Yjt5xzS6s_lG%IM2BAF`wF7+TnVgZD=?R*{KdYvzy`QYvdU(bD=cfLTJXWaRiYsoF`aJ|kq%Pt6C&wZVDzK(Fc&X?;- zaCe070KPLgUm(siZmd_gw8Ql}-z>Wze9!Q`#Q8eH_2&8*e7V{k;qD0EGjfLCBjtR7 zIL|nJV{2YTZ;^7n&Ns_02;XIV_i?_CaJ|l#Yw%7xd|&eY%K3uhywob!_R!^eov+u* zcQW7MoUbEXuk+>3u+t9T$$W=%zTh~|Oz~ANcAU`VdY!M=%J)9s6P>RkTyO4h!MEAf z5*FX_8hfhmqR!Vj=HGB9@9yM!ov$N&fAxLW`8vY&I-jG*uj;CWheLY2dTMUswvP5c zrQ-~m7)PW#BK_Bul%x6n?~nbR*FSprkuMI8jD;!pCT`4W4GDDR^VB*bBU>veN5k>w zpZ$Uhzc5cba(z|q4fn{#z0OLn5mgem+wzv?O`O%ro)2#Qs;+(~p5GLPqkQDi+KIlZ zeA;1%v-|ob+{5ry=)C&V$>1_E?eH9#P zIcM5YcbBR(?NILyM3qGE4s>aP=%(!% zwSTM;RT4K$xzT!0FO()~rDx;9jEAH4)Gk#BI2=(Wal|6?l!n6*RT4Kd z)4T6AJRDx~!5?}2wLkqaG3Irf>ZaZCs(gCa5sD{_`(h>KXlnIIZ~ge=FaDw z<2GL1*t= z`%5ps;VCbQT9rkA!#C)LS5#@*;fN|xgk_Eg+|tvPrX5;$FShPx6erf&5uYiW8V*NP z$=E+8IJ8!#COE$Ck5gep2)A01$_x{&f6=?-&m04Bo+Z{&jy8^L3(^aF=oKe= zmweLmpZWH~ERCc~1&8t$P2cs}Uw-hyd9OVyB1_Cwdg9$zVxvkwAZp;J-cJn{d0^la}c zhRe5CCOGO|*Tdx-Dawb#5&Ke(hU4G+-aq)@Gv4r}7kWq$a=yJ29Ez{=t)I|a`EWR5 zUrMJA0}aR1Ui>F7&%1k%m{%UfsmRpB7X9i7mvVHasnsuk-!qQ?;WIvn@i^$jgwtc? z#`-b738@t$(`!VP#2Ms3mnPcreSh`m-~9BKe0lVh-)O2ER1f*~4qrc+=J7DZd0#5V zW8D3c5BTm+dvNo#FAEO8(dc7P`Lx3k`%>e}MyeI<_-^?g-zgu2zVbUPb!X7!Sqt^DDHmit=ubbjG=Arr~ge*4H8B=t|QLwc$w3 zXoupW`QF__-X9$A`BfSYM^s6ik_~ief+P2j=qo?LsxzIjGfZ>uI>MzKU1@5i74DJN z#NhC|QFVJO*2KKywL+ZtrN&oWvQ{@wdC{Yz>}vX|5b>n))fq`WJXJm%hB$NDwv}>p z%q#iLKlO%}#F%G0q-V?wrAIp=t$AgLoL4I;N5k`VbpySM zU$VZ7J0j4ThQkpq<>*So!8)SVA)XJ9Ay=$-th@K~+;xOYIl9u+>bbvi`-EaLjQKhD zDCPQhwZ;rV=6MPF_rQvWymBbn3K$j*sa{q`i z&)r~xBX9pO@rt~4A!EC2sf-um&uQL`j&I_3LV58E8;2zE5_1p7W34xSCo z_~7vSS9Ra(Va$4NkIds?i1WVGT|8Ob1(|1w5XXf>i1A*L`0_obhafVa@o>bx)E%`N zZ$X76^JdvT%&P6K48zWklfz0eNtMcq@%ch_Rf z$JlhlzSLdp*qp}CW3Ju#qWwHLYFG1nOY%AG>^}DMfvA$cTb3qTo-4Kb`f$jVTDcFY zcgzlIQt36KO5)y9%s|kkiN2Dpd&Gi;Ln~SS^2tL^!^ba_R2mLPR7spW4|HjQBfahD ztMs-f>YhHi(htKs;%uFCN9;>E8V+n-)+{ySEdLlkS-E2^QTk!nx^q4phB)L}vXXK% z9NGhq+S#HV+V}E(=V8N5@M#3u3zde$5mgf2_CS{=IIt11{Afq+smdL*PwBDOM!F#m zId@l5j)vnIU-F{M_x|b|V;?MUJFLFEbM>&@lj?{%aaYUDi?1{-CsslPgm!rJgUAO_ z586@rE5u=6>Mo)#Gn#fN#_&LqgWxC+QgN8^_1=fg|7?iEzLcZkpr6!Va4f!oaziS= zRQGW44WdmQk+;>OBt4528V*?*N4yp|WM$+p96jVFM?O*g>FNlVa&)EPNQ*4`DtF7M zNzJjb*D9a!FvMc@Mae!Ij<+3u;lXd4W8vqDs@*lezw+TQ#G#@FV>OV3qv6P?+J(N# z`7=>pW(7A+K~x$JM^wp()&;sW!IAz)jCuM1%Dux<$}c$%-$40rIAUMQ(Qy3eXMX18 zi@yI~#WRQ{fu#Y5qDFbEG~!H|UL#z}(UqoF8C8pUl~3m_93JJWG#rkolJT4ex-`L& z>s5?L?VRxqy7Uts+RnK~xYw|crdIL`o{$v~9I|AN+U+OWq1Xc75mx$Pive}SzLcZk zK)?AP6LAYT;F|r9u!AzaMz|C;TF{lI<+4eR*e05~huWRPPRMvb*bgH%&=KzIJG#<2 zf=7$J<~M6%1jjdWG=iDVSuzk+60>BWH5W1shrEdko+|B-H!<$e%7d7g{ftMY*N7?! zk7b}s6SYzV@}ijKkHO)0Kk8P8*7kUt5(zjQQ6&-O9QQX%6CCnAj`BfbUX{o45T7=8 z=e|>SgiATP($q>T+@o9*S>brANxA-A&WMX4pa5$n$hW`=h(ga7^ zB`VP#W#1e~8)c$al@Es__N7KFTxd9mk8u(Jhu@UVr|TAuO0N-B^03|CElt#lyCsTe zL|>`p!lrj4qW-v z$`FTrDM!PRD_lH-xxy)TtZGV+)h_Zo!u@bZSK7v7S+9oukv)2WuhMHom5fmnVvJ^> zQ+imT`fjtmwpE0kM`eB^B;}gJ9C!=sUqDuM> zP?~5tewz8U!^ZIwj7r1dh$@LUkp|jrqBvc8gug~R^8Ng%yH1+&i}(-m-|}nxa1e1` z5c^Vb9%bLtR~sIr&v`B{HQw~*+cMHQ_K!%1&$%G*Qg@^rO<(27PmD)Jgv0O0pS@)~ zvPYDr9ge7y9%(L3$#Kzn)WU(Kx9BC#5PGF4(`!VP3_CHy?|)>(t4F`$^z~@xwHc?3vx4;1<86iEw|9j5;T6B^5zpa&#F|*E zsJ}fB2t12uQ%9tq5q;w5O4IU;w=;Lo74aG;F_L%~C%ss(^OzgrP=3ElIhqmFI&x%n zfTN-~cP;i-`P9k~hl<=iWEILtk)z?j*5!tRIO5N2!HzGGWZjp$4sbXkzmc+%ax@&+ zy19R_8%(UqJQMiotlacZ<-_5KeJMvL2Yb|oM&yn&CC4}`sQly@h}^w|7`K~N=%iN75?2MpQ|h$_#XAq8<29c_z#W@A&1UI>&n$K06jHZR&`9 zsrWUhaSC`??yAMSN()l$81|LY!@i3Aj!63|q#RvoTAr3n^i^6ifk=BN^j1FYFvNLZ zDt-YBYbi7hOF!&g%@TY7@r}D`O7|#5N2CuBQjV@P?Z{h`N5)*%>%^{u-du^4j(GC$ zCOg8V99?Nz&bc9UN*g|ERcUIK_ZifqvTEjE7MswEU&vETUsXOFj@XxSG#q(Lk9Ke?jQFl{hm_JI zz8mR=;53|?tfU+bht38sb{{UsVE(r3JpSWut)$loAKMz6KAPi{ENs!TUc;N1u;Xb* zMbF`omCs3BAgW}Xz6mi-r_bdI7yIy$ok#2}3YOs=uvk9UJp($ee zmyey#AURRwJ3djuxhAKWa8y2H&Pn)!*q7?RN^>~Ko_@qVNR9d8M@_Vr$T`+59KK>S z1iQhGl%wh0w8(-ZEwbRq9WFR3pLQ66o8;`4E2*)Ih9=GS`TlNj;BOGgp&cHFsr-08 z46!feXxfnx;o!&}IXEhoHTHAm!(oW?zEqs65p@ntT19mSnNuvrgPEY3-J>f#B&8#k zg&!699pO@rt~Bl7UajsL1c!XJ@y!aIVCL5-;>NYTr_zU&{BPhS~= z8+1ETj)sFX9L{nM`lEf8FMKI?d@)PuINQ#AI2@tfc+#4_l5#X0xjRQYatD~;$Q@bf zu~SEWN4S)uD^0C9w_~Qz4(%6tzhFd~B@uC-aqplbGETjcay0G8*iy73BSjPK@bieu zr&f;GmvS^5+Gj6$7l)fQ*}LJz^VKp*LCN9;=tyFE0G+f*^Hs4Fv@ zzRHM>(j#gV>5kZ!ay0GWzBae8^>{32UNN@515|pAsFHpXqcw4=U5z;3Vwb2-@_xY> z^Qe2}XI~9Oj`>Q;(bOt$lE--DO>*Uq8|q5S0vx}73Wp=8E9-cda&&Oacb#Kx$Gf6t zaO5tk^w?`7KkgK9J30_9<>*RNtGwM7?a140Q7fN)m0lyNM7zv*zd^gtNYjqIjT;;l zRg2rP6E`1dN9Due2)y~Nl%un+xPKM%if0)g7QH;Z%zpZ<(lH+Mjjcdb$+)Ez=+Xp- z?tNUi|8dZts#V;~OZ$4wkCe?2Lp=h$|)^jk;dGpLe2`+UAdMEH_1WFo@38^rCujQho1&aq2$ghv7Q(bOuR zbH?MGPpxvttstet{}?NHLmYAiSV=h=j*RuMzuFj;2<5t2mx0 z&5~IEa+c)t*q^SB@Mq1@m4+klUqw6eHkH~j?o&sbSS{ulAnkBOmB0{hpFM1yXvP6-9nWxKys^ zAysK=#XV=%_k;eFM<1s>!;Y@}HKMHWxUHN~14q-2v=d`I@=2X&N7{@^kLNtn4Z#T( z7UW9G(QxSGhtmw&!4q|yW2}@!R9^od@vBHT1VZ`7tV=nXbgsM6SGkHRcf1W2dMls4 za)j^nCFN*1IG-nONsV%ao8YK^i)WDaQTcEff*bLymQk{ghC^!!?-j+o(#k*_=^kC_ zO)5Qn&dBcwmvVHa;rQ73J;-QB?(|WsdZPN%)e$b`=t{$p-d%9iEE%&e_$r^iGQ>IO z?n=thaBx?YH&ZkmoHXFqDtAPnl#ZBX=ELC#x3>4uaBz0csk5~PA$M-594nrLF zrN(`q&@|q{j=s`*b*t#aL_0i2Qu%Oj-_CARWrStiv|piV2j}z4yO!7mSOIW&T&(ip zaKyfpqv6m>eX+Z>oWv+M=F-H?V#Y(WC(~<0m5g(oKx@rUP1Gvi+KTZ&|7=;tsczmc z8t)YaUqc*ZrS3>Mnp)*)c#Mah+SB~hjyE4B+EMw`$`QT`mz1O7;Ea=Xk-0mc`;r>p zFjf1;ty!hl2tT89bfu}4&L1!K?F7DitlV+GUFmVZJ@Pw(xGN{$ND;ML(3OTGWBSoo z8KIxxU{~Pz23={|;fN|3k^exKCOGokIXLnZIizY8^;7E=f*TNHMczkKE7n}QrFV~2 zMmvbXVu{fX*5WxI4nv&xr5p`MK2aLa!#STQ<;E_<^Qd&Z(?I+>(hYIQr*kFcXgIXC z^M)H7hkByIyPISy1X?R~rq_rn=}&5DqUHIV$9QDPL_6|HReC(Zk>3$6<>*Sok#V@- zNE zBDRpe=bQ%HLy%xhhbBQ162xfKwgZadKwk%GA}UCy5rsQwZ5;?o2aQI={Lk5Ol7S+G zNb5j|K@@`!8#53jVEt;>UiGW}?#>JM-gVcir=In(_gb~8*4~?$nz4=C^)-)3uQAW` zM8vGmw?s}-M#B+S2Jf=SG4ByvZ$C(M=hF@$j<;W&q>P56f4s5hGnM1B=PPy_<#6;b z-Y@!J!&Cb$Uy0qzl&W~`1tMmd#bLgV{GK`f?Pveo^WXmZA4*-;%ZeRqZ*$!Cnyp%e z9kgooy4Sti*R6;f>hU{%@zc-0;m3YFby+Vb6WA->x7_uuUP!*GVevJ~?eVj}>C?|Y z{l)*C9M)U@hvvBLsM}+;Jat*G`I>=teD2r&+2>FG?ypT<)?53l%%2GBHDC3@MLYiW z>z{u9*`NQW)MdT3S8I;j&a`?rby=_ZcG-pa=np>s+z)>H6a8+z9sf9ACDvP`nS9mL zZ}%hk`WOD>^RNE!)5&4IWd~>e1HW7T9lcv4c&FEVyX=AZp}+Jep8w1*{O}X()>}4p z=1+v{YrY!IxBGVd&!<2B{J|$bpSrA<`3388A#M-(TUW^&CDv=cUG_ly%m46w&%gQa z{(~nF*4r_p^LSWqU6pU3d#8U!{Ken;z0cqH&wngAtheKBg}6QB@Ag<%;@erT`F7a@ z@t;2a$DV)W?|=9N!g}lcRm@E1TDiXFtE)1(C&%Z0$9Fyd)c5|o9T)e< zezm{BZoTH)We>z>zWklf-~9{!`3Z#e)_I@iDA?`Mdd*i?{@Z=aU;fA+eg1DB`ya_+ zy_}xJ7G8+kPI7y!J1TWqulaV_1M$m0`fbl2eCn5;&}F??=KBudJRa6-zPh`Tdvg4> zFMjLuNB-VJ*4KK&X3&#*fw}Ft+hg6eZ`8_q&9}=Qh@btdpLqU(|Nb?}VZF7l?Y=5l zzU4pdLpaP=cW`p2@NI|O9_v2O5=$Aq%N~eYqaNY#O6_%bB7W8H`uOu_fBmn^`nvAz z>pzc&S7fi$ldoBBc{=D=x4rHf-SVtzUM;oJ>bP@y7RT`6~HTl z`6h?wbIu8%$>D3s*O<{0!CKB00lRC` zUc>WU>np=ojQJ)9HVM}$9M)?;<3#w%@D*deiSVd-GzVIc+auN(cPO=TP4MP1&)koP zN6n*YK2gLPg;mMCfiCN<(|Z>j9s`e!`6dU}G4mfB)?0q@3l5Kg$Hsh<5Mg2Vmeely?XV4ub+35WI0Xhvghk8Z7d z!F(-`CF8ogO-4@yJ5=lgYUP?Zk}?slyW3>GiTEIP+E^`cSTAvVY%lUB!ZmRX%{LKv z46we?Wxeh9J#)AwuA%uRhxMAz=!w8rf)z=vT$Aa6Y|QP^QbwDv@RK2Bgf)G21pZNWTxaw|_-PI!%>C67_<7j}!eR78^f`d{=@~u{=Kksk{METT z4G!~71pnK8)p0clVeVf6kwti$C;C@Fe9KopJZiN|6`KFt_MF>eohdr>4#cYME}VZ) zM6~wx=&NYcKsQI7*-j242KV4FB1Y}?xJr!PtFy!6K3@^{9Os3wCQ&dm2ocxr>v6T4 zZ*s&{%`+z14kN5-a#+gfxTD^VyLobOatB`n<7_FTCx@ksj{E%Wn3X0+pDB5d-+f6L zJvl68bj(+8$Lu;eVix6n$k`4{89g~HWpvEDZ^tSzIbt)_k5&QFex_PxjNzNCzv9F{UVR_C|FUYQ(WGpzWarHq~&mNGi5 zjJLy5n;aGA%)YXe(UZecMu)ZZc37N~qoSwYua#+gf*a>fkA7ygXS+#vUBxUsEur8xxN535&q{+ca zn!`_JDWfNcrHl?g!*+PWCP#Qb`ZTws23jO>)<9B5hreVye1Maq&f;WWS;}Zpgw0?n zqr>mB9p2B$QD=OT!%{|14oevwZP@Vrqy-4%w&QM(obbdWMTw=1-enJjrHqcT*zo<_ zbJQ8AEU}c)lfzO*$2GO#ExPB3Yl>4^Sz;-pCx@ksj(cOnTXfG6zR!AgKAr}Xl+lyJ zQbxx;zTqvp=Lk>cI^AR`qbG-@jE=c#!&`LE5uVI-iqTR=PYz2N9dqu6f9am1&PHX4 zrHq~&mNGiljxFZ>r+bcAJ2t#tlvv8>$zds@V-4K!FWqy5mvNmPw3N}4!%{}aTE5|5 zy65mYL`xYxIV@##*d!Ysse6vFNjAJ*lvv8>$zds@!?xP+NZoUA+7~|=C6+RJa#+gf zun{*rQuiF3g~LxqiKUF59F{UVY~2ly)ICSU2iF_LEM@fMu$0kZvu_`SkM5o$;+z|P zGD<9E^yF}qoxMQleFI(5%uFZZmVd{JgEfyOewH$Nmpu^HWpu?qQ&Y;`4g}UbmN*=i zGJ2Oi5SB8!;-9H0Wp4)pYaUA+4oexm%N__z8I5I*m5ip8y&VXwc`R{CEM@dAdmt=j zbVW=rII!li#Nn`%(UZecMicwMO1^Ig);yLtC6+RJa#+e}EOV^ndk(C5EOAOKW%T5* zl+hKHz2Lx_#}bFbQbtb>OBqev4lDV-9a!^N;*?m*=*eLzqlrIaCEs&k&0~pEVkx61 zhoy`r@`{yw&w(|MB~FQ@jGi2pG8)SqEBT%SYaUCS5=$99IV@##MSd?h(wYxT91cqv zJvl68bXb@PU5=CQ=#u$0l0!%{|94eDte&!BgO|w?} z|8@lF{dv^&+UXL%bp5$p?& zib!XPrD9bhYJGvQUh}zzvsSUzuIHMq7cbah8BBz0;u@N7A}S)C^|fBSV26b>5w3}A zXugRE+h;xXYrS~E4oht!!Xo1>Fj*^0;nOmGFb$B3#-aYbrG3FivkB#{zN5y`3UDAuc>F~Bp z1U{<6zhf!9M~4S#B0OpyP1kTDDw3PEvR-Ng=i1{GES@aZ)!@-I-{hbTv;|$(TXEbA zj*81>iKQ5C#^=6PzA}8pxQ4S756x!g)Zx5uHw4B=ct%zmRJfu4R_l;!q=;>W7lxj ziW!u<2VK_7yv{sx&%rFsJxz(FSZ$d7?h(GiedW7`vsM)WO%Cg2)npdG=U@$Fj-|v> ztjw%N_Xyt;zE@nsSu56Z)(Ui4FBS%?>OBX37uGyVEQQ^}T7Qr5edqhpHGI(T_E^!$ z)MdRD!Mxz8IA@kvDo#vp*k1Rwisu$KEF(%R73VlNEW&$)?`_}nZqtK)`6TOxg@-Qd zjq|7*w(vbioJZv?lv!e_I3>Gbq2D9o8Qu;1nG#FI+1-tO!#yI-?$+D);<}PloG#wj z&DkG7&ij&wIJG^^@XEo1u?&$~pZuun#c8=(>-Z)Xd zvFE+#U?0m4n35^Q4xC@bKlcB`p0lo{CrTVkuPY|=OE~|zJ$kP79PBpjqB}01Ugk=C zg2Q^vx62*~&$XU|%{LL&TUUPa)m544iSX>~S=)Sxxb3)gwLj4g>owmldmubJd)7AJ zL|AV;C(hlKe08s6dLlfZd!9F6B5pe_-x^VGf{k}B?|14GZ8G03dmucYd!9GnL|AX# z^T|owmldmy|5cx5o(L|Cu+YF|VXFpEB+%X-bX z%N_`?OJ1+cHxbrbvv%^;9DLD^u`ca*)EhN4Uvk{?@0b&7Zckm-Yrb9fKzJn^E1dXF zh<#;A4)fJKf6)%FeO?pImmIgFR`C{(4c{@XwO;ehT6wkfDr&xouwL`k>htdYy7Kz! zb=Q2!aod@0yd9QRE!$ze=9{(hitLrzd=p{4=8Lzge3g~cD{|H3mDZYXa_pXL^0?Pp z@8oMtzVmFY^j_P|*YfzOt=D`;Kk)UsSKe?8w&%Y5#@(`(d%oh0az=DXp7AOhKEHjp z?D_ms>?>cqfurZ}DP``7=#urW$ry+HS{m=2j5K{1U%~j0uQkEZeya7xy_D+w6N0z5 z@;uH-%4k|1?{(%oquGwQM(f@4>r0_;)GDs4=fi%Sh%T9Lt8Yzk)Yngw!|y_hd%NDb zy}pDRe6+&|OBvm1IQagKzV*vUMegd+NUxsG{E4U$OsN{1l!50zgZMy56Oh_0FN4?!R+tD%lyo>na@kTp39}Xkp9=wn; z8jgDJd2+N5X??vcIXWK>A#V0;wUp6t)YsCIqY>*{5XsT`a0o%~E{||a84U;Dm5r~N zz2my7t2%PmcP%5GCqe5p{u$xx$LLPi2=YyfY)98>eO+UNqw`OQoBf|HWi+*_Z@y$Z z%Kmtw9o|87`i$t3`BjS6M6Es(?@9fx_%<1RRdKb*eHl;7cK#Vr(Y`>$8^6~RvPM&@ zFU9viez^K7{CV}}mKS{b`1=yw`EUqvyOuHCTd!^`nR|Hf!`{u$wO3oT_dwW6PBJ+-&zuDxIJ ze)8cxH=;{kcz+a6YGtiD4aYbAv!D6!OW*#dk|TVdb@J@xIlP+dgjna(4kNCmjD~}; zsBb95XUFsH2T>DB_|=Jvl@G^2TuK>D`t$$h=YH}J{Q19<_h9vC%nPs`p7Uq-zx^yN8xC+n@AojxPFBz@rv-I{3m_x;Vk^X|XI z_aLIHZXI!dIi6VGxIa4ogrIlV34xX}np$y9#g&rpp|4$0*jng1b}UF8Y4VNelAIaV z?xi(>j`{Gzm=|-*!wX+;9a>j-NWAB1n97Gkh+EwsCn=-h`1-Fr{p8b6>~l%a3{j$c zqVwS};#$gRIR0{c`{S?2H$b>{V+N=<6}}L=Tki+#^cm45@Ar4n#aV6cuGUm7f5#fa znD;q=Z0$P3(D^6C1924Ait5oiSz$D_qMv9z?WmE8wcTEWm*GK}i1q=jF;8@Bf+Obk zkHy@ceHF7oy&WWH=k@-Q&Ziwl;8PEt$o0ELjD{oT_19VlS=II#I(jtLzI8gj^WiY! zTFPiRuotib=&SG{*IQ`Ave4UNJAFoU$@{c6ur3($)*)pzCVc28<;4 zUR`6AhQkO;#kI81ordH4KmUs#-rjwG=z4gF=x3c)k1xaMRC(v05!X^iQ>(g4ay;rP ziQFjJudztSn_~2~$AP$AOBoHvZ~Rw(`1SYxi?7ReM69TuM0z2%y`FsP^cm4589!g> z)b3~DzZ;+UX*c)6(84X8RGVc!ChuCuX^^>Dk>g4Er`pSrFskNS`rgeX0 zJL+oBlDa37qx0dYI|{_@TIwa=As&&Z;-C%GjJ~1`)S14D7{YqKw$rrSh%R~mY;>oo zRoGVV!p6!m?^9uUr>;|Toqs|+L<=vZjHXt#SIcX+c3w}6bM3Yw{h~A+Mp(+|PQ&q$ zFaQ3>Kls}}lH*b586x+6KIs;xE+YM+G#p0Mxr~%Dy3^IWk66hu91j)8$#z7Ka)u$& zFZ6V!;fV2Ah%U(yTu)xNCODW!m`{S@SO+)sGLJA*(56nG5nZy@!9>?O7-?!1bK;}s z#C6)JW6(K2>V%LHmU8sH)6|M@dVfcKW4&TU(LatQYy0Qxo5j6L^=Yd3{^U5ZWki?E-EV7xBX)Nm zJNAQhF8pZ6dfQv)GlE9gx@)Oy$Fc_3PB{CjE&Z3=5wRPhuR0%&+B<`|)vo#^Wi;(5 zU&gV=NxO>ih}}#4;fLNMeMWT2dINvlY0DE5Y0%{<%KM`{MH^D(Pl|M&9mQ_U^h8`s z8BMM5m0%@PW5>M8B99(fc6+3$l@XRQy3=s52F6-Q?>@Bky6lpW$n$sDD3LxR$}UMM zqdQHlVo&=Td)u6^;*P4XtE~0o365GNA`OQTU9!HqkW#G)jxT)A_dNdlfAY)8QD-Jn zZ_GrT%u7V4&xkI0IZn_ex;0U&;&}HEze2oG_dcVs(3w9GmNL52aNuLW*8oRf?aN{f ziTC4P8Hk%#`fD^C(NFK9Ey=-L9yN&ET=my`&N`pIG9qk-3n`=F_(Ku5`&`8DXh*H| zPjJL)nR|cQ(djdyOP0-$=+;E7*x$rH=MfHOW@cqLusyLf;pqG`;#$gRYE|}bj(J(H zZ|LoK{fp9Y7-1=+I}Jx!OW9X_wdWe1o-X*h?^P{rDt6l;v3A~(J|n`u zT2e-Lnp%ZT{V1DyoiV39%(pfEl|CaZ6?XJOcbZzoef}8tIemp^g8O4bug{@(J{&?k zTuT`ZM~wHo^2xB`)XrnnUw6MZeO(`Q7N zS6;hi(TAS&IupT)^onL>{zT*zQc^~Dns&r4^;P@Y@_*-E zmi=t%<=wKl*z>lF=(S{{P-D6hcd5lPB+^EuLgr(}#Y@$2Oc(6|+8ut*t zS|Q^ad*Ni}y23ksMs!K|ch`3`qZd}1T9qFzud9x@$7-o}Yj^$`aV=#uwIX(Y#EL4K z5xFneh(t3Yo%=ze9GRYoYbm4Q2p_;}_yF>{s$Ihy9OdPXbe{OeR?Pf~u$0lArseFR z4u4{w9EkDIw{klFgt%Qx8BIIb|HrOA$D=Ko@CfQHw4D!!5!X^i!%?a-a=#ps_wH=uT5BeC=_srwzyY#5zU)*el;@YGp*1l`**#Urxroezf) z57$!ZFCoeiXgJsl#-1?m^YYNW(GKsnIt_;rU9xl$-@UCnIPFd9Tx@OJ|zRrh32&@dgd~lL78V=TS*7Ufnu=+Bl zP2IgxcRn0K+^(gJhJ$&X$UYpk3O~WYT#k>Ac69oT=#uFvXie0LwVX8_j#!K8D=}*q z9}@WmhRQ!7Zsh|wNf}M8;%a}@{lWT|?eMDK=`*5B^7)U2jxnk8L`>Ix)Npp`A-$s}+j*78lJE|9-;HW4`NUZ2dq|XRT8Qp1GUY^t(^YRG2p{uT#NH4Ey z=1+vBjP5iX>;>83J;X1rl8qf6ddrecy`4TIx@3A!TN5ph)!>!=GaT(b&**gd1Ktnc z`$WW*ej#Nv9OVm7j@r3z^i_GYBc0EQ=Q|PT#D-ouL`1OhtmdrZiH&5(Mgr$t` zG#nMR%rP(TK=w~X>hBf4a*AK6#6ek6L` z=h;`iOI`7gC)!bWZKP>=%?yd?lDYeBP1GuEYR;-1HuZM+jl){rSU2G4G#o~B$+EAa z*Vjq6NW($QnK5~Y3f9?=jgs0SMS7k6$n-!wTuT`ZN1evaF%O>jvGzrYzDw5mv_pv7 zwUp6tl=Ygu8zZ=3%~1CkwJp}aNH0q^^C!YmMt2&H+Sk%ooRg`yx2{w0TlH1t(+(p# zGMYVlfrg{v28T_(&WqU_(djdyOV&OrYP+Hik)~F0kH4!k+ng}1QOoEz}cQ`pZeMWT2++ll9y?o($U6p4$nAb`c>Gy|UJktYlt99@s zWi+*_6Dc|7Vd-!DL9cg>ou;ph=#q8PCDE-34&oBT2)V8}vx4`Ic7#V~oeS=KIE3J& z?1hxk;>dOsB5JZuk4Ji)L(cT#NJO!pq>P3mc14fJKB`(6xyxf7X`lU}9Y)y8agBxp zKVSI!vR3U8UMEC0I65B=BiNO)@0?Ob!%=f$jz`UKk((Z<4GRWz=fhz{&7vnMqv41% z6OYI9IQZAGnBb`0eWE)b4kNCmjE195s~^v?Y+PT|y;g>I@O2svBf11#J_UcI$*;XZ z_ElN>ksEi>dcGmg>9bFWd^m)-T}v6QzGBR8?fqCM3^(+4zWOS!lIq2il+ke1S%XC2 zmu4lV9d&Xb(VY*65!X^i!x4AwJK~VEBkm~9Kqg0dZj+<);Sl2CT59=sQ&aXX&rQ5C z($Tv-1rd63xAk_6LFdorSIs1yX>{nov?EB?yzm|@CID|NM+b1cb;izY2;y#F;zI=O5+_mFPI!1KK^7Xw@ ztJVZZojl9FYU?#uwGGRkv58f!(zL^fE}2$wYl5R|t1hvKE9?(I)r=ky~V4j~?{rHqE7;^#RYVIi}2M~|-Oin4d(zRY+k z`4iD4({t0BvgP61#bX=oIDBLqy6|H$a@4(iXPM5(&q7>F8BMLq50@O+p;(b{Sa0W3 zDP78{Gnx{o|{z({LEkCG*5iYl5SmM9OyHql}&0MmySmSmzTX9}Xj~ zrHqCHzf!CS*^Zd2IDwn(h`FlX_O;HWX8uH2%IHpu-JpH>k5@9K$ zI}Jyy<&Uh;aMYcXeNwYsq|=wRPAW`xgQFkJO{w@0Q6OR=wI-a)!ETyw{P^@L|jW54F_=|{I76yt=38w z66?HArU&9y>)=VsXgJDend8yDyW(nZaFho!(q}}MEYD_2wI*7QuLPe-G~*#kIKvWB z>sgsZur}fi+55_fF3GE8p<5HRs)%BaN6(hIcTQgedOM$58Bx*6ZAuvpN390QQL8~9 za>iLctImhRi1v6bZ}tfd2hTuq79hIncve4h*P96<9eRh~PY5i_M`Hd{%4j&aZgqyG z?1bg(i!oTfzDUy!Bg)s8Qf)u1r(iOFofe_5SUEQ=ZuHifl1MKfK&A)c;abXQ+EFI~ zv#)B6irn?2R;1VJlj(_YWaJuMgf-2x1W85$GH#>ZRzKzm6XwN z#F-4vQ^Rq@&qHsNtml&B?$Y9tTr*fzm?v#>W8LfOH4$U9>NT(`Q7N%!q4iqE@w@ztUH=I!Eq`vPXJ7|B>l|;0+tgLwAj) zR`uj$jyb+7?ke(GxUjWO>opX{p5(K<;J}Zhow3VhY?*e-!#;k;9%|G z#7J}%wom!R(t4@$6YJd~Azi(@5YayuQbxm3PcP?n#h#YdGamNubv_(I5Ctgj;PS(r z&~QYIlV^Ui9pz7m++~GDI^PI|{~^-@aqDrml+ke1S%c(=T@fb-k|X@BdCkJn`Lsg_ zytNln>)F24v|>fcQIVf4sc286R}|<1VJV|KO|9zeU~<$+z|_nA&e}x3b^46xl6Ar` z(XENTDjz^{)Q&!-Y8Rgzorc4RE?J&}M7Jh5Dt4C~6^To|6^Tnk=fh#dwbXh?N@~h0 zk@plma(~2?NIYtzf8u&wXM8#z4xYe15Z6*h(~de9p7(j|emMXA#yHz5?lc@mbjgaJ zC%QGkQ74^f2dCR=pSkYTt?rMt{~QQrQSS4Tl+ke1T#_7(SpN1zcRuY9;+TC-Qbxn^ F{{flB6}JEY diff --git a/stl/arri_s_mount.stl b/stl/arri_s_mount.stl index 31d44a71c9932b12a30fd4dc9cf8786ad3dec5a7..a7948d86987c8cedfe91807c31e67d24ba1496fb 100644 GIT binary patch literal 110084 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 yRcp0pmZgO&$E5?;H}_Bv980c}2=gO;v;H#x|GI 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 Jl%tXU{{Z}eUjzUE diff --git a/stl/arri_s_mount_center_fitting.stl b/stl/arri_s_mount_center_fitting.stl new file mode 100644 index 0000000000000000000000000000000000000000..0bd772958b6bbfb04261d22c549a1fd178ee8b18 GIT binary patch literal 18884 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

~Nk-$>5@v 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 GrvDFh%UweN literal 0 HcmV?d00001 diff --git a/stl/jk_lens_assembly_bellows_board.stl b/stl/jk_lens_assembly_bellows_board.stl new file mode 100644 index 0000000000000000000000000000000000000000..2b7fc6c221d64a4f01d7143652113d76749ac25d GIT binary patch literal 413084 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 YjD`5*+)fbm@0|9h9DS^6?MV^;4`Z#(>i_@% literal 0 HcmV?d00001 -- 2.40.1 From 1029885047de04b59b74760d8f24843ee9dc9cdc Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 4 Jan 2023 18:26:22 -0500 Subject: [PATCH 71/89] Update threaded Z, still needs m3 bolts --- scad/jk_lens_assembly.scad | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 471fe4e..32f4206 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -119,7 +119,7 @@ module lensAssemblyThreadedZ () { } //------ //threaded rod void - threadedRod(Z + 20); + threadedRod(Z + 20, 0.5); //board nut void translate([0, -10, 0]) rotate([0, 90, 0]) cylinder(r = R(12), h = 30, center = true, $fn = 40); //board void @@ -133,7 +133,7 @@ module lensAssemblyThreadedZ () { //top linear motion rod voids // translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); - // + //rod translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); //m4 bolt translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); @@ -141,7 +141,7 @@ module lensAssemblyThreadedZ () { translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //------ //bottom threaded rod void - translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(22 + 1); + translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(22 + 1, 0.5); //flatten bottom translate([0, -BackOffset, -(Z / 2) - 11]) cube([23, 22, 22], center = true); } @@ -207,10 +207,12 @@ module debug () { //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); } -PART = "lens_assembly_bellows_board"; +PART = "lens_assembly_threaded_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); +} else if (PART == "lens_assembly_threaded_z") { + lensAssemblyThreadedZ(); } else { debug(); } -- 2.40.1 From 46be1bfd3b04ca8312997eebd22b597e96c1c381 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 4 Jan 2023 23:11:48 -0500 Subject: [PATCH 72/89] Assembly work. Adjusted design to simplify placement of 2 linear bearings --- scad/jk_lens_assembly.scad | 65 +++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 32f4206..2867ffb 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -29,6 +29,10 @@ XWidth = 50; FrontOffset = 0; BackOffset = 10; +LinearMotionX = 22; +LinearMotionY = 20; +LinearMotionZ = 14; + module linearBearing (pad = 0) { difference () { cylinder(r = R(LinearBearingOuterDiameter + pad), h = LinearBearingHeight, center = true, $fn = 100); @@ -105,9 +109,6 @@ module lensAssemblyBellowsBoard () { module lensAssemblyThreadedZ () { Z = 90; - LinearMotionX = 22; - LinearMotionY = 20; - LinearMotionZ = 14; difference () { union () { //main cylinder @@ -131,13 +132,13 @@ module lensAssemblyThreadedZ () { //------ //top linear motion rod voids - // + //top gap to close translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); //rod translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); - //m4 bolt + //m4 bolt top translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); - //m4 nut + //m4 nut top translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //------ //bottom threaded rod void @@ -148,33 +149,45 @@ module lensAssemblyThreadedZ () { } module lensAssemblyLinearZ () { - Z = 90 + 15 + 8; - XCorrection = 23.75; - ZLinearBearing = 36.5; + Z = 90; + ZLinearBearing = 31; + difference () { union () { //main cylinder - translate([0, 0, 4]) rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); - // - translate([9, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) cylinder(r = R(22), h = 40, center = true, $fn = 80); - // - translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); + rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); + //top + translate([0, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) cube([LinearMotionX, LinearMotionY, LinearMotionZ], center = true); + //bottom + translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); } //x linear motion rod void - translate([9, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) linearMotionRod(50); + translate([9, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) linearMotionRod(50, 0.3); //board void translate([-8, -BackOffset, -5]) cube([8, 7, 52], center = true); - //x linear bearing - translate([18, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) linearBearing(); - // - translate([0, 0, (Z / 2) - 5]) linearBearing(); + //z threaded rod + linearMotionRod(250, 0.3); + //top gap to close + translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); + //m4 bolt top + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); + //m4 nut top + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //flatten bottom - translate([0, -BackOffset, -(Z / 2) - 7]) cube([23, 22, 22], center = true); - //x linear bearing - translate([0, 0, -(Z / 2) + ZLinearBearing]) linearBearing(); - translate([LinearBearingOuterDiameter / 2, 0, -(Z / 2) + ZLinearBearing]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + translate([0, -BackOffset, -(Z / 2) - 11]) cube([23, 22, 22], center = true); + //z linear bearing + translate([0, 0, -(Z / 2) + ZLinearBearing]) { + linearBearing(0.25); + translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + } + + //z linear bearing + translate([0, 0, -(Z / 2) + ZLinearBearing + 32]) { + linearBearing(0.25); + translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + } //x threaded rod - translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) threadedRod(50); + translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(50, 0.5); } } @@ -207,12 +220,14 @@ module debug () { //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); } -PART = "lens_assembly_threaded_z"; +PART = "lens_assembly_linear_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); } else if (PART == "lens_assembly_threaded_z") { lensAssemblyThreadedZ(); +} else if (PART == "lens_assembly_linear_z") { + lensAssemblyLinearZ(); } else { debug(); } -- 2.40.1 From c2546d2bc5392c443a83dace638245db4185f9d9 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Thu, 5 Jan 2023 14:40:25 -0500 Subject: [PATCH 73/89] Add m3 nuts and bolts to threaded z movement --- scad/jk_lens_assembly.scad | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 2867ffb..3460439 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -58,8 +58,12 @@ module TNut () { } } -module m3BoltNut (bolt = 20, nut = 3.5) { +module m3Bolt (bolt = 20) { cylinder(r = 3.1 / 2, h = bolt, center = true, $fn = 40); +} + +module m3BoltNut (bolt = 20, nut = 3.5) { + m3Bolt(bolt); translate([0, 0, nut]) color("red") { cylinder(r = 8 / 2, h = 2.5, center = true, $fn = 6); @@ -80,17 +84,17 @@ module lensAssemblyBellowsBoard () { // -centered translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut(); // -top no nut - translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset + 8]) rotate([0, -90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset + 8]) rotate([0, -90, 0]) m3Bolt(); // -bottom no nut - translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset - 8]) rotate([0, -90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset - 8]) rotate([0, -90, 0]) m3Bolt(); translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(); //m3s // -center translate([(XWidth/2) - 2.5 - 5, -FrontOffset - 8, -XOffset]) rotate([0, 90, 0]) rotate([0, 0, 90]) m3BoltNut(); // -top no nut - translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset + 8]) rotate([0, 90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset + 8]) rotate([0, 90, 0]) m3Bolt(); // -bottom no nut - translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset - 8]) rotate([0, 90, 0]) cylinder(r = 3.1 / 2, h = 20, center = true, $fn = 40); + translate([(XWidth/2) - 2.5 - 5, -FrontOffset, -XOffset - 8]) rotate([0, 90, 0]) m3Bolt(); } rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength, 0.5); translate([0, -XOffset, -10.5]) cube([100,30, 15], center = true); @@ -126,9 +130,25 @@ module lensAssemblyThreadedZ () { //board void translate([8, -BackOffset, 0]) cube([8, 7, 52], center = true); //T nuts + //top translate([0, 0, (Z / 2) - 4]) rotate([180, 0, 0]) TNut(); + //bottom translate([0, 0, -(Z / 2) + 4]) TNut(); - translate([0, 0, -(Z / 2) - 10]) cylinder(r = R(22), h = 20, center = true, $fn = 80); + + //---- + //T nut M3 bolts + //top + translate([0, 0, (Z / 2) - 4]) { + translate([-8, 0, 0]) rotate([180, 0, 0]) m3BoltNut(); + translate([8, 0, 0]) rotate([0, 0, 180]) rotate([180, 0, 0]) m3BoltNut(); + translate([0, 8, 0]) rotate([0, 0, -90]) rotate([180, 0, 0]) m3BoltNut(); + } + //bottom + translate([0, 0, -(Z / 2) + 4]) { + translate([-8, 0, 0]) m3BoltNut(); + translate([8, 0, 0]) rotate([0, 0, 180]) m3BoltNut(); + translate([0, 8, 0]) rotate([0, 0, -90]) m3BoltNut(); + } //------ //top linear motion rod voids @@ -220,7 +240,7 @@ module debug () { //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); } -PART = "lens_assembly_linear_z"; +PART = "lens_assembly_threaded_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); -- 2.40.1 From cbe6477af214519593186436ff9438af560959fb Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 5 Jan 2023 17:35:25 -0500 Subject: [PATCH 74/89] Improvements to bearing and Tnut size --- scad/jk_lens_assembly.scad | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 3460439..3c46171 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -33,10 +33,10 @@ LinearMotionX = 22; LinearMotionY = 20; LinearMotionZ = 14; -module linearBearing (pad = 0) { +module linearBearing (padD = 0, padH = 0) { difference () { - cylinder(r = R(LinearBearingOuterDiameter + pad), h = LinearBearingHeight, center = true, $fn = 100); - cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + 1, center = true, $fn = 60); + cylinder(r = R(LinearBearingOuterDiameter + padD), h = LinearBearingHeight + padH, center = true, $fn = 100); + cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + padH + 1, center = true, $fn = 60); } } @@ -48,11 +48,11 @@ module linearMotionRod (H = 40, pad = 0) { color("blue") cylinder(r = R(LinearMotionDiameter + pad), h = H, center = true, $fn = 60); } -module TNut () { +module TNut (padD = 0, padH = 0) { color("red") difference () { union () { - translate([0, 0, -(TNutHeight2 / 2) + (TNutHeight1 / 2) + TNutOffset]) cylinder(r = R(TNutDiameter1), h = TNutHeight1, center = true, $fn = 100); - cylinder(r = R(TNutDiameter2), h = TNutHeight2, center = true, $fn = 80); + translate([0, 0, -(TNutHeight2 / 2) + (TNutHeight1 / 2) + TNutOffset]) cylinder(r = R(TNutDiameter1 + padD), h = TNutHeight1, center = true, $fn = 100); + cylinder(r = R(TNutDiameter2), h = TNutHeight2 + padH, center = true, $fn = 80); } cylinder(r = R(TNutInnerDiameter), h = TNutHeight2 + 1, center = true, $fn = 60); } @@ -79,7 +79,7 @@ module lensAssemblyBellowsBoard () { translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80); } rotate([-90, 0, 0]) { - translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut(); + translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut(0.3, 0.3); //m3s // -centered translate([-(XWidth/2) + 2.5 + 5, -FrontOffset - 8, -XOffset]) rotate([0, -90, 0]) rotate([0, 0, 90]) m3BoltNut(); @@ -87,7 +87,7 @@ module lensAssemblyBellowsBoard () { translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset + 8]) rotate([0, -90, 0]) m3Bolt(); // -bottom no nut translate([-(XWidth/2) + 2.5 + 5, -FrontOffset, -XOffset - 8]) rotate([0, -90, 0]) m3Bolt(); - translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(); + translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(0.3, 0.3); //m3s // -center translate([(XWidth/2) - 2.5 - 5, -FrontOffset - 8, -XOffset]) rotate([0, 90, 0]) rotate([0, 0, 90]) m3BoltNut(); @@ -131,9 +131,9 @@ module lensAssemblyThreadedZ () { translate([8, -BackOffset, 0]) cube([8, 7, 52], center = true); //T nuts //top - translate([0, 0, (Z / 2) - 4]) rotate([180, 0, 0]) TNut(); + translate([0, 0, (Z / 2) - 4]) rotate([180, 0, 0]) TNut(0.3, 0.3); //bottom - translate([0, 0, -(Z / 2) + 4]) TNut(); + translate([0, 0, -(Z / 2) + 4]) TNut(0.3, 0.3); //---- //T nut M3 bolts @@ -197,14 +197,14 @@ module lensAssemblyLinearZ () { translate([0, -BackOffset, -(Z / 2) - 11]) cube([23, 22, 22], center = true); //z linear bearing translate([0, 0, -(Z / 2) + ZLinearBearing]) { - linearBearing(0.25); - translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + linearBearing(0.25, 0.3); + translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter + 0.25, LinearBearingHeight + 0.3], center = true); } //z linear bearing translate([0, 0, -(Z / 2) + ZLinearBearing + 32]) { - linearBearing(0.25); - translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + linearBearing(0.25, 0.3); + translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter + 0.25, LinearBearingHeight + 0.3], center = true); } //x threaded rod translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(50, 0.5); -- 2.40.1 From 3036aebbc409997f84f18fd4835d169bfefa60ab Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 6 Jan 2023 09:18:03 -0500 Subject: [PATCH 75/89] Knob and collar work --- scad/jk_lens_assembly.scad | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 3c46171..3648085 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -3,7 +3,7 @@ // include <./common.scad>; include <./bellows.scad>; - +include <./knurledFinishLib_v2.scad>; PART = ""; @@ -211,6 +211,28 @@ module lensAssemblyLinearZ () { } } +module lensAssemblyThreadedCollar (H = 8) { + difference () { + union () { + cylinder(r = R(26), h = H, center = true, $fn = 80); + } + threadedRod(H*2, 0.1); + translate([8.5, 0, 0]) rotate([0, 90, 0]) m3BoltNut(10, -1); + } +} + +module lensAssemblyThreadedKnob () { + H = 8; + D1 = 38.7; + difference () { + union () { + translate([0, 0, -H/2]) knurled_cyl(H, D1, 2, 2, .3, 0, 0); + translate([0, 0, H]) lensAssemblyThreadedCollar(H); + } + translate([0, 0, H]) threadedRod(H*2, 0.1); + } +} + module debug () { rotate([90, 0, 0]) lensAssemblyBellowsBoard(); @@ -248,6 +270,10 @@ if (PART == "lens_assembly_bellows_board") { lensAssemblyThreadedZ(); } else if (PART == "lens_assembly_linear_z") { lensAssemblyLinearZ(); +} else if (PART == "lens_assembly_threaded_knob") { + lensAssemblyThreadedKnob(); +} else if (PART == "lens_assembly_threaded_collar") { + lensAssemblyThreadedCollar(6); } else { debug(); } -- 2.40.1 From 597137670d197bcd21509c3554a8646eece35973 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 6 Jan 2023 10:31:25 -0500 Subject: [PATCH 76/89] Merge base work with knob changes --- scad/jk_lens_assembly.scad | 68 ++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 25 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 3648085..cd23e1d 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -23,7 +23,7 @@ TNutOffset = 1.5; RodLength = 150; -ZOffset = 50; +ZOffset = 120; XOffset = 38; XWidth = 50; FrontOffset = 0; @@ -33,6 +33,9 @@ LinearMotionX = 22; LinearMotionY = 20; LinearMotionZ = 14; +XPosition = 0; +ZPosition = 0; + module linearBearing (padD = 0, padH = 0) { difference () { cylinder(r = R(LinearBearingOuterDiameter + padD), h = LinearBearingHeight + padH, center = true, $fn = 100); @@ -62,6 +65,10 @@ module m3Bolt (bolt = 20) { cylinder(r = 3.1 / 2, h = bolt, center = true, $fn = 40); } +module m4Bolt (H = 10) { + cylinder(r = R(4.25), h = H, center = true, $fn = 40); +} + module m3BoltNut (bolt = 20, nut = 3.5) { m3Bolt(bolt); @@ -157,7 +164,7 @@ module lensAssemblyThreadedZ () { //rod translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); //m4 bolt top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); //m4 nut top translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //------ @@ -190,7 +197,7 @@ module lensAssemblyLinearZ () { //top gap to close translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); //m4 bolt top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); //m4 nut top translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //flatten bottom @@ -211,6 +218,14 @@ module lensAssemblyLinearZ () { } } +module lensAssemblyBaseZ () { + difference () { + rounded_cube([150, 22, 22], d = 8, $fn = 30, center = true); + translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); + } + translate([ZOffset/2+10, 0, 0]) rotate([0, 90, 0]) m4Bolt(20); +} + module lensAssemblyThreadedCollar (H = 8) { difference () { union () { @@ -234,32 +249,33 @@ module lensAssemblyThreadedKnob () { } module debug () { - rotate([90, 0, 0]) lensAssemblyBellowsBoard(); + translate([0, 0, ZPosition]) { + translate([-ZOffset/2, BackOffset, 0]) lensAssemblyThreadedZ(); + translate([ZOffset/2, BackOffset, 0]) lensAssemblyLinearZ(); - translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); - translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); + translate([ZOffset/2, 10, 18]) color("green") linearBearing(); + translate([ZOffset/2, 10, -14]) color("green") linearBearing(); - //Z axis - //translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength); - //translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); + translate([-ZOffset/2, 10, 40]) rotate([180, 0, 0]) TNut(); + translate([-ZOffset/2, 10, -40]) TNut(); - //translate([40, 8, 0]) linearBearing(); - //translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); - //translate([-40, 8, -25]) TNut(); + //X axis + translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); - //translate([ZOffset, 5, 15]) color("blue") m4_nut(); - //translate([ZOffset, 5, -15]) color("blue") m4_nut(); - - //X axis - //translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); - //translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); - - //translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); - //translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut(); - //translate([25, -8, -XOffset]) rotate([0, -90, 0]) TNut(); - - //translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); - //translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); + translate([XPosition, 0, 0]) { + rotate([90, 0, 0]) lensAssemblyBellowsBoard(); + translate([0, 0, 40]) rotate([0, 90, 0]) color("green") linearBearing(); + translate([-22.5, 0, -XOffset]) rotate([0, 90, 0]) TNut(); + translate([22.5, 0, -XOffset]) rotate([0, -90, 0]) TNut(); + } + } + + //Z axis + translate([-ZOffset/2, BackOffset, 0]) threadedRod(RodLength + 20); + translate([ZOffset/2, BackOffset, 0]) linearMotionRod(RodLength); + + translate([0, BackOffset, -70]) lensAssemblyBaseZ(); } PART = "lens_assembly_threaded_z"; @@ -270,6 +286,8 @@ if (PART == "lens_assembly_bellows_board") { lensAssemblyThreadedZ(); } else if (PART == "lens_assembly_linear_z") { lensAssemblyLinearZ(); +} else if (PART == "lens_assembly_base_z") { + lensAssemblyBaseZ(); } else if (PART == "lens_assembly_threaded_knob") { lensAssemblyThreadedKnob(); } else if (PART == "lens_assembly_threaded_collar") { -- 2.40.1 From c181e003a34370d527e52f2c12163f984c0311e4 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 7 Jan 2023 18:43:59 -0500 Subject: [PATCH 77/89] First draft of base --- scad/jk_lens_assembly.scad | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index cd23e1d..5dad379 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -222,16 +222,18 @@ module lensAssemblyBaseZ () { difference () { rounded_cube([150, 22, 22], d = 8, $fn = 30, center = true); translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); + translate([-ZOffset/2, 0, 0]) threadedRod(50, 0.2); + translate([ZOffset/2+10, 0, 0]) rotate([0, 90, 0]) m4Bolt(20); } - translate([ZOffset/2+10, 0, 0]) rotate([0, 90, 0]) m4Bolt(20); + } -module lensAssemblyThreadedCollar (H = 8) { +module lensAssemblyThreadedCollar (H = 8, pad = 0) { difference () { union () { cylinder(r = R(26), h = H, center = true, $fn = 80); } - threadedRod(H*2, 0.1); + threadedRod(H*2, 0.1 + pad); translate([8.5, 0, 0]) rotate([0, 90, 0]) m3BoltNut(10, -1); } } @@ -278,7 +280,7 @@ module debug () { translate([0, BackOffset, -70]) lensAssemblyBaseZ(); } -PART = "lens_assembly_threaded_z"; +PART = "lens_assembly_base_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); @@ -291,7 +293,7 @@ if (PART == "lens_assembly_bellows_board") { } else if (PART == "lens_assembly_threaded_knob") { lensAssemblyThreadedKnob(); } else if (PART == "lens_assembly_threaded_collar") { - lensAssemblyThreadedCollar(6); + lensAssemblyThreadedCollar(6, 0.2); } else { debug(); } -- 2.40.1 From 92067bdbefffab135dfdb2c2dcece7c95656f0a6 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 11 Jan 2023 19:17:15 -0500 Subject: [PATCH 78/89] Add top part to assembly --- scad/jk_lens_assembly.scad | 39 ++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 5dad379..0d6b09e 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -65,8 +65,8 @@ module m3Bolt (bolt = 20) { cylinder(r = 3.1 / 2, h = bolt, center = true, $fn = 40); } -module m4Bolt (H = 10) { - cylinder(r = R(4.25), h = H, center = true, $fn = 40); +module m4Bolt (bolt = 10) { + cylinder(r = R(4.25), h = bolt, center = true, $fn = 40); } module m3BoltNut (bolt = 20, nut = 3.5) { @@ -78,6 +78,15 @@ module m3BoltNut (bolt = 20, nut = 3.5) { } } +module m4BoltNut (bolt = 10, nut = 3.5) { + m4Bolt(bolt); + + translate([0, 0, nut]) color("red") { + m4_nut(); + translate([-10, 0, 0]) cube([20, 6.9, 3.5], center = true); + } +} + module lensAssemblyBellowsBoard () { //bottom difference () { @@ -192,8 +201,8 @@ module lensAssemblyLinearZ () { translate([9, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) linearMotionRod(50, 0.3); //board void translate([-8, -BackOffset, -5]) cube([8, 7, 52], center = true); - //z threaded rod - linearMotionRod(250, 0.3); + //z linear motion rod + linearMotionRod(250, 0.6); //top gap to close translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); //m4 bolt top @@ -222,10 +231,18 @@ module lensAssemblyBaseZ () { difference () { rounded_cube([150, 22, 22], d = 8, $fn = 30, center = true); translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); - translate([-ZOffset/2, 0, 0]) threadedRod(50, 0.2); - translate([ZOffset/2+10, 0, 0]) rotate([0, 90, 0]) m4Bolt(20); + translate([-ZOffset/2, 0, 0]) threadedRod(50, 0.5); + translate([ZOffset/2+10, 0, 3]) rotate([0, 90, 0]) m4BoltNut(20, -1); + } +} + +module lensAssemblyTopZ () { + difference () { + rounded_cube([150, 22, 15], d = 8, $fn = 30, center = true); + translate([ZOffset/2, 0, 0]) linearMotionRod(22 + 1, 0.2); + translate([-ZOffset/2, 0, 0]) threadedRod(50, 0.5); + translate([ZOffset/2+10, 0, 0]) rotate([0, 90, 0]) m4BoltNut(20, -1); } - } module lensAssemblyThreadedCollar (H = 8, pad = 0) { @@ -263,6 +280,8 @@ module debug () { //X axis translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + //translate([-(ZOffset/2) - 24, -FrontOffset, -XOffset]) rotate([0, 90, 0]) lensAssemblyThreadedKnob(); + translate([-(ZOffset/2) + 16, -FrontOffset, -XOffset]) rotate([0, 90, 0]) lensAssemblyThreadedCollar(); translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); translate([XPosition, 0, 0]) { @@ -275,12 +294,14 @@ module debug () { //Z axis translate([-ZOffset/2, BackOffset, 0]) threadedRod(RodLength + 20); + //translate([-ZOffset/2, BackOffset, -((RodLength + 20)/2)-8]) lensAssemblyThreadedKnob(); + translate([-ZOffset/2, BackOffset, -((RodLength + 20)/2)+31]) lensAssemblyThreadedCollar(); translate([ZOffset/2, BackOffset, 0]) linearMotionRod(RodLength); translate([0, BackOffset, -70]) lensAssemblyBaseZ(); } -PART = "lens_assembly_base_z"; +PART = "lens_assembly_linear_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); @@ -290,6 +311,8 @@ if (PART == "lens_assembly_bellows_board") { lensAssemblyLinearZ(); } else if (PART == "lens_assembly_base_z") { lensAssemblyBaseZ(); +} else if (PART == "lens_assembly_top_z") { + lensAssemblyTopZ(); } else if (PART == "lens_assembly_threaded_knob") { lensAssemblyThreadedKnob(); } else if (PART == "lens_assembly_threaded_collar") { -- 2.40.1 From c600fea4e105eaa5032a51acfd55057d2b03ca74 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 12 Jan 2023 19:26:05 -0500 Subject: [PATCH 79/89] Start rails concept --- scad/jk_rails.scad | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 scad/jk_rails.scad diff --git a/scad/jk_rails.scad b/scad/jk_rails.scad new file mode 100644 index 0000000..f523272 --- /dev/null +++ b/scad/jk_rails.scad @@ -0,0 +1,45 @@ +include <./common.scad>; + +RAIL_SPACING = 100; +RAIL_H = 70; +RAIL_LEN = 400; +RAIL_D=25.4; + +module rail (H = 100) { + cylinder(r = R(RAIL_D), h = H, center = true, $fn = 60); +} + +module rails () { + translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) rail(RAIL_LEN); + translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) rail(RAIL_LEN); +} + +module end () { + L = 50; + T = 20; + translate ([0, -L / 2, 0]) { + difference () { + union () { + translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) { + cylinder(r = R(35), h = L, center = true, $fn = 60); + } + translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) { + cylinder(r = R(35), h = L, center = true, $fn = 60); + } + translate([0, 0, RAIL_H + (35 / 2) - (T / 2)]) cube([RAIL_SPACING, L, T], center = true); + translate([RAIL_SPACING/2 - (5 / 2), 5, RAIL_H / 2]) cube([40, 40, RAIL_H], center = true); + translate([-RAIL_SPACING/2 + (5 / 2), 5, RAIL_H / 2]) cube([40, 40, RAIL_H], center = true); + } + translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) { + rail(L + 1); + } + translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) { + rail(L + 1); + } + } + } +} + + +//color("blue") rails(); +translate([0, RAIL_LEN / 2, 0]) end(); \ No newline at end of file -- 2.40.1 From 0b816ae8e114f55d593bfda7c41a96ad6105ceba Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 14 Jan 2023 15:25:53 -0500 Subject: [PATCH 80/89] Adjust the position of the Z axis, move the linear bearing up and down to prevent binding on motion --- scad/jk_lens_assembly.scad | 45 ++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 0d6b09e..4ee8941 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -27,7 +27,7 @@ ZOffset = 120; XOffset = 38; XWidth = 50; FrontOffset = 0; -BackOffset = 10; +BackOffset = 15; LinearMotionX = 22; LinearMotionY = 20; @@ -127,6 +127,10 @@ module lensAssemblyBellowsBoard () { } } +module topLinearAttachmentBlock () { + cube([LinearMotionX, LinearMotionY + 2, LinearMotionZ], center = true); +} + module lensAssemblyThreadedZ () { Z = 90; difference () { @@ -134,7 +138,7 @@ module lensAssemblyThreadedZ () { //main cylinder rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); //top linear motion rod attachment block - translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX, LinearMotionY, LinearMotionZ], center = true); + translate([0, -BackOffset, (Z/2) - (LinearMotionZ/2)]) topLinearAttachmentBlock(); //bottom threaded rod block translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); } @@ -143,8 +147,6 @@ module lensAssemblyThreadedZ () { threadedRod(Z + 20, 0.5); //board nut void translate([0, -10, 0]) rotate([0, 90, 0]) cylinder(r = R(12), h = 30, center = true, $fn = 40); - //board void - translate([8, -BackOffset, 0]) cube([8, 7, 52], center = true); //T nuts //top translate([0, 0, (Z / 2) - 4]) rotate([180, 0, 0]) TNut(0.3, 0.3); @@ -169,13 +171,13 @@ module lensAssemblyThreadedZ () { //------ //top linear motion rod voids //top gap to close - translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); + translate([0, -(LinearMotionY/2) - 9, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); //rod - translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); + translate([0, -BackOffset, (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); //m4 bolt top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); + translate([0, -BackOffset - 8 + 2, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); //m4 nut top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); + translate([0, -BackOffset - 8 + 2, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //------ //bottom threaded rod void translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(22 + 1, 0.5); @@ -186,41 +188,36 @@ module lensAssemblyThreadedZ () { module lensAssemblyLinearZ () { Z = 90; - ZLinearBearing = 31; difference () { union () { //main cylinder rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); //top - translate([0, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) cube([LinearMotionX, LinearMotionY, LinearMotionZ], center = true); + translate([0, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) topLinearAttachmentBlock(); //bottom translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); } //x linear motion rod void translate([9, -BackOffset, (Z / 2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) linearMotionRod(50, 0.3); - //board void - translate([-8, -BackOffset, -5]) cube([8, 7, 52], center = true); //z linear motion rod linearMotionRod(250, 0.6); //top gap to close - translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); + translate([0, -(LinearMotionY/2) - 9, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); //m4 bolt top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); + translate([0, -BackOffset - 8 + 2, (Z/2) - (LinearMotionZ/2)]) m4Bolt(LinearMotionZ + 1); //m4 nut top - translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); + translate([0, -BackOffset - 8 + 2, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); //flatten bottom translate([0, -BackOffset, -(Z / 2) - 11]) cube([23, 22, 22], center = true); //z linear bearing - translate([0, 0, -(Z / 2) + ZLinearBearing]) { + translate([0, 0, -(Z / 2) + (LinearBearingHeight / 2) - 2 ]) { linearBearing(0.25, 0.3); - translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter + 0.25, LinearBearingHeight + 0.3], center = true); } //z linear bearing - translate([0, 0, -(Z / 2) + ZLinearBearing + 32]) { + translate([0, 0, (Z / 2) - (LinearBearingHeight / 2) + 2]) { linearBearing(0.25, 0.3); - translate([LinearBearingOuterDiameter / 2, 0, 0]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter + 0.25, LinearBearingHeight + 0.3], center = true); } //x threaded rod translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(50, 0.5); @@ -272,11 +269,11 @@ module debug () { translate([-ZOffset/2, BackOffset, 0]) lensAssemblyThreadedZ(); translate([ZOffset/2, BackOffset, 0]) lensAssemblyLinearZ(); - translate([ZOffset/2, 10, 18]) color("green") linearBearing(); - translate([ZOffset/2, 10, -14]) color("green") linearBearing(); + translate([ZOffset/2, BackOffset, (90 / 2) - (LinearBearingHeight / 2) + 2]) color("green") linearBearing(); + translate([ZOffset/2, BackOffset, -(90 / 2) + (LinearBearingHeight / 2) - 2]) color("green") linearBearing(); - translate([-ZOffset/2, 10, 40]) rotate([180, 0, 0]) TNut(); - translate([-ZOffset/2, 10, -40]) TNut(); + translate([-ZOffset/2, BackOffset, 40]) rotate([180, 0, 0]) TNut(); + translate([-ZOffset/2, BackOffset, -40]) TNut(); //X axis translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); @@ -301,7 +298,7 @@ module debug () { translate([0, BackOffset, -70]) lensAssemblyBaseZ(); } -PART = "lens_assembly_linear_z"; +PART = "lens_assembly_threaded_z"; if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); -- 2.40.1 From 682167db4807851f2acad1a0e313b714c49d90d8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 15 Jan 2023 10:09:55 -0500 Subject: [PATCH 81/89] Add new commands for takeup forward and takeup backward --- data/cfg.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data/cfg.json b/data/cfg.json index ce87033..69aeaa4 100644 --- a/data/cfg.json +++ b/data/cfg.json @@ -184,7 +184,9 @@ "camera_capper_projector_identifier": "9", "camera_capper_projectors_identifier": "0", "capper_on": "A", - "capper_off": "B" + "capper_off": "B", + "takeup_forward" : "D", + "takeup_backward" : "E" } } } -- 2.40.1 From ab6f517d272df48c7ac8f66f4b45292e955bdb14 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 17 Jan 2023 12:04:03 -0500 Subject: [PATCH 82/89] Rails work --- scad/jk_rails.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scad/jk_rails.scad b/scad/jk_rails.scad index f523272..a20c109 100644 --- a/scad/jk_rails.scad +++ b/scad/jk_rails.scad @@ -41,5 +41,5 @@ module end () { } -//color("blue") rails(); +color("blue") rails(); translate([0, RAIL_LEN / 2, 0]) end(); \ No newline at end of file -- 2.40.1 From cc06655cd6732995272fe8dbfb5c972629dbd7d8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Mon, 23 Jan 2023 00:28:26 -0500 Subject: [PATCH 83/89] Update debug --- scad/jk_lens_assembly.scad | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 4ee8941..e4a3d53 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -296,6 +296,14 @@ module debug () { translate([ZOffset/2, BackOffset, 0]) linearMotionRod(RodLength); translate([0, BackOffset, -70]) lensAssemblyBaseZ(); + + translate([0, 130, 0]) rotate([90, 0, 0]) bellows_camera_board(); + translate([0, 130/2, 0]) color("blue") { + difference () { + cube([70, 130-10, 70], center = true); + cube([40, 130 + 1, 40], center = true); + } + } } PART = "lens_assembly_threaded_z"; -- 2.40.1 From 99794d04c22dc2b00bd95ef1de57afed682706c3 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Tue, 31 Jan 2023 11:52:10 -0500 Subject: [PATCH 84/89] jk assembly and arri-s wip --- scad/arri_s.scad | 6 +++--- scad/jk_lens_assembly.scad | 6 ++++-- stl/jk_lens_assembly_bellows_board.stl | Bin 413084 -> 399084 bytes stl/jk_lens_assembly_camera_bellows_board.stl | Bin 0 -> 256484 bytes 4 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 stl/jk_lens_assembly_camera_bellows_board.stl diff --git a/scad/arri_s.scad b/scad/arri_s.scad index b4de592..deb473c 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -16,7 +16,7 @@ CapThickness = 3; CapCatchDiameter = 38; CapCatchLength = 2; -CapCatchOffset = 15; +CapCatchOffset = 15 + 1; CapRimDiameter = 46.5; CapRimThickness = 3; @@ -465,7 +465,7 @@ module driveCouplingDCConnector () { -PART2 = "bellows_camera_board"; +PART2 = "bellows_camera_board_adapter"; if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); @@ -481,7 +481,7 @@ if (PART2 == "drive_coupling_DC_connector") { rotate([180, 0, 0]) animationMotorCap(); } else if (PART2 == "drive_coupling") { driveCoupling(); -} else if (PART2 == "bellows_camera_board") { +} else if (PART2 == "bellows_camera_board_adapter") { bodyCapBellowsAdapter(); } else if (PART2 == "bellows_camera_board") { bellows_camera_board(); diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 4ee8941..76ca1f6 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -298,9 +298,11 @@ module debug () { translate([0, BackOffset, -70]) lensAssemblyBaseZ(); } -PART = "lens_assembly_threaded_z"; +PART = "lens_assembly_camera_bellows_board"; -if (PART == "lens_assembly_bellows_board") { +if (PART == "lens_assembly_camera_bellows_board") { + bellows_camera_board(); +} else if (PART == "lens_assembly_bellows_board") { lensAssemblyBellowsBoard(); } else if (PART == "lens_assembly_threaded_z") { lensAssemblyThreadedZ(); diff --git a/stl/jk_lens_assembly_bellows_board.stl b/stl/jk_lens_assembly_bellows_board.stl index 2b7fc6c221d64a4f01d7143652113d76749ac25d..2d77dfd64420cd3083457cd22502b22a5b9ac5bf 100644 GIT binary patch delta 33673 zcmaJ~349bq)}KjcdIA{|;skO*CJ-QKz;Gi+GSeWiSwTTvPXttSMRb+V3m0Spy56f| zxfXbU(OrdAITA6VCX*RgcU(n4?n^+x3tSFG1!4W(tFG7mCI|ETL29br|Gocvb#!%C zP4x@U=N)=8_o?wIy@Dc~nm2!XDD&q3Y=~XnWqZu!3OBl3N5ourPQj0bTViWI-3)p7 zITDK>tjF@O%XL_lA2_->w)4d1*ovY3qfKP7JhK1h&9PloTVh3fYNA{gba@6we}aF5 zUyuWs=Ehl%Zi6?TGj^}D4 z^FIFYZ4TkCGI;G?w{W}BvyPp@+#N)66TqVDGF$_;M-fwY?wIn zr5I5_^g8VL#={ZjV&tc6{L-5(W_#MEQI6O%q)@Er?W?Wzl%-@+wd>N_qs9kWsgPM) zmn%9&=Dp@BZzUR0mn*><2(%H`KX*r>fT-sPF2%!!@-A1mU2~$d-)}5uB~ccth%!R0 z%z~hixj>6U(1;_|l$JJ9&k#^kHX_6fLOy=9jrvGah|?h)xCQCCZFbb(r>KG{i?S+g zM1#~FECl(^5y?`C2=fX-+DHR~C{MKF5HlD~GE(0Zp`(?Awh*sxx;GlSc5(&kicoiC zEvpeZQoaR2TJ6AhX1H(87Gm9|yQ2HIJW;{P zQzx)Sx`aJ?Scs+IdjE$fFm!$*Y;^4h&BGJn~ zE2_sjbh*xtV~9)O+%t6bn#sy<1#I%X(ZFA`(O6~OZ=a=^4paBn-$5(V4 z&_n^!*TkL}StzPT0DBk~Fp-(FiKa481(--`%v=?(ZcJXz?QwP3ipCl)WUWK3aKM+o(4!r-tI2$6O{VYkTjcSk)ZA61?>1QM}R z7mR=wfzv&xmv<}keY#NWs4TV9{l_}#8^#6=ZGO@Pg`)9y4&-Afx*P0_Iw_vIps-8r zRx^J7<5vQG{8$B#DrVY7ZSQeI+`i`)-Wux}=_w{0%}FOVkSCtJu)wQWi{%#vk(&7C zLjUAvUJb`5z4c(Yc}y)5-w1Y-UEg(d}_|D?h$r-thWFj_pKq!7{ z&0=L!G+vwU(}m*o38i*=7fWYe?Bts)eFsbbgQd5ybel^Y?66CM##ys(iavFf2#+u9 z;_yKBR>5ZFFA-XNiDDmcBonc250uBJ9;_4QrNK;|zsfgQteg_4L|y;8dUAAFuaim_ zlQDT(>j|TLiwLp$^1|A0FYTTpHea5QpB_x{w{fiJTv_TPCY4tPjm#aFMl*(rSFb4S z@~;KM;#FUL7FK#)RzZg902)yH=9N#T_y^rJB;Nk{{UDZzN&k_QTrp*0Pw!)GE2D?R zUnd5KIOV8F<2-y*bjtJ z&0vky6@e=!OG1Ym#V-p{wx>?)5*uc)bu*puu}}YBN)*>Lb&mB-Mr8+Tc+czE}x6*x{i`2eWW2sH_y5-x>ljc!mT$cBYzs~Zds_E*mgj#{w#h$YOJSOLgSdF@ zkD0kng(hN;Z|)f%|6Etqmt@gCZ!QeR)Tm4E2@Y1x;OfbW1;eq%k}#coWc0vQn;SZc z^gjnLcXUH`)s5HR9jZNPUD+uzJQ|q(^v2ToH>*F^5o-k@=Ki_BeWQ5s&p{qd9gj^c zf;?(GO>siDuByu3w})=h69Tf&xnTN>t>?totvjK4*@z4XI)jMavkKgm;@4RgF115x4ZF}-o>+3{|VoufTz1tD&`FX$dC zp1iL>RlU{~PV!z6qY`GNxhqwtw_h6SG1QtwkbTYt(H9?+~#!rXQq%ze=Y(;FkH=6-Ax zWe;=+C1N#8y2cmvcue^~X^Z#9AsL~8FfT`)Tn|Yh?+FhCO5TOL1(czDOdlH2CI0BN z`AVx!i|WY%vFL$wn#m(KF0b{V{8^6oiCFfRh4IQwBK%;H9jaUZQXoE^*M0~WyZE|J z@iC8Nss3@6r*r&0fiq(KsG!2t2?&5ZE1Ot|d-dg^|m76ODh{F#S zq@t_s9=fAc<-i?SQx_lnEEqrb(X&bJnh$r*O2pQVD~wMW^t>v8wAj5kM;v+RmP~Y- zm4WsGLpyln;X?7oQyIAqnMCY^I|||jca*=8U?04>5 z@x{{_;@zj0)%JO2iq|*%@oaQcxEBTjN)9HW2zR-1VW8%FZkW^o=8Df=4Eqjs&Vshp zTZ~yWQl7fR?H7|4`^9;SFFb4F+M;rJx};cG>cqN5!IY|L;-SUGa>Z%D|Mw-MHnBLx z?bk{y7CZk3MMc%!WbSX?46)*6qxSvk6n7?h@Xb z(%RL3@9s|5Ur?)@HOZYP*8L+RefS^S#@Ad|qB6^_a_7|!cs0%KRk`Ah*QSe8@8ydp zmiUEd$<#pD@Zi0Rq9sz?cuS>fAIg37y?RM3z;wp$JlluUMJ4y{QooPBuUUFcK&O>H zty^R*4TyRF9PPnoEuZ?@lPmWBvuDotFp5ovCqP(*eQUC)BZ%VH%g#p0Klg2KcN;3l zmgB0LR(GWQJ*(}=YumYV#Ld-yY{*s1J{(igD7L*G3^;K?1oX^?0iyg3>jIEnpP_~y zEYW4U*K(62#i>|`(%vT<-WAnv6kLR57hc{@4Uw!&4|!YzNg;yr6~f|dbxaw}aOZTW zi6xP*x&@}o|0kY*Gnnbr0YW#5`O7-AOT?~9@vE^OREvw2l@#b&Q#C+k7CA%&Or${h z%^iSiMU<`;B!x9}Nn=}eokJ_Tmlr&}+#leEri?xngQpAFB%o-5{;D_-(&EsPeq=#X zoSlV$>uvNIam{jTpq;h6B*3)~-}X}so{^y82F;5&Xl2J>nx3(cGK>IAi&@JHL{W`joLpIf%e>;K z(Ls!_$+(`Dl2CqYl`na=7p3_jm2fFc|8I_u&8cC2*b+j-Y9f^|fKdFk0%WPGJ-a-n!Wf^X!U_!nZ1@M&R(Ob4Jnq5V7Z;V0!K6UUp{(_e0SZ5Muc% zydPS-%4$2`uPRADw(*D9!zTMCp`D01Lg<1HkGg--l&qPR6+}#n?^hLwDeqiS3HPs2y5A?7oHC{dEcCGF z5Un7Ddo|wfcV2DvyU^;A^e-xZj#*Dv6JqVVXwNr7^>>FZ+?d-!NL|N9QP*_Ta{-oC z^>}2pU;JnFoJx3(5T(Z`M3Ym-^ntTI?7>qj2r>U%e2ntuyB7Vm@0O%@OFJ1`F>D$# zmPd=BcND$b#vKxq;+^Czzoz){YmsutaUl`=`@epP!I~B1SoK?8%*yQI{+yKhabM7T)N2nbxHEX$0D~9LcE9 zNT25aH3rLs%DcJU!8^zled4*(T`nCWRSBer1yWTA`J>#dQXN{~IJ1eA$tFRjlMk4x zJK+Jyf5ol!L3?tAPwro8@QK~^UQts&K1k0g$zL85NQ*8Ffj|o~VoXC2vFaHhd5-<1 zc4;a-l9kHgMGYD0X`lQWn=<@(1=ev^2}A)h#s6Zt-CZttc4kMD^e_%iG*3m_i1g@$ z2s|i_!n0uYI93~LKmboaw=fkSMd(j!2uCUrbJ7UX2<03(gwBCfno^}j1xq0X3{V`lx#2fu}YyIu@_b^uDvqz4` zM0iq1F?4NP;a}HN{AXRRnrR$Zw>rQDZ<2dsu(~Q%t`GVs-RARA5yeF>VXVW1LMk`xu zzKFqUwAd?Q_O!9BkG@~KahmdV&BoPsUgmc}@x>;;vGBs3vGX4nM>d`Bb5%jDh7O7K zn}aN_NR09W;<_C@#7kSO(7m^1HNoH5`hrjIMiQ~gfatT$pUHP8;hgTiZ6As|w^xjD zRTV+gJPu71IkO5hdD^KHB+vpv4B4wzm&LMOKJm!TET7(~B&v4?1I|t`d)JcKuya+w zchioTwO!QSEvA~wvR!@~AKNv}PWS!dYdam>J=mwWb%~>9K-|9DA8_{0Ir^U5y^8FI z(L=&ik4B77g!XuCJ@@SyndYj3_3qHHUSiVT!XZv|qT5!1wGi$EBw;#Ii5NA~mFu&` zuY1!2KM&ZC1FyQq=>2qx?#aFWZ2djTXhp@?FAK$aUp`B|s9GW5-YlV06d+g++;_B}@7dfp7)#?(w;>C2Y zI`!Ro0euStmYt?J_pWSl_QCXk?jov;ny-1NAn@#|yx1FSp0b-NcAx4)!P;jIzU<9q z_e3VY^AS}?^K+;WteKRCtBZ&nEx;i_R{y~h@Twv?A>AABAuGriYmb(xA;Nvk`rBXs zy+Qw#`tQg3@2~oA?;kAr$@=en{r3a?_qhIB@}nhprT+Vv{#&pA9@c-m9Jk~y(SQG< z|JLch-|D{wKUs3)^xug7yHfw%r~h{NS;^Io`FZ38*3+RQ-+6Q8))DRu`PK;c?^3S{ zUL}7U;qIX3lHEV(6yLmJ5zgc5ibuLvr>G~d=978ymr?HFO5~?L1@Vo2s+Gvd(eBQv zC?fk-x{FnD!@|7yO*Jp8;=fh8Q&Z%mAH8km%NMviTIR?9=*`Vr6k~Ew%enD>{a;a- z?=NsKc8jqK+RDT@x4+$@*oYfDl0s3wAP=BSoR`+^9Y<{36EvH)YqN>0c=GwYy0H`7 zpDUkamrJ$Cj^P2@iB*^GVl zQqOpwf!C>+w2mMtKu=9tux}BfZWj1*vxdWH+6pa&ASp1SJXOKu>*S1uJPe^|Ch*%i zJ>y66mqbxRm(*kdWr7xEQDCJfC1)HY$R8!3H6-zA&RVNMJ27Tcl;3D^VrFO&8Z|m5 z`N}j?5Nmv>B;Gi3R|~bl5hMjF#qOz=Nm{u^N^I#@M!-uICoZ5BBy-}+(#%5a=sP{2 zC!{qt4+BS#6mrVCA*WLl9`?E~=F4U6QaUP9j49c{u|~00b;B2!nTgoe#_sVYdx9;H z;s}yLQk}22;y|mTNQBll(PXBf1H}cj0>#NRQUZ|)6ECYrBy}`QvkqudJ_gHG)%Vp% z2oU8>5VjQLo75Q27a_BDq1{3Je?e^ZKLlAO@H74t~bibLpowoZ?TND1|cb=OX(zp ziX$UWQpyp^w-7p73Xw}ijF*DQhLn_!s>SLy)rh89`%7BiPaZW{E95KhPK%^%0!>uP z(`mZNa)EPR?iSzg8ie*`S(_FFhNN_Z{v1{U*MdNMRLeA&;;9Ss#l)j&k){OuN#T(FeZDE?m6f3H&AxH`kk)+|!<U= zA*eHlja2kj#BOJmJBn1e0v~5b@51?0Z*FuWB7Qz9BOsK15 zvbPLjOKCsk{9+iE;0td$Nt-Ejg9szrk^;YZlcnVl>sg7LC-+tKI3nDj3#M} zu$WEp4h*$~ASv{V(iXxCh`sQ0%_bgG)eTneQ)6u&Fe*VRJT2QBdVFqWzfO!iwRGk~ zEuZznXhnm!2a*E)vOH6_U?yPlG!ZzXN|URs29*(Xopuain(qLDCsgt5C#Q!|WpWGV z2$DiHskcZhf{yI1y-fK|sDMT{42kxzMJE z3*zVc{t~u~Z@B+~ivNzjN73a7k^;0z=`$j1DL}~BS-S0V!|a(vjH^s;yHtX-IpUj- z^5Ub-hcxY%V3OMvemRR$96?f$f0IdHEZ(g^Y$<@)J|H5Q7N^3WihvC{w}WmWWDr?# zA!}pS!lP)Xo^J+wK=LnKQB9ykMw}P;x03j!2>k+7_Vg1Y|##JW!MkPoa(;5NK zVypp(m$L^wvD_gYS(O0EdUA^+NDAGewCz?)2wMse{cIl*l1!UZVULjHeI0b;BWvgv z6Nr`Glg)Ynw2KC6N*qB_$eYp@?^Y1D6d>HDoYNttW2C8R_8cpTMzUvQ4$&OZGkTU9 zbu1dtbsMPbas){Mda6lZ&Iqxk0AhQAh-6xv3VWs|+vVt{N5+sh6R>x%StMY*YoHO5 zBfjjAMWer*0V*#m@F;p3v{elrmY5m@-PW#?utmyP+Rpt4+Xk(f@>?8VM5#tIo@ayONF_5 zFMVgm5j;&M&WzAf>H$iuMTokHYsG3ZsHN6wFkPsrG=)NJ|WA3R3gi9dKA@+ciymwE#7;eVw1WyMtOT=+ z(%k^~_-@b7)()u&cX+bvwmj|m(5vw7nOd%{VS#6&;$7GIMNhioQ&;+mXM>e;|I;(e zDvd0o)ae>Z&8qXfX_c0~?WZ3^p04 zA!pN!bBII}gj~ALQ#_rK)Ig5(JCIO?_3D5AAtt4~+yLn+W3+XhC6&={c$)_XG3nV<}<*HI!S7y-3OUmX#` zbcG--Ki=Re##=8^ikU=1g>mnC9Uuw>3efs5rfJWTWrq$HffCvKa~&X}g5qo&kiF84 z(BuGd1YaAcU@2qv*&vJt>;g&GdpQ9<2o(^67^oFhjN+GV4s1b>sH&LBY; zsX+g^3QAkn=@brzP+ralFF6y{47d}t6RKITDpwO6lE2N-kWu8 zasj@TfOcP5c33>+y_O|+ud;v10^)|;wW zElkFWhFJH*rwD^)qP1*Lg}2!Z1v zOUq$9J()S`L>Bn{G?F0|$ne^ox`nVzZci@WsiVLJ*!BgvekaUWwDa=dPN-RCOLpGn zDaoP3RnR!wS0b<8rNhHAleR|C-UD{S1Eo*n{7;rTNMPb_g&`gb-+ttXE-S&7osz8t& zVmO{Q7g+e=@az8x@Y7?i8EMSgqiJw81Vv%m`p`^`+^|Onf<#c9LuoI9%LP9c=np>@ zsK6f!aHYtg{7X+kIvmMSfk$#+#wK zCLq20JjKdL={`>xEIIqT`x>P{y+xvzS3=y zL6R2nX{o-sK`KFmY;oPB^?KNCdiF%@9qOkvD8&(u)FS!suXLN-3v5&?;riGDxJe85 z&Dn4SNr6py&DS(la}LB|Y7#7sO6dq4gf9JB_mE&OBS#*CQ+6Wg1?R(7y-ix2Z_bS) zND4I(PeeG!=I|0s69RA69{C1t)?nmq&?B#WPwfz1YPmUT+xd2 zop@o|kxH;MVi-csM@pj)delCiq!nkrEKcjnh)x~@sRS)@1TCkwicn)KTd0hfwDxI3 zFyTVQZ1LEZ!h8yf5_GAR}`5ZV{s5#@8DGF86Nts5L~sm}|0?VLNKJT1=?evMM0H$^@a6pi3QD zq;Cu;>gb_UX9@Z1e|5Lg>>7CpAT8Y>pd!o#Xmt~XX$=!?COgj^X3K{rEic*#MHh8( z1W7@D58Fv4X&>x^5ON06(mdwLYX?6i#-o}nzvaIF>Jg1-B8JhIy$|aEZ~?ZGDS5*wd3-lt3eVZj4IWUqv}X0TuF5w*$@1B&l zR9OF4sQ_{W{#g6Iqn;dmexZ)0LK}<0MpDN5qx#ODdb6cYW0X?rQHakx2A2jpR0=Z& z9@CABf{Vmi&}HP9Zd_b|*6C2g$|eG;646M&@wsqe=JEYSi;6 zZu9U!-Bh>$TS$ayv9rdfTAvCF`o@^qQkYLmYps&N=VrDPI*xv+>pdA`0_w?D=8r81 z(6SwBFn@$we|jW$^^cxXbyydwacVO`eNPQ*)a{i!_GwfMfn%ur1t4nl@~1Qx;_#R=*} zs(I27U>VdZRE@I%NM4Nw85=qGCoo7SPNBitrWx=uH*58WnzLnrj$lGg)R__A`4_Oj z%*)E3!2&#d$D@i=&}KnKCCi|Ot5y(L^E4@K8Po{n5)DXb@Zis2kg<_jzrYh(TDuy_ zzg+Z-c7@uwrJ0T$LRVOal5d^>&CIOa_6xW|M*3(!Mg^6+trz+uM z79mt*cAtP-D&)i%$!f4cM%D7yh7+FRx-UNQeBo9LtI;){d+L5V;rU3dv(`m_qZQKI zJl;cw%zVYuMn0SF&9F|Zs9T!uea0i6%uSP{+Iutg5f=BPdxLeO+k3ZeY*YMH$pCc# zwJbT{4a%7ZykR-M!tHV2E$a_>JIg)$y`5ywue?3RJICgqYKf^6L$6NREePGaoPt`=Z?`Ln9HZ`U`xmKEA zdjoYB|Ki>3>E|3dYZn750sqt?xGL=&c#GQP<8ThGKJB*dpQpXs(=ZxU&LOHbCOdbQ zY$`=gzEU*aXXO5EiqS(p;WK&+R)?*sgG*~n=fu)Pk}@YB6{wR;%< zviCr7()*?KORT`fgsmOTX0!K0ne<8~8O}89H%iG+J20iiOd~+=b&|hkf=Vjs&%g9;&r0AY+g;@+esGdxC$r+Z`R$Er zx14&GktNduMw?9b>Ll}mU(S<#e@M-j>7$G`L0;l=ofn^S<41~|e$9|{2Y?)Xi3E(& zZ2kfwcwtez{qYY%@<_nwpiKFlcM>H`dEt+#9pwwhQ!^kYxJnCo zemRh`Ez>$c6JC)G-2qa$^5PCget^9gh!%BZ^$t%*Ir*5!*CpwVLVOv+)UVo+u?i#G zuwE!6hjoN1;_u+0MG9o1-^U~824N@2f{w=2x^r`kxSQSwB+t$>N(0VIdlIxXA+OCh zg7U#UCm?m*#afrs^}&Wnr;Vtf1-6aGsEzk9c$BqGF?c0n0VT zy8QU(x#~4SIC9Gw?c5z?`))=?-JxRRZMPn|<@WBNa=G8*OQQi^zTCs0Q_bZ@NXwgh zK!Z5HhjGQ*CC1%u+1~HYm5n_OLq5~f7;Sw$*3+0H|I`i&#-9TPjb|G(Wp*DUKlj$M z4mJ&E)P;tsgugn+$dK`KjN4H-OYX{W`{c4xP%y6)G>^tSj8tIRivc>_o`z(Z*$1MN z-OHHm$jP1fwf!czw%y*_$nfdGRGNK^j`I25#wBz(rJUazYE7R}C=1Rt1}oIFWdPFW zTFRB@LQ~+!7*au(GH6GO`a!*}JJ;~Y7s`yZbapVN%-jTzyAz;_pFvK;vDL7r^f7X6 z^Qx&ojXCz6`8#uHreUPB!#~N?g#_=%=PZ zYx)|CZ5^uooqopelXEWY4~U-qjoXv6Yx*0rlXKn}0D_keFkVj19xR{t!fE~n2CmyQUNI>`l&Z&(oKW$`6iC);E3_$o+!C^FknuU+LUrxn?NzX?;eZoKOK3@cJ;Q0DUl?tR4m} ziN5R&L7Ut&-0-DEvD)x%`my20Fga-yXoY+~KRD4ORNrzVsA}bsa*%xrWtWs2{`UMR zI6Pra_6dOX?NFqozXfSJSW#WlSCo94ic2ZMjC}_>ShMNogQHfOV!!MK7HVyd~B3a zBqQe=={|jopX@RkDs|RKqXQlJC?}r}BaikhgzbnTK4Tj-Dj2}C3}HG6 zpM*)wagHU!qoFaeL;utfeX?qfC;O6w>6|8L+X7ZPB0LHLO2yo{ZxtYAJgGDIW1o0xoS zM0ppzgE$G1ETtk7QSV|;f+*fjpqv0Qc-TVF8-*Dye6cf8!B-%eXD@IG!bsABDM%H1I8nd#Y|Er2N zMc@b`m%%oE*=wB9CIVWR{y|K-N$cZ-!*O7A3>fWNn=*)ZBhH9bIoM!`w;3WFVPath z$Fz2P#gYg5GbvDJQ)y(i0gZ$qY8fKTq@d1hG}?%Ok)OenpRPT(KNCY`G#ECr+R#Qc zqLv{-Osc67?Z|oWSN3C4%EmxF;x_W?cRT?|4TFTVl#GpqsRp`>OkD7xg0IIKtNtHQ CsZ0+5 delta 45836 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 F^&ee|LvR29 literal 0 HcmV?d00001 -- 2.40.1 From d0fe54b4297c80413efa7ec15bd3a6f7200fe37e Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 2 Feb 2023 19:48:08 -0500 Subject: [PATCH 85/89] Add m5 nut to the common lib --- scad/common.scad | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/scad/common.scad b/scad/common.scad index 2761310..02f1ece 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -34,6 +34,10 @@ module trap_cube(height = 19, top_x = 30, top_y = 34, bottom_x = 45, bottom_y = echo("common.scad - R()"); function R (diameter) = diameter / 2.0; +module hex (diag = 10, h = 1) { + cylinder(r = diag / 2, h = h, center = true, $fn = 6); +} + echo("common.scad - m3_nut"); module m3_nut (H = 5) { cylinder(r=R(6.6), h=H, center=true, $fn=6); @@ -45,6 +49,11 @@ module m4_nut (H = 5, DIAG = 8.1) { hex(diag = DIAG, h = H); } +echo("common.scad - m5_nut"); +module m5_nut (H = 5, DIAG = 9.1) { + hex(diag = DIAG, h = H); +} + module opto_endstop(){ difference(){ union(){ @@ -73,14 +82,10 @@ module optoswitch() { color("gray")translate([6.63,0,0]) cube([4.45,11.3,6.3]); color("gray")translate([13.63,0,0]) cube([4.45,11.3,6.3]); } - for ( hole = [2.75,24.5-2.75] ){ + for ( hole = [2.75,24.5-2.75] ){ rotate([90,0,0]) translate([hole,6.4/2,-4]) cylinder(r=1.5, h=4.5,$fn=40); - } - } - } - - module hex (diag = 10, h = 1) { - cylinder(r = diag / 2, h = h, center = true, $fn = 6); + } + } } module NEMA17_motor_shaft (L = 22.75) { -- 2.40.1 From 49464cd25a0c19c8f2414c7b8b064a5d00faabc3 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Thu, 2 Feb 2023 19:48:30 -0500 Subject: [PATCH 86/89] Finished the design of the lens assembly base z attachment --- scad/jk_lens_assembly.scad | 49 +++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 2083491..bfe5e54 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -224,13 +224,56 @@ module lensAssemblyLinearZ () { } } +module m5_nut_bolt () { + cylinder(r = R(4.95), h = 30, center = true, $fn = 30); + translate([0, 0, 20/2]) rotate([0, 0, 30]) m5_nut(); +} + module lensAssemblyBaseZ () { - difference () { - rounded_cube([150, 22, 22], d = 8, $fn = 30, center = true); + H = 22 + 12 + 12; + TOP_X = 74; + BOTTOM_X = 88; + Z_OFFSET = (12/2)+(22/2); + translate([0, 0, Z_OFFSET]) difference () { + translate([0, 6, -(24 / 2)]) cube([150, 45 + 12, H], center = true); translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); translate([-ZOffset/2, 0, 0]) threadedRod(50, 0.5); translate([ZOffset/2+10, 0, 3]) rotate([0, 90, 0]) m4BoltNut(20, -1); + //shelf void + translate([0, 12, -17]) cube([160 + 1, 45 + 0.1, 12], center = true); + //top corner voids + translate([(150 / 2) + (TOP_X / 2), 6 + (45 + 12) - 20, -(24 / 2) + 12]) cube([150, 45 + 12, H], center = true); + translate([-(150 / 2) - (TOP_X / 2), 6 + (45 + 12) - 20, -(24 / 2) + 12]) cube([150, 45 + 12, H], center = true); + //bottom voids + translate([(150 / 2) + (BOTTOM_X / 2), 6, -(24 / 2) - 22 - 12]) cube([150, 45 + 12 + 1, H], center = true); + translate([-(150 / 2) - (BOTTOM_X / 2), 6, -(24 / 2) - 22 - 12]) cube([150, 45 + 12 + 1, H], center = true); + + //bottom bolts + translate([25, 25, -18 - Z_OFFSET]) m5_nut_bolt(); + translate([-25, 25, -18 - Z_OFFSET]) m5_nut_bolt(); + translate([25, -5, -18 - Z_OFFSET]) m5_nut_bolt(); + translate([-25, -5, -18 - Z_OFFSET]) m5_nut_bolt(); + + //top bolts + translate([25, 25, 17.5 - Z_OFFSET]) { + rotate([180, 0, 0]) m5_nut_bolt(); + translate([0, 0, 10]) rotate([0, 0, 30]) cylinder(r = R(20), h = 20, center = true, $fn = 6); + } + translate([-25, 25, 17.5 - Z_OFFSET]) { + rotate([180, 0, 0]) m5_nut_bolt(); + translate([0, 0, 10]) rotate([0, 0, 30]) cylinder(r = R(20), h = 20, center = true, $fn = 6); + } + translate([25, -5, 17.5 - Z_OFFSET]) { + rotate([180, 0, 0]) m5_nut_bolt(); + translate([0, 0, 10]) rotate([0, 0, 30]) cylinder(r = R(20), h = 20, center = true, $fn = 6); + } + translate([-25, -5, 17.5 - Z_OFFSET]) { + rotate([180, 0, 0]) m5_nut_bolt(); + translate([0, 0, 10]) rotate([0, 0, 30]) cylinder(r = R(20), h = 20, center = true, $fn = 6); + } } + + //translate([0, 12, 0]) color("green") cube([160, 45, 12], center = true); } module lensAssemblyTopZ () { @@ -306,7 +349,7 @@ module debug () { } } -PART = "lens_assembly_camera_bellows_board"; +PART = "lens_assembly_base_z"; if (PART == "lens_assembly_camera_bellows_board") { bellows_camera_board(); -- 2.40.1 From 135540b2619e8e531a2f487f3db8fe2ee934b229 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Fri, 3 Feb 2023 20:08:18 -0500 Subject: [PATCH 87/89] Remove some material for the rails --- scad/jk_lens_assembly.scad | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index bfe5e54..0e8a35b 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -234,6 +234,8 @@ module lensAssemblyBaseZ () { TOP_X = 74; BOTTOM_X = 88; Z_OFFSET = (12/2)+(22/2); + RAILS = 160; + RAIL_D = 30; //with clearance translate([0, 0, Z_OFFSET]) difference () { translate([0, 6, -(24 / 2)]) cube([150, 45 + 12, H], center = true); translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); @@ -271,9 +273,17 @@ module lensAssemblyBaseZ () { rotate([180, 0, 0]) m5_nut_bolt(); translate([0, 0, 10]) rotate([0, 0, 30]) cylinder(r = R(20), h = 20, center = true, $fn = 6); } + + //rails void + translate([RAILS / 2, 0, -Z_OFFSET -6.5-5.75]) rotate([90, 0, 0]) cylinder(r = R(RAIL_D), h = 100, center = true, $fn = 80); + translate([-RAILS / 2, 0, -Z_OFFSET -6.5-5.75]) rotate([90, 0, 0]) cylinder(r = R(RAIL_D), h = 100, center = true, $fn = 80); } + //debug + //translate([0, 12, 0]) color("green") cube([160, 45, 12], center = true); + //translate([RAILS / 2, 0, -6.5-5.75]) rotate([90, 0, 0]) cylinder(r = R(RAIL_D), h = 100, center = true, $fn = 80); + //translate([-RAILS / 2, 0, -6.5-5.75]) rotate([90, 0, 0]) cylinder(r = R(RAIL_D), h = 100, center = true, $fn = 80); } module lensAssemblyTopZ () { -- 2.40.1 From 325837d93ea29d418339caa1d61c348310afc2f4 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 12 Feb 2023 14:10:44 -0500 Subject: [PATCH 88/89] Adjustment to allow space on the right side --- scad/jk_lens_assembly.scad | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 0e8a35b..bad1c83 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -236,6 +236,7 @@ module lensAssemblyBaseZ () { Z_OFFSET = (12/2)+(22/2); RAILS = 160; RAIL_D = 30; //with clearance + BOTTOM_CORNER_ADJUST_X = 4; translate([0, 0, Z_OFFSET]) difference () { translate([0, 6, -(24 / 2)]) cube([150, 45 + 12, H], center = true); translate([ZOffset/2, 0, 5]) linearMotionRod(22 + 1, 0.2); @@ -246,9 +247,11 @@ module lensAssemblyBaseZ () { //top corner voids translate([(150 / 2) + (TOP_X / 2), 6 + (45 + 12) - 20, -(24 / 2) + 12]) cube([150, 45 + 12, H], center = true); translate([-(150 / 2) - (TOP_X / 2), 6 + (45 + 12) - 20, -(24 / 2) + 12]) cube([150, 45 + 12, H], center = true); - //bottom voids + //bottom corner voids translate([(150 / 2) + (BOTTOM_X / 2), 6, -(24 / 2) - 22 - 12]) cube([150, 45 + 12 + 1, H], center = true); translate([-(150 / 2) - (BOTTOM_X / 2), 6, -(24 / 2) - 22 - 12]) cube([150, 45 + 12 + 1, H], center = true); + //additional corner off right side + translate([-(150 / 2) - (BOTTOM_X / 2) + BOTTOM_CORNER_ADJUST_X, 6, -(24 / 2) - 22 - 12]) cube([150, 45 + 12 + 1, H], center = true); //bottom bolts translate([25, 25, -18 - Z_OFFSET]) m5_nut_bolt(); -- 2.40.1 From cff558ef9aea1e9574a109b823512f015c96e71f Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 12 Feb 2023 14:14:03 -0500 Subject: [PATCH 89/89] Add 15mm to mount void for camera bolt --- scad/arri_s_mount.scad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scad/arri_s_mount.scad b/scad/arri_s_mount.scad index b5b1db5..73046eb 100644 --- a/scad/arri_s_mount.scad +++ b/scad/arri_s_mount.scad @@ -58,7 +58,7 @@ module mount () { bolts(boltD + .4, Z + 1); //inset translate([0, 0, (Z / 2) - (Z / 2) + 15]) bolts(20, Z); - camera_bolt(); + camera_bolt(35); wing_nuts(-(Z / 2) + 20.5); } } @@ -82,4 +82,5 @@ module center_fitting () { //base(); //translate([0, 0, (baseZ/2) + (Z/2) + 5]) mount(); //translate([0, 0, (baseZ/2) + Z + 9]) -center_fitting(); \ No newline at end of file +//center_fitting(); +mount(); \ No newline at end of file -- 2.40.1

F8nsOt*k&LNbseOr* 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 L$`X&AAR+l5R049N literal 0 HcmV?d00001 -- 2.40.1 From 0c2e39f0b29c8ba10c59da39c795ec8526b3af43 Mon Sep 17 00:00:00 2001 From: Matthew McWilliams Date: Fri, 23 Dec 2022 23:01:37 -0500 Subject: [PATCH 59/89] Arri bellows work --- scad/arri_s.scad | 57 ++++++++++++----------------------------------- scad/bellows.scad | 9 ++++++-- 2 files changed, 21 insertions(+), 45 deletions(-) diff --git a/scad/arri_s.scad b/scad/arri_s.scad index 8771d69..b4de592 100644 --- a/scad/arri_s.scad +++ b/scad/arri_s.scad @@ -2,6 +2,7 @@ include <./common.scad>; include <./takeup.scad>; +include <./bellows.scad>; BarrelDiameter = 45; BarrelLength = 52; @@ -95,7 +96,13 @@ module bodyCapBellowsAdapter () { difference () { bodyCap(); translate([0, 0, (CapLength / 2) + (CapRimThickness / 2)]) { - cube([CapDiameter - CapThickness - 12, CapDiameter - CapThickness - 12, CapRimThickness + 1], center = true); + cube([CapDiameter - CapThickness - 16, CapDiameter - CapThickness - 16, CapRimThickness + 1], center = true); + } + } + translate([0, 0, 16]) { + difference() { + cylinder(r = 37.9 / 2, h = 7, center = true); + cylinder(r = 30 / 2, h = 7 + 1, center = true); } } } @@ -163,7 +170,7 @@ module animationMotorBody () { translate([31/2, -31/2, boltZOffset]) boltSlot(); translate([-31/2, 31/2, boltZOffset]) boltSlot(); translate([-31/2, -31/2, -6]) boltSlot(); - // //cap m3s + //cap m3s rotate([0, 0, -60]) translate([14.5, 0, capM3OffsetZ]) { rotate([0, 90, 0]) { cylinder(r = R(3.25), h = 20, center = true, $fn = 40); @@ -246,7 +253,6 @@ module driveCoupling () { translate([-7.8+2, 0, 0]) cube([7.8, 7.8, 10+1], center = true); } } - } /** @@ -285,7 +291,6 @@ module animationMotorDCBodyPositive () { } } - //notch $fn = 50; rotate([0, 0, 35]) { @@ -296,8 +301,6 @@ module animationMotorDCBodyPositive () { } } } - - } module boltSlotDC () { @@ -352,8 +355,6 @@ module animationMotorDCBody () { } } } - - } module animationMotorDCCapPositive () { @@ -462,43 +463,9 @@ module driveCouplingDCConnector () { } } -//translate([0, 20, 0]) color("red") motorOriginal(); -//translate([0, -50, 0]) animationMotorDCBody(); -//translate([0, -50, 19.5]) animationMotorDCCap(); -/* -//bodyCapBellowsAdapter(); -//animationMotorBody(); -// -//bodyCap(); -color("red") translate([0, -8.75, -45-4]) rotate([180, 0, -90]) geared_motor(); - //color("blue") translate([-22, -10, -30.5]) microswitch(); -difference() { - animationMotorDCBody(); - translate([0, 50, 0]) cube([100, 100, 100], center = true); -} -translate([0, 0, 19.5]) difference() { - animationMotorDCCap(); - translate([0, 50, 0]) cube([100, 100, 100], center = true); -} -difference() { - translate([0, 0, -10]) color("blue") driveCouplingDC(); - translate([0, 50, 0]) cube([100, 100, 100], center = true); -} -//color("red") translate([0, -8.75, -45-4-3-3.5]) rotate([180, 0, -90]) geared_motor(); -translate([0, 0, 13.5]) driveCouplingDCConnector(); -translate([0, 0, -12]) color("blue") driveCouplingDC(); -//translate([0, 0, 19.5]) animationMotorDCCap(); -animationMotorDCBody(); -//translate([0, 0, -49.5]) color("green") rotate([0, 0, 90]) NEMA17(); -translate([0, 0, -8])driveCoupling(); -color("blue") translate([0, 0, 19.5]) difference() { - animationMotorCap(); - translate([0, 50, 0]) cube([100, 100, 100], center = true); -} -*/ -PART2 = "drive_coupling"; +PART2 = "bellows_camera_board"; if (PART2 == "drive_coupling_DC_connector") { driveCouplingDCConnector(); @@ -514,4 +481,8 @@ if (PART2 == "drive_coupling_DC_connector") { rotate([180, 0, 0]) animationMotorCap(); } else if (PART2 == "drive_coupling") { driveCoupling(); +} else if (PART2 == "bellows_camera_board") { + bodyCapBellowsAdapter(); +} else if (PART2 == "bellows_camera_board") { + bellows_camera_board(); } \ No newline at end of file diff --git a/scad/bellows.scad b/scad/bellows.scad index c3b5d45..62f6b20 100644 --- a/scad/bellows.scad +++ b/scad/bellows.scad @@ -53,5 +53,10 @@ module camera_mount () { } } -bellows_camera_board(); -//translate([0, 0, 9]) color("red") camera_mount(); \ No newline at end of file +PART = "camera_mount"; + +if (PART == "bellows_camera_board") { + bellows_camera_board(); +} else if (PART == "camera_mount") { + camera_mount(); +} \ No newline at end of file -- 2.40.1 From 30bd35e21d8fca98d9a2c27758ee930719358863 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 24 Dec 2022 01:54:57 -0500 Subject: [PATCH 60/89] Add an M4 nut to the common OpenSCAD lib --- scad/common.scad | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scad/common.scad b/scad/common.scad index bc95042..d7003ea 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -39,6 +39,11 @@ module m3_nut (H = 5) { cylinder(r=R(6.6), h=H, center=true, $fn=6); } +echo("common.scad - m4_nut"); +module m4_nut (H = 5) { + cylinder(r=R(7.15), h=H, center=true, $fn=6); +} + module opto_endstop(){ difference(){ union(){ -- 2.40.1 From 8aaa2b89404ef17b223aba7197a894bdde8ffe22 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 24 Dec 2022 01:55:11 -0500 Subject: [PATCH 61/89] Add a concept JK lens assembly --- scad/jk_lens_assembly.scad | 88 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 scad/jk_lens_assembly.scad diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad new file mode 100644 index 0000000..61ec4ff --- /dev/null +++ b/scad/jk_lens_assembly.scad @@ -0,0 +1,88 @@ +// +// JK lens assembly +// +include <./common.scad>; +include <./bellows.scad>; + +PART = ""; + +LinearBearingOuterDiameter = 15; +LinearBearingHeight = 24; +LinearBearingBoreDiameter = 8; + +ThreadDiameter = 4; //8; +LinearMotionDiameter = 8; + +TNutDiameter1 = 22; +TNutDiameter2 = 10.2; +TNutInnerDiameter = 8; +TNutHeight1 = 3.5; +TNutHeight2 = 15; +TNutOffset = 1.5; + +RodLength = 100; + +ZOffset = -35; +XOffset = -35; + +module linearBearing () { + difference () { + cylinder(r = R(LinearBearingOuterDiameter), h = LinearBearingHeight, center = true, $fn = 100); + cylinder(r = R(LinearBearingBoreDiameter), h = LinearBearingHeight + 1, center = true, $fn = 60); + } +} + +module threadedRod (H = 40) { + color("green") cylinder(r = R(ThreadDiameter), h = H, center = true, $fn = 60); +} + +module linearMotionRod (H = 40) { + color("blue") cylinder(r = R(LinearMotionDiameter), h = H, center = true, $fn = 60); +} + +module TNut () { + difference () { + union () { + translate([0, 0, -(TNutHeight2 / 2) + (TNutHeight1 / 2) + TNutOffset]) cylinder(r = R(TNutDiameter1), h = TNutHeight1, center = true, $fn = 100); + cylinder(r = R(TNutDiameter2), h = TNutHeight2, center = true, $fn = 80); + } + cylinder(r = R(TNutInnerDiameter), h = TNutHeight2 + 1, center = true, $fn = 60); + } +} + +module lens_assembly_bellows_board () { + bellows_camera_board(); + difference () { + translate([0, -32.5, 2]) cube([30, 15, 15], center = true); + rotate([-90, 0, 0]) { + translate([-13, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); + translate([13, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); + } + rotate([-90, 0, 0]) translate([0, -5, XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + } +} + +rotate([90, 0, 0]) lens_assembly_bellows_board(); + + +//Z axis +translate([ZOffset, 5, 0]) threadedRod(RodLength); +//translate([40, 8, 0]) linearMotionRod(RodLength); + +//translate([40, 8, 0]) linearBearing(); +//translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); +//translate([-40, 8, -25]) TNut(); + +translate([ZOffset, 5, 15]) m4_nut(); +translate([ZOffset, 5, -15]) m4_nut(); + +//X axis +//translate([0, -5, XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); +//translate([0, -8, 40]) rotate([0, 90, 0]) linearMotionRod(RodLength); + +//translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); +//translate([-25, -8, -40]) rotate([0, 90, 0]) TNut(); +//translate([25, -8, -40]) rotate([0, -90, 0]) TNut(); + +//translate([-15, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); +//translate([15, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); -- 2.40.1 From 20c9287ac2ed621593da98f7e3d1ddf1563482e1 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 24 Dec 2022 17:36:25 -0500 Subject: [PATCH 62/89] Work on concept JK lens assembly --- scad/common.scad | 5 +- scad/jk_lens_assembly.scad | 135 +++++++++++++++++++++++++++++++------ 2 files changed, 116 insertions(+), 24 deletions(-) diff --git a/scad/common.scad b/scad/common.scad index d7003ea..2761310 100644 --- a/scad/common.scad +++ b/scad/common.scad @@ -40,8 +40,9 @@ module m3_nut (H = 5) { } echo("common.scad - m4_nut"); -module m4_nut (H = 5) { - cylinder(r=R(7.15), h=H, center=true, $fn=6); +module m4_nut (H = 5, DIAG = 8.1) { + //tolerance + hex(diag = DIAG, h = H); } module opto_endstop(){ diff --git a/scad/jk_lens_assembly.scad b/scad/jk_lens_assembly.scad index 61ec4ff..d2c4a1b 100644 --- a/scad/jk_lens_assembly.scad +++ b/scad/jk_lens_assembly.scad @@ -10,7 +10,7 @@ LinearBearingOuterDiameter = 15; LinearBearingHeight = 24; LinearBearingBoreDiameter = 8; -ThreadDiameter = 4; //8; +ThreadDiameter = 8; LinearMotionDiameter = 8; TNutDiameter1 = 22; @@ -20,10 +20,13 @@ TNutHeight1 = 3.5; TNutHeight2 = 15; TNutOffset = 1.5; -RodLength = 100; +RodLength = 150; -ZOffset = -35; -XOffset = -35; +ZOffset = 50; +XOffset = 38; +XWidth = 50; +FrontOffset = 0; +BackOffset = 10; module linearBearing () { difference () { @@ -41,7 +44,7 @@ module linearMotionRod (H = 40) { } module TNut () { - difference () { + color("red") difference () { union () { translate([0, 0, -(TNutHeight2 / 2) + (TNutHeight1 / 2) + TNutOffset]) cylinder(r = R(TNutDiameter1), h = TNutHeight1, center = true, $fn = 100); cylinder(r = R(TNutDiameter2), h = TNutHeight2, center = true, $fn = 80); @@ -50,39 +53,127 @@ module TNut () { } } -module lens_assembly_bellows_board () { - bellows_camera_board(); +module lensAssemblyBellowsBoard () { + rotate([0, 0, 90]) bellows_camera_board(); + //bottom difference () { - translate([0, -32.5, 2]) cube([30, 15, 15], center = true); + translate([0, -XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = XWidth, center = true, $fn = 80); rotate([-90, 0, 0]) { - translate([-13, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); - translate([13, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); + translate([-(XWidth/2) + 2.5, -FrontOffset, -XOffset]) rotate([0, 90, 0]) TNut(); + translate([(XWidth/2) - 2.5, -FrontOffset, -XOffset]) rotate([0, -90, 0]) TNut(); } - rotate([-90, 0, 0]) translate([0, -5, XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + rotate([-90, 0, 0]) translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); + } + //top + difference () { + translate([0, XOffset, FrontOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 24, center = true, $fn = 80); + rotate([-90, 0, 0]) { + translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearBearing(); + } + translate([0, XOffset + 10, 0]) cube([24 + 1, 10, 3], center = true); + rotate([-90, 0, 0]) translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); } } -rotate([90, 0, 0]) lens_assembly_bellows_board(); +module lensAssemblyThreadedZ () { + Z = 90; + LinearMotionX = 22; + LinearMotionY = 20; + LinearMotionZ = 14; + difference () { + union () { + //main cylinder + rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); + //top linear motion rod attachment block + translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX, LinearMotionY, LinearMotionZ], center = true); + //bottom threaded rod block + translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); + } + //------ + //threaded rod void + threadedRod(Z + 20); + //board nut void + translate([0, -10, 0]) rotate([0, 90, 0]) cylinder(r = R(12), h = 30, center = true, $fn = 40); + //board void + translate([8, -BackOffset, 0]) cube([8, 7, 52], center = true); + //T nuts + translate([0, 0, (Z / 2) - 4]) rotate([180, 0, 0]) TNut(); + translate([0, 0, -(Z / 2) + 4]) TNut(); + translate([0, 0, -(Z / 2) - 10]) cylinder(r = R(22), h = 20, center = true, $fn = 80); + //------ + //top linear motion rod voids + // + translate([0, -(LinearMotionY/2) - 8, (Z/2) - (LinearMotionZ/2)]) cube([LinearMotionX + 1, LinearMotionY, 2], center = true); + // + translate([0, -(LinearMotionY/2), (Z/2) - (LinearMotionZ/2)]) rotate([0, 90, 0]) cylinder(r = R(LinearMotionDiameter)+.2, h = LinearMotionX + 1, center = true, $fn = 60); + //m4 bolt + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2)]) cylinder(r = R(4.25), h = LinearMotionZ + 1, center = true, $fn = 40); + //m4 nut + translate([0, -(LinearMotionY/2) - 8 + 1, (Z/2) - (LinearMotionZ/2) - 6]) m4_nut(); + //------ + //bottom threaded rod void + translate([0, -BackOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(22 + 1); + //flatten bottom + translate([0, -BackOffset, -(Z / 2) - 11]) cube([23, 22, 22], center = true); + } +} + +module lensAssemblyLinearZ () { + Z = 90 + 15 + 8; + XCorrection = 23.75; + ZLinearBearing = 36.5; + difference () { + union () { + //main cylinder + translate([0, 0, 4]) rounded_cube([22, 22, Z], d = 8, $fn = 30, center = true); + // + translate([9, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) cylinder(r = R(22), h = 40, center = true, $fn = 80); + // + translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) cylinder(r = R(22), h = 22, center = true, $fn = 80); + } + //x linear motion rod void + translate([9, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) linearMotionRod(50); + //board void + translate([-8, -BackOffset, -5]) cube([8, 7, 52], center = true); + //x linear bearing + translate([18, -BackOffset, (Z / 2) - XCorrection]) rotate([0, 90, 0]) linearBearing(); + // + translate([0, 0, (Z / 2) - 5]) linearBearing(); + //flatten bottom + translate([0, -BackOffset, -(Z / 2) - 7]) cube([23, 22, 22], center = true); + //x linear bearing + translate([0, 0, -(Z / 2) + ZLinearBearing]) linearBearing(); + translate([LinearBearingOuterDiameter / 2, 0, -(Z / 2) + ZLinearBearing]) cube([LinearBearingOuterDiameter, LinearBearingOuterDiameter, LinearBearingHeight], center = true); + //x threaded rod + translate([0, -BackOffset, -(Z / 2) + 13.5]) rotate([0, 90, 0]) threadedRod(50); + } + +} + +rotate([90, 0, 0]) lensAssemblyBellowsBoard(); + +translate([-ZOffset, BackOffset, 0]) lensAssemblyThreadedZ(); +translate([ZOffset, BackOffset, 5]) lensAssemblyLinearZ(); //Z axis -translate([ZOffset, 5, 0]) threadedRod(RodLength); -//translate([40, 8, 0]) linearMotionRod(RodLength); +//translate([-ZOffset, BackOffset, 0]) threadedRod(RodLength); +translate([ZOffset, BackOffset, 0]) linearMotionRod(RodLength); //translate([40, 8, 0]) linearBearing(); //translate([-40, 8, 25]) rotate([180, 0, 0]) TNut(); //translate([-40, 8, -25]) TNut(); -translate([ZOffset, 5, 15]) m4_nut(); -translate([ZOffset, 5, -15]) m4_nut(); +//translate([ZOffset, 5, 15]) color("blue") m4_nut(); +//translate([ZOffset, 5, -15]) color("blue") m4_nut(); //X axis -//translate([0, -5, XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); -//translate([0, -8, 40]) rotate([0, 90, 0]) linearMotionRod(RodLength); +//translate([0, -FrontOffset, -XOffset]) rotate([0, 90, 0]) threadedRod(RodLength); +translate([0, -FrontOffset, XOffset]) rotate([0, 90, 0]) linearMotionRod(RodLength); //translate([0, -8, 40]) rotate([0, 90, 0]) linearBearing(); -//translate([-25, -8, -40]) rotate([0, 90, 0]) TNut(); -//translate([25, -8, -40]) rotate([0, -90, 0]) TNut(); +//translate([-25, -8, -XOffset]) rotate([0, 90, 0]) TNut(); +//translate([25, -8, -XOffset]) rotate([0, -90, 0]) TNut(); -//translate([-15, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); -//translate([15, -5, XOffset]) rotate([0, 90, 0]) m4_nut(); +//translate([-15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); +//translate([15, -5, XOffset]) rotate([0, 90, 0]) color("blue") m4_nut(); -- 2.40.1 From 925659ba4b1d0774d8192c960c132712b6bd0060 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 1 Jan 2023 11:43:21 -0500 Subject: [PATCH 63/89] Create an Arri S mount for the JK rails --- scad/arri_s_mount.scad | 58 +++++++++++++++++++++++++++++++++++++++++ stl/arri_s_mount.stl | Bin 0 -> 106884 bytes 2 files changed, 58 insertions(+) create mode 100644 scad/arri_s_mount.scad create mode 100644 stl/arri_s_mount.stl diff --git a/scad/arri_s_mount.scad b/scad/arri_s_mount.scad new file mode 100644 index 0000000..14936f5 --- /dev/null +++ b/scad/arri_s_mount.scad @@ -0,0 +1,58 @@ +include <./common.scad>; + +Z = 100; + +baseX = 134.5; +baseY = 105.4; +baseZ = 20; + +innerBaseX = 106.22; +innerBaseY = 75.88; + +mountBoltsX = 71; +mountBoltsY = 90.66; + +boltD = 5; +camBoltD = 10; +camBoltZ = 12; + +module base () { + + difference () { + cube([baseX, baseY, baseZ], center =true); + cube([innerBaseX, innerBaseY, baseZ + 1], center =true); + //bolts + bolts(boltD, baseZ + 1); + } +} + +module bolts (boltD = 5, boltZ = 12) { + $fn = 60; + translate([mountBoltsX/2, mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true); + translate([-mountBoltsX/2, mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true); + translate([mountBoltsX/2, -mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true); + translate([-mountBoltsX/2, -mountBoltsY/2, 0]) cylinder(r = R(boltD), h = boltZ, center = true); +} + +module camera_bolt (width = 20) { + $fn = 60; + translate([width/2, 0, 0]) cylinder(r = R(camBoltD), h = Z + 1); + translate([-width/2, 0, 0]) cylinder(r = R(camBoltD), h = Z + 1); + cube([width, camBoltD, Z + 1], center = true); +} + +module mount () { + difference () { + rounded_cube([mountBoltsX + 20, baseY, Z], d = 20, center =true, $fn = 60); + //center void + translate([0, 0, -camBoltZ]) cube([mountBoltsX - 20, innerBaseY, Z], center =true); + translate([0, 0, -camBoltZ]) cube([baseX + 1, innerBaseY - 40, Z], center =true); + bolts(boltD, Z + 1); + // + translate([0, 0, (Z / 2) - (Z / 2) + 15]) bolts(20, Z); + camera_bolt(); + } +} + +//base(); +translate([0, 0, (baseZ/2) + (Z/2) + 5]) mount(); \ No newline at end of file diff --git a/stl/arri_s_mount.stl b/stl/arri_s_mount.stl new file mode 100644 index 0000000000000000000000000000000000000000..31d44a71c9932b12a30fd4dc9cf8786ad3dec5a7 GIT binary patch literal 106884 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 Jl%tXU{{Z}eUjzUE literal 0 HcmV?d00001 -- 2.40.1 From 622a8a7c42937150e57dc7d4b1526b57986e10f8 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 1 Jan 2023 11:43:30 -0500 Subject: [PATCH 64/89] Add first concept bellows board --- stl/arri_s_camera_bellows_board.stl | Bin 0 -> 280884 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 stl/arri_s_camera_bellows_board.stl diff --git a/stl/arri_s_camera_bellows_board.stl b/stl/arri_s_camera_bellows_board.stl new file mode 100644 index 0000000000000000000000000000000000000000..c65d66d83b8d2ef135e6936c94d80028fb349546 GIT binary patch literal 280884 zcmbrnd(?g3Rn~V}ltxNLxyTE{Vk#E}gND$Q%SgWG>_E{XpeYs8ItVGkD8ZCqiU<