@bitgo-beta/utxo-lib 8.0.3-beta.937 → 8.0.3-beta.938

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.
@@ -1,7 +1,7 @@
1
1
  import { SessionKey } from '@brandonblack/musig';
2
2
  import { Tuple } from './types';
3
3
  import { PsbtInput } from 'bip174/src/lib/interfaces';
4
- import { ProprietaryKeyValue } from './PsbtUtil';
4
+ import { ProprietaryKeyValue } from './ProprietaryKeyValUtils';
5
5
  /**
6
6
  * Participant key value object.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Musig2.d.ts","sourceRoot":"","sources":["../../../src/bitgo/Musig2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Musig2.d.ts","sourceRoot":"","sources":["../../../src/bitgo/Musig2.ts"],"names":[],"mappings":"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"}
@@ -354,4 +354,4 @@ function musig2DeterministicSign(params) {
354
354
  });
355
355
  return { sig: Buffer.from(sig), sessionKey, publicNonce: Buffer.from(publicNonce) };
356
356
  }
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVzaWcyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL011c2lnMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2R0Esb0VBU0M7QUFPRCw0REFjQztBQUVELGdFQWNDO0FBTUQsb0VBdUJDO0FBTUQsc0RBZ0JDO0FBTUQsZ0VBbUJDO0FBRUQsb0RBRUM7QUFFRCxnREFJQztBQUVELG9EQUVDO0FBRUQsd0NBRUM7QUFXRCw4Q0FjQztBQUVELHdEQVFDO0FBRUQsa0RBRUM7QUFHRCxnRUFXQztBQU1ELGtFQWVDO0FBTUQsc0RBZUM7QUFNRCxnRUFlQztBQVFELG9FQXVCQztBQVNELHdEQTBCQztBQU1ELHdEQW9CQztBQUVELHdFQVVDO0FBRUQsMERBYUM7QUFsZUQsbURBTXlCO0FBQ3pCLDRDQUEwQztBQUUxQyx3Q0FBK0Q7QUFDL0Qsb0NBQXVDO0FBRXZDLHlDQUtvQjtBQXNDcEI7OztHQUdHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFBN0I7UUFDVSxXQUFNLEdBQWlCLEVBQUUsQ0FBQztJQXdDcEMsQ0FBQztJQXRDQzs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBaUI7UUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGlCQUFpQixDQUNmLFVBQXNCLEVBQ3RCLFNBQXFCLEVBQ3JCLGNBQTBCLEVBQzFCLE1BQWtCLEVBQ2xCLFNBQWtCO1FBRWxCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4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QUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXNzaW9uS2V5IH0gZnJvbSAnQGJyYW5kb25ibGFjay9tdXNpZyc7XG5cbmltcG9ydCB7XG4gIGNoZWNrUGxhaW5QdWJsaWNLZXksXG4gIGNoZWNrVGFwTWVya2xlUm9vdCxcbiAgY2hlY2tUeEhhc2gsXG4gIGNoZWNrWE9ubHlQdWJsaWNLZXksXG4gIHRvWE9ubHlQdWJsaWNLZXksXG59IGZyb20gJy4vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyBlY2MsIG11c2lnIH0gZnJvbSAnLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IFR1cGxlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVUYXBUd2VhaywgdGFwVHdlYWtQdWJrZXkgfSBmcm9tICcuLi90YXByb290JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgUHNidElucHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMsXG4gIFByb3ByaWV0YXJ5S2V5U3VidHlwZSxcbiAgUHJvcHJpZXRhcnlLZXlWYWx1ZSxcbiAgUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxufSBmcm9tICcuL1BzYnRVdGlsJztcblxuLyoqXG4gKiAgUGFydGljaXBhbnQga2V5IHZhbHVlIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHRhcEludGVybmFsS2V5OiBCdWZmZXI7XG4gIHBhcnRpY2lwYW50UHViS2V5czogVHVwbGU8QnVmZmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyRGV0ZXJtaW5pc3RpY1BhcmFtcyB7XG4gIHByaXZhdGVLZXk6IEJ1ZmZlcjtcbiAgb3RoZXJOb25jZTogQnVmZmVyO1xuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+O1xuICBpbnRlcm5hbFB1YktleTogQnVmZmVyO1xuICB0YXBUcmVlUm9vdDogQnVmZmVyO1xuICBoYXNoOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIE5vbmNlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgcGFydGljaXBhbnRQdWJLZXk6IEJ1ZmZlcjtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHB1Yk5vbmNlOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIFBhcnRpYWwgc2lnbmF0dXJlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlBhcnRpYWxTaWcge1xuICBwYXJ0aWNpcGFudFB1YktleTogQnVmZmVyO1xuICB0YXBPdXRwdXRLZXk6IEJ1ZmZlcjtcbiAgcGFydGlhbFNpZzogQnVmZmVyO1xufVxuXG4vKipcbiAqIEJlY2F1c2UgbXVzaWcgdXNlcyByZWZlcmVuY2UtZXF1YWwgYnVmZmVycyB0byBjYWNoZSBub25jZXMsIHdlIHdyYXAgaXQgaGVyZSB0byBhbGxvdyB1c2luZ1xuICogbm9uY2VzIHRoYXQgYXJlIGJ5dGUtZXF1YWwgYnV0IG5vdCByZWZlcmVuY2UtZXF1YWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBNdXNpZzJOb25jZVN0b3JlIHtcbiAgcHJpdmF0ZSBub25jZXM6IFVpbnQ4QXJyYXlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBHZXQgb3JpZ2luYWwgQnVmZmVyIGluc3RhbmNlIGZvciBub25jZSAod2hpY2ggbWF5IGJlIGEgY29weSkuXG4gICAqIEByZXR1cm4gYnl0ZS1lcXVhbCBidWZmZXIgdGhhdCBpcyByZWZlcmVuY2UtZXF1YWwgdG8gd2hhdCB3YXMgc3RvcmVkIGVhcmxpZXIgaW4gY3JlYXRlTXVzaWcyTm9uY2VcbiAgICovXG4gIGdldFJlZihub25jZTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGZvciAoY29uc3QgYiBvZiB0aGlzLm5vbmNlcykge1xuICAgICAgaWYgKEJ1ZmZlci5mcm9tKGIpLmVxdWFscyhub25jZSkpIHtcbiAgICAgICAgcmV0dXJuIGI7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBub25jZWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbXVzaWcyIG5vbmNlIGFuZCBzdG9yZXMgYnVmZmVyIHJlZmVyZW5jZS5cbiAgICogdGFwSW50ZXJuYWxrZXksIHRhcE1lcmtsZVJvb3QsIHRhcEJpcDMyRGVyaXZhdGlvbiBmb3Igcm9vdFdhbGxldEtleSBhcmUgcmVxdWlyZWQgcGVyIHAydHJNdXNpZzIga2V5IHBhdGggaW5wdXQuXG4gICAqIEFsc28gcGFydGljaXBhbnQga2V5cyBhcmUgcmVxdWlyZWQgZnJvbSBwc2J0IHByb3ByaWV0YXJ5IGtleSB2YWx1ZXMuXG4gICAqIFJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2Fua2V0MTcyOS80YjUyNWM2MDQ5ZjRkOWUwMzRkMjczNjhjNDlmMjhhNlxuICAgKiBAcGFyYW0gcHJpdmF0ZUtleSAtIHNpZ25lciBwcml2YXRlIGtleVxuICAgKiBAcGFyYW0gcHVibGljS2V5IC0gc2lnbmVyIHh5IHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHhPbmx5UHVibGljS2V5IC0gdHdlYWtlZCBhZ2dyZWdhdGVkIGtleSAodGFwT3V0cHV0S2V5KVxuICAgKiBAcGFyYW0gc2Vzc2lvbklkIEFkZGl0aW9uYWwgZW50cm9weS4gSWYgcHJvdmlkZWQgaXQgbXVzdCBlaXRoZXIgYmUgYSBjb3VudGVyIHVuaXF1ZSB0byB0aGlzIHNlY3JldCBrZXksXG4gICAqIChjb252ZXJ0ZWQgdG8gYW4gYXJyYXkgb2YgMzIgYnl0ZXMpLCBvciAzMiB1bmlmb3JtbHkgcmFuZG9tIGJ5dGVzLlxuICAgKi9cbiAgY3JlYXRlTXVzaWcyTm9uY2UoXG4gICAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbiAgICBwdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgeE9ubHlQdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgdHhIYXNoOiBVaW50OEFycmF5LFxuICAgIHNlc3Npb25JZD86IEJ1ZmZlclxuICApOiBVaW50OEFycmF5IHtcbiAgICBpZiAodHhIYXNoLmxlbmd0aCAhPSAzMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR4SGFzaCBzaXplICR7dHhIYXNofWApO1xuICAgIH1cbiAgICBjb25zdCBidWYgPSBtdXNpZy5ub25jZUdlbih7IHNlY3JldEtleTogcHJpdmF0ZUtleSwgcHVibGljS2V5LCB4T25seVB1YmxpY0tleSwgbXNnOiB0eEhhc2gsIHNlc3Npb25JZCB9KTtcbiAgICB0aGlzLm5vbmNlcy5wdXNoKGJ1Zik7XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfVxufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXMuIFN1YlR5cGUgaXMgMHgwMVxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHgtb25seSB0YXBPdXRwdXRLZXl8fHRhcEludGVybmFsS2V5IGFzIHN1YiBrZXlkYXRhLCBwbGFpbiBzaWdpbmluZyBwYXJ0aWNpcGFudCBrZXlzIGFzIHZhbHVlZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyhwYXJ0aWNpcGFudHM6IFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMpOiBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAgY29uc3Qga2V5ZGF0YSA9IFtwYXJ0aWNpcGFudHMudGFwT3V0cHV0S2V5LCBwYXJ0aWNpcGFudHMudGFwSW50ZXJuYWxLZXldLm1hcCgocHVia2V5KSA9PiBjaGVja1hPbmx5UHVibGljS2V5KHB1YmtleSkpO1xuICBjb25zdCB2YWx1ZSA9IHBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudFB1YktleXMubWFwKChwdWJrZXkpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkocHVia2V5KSk7XG4gIGNvbnN0IGtleSA9IHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZUyxcbiAgICBrZXlkYXRhOiBCdWZmZXIuY29uY2F0KGtleWRhdGEpLFxuICB9O1xuICByZXR1cm4geyBrZXksIHZhbHVlOiBCdWZmZXIuY29uY2F0KHZhbHVlKSB9O1xufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwdWIgbm9uY2UuIFN1YlR5cGUgaXMgMHgwMlxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHBsYWluLXBhcnRpY2lwYW50UHViS2V5fHx4LW9ubHktdGFwT3V0cHV0S2V5IGFzIHN1YiBrZXlkYXRhLCA2NiBieXRlcyBvZiAyIHB1YiBub25jZXMgYXMgdmFsdWVkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUHViTm9uY2Uobm9uY2U6IFBzYnRNdXNpZzJQdWJOb25jZSk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAobm9uY2UucHViTm9uY2UubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwdWJOb25jZXMgbGVuZ3RoICR7bm9uY2UucHViTm9uY2UubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KG5vbmNlLnBhcnRpY2lwYW50UHViS2V5KSxcbiAgICBjaGVja1hPbmx5UHVibGljS2V5KG5vbmNlLnRhcE91dHB1dEtleSksXG4gIF0pO1xuICBjb25zdCBrZXkgPSB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IG5vbmNlLnB1Yk5vbmNlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUGFydGlhbFNpZyhwYXJ0aWFsU2lnOiBQc2J0TXVzaWcyUGFydGlhbFNpZyk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAocGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzIgJiYgcGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFydGlhbFNpZyBsZW5ndGggJHtwYXJ0aWFsU2lnLnBhcnRpYWxTaWcubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KHBhcnRpYWxTaWcucGFydGljaXBhbnRQdWJLZXkpLFxuICAgIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGlhbFNpZy50YXBPdXRwdXRLZXkpLFxuICBdKTtcbiAgY29uc3Qga2V5ID0ge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQUxfU0lHLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IHBhcnRpYWxTaWcucGFydGlhbFNpZyB9O1xufVxuXG4vKipcbiAqIERlY29kZXMgcHJvcHJpZXRhcnkga2V5IHZhbHVlIGRhdGEgZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzXG4gKiBAcGFyYW0ga3ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgaWYgKFxuICAgIGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHxcbiAgICBrdi5rZXkuc3VidHlwZSAhPT0gUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZU1xuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaWRlbnRpZmllciAke2t2LmtleS5pZGVudGlmaWVyfSBvciBzdWJ0eXBlICR7a3Yua2V5LnN1YnR5cGV9IGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXNgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cbiAgY29uc3QgcGFydGljaXBhbnRQdWJLZXlzOiBUdXBsZTxCdWZmZXI+ID0gW3ZhbHVlLnN1YmFycmF5KDAsIDMzKSwgdmFsdWUuc3ViYXJyYXkoMzMpXTtcbiAgaWYgKHBhcnRpY2lwYW50UHViS2V5c1swXS5lcXVhbHMocGFydGljaXBhbnRQdWJLZXlzWzFdKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIHBhcnRpY2lwYW50IHB1YiBrZXlzIGZvdW5kYCk7XG4gIH1cblxuICByZXR1cm4geyB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgwLCAzMiksIHRhcEludGVybmFsS2V5OiBrZXkuc3ViYXJyYXkoMzIpLCBwYXJ0aWNpcGFudFB1YktleXMgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgbm9uY2VcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMk5vbmNlKGt2OiBQcm9wcmlldGFyeUtleVZhbHVlKTogUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgaWYgKGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHwga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3Igbm9uY2VgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICByZXR1cm4geyBwYXJ0aWNpcGFudFB1YktleToga2V5LnN1YmFycmF5KDAsIDMzKSwgdGFwT3V0cHV0S2V5OiBrZXkuc3ViYXJyYXkoMzMpLCBwdWJOb25jZTogdmFsdWUgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgcGFydGlhbCBzaWdcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMlBhcnRpYWxTaWcoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGlhbFNpZyB7XG4gIGlmIChcbiAgICBrdi5rZXkuaWRlbnRpZmllciAhPT0gUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIHx8XG4gICAga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElBTF9TSUdcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpYWwgc2lnYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAzMiAmJiB2YWx1ZS5sZW5ndGggIT09IDMzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlZGF0YSBzaXplICR7dmFsdWUubGVuZ3RofSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpY2lwYW50UHViS2V5OiBrZXkuc3ViYXJyYXkoMCwgMzMpLCB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgzMyksIHBhcnRpYWxTaWc6IHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBJbnRlcm5hbEtleShwbGFpblB1YktleXM6IEJ1ZmZlcltdKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLmdldFhPbmx5UHVia2V5KG11c2lnLmtleUFnZyhwbGFpblB1YktleXMpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBPdXRwdXRLZXkoaW50ZXJuYWxQdWJLZXk6IEJ1ZmZlciwgdGFwVHJlZVJvb3Q6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICB0YXBUd2Vha1B1YmtleShlY2MsIHRvWE9ubHlQdWJsaWNLZXkoaW50ZXJuYWxQdWJLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwVHJlZVJvb3QpKS54T25seVB1YmtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRlTm9uY2UocHViTm9uY2VzOiBUdXBsZTxCdWZmZXI+KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLm5vbmNlQWdnKHB1Yk5vbmNlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFwVHdlYWsodGFwSW50ZXJuYWxLZXk6IEJ1ZmZlciwgdGFwTWVya2xlUm9vdDogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNhbGN1bGF0ZVRhcFR3ZWFrKGNoZWNrWE9ubHlQdWJsaWNLZXkodGFwSW50ZXJuYWxLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwTWVya2xlUm9vdCkpKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihcbiAgYWdnTm9uY2U6IEJ1ZmZlcixcbiAgaGFzaDogQnVmZmVyLFxuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+LFxuICB0d2VhazogQnVmZmVyXG4pOiBTZXNzaW9uS2V5IHtcbiAgcmV0dXJuIG11c2lnLnN0YXJ0U2lnbmluZ1Nlc3Npb24oYWdnTm9uY2UsIGhhc2gsIHB1YmxpY0tleXMsIHsgdHdlYWssIHhPbmx5OiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ24oXG4gIHByaXZhdGVLZXk6IEJ1ZmZlcixcbiAgcHVibGljTm9uY2U6IFVpbnQ4QXJyYXksXG4gIHNlc3Npb25LZXk6IFNlc3Npb25LZXksXG4gIG5vbmNlU3RvcmU6IE11c2lnMk5vbmNlU3RvcmVcbik6IEJ1ZmZlciB7XG4gIGNoZWNrVHhIYXNoKEJ1ZmZlci5mcm9tKHNlc3Npb25LZXkubXNnKSk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICBtdXNpZy5wYXJ0aWFsU2lnbih7XG4gICAgICBzZWNyZXRLZXk6IHByaXZhdGVLZXksXG4gICAgICBwdWJsaWNOb25jZTogbm9uY2VTdG9yZS5nZXRSZWYocHVibGljTm9uY2UpLFxuICAgICAgc2Vzc2lvbktleSxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ1ZlcmlmeShcbiAgc2lnOiBCdWZmZXIsXG4gIHB1YmxpY0tleTogQnVmZmVyLFxuICBwdWJsaWNOb25jZTogQnVmZmVyLFxuICBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5XG4pOiBib29sZWFuIHtcbiAgY2hlY2tUeEhhc2goQnVmZmVyLmZyb20oc2Vzc2lvbktleS5tc2cpKTtcbiAgcmV0dXJuIG11c2lnLnBhcnRpYWxWZXJpZnkoeyBzaWcsIHB1YmxpY0tleSwgcHVibGljTm9uY2UsIHNlc3Npb25LZXkgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJBZ2dyZWdhdGVTaWdzKHNpZ3M6IEJ1ZmZlcltdLCBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLnNpZ25BZ2coc2lncywgc2Vzc2lvbktleSkpO1xufVxuXG4vKiogQHJldHVybiBzZXNzaW9uIGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgc2Vzc2lvbiBsYXRlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMlNpZ25pbmdTZXNzaW9uKHNlc3Npb25BcmdzOiB7XG4gIHB1Yk5vbmNlczogVHVwbGU8QnVmZmVyPjtcbiAgdHhIYXNoOiBCdWZmZXI7XG4gIHB1YktleXM6IFR1cGxlPEJ1ZmZlcj47XG4gIGludGVybmFsUHViS2V5OiBCdWZmZXI7XG4gIHRhcFRyZWVSb290OiBCdWZmZXI7XG59KTogU2Vzc2lvbktleSB7XG4gIGNoZWNrVHhIYXNoKHNlc3Npb25BcmdzLnR4SGFzaCk7XG4gIGNvbnN0IGFnZ05vbmNlID0gY3JlYXRlQWdncmVnYXRlTm9uY2Uoc2Vzc2lvbkFyZ3MucHViTm9uY2VzKTtcbiAgY29uc3QgdHdlYWsgPSBjcmVhdGVUYXBUd2VhayhzZXNzaW9uQXJncy5pbnRlcm5hbFB1YktleSwgc2Vzc2lvbkFyZ3MudGFwVHJlZVJvb3QpO1xuICByZXR1cm4gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihhZ2dOb25jZSwgc2Vzc2lvbkFyZ3MudHhIYXNoLCBzZXNzaW9uQXJncy5wdWJLZXlzLCB0d2Vhayk7XG59XG5cbi8qKlxuICogQHJldHVybnMgcHNidCBwcm9wcmlldGFyeSBrZXkgZm9yIG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogSWYgbm8ga2V5IHZhbHVlIGV4aXN0cywgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQc2J0TXVzaWcyUGFydGljaXBhbnRzKGlucHV0OiBQc2J0SW5wdXQpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFydGljaXBhbnRzS2V5VmFscyA9IGdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQ0lQQU5UX1BVQl9LRVlTLFxuICB9KTtcblxuICBpZiAoIXBhcnRpY2lwYW50c0tleVZhbHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChwYXJ0aWNpcGFudHNLZXlWYWxzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZvdW5kICR7cGFydGljaXBhbnRzS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIHBhcnRpY2lwYW50IGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDFgKTtcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKHBhcnRpY2lwYW50c0tleVZhbHNbMF0pO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBzYnQgcHJvcHJpZXRhcnkga2V5IGZvciBtdXNpZzIgcHVibGljIG5vbmNlIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJOb25jZXMoaW5wdXQ6IFBzYnRJbnB1dCk6IFBzYnRNdXNpZzJQdWJOb25jZVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgbm9uY2VLZXlWYWxzID0gZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0LCB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICB9KTtcblxuICBpZiAoIW5vbmNlS2V5VmFscy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5vbmNlS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke25vbmNlS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIG5vbmNlIGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDEgb3IgMmApO1xuICB9XG5cbiAgcmV0dXJuIG5vbmNlS2V5VmFscy5tYXAoKGt2KSA9PiBkZWNvZGVQc2J0TXVzaWcyTm9uY2Uoa3YpKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBwc2J0IHByb3ByaWV0YXJ5IGtleSBmb3IgbXVzaWcyIHBhcnRpYWwgc2lnIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJQYXJ0aWFsU2lncyhpbnB1dDogUHNidElucHV0KTogUHNidE11c2lnMlBhcnRpYWxTaWdbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNpZ0tleVZhbHMgPSBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoaW5wdXQsIHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUFMX1NJRyxcbiAgfSk7XG5cbiAgaWYgKCFzaWdLZXlWYWxzLmxlbmd0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoc2lnS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke3NpZ0tleVZhbHMubGVuZ3RofSBtYXRjaGluZyBwYXJ0aWFsIHNpZ25hdHVyZSBrZXkgdmFsdWUgaW5zdGVhZCBvZiAxIG9yIDJgKTtcbiAgfVxuXG4gIHJldHVybiBzaWdLZXlWYWxzLm1hcCgoa3YpID0+IGRlY29kZVBzYnRNdXNpZzJQYXJ0aWFsU2lnKGt2KSk7XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YSB3aXRoIHRhcEludGVybmFsS2V5IGFuZCB0YXBNZXJrbGVSb290LlxuICogPHRhcE91dHB1dEtleT48dGFwSW5wdXRLZXk+ID0+IDxwYXJ0aWNpcGFudEtleTE+PHBhcnRpY2lwYW50S2V5Mj5cbiAqIFVzaW5nIHRhcE1lcmtsZVJvb3QgYW5kIDIgcGFydGljaXBhbnQga2V5cywgdGhlIHRhcElucHV0S2V5IGlzIHZhbGlkYXRlZCBhbmQgdXNpbmcgdGFwTWVya2xlUm9vdCBhbmQgdGFwSW5wdXRLZXksXG4gKiB0aGUgdGFwT3V0cHV0S2V5IGlzIHZhbGlkYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50cyxcbiAgdGFwSW50ZXJuYWxLZXk6IEJ1ZmZlcixcbiAgdGFwTWVya2xlUm9vdDogQnVmZmVyXG4pOiB2b2lkIHtcbiAgY2hlY2tYT25seVB1YmxpY0tleSh0YXBJbnRlcm5hbEtleSk7XG4gIGNoZWNrVGFwTWVya2xlUm9vdCh0YXBNZXJrbGVSb290KTtcblxuICBjb25zdCBwYXJ0aWNpcGFudFB1YktleXMgPSBwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzO1xuXG4gIGNvbnN0IGludGVybmFsS2V5ID0gY3JlYXRlVGFwSW50ZXJuYWxLZXkocGFydGljaXBhbnRQdWJLZXlzKTtcbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcEludGVybmFsS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0aWNpcGFudHMga2V5ZGF0YSB0YXBJbnRlcm5hbEtleScpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0S2V5ID0gY3JlYXRlVGFwT3V0cHV0S2V5KGludGVybmFsS2V5LCB0YXBNZXJrbGVSb290KTtcbiAgaWYgKCFvdXRwdXRLZXkuZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBPdXRwdXRLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhcnRpY2lwYW50cyBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICB9XG5cbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHModGFwSW50ZXJuYWxLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0YXBJbnRlcm5hbEtleSBhbmQgYWdncmVnYXRlZCBwYXJ0aWNpcGFudCBwdWIga2V5cyBkb2VzIG5vdCBtYXRjaCcpO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwdWJsaWMgbm9uY2Uga2V5IHZhbHVlIGRhdGEgd2l0aCBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogKHJlZmVyIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHNLZXlWYWxEYXRhKS5cbiAqIDxwYXJ0aWNpcGFudEtleTE+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMT5cbiAqIDxwYXJ0aWNpcGFudEtleTI+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMj5cbiAqIENoZWNrcyBhZ2FpbnN0IHBhcnRpY2lwYW50IGtleXMgYW5kIHRhcE91dHB1dEtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHNidE11c2lnMk5vbmNlcyhcbiAgbm9uY2VzS2V5VmFsRGF0YTogUHNidE11c2lnMlB1Yk5vbmNlW10sXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50c1xuKTogdm9pZCB7XG4gIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSk7XG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZm9yRWFjaCgoa3YpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkoa3YpKTtcbiAgaWYgKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMF0uZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMV0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgcGFydGljaXBhbnQgcHViIGtleXMgZm91bmRgKTtcbiAgfVxuXG4gIGlmIChub25jZXNLZXlWYWxEYXRhLmxlbmd0aCA+IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbm9uY2Uga2V5IHZhbHVlIGNvdW50ICR7bm9uY2VzS2V5VmFsRGF0YS5sZW5ndGh9YCk7XG4gIH1cblxuICBub25jZXNLZXlWYWxEYXRhLmZvckVhY2goKG5vbmNlS3YpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZmluZEluZGV4KChwdWJLZXkpID0+XG4gICAgICBub25jZUt2LnBhcnRpY2lwYW50UHViS2V5LmVxdWFscyhwdWJLZXkpXG4gICAgKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbm9uY2Uga2V5ZGF0YSBwYXJ0aWNpcGFudCBwdWIga2V5Jyk7XG4gICAgfVxuXG4gICAgaWYgKCFub25jZUt2LnRhcE91dHB1dEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBub25jZSBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQHJldHVybnMgSW5wdXQgb2JqZWN0IGJ1dCBzaWcgaGFzaCB0eXBlIGRhdGEgaXMgdGFrZW4gb3V0IGZyb20gcGFydGlhbFNpZyBmaWVsZC5cbiAqIElmIHNpZyBoYXNoIHR5cGUgaXMgbm90IGNvbW1vbiBmb3IgYWxsIHNpZ3MsIGVycm9yIG91dCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG1vZGlmaWVkIG9iamVjdCBhbmQgc2luZ2xlIGhhc2ggdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ0hhc2hUeXBlRnJvbVNpZ3MocGFydGlhbFNpZ3M6IFBzYnRNdXNpZzJQYXJ0aWFsU2lnW10pOiB7XG4gIHBhcnRpYWxTaWdzOiBQc2J0TXVzaWcyUGFydGlhbFNpZ1tdO1xuICBzaWdIYXNoVHlwZTogbnVtYmVyO1xufSB7XG4gIGlmICghcGFydGlhbFNpZ3MubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJ0aWFsU2lncyBhcnJheSBjYW4gbm90IGJlIGVtcHR5Jyk7XG4gIH1cbiAgY29uc3QgcFNpZ3NXaXRoSGFzaFR5cGUgPSBwYXJ0aWFsU2lncy5tYXAoKGt2KSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aWFsU2lnLCBwYXJ0aWNpcGFudFB1YktleSwgdGFwT3V0cHV0S2V5IH0gPSBrdjtcbiAgICByZXR1cm4gcGFydGlhbFNpZy5sZW5ndGggPT09IDMzXG4gICAgICA/IHsgcFNpZzogeyBwYXJ0aWFsU2lnOiBwYXJ0aWFsU2lnLnNsaWNlKDAsIDMyKSwgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogcGFydGlhbFNpZ1szMl0gfVxuICAgICAgOiB7IHBTaWc6IHsgcGFydGlhbFNpZywgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogVHJhbnNhY3Rpb24uU0lHSEFTSF9ERUZBVUxUIH07XG4gIH0pO1xuXG4gIGNvbnN0IHNpZ0hhc2hUeXBlID0gcFNpZ3NXaXRoSGFzaFR5cGVbMF0uc2lnSGFzaFR5cGU7XG4gIGlmICghcFNpZ3NXaXRoSGFzaFR5cGUuZXZlcnkoKHBTaWcpID0+IHBTaWcuc2lnSGFzaFR5cGUgPT09IHNpZ0hhc2hUeXBlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2lnbmF0dXJlcyBtdXN0IHVzZSBzYW1lIHNpZyBoYXNoIHR5cGUnKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpYWxTaWdzOiBwU2lnc1dpdGhIYXNoVHlwZS5tYXAoKHsgcFNpZyB9KSA9PiBwU2lnKSwgc2lnSGFzaFR5cGUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMkRldGVybWluaXN0aWNOb25jZShwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKFxuICAgIG11c2lnLmRldGVybWluaXN0aWNOb25jZUdlbih7XG4gICAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgICAgYWdnT3RoZXJOb25jZTogbXVzaWcubm9uY2VBZ2coW3BhcmFtcy5vdGhlck5vbmNlXSksXG4gICAgICBwdWJsaWNLZXlzOiBwYXJhbXMucHVibGljS2V5cyxcbiAgICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgICBtc2c6IHBhcmFtcy5oYXNoLFxuICAgIH0pLnB1YmxpY05vbmNlXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJEZXRlcm1pbmlzdGljU2lnbihwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKToge1xuICBzaWc6IEJ1ZmZlcjtcbiAgc2Vzc2lvbktleTogU2Vzc2lvbktleTtcbiAgcHVibGljTm9uY2U6IEJ1ZmZlcjtcbn0ge1xuICBjb25zdCB7IHNpZywgc2Vzc2lvbktleSwgcHVibGljTm9uY2UgfSA9IG11c2lnLmRldGVybWluaXN0aWNTaWduKHtcbiAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgIGFnZ090aGVyTm9uY2U6IG11c2lnLm5vbmNlQWdnKFtwYXJhbXMub3RoZXJOb25jZV0pLFxuICAgIHB1YmxpY0tleXM6IHBhcmFtcy5wdWJsaWNLZXlzLFxuICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgbXNnOiBwYXJhbXMuaGFzaCxcbiAgfSk7XG4gIHJldHVybiB7IHNpZzogQnVmZmVyLmZyb20oc2lnKSwgc2Vzc2lvbktleSwgcHVibGljTm9uY2U6IEJ1ZmZlci5mcm9tKHB1YmxpY05vbmNlKSB9O1xufVxuIl19
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVzaWcyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL011c2lnMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5R0Esb0VBU0M7QUFPRCw0REFjQztBQUVELGdFQWNDO0FBTUQsb0VBdUJDO0FBTUQsc0RBZ0JDO0FBTUQsZ0VBbUJDO0FBRUQsb0RBRUM7QUFFRCxnREFJQztBQUVELG9EQUVDO0FBRUQsd0NBRUM7QUFXRCw4Q0FjQztBQUVELHdEQVFDO0FBRUQsa0RBRUM7QUFHRCxnRUFXQztBQU1ELGtFQWVDO0FBTUQsc0RBZUM7QUFNRCxnRUFlQztBQVFELG9FQXVCQztBQVNELHdEQTBCQztBQU1ELHdEQW9CQztBQUVELHdFQVVDO0FBRUQsMERBYUM7QUE5ZEQsbURBTXlCO0FBQ3pCLDRDQUEwQztBQUUxQyx3Q0FBK0Q7QUFDL0Qsb0NBQXVDO0FBRXZDLHlDQUFnSDtBQXVDaEg7OztHQUdHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFBN0I7UUFDVSxXQUFNLEdBQWlCLEVBQUUsQ0FBQztJQXdDcEMsQ0FBQztJQXRDQzs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBaUI7UUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILGlCQUFpQixDQUNmLFVBQXNCLEVBQ3RCLFNBQXFCLEVBQ3JCLGNBQTBCLEVBQzFCLE1BQWtCLEVBQ2xCLFNBQWtCO1FBRWxCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4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QUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXNzaW9uS2V5IH0gZnJvbSAnQGJyYW5kb25ibGFjay9tdXNpZyc7XG5cbmltcG9ydCB7XG4gIGNoZWNrUGxhaW5QdWJsaWNLZXksXG4gIGNoZWNrVGFwTWVya2xlUm9vdCxcbiAgY2hlY2tUeEhhc2gsXG4gIGNoZWNrWE9ubHlQdWJsaWNLZXksXG4gIHRvWE9ubHlQdWJsaWNLZXksXG59IGZyb20gJy4vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyBlY2MsIG11c2lnIH0gZnJvbSAnLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IFR1cGxlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVUYXBUd2VhaywgdGFwVHdlYWtQdWJrZXkgfSBmcm9tICcuLi90YXByb290JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgUHNidElucHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMsIFByb3ByaWV0YXJ5S2V5U3VidHlwZSwgUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIH0gZnJvbSAnLi9Qc2J0VXRpbCc7XG5pbXBvcnQgeyBQcm9wcmlldGFyeUtleVZhbHVlIH0gZnJvbSAnLi9Qcm9wcmlldGFyeUtleVZhbFV0aWxzJztcblxuLyoqXG4gKiAgUGFydGljaXBhbnQga2V5IHZhbHVlIG9iamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHRhcEludGVybmFsS2V5OiBCdWZmZXI7XG4gIHBhcnRpY2lwYW50UHViS2V5czogVHVwbGU8QnVmZmVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQc2J0TXVzaWcyRGV0ZXJtaW5pc3RpY1BhcmFtcyB7XG4gIHByaXZhdGVLZXk6IEJ1ZmZlcjtcbiAgb3RoZXJOb25jZTogQnVmZmVyO1xuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+O1xuICBpbnRlcm5hbFB1YktleTogQnVmZmVyO1xuICB0YXBUcmVlUm9vdDogQnVmZmVyO1xuICBoYXNoOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIE5vbmNlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgcGFydGljaXBhbnRQdWJLZXk6IEJ1ZmZlcjtcbiAgdGFwT3V0cHV0S2V5OiBCdWZmZXI7XG4gIHB1Yk5vbmNlOiBCdWZmZXI7XG59XG5cbi8qKlxuICogIFBhcnRpYWwgc2lnbmF0dXJlIGtleSB2YWx1ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHNidE11c2lnMlBhcnRpYWxTaWcge1xuICBwYXJ0aWNpcGFudFB1YktleTogQnVmZmVyO1xuICB0YXBPdXRwdXRLZXk6IEJ1ZmZlcjtcbiAgcGFydGlhbFNpZzogQnVmZmVyO1xufVxuXG4vKipcbiAqIEJlY2F1c2UgbXVzaWcgdXNlcyByZWZlcmVuY2UtZXF1YWwgYnVmZmVycyB0byBjYWNoZSBub25jZXMsIHdlIHdyYXAgaXQgaGVyZSB0byBhbGxvdyB1c2luZ1xuICogbm9uY2VzIHRoYXQgYXJlIGJ5dGUtZXF1YWwgYnV0IG5vdCByZWZlcmVuY2UtZXF1YWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBNdXNpZzJOb25jZVN0b3JlIHtcbiAgcHJpdmF0ZSBub25jZXM6IFVpbnQ4QXJyYXlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBHZXQgb3JpZ2luYWwgQnVmZmVyIGluc3RhbmNlIGZvciBub25jZSAod2hpY2ggbWF5IGJlIGEgY29weSkuXG4gICAqIEByZXR1cm4gYnl0ZS1lcXVhbCBidWZmZXIgdGhhdCBpcyByZWZlcmVuY2UtZXF1YWwgdG8gd2hhdCB3YXMgc3RvcmVkIGVhcmxpZXIgaW4gY3JlYXRlTXVzaWcyTm9uY2VcbiAgICovXG4gIGdldFJlZihub25jZTogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGZvciAoY29uc3QgYiBvZiB0aGlzLm5vbmNlcykge1xuICAgICAgaWYgKEJ1ZmZlci5mcm9tKGIpLmVxdWFscyhub25jZSkpIHtcbiAgICAgICAgcmV0dXJuIGI7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBub25jZWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbXVzaWcyIG5vbmNlIGFuZCBzdG9yZXMgYnVmZmVyIHJlZmVyZW5jZS5cbiAgICogdGFwSW50ZXJuYWxrZXksIHRhcE1lcmtsZVJvb3QsIHRhcEJpcDMyRGVyaXZhdGlvbiBmb3Igcm9vdFdhbGxldEtleSBhcmUgcmVxdWlyZWQgcGVyIHAydHJNdXNpZzIga2V5IHBhdGggaW5wdXQuXG4gICAqIEFsc28gcGFydGljaXBhbnQga2V5cyBhcmUgcmVxdWlyZWQgZnJvbSBwc2J0IHByb3ByaWV0YXJ5IGtleSB2YWx1ZXMuXG4gICAqIFJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vc2Fua2V0MTcyOS80YjUyNWM2MDQ5ZjRkOWUwMzRkMjczNjhjNDlmMjhhNlxuICAgKiBAcGFyYW0gcHJpdmF0ZUtleSAtIHNpZ25lciBwcml2YXRlIGtleVxuICAgKiBAcGFyYW0gcHVibGljS2V5IC0gc2lnbmVyIHh5IHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHhPbmx5UHVibGljS2V5IC0gdHdlYWtlZCBhZ2dyZWdhdGVkIGtleSAodGFwT3V0cHV0S2V5KVxuICAgKiBAcGFyYW0gc2Vzc2lvbklkIEFkZGl0aW9uYWwgZW50cm9weS4gSWYgcHJvdmlkZWQgaXQgbXVzdCBlaXRoZXIgYmUgYSBjb3VudGVyIHVuaXF1ZSB0byB0aGlzIHNlY3JldCBrZXksXG4gICAqIChjb252ZXJ0ZWQgdG8gYW4gYXJyYXkgb2YgMzIgYnl0ZXMpLCBvciAzMiB1bmlmb3JtbHkgcmFuZG9tIGJ5dGVzLlxuICAgKi9cbiAgY3JlYXRlTXVzaWcyTm9uY2UoXG4gICAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbiAgICBwdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgeE9ubHlQdWJsaWNLZXk6IFVpbnQ4QXJyYXksXG4gICAgdHhIYXNoOiBVaW50OEFycmF5LFxuICAgIHNlc3Npb25JZD86IEJ1ZmZlclxuICApOiBVaW50OEFycmF5IHtcbiAgICBpZiAodHhIYXNoLmxlbmd0aCAhPSAzMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR4SGFzaCBzaXplICR7dHhIYXNofWApO1xuICAgIH1cbiAgICBjb25zdCBidWYgPSBtdXNpZy5ub25jZUdlbih7IHNlY3JldEtleTogcHJpdmF0ZUtleSwgcHVibGljS2V5LCB4T25seVB1YmxpY0tleSwgbXNnOiB0eEhhc2gsIHNlc3Npb25JZCB9KTtcbiAgICB0aGlzLm5vbmNlcy5wdXNoKGJ1Zik7XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfVxufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXMuIFN1YlR5cGUgaXMgMHgwMVxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHgtb25seSB0YXBPdXRwdXRLZXl8fHRhcEludGVybmFsS2V5IGFzIHN1YiBrZXlkYXRhLCBwbGFpbiBzaWdpbmluZyBwYXJ0aWNpcGFudCBrZXlzIGFzIHZhbHVlZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyhwYXJ0aWNpcGFudHM6IFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMpOiBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAgY29uc3Qga2V5ZGF0YSA9IFtwYXJ0aWNpcGFudHMudGFwT3V0cHV0S2V5LCBwYXJ0aWNpcGFudHMudGFwSW50ZXJuYWxLZXldLm1hcCgocHVia2V5KSA9PiBjaGVja1hPbmx5UHVibGljS2V5KHB1YmtleSkpO1xuICBjb25zdCB2YWx1ZSA9IHBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudFB1YktleXMubWFwKChwdWJrZXkpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkocHVia2V5KSk7XG4gIGNvbnN0IGtleSA9IHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZUyxcbiAgICBrZXlkYXRhOiBCdWZmZXIuY29uY2F0KGtleWRhdGEpLFxuICB9O1xuICByZXR1cm4geyBrZXksIHZhbHVlOiBCdWZmZXIuY29uY2F0KHZhbHVlKSB9O1xufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5IHZhbCB1dGlsIGZ1bmN0aW9uIGZvciBwdWIgbm9uY2UuIFN1YlR5cGUgaXMgMHgwMlxuICogUmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zYW5rZXQxNzI5LzRiNTI1YzYwNDlmNGQ5ZTAzNGQyNzM2OGM0OWYyOGE2XG4gKiBAcmV0dXJuIHBsYWluLXBhcnRpY2lwYW50UHViS2V5fHx4LW9ubHktdGFwT3V0cHV0S2V5IGFzIHN1YiBrZXlkYXRhLCA2NiBieXRlcyBvZiAyIHB1YiBub25jZXMgYXMgdmFsdWVkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUHViTm9uY2Uobm9uY2U6IFBzYnRNdXNpZzJQdWJOb25jZSk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAobm9uY2UucHViTm9uY2UubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwdWJOb25jZXMgbGVuZ3RoICR7bm9uY2UucHViTm9uY2UubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KG5vbmNlLnBhcnRpY2lwYW50UHViS2V5KSxcbiAgICBjaGVja1hPbmx5UHVibGljS2V5KG5vbmNlLnRhcE91dHB1dEtleSksXG4gIF0pO1xuICBjb25zdCBrZXkgPSB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IG5vbmNlLnB1Yk5vbmNlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQc2J0TXVzaWcyUGFydGlhbFNpZyhwYXJ0aWFsU2lnOiBQc2J0TXVzaWcyUGFydGlhbFNpZyk6IFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBpZiAocGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzIgJiYgcGFydGlhbFNpZy5wYXJ0aWFsU2lnLmxlbmd0aCAhPT0gMzMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFydGlhbFNpZyBsZW5ndGggJHtwYXJ0aWFsU2lnLnBhcnRpYWxTaWcubGVuZ3RofWApO1xuICB9XG4gIGNvbnN0IGtleWRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBjaGVja1BsYWluUHVibGljS2V5KHBhcnRpYWxTaWcucGFydGljaXBhbnRQdWJLZXkpLFxuICAgIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGlhbFNpZy50YXBPdXRwdXRLZXkpLFxuICBdKTtcbiAgY29uc3Qga2V5ID0ge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQUxfU0lHLFxuICAgIGtleWRhdGEsXG4gIH07XG4gIHJldHVybiB7IGtleSwgdmFsdWU6IHBhcnRpYWxTaWcucGFydGlhbFNpZyB9O1xufVxuXG4vKipcbiAqIERlY29kZXMgcHJvcHJpZXRhcnkga2V5IHZhbHVlIGRhdGEgZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzXG4gKiBAcGFyYW0ga3ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHtcbiAgaWYgKFxuICAgIGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHxcbiAgICBrdi5rZXkuc3VidHlwZSAhPT0gUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZU1xuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaWRlbnRpZmllciAke2t2LmtleS5pZGVudGlmaWVyfSBvciBzdWJ0eXBlICR7a3Yua2V5LnN1YnR5cGV9IGZvciBwYXJ0aWNpcGFudHMgcHViIGtleXNgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIHBhcnRpY2lwYW50IHB1YiBrZXlzYCk7XG4gIH1cbiAgY29uc3QgcGFydGljaXBhbnRQdWJLZXlzOiBUdXBsZTxCdWZmZXI+ID0gW3ZhbHVlLnN1YmFycmF5KDAsIDMzKSwgdmFsdWUuc3ViYXJyYXkoMzMpXTtcbiAgaWYgKHBhcnRpY2lwYW50UHViS2V5c1swXS5lcXVhbHMocGFydGljaXBhbnRQdWJLZXlzWzFdKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIHBhcnRpY2lwYW50IHB1YiBrZXlzIGZvdW5kYCk7XG4gIH1cblxuICByZXR1cm4geyB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgwLCAzMiksIHRhcEludGVybmFsS2V5OiBrZXkuc3ViYXJyYXkoMzIpLCBwYXJ0aWNpcGFudFB1YktleXMgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgbm9uY2VcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMk5vbmNlKGt2OiBQcm9wcmlldGFyeUtleVZhbHVlKTogUHNidE11c2lnMlB1Yk5vbmNlIHtcbiAgaWYgKGt2LmtleS5pZGVudGlmaWVyICE9PSBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfHwga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3Igbm9uY2VgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSA2Nikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZWRhdGEgc2l6ZSAke3ZhbHVlLmxlbmd0aH0gZm9yIG5vbmNlYCk7XG4gIH1cblxuICByZXR1cm4geyBwYXJ0aWNpcGFudFB1YktleToga2V5LnN1YmFycmF5KDAsIDMzKSwgdGFwT3V0cHV0S2V5OiBrZXkuc3ViYXJyYXkoMzMpLCBwdWJOb25jZTogdmFsdWUgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGVzIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSBkYXRhIGZvciBtdXNpZzIgcGFydGlhbCBzaWdcbiAqIEBwYXJhbSBrdlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidE11c2lnMlBhcnRpYWxTaWcoa3Y6IFByb3ByaWV0YXJ5S2V5VmFsdWUpOiBQc2J0TXVzaWcyUGFydGlhbFNpZyB7XG4gIGlmIChcbiAgICBrdi5rZXkuaWRlbnRpZmllciAhPT0gUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIHx8XG4gICAga3Yua2V5LnN1YnR5cGUgIT09IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElBTF9TSUdcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkZW50aWZpZXIgJHtrdi5rZXkuaWRlbnRpZmllcn0gb3Igc3VidHlwZSAke2t2LmtleS5zdWJ0eXBlfSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGt2LmtleS5rZXlkYXRhO1xuICBpZiAoa2V5Lmxlbmd0aCAhPT0gNjUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5ZGF0YSBzaXplICR7a2V5Lmxlbmd0aH0gZm9yIHBhcnRpYWwgc2lnYCk7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGt2LnZhbHVlO1xuICBpZiAodmFsdWUubGVuZ3RoICE9PSAzMiAmJiB2YWx1ZS5sZW5ndGggIT09IDMzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlZGF0YSBzaXplICR7dmFsdWUubGVuZ3RofSBmb3IgcGFydGlhbCBzaWdgKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpY2lwYW50UHViS2V5OiBrZXkuc3ViYXJyYXkoMCwgMzMpLCB0YXBPdXRwdXRLZXk6IGtleS5zdWJhcnJheSgzMyksIHBhcnRpYWxTaWc6IHZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBJbnRlcm5hbEtleShwbGFpblB1YktleXM6IEJ1ZmZlcltdKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLmdldFhPbmx5UHVia2V5KG11c2lnLmtleUFnZyhwbGFpblB1YktleXMpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYXBPdXRwdXRLZXkoaW50ZXJuYWxQdWJLZXk6IEJ1ZmZlciwgdGFwVHJlZVJvb3Q6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICB0YXBUd2Vha1B1YmtleShlY2MsIHRvWE9ubHlQdWJsaWNLZXkoaW50ZXJuYWxQdWJLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwVHJlZVJvb3QpKS54T25seVB1YmtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWdncmVnYXRlTm9uY2UocHViTm9uY2VzOiBUdXBsZTxCdWZmZXI+KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLm5vbmNlQWdnKHB1Yk5vbmNlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFwVHdlYWsodGFwSW50ZXJuYWxLZXk6IEJ1ZmZlciwgdGFwTWVya2xlUm9vdDogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNhbGN1bGF0ZVRhcFR3ZWFrKGNoZWNrWE9ubHlQdWJsaWNLZXkodGFwSW50ZXJuYWxLZXkpLCBjaGVja1RhcE1lcmtsZVJvb3QodGFwTWVya2xlUm9vdCkpKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihcbiAgYWdnTm9uY2U6IEJ1ZmZlcixcbiAgaGFzaDogQnVmZmVyLFxuICBwdWJsaWNLZXlzOiBUdXBsZTxCdWZmZXI+LFxuICB0d2VhazogQnVmZmVyXG4pOiBTZXNzaW9uS2V5IHtcbiAgcmV0dXJuIG11c2lnLnN0YXJ0U2lnbmluZ1Nlc3Npb24oYWdnTm9uY2UsIGhhc2gsIHB1YmxpY0tleXMsIHsgdHdlYWssIHhPbmx5OiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ24oXG4gIHByaXZhdGVLZXk6IEJ1ZmZlcixcbiAgcHVibGljTm9uY2U6IFVpbnQ4QXJyYXksXG4gIHNlc3Npb25LZXk6IFNlc3Npb25LZXksXG4gIG5vbmNlU3RvcmU6IE11c2lnMk5vbmNlU3RvcmVcbik6IEJ1ZmZlciB7XG4gIGNoZWNrVHhIYXNoKEJ1ZmZlci5mcm9tKHNlc3Npb25LZXkubXNnKSk7XG4gIHJldHVybiBCdWZmZXIuZnJvbShcbiAgICBtdXNpZy5wYXJ0aWFsU2lnbih7XG4gICAgICBzZWNyZXRLZXk6IHByaXZhdGVLZXksXG4gICAgICBwdWJsaWNOb25jZTogbm9uY2VTdG9yZS5nZXRSZWYocHVibGljTm9uY2UpLFxuICAgICAgc2Vzc2lvbktleSxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVzaWcyUGFydGlhbFNpZ1ZlcmlmeShcbiAgc2lnOiBCdWZmZXIsXG4gIHB1YmxpY0tleTogQnVmZmVyLFxuICBwdWJsaWNOb25jZTogQnVmZmVyLFxuICBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5XG4pOiBib29sZWFuIHtcbiAgY2hlY2tUeEhhc2goQnVmZmVyLmZyb20oc2Vzc2lvbktleS5tc2cpKTtcbiAgcmV0dXJuIG11c2lnLnBhcnRpYWxWZXJpZnkoeyBzaWcsIHB1YmxpY0tleSwgcHVibGljTm9uY2UsIHNlc3Npb25LZXkgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJBZ2dyZWdhdGVTaWdzKHNpZ3M6IEJ1ZmZlcltdLCBzZXNzaW9uS2V5OiBTZXNzaW9uS2V5KTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG11c2lnLnNpZ25BZ2coc2lncywgc2Vzc2lvbktleSkpO1xufVxuXG4vKiogQHJldHVybiBzZXNzaW9uIGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgc2Vzc2lvbiBsYXRlciAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMlNpZ25pbmdTZXNzaW9uKHNlc3Npb25BcmdzOiB7XG4gIHB1Yk5vbmNlczogVHVwbGU8QnVmZmVyPjtcbiAgdHhIYXNoOiBCdWZmZXI7XG4gIHB1YktleXM6IFR1cGxlPEJ1ZmZlcj47XG4gIGludGVybmFsUHViS2V5OiBCdWZmZXI7XG4gIHRhcFRyZWVSb290OiBCdWZmZXI7XG59KTogU2Vzc2lvbktleSB7XG4gIGNoZWNrVHhIYXNoKHNlc3Npb25BcmdzLnR4SGFzaCk7XG4gIGNvbnN0IGFnZ05vbmNlID0gY3JlYXRlQWdncmVnYXRlTm9uY2Uoc2Vzc2lvbkFyZ3MucHViTm9uY2VzKTtcbiAgY29uc3QgdHdlYWsgPSBjcmVhdGVUYXBUd2VhayhzZXNzaW9uQXJncy5pbnRlcm5hbFB1YktleSwgc2Vzc2lvbkFyZ3MudGFwVHJlZVJvb3QpO1xuICByZXR1cm4gc3RhcnRNdXNpZzJTaWduaW5nU2Vzc2lvbihhZ2dOb25jZSwgc2Vzc2lvbkFyZ3MudHhIYXNoLCBzZXNzaW9uQXJncy5wdWJLZXlzLCB0d2Vhayk7XG59XG5cbi8qKlxuICogQHJldHVybnMgcHNidCBwcm9wcmlldGFyeSBrZXkgZm9yIG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogSWYgbm8ga2V5IHZhbHVlIGV4aXN0cywgdW5kZWZpbmVkIGlzIHJldHVybmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQc2J0TXVzaWcyUGFydGljaXBhbnRzKGlucHV0OiBQc2J0SW5wdXQpOiBQc2J0TXVzaWcyUGFydGljaXBhbnRzIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFydGljaXBhbnRzS2V5VmFscyA9IGdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgIGlkZW50aWZpZXI6IFBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQ0lQQU5UX1BVQl9LRVlTLFxuICB9KTtcblxuICBpZiAoIXBhcnRpY2lwYW50c0tleVZhbHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChwYXJ0aWNpcGFudHNLZXlWYWxzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZvdW5kICR7cGFydGljaXBhbnRzS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIHBhcnRpY2lwYW50IGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDFgKTtcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKHBhcnRpY2lwYW50c0tleVZhbHNbMF0pO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHBzYnQgcHJvcHJpZXRhcnkga2V5IGZvciBtdXNpZzIgcHVibGljIG5vbmNlIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJOb25jZXMoaW5wdXQ6IFBzYnRJbnB1dCk6IFBzYnRNdXNpZzJQdWJOb25jZVtdIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgbm9uY2VLZXlWYWxzID0gZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0LCB7XG4gICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUFVCX05PTkNFLFxuICB9KTtcblxuICBpZiAoIW5vbmNlS2V5VmFscy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG5vbmNlS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke25vbmNlS2V5VmFscy5sZW5ndGh9IG1hdGNoaW5nIG5vbmNlIGtleSB2YWx1ZSBpbnN0ZWFkIG9mIDEgb3IgMmApO1xuICB9XG5cbiAgcmV0dXJuIG5vbmNlS2V5VmFscy5tYXAoKGt2KSA9PiBkZWNvZGVQc2J0TXVzaWcyTm9uY2Uoa3YpKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBwc2J0IHByb3ByaWV0YXJ5IGtleSBmb3IgbXVzaWcyIHBhcnRpYWwgc2lnIGtleSB2YWx1ZSBkYXRhXG4gKiBJZiBubyBrZXkgdmFsdWUgZXhpc3RzLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRNdXNpZzJQYXJ0aWFsU2lncyhpbnB1dDogUHNidElucHV0KTogUHNidE11c2lnMlBhcnRpYWxTaWdbXSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNpZ0tleVZhbHMgPSBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoaW5wdXQsIHtcbiAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUFMX1NJRyxcbiAgfSk7XG5cbiAgaWYgKCFzaWdLZXlWYWxzLmxlbmd0aCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoc2lnS2V5VmFscy5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGb3VuZCAke3NpZ0tleVZhbHMubGVuZ3RofSBtYXRjaGluZyBwYXJ0aWFsIHNpZ25hdHVyZSBrZXkgdmFsdWUgaW5zdGVhZCBvZiAxIG9yIDJgKTtcbiAgfVxuXG4gIHJldHVybiBzaWdLZXlWYWxzLm1hcCgoa3YpID0+IGRlY29kZVBzYnRNdXNpZzJQYXJ0aWFsU2lnKGt2KSk7XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YSB3aXRoIHRhcEludGVybmFsS2V5IGFuZCB0YXBNZXJrbGVSb290LlxuICogPHRhcE91dHB1dEtleT48dGFwSW5wdXRLZXk+ID0+IDxwYXJ0aWNpcGFudEtleTE+PHBhcnRpY2lwYW50S2V5Mj5cbiAqIFVzaW5nIHRhcE1lcmtsZVJvb3QgYW5kIDIgcGFydGljaXBhbnQga2V5cywgdGhlIHRhcElucHV0S2V5IGlzIHZhbGlkYXRlZCBhbmQgdXNpbmcgdGFwTWVya2xlUm9vdCBhbmQgdGFwSW5wdXRLZXksXG4gKiB0aGUgdGFwT3V0cHV0S2V5IGlzIHZhbGlkYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHMoXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50cyxcbiAgdGFwSW50ZXJuYWxLZXk6IEJ1ZmZlcixcbiAgdGFwTWVya2xlUm9vdDogQnVmZmVyXG4pOiB2b2lkIHtcbiAgY2hlY2tYT25seVB1YmxpY0tleSh0YXBJbnRlcm5hbEtleSk7XG4gIGNoZWNrVGFwTWVya2xlUm9vdCh0YXBNZXJrbGVSb290KTtcblxuICBjb25zdCBwYXJ0aWNpcGFudFB1YktleXMgPSBwYXJ0aWNpcGFudEtleVZhbERhdGEucGFydGljaXBhbnRQdWJLZXlzO1xuXG4gIGNvbnN0IGludGVybmFsS2V5ID0gY3JlYXRlVGFwSW50ZXJuYWxLZXkocGFydGljaXBhbnRQdWJLZXlzKTtcbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcEludGVybmFsS2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0aWNpcGFudHMga2V5ZGF0YSB0YXBJbnRlcm5hbEtleScpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0S2V5ID0gY3JlYXRlVGFwT3V0cHV0S2V5KGludGVybmFsS2V5LCB0YXBNZXJrbGVSb290KTtcbiAgaWYgKCFvdXRwdXRLZXkuZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS50YXBPdXRwdXRLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhcnRpY2lwYW50cyBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICB9XG5cbiAgaWYgKCFpbnRlcm5hbEtleS5lcXVhbHModGFwSW50ZXJuYWxLZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0YXBJbnRlcm5hbEtleSBhbmQgYWdncmVnYXRlZCBwYXJ0aWNpcGFudCBwdWIga2V5cyBkb2VzIG5vdCBtYXRjaCcpO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IG11c2lnMiBwdWJsaWMgbm9uY2Uga2V5IHZhbHVlIGRhdGEgd2l0aCBwYXJ0aWNpcGFudCBrZXkgdmFsdWUgZGF0YVxuICogKHJlZmVyIGFzc2VydFBzYnRNdXNpZzJQYXJ0aWNpcGFudHNLZXlWYWxEYXRhKS5cbiAqIDxwYXJ0aWNpcGFudEtleTE+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMT5cbiAqIDxwYXJ0aWNpcGFudEtleTI+PHRhcE91dHB1dEtleT4gPT4gPHB1Yk5vbmNlMj5cbiAqIENoZWNrcyBhZ2FpbnN0IHBhcnRpY2lwYW50IGtleXMgYW5kIHRhcE91dHB1dEtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHNidE11c2lnMk5vbmNlcyhcbiAgbm9uY2VzS2V5VmFsRGF0YTogUHNidE11c2lnMlB1Yk5vbmNlW10sXG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YTogUHNidE11c2lnMlBhcnRpY2lwYW50c1xuKTogdm9pZCB7XG4gIGNoZWNrWE9ubHlQdWJsaWNLZXkocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSk7XG4gIHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZm9yRWFjaCgoa3YpID0+IGNoZWNrUGxhaW5QdWJsaWNLZXkoa3YpKTtcbiAgaWYgKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMF0uZXF1YWxzKHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXNbMV0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgcGFydGljaXBhbnQgcHViIGtleXMgZm91bmRgKTtcbiAgfVxuXG4gIGlmIChub25jZXNLZXlWYWxEYXRhLmxlbmd0aCA+IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbm9uY2Uga2V5IHZhbHVlIGNvdW50ICR7bm9uY2VzS2V5VmFsRGF0YS5sZW5ndGh9YCk7XG4gIH1cblxuICBub25jZXNLZXlWYWxEYXRhLmZvckVhY2goKG5vbmNlS3YpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IHBhcnRpY2lwYW50S2V5VmFsRGF0YS5wYXJ0aWNpcGFudFB1YktleXMuZmluZEluZGV4KChwdWJLZXkpID0+XG4gICAgICBub25jZUt2LnBhcnRpY2lwYW50UHViS2V5LmVxdWFscyhwdWJLZXkpXG4gICAgKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbm9uY2Uga2V5ZGF0YSBwYXJ0aWNpcGFudCBwdWIga2V5Jyk7XG4gICAgfVxuXG4gICAgaWYgKCFub25jZUt2LnRhcE91dHB1dEtleS5lcXVhbHMocGFydGljaXBhbnRLZXlWYWxEYXRhLnRhcE91dHB1dEtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBub25jZSBrZXlkYXRhIHRhcE91dHB1dEtleScpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQHJldHVybnMgSW5wdXQgb2JqZWN0IGJ1dCBzaWcgaGFzaCB0eXBlIGRhdGEgaXMgdGFrZW4gb3V0IGZyb20gcGFydGlhbFNpZyBmaWVsZC5cbiAqIElmIHNpZyBoYXNoIHR5cGUgaXMgbm90IGNvbW1vbiBmb3IgYWxsIHNpZ3MsIGVycm9yIG91dCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG1vZGlmaWVkIG9iamVjdCBhbmQgc2luZ2xlIGhhc2ggdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ0hhc2hUeXBlRnJvbVNpZ3MocGFydGlhbFNpZ3M6IFBzYnRNdXNpZzJQYXJ0aWFsU2lnW10pOiB7XG4gIHBhcnRpYWxTaWdzOiBQc2J0TXVzaWcyUGFydGlhbFNpZ1tdO1xuICBzaWdIYXNoVHlwZTogbnVtYmVyO1xufSB7XG4gIGlmICghcGFydGlhbFNpZ3MubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJ0aWFsU2lncyBhcnJheSBjYW4gbm90IGJlIGVtcHR5Jyk7XG4gIH1cbiAgY29uc3QgcFNpZ3NXaXRoSGFzaFR5cGUgPSBwYXJ0aWFsU2lncy5tYXAoKGt2KSA9PiB7XG4gICAgY29uc3QgeyBwYXJ0aWFsU2lnLCBwYXJ0aWNpcGFudFB1YktleSwgdGFwT3V0cHV0S2V5IH0gPSBrdjtcbiAgICByZXR1cm4gcGFydGlhbFNpZy5sZW5ndGggPT09IDMzXG4gICAgICA/IHsgcFNpZzogeyBwYXJ0aWFsU2lnOiBwYXJ0aWFsU2lnLnNsaWNlKDAsIDMyKSwgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogcGFydGlhbFNpZ1szMl0gfVxuICAgICAgOiB7IHBTaWc6IHsgcGFydGlhbFNpZywgcGFydGljaXBhbnRQdWJLZXksIHRhcE91dHB1dEtleSB9LCBzaWdIYXNoVHlwZTogVHJhbnNhY3Rpb24uU0lHSEFTSF9ERUZBVUxUIH07XG4gIH0pO1xuXG4gIGNvbnN0IHNpZ0hhc2hUeXBlID0gcFNpZ3NXaXRoSGFzaFR5cGVbMF0uc2lnSGFzaFR5cGU7XG4gIGlmICghcFNpZ3NXaXRoSGFzaFR5cGUuZXZlcnkoKHBTaWcpID0+IHBTaWcuc2lnSGFzaFR5cGUgPT09IHNpZ0hhc2hUeXBlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2lnbmF0dXJlcyBtdXN0IHVzZSBzYW1lIHNpZyBoYXNoIHR5cGUnKTtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnRpYWxTaWdzOiBwU2lnc1dpdGhIYXNoVHlwZS5tYXAoKHsgcFNpZyB9KSA9PiBwU2lnKSwgc2lnSGFzaFR5cGUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11c2lnMkRldGVybWluaXN0aWNOb25jZShwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKTogQnVmZmVyIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKFxuICAgIG11c2lnLmRldGVybWluaXN0aWNOb25jZUdlbih7XG4gICAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgICAgYWdnT3RoZXJOb25jZTogbXVzaWcubm9uY2VBZ2coW3BhcmFtcy5vdGhlck5vbmNlXSksXG4gICAgICBwdWJsaWNLZXlzOiBwYXJhbXMucHVibGljS2V5cyxcbiAgICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgICBtc2c6IHBhcmFtcy5oYXNoLFxuICAgIH0pLnB1YmxpY05vbmNlXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXNpZzJEZXRlcm1pbmlzdGljU2lnbihwYXJhbXM6IFBzYnRNdXNpZzJEZXRlcm1pbmlzdGljUGFyYW1zKToge1xuICBzaWc6IEJ1ZmZlcjtcbiAgc2Vzc2lvbktleTogU2Vzc2lvbktleTtcbiAgcHVibGljTm9uY2U6IEJ1ZmZlcjtcbn0ge1xuICBjb25zdCB7IHNpZywgc2Vzc2lvbktleSwgcHVibGljTm9uY2UgfSA9IG11c2lnLmRldGVybWluaXN0aWNTaWduKHtcbiAgICBzZWNyZXRLZXk6IHBhcmFtcy5wcml2YXRlS2V5LFxuICAgIGFnZ090aGVyTm9uY2U6IG11c2lnLm5vbmNlQWdnKFtwYXJhbXMub3RoZXJOb25jZV0pLFxuICAgIHB1YmxpY0tleXM6IHBhcmFtcy5wdWJsaWNLZXlzLFxuICAgIHR3ZWFrczogW3sgdHdlYWs6IGNyZWF0ZVRhcFR3ZWFrKHBhcmFtcy5pbnRlcm5hbFB1YktleSwgcGFyYW1zLnRhcFRyZWVSb290KSwgeE9ubHk6IHRydWUgfV0sXG4gICAgbXNnOiBwYXJhbXMuaGFzaCxcbiAgfSk7XG4gIHJldHVybiB7IHNpZzogQnVmZmVyLmZyb20oc2lnKSwgc2Vzc2lvbktleSwgcHVibGljTm9uY2U6IEJ1ZmZlci5mcm9tKHB1YmxpY05vbmNlKSB9O1xufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { PsbtInput, PsbtOutput } from 'bip174/src/lib/interfaces';
2
+ import { ProprietaryKey } from 'bip174/src/lib/proprietaryKeyVal';
3
+ import { UtxoPsbt } from './UtxoPsbt';
4
+ /**
5
+ * Psbt proprietary keydata object search fields.
6
+ * <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
7
+ */
8
+ export interface ProprietaryKeySearch {
9
+ identifier: string;
10
+ subtype?: number;
11
+ keydata?: Buffer;
12
+ identifierEncoding?: BufferEncoding;
13
+ }
14
+ /**
15
+ * Psbt proprietary keydata object.
16
+ * <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
17
+ * => <bytes valuedata>
18
+ */
19
+ export interface ProprietaryKeyValue {
20
+ key: ProprietaryKey;
21
+ value: Buffer;
22
+ }
23
+ export declare function getProprietaryKeyValuesFromUnknownKeyValues(psbtField: PsbtInput | PsbtOutput, keySearch?: ProprietaryKeySearch): ProprietaryKeyValue[];
24
+ export declare function deleteProprietaryKeyValuesFromUnknownKeyValues(psbtField: PsbtInput | PsbtOutput, keysToDelete?: ProprietaryKeySearch): void;
25
+ export declare function updateProprietaryKeyValuesFromUnknownKeyValues(keyValueData: ProprietaryKeyValue, psbtField: PsbtInput | PsbtOutput): void;
26
+ export declare function addProprietaryKeyValuesFromUnknownKeyValues(psbt: UtxoPsbt, entry: string, index: number, keyValueData: ProprietaryKeyValue): void;
27
+ //# sourceMappingURL=ProprietaryKeyValUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProprietaryKeyValUtils.d.ts","sourceRoot":"","sources":["../../../src/bitgo/ProprietaryKeyValUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAA8C,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,cAAc,CAAC;CACrC;AACD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,SAAS,GAAG,UAAU,EACjC,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,EAAE,CAoBvB;AAED,wBAAgB,8CAA8C,CAC5D,SAAS,EAAE,SAAS,GAAG,UAAU,EACjC,YAAY,CAAC,EAAE,oBAAoB,GAClC,IAAI,CAkBN;AAED,wBAAgB,8CAA8C,CAC5D,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAE,SAAS,GAAG,UAAU,GAChC,IAAI,CAYN;AAED,wBAAgB,2CAA2C,CACzD,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,mBAAmB,GAChC,IAAI,CAiBN"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProprietaryKeyValuesFromUnknownKeyValues = getProprietaryKeyValuesFromUnknownKeyValues;
4
+ exports.deleteProprietaryKeyValuesFromUnknownKeyValues = deleteProprietaryKeyValuesFromUnknownKeyValues;
5
+ exports.updateProprietaryKeyValuesFromUnknownKeyValues = updateProprietaryKeyValuesFromUnknownKeyValues;
6
+ exports.addProprietaryKeyValuesFromUnknownKeyValues = addProprietaryKeyValuesFromUnknownKeyValues;
7
+ const proprietaryKeyVal_1 = require("bip174/src/lib/proprietaryKeyVal");
8
+ function getProprietaryKeyValuesFromUnknownKeyValues(psbtField, keySearch) {
9
+ if (!psbtField.unknownKeyVals?.length) {
10
+ return [];
11
+ }
12
+ if (keySearch && keySearch.subtype === undefined && Buffer.isBuffer(keySearch.keydata)) {
13
+ throw new Error('invalid proprietary key search filter combination. subtype is required');
14
+ }
15
+ const keyVals = psbtField.unknownKeyVals.map(({ key, value }, i) => {
16
+ return { key: (0, proprietaryKeyVal_1.decodeProprietaryKey)(key), value };
17
+ });
18
+ return keyVals.filter((keyVal) => {
19
+ return (keySearch === undefined ||
20
+ (keySearch.identifier === keyVal.key.identifier &&
21
+ (keySearch.subtype === undefined ||
22
+ (keySearch.subtype === keyVal.key.subtype &&
23
+ (!Buffer.isBuffer(keySearch.keydata) || keySearch.keydata.equals(keyVal.key.keydata))))));
24
+ });
25
+ }
26
+ function deleteProprietaryKeyValuesFromUnknownKeyValues(psbtField, keysToDelete) {
27
+ if (!psbtField.unknownKeyVals?.length) {
28
+ return;
29
+ }
30
+ if (keysToDelete && keysToDelete.subtype === undefined && Buffer.isBuffer(keysToDelete.keydata)) {
31
+ throw new Error('invalid proprietary key search filter combination. subtype is required');
32
+ }
33
+ psbtField.unknownKeyVals = psbtField.unknownKeyVals.filter((keyValue, i) => {
34
+ const key = (0, proprietaryKeyVal_1.decodeProprietaryKey)(keyValue.key);
35
+ return !(keysToDelete === undefined ||
36
+ (keysToDelete.identifier === key.identifier &&
37
+ (keysToDelete.subtype === undefined ||
38
+ (keysToDelete.subtype === key.subtype &&
39
+ (!Buffer.isBuffer(keysToDelete.keydata) || keysToDelete.keydata.equals(key.keydata))))));
40
+ });
41
+ }
42
+ function updateProprietaryKeyValuesFromUnknownKeyValues(keyValueData, psbtField) {
43
+ if (!psbtField.unknownKeyVals?.length) {
44
+ return;
45
+ }
46
+ const key = (0, proprietaryKeyVal_1.encodeProprietaryKey)(keyValueData.key);
47
+ const { value } = keyValueData;
48
+ const ukvIndex = psbtField.unknownKeyVals.findIndex((ukv) => ukv.key.equals(key));
49
+ if (ukvIndex <= -1) {
50
+ throw new Error(`The Key-Value pair does not exist within the PSBT.`);
51
+ }
52
+ psbtField.unknownKeyVals[ukvIndex] = { key, value };
53
+ }
54
+ function addProprietaryKeyValuesFromUnknownKeyValues(psbt, entry, index, keyValueData) {
55
+ if (index < 0) {
56
+ throw new Error('Not a valid index within the PSBT to add proprietary key value.');
57
+ }
58
+ if (entry === 'input') {
59
+ psbt.addUnknownKeyValToInput(index, {
60
+ key: (0, proprietaryKeyVal_1.encodeProprietaryKey)(keyValueData.key),
61
+ value: keyValueData.value,
62
+ });
63
+ }
64
+ else if (entry === 'output') {
65
+ psbt.addUnknownKeyValToOutput(index, {
66
+ key: (0, proprietaryKeyVal_1.encodeProprietaryKey)(keyValueData.key),
67
+ value: keyValueData.value,
68
+ });
69
+ }
70
+ else {
71
+ throw new Error("Not a valid PSBT entry, only valid for 'input' or 'output'.");
72
+ }
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvcHJpZXRhcnlLZXlWYWxVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9Qcm9wcmlldGFyeUtleVZhbFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0JBLGtHQXVCQztBQUVELHdHQXFCQztBQUVELHdHQWVDO0FBRUQsa0dBc0JDO0FBOUdELHdFQUE4RztBQXVCOUcsU0FBZ0IsMkNBQTJDLENBQ3pELFNBQWlDLEVBQ2pDLFNBQWdDO0lBRWhDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBQSx3Q0FBb0IsRUFBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQy9CLE9BQU8sQ0FDTCxTQUFTLEtBQUssU0FBUztZQUN2QixDQUFDLFNBQVMsQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVO2dCQUM3QyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztvQkFDOUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxH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QUM7U0FBTSxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFO1lBQ25DLEdBQUcsRUFBRSxJQUFBLHdDQUFvQixFQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7WUFDM0MsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidElucHV0LCBQc2J0T3V0cHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkZWNvZGVQcm9wcmlldGFyeUtleSwgZW5jb2RlUHJvcHJpZXRhcnlLZXksIFByb3ByaWV0YXJ5S2V5IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvcHJvcHJpZXRhcnlLZXlWYWwnO1xuaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuL1V0eG9Qc2J0JztcblxuLyoqXG4gKiBQc2J0IHByb3ByaWV0YXJ5IGtleWRhdGEgb2JqZWN0IHNlYXJjaCBmaWVsZHMuXG4gKiA8Y29tcGFjdCBzaXplIHVpbnQgaWRlbnRpZmllciBsZW5ndGg+IDxieXRlcyBpZGVudGlmaWVyPiA8Y29tcGFjdCBzaXplIHVpbnQgc3VidHlwZT4gPGJ5dGVzIHN1YmtleWRhdGE+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHJpZXRhcnlLZXlTZWFyY2gge1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIHN1YnR5cGU/OiBudW1iZXI7XG4gIGtleWRhdGE/OiBCdWZmZXI7XG4gIGlkZW50aWZpZXJFbmNvZGluZz86IEJ1ZmZlckVuY29kaW5nO1xufVxuLyoqXG4gKiBQc2J0IHByb3ByaWV0YXJ5IGtleWRhdGEgb2JqZWN0LlxuICogPGNvbXBhY3Qgc2l6ZSB1aW50IGlkZW50aWZpZXIgbGVuZ3RoPiA8Ynl0ZXMgaWRlbnRpZmllcj4gPGNvbXBhY3Qgc2l6ZSB1aW50IHN1YnR5cGU+IDxieXRlcyBzdWJrZXlkYXRhPlxuICogPT4gPGJ5dGVzIHZhbHVlZGF0YT5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wcmlldGFyeUtleVZhbHVlIHtcbiAga2V5OiBQcm9wcmlldGFyeUtleTtcbiAgdmFsdWU6IEJ1ZmZlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMoXG4gIHBzYnRGaWVsZDogUHNidElucHV0IHwgUHNidE91dHB1dCxcbiAga2V5U2VhcmNoPzogUHJvcHJpZXRhcnlLZXlTZWFyY2hcbik6IFByb3ByaWV0YXJ5S2V5VmFsdWVbXSB7XG4gIGlmICghcHNidEZpZWxkLnVua25vd25LZXlWYWxzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoa2V5U2VhcmNoICYmIGtleVNlYXJjaC5zdWJ0eXBlID09PSB1bmRlZmluZWQgJiYgQnVmZmVyLmlzQnVmZmVyKGtleVNlYXJjaC5rZXlkYXRhKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwcm9wcmlldGFyeSBrZXkgc2VhcmNoIGZpbHRlciBjb21iaW5hdGlvbi4gc3VidHlwZSBpcyByZXF1aXJlZCcpO1xuICB9XG4gIGNvbnN0IGtleVZhbHMgPSBwc2J0RmllbGQudW5rbm93bktleVZhbHMubWFwKCh7IGtleSwgdmFsdWUgfSwgaSkgPT4ge1xuICAgIHJldHVybiB7IGtleTogZGVjb2RlUHJvcHJpZXRhcnlLZXkoa2V5KSwgdmFsdWUgfTtcbiAgfSk7XG4gIHJldHVybiBrZXlWYWxzLmZpbHRlcigoa2V5VmFsKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGtleVNlYXJjaCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAoa2V5U2VhcmNoLmlkZW50aWZpZXIgPT09IGtleVZhbC5rZXkuaWRlbnRpZmllciAmJlxuICAgICAgICAoa2V5U2VhcmNoLnN1YnR5cGUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIChrZXlTZWFyY2guc3VidHlwZSA9PT0ga2V5VmFsLmtleS5zdWJ0eXBlICYmXG4gICAgICAgICAgICAoIUJ1ZmZlci5pc0J1ZmZlcihrZXlTZWFyY2gua2V5ZGF0YSkgfHwga2V5U2VhcmNoLmtleWRhdGEuZXF1YWxzKGtleVZhbC5rZXkua2V5ZGF0YSkpKSkpXG4gICAgKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVQcm9wcmlldGFyeUtleVZhbHVlc0Zyb21Vbmtub3duS2V5VmFsdWVzKFxuICBwc2J0RmllbGQ6IFBzYnRJbnB1dCB8IFBzYnRPdXRwdXQsXG4gIGtleXNUb0RlbGV0ZT86IFByb3ByaWV0YXJ5S2V5U2VhcmNoXG4pOiB2b2lkIHtcbiAgaWYgKCFwc2J0RmllbGQudW5rbm93bktleVZhbHM/Lmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChrZXlzVG9EZWxldGUgJiYga2V5c1RvRGVsZXRlLnN1YnR5cGUgPT09IHVuZGVmaW5lZCAmJiBCdWZmZXIuaXNCdWZmZXIoa2V5c1RvRGVsZXRlLmtleWRhdGEpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByb3ByaWV0YXJ5IGtleSBzZWFyY2ggZmlsdGVyIGNvbWJpbmF0aW9uLiBzdWJ0eXBlIGlzIHJlcXVpcmVkJyk7XG4gIH1cbiAgcHNidEZpZWxkLnVua25vd25LZXlWYWxzID0gcHNidEZpZWxkLnVua25vd25LZXlWYWxzLmZpbHRlcigoa2V5VmFsdWUsIGkpID0+IHtcbiAgICBjb25zdCBrZXkgPSBkZWNvZGVQcm9wcmlldGFyeUtleShrZXlWYWx1ZS5rZXkpO1xuICAgIHJldHVybiAhKFxuICAgICAga2V5c1RvRGVsZXRlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIChrZXlzVG9EZWxldGUuaWRlbnRpZmllciA9PT0ga2V5LmlkZW50aWZpZXIgJiZcbiAgICAgICAgKGtleXNUb0RlbGV0ZS5zdWJ0eXBlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAoa2V5c1RvRGVsZXRlLnN1YnR5cGUgPT09IGtleS5zdWJ0eXBlICYmXG4gICAgICAgICAgICAoIUJ1ZmZlci5pc0J1ZmZlcihrZXlzVG9EZWxldGUua2V5ZGF0YSkgfHwga2V5c1RvRGVsZXRlLmtleWRhdGEuZXF1YWxzKGtleS5rZXlkYXRhKSkpKSlcbiAgICApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMoXG4gIGtleVZhbHVlRGF0YTogUHJvcHJpZXRhcnlLZXlWYWx1ZSxcbiAgcHNidEZpZWxkOiBQc2J0SW5wdXQgfCBQc2J0T3V0cHV0XG4pOiB2b2lkIHtcbiAgaWYgKCFwc2J0RmllbGQudW5rbm93bktleVZhbHM/Lmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IGVuY29kZVByb3ByaWV0YXJ5S2V5KGtleVZhbHVlRGF0YS5rZXkpO1xuICBjb25zdCB7IHZhbHVlIH0gPSBrZXlWYWx1ZURhdGE7XG4gIGNvbnN0IHVrdkluZGV4ID0gcHNidEZpZWxkLnVua25vd25LZXlWYWxzLmZpbmRJbmRleCgodWt2KSA9PiB1a3Yua2V5LmVxdWFscyhrZXkpKTtcbiAgaWYgKHVrdkluZGV4IDw9IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgS2V5LVZhbHVlIHBhaXIgZG9lcyBub3QgZXhpc3Qgd2l0aGluIHRoZSBQU0JULmApO1xuICB9XG4gIHBzYnRGaWVsZC51bmtub3duS2V5VmFsc1t1a3ZJbmRleF0gPSB7IGtleSwgdmFsdWUgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBlbnRyeTogc3RyaW5nLFxuICBpbmRleDogbnVtYmVyLFxuICBrZXlWYWx1ZURhdGE6IFByb3ByaWV0YXJ5S2V5VmFsdWVcbik6IHZvaWQge1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBpbmRleCB3aXRoaW4gdGhlIFBTQlQgdG8gYWRkIHByb3ByaWV0YXJ5IGtleSB2YWx1ZS4nKTtcbiAgfVxuICBpZiAoZW50cnkgPT09ICdpbnB1dCcpIHtcbiAgICBwc2J0LmFkZFVua25vd25LZXlWYWxUb0lucHV0KGluZGV4LCB7XG4gICAgICBrZXk6IGVuY29kZVByb3ByaWV0YXJ5S2V5KGtleVZhbHVlRGF0YS5rZXkpLFxuICAgICAgdmFsdWU6IGtleVZhbHVlRGF0YS52YWx1ZSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChlbnRyeSA9PT0gJ291dHB1dCcpIHtcbiAgICBwc2J0LmFkZFVua25vd25LZXlWYWxUb091dHB1dChpbmRleCwge1xuICAgICAga2V5OiBlbmNvZGVQcm9wcmlldGFyeUtleShrZXlWYWx1ZURhdGEua2V5KSxcbiAgICAgIHZhbHVlOiBrZXlWYWx1ZURhdGEudmFsdWUsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgdmFsaWQgUFNCVCBlbnRyeSwgb25seSB2YWxpZCBmb3IgJ2lucHV0JyBvciAnb3V0cHV0Jy5cIik7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
- import { ProprietaryKey } from 'bip174/src/lib/proprietaryKeyVal';
2
- import { PsbtInput } from 'bip174/src/lib/interfaces';
1
+ import { PsbtInput, PsbtOutput } from 'bip174/src/lib/interfaces';
3
2
  import { Psbt } from 'bitcoinjs-lib/src/psbt';
3
+ import { ProprietaryKeySearch, ProprietaryKeyValue } from './ProprietaryKeyValUtils';
4
4
  /**
5
5
  * bitgo proprietary key identifier
6
6
  */
@@ -14,30 +14,12 @@ export declare enum ProprietaryKeySubtype {
14
14
  MUSIG2_PUB_NONCE = 2,
15
15
  MUSIG2_PARTIAL_SIG = 3
16
16
  }
17
- /**
18
- * Psbt proprietary keydata object.
19
- * <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
20
- * => <bytes valuedata>
21
- */
22
- export interface ProprietaryKeyValue {
23
- key: ProprietaryKey;
24
- value: Buffer;
25
- }
26
- /**
27
- * Psbt proprietary keydata object search fields.
28
- * <compact size uint identifier length> <bytes identifier> <compact size uint subtype> <bytes subkeydata>
29
- */
30
- export interface ProprietaryKeySearch {
31
- identifier: string;
32
- subtype?: number;
33
- keydata?: Buffer;
34
- identifierEncoding?: BufferEncoding;
35
- }
36
17
  /**
37
18
  * Search any data from psbt proprietary key value against keydata.
38
19
  * Default identifierEncoding is utf-8 for identifier.
39
20
  */
40
21
  export declare function getPsbtInputProprietaryKeyVals(input: PsbtInput, keySearch?: ProprietaryKeySearch): ProprietaryKeyValue[];
22
+ export declare function getPsbtOutputProprietaryKeyVals(output: PsbtOutput, keySearch?: ProprietaryKeySearch): ProprietaryKeyValue[];
41
23
  /**
42
24
  * @return partialSig/tapScriptSig/MUSIG2_PARTIAL_SIG count iff input is not finalized
43
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PsbtUtil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/PsbtUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,uBAAuB,IAAO;IAC9B,2BAA2B,IAAO;IAClC,gBAAgB,IAAO;IACvB,kBAAkB,IAAO;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,cAAc,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,EAAE,CAmBvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;KAGK;AACL,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CA6B1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,UAAO,GAAG,CAAC,CAShF"}
1
+ {"version":3,"file":"PsbtUtil.d.ts","sourceRoot":"","sources":["../../../src/bitgo/PsbtUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAEL,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,uBAAuB,IAAO;IAC9B,2BAA2B,IAAO;IAClC,gBAAgB,IAAO;IACvB,kBAAkB,IAAO;CAC1B;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,EAAE,CAKvB;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,UAAU,EAClB,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,EAAE,CAKvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED;;;KAGK;AACL,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CA6B1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,UAAO,GAAG,CAAC,CAShF"}
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProprietaryKeySubtype = exports.PSBT_PROPRIETARY_IDENTIFIER = void 0;
4
4
  exports.getPsbtInputProprietaryKeyVals = getPsbtInputProprietaryKeyVals;
5
+ exports.getPsbtOutputProprietaryKeyVals = getPsbtOutputProprietaryKeyVals;
5
6
  exports.getPsbtInputSignatureCount = getPsbtInputSignatureCount;
6
7
  exports.isPsbtInputFinalized = isPsbtInputFinalized;
7
8
  exports.isPsbt = isPsbt;
8
9
  exports.toPsbtBuffer = toPsbtBuffer;
9
10
  exports.withUnsafeNonSegwit = withUnsafeNonSegwit;
10
- const proprietaryKeyVal_1 = require("bip174/src/lib/proprietaryKeyVal");
11
+ const ProprietaryKeyValUtils_1 = require("./ProprietaryKeyValUtils");
11
12
  /**
12
13
  * bitgo proprietary key identifier
13
14
  */
@@ -30,19 +31,13 @@ function getPsbtInputProprietaryKeyVals(input, keySearch) {
30
31
  if (!input.unknownKeyVals?.length) {
31
32
  return [];
32
33
  }
33
- if (keySearch && keySearch.subtype === undefined && Buffer.isBuffer(keySearch.keydata)) {
34
- throw new Error('invalid proprietary key search filter combination. subtype is required');
34
+ return (0, ProprietaryKeyValUtils_1.getProprietaryKeyValuesFromUnknownKeyValues)(input, keySearch);
35
+ }
36
+ function getPsbtOutputProprietaryKeyVals(output, keySearch) {
37
+ if (!output.unknownKeyVals?.length) {
38
+ return [];
35
39
  }
36
- const keyVals = input.unknownKeyVals.map(({ key, value }, i) => {
37
- return { key: (0, proprietaryKeyVal_1.decodeProprietaryKey)(key), value };
38
- });
39
- return keyVals.filter((keyVal) => {
40
- return (keySearch === undefined ||
41
- (keySearch.identifier === keyVal.key.identifier &&
42
- (keySearch.subtype === undefined ||
43
- (keySearch.subtype === keyVal.key.subtype &&
44
- (!Buffer.isBuffer(keySearch.keydata) || keySearch.keydata.equals(keyVal.key.keydata))))));
45
- });
40
+ return (0, ProprietaryKeyValUtils_1.getProprietaryKeyValuesFromUnknownKeyValues)(output, keySearch);
46
41
  }
47
42
  /**
48
43
  * @return partialSig/tapScriptSig/MUSIG2_PARTIAL_SIG count iff input is not finalized
@@ -129,4 +124,4 @@ function withUnsafeNonSegwit(psbt, fn, unsafe = true) {
129
124
  psbt.__CACHE.__WARN_UNSAFE_SIGN_NONSEGWIT = true;
130
125
  }
131
126
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHNidFV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vUHNidFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNENBLHdFQXNCQztBQUtELGdFQVlDO0FBS0Qsb0RBRUM7QUFNRCx3QkFVQztBQWFELG9DQTZCQztBQUtELGtEQVNDO0FBbEtELHdFQUF3RjtBQUl4Rjs7R0FFRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsT0FBTyxDQUFDO0FBRW5EOztHQUVHO0FBQ0gsSUFBWSxxQkFLWDtBQUxELFdBQVkscUJBQXFCO0lBQy9CLHVHQUE4QixDQUFBO0lBQzlCLCtHQUFrQyxDQUFBO0lBQ2xDLHlGQUF1QixDQUFBO0lBQ3ZCLDZGQUF5QixDQUFBO0FBQzNCLENBQUMsRUFMVyxxQkFBcUIscUNBQXJCLHFCQUFxQixRQUtoQztBQXVCRDs7O0dBR0c7QUFDSCxTQUFnQiw4QkFBOEIsQ0FDNUMsS0FBZ0IsRUFDaEIsU0FBZ0M7SUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RixNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFBLHdDQUFvQixFQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FB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UyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBVSxDQUFDO1FBQzdDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxNQUFjLENBQUM7WUFDbkIsSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBSSxJQUFVLEVBQUUsRUFBVyxFQUFFLE1BQU0sR0FBRyxJQUFJO0lBQzFFLElBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDO0lBQ3RELElBQVksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDN0QsSUFBSSxDQUFDO1FBQ0gsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNkLENBQUM7WUFBUyxDQUFDO1FBQ1IsSUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckQsSUFBWSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7SUFDNUQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWNvZGVQcm9wcmlldGFyeUtleSwgUHJvcHJpZXRhcnlLZXkgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9wcm9wcmlldGFyeUtleVZhbCc7XG5pbXBvcnQgeyBQc2J0SW5wdXQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBzYnQgfSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9wc2J0JztcblxuLyoqXG4gKiBiaXRnbyBwcm9wcmlldGFyeSBrZXkgaWRlbnRpZmllclxuICovXG5leHBvcnQgY29uc3QgUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSID0gJ0JJVEdPJztcblxuLyoqXG4gKiBzdWJ0eXBlIGZvciBwcm9wcmlldGFyeSBrZXlzIHRoYXQgYml0Z28gdXNlc1xuICovXG5leHBvcnQgZW51bSBQcm9wcmlldGFyeUtleVN1YnR5cGUge1xuICBaRUNfQ09OU0VOU1VTX0JSQU5DSF9JRCA9IDB4MDAsXG4gIE1VU0lHMl9QQVJUSUNJUEFOVF9QVUJfS0VZUyA9IDB4MDEsXG4gIE1VU0lHMl9QVUJfTk9OQ0UgPSAweDAyLFxuICBNVVNJRzJfUEFSVElBTF9TSUcgPSAweDAzLFxufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5ZGF0YSBvYmplY3QuXG4gKiA8Y29tcGFjdCBzaXplIHVpbnQgaWRlbnRpZmllciBsZW5ndGg+IDxieXRlcyBpZGVudGlmaWVyPiA8Y29tcGFjdCBzaXplIHVpbnQgc3VidHlwZT4gPGJ5dGVzIHN1YmtleWRhdGE+XG4gKiA9PiA8Ynl0ZXMgdmFsdWVkYXRhPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ByaWV0YXJ5S2V5VmFsdWUge1xuICBrZXk6IFByb3ByaWV0YXJ5S2V5O1xuICB2YWx1ZTogQnVmZmVyO1xufVxuXG4vKipcbiAqIFBzYnQgcHJvcHJpZXRhcnkga2V5ZGF0YSBvYmplY3Qgc2VhcmNoIGZpZWxkcy5cbiAqIDxjb21wYWN0IHNpemUgdWludCBpZGVudGlmaWVyIGxlbmd0aD4gPGJ5dGVzIGlkZW50aWZpZXI+IDxjb21wYWN0IHNpemUgdWludCBzdWJ0eXBlPiA8Ynl0ZXMgc3Via2V5ZGF0YT5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wcmlldGFyeUtleVNlYXJjaCB7XG4gIGlkZW50aWZpZXI6IHN0cmluZztcbiAgc3VidHlwZT86IG51bWJlcjtcbiAga2V5ZGF0YT86IEJ1ZmZlcjtcbiAgaWRlbnRpZmllckVuY29kaW5nPzogQnVmZmVyRW5jb2Rpbmc7XG59XG5cbi8qKlxuICogU2VhcmNoIGFueSBkYXRhIGZyb20gcHNidCBwcm9wcmlldGFyeSBrZXkgdmFsdWUgYWdhaW5zdCBrZXlkYXRhLlxuICogRGVmYXVsdCBpZGVudGlmaWVyRW5jb2RpbmcgaXMgdXRmLTggZm9yIGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoXG4gIGlucHV0OiBQc2J0SW5wdXQsXG4gIGtleVNlYXJjaD86IFByb3ByaWV0YXJ5S2V5U2VhcmNoXG4pOiBQcm9wcmlldGFyeUtleVZhbHVlW10ge1xuICBpZiAoIWlucHV0LnVua25vd25LZXlWYWxzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKGtleVNlYXJjaCAmJiBrZXlTZWFyY2guc3VidHlwZSA9PT0gdW5kZWZpbmVkICYmIEJ1ZmZlci5pc0J1ZmZlcihrZXlTZWFyY2gua2V5ZGF0YSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcHJvcHJpZXRhcnkga2V5IHNlYXJjaCBmaWx0ZXIgY29tYmluYXRpb24uIHN1YnR5cGUgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBrZXlWYWxzID0gaW5wdXQudW5rbm93bktleVZhbHMubWFwKCh7IGtleSwgdmFsdWUgfSwgaSkgPT4ge1xuICAgIHJldHVybiB7IGtleTogZGVjb2RlUHJvcHJpZXRhcnlLZXkoa2V5KSwgdmFsdWUgfTtcbiAgfSk7XG4gIHJldHVybiBrZXlWYWxzLmZpbHRlcigoa2V5VmFsKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGtleVNlYXJjaCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAoa2V5U2VhcmNoLmlkZW50aWZpZXIgPT09IGtleVZhbC5rZXkuaWRlbnRpZmllciAmJlxuICAgICAgICAoa2V5U2VhcmNoLnN1YnR5cGUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIChrZXlTZWFyY2guc3VidHlwZSA9PT0ga2V5VmFsLmtleS5zdWJ0eXBlICYmXG4gICAgICAgICAgICAoIUJ1ZmZlci5pc0J1ZmZlcihrZXlTZWFyY2gua2V5ZGF0YSkgfHwga2V5U2VhcmNoLmtleWRhdGEuZXF1YWxzKGtleVZhbC5rZXkua2V5ZGF0YSkpKSkpXG4gICAgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHJldHVybiBwYXJ0aWFsU2lnL3RhcFNjcmlwdFNpZy9NVVNJRzJfUEFSVElBTF9TSUcgY291bnQgaWZmIGlucHV0IGlzIG5vdCBmaW5hbGl6ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBzYnRJbnB1dFNpZ25hdHVyZUNvdW50KGlucHV0OiBQc2J0SW5wdXQpOiBudW1iZXIge1xuICBpZiAoaXNQc2J0SW5wdXRGaW5hbGl6ZWQoaW5wdXQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnB1dCBpcyBhbHJlYWR5IGZpbmFsaXplZCcpO1xuICB9XG4gIHJldHVybiBNYXRoLm1heChcbiAgICBBcnJheS5pc0FycmF5KGlucHV0LnBhcnRpYWxTaWcpID8gaW5wdXQucGFydGlhbFNpZy5sZW5ndGggOiAwLFxuICAgIEFycmF5LmlzQXJyYXkoaW5wdXQudGFwU2NyaXB0U2lnKSA/IGlucHV0LnRhcFNjcmlwdFNpZy5sZW5ndGggOiAwLFxuICAgIGdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgICAgc3VidHlwZTogUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLk1VU0lHMl9QQVJUSUFMX1NJRyxcbiAgICB9KS5sZW5ndGhcbiAgKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWZmIFBTQlQgaW5wdXQgaXMgZmluYWxpemVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BzYnRJbnB1dEZpbmFsaXplZChpbnB1dDogUHNidElucHV0KTogYm9vbGVhbiB7XG4gIHJldHVybiBCdWZmZXIuaXNCdWZmZXIoaW5wdXQuZmluYWxTY3JpcHRTaWcpIHx8IEJ1ZmZlci5pc0J1ZmZlcihpbnB1dC5maW5hbFNjcmlwdFdpdG5lc3MpO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgZGF0YSBzdGFydHMgd2l0aCBtYWdpYyBQU0JUIGJ5dGUgc2VxdWVuY2VcbiAqIEBwYXJhbSBkYXRhIGJ5dGUgYXJyYXkgb3IgaGV4IHN0cmluZ1xuICogKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BzYnQoZGF0YTogQnVmZmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAxNzQubWVkaWF3aWtpI3NwZWNpZmljYXRpb25cbiAgLy8gMHg3MDczNjI3NCAtIEFTQ0lJIGZvciAncHNidCcuIDB4ZmYgLSBzZXBhcmF0b3JcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIGlmIChkYXRhLmxlbmd0aCA8IDEwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGRhdGEgPSBCdWZmZXIuZnJvbShkYXRhLnNsaWNlKDAsIDEwKSwgJ2hleCcpO1xuICB9XG4gIHJldHVybiA1IDw9IGRhdGEubGVuZ3RoICYmIGRhdGEucmVhZFVJbnQzMkJFKDApID09PSAweDcwNzM2Mjc0ICYmIGRhdGEucmVhZFVJbnQ4KDQpID09PSAweGZmO1xufVxuXG4vKipcbiAqIEZpcnN0IGNoZWNrcyBpZiB0aGUgaW5wdXQgaXMgYWxyZWFkeSBhIGJ1ZmZlciB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBtYWdpYyBQU0JUIGJ5dGUgc2VxdWVuY2UuXG4gKiBJZiBub3QsIGl0IGNoZWNrcyBpZiB0aGUgaW5wdXQgaXMgYSBiYXNlNjQtIG9yIGhleC1lbmNvZGVkIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoIFBTQlQgaGVhZGVyLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIHdoZW4gcmVhZGluZyBhIGZpbGUgdGhhdCBjb3VsZCBiZSBpbiBhbnkgb2YgdGhlIGFib3ZlIGZvcm1hdHMgb3Igd2hlblxuICogZGVhbGluZyB3aXRoIGEgcmVxdWVzdCB0aGF0IGNvdWxkIGNvbnRhaW4gYSBoZXggb3IgYmFzZTY0IGVuY29kZWQgUFNCVC5cbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybiBidWZmZXIgdGhhdCBzdGFydHMgd2l0aCB0aGUgbWFnaWMgUFNCVCBieXRlIHNlcXVlbmNlXG4gKiBAdGhyb3dzIEVycm9yIHdoZW4gY29udmVyc2lvbiBpcyBub3QgcG9zc2libGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHNidEJ1ZmZlcihkYXRhOiBCdWZmZXIgfCBzdHJpbmcpOiBCdWZmZXIge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7XG4gICAgLy8gd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGJ1ZmZlciB0aGF0IGxvb2tzIGxpa2UgYSBwc2J0IGFscmVhZHlcbiAgICBpZiAoaXNQc2J0KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICAvLyB3ZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggYSBidWZmZXIgdGhhdCBjb3VsZCBiZSBhIGhleCBvciBiYXNlNjQgZW5jb2RlZCBwc2J0XG4gICAgZGF0YSA9IGRhdGEudG9TdHJpbmcoJ2FzY2lpJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgZW5jb2RpbmdzID0gWydoZXgnLCAnYmFzZTY0J10gYXMgY29uc3Q7XG4gICAgZm9yIChjb25zdCBlbmNvZGluZyBvZiBlbmNvZGluZ3MpIHtcbiAgICAgIGxldCBidWZmZXI6IEJ1ZmZlcjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGRhdGEsIGVuY29kaW5nKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNQc2J0KGJ1ZmZlcikpIHtcbiAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGRhdGEgaXMgbm90IGluIGFueSBvZiB0aGUgZm9sbG93aW5nIGZvcm1hdHM6ICR7ZW5jb2RpbmdzLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2RhdGEgbXVzdCBiZSBhIGJ1ZmZlciBvciBhIHN0cmluZycpO1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHNpZ25pbmcgb3IgdmFsaWRhdGluZyBhIHBzYnQgd2l0aCBub24tc2Vnd2l0IGlucHV0cyB0aG9zZSBkbyBub3QgY29udGFpbiBub25XaXRuZXNzVXR4by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhVbnNhZmVOb25TZWd3aXQ8VD4ocHNidDogUHNidCwgZm46ICgpID0+IFQsIHVuc2FmZSA9IHRydWUpOiBUIHtcbiAgKHBzYnQgYXMgYW55KS5fX0NBQ0hFLl9fVU5TQUZFX1NJR05fTk9OU0VHV0lUID0gdW5zYWZlO1xuICAocHNidCBhcyBhbnkpLl9fQ0FDSEUuX19XQVJOX1VOU0FGRV9TSUdOX05PTlNFR1dJVCA9ICF1bnNhZmU7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgKHBzYnQgYXMgYW55KS5fX0NBQ0hFLl9fVU5TQUZFX1NJR05fTk9OU0VHV0lUID0gZmFsc2U7XG4gICAgKHBzYnQgYXMgYW55KS5fX0NBQ0hFLl9fV0FSTl9VTlNBRkVfU0lHTl9OT05TRUdXSVQgPSB0cnVlO1xuICB9XG59XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHNidFV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vUHNidFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBLHdFQVFDO0FBRUQsMEVBUUM7QUFLRCxnRUFZQztBQUtELG9EQUVDO0FBTUQsd0JBVUM7QUFhRCxvQ0E2QkM7QUFLRCxrREFTQztBQTNJRCxxRUFJa0M7QUFFbEM7O0dBRUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLE9BQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQix1R0FBOEIsQ0FBQTtJQUM5QiwrR0FBa0MsQ0FBQTtJQUNsQyx5RkFBdUIsQ0FBQTtJQUN2Qiw2RkFBeUIsQ0FBQTtBQUMzQixDQUFDLEVBTFcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFLaEM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw4QkFBOEIsQ0FDNUMsS0FBZ0IsRUFDaEIsU0FBZ0M7SUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxJQUFBLG9FQUEyQyxFQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQzdDLE1BQWtCLEVBQ2xCLFNBQWdDO0lBRWhDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE9BQU8sSUFBQSxvRUFBMkMsRUFBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsS0FBZ0I7SUFDekQsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFB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QVcsRUFBRSxNQUFNLEdBQUcsSUFBSTtJQUMxRSxJQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztJQUN0RCxJQUFZLENBQUMsT0FBTyxDQUFDLDRCQUE0QixHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzdELElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDZCxDQUFDO1lBQVMsQ0FBQztRQUNSLElBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ3JELElBQVksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0lBQzVELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidElucHV0LCBQc2J0T3V0cHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQc2J0IH0gZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvcHNidCc7XG5cbmltcG9ydCB7XG4gIGdldFByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMsXG4gIFByb3ByaWV0YXJ5S2V5U2VhcmNoLFxuICBQcm9wcmlldGFyeUtleVZhbHVlLFxufSBmcm9tICcuL1Byb3ByaWV0YXJ5S2V5VmFsVXRpbHMnO1xuXG4vKipcbiAqIGJpdGdvIHByb3ByaWV0YXJ5IGtleSBpZGVudGlmaWVyXG4gKi9cbmV4cG9ydCBjb25zdCBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgPSAnQklUR08nO1xuXG4vKipcbiAqIHN1YnR5cGUgZm9yIHByb3ByaWV0YXJ5IGtleXMgdGhhdCBiaXRnbyB1c2VzXG4gKi9cbmV4cG9ydCBlbnVtIFByb3ByaWV0YXJ5S2V5U3VidHlwZSB7XG4gIFpFQ19DT05TRU5TVVNfQlJBTkNIX0lEID0gMHgwMCxcbiAgTVVTSUcyX1BBUlRJQ0lQQU5UX1BVQl9LRVlTID0gMHgwMSxcbiAgTVVTSUcyX1BVQl9OT05DRSA9IDB4MDIsXG4gIE1VU0lHMl9QQVJUSUFMX1NJRyA9IDB4MDMsXG59XG5cbi8qKlxuICogU2VhcmNoIGFueSBkYXRhIGZyb20gcHNidCBwcm9wcmlldGFyeSBrZXkgdmFsdWUgYWdhaW5zdCBrZXlkYXRhLlxuICogRGVmYXVsdCBpZGVudGlmaWVyRW5jb2RpbmcgaXMgdXRmLTggZm9yIGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQc2J0SW5wdXRQcm9wcmlldGFyeUtleVZhbHMoXG4gIGlucHV0OiBQc2J0SW5wdXQsXG4gIGtleVNlYXJjaD86IFByb3ByaWV0YXJ5S2V5U2VhcmNoXG4pOiBQcm9wcmlldGFyeUtleVZhbHVlW10ge1xuICBpZiAoIWlucHV0LnVua25vd25LZXlWYWxzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIGdldFByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMoaW5wdXQsIGtleVNlYXJjaCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQc2J0T3V0cHV0UHJvcHJpZXRhcnlLZXlWYWxzKFxuICBvdXRwdXQ6IFBzYnRPdXRwdXQsXG4gIGtleVNlYXJjaD86IFByb3ByaWV0YXJ5S2V5U2VhcmNoXG4pOiBQcm9wcmlldGFyeUtleVZhbHVlW10ge1xuICBpZiAoIW91dHB1dC51bmtub3duS2V5VmFscz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBnZXRQcm9wcmlldGFyeUtleVZhbHVlc0Zyb21Vbmtub3duS2V5VmFsdWVzKG91dHB1dCwga2V5U2VhcmNoKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHBhcnRpYWxTaWcvdGFwU2NyaXB0U2lnL01VU0lHMl9QQVJUSUFMX1NJRyBjb3VudCBpZmYgaW5wdXQgaXMgbm90IGZpbmFsaXplZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHNidElucHV0U2lnbmF0dXJlQ291bnQoaW5wdXQ6IFBzYnRJbnB1dCk6IG51bWJlciB7XG4gIGlmIChpc1BzYnRJbnB1dEZpbmFsaXplZChpbnB1dCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IGlzIGFscmVhZHkgZmluYWxpemVkJyk7XG4gIH1cbiAgcmV0dXJuIE1hdGgubWF4KFxuICAgIEFycmF5LmlzQXJyYXkoaW5wdXQucGFydGlhbFNpZykgPyBpbnB1dC5wYXJ0aWFsU2lnLmxlbmd0aCA6IDAsXG4gICAgQXJyYXkuaXNBcnJheShpbnB1dC50YXBTY3JpcHRTaWcpID8gaW5wdXQudGFwU2NyaXB0U2lnLmxlbmd0aCA6IDAsXG4gICAgZ2V0UHNidElucHV0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0LCB7XG4gICAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQUxfU0lHLFxuICAgIH0pLmxlbmd0aFxuICApO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgUFNCVCBpbnB1dCBpcyBmaW5hbGl6ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHNidElucHV0RmluYWxpemVkKGlucHV0OiBQc2J0SW5wdXQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihpbnB1dC5maW5hbFNjcmlwdFNpZykgfHwgQnVmZmVyLmlzQnVmZmVyKGlucHV0LmZpbmFsU2NyaXB0V2l0bmVzcyk7XG59XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBkYXRhIHN0YXJ0cyB3aXRoIG1hZ2ljIFBTQlQgYnl0ZSBzZXF1ZW5jZVxuICogQHBhcmFtIGRhdGEgYnl0ZSBhcnJheSBvciBoZXggc3RyaW5nXG4gKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHNidChkYXRhOiBCdWZmZXIgfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDE3NC5tZWRpYXdpa2kjc3BlY2lmaWNhdGlvblxuICAvLyAweDcwNzM2Mjc0IC0gQVNDSUkgZm9yICdwc2J0Jy4gMHhmZiAtIHNlcGFyYXRvclxuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoIDwgMTApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZGF0YSA9IEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMCwgMTApLCAnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIDUgPD0gZGF0YS5sZW5ndGggJiYgZGF0YS5yZWFkVUludDMyQkUoMCkgPT09IDB4NzA3MzYyNzQgJiYgZGF0YS5yZWFkVUludDgoNCkgPT09IDB4ZmY7XG59XG5cbi8qKlxuICogRmlyc3QgY2hlY2tzIGlmIHRoZSBpbnB1dCBpcyBhbHJlYWR5IGEgYnVmZmVyIHRoYXQgc3RhcnRzIHdpdGggdGhlIG1hZ2ljIFBTQlQgYnl0ZSBzZXF1ZW5jZS5cbiAqIElmIG5vdCwgaXQgY2hlY2tzIGlmIHRoZSBpbnB1dCBpcyBhIGJhc2U2NC0gb3IgaGV4LWVuY29kZWQgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggUFNCVCBoZWFkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgd2hlbiByZWFkaW5nIGEgZmlsZSB0aGF0IGNvdWxkIGJlIGluIGFueSBvZiB0aGUgYWJvdmUgZm9ybWF0cyBvciB3aGVuXG4gKiBkZWFsaW5nIHdpdGggYSByZXF1ZXN0IHRoYXQgY291bGQgY29udGFpbiBhIGhleCBvciBiYXNlNjQgZW5jb2RlZCBQU0JULlxuICpcbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJuIGJ1ZmZlciB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBtYWdpYyBQU0JUIGJ5dGUgc2VxdWVuY2VcbiAqIEB0aHJvd3MgRXJyb3Igd2hlbiBjb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qc2J0QnVmZmVyKGRhdGE6IEJ1ZmZlciB8IHN0cmluZyk6IEJ1ZmZlciB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoZGF0YSkpIHtcbiAgICAvLyB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgYnVmZmVyIHRoYXQgbG9va3MgbGlrZSBhIHBzYnQgYWxyZWFkeVxuICAgIGlmIChpc1BzYnQoZGF0YSkpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIC8vIHdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhIGJ1ZmZlciB0aGF0IGNvdWxkIGJlIGEgaGV4IG9yIGJhc2U2NCBlbmNvZGVkIHBzYnRcbiAgICBkYXRhID0gZGF0YS50b1N0cmluZygnYXNjaWknKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBlbmNvZGluZ3MgPSBbJ2hleCcsICdiYXNlNjQnXSBhcyBjb25zdDtcbiAgICBmb3IgKGNvbnN0IGVuY29kaW5nIG9mIGVuY29kaW5ncykge1xuICAgICAgbGV0IGJ1ZmZlcjogQnVmZmVyO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYnVmZmVyID0gQnVmZmVyLmZyb20oZGF0YSwgZW5jb2RpbmcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1BzYnQoYnVmZmVyKSkge1xuICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgZGF0YSBpcyBub3QgaW4gYW55IG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0czogJHtlbmNvZGluZ3Muam9pbignLCAnKX1gKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignZGF0YSBtdXN0IGJlIGEgYnVmZmVyIG9yIGEgc3RyaW5nJyk7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3Mgc2lnbmluZyBvciB2YWxpZGF0aW5nIGEgcHNidCB3aXRoIG5vbi1zZWd3aXQgaW5wdXRzIHRob3NlIGRvIG5vdCBjb250YWluIG5vbldpdG5lc3NVdHhvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFVuc2FmZU5vblNlZ3dpdDxUPihwc2J0OiBQc2J0LCBmbjogKCkgPT4gVCwgdW5zYWZlID0gdHJ1ZSk6IFQge1xuICAocHNidCBhcyBhbnkpLl9fQ0FDSEUuX19VTlNBRkVfU0lHTl9OT05TRUdXSVQgPSB1bnNhZmU7XG4gIChwc2J0IGFzIGFueSkuX19DQUNIRS5fX1dBUk5fVU5TQUZFX1NJR05fTk9OU0VHV0lUID0gIXVuc2FmZTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAocHNidCBhcyBhbnkpLl9fQ0FDSEUuX19VTlNBRkVfU0lHTl9OT05TRUdXSVQgPSBmYWxzZTtcbiAgICAocHNidCBhcyBhbnkpLl9fQ0FDSEUuX19XQVJOX1VOU0FGRV9TSUdOX05PTlNFR1dJVCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -4,7 +4,7 @@ import { BIP32Interface } from 'bip32';
4
4
  import { HDSigner, Signer, Psbt, TxOutput, Network } from '..';
5
5
  import { UtxoTransaction } from './UtxoTransaction';
6
6
  import { Triple } from './types';
7
- import { ProprietaryKeySearch, ProprietaryKeyValue } from './PsbtUtil';
7
+ import { ProprietaryKeySearch, ProprietaryKeyValue } from './ProprietaryKeyValUtils';
8
8
  type SignatureParams = {
9
9
  /** When true, and add the second (last) nonce and signature for a taproot key
10
10
  * path spend deterministically. Throws an error if done for the first nonce/signature
@@ -187,22 +187,33 @@ export declare class UtxoPsbt<Tx extends UtxoTransaction<bigint> = UtxoTransacti
187
187
  private getTaprootOutputScript;
188
188
  private getTaprootHashForSig;
189
189
  /**
190
+ * @deprecated Please use the new method addProprietaryKeyVals(psbt, entry, index, keyValueData)
191
+ *
190
192
  * Adds proprietary key value pair to PSBT input.
191
193
  * Default identifierEncoding is utf-8 for identifier.
192
194
  */
193
195
  addProprietaryKeyValToInput(inputIndex: number, keyValueData: ProprietaryKeyValue): this;
194
196
  /**
197
+ * @deprecated Please use the new method addProprietaryKeyValuesToUnknownKeyValues(psbt, entry, index, keyValueData)
198
+ * or updateProprietaryKeyValuesToUnknownKeyValues(keyValueData)
199
+ *
195
200
  * Adds or updates (if exists) proprietary key value pair to PSBT input.
196
201
  * Default identifierEncoding is utf-8 for identifier.
197
202
  */
198
203
  addOrUpdateProprietaryKeyValToInput(inputIndex: number, keyValueData: ProprietaryKeyValue): this;
199
204
  /**
200
- * To search any data from proprietary key value against keydata.
205
+ * @deprecated Please use getProprietaryKeyValuesFromUnknownKeyValues(psbtField, keySearch). The new method
206
+ * allows for the retrieval of either input or output proprietary key values.
207
+ *
208
+ * To search any data from proprietary key value against keydata in the inputs.
201
209
  * Default identifierEncoding is utf-8 for identifier.
202
210
  */
203
211
  getProprietaryKeyVals(inputIndex: number, keySearch?: ProprietaryKeySearch): ProprietaryKeyValue[];
204
212
  /**
205
- * To delete any data from proprietary key value.
213
+ * @deprecated Please use deleteProprietaryKeyValues(type, index, keysToDelete?). The new method
214
+ * allows for the deletion of either input or output proprietary key values.
215
+ *
216
+ * To delete any data from proprietary key value in PSBT input.
206
217
  * Default identifierEncoding is utf-8 for identifier.
207
218
  */
208
219
  deleteProprietaryKeyVals(inputIndex: number, keysToDelete?: ProprietaryKeySearch): this;
@@ -1 +1 @@
1
- {"version":3,"file":"UtxoPsbt.d.ts","sourceRoot":"","sources":["../../../src/bitgo/UtxoPsbt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UtxoPsbt.d.ts","sourceRoot":"","sources":["../../../src/bitgo/UtxoPsbt.ts"],"names":[],"mappings":"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"}