@xdxsoftlogger/pdf-to-printer 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(global,()=>(()=>{"use strict";var e={n:n=>{var t=n&&n.__esModule?()=>n.default:()=>n;return e.d(t,{a:t}),t},d:(n,t)=>{for(var r in t)e.o(t,r)&&!e.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:t[r]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{getDefaultPrinter:()=>D,getPrinters:()=>b,print:()=>P});const t=require("path");var r=e.n(t);const i=require("fs");var o=e.n(i);const a=require("child_process"),s=require("util"),c=e.n(s)().promisify(a.execFile),u="electron"in process.versions&&process.mainModule&&process.mainModule.filename.includes("app.asar"),p=function(e){return u?e.replace("app.asar","app.asar.unpacked"):e},l=require("os");var d=e.n(l);function f(){if("win32"!==d().platform())throw"Operating System not supported"}var h=function(e,n,t,r){return new(t||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())})};const m=["odd","even"],v=["portrait","landscape"],y=["noscale","shrink","fit"],w=["duplex","duplexshort","duplexlong","simplex"];function P(e){return h(this,arguments,void 0,function*(e,n={}){if(f(),!e)throw new Error("No PDF specified");if(!o().existsSync(e))throw new Error("No such file");let t=n.sumatraPdfPath||r().join(__dirname,"SumatraPDF-3.4.6-32.exe");n.sumatraPdfPath||(t=p(t));const i=[],{printer:a,silent:s,printDialog:u}=n;u?i.push("-print-dialog"):(a?i.push("-print-to",a):i.push("-print-to-default"),!1!==s&&i.push("-silent"));const l=function(e){const{pages:n,subset:t,orientation:r,scale:i,monochrome:o,side:a,bin:s,paperSize:c,copies:u,paperKind:p}=e,l=[];if(n&&l.push(n),t){if(!m.includes(t))throw new Error(`Invalid subset provided. Valid names: ${m.join(", ")}`);l.push(t)}if(r){if(!v.includes(r))throw new Error(`Invalid orientation provided. Valid names: ${v.join(", ")}`);l.push(r)}if(i){if(!y.includes(i))throw new Error(`Invalid scale provided. Valid names: ${y.join(", ")}`);l.push(i)}if(o?l.push("monochrome"):!1===o&&l.push("color"),a){if(!w.includes(a))throw new Error(`Invalid side provided. Valid names: ${w.join(", ")}`);l.push(a)}return s&&l.push(`bin=${s}`),c&&l.push(`paper=${c}`),p&&l.push(`paperkind=${p}`),u&&l.push(`${u}x`),l}(n);l.length&&i.push("-print-settings",l.join(",")),i.push(e);try{yield c(t,i)}catch(e){throw e}})}const x={DeviceID:"deviceId",Name:"name",PrinterPaperNames:"paperSizes"};function g(e){const n={deviceId:"",name:"",paperSizes:[]};return e.split(/\r?\n/).forEach(e=>{let[t,r]=e.split(":").map(e=>e.trim());r.match(/^{(.*)(\.{3})}$/)&&(r=r.replace("...}","}"));const i=r.match(/^{(.*)}$/);i&&i[1]&&(r=i[1].split(", "));const o=x[t];void 0!==o&&(n[o]=r)}),{isValid:!(!n.deviceId||!n.name),printerData:n}}const b=function(){return e=this,n=void 0,r=function*(){try{f();const{stdout:e}=yield c("Powershell.exe",["-Command","[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance Win32_Printer -Property DeviceID,Name,PrinterPaperNames"]);return function(e){const n=[];return e.split(/(\r?\n){2,}/).map(e=>e.trim()).filter(e=>!!e).forEach(e=>{const{isValid:t,printerData:r}=g(e);t&&n.push(r)}),n}(e)}catch(e){throw e}},new((t=void 0)||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())});var e,n,t,r};const D=function(){return e=this,n=void 0,r=function*(){try{f();const{stdout:e}=yield c("Powershell.exe",["-Command","Get-CimInstance Win32_Printer -Property DeviceID,Name,PrinterPaperNames -Filter Default=true"]),n=e.trim();if(!e)return null;const{isValid:t,printerData:r}=g(n);return t?r:null}catch(e){throw e}},new((t=void 0)||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())});var e,n,t,r};return n})());
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFLRixNQUFNLEtBQUtJLElBQUtDLEdBQU9BLEVBQUdDLFFBR2hEMUQsRUFBTTJELE1BQU0scUJBQ2QzRCxFQUFRQSxFQUFNVSxRQUFRLE9BQVEsTUFJaEMsTUFBTWtELEVBQVU1RCxFQUFNMkQsTUFBTSxZQUV4QkMsR0FBV0EsRUFBUSxLQUVyQjVELEVBQVE0RCxFQUFRLEdBQUdSLE1BQU0sT0FHM0IsTUFBTWpFLEVBQU13RCxFQUFXWSxRQUVYTSxJQUFSMUUsSUFHSjZELEVBQVk3RCxHQUFPYSxLQUtkLENBQ0w4RCxXQUhpQmQsRUFBWUMsV0FBWUQsRUFBWUUsTUFJckRGLGNBRUosQ0NHQSxRQS9CQSxXLHFDQW1CRSxJQUNFLElBQ0EsTUFBTSxPQUFFZSxTQUFpQixFQUFjLGlCQUFrQixDQUN2RCxXQUNBLHNJQUVGLE9BeEJGLFNBQXVCQSxHQUNyQixNQUFNQyxFQUFzQixHQWM1QixPQVpBRCxFQUNHWCxNQUFNLGVBQ05JLElBQUtoQyxHQUFZQSxFQUFRa0MsUUFDekJPLE9BQVF6QyxLQUFjQSxHQUN0QjZCLFFBQVM3QixJQUNSLE1BQU0sUUFBRXNDLEVBQU8sWUFBRWQsR0FBZ0JELEVBQWV2QixHQUUzQ3NDLEdBRUxFLEVBQVNyQyxLQUFLcUIsS0FHWGdCLENBQ1QsQ0FRU0UsQ0FBY0gsRUFDdkIsQ0FBRSxNQUFPckIsR0FDUCxNQUFNQSxDQUNSLENBQ0YsRSw0UkNGQSxRQXpCQSxXLHFDQUNFLElBQ0UsSUFFQSxNQUFNLE9BQUVxQixTQUFpQixFQUFjLGlCQUFrQixDQUN2RCxXQUNBLGlHQUdJdkMsRUFBVXVDLEVBQU9MLE9BR3ZCLElBQUtLLEVBQVEsT0FBTyxLQUVwQixNQUFNLFFBQUVELEVBQU8sWUFBRWQsR0FBZ0JELEVBQWV2QixHQUdoRCxPQUFLc0MsRUFFRWQsRUFGYyxJQUd2QixDQUFFLE1BQU9OLEdBQ1AsTUFBTUEsQ0FDUixDQUNGLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwicGF0aFwiIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJmc1wiIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJjaGlsZF9wcm9jZXNzXCIiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInV0aWxcIiIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy91dGlscy9leGVjLWZpbGUtYXN5bmMudHMiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvdXRpbHMvZWxlY3Ryb24tdXRpbC50cyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwib3NcIiIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy91dGlscy90aHJvdy1pZi11bnN1cHBvcnRlZC1vcy50cyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy9wcmludC9wcmludC50cyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy91dGlscy93aW5kb3dzLXByaW50ZXItdmFsaWQudHMiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvZ2V0LXByaW50ZXJzL2dldC1wcmludGVycy50cyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy9nZXQtZGVmYXVsdC1wcmludGVyL2dldC1kZWZhdWx0LXByaW50ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IGZhY3RvcnkoKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKGdsb2JhbCwgKCkgPT4ge1xucmV0dXJuICIsIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInBhdGhcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImNoaWxkX3Byb2Nlc3NcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJ1dGlsXCIpOyIsImltcG9ydCB7IGV4ZWNGaWxlIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCI7XG5cbmNvbnN0IGV4ZWNGaWxlQXN5bmMgPSB1dGlsLnByb21pc2lmeShleGVjRmlsZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWNGaWxlQXN5bmM7XG4iLCIvLyBUYWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvZWxlY3Ryb24tdXRpbC9ibG9iL21hc3Rlci9ub2RlLmpzXG5cbmNvbnN0IGlzRWxlY3Ryb24gPSBcImVsZWN0cm9uXCIgaW4gcHJvY2Vzcy52ZXJzaW9ucztcblxuY29uc3QgaXNVc2luZ0FzYXIgPVxuICBpc0VsZWN0cm9uICYmXG4gIHByb2Nlc3MubWFpbk1vZHVsZSAmJlxuICBwcm9jZXNzLm1haW5Nb2R1bGUuZmlsZW5hbWUuaW5jbHVkZXMoXCJhcHAuYXNhclwiKTtcblxuZnVuY3Rpb24gZml4UGF0aEZvckFzYXJVbnBhY2socGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlzVXNpbmdBc2FyID8gcGF0aC5yZXBsYWNlKFwiYXBwLmFzYXJcIiwgXCJhcHAuYXNhci51bnBhY2tlZFwiKSA6IHBhdGg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpeFBhdGhGb3JBc2FyVW5wYWNrO1xuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJvc1wiKTsiLCJpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRocm93SWZVbnN1cHBvcnRlZE9zKCkge1xuICBpZiAob3MucGxhdGZvcm0oKSAhPT0gXCJ3aW4zMlwiKSB7XG4gICAgdGhyb3cgXCJPcGVyYXRpbmcgU3lzdGVtIG5vdCBzdXBwb3J0ZWRcIjtcbiAgfVxufVxuIiwiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBleGVjQXN5bmMgZnJvbSBcIi4uL3V0aWxzL2V4ZWMtZmlsZS1hc3luY1wiO1xuaW1wb3J0IGZpeFBhdGhGb3JBc2FyVW5wYWNrIGZyb20gXCIuLi91dGlscy9lbGVjdHJvbi11dGlsXCI7XG5pbXBvcnQgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtIGZyb20gXCIuLi91dGlscy90aHJvdy1pZi11bnN1cHBvcnRlZC1vc1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgcHJpbnRpbmcgUERGc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW50T3B0aW9ucyB7XG4gIHByaW50ZXI/OiBzdHJpbmc7XG4gIHBhZ2VzPzogc3RyaW5nO1xuICBzdWJzZXQ/OiBcIm9kZFwiIHwgXCJldmVuXCI7XG4gIG9yaWVudGF0aW9uPzogXCJwb3J0cmFpdFwiIHwgXCJsYW5kc2NhcGVcIjtcbiAgc2NhbGU/OiBcIm5vc2NhbGVcIiB8IFwic2hyaW5rXCIgfCBcImZpdFwiO1xuICBtb25vY2hyb21lPzogYm9vbGVhbjtcbiAgc2lkZT86IFwiZHVwbGV4XCIgfCBcImR1cGxleHNob3J0XCIgfCBcImR1cGxleGxvbmdcIiB8IFwic2ltcGxleFwiO1xuICBiaW4/OiBzdHJpbmc7XG4gIHBhcGVyU2l6ZT86IHN0cmluZztcbiAgcGFwZXJLaW5kPzogbnVtYmVyO1xuICBzaWxlbnQ/OiBib29sZWFuO1xuICBwcmludERpYWxvZz86IGJvb2xlYW47XG4gIHN1bWF0cmFQZGZQYXRoPzogc3RyaW5nO1xuICBjb3BpZXM/OiBudW1iZXI7XG59XG5cbmNvbnN0IHZhbGlkU3Vic2V0cyA9IFtcIm9kZFwiLCBcImV2ZW5cIl07XG5jb25zdCB2YWxpZE9yaWVudGF0aW9ucyA9IFtcInBvcnRyYWl0XCIsIFwibGFuZHNjYXBlXCJdO1xuY29uc3QgdmFsaWRTY2FsZXMgPSBbXCJub3NjYWxlXCIsIFwic2hyaW5rXCIsIFwiZml0XCJdO1xuY29uc3QgdmFsaWRTaWRlcyA9IFtcImR1cGxleFwiLCBcImR1cGxleHNob3J0XCIsIFwiZHVwbGV4bG9uZ1wiLCBcInNpbXBsZXhcIl07XG5cbi8qKlxuICogUHJpbnRzIGEgUERGIGZpbGUgdG8gYSBwcmludGVyXG4gKlxuICogQHBhcmFtIHBkZiAtIFBhdGggdG8gdGhlIFBERiBmaWxlIHRvIHByaW50XG4gKiBAcGFyYW0gb3B0aW9ucyAtIFByaW50aW5nIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gcHJpbnRpbmcgaXMgY29tcGxldGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgUERGIGZpbGUgZG9lc24ndCBleGlzdCBvciBwcmludGluZyBmYWlsc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBQcmludCB0byBkZWZhdWx0IHByaW50ZXJcbiAqIGF3YWl0IHByaW50KFwiZG9jdW1lbnQucGRmXCIpO1xuICpcbiAqIC8vIFByaW50IHRvIHNwZWNpZmljIHByaW50ZXIgd2l0aCBvcHRpb25zXG4gKiBhd2FpdCBwcmludChcImRvY3VtZW50LnBkZlwiLCB7XG4gKiAgIHByaW50ZXI6IFwiSFAgTGFzZXJKZXRcIixcbiAqICAgcGFnZXM6IFwiMS0zXCIsXG4gKiAgIGNvcGllczogMixcbiAqICAgcGFwZXJTaXplOiBcIkE0XCJcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHByaW50KFxuICBwZGY6IHN0cmluZyxcbiAgb3B0aW9uczogUHJpbnRPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtKCk7XG4gIGlmICghcGRmKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBQREYgc3BlY2lmaWVkXCIpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMocGRmKSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3VjaCBmaWxlXCIpO1xuXG4gIGxldCBzdW1hdHJhUGRmID1cbiAgICBvcHRpb25zLnN1bWF0cmFQZGZQYXRoIHx8IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiU3VtYXRyYVBERi0zLjQuNi0zMi5leGVcIik7XG4gIGlmICghb3B0aW9ucy5zdW1hdHJhUGRmUGF0aCkgc3VtYXRyYVBkZiA9IGZpeFBhdGhGb3JBc2FyVW5wYWNrKHN1bWF0cmFQZGYpO1xuXG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgeyBwcmludGVyLCBzaWxlbnQsIHByaW50RGlhbG9nIH0gPSBvcHRpb25zO1xuXG4gIGlmIChwcmludERpYWxvZykge1xuICAgIGFyZ3MucHVzaChcIi1wcmludC1kaWFsb2dcIik7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByaW50ZXIpIHtcbiAgICAgIGFyZ3MucHVzaChcIi1wcmludC10b1wiLCBwcmludGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJncy5wdXNoKFwiLXByaW50LXRvLWRlZmF1bHRcIik7XG4gICAgfVxuICAgIGlmIChzaWxlbnQgIT09IGZhbHNlKSB7XG4gICAgICBhcmdzLnB1c2goXCItc2lsZW50XCIpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByaW50U2V0dGluZ3MgPSBnZXRQcmludFNldHRpbmdzKG9wdGlvbnMpO1xuXG4gIGlmIChwcmludFNldHRpbmdzLmxlbmd0aCkge1xuICAgIGFyZ3MucHVzaChcIi1wcmludC1zZXR0aW5nc1wiLCBwcmludFNldHRpbmdzLmpvaW4oXCIsXCIpKTtcbiAgfVxuXG4gIGFyZ3MucHVzaChwZGYpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0FzeW5jKHN1bWF0cmFQZGYsIGFyZ3MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFByaW50U2V0dGluZ3Mob3B0aW9uczogUHJpbnRPcHRpb25zKTogc3RyaW5nW10ge1xuICBjb25zdCB7XG4gICAgcGFnZXMsXG4gICAgc3Vic2V0LFxuICAgIG9yaWVudGF0aW9uLFxuICAgIHNjYWxlLFxuICAgIG1vbm9jaHJvbWUsXG4gICAgc2lkZSxcbiAgICBiaW4sXG4gICAgcGFwZXJTaXplLFxuICAgIGNvcGllcyxcbiAgICBwYXBlcktpbmQsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IHByaW50U2V0dGluZ3MgPSBbXTtcblxuICBpZiAocGFnZXMpIHtcbiAgICBwcmludFNldHRpbmdzLnB1c2gocGFnZXMpO1xuICB9XG5cbiAgaWYgKHN1YnNldCkge1xuICAgIGlmICh2YWxpZFN1YnNldHMuaW5jbHVkZXMoc3Vic2V0KSkge1xuICAgICAgcHJpbnRTZXR0aW5ncy5wdXNoKHN1YnNldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgc3Vic2V0IHByb3ZpZGVkLiBWYWxpZCBuYW1lczogJHt2YWxpZFN1YnNldHMuam9pbihcIiwgXCIpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvcmllbnRhdGlvbikge1xuICAgIGlmICh2YWxpZE9yaWVudGF0aW9ucy5pbmNsdWRlcyhvcmllbnRhdGlvbikpIHtcbiAgICAgIHByaW50U2V0dGluZ3MucHVzaChvcmllbnRhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgb3JpZW50YXRpb24gcHJvdmlkZWQuIFZhbGlkIG5hbWVzOiAke3ZhbGlkT3JpZW50YXRpb25zLmpvaW4oXCIsIFwiKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2NhbGUpIHtcbiAgICBpZiAodmFsaWRTY2FsZXMuaW5jbHVkZXMoc2NhbGUpKSB7XG4gICAgICBwcmludFNldHRpbmdzLnB1c2goc2NhbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHNjYWxlIHByb3ZpZGVkLiBWYWxpZCBuYW1lczogJHt2YWxpZFNjYWxlcy5qb2luKFwiLCBcIil9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1vbm9jaHJvbWUpIHtcbiAgICBwcmludFNldHRpbmdzLnB1c2goXCJtb25vY2hyb21lXCIpO1xuICB9IGVsc2UgaWYgKG1vbm9jaHJvbWUgPT09IGZhbHNlKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKFwiY29sb3JcIik7XG4gIH1cblxuICBpZiAoc2lkZSkge1xuICAgIGlmICh2YWxpZFNpZGVzLmluY2x1ZGVzKHNpZGUpKSB7XG4gICAgICBwcmludFNldHRpbmdzLnB1c2goc2lkZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgc2lkZSBwcm92aWRlZC4gVmFsaWQgbmFtZXM6ICR7dmFsaWRTaWRlcy5qb2luKFwiLCBcIil9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGJpbikge1xuICAgIHByaW50U2V0dGluZ3MucHVzaChgYmluPSR7YmlufWApO1xuICB9XG5cbiAgaWYgKHBhcGVyU2l6ZSkge1xuICAgIHByaW50U2V0dGluZ3MucHVzaChgcGFwZXI9JHtwYXBlclNpemV9YCk7XG4gIH1cblxuICBpZiAocGFwZXJLaW5kKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKGBwYXBlcmtpbmQ9JHtwYXBlcktpbmR9YCk7XG4gIH1cblxuICBpZiAoY29waWVzKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKGAke2NvcGllc314YCk7XG4gIH1cblxuICByZXR1cm4gcHJpbnRTZXR0aW5ncztcbn1cbiIsImltcG9ydCB7IFByaW50ZXIgfSBmcm9tIFwiLi4vaW5kZXhcIjtcblxuLy8gbWFwIHdpbmRvd3MtcHJpbnRlciBrZXkgdG8gZmluYWwgcHJpbnRlckRhdGEga2V5XG5jb25zdCBwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGtleW9mIFByaW50ZXIgfSA9IHtcbiAgRGV2aWNlSUQ6IFwiZGV2aWNlSWRcIixcbiAgTmFtZTogXCJuYW1lXCIsXG4gIFByaW50ZXJQYXBlck5hbWVzOiBcInBhcGVyU2l6ZXNcIixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzVmFsaWRQcmludGVyKHByaW50ZXI6IHN0cmluZyk6IHtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbiAgcHJpbnRlckRhdGE6IFByaW50ZXI7XG59IHtcbiAgY29uc3QgcHJpbnRlckRhdGE6IFByaW50ZXIgPSB7XG4gICAgZGV2aWNlSWQ6IFwiXCIsXG4gICAgbmFtZTogXCJcIixcbiAgICBwYXBlclNpemVzOiBbXSxcbiAgfTtcblxuICBwcmludGVyLnNwbGl0KC9cXHI/XFxuLykuZm9yRWFjaCgobGluZSkgPT4ge1xuICAgIGxldCBbbGFiZWwsIHZhbHVlXSA9IGxpbmUuc3BsaXQoXCI6XCIpLm1hcCgoZWwpID0+IGVsLnRyaW0oKSk7XG5cbiAgICAvLyBoYW5kbGUgYXJyYXkgZG90c1xuICAgIGlmICh2YWx1ZS5tYXRjaCgvXnsoLiopKFxcLnszfSl9JC8pKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXCIuLi59XCIsIFwifVwiKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgYXJyYXkgcmV0dXJuc1xuICAgIGNvbnN0IG1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgvXnsoLiopfSQvKTtcblxuICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXNbMV0pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHZhbHVlID0gbWF0Y2hlc1sxXS5zcGxpdChcIiwgXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IHByb3BlcnRpZXNbbGFiZWxdO1xuXG4gICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcHJpbnRlckRhdGFba2V5XSA9IHZhbHVlO1xuICB9KTtcblxuICBjb25zdCBpc1ZhbGlkID0gISEocHJpbnRlckRhdGEuZGV2aWNlSWQgJiYgcHJpbnRlckRhdGEubmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpc1ZhbGlkLFxuICAgIHByaW50ZXJEYXRhLFxuICB9O1xufVxuIiwiaW1wb3J0IGV4ZWNGaWxlQXN5bmMgZnJvbSBcIi4uL3V0aWxzL2V4ZWMtZmlsZS1hc3luY1wiO1xuaW1wb3J0IGlzVmFsaWRQcmludGVyIGZyb20gXCIuLi91dGlscy93aW5kb3dzLXByaW50ZXItdmFsaWRcIjtcbmltcG9ydCB0aHJvd0lmVW5zdXBwb3J0ZWRPcGVyYXRpbmdTeXN0ZW0gZnJvbSBcIi4uL3V0aWxzL3Rocm93LWlmLXVuc3VwcG9ydGVkLW9zXCI7XG5pbXBvcnQgeyBQcmludGVyIH0gZnJvbSBcIi4uXCI7XG5cbi8qKlxuICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBwcmludGVycyBvbiB0aGUgc3lzdGVtXG4gKlxuICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIHByaW50ZXIgb2JqZWN0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJpbnRlcnMgPSBhd2FpdCBnZXRQcmludGVycygpO1xuICogY29uc29sZS5sb2cocHJpbnRlcnMpO1xuICogLy8gW1xuICogLy8gICB7IGRldmljZUlkOiBcIkhQX0xhc2VySmV0XCIsIG5hbWU6IFwiSFAgTGFzZXJKZXQgUHJvXCIsIHBhcGVyU2l6ZXM6IFtcIkE0XCIsIFwiTGV0dGVyXCJdIH0sXG4gKiAvLyAgIHsgZGV2aWNlSWQ6IFwiQ2Fub25fUGl4bWFcIiwgbmFtZTogXCJDYW5vbiBQSVhNQVwiLCBwYXBlclNpemVzOiBbXCJBNFwiLCBcIkEzXCJdIH1cbiAqIC8vIF1cbiAqIGBgYFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRQcmludGVycygpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xuICBmdW5jdGlvbiBzdGRvdXRIYW5kbGVyKHN0ZG91dDogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJpbnRlcnM6IFByaW50ZXJbXSA9IFtdO1xuXG4gICAgc3Rkb3V0XG4gICAgICAuc3BsaXQoLyhcXHI/XFxuKXsyLH0vKVxuICAgICAgLm1hcCgocHJpbnRlcikgPT4gcHJpbnRlci50cmltKCkpXG4gICAgICAuZmlsdGVyKChwcmludGVyKSA9PiAhIXByaW50ZXIpXG4gICAgICAuZm9yRWFjaCgocHJpbnRlcikgPT4ge1xuICAgICAgICBjb25zdCB7IGlzVmFsaWQsIHByaW50ZXJEYXRhIH0gPSBpc1ZhbGlkUHJpbnRlcihwcmludGVyKTtcblxuICAgICAgICBpZiAoIWlzVmFsaWQpIHJldHVybjtcblxuICAgICAgICBwcmludGVycy5wdXNoKHByaW50ZXJEYXRhKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHByaW50ZXJzO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB0aHJvd0lmVW5zdXBwb3J0ZWRPcGVyYXRpbmdTeXN0ZW0oKTtcbiAgICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXhlY0ZpbGVBc3luYyhcIlBvd2Vyc2hlbGwuZXhlXCIsIFtcbiAgICAgIFwiLUNvbW1hbmRcIixcbiAgICAgIGBbQ29uc29sZV06Ok91dHB1dEVuY29kaW5nID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGODsgR2V0LUNpbUluc3RhbmNlIFdpbjMyX1ByaW50ZXIgLVByb3BlcnR5IERldmljZUlELE5hbWUsUHJpbnRlclBhcGVyTmFtZXNgLFxuICAgIF0pO1xuICAgIHJldHVybiBzdGRvdXRIYW5kbGVyKHN0ZG91dCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJpbnRlcnM7XG4iLCJpbXBvcnQgZXhlY0ZpbGVBc3luYyBmcm9tIFwiLi4vdXRpbHMvZXhlYy1maWxlLWFzeW5jXCI7XG5pbXBvcnQgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtIGZyb20gXCIuLi91dGlscy90aHJvdy1pZi11bnN1cHBvcnRlZC1vc1wiO1xuaW1wb3J0IGlzVmFsaWRQcmludGVyIGZyb20gXCIuLi91dGlscy93aW5kb3dzLXByaW50ZXItdmFsaWRcIjtcbmltcG9ydCB7IFByaW50ZXIgfSBmcm9tIFwiLi5cIjtcblxuLyoqXG4gKiBHZXRzIHRoZSBkZWZhdWx0IHByaW50ZXIgaW5mb3JtYXRpb25cbiAqXG4gKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGRlZmF1bHQgcHJpbnRlciBvYmplY3QsIG9yIG51bGwgaWYgbm8gZGVmYXVsdCBwcmludGVyIGlzIHNldFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVmYXVsdFByaW50ZXIgPSBhd2FpdCBnZXREZWZhdWx0UHJpbnRlcigpO1xuICogaWYgKGRlZmF1bHRQcmludGVyKSB7XG4gKiAgIGNvbnNvbGUubG9nKGBEZWZhdWx0IHByaW50ZXI6ICR7ZGVmYXVsdFByaW50ZXIubmFtZX1gKTtcbiAqICAgY29uc29sZS5sb2coYERldmljZSBJRDogJHtkZWZhdWx0UHJpbnRlci5kZXZpY2VJZH1gKTtcbiAqICAgY29uc29sZS5sb2coYFBhcGVyIHNpemVzOiAke2RlZmF1bHRQcmludGVyLnBhcGVyU2l6ZXMuam9pbihcIiwgXCIpfWApO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coXCJObyBkZWZhdWx0IHByaW50ZXIgc2V0XCIpO1xuICogfVxuICogYGBgXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERlZmF1bHRQcmludGVyKCk6IFByb21pc2U8UHJpbnRlciB8IG51bGw+IHtcbiAgdHJ5IHtcbiAgICB0aHJvd0lmVW5zdXBwb3J0ZWRPcGVyYXRpbmdTeXN0ZW0oKTtcblxuICAgIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKFwiUG93ZXJzaGVsbC5leGVcIiwgW1xuICAgICAgXCItQ29tbWFuZFwiLFxuICAgICAgYEdldC1DaW1JbnN0YW5jZSBXaW4zMl9QcmludGVyIC1Qcm9wZXJ0eSBEZXZpY2VJRCxOYW1lLFByaW50ZXJQYXBlck5hbWVzIC1GaWx0ZXIgRGVmYXVsdD10cnVlYCxcbiAgICBdKTtcblxuICAgIGNvbnN0IHByaW50ZXIgPSBzdGRvdXQudHJpbSgpO1xuXG4gICAgLy8gSWYgc3Rkb3V0IGlzIGVtcHR5LCB0aGVyZSBpcyBubyBkZWZhdWx0IHByaW50ZXJcbiAgICBpZiAoIXN0ZG91dCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB7IGlzVmFsaWQsIHByaW50ZXJEYXRhIH0gPSBpc1ZhbGlkUHJpbnRlcihwcmludGVyKTtcblxuICAgIC8vIERldmljZUlEIG9yIE5hbWUgbm90IGZvdW5kXG4gICAgaWYgKCFpc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBwcmludGVyRGF0YTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXREZWZhdWx0UHJpbnRlcjtcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsImdsb2JhbCIsIl9fd2VicGFja19yZXF1aXJlX18iLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwiZCIsImRlZmluaXRpb24iLCJrZXkiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJyZXF1aXJlIiwiZXhlY0ZpbGUiLCJpc1VzaW5nQXNhciIsInByb2Nlc3MiLCJ2ZXJzaW9ucyIsIm1haW5Nb2R1bGUiLCJmaWxlbmFtZSIsImluY2x1ZGVzIiwicGF0aCIsInJlcGxhY2UiLCJ0aHJvd0lmVW5zdXBwb3J0ZWRPcyIsInZhbGlkU3Vic2V0cyIsInZhbGlkT3JpZW50YXRpb25zIiwidmFsaWRTY2FsZXMiLCJ2YWxpZFNpZGVzIiwicHJpbnQiLCJwZGYiLCJvcHRpb25zIiwiRXJyb3IiLCJzdW1hdHJhUGRmIiwic3VtYXRyYVBkZlBhdGgiLCJfX2Rpcm5hbWUiLCJhcmdzIiwicHJpbnRlciIsInNpbGVudCIsInByaW50RGlhbG9nIiwicHVzaCIsInByaW50U2V0dGluZ3MiLCJwYWdlcyIsInN1YnNldCIsIm9yaWVudGF0aW9uIiwic2NhbGUiLCJtb25vY2hyb21lIiwic2lkZSIsImJpbiIsInBhcGVyU2l6ZSIsImNvcGllcyIsInBhcGVyS2luZCIsImpvaW4iLCJnZXRQcmludFNldHRpbmdzIiwibGVuZ3RoIiwiZXJyb3IiLCJwcm9wZXJ0aWVzIiwiRGV2aWNlSUQiLCJOYW1lIiwiUHJpbnRlclBhcGVyTmFtZXMiLCJpc1ZhbGlkUHJpbnRlciIsInByaW50ZXJEYXRhIiwiZGV2aWNlSWQiLCJuYW1lIiwicGFwZXJTaXplcyIsInNwbGl0IiwiZm9yRWFjaCIsImxpbmUiLCJsYWJlbCIsIm1hcCIsImVsIiwidHJpbSIsIm1hdGNoIiwibWF0Y2hlcyIsInVuZGVmaW5lZCIsImlzVmFsaWQiLCJzdGRvdXQiLCJwcmludGVycyIsImZpbHRlciIsInN0ZG91dEhhbmRsZXIiXSwic291cmNlUm9vdCI6IiJ9
1
+ !function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var r in t)("object"==typeof exports?exports:e)[r]=t[r]}}(global,()=>(()=>{"use strict";var e={n:n=>{var t=n&&n.__esModule?()=>n.default:()=>n;return e.d(t,{a:t}),t},d:(n,t)=>{for(var r in t)e.o(t,r)&&!e.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:t[r]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{getDefaultPrinter:()=>D,getPrinters:()=>x,print:()=>w});const t=require("path");var r=e.n(t);const i=require("fs");var o=e.n(i);const a=require("child_process"),s=require("util"),c=e.n(s)().promisify(a.execFile),u="electron"in process.versions&&process.mainModule&&process.mainModule.filename.includes("app.asar"),p=function(e){return u?e.replace("app.asar","app.asar.unpacked"):e},l=require("os");var d=e.n(l);function f(){if("win32"!==d().platform())throw"Operating System not supported"}var h=function(e,n,t,r){return new(t||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())})};const m=["odd","even"],v=["portrait","landscape"],y=["noscale","shrink","fit"],P=["duplex","duplexshort","duplexlong","simplex"];function w(e){return h(this,arguments,void 0,function*(e,n={}){if(f(),!e)throw new Error("No PDF specified");if(!o().existsSync(e))throw new Error("No such file");let t=n.sumatraPdfPath||r().join(__dirname,"SumatraPDF-3.4.6-32.exe");n.sumatraPdfPath||(t=p(t));const i=[],{printer:a,silent:s,printDialog:u}=n;u?i.push("-print-dialog"):(a?i.push("-print-to",a):i.push("-print-to-default"),!1!==s&&i.push("-silent"));const l=function(e){const{pages:n,subset:t,orientation:r,scale:i,monochrome:o,side:a,bin:s,paperSize:c,copies:u,paperKind:p}=e,l=[];if(n&&l.push(n),t){if(!m.includes(t))throw new Error(`Invalid subset provided. Valid names: ${m.join(", ")}`);l.push(t)}if(r){if(!v.includes(r))throw new Error(`Invalid orientation provided. Valid names: ${v.join(", ")}`);l.push(r)}if(i){if(!y.includes(i))throw new Error(`Invalid scale provided. Valid names: ${y.join(", ")}`);l.push(i)}if(o?l.push("monochrome"):!1===o&&l.push("color"),a){if(!P.includes(a))throw new Error(`Invalid side provided. Valid names: ${P.join(", ")}`);l.push(a)}return s&&l.push(`bin=${s}`),c&&l.push(`paper=${c}`),p&&l.push(`paperkind=${p}`),u&&l.push(`${u}x`),l}(n);l.length&&i.push("-print-settings",l.join(",")),i.push(e);try{yield c(t,i)}catch(e){throw e}})}const x=function(){return e=this,n=void 0,r=function*(){try{f();const{stdout:e}=yield c("Powershell.exe",["-Command","[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance Win32_Printer -Property DeviceID,Name,PrinterPaperNames | Select-Object DeviceID,Name,PrinterPaperNames | ConvertTo-Json -Compress"]);return function(e){return e?JSON.parse(e).filter(e=>e.DeviceID&&e.Name).map(e=>({deviceId:e.DeviceID,name:e.Name,paperSizes:e.PrinterPaperNames||[]})):[]}(e)}catch(e){throw e}},new((t=void 0)||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())});var e,n,t,r};const D=function(){return e=this,n=void 0,r=function*(){try{f();const{stdout:e}=yield c("Powershell.exe",["-Command","Get-CimInstance Win32_Printer -Property DeviceID,Name,PrinterPaperNames -Filter Default=true | Select-Object DeviceID,Name,PrinterPaperNames | ConvertTo-Json -Compress"]);if(!e||!e.trim())return null;const n=JSON.parse(e);if(!n||0===n.length)return null;const t=n[0];return t.DeviceID&&t.Name?{deviceId:t.DeviceID,name:t.Name,paperSizes:t.PrinterPaperNames||[]}:null}catch(e){throw e}},new((t=void 0)||(t=Promise))(function(i,o){function a(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(a,s)}c((r=r.apply(e,n||[])).next())});var e,n,t,r};return n})());
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUNoRCxHQUFzQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxTQUNiLEdBQXFCLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsT0FDUCxDQUNKLElBQUlLLEVBQUlMLElBQ1IsSUFBSSxJQUFJTSxLQUFLRCxHQUF1QixpQkFBWkosUUFBdUJBLFFBQVVGLEdBQU1PLEdBQUtELEVBQUVDLEVBQ3ZFLENBQ0EsQ0FURCxDQVNHQyxPQUFRLEksbUJDUlgsSUFBSUMsRUFBc0IsQ0NBMUJBLEVBQXlCTixJQUN4QixJQUFJTyxFQUFTUCxHQUFVQSxFQUFPUSxXQUM3QixJQUFPUixFQUFpQixRQUN4QixJQUFNLEVBRVAsT0FEQU0sRUFBb0JHLEVBQUVGLEVBQVEsQ0FBRUosRUFBR0ksSUFDNUJBLEdDTFJELEVBQXdCLENBQUNQLEVBQVNXLEtBQ2pDLElBQUksSUFBSUMsS0FBT0QsRUFDWEosRUFBb0JNLEVBQUVGLEVBQVlDLEtBQVNMLEVBQW9CTSxFQUFFYixFQUFTWSxJQUM1RUUsT0FBT0MsZUFBZWYsRUFBU1ksRUFBSyxDQUFFSSxZQUFZLEVBQU1DLElBQUtOLEVBQVdDLE1DSjNFTCxFQUF3QixDQUFDVyxFQUFLQyxJQUFVTCxPQUFPTSxVQUFVQyxlQUFlQyxLQUFLSixFQUFLQyxHQ0NsRlosRUFBeUJQLElBQ0gsb0JBQVh1QixRQUEwQkEsT0FBT0MsYUFDMUNWLE9BQU9DLGVBQWVmLEVBQVN1QixPQUFPQyxZQUFhLENBQUVDLE1BQU8sV0FFN0RYLE9BQU9DLGVBQWVmLEVBQVMsYUFBYyxDQUFFeUIsT0FBTyxNLDJFQ0x2RCxNQUFNLEVBQStCQyxRQUFRLFEsYUNBN0MsTUFBTSxFQUErQkEsUUFBUSxNLGFDQTdDLE1BQU0sRUFBK0JBLFFBQVEsaUJDQXZDLEVBQStCQSxRQUFRLFFDSzdDLEUsTUFGc0IsYUFBZSxFQUFBQyxVQ0MvQkMsRUFGYSxhQUFjQyxRQUFRQyxVQUl2Q0QsUUFBUUUsWUFDUkYsUUFBUUUsV0FBV0MsU0FBU0MsU0FBUyxZQU12QyxFQUpBLFNBQThCQyxHQUM1QixPQUFPTixFQUFjTSxFQUFLQyxRQUFRLFdBQVkscUJBQXVCRCxDQUN2RSxFQ1hNLEVBQStCUixRQUFRLE0sYUNFOUIsU0FBU1UsSUFDdEIsR0FBc0IsVUFBbEIsZUFDRixLQUFNLGdDQUVWLEMsc1NDb0JBLE1BQU1DLEVBQWUsQ0FBQyxNQUFPLFFBQ3ZCQyxFQUFvQixDQUFDLFdBQVksYUFDakNDLEVBQWMsQ0FBQyxVQUFXLFNBQVUsT0FDcENDLEVBQWEsQ0FBQyxTQUFVLGNBQWUsYUFBYyxXQXdCNUMsU0FBZUMsRUFBTSxHLHlDQUNsQ0MsRUFDQUMsRUFBd0IsQ0FBQyxHQUd6QixHQURBLEtBQ0tELEVBQUssTUFBTSxJQUFJRSxNQUFNLG9CQUMxQixJQUFLLGVBQWNGLEdBQU0sTUFBTSxJQUFJRSxNQUFNLGdCQUV6QyxJQUFJQyxFQUNGRixFQUFRRyxnQkFBa0IsU0FBVUMsVUFBVywyQkFDNUNKLEVBQVFHLGlCQUFnQkQsRUFBYSxFQUFxQkEsSUFFL0QsTUFBTUcsRUFBaUIsSUFFakIsUUFBRUMsRUFBTyxPQUFFQyxFQUFNLFlBQUVDLEdBQWdCUixFQUVyQ1EsRUFDRkgsRUFBS0ksS0FBSyxrQkFFTkgsRUFDRkQsRUFBS0ksS0FBSyxZQUFhSCxHQUV2QkQsRUFBS0ksS0FBSyxzQkFFRyxJQUFYRixHQUNGRixFQUFLSSxLQUFLLFlBSWQsTUFBTUMsRUFlUixTQUEwQlYsR0FDeEIsTUFBTSxNQUNKVyxFQUFLLE9BQ0xDLEVBQU0sWUFDTkMsRUFBVyxNQUNYQyxFQUFLLFdBQ0xDLEVBQVUsS0FDVkMsRUFBSSxJQUNKQyxFQUFHLFVBQ0hDLEVBQVMsT0FDVEMsRUFBTSxVQUNOQyxHQUNFcEIsRUFFRVUsRUFBZ0IsR0FNdEIsR0FKSUMsR0FDRkQsRUFBY0QsS0FBS0UsR0FHakJDLEVBQVEsQ0FDVixJQUFJbEIsRUFBYUosU0FBU3NCLEdBR3hCLE1BQU0sSUFBSVgsTUFDUix5Q0FBeUNQLEVBQWEyQixLQUFLLFNBSDdEWCxFQUFjRCxLQUFLRyxFQU12QixDQUVBLEdBQUlDLEVBQWEsQ0FDZixJQUFJbEIsRUFBa0JMLFNBQVN1QixHQUc3QixNQUFNLElBQUlaLE1BQ1IsOENBQThDTixFQUFrQjBCLEtBQUssU0FIdkVYLEVBQWNELEtBQUtJLEVBTXZCLENBRUEsR0FBSUMsRUFBTyxDQUNULElBQUlsQixFQUFZTixTQUFTd0IsR0FHdkIsTUFBTSxJQUFJYixNQUNSLHdDQUF3Q0wsRUFBWXlCLEtBQUssU0FIM0RYLEVBQWNELEtBQUtLLEVBTXZCLENBUUEsR0FOSUMsRUFDRkwsRUFBY0QsS0FBSyxlQUNLLElBQWZNLEdBQ1RMLEVBQWNELEtBQUssU0FHakJPLEVBQU0sQ0FDUixJQUFJbkIsRUFBV1AsU0FBUzBCLEdBR3RCLE1BQU0sSUFBSWYsTUFDUix1Q0FBdUNKLEVBQVd3QixLQUFLLFNBSHpEWCxFQUFjRCxLQUFLTyxFQU12QixDQWtCQSxPQWhCSUMsR0FDRlAsRUFBY0QsS0FBSyxPQUFPUSxLQUd4QkMsR0FDRlIsRUFBY0QsS0FBSyxTQUFTUyxLQUcxQkUsR0FDRlYsRUFBY0QsS0FBSyxhQUFhVyxLQUc5QkQsR0FDRlQsRUFBY0QsS0FBSyxHQUFHVSxNQUdqQlQsQ0FDVCxDQWxHd0JZLENBQWlCdEIsR0FFbkNVLEVBQWNhLFFBQ2hCbEIsRUFBS0ksS0FBSyxrQkFBbUJDLEVBQWNXLEtBQUssTUFHbERoQixFQUFLSSxLQUFLVixHQUVWLFVBQ1EsRUFBVUcsRUFBWUcsRUFDOUIsQ0FBRSxNQUFPbUIsR0FDUCxNQUFNQSxDQUNSLENBQ0YsRSxDQ2xEQSxRQXpCQSxXLHFDQWFFLElBQ0UsSUFDQSxNQUFNLE9BQUVDLFNBQWlCLEVBQWMsaUJBQWtCLENBQ3ZELFdBQ0EsaU5BRUYsT0FsQkYsU0FBdUJBLEdBQ3JCLE9BQUtBLEVBQ1NDLEtBQUtDLE1BQU1GLEdBRXRCRyxPQUFRQyxHQUFjQSxFQUFLQyxVQUFZRCxFQUFLRSxNQUM1Q0MsSUFBS0gsSUFBYyxDQUNsQkksU0FBVUosRUFBS0MsU0FDZkksS0FBTUwsRUFBS0UsS0FDWEksV0FBWU4sRUFBS08sbUJBQXFCLE1BUHRCLEVBU3RCLENBUVNDLENBQWNaLEVBQ3ZCLENBQUUsTUFBT0QsR0FDUCxNQUFNQSxDQUNSLENBQ0YsRSw0UkNLQSxRQTFCQSxXLHFDQUNFLElBQ0UsSUFFQSxNQUFNLE9BQUVDLFNBQWlCLEVBQWMsaUJBQWtCLENBQ3ZELFdBQ0EsNEtBR0YsSUFBS0EsSUFBV0EsRUFBT2EsT0FBUSxPQUFPLEtBQ3RDLE1BQU1DLEVBQVFiLEtBQUtDLE1BQU1GLEdBQ3pCLElBQUtjLEdBQTBCLElBQWpCQSxFQUFNaEIsT0FBYyxPQUFPLEtBRXpDLE1BQU1NLEVBQU9VLEVBQU0sR0FDbkIsT0FBS1YsRUFBS0MsVUFBYUQsRUFBS0UsS0FFckIsQ0FDTEUsU0FBVUosRUFBS0MsU0FDZkksS0FBTUwsRUFBS0UsS0FDWEksV0FBWU4sRUFBS08sbUJBQXFCLElBTEMsSUFPM0MsQ0FBRSxNQUFPWixHQUNQLE1BQU1BLENBQ1IsQ0FDRixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiZnNcIiIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiY2hpbGRfcHJvY2Vzc1wiIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJ1dGlsXCIiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvdXRpbHMvZXhlYy1maWxlLWFzeW5jLnRzIiwid2VicGFjazovL0B4ZHhzb2Z0bG9nZ2VyL3BkZi10by1wcmludGVyLy4vc3JjL3V0aWxzL2VsZWN0cm9uLXV0aWwudHMiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcIm9zXCIiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvdXRpbHMvdGhyb3ctaWYtdW5zdXBwb3J0ZWQtb3MudHMiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvcHJpbnQvcHJpbnQudHMiLCJ3ZWJwYWNrOi8vQHhkeHNvZnRsb2dnZXIvcGRmLXRvLXByaW50ZXIvLi9zcmMvZ2V0LXByaW50ZXJzL2dldC1wcmludGVycy50cyIsIndlYnBhY2s6Ly9AeGR4c29mdGxvZ2dlci9wZGYtdG8tcHJpbnRlci8uL3NyYy9nZXQtZGVmYXVsdC1wcmludGVyL2dldC1kZWZhdWx0LXByaW50ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IGZhY3RvcnkoKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKGdsb2JhbCwgKCkgPT4ge1xucmV0dXJuICIsIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInBhdGhcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJmc1wiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImNoaWxkX3Byb2Nlc3NcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJ1dGlsXCIpOyIsImltcG9ydCB7IGV4ZWNGaWxlIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCI7XG5cbmNvbnN0IGV4ZWNGaWxlQXN5bmMgPSB1dGlsLnByb21pc2lmeShleGVjRmlsZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGV4ZWNGaWxlQXN5bmM7XG4iLCIvLyBUYWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvZWxlY3Ryb24tdXRpbC9ibG9iL21hc3Rlci9ub2RlLmpzXG5cbmNvbnN0IGlzRWxlY3Ryb24gPSBcImVsZWN0cm9uXCIgaW4gcHJvY2Vzcy52ZXJzaW9ucztcblxuY29uc3QgaXNVc2luZ0FzYXIgPVxuICBpc0VsZWN0cm9uICYmXG4gIHByb2Nlc3MubWFpbk1vZHVsZSAmJlxuICBwcm9jZXNzLm1haW5Nb2R1bGUuZmlsZW5hbWUuaW5jbHVkZXMoXCJhcHAuYXNhclwiKTtcblxuZnVuY3Rpb24gZml4UGF0aEZvckFzYXJVbnBhY2socGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlzVXNpbmdBc2FyID8gcGF0aC5yZXBsYWNlKFwiYXBwLmFzYXJcIiwgXCJhcHAuYXNhci51bnBhY2tlZFwiKSA6IHBhdGg7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpeFBhdGhGb3JBc2FyVW5wYWNrO1xuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJvc1wiKTsiLCJpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRocm93SWZVbnN1cHBvcnRlZE9zKCkge1xuICBpZiAob3MucGxhdGZvcm0oKSAhPT0gXCJ3aW4zMlwiKSB7XG4gICAgdGhyb3cgXCJPcGVyYXRpbmcgU3lzdGVtIG5vdCBzdXBwb3J0ZWRcIjtcbiAgfVxufVxuIiwiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBleGVjQXN5bmMgZnJvbSBcIi4uL3V0aWxzL2V4ZWMtZmlsZS1hc3luY1wiO1xuaW1wb3J0IGZpeFBhdGhGb3JBc2FyVW5wYWNrIGZyb20gXCIuLi91dGlscy9lbGVjdHJvbi11dGlsXCI7XG5pbXBvcnQgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtIGZyb20gXCIuLi91dGlscy90aHJvdy1pZi11bnN1cHBvcnRlZC1vc1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgcHJpbnRpbmcgUERGc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW50T3B0aW9ucyB7XG4gIHByaW50ZXI/OiBzdHJpbmc7XG4gIHBhZ2VzPzogc3RyaW5nO1xuICBzdWJzZXQ/OiBcIm9kZFwiIHwgXCJldmVuXCI7XG4gIG9yaWVudGF0aW9uPzogXCJwb3J0cmFpdFwiIHwgXCJsYW5kc2NhcGVcIjtcbiAgc2NhbGU/OiBcIm5vc2NhbGVcIiB8IFwic2hyaW5rXCIgfCBcImZpdFwiO1xuICBtb25vY2hyb21lPzogYm9vbGVhbjtcbiAgc2lkZT86IFwiZHVwbGV4XCIgfCBcImR1cGxleHNob3J0XCIgfCBcImR1cGxleGxvbmdcIiB8IFwic2ltcGxleFwiO1xuICBiaW4/OiBzdHJpbmc7XG4gIHBhcGVyU2l6ZT86IHN0cmluZztcbiAgcGFwZXJLaW5kPzogbnVtYmVyO1xuICBzaWxlbnQ/OiBib29sZWFuO1xuICBwcmludERpYWxvZz86IGJvb2xlYW47XG4gIHN1bWF0cmFQZGZQYXRoPzogc3RyaW5nO1xuICBjb3BpZXM/OiBudW1iZXI7XG59XG5cbmNvbnN0IHZhbGlkU3Vic2V0cyA9IFtcIm9kZFwiLCBcImV2ZW5cIl07XG5jb25zdCB2YWxpZE9yaWVudGF0aW9ucyA9IFtcInBvcnRyYWl0XCIsIFwibGFuZHNjYXBlXCJdO1xuY29uc3QgdmFsaWRTY2FsZXMgPSBbXCJub3NjYWxlXCIsIFwic2hyaW5rXCIsIFwiZml0XCJdO1xuY29uc3QgdmFsaWRTaWRlcyA9IFtcImR1cGxleFwiLCBcImR1cGxleHNob3J0XCIsIFwiZHVwbGV4bG9uZ1wiLCBcInNpbXBsZXhcIl07XG5cbi8qKlxuICogUHJpbnRzIGEgUERGIGZpbGUgdG8gYSBwcmludGVyXG4gKlxuICogQHBhcmFtIHBkZiAtIFBhdGggdG8gdGhlIFBERiBmaWxlIHRvIHByaW50XG4gKiBAcGFyYW0gb3B0aW9ucyAtIFByaW50aW5nIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gcHJpbnRpbmcgaXMgY29tcGxldGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgUERGIGZpbGUgZG9lc24ndCBleGlzdCBvciBwcmludGluZyBmYWlsc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBQcmludCB0byBkZWZhdWx0IHByaW50ZXJcbiAqIGF3YWl0IHByaW50KFwiZG9jdW1lbnQucGRmXCIpO1xuICpcbiAqIC8vIFByaW50IHRvIHNwZWNpZmljIHByaW50ZXIgd2l0aCBvcHRpb25zXG4gKiBhd2FpdCBwcmludChcImRvY3VtZW50LnBkZlwiLCB7XG4gKiAgIHByaW50ZXI6IFwiSFAgTGFzZXJKZXRcIixcbiAqICAgcGFnZXM6IFwiMS0zXCIsXG4gKiAgIGNvcGllczogMixcbiAqICAgcGFwZXJTaXplOiBcIkE0XCJcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHByaW50KFxuICBwZGY6IHN0cmluZyxcbiAgb3B0aW9uczogUHJpbnRPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtKCk7XG4gIGlmICghcGRmKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBQREYgc3BlY2lmaWVkXCIpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMocGRmKSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3VjaCBmaWxlXCIpO1xuXG4gIGxldCBzdW1hdHJhUGRmID1cbiAgICBvcHRpb25zLnN1bWF0cmFQZGZQYXRoIHx8IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiU3VtYXRyYVBERi0zLjQuNi0zMi5leGVcIik7XG4gIGlmICghb3B0aW9ucy5zdW1hdHJhUGRmUGF0aCkgc3VtYXRyYVBkZiA9IGZpeFBhdGhGb3JBc2FyVW5wYWNrKHN1bWF0cmFQZGYpO1xuXG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgeyBwcmludGVyLCBzaWxlbnQsIHByaW50RGlhbG9nIH0gPSBvcHRpb25zO1xuXG4gIGlmIChwcmludERpYWxvZykge1xuICAgIGFyZ3MucHVzaChcIi1wcmludC1kaWFsb2dcIik7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByaW50ZXIpIHtcbiAgICAgIGFyZ3MucHVzaChcIi1wcmludC10b1wiLCBwcmludGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJncy5wdXNoKFwiLXByaW50LXRvLWRlZmF1bHRcIik7XG4gICAgfVxuICAgIGlmIChzaWxlbnQgIT09IGZhbHNlKSB7XG4gICAgICBhcmdzLnB1c2goXCItc2lsZW50XCIpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByaW50U2V0dGluZ3MgPSBnZXRQcmludFNldHRpbmdzKG9wdGlvbnMpO1xuXG4gIGlmIChwcmludFNldHRpbmdzLmxlbmd0aCkge1xuICAgIGFyZ3MucHVzaChcIi1wcmludC1zZXR0aW5nc1wiLCBwcmludFNldHRpbmdzLmpvaW4oXCIsXCIpKTtcbiAgfVxuXG4gIGFyZ3MucHVzaChwZGYpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0FzeW5jKHN1bWF0cmFQZGYsIGFyZ3MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFByaW50U2V0dGluZ3Mob3B0aW9uczogUHJpbnRPcHRpb25zKTogc3RyaW5nW10ge1xuICBjb25zdCB7XG4gICAgcGFnZXMsXG4gICAgc3Vic2V0LFxuICAgIG9yaWVudGF0aW9uLFxuICAgIHNjYWxlLFxuICAgIG1vbm9jaHJvbWUsXG4gICAgc2lkZSxcbiAgICBiaW4sXG4gICAgcGFwZXJTaXplLFxuICAgIGNvcGllcyxcbiAgICBwYXBlcktpbmQsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IHByaW50U2V0dGluZ3MgPSBbXTtcblxuICBpZiAocGFnZXMpIHtcbiAgICBwcmludFNldHRpbmdzLnB1c2gocGFnZXMpO1xuICB9XG5cbiAgaWYgKHN1YnNldCkge1xuICAgIGlmICh2YWxpZFN1YnNldHMuaW5jbHVkZXMoc3Vic2V0KSkge1xuICAgICAgcHJpbnRTZXR0aW5ncy5wdXNoKHN1YnNldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgc3Vic2V0IHByb3ZpZGVkLiBWYWxpZCBuYW1lczogJHt2YWxpZFN1YnNldHMuam9pbihcIiwgXCIpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvcmllbnRhdGlvbikge1xuICAgIGlmICh2YWxpZE9yaWVudGF0aW9ucy5pbmNsdWRlcyhvcmllbnRhdGlvbikpIHtcbiAgICAgIHByaW50U2V0dGluZ3MucHVzaChvcmllbnRhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgb3JpZW50YXRpb24gcHJvdmlkZWQuIFZhbGlkIG5hbWVzOiAke3ZhbGlkT3JpZW50YXRpb25zLmpvaW4oXCIsIFwiKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2NhbGUpIHtcbiAgICBpZiAodmFsaWRTY2FsZXMuaW5jbHVkZXMoc2NhbGUpKSB7XG4gICAgICBwcmludFNldHRpbmdzLnB1c2goc2NhbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHNjYWxlIHByb3ZpZGVkLiBWYWxpZCBuYW1lczogJHt2YWxpZFNjYWxlcy5qb2luKFwiLCBcIil9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1vbm9jaHJvbWUpIHtcbiAgICBwcmludFNldHRpbmdzLnB1c2goXCJtb25vY2hyb21lXCIpO1xuICB9IGVsc2UgaWYgKG1vbm9jaHJvbWUgPT09IGZhbHNlKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKFwiY29sb3JcIik7XG4gIH1cblxuICBpZiAoc2lkZSkge1xuICAgIGlmICh2YWxpZFNpZGVzLmluY2x1ZGVzKHNpZGUpKSB7XG4gICAgICBwcmludFNldHRpbmdzLnB1c2goc2lkZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgc2lkZSBwcm92aWRlZC4gVmFsaWQgbmFtZXM6ICR7dmFsaWRTaWRlcy5qb2luKFwiLCBcIil9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGJpbikge1xuICAgIHByaW50U2V0dGluZ3MucHVzaChgYmluPSR7YmlufWApO1xuICB9XG5cbiAgaWYgKHBhcGVyU2l6ZSkge1xuICAgIHByaW50U2V0dGluZ3MucHVzaChgcGFwZXI9JHtwYXBlclNpemV9YCk7XG4gIH1cblxuICBpZiAocGFwZXJLaW5kKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKGBwYXBlcmtpbmQ9JHtwYXBlcktpbmR9YCk7XG4gIH1cblxuICBpZiAoY29waWVzKSB7XG4gICAgcHJpbnRTZXR0aW5ncy5wdXNoKGAke2NvcGllc314YCk7XG4gIH1cblxuICByZXR1cm4gcHJpbnRTZXR0aW5ncztcbn1cbiIsImltcG9ydCBleGVjRmlsZUFzeW5jIGZyb20gXCIuLi91dGlscy9leGVjLWZpbGUtYXN5bmNcIjtcbmltcG9ydCB0aHJvd0lmVW5zdXBwb3J0ZWRPcGVyYXRpbmdTeXN0ZW0gZnJvbSBcIi4uL3V0aWxzL3Rocm93LWlmLXVuc3VwcG9ydGVkLW9zXCI7XG5pbXBvcnQgeyBQcmludGVyIH0gZnJvbSBcIi4uXCI7XG5cbi8qKlxuICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBwcmludGVycyBvbiB0aGUgc3lzdGVtXG4gKlxuICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIHByaW50ZXIgb2JqZWN0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJpbnRlcnMgPSBhd2FpdCBnZXRQcmludGVycygpO1xuICogY29uc29sZS5sb2cocHJpbnRlcnMpO1xuICogLy8gW1xuICogLy8gICB7IGRldmljZUlkOiBcIkhQX0xhc2VySmV0XCIsIG5hbWU6IFwiSFAgTGFzZXJKZXQgUHJvXCIsIHBhcGVyU2l6ZXM6IFtcIkE0XCIsIFwiTGV0dGVyXCJdIH0sXG4gKiAvLyAgIHsgZGV2aWNlSWQ6IFwiQ2Fub25fUGl4bWFcIiwgbmFtZTogXCJDYW5vbiBQSVhNQVwiLCBwYXBlclNpemVzOiBbXCJBNFwiLCBcIkEzXCJdIH1cbiAqIC8vIF1cbiAqIGBgYFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRQcmludGVycygpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xuICBmdW5jdGlvbiBzdGRvdXRIYW5kbGVyKHN0ZG91dDogc3RyaW5nKTogUHJpbnRlcltdIHtcbiAgICBpZiAoIXN0ZG91dCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGl0ZW1zID0gSlNPTi5wYXJzZShzdGRvdXQpO1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtLkRldmljZUlEICYmIGl0ZW0uTmFtZSlcbiAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgZGV2aWNlSWQ6IGl0ZW0uRGV2aWNlSUQsXG4gICAgICAgIG5hbWU6IGl0ZW0uTmFtZSxcbiAgICAgICAgcGFwZXJTaXplczogaXRlbS5QcmludGVyUGFwZXJOYW1lcyB8fCBbXSxcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdGhyb3dJZlVuc3VwcG9ydGVkT3BlcmF0aW5nU3lzdGVtKCk7XG4gICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNGaWxlQXN5bmMoXCJQb3dlcnNoZWxsLmV4ZVwiLCBbXG4gICAgICBcIi1Db21tYW5kXCIsXG4gICAgICBgW0NvbnNvbGVdOjpPdXRwdXRFbmNvZGluZyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjg7IEdldC1DaW1JbnN0YW5jZSBXaW4zMl9QcmludGVyIC1Qcm9wZXJ0eSBEZXZpY2VJRCxOYW1lLFByaW50ZXJQYXBlck5hbWVzIHwgU2VsZWN0LU9iamVjdCBEZXZpY2VJRCxOYW1lLFByaW50ZXJQYXBlck5hbWVzIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzYCxcbiAgICBdKTtcbiAgICByZXR1cm4gc3Rkb3V0SGFuZGxlcihzdGRvdXQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFByaW50ZXJzO1xuIiwiaW1wb3J0IGV4ZWNGaWxlQXN5bmMgZnJvbSBcIi4uL3V0aWxzL2V4ZWMtZmlsZS1hc3luY1wiO1xuaW1wb3J0IHRocm93SWZVbnN1cHBvcnRlZE9wZXJhdGluZ1N5c3RlbSBmcm9tIFwiLi4vdXRpbHMvdGhyb3ctaWYtdW5zdXBwb3J0ZWQtb3NcIjtcbmltcG9ydCB7IFByaW50ZXIgfSBmcm9tIFwiLi5cIjtcblxuLyoqXG4gKiBHZXRzIHRoZSBkZWZhdWx0IHByaW50ZXIgaW5mb3JtYXRpb25cbiAqXG4gKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGRlZmF1bHQgcHJpbnRlciBvYmplY3QsIG9yIG51bGwgaWYgbm8gZGVmYXVsdCBwcmludGVyIGlzIHNldFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVmYXVsdFByaW50ZXIgPSBhd2FpdCBnZXREZWZhdWx0UHJpbnRlcigpO1xuICogaWYgKGRlZmF1bHRQcmludGVyKSB7XG4gKiAgIGNvbnNvbGUubG9nKGBEZWZhdWx0IHByaW50ZXI6ICR7ZGVmYXVsdFByaW50ZXIubmFtZX1gKTtcbiAqICAgY29uc29sZS5sb2coYERldmljZSBJRDogJHtkZWZhdWx0UHJpbnRlci5kZXZpY2VJZH1gKTtcbiAqICAgY29uc29sZS5sb2coYFBhcGVyIHNpemVzOiAke2RlZmF1bHRQcmludGVyLnBhcGVyU2l6ZXMuam9pbihcIiwgXCIpfWApO1xuICogfSBlbHNlIHtcbiAqICAgY29uc29sZS5sb2coXCJObyBkZWZhdWx0IHByaW50ZXIgc2V0XCIpO1xuICogfVxuICogYGBgXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERlZmF1bHRQcmludGVyKCk6IFByb21pc2U8UHJpbnRlciB8IG51bGw+IHtcbiAgdHJ5IHtcbiAgICB0aHJvd0lmVW5zdXBwb3J0ZWRPcGVyYXRpbmdTeXN0ZW0oKTtcblxuICAgIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKFwiUG93ZXJzaGVsbC5leGVcIiwgW1xuICAgICAgXCItQ29tbWFuZFwiLFxuICAgICAgYEdldC1DaW1JbnN0YW5jZSBXaW4zMl9QcmludGVyIC1Qcm9wZXJ0eSBEZXZpY2VJRCxOYW1lLFByaW50ZXJQYXBlck5hbWVzIC1GaWx0ZXIgRGVmYXVsdD10cnVlIHwgU2VsZWN0LU9iamVjdCBEZXZpY2VJRCxOYW1lLFByaW50ZXJQYXBlck5hbWVzIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzYCxcbiAgICBdKTtcblxuICAgIGlmICghc3Rkb3V0IHx8ICFzdGRvdXQudHJpbSgpKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBpdGVtcyA9IEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBpdGVtID0gaXRlbXNbMF07XG4gICAgaWYgKCFpdGVtLkRldmljZUlEIHx8ICFpdGVtLk5hbWUpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRldmljZUlkOiBpdGVtLkRldmljZUlELFxuICAgICAgbmFtZTogaXRlbS5OYW1lLFxuICAgICAgcGFwZXJTaXplczogaXRlbS5QcmludGVyUGFwZXJOYW1lcyB8fCBbXSxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldERlZmF1bHRQcmludGVyO1xuIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsImEiLCJpIiwiZ2xvYmFsIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJkIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInJlcXVpcmUiLCJleGVjRmlsZSIsImlzVXNpbmdBc2FyIiwicHJvY2VzcyIsInZlcnNpb25zIiwibWFpbk1vZHVsZSIsImZpbGVuYW1lIiwiaW5jbHVkZXMiLCJwYXRoIiwicmVwbGFjZSIsInRocm93SWZVbnN1cHBvcnRlZE9zIiwidmFsaWRTdWJzZXRzIiwidmFsaWRPcmllbnRhdGlvbnMiLCJ2YWxpZFNjYWxlcyIsInZhbGlkU2lkZXMiLCJwcmludCIsInBkZiIsIm9wdGlvbnMiLCJFcnJvciIsInN1bWF0cmFQZGYiLCJzdW1hdHJhUGRmUGF0aCIsIl9fZGlybmFtZSIsImFyZ3MiLCJwcmludGVyIiwic2lsZW50IiwicHJpbnREaWFsb2ciLCJwdXNoIiwicHJpbnRTZXR0aW5ncyIsInBhZ2VzIiwic3Vic2V0Iiwib3JpZW50YXRpb24iLCJzY2FsZSIsIm1vbm9jaHJvbWUiLCJzaWRlIiwiYmluIiwicGFwZXJTaXplIiwiY29waWVzIiwicGFwZXJLaW5kIiwiam9pbiIsImdldFByaW50U2V0dGluZ3MiLCJsZW5ndGgiLCJlcnJvciIsInN0ZG91dCIsIkpTT04iLCJwYXJzZSIsImZpbHRlciIsIml0ZW0iLCJEZXZpY2VJRCIsIk5hbWUiLCJtYXAiLCJkZXZpY2VJZCIsIm5hbWUiLCJwYXBlclNpemVzIiwiUHJpbnRlclBhcGVyTmFtZXMiLCJzdGRvdXRIYW5kbGVyIiwidHJpbSIsIml0ZW1zIl0sInNvdXJjZVJvb3QiOiIifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xdxsoftlogger/pdf-to-printer",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Print PDF files and images to Windows printers from Node.js and Electron. Supports Zebra, Rollo, and other label printers with duplex, paper size, tray selection, and silent printing.",
5
5
  "license": "MIT",
6
6
  "author": "xdxsoftlogger",
@@ -1,5 +0,0 @@
1
- import { Printer } from "../index";
2
- export default function isValidPrinter(printer: string): {
3
- isValid: boolean;
4
- printerData: Printer;
5
- };