@bitgo-beta/abstract-utxo 1.6.1-alpha.38 → 1.6.1-alpha.39
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseOutput.d.ts","sourceRoot":"","sources":["../../src/parseOutput.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAEL,cAAc,EAEd,OAAO,EACP,QAAQ,EACR,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwKjF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,wBAAsB,WAAW,CAAC,EAChC,aAAa,EACb,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,GACN,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"parseOutput.d.ts","sourceRoot":"","sources":["../../src/parseOutput.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAEL,cAAc,EAEd,OAAO,EACP,QAAQ,EACR,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwKjF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,wBAAsB,WAAW,CAAC,EAChC,aAAa,EACb,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,GACN,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4EtC"}
|
package/dist/src/parseOutput.js
CHANGED
|
@@ -122,6 +122,7 @@ async function parseOutput({ currentOutput, coin, txPrebuild, verification, keyc
|
|
|
122
122
|
debug('Parsing address details for %s', currentAddress);
|
|
123
123
|
let currentAddressDetails = undefined;
|
|
124
124
|
let currentAddressType = undefined;
|
|
125
|
+
const RECIPIENT_THRESHOLD = 1000;
|
|
125
126
|
try {
|
|
126
127
|
/**
|
|
127
128
|
* The only way to determine whether an address is known on the wallet is to initiate a network request and
|
|
@@ -130,6 +131,16 @@ async function parseOutput({ currentOutput, coin, txPrebuild, verification, keyc
|
|
|
130
131
|
* details are fetched on the wallet, a local address validation is run, whose errors however are generated
|
|
131
132
|
* client-side and can therefore be analyzed with more granularity and type checking.
|
|
132
133
|
*/
|
|
134
|
+
/**
|
|
135
|
+
* In order to minimize API requests, we assume that explicit recipients are always external when the
|
|
136
|
+
* recipient list is > 1000 This is not always a valid assumption and could lead greater apparent spend (but never lower)
|
|
137
|
+
*/
|
|
138
|
+
if (txParams.recipients !== undefined && txParams.recipients.length > RECIPIENT_THRESHOLD) {
|
|
139
|
+
const isCurrentAddressInRecipients = txParams.recipients.some((recipient) => recipient.address.includes(currentAddress));
|
|
140
|
+
if (isCurrentAddressInRecipients) {
|
|
141
|
+
return { ...currentOutput, external: true };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
133
144
|
const addressDetails = await fetchAddressDetails({
|
|
134
145
|
reqId,
|
|
135
146
|
addressDetailsVerification,
|
|
@@ -167,4 +178,4 @@ async function parseOutput({ currentOutput, coin, txPrebuild, verification, keyc
|
|
|
167
178
|
}
|
|
168
179
|
}
|
|
169
180
|
exports.parseOutput = parseOutput;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VPdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxrQ0FBa0M7QUFDbEMsNEJBQTRCO0FBQzVCLG1EQVM4QjtBQUM5Qix5REFBaUY7QUFFakYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFPL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsY0FBc0I7SUFDaEUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxjQUFjLEVBQUU7UUFDakYsS0FBSyxDQUFDLDZFQUE2RSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFVRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLHlCQUF5QixDQUFDLE1BQXdDO0lBQy9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkYsSUFBSTtRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsY0FBYyxFQUFFO1lBQ3hDLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQyxDQUNILENBQUM7S0FDSDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBY0Qs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Q0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ3pFO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixLQUFLLENBQUMseUNBQXlDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDYixFQUFFLEVBQ0YsYUFBYSxFQUNiLE1BQU0sd0JBQXdCLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUk7WUFDSixjQUFjO1lBQ2QsTUFBTTtZQUNOLFFBQVE7WUFDUixnQkFBZ0IsRUFBRSxZQUFZLElBQUksWUFBWSxDQUFDLElBQUk7WUFDbkQsY0FBYyxFQUFFLHFCQUFxQjtZQUNyQyxXQUFXLEVBQUUsa0JBQWtCO1lBQy9CLG1DQUFtQyxFQUFFLFlBQVksQ0FBQyxtQ0FBbUM7U0FDdEYsQ0FBQyxDQUNILENBQUM7S0FDSDtBQUNILENBQUM7QUF0RUQsa0NBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgKiBhcyBkZWJ1Z0xpYiBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSxcbiAgSVJlcXVlc3RUcmFjZXIsXG4gIEludmFsaWRBZGRyZXNzRGVyaXZhdGlvblByb3BlcnR5RXJyb3IsXG4gIElXYWxsZXQsXG4gIEtleWNoYWluLFxuICBUcmFuc2FjdGlvblByZWJ1aWxkLFxuICBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yLFxuICBWZXJpZmljYXRpb25PcHRpb25zLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBPdXRwdXQsIFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi9hYnN0cmFjdFV0eG9Db2luJztcblxuY29uc3QgZGVidWcgPSBkZWJ1Z0xpYignYml0Z286djI6cGFyc2VvdXRwdXQnKTtcblxuaW50ZXJmYWNlIEhhbmRsZVZlcmlmeUFkZHJlc3NFcnJvclJlc3BvbnNlIHtcbiAgZXh0ZXJuYWw6IGJvb2xlYW47XG4gIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDaGVjayBhbiBhZGRyZXNzIHdoaWNoIGZhaWxlZCBpbml0aWFsIHZhbGlkYXRpb24gdG8gc2VlIGlmIGl0J3MgdGhlIGJhc2UgYWRkcmVzcyBvZiBhIG1pZ3JhdGVkIHYxIGJjaCB3YWxsZXQuXG4gKlxuICogVGhlIHdhbGxldCBpbiBxdWVzdGlvbiBjb3VsZCBiZSBhIG1pZ3JhdGVkIFNhZmVIRCBCQ0ggd2FsbGV0LCBhbmQgdGhlIHRyYW5zYWN0aW9uIHdlXG4gKiBhcmUgY3VycmVudGx5IHBhcnNpbmcgaXMgdHJ5aW5nIHRvIHNwZW5kIGNoYW5nZSBiYWNrIHRvIHRoZSB2MSB3YWxsZXQgYmFzZSBhZGRyZXNzLlxuICpcbiAqIEl0IGRvZXMgdGhpcyBzaW5jZSB3ZSBkb24ndCBhbGxvdyBuZXcgYWRkcmVzcyBjcmVhdGlvbiBmb3IgdGhlc2Ugd2FsbGV0cyxcbiAqIGFuZCBpbnN0ZWFkIHJldHVybiB0aGUgYmFzZSBhZGRyZXNzIGZyb20gdGhlIHYxIHdhbGxldCB3aGVuIGEgbmV3IGFkZHJlc3MgaXMgcmVxdWVzdGVkLlxuICogSWYgdGhpcyBuZXcgYWRkcmVzcyBpcyByZXF1ZXN0ZWQgZm9yIHRoZSBwdXJwb3NlcyBvZiBzcGVuZGluZyBjaGFuZ2UgYmFjayB0byB0aGUgd2FsbGV0LFxuICogdGhlIGNoYW5nZSB3aWxsIGdvIHRvIHRoZSB2MSB3YWxsZXQgYmFzZSBhZGRyZXNzLiBUaGlzIGFkZHJlc3MgKmlzKiBvbiB0aGUgd2FsbGV0LFxuICogYnV0IGl0IHdpbGwgc3RpbGwgY2F1c2UgYW4gZXJyb3IgdG8gYmUgdGhyb3duIGJ5IHZlcmlmeUFkZHJlc3MsIHNpbmNlIHRoZSBkZXJpdmF0aW9uIHBhdGhcbiAqIHVzZWQgZm9yIHRoaXMgYWRkcmVzcyBpcyBub24tc3RhbmRhcmQuIChJIGhhdmUgc2VlbiB0aGVzZSBhZGRyZXNzZXMgZGVyaXZlZCB1c2luZyBwYXRocyBtLzAvMCBhbmQgbS8xMDEsXG4gKiB3aGVyZWFzIHRoZSB2MiBhZGRyZXNzZXMgYXJlIGRlcml2ZWQgdXNpbmcgcGF0aCAgbS8wLzAvJHtjaGFpbn0vJHtpbmRleH0pLlxuICpcbiAqIFRoaXMgbWVhbnMgd2UgbmVlZCB0byBjaGVjayBmb3IgdGhpcyBjYXNlIGV4cGxpY2l0bHkgaW4gdGhpcyBjYXRjaCBibG9jaywgYW5kIGNsYXNzaWZ5XG4gKiB0aGVzZSB0eXBlcyBvZiBvdXRwdXRzIGFzIGludGVybmFsIGluc3RlYWQgb2YgZXh0ZXJuYWwuIEZhaWxpbmcgdG8gZG8gc28gd291bGQgY2F1c2UgdGhlXG4gKiB0cmFuc2FjdGlvbidzIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKGllLCBvdXRwdXRzIHdoaWNoIGdvIHRvIGFkZHJlc3NlcyBub3Qgc3BlY2lmaWVkIGluXG4gKiB0aGUgcmVjaXBpZW50cyBhcnJheSkgdG8gYWRkIHVwIHRvIG1vcmUgdGhhbiB0aGUgMTUwIGJhc2lzIHBvaW50IGxpbWl0IHdoaWNoIHdlIGVuZm9yY2Ugb25cbiAqIHBheS1hcy15b3UtZ28gb3V0cHV0cyAod2hpY2ggc2hvdWxkIGJlIHRoZSBvbmx5IGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgb24gb3VyIHRyYW5zYWN0aW9ucykuXG4gKlxuICogVGhlIDE1MCBiYXNpcyBwb2ludCBsaW1pdCBmb3IgaW1wbGljaXQgZXh0ZXJuYWwgc2VuZHMgaXMgZW5mb3JjZWQgaW4gdmVyaWZ5VHJhbnNhY3Rpb24sXG4gKiB3aGljaCBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIGdldCBpbmZvcm1hdGlvbiBvbiB0aGUgdG90YWwgZXh0ZXJuYWwvaW50ZXJuYWwgc3BlbmQgYW1vdW50c1xuICogZm9yIGEgdHJhbnNhY3Rpb24uIFRoZSBpZGVhIGhlcmUgaXMgdG8gcHJvdGVjdCBmcm9tIHRoZSB0cmFuc2FjdGlvbiBiZWluZyBtYWxpY2lvdXNseSBtb2RpZmllZFxuICogdG8gYWRkIG1vcmUgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmRzIChlZywgdG8gYW4gYXR0YWNrZXItY29udHJvbGxlZCB3YWxsZXQpLlxuICpcbiAqIFNlZSB2ZXJpZnlUcmFuc2FjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdHJhbnNhY3Rpb24gcHJlYnVpbGRzIGFyZSB2ZXJpZmllZCBiZWZvcmUgc2lnbmluZy5cbiAqXG4gKiBAcGFyYW0gd2FsbGV0IHtXYWxsZXR9IHdhbGxldCB3aGljaCBpcyBtYWtpbmcgdGhlIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gY3VycmVudEFkZHJlc3Mge3N0cmluZ30gYWRkcmVzcyB0byBjaGVjayBmb3IgZXh0ZXJuYWxpdHkgcmVsYXRpdmUgdG8gdjEgd2FsbGV0IGJhc2UgYWRkcmVzc1xuICovXG5mdW5jdGlvbiBpc01pZ3JhdGVkQWRkcmVzcyh3YWxsZXQ6IElXYWxsZXQsIGN1cnJlbnRBZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNTdHJpbmcod2FsbGV0Lm1pZ3JhdGVkRnJvbSgpKSAmJiB3YWxsZXQubWlncmF0ZWRGcm9tKCkgPT09IGN1cnJlbnRBZGRyZXNzKSB7XG4gICAgZGVidWcoJ2ZvdW5kIGFkZHJlc3MgJXMgd2hpY2ggd2FzIG1pZ3JhdGVkIGZyb20gdjEgd2FsbGV0LCBhZGRyZXNzIGlzIG5vdCBleHRlcm5hbCcsIGN1cnJlbnRBZGRyZXNzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuaW50ZXJmYWNlIFZlcmlmeUN1c3RvbUNoYW5nZUFkZHJlc3NPcHRpb25zIHtcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbjtcbiAgY3VzdG9tQ2hhbmdlS2V5czogSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yT3B0aW9uc1snY3VzdG9tQ2hhbmdlS2V5cyddO1xuICBhZGRyZXNzVHlwZTogSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yT3B0aW9uc1snYWRkcmVzc1R5cGUnXTtcbiAgYWRkcmVzc0RldGFpbHM6IEhhbmRsZVZlcmlmeUFkZHJlc3NFcnJvck9wdGlvbnNbJ2FkZHJlc3NEZXRhaWxzJ107XG4gIGN1cnJlbnRBZGRyZXNzOiBIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JPcHRpb25zWydjdXJyZW50QWRkcmVzcyddO1xufVxuXG4vKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhbiBhZGRyZXNzIGlzIGRlcml2ZWQgZnJvbSB0aGUgZ2l2ZW4gY3VzdG9tIGNoYW5nZSBrZXlzXG4gKiBAcGFyYW0ge1ZlcmlmeUN1c3RvbUNoYW5nZUFkZHJlc3NPcHRpb25zfSBwYXJhbXNcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUN1c3RvbUNoYW5nZUFkZHJlc3MocGFyYW1zOiBWZXJpZnlDdXN0b21DaGFuZ2VBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IGNvaW4sIGN1c3RvbUNoYW5nZUtleXMsIGFkZHJlc3NUeXBlLCBhZGRyZXNzRGV0YWlscywgY3VycmVudEFkZHJlc3MgfSA9IHBhcmFtcztcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgY29pbi52ZXJpZnlBZGRyZXNzKFxuICAgICAgXy5leHRlbmQoeyBhZGRyZXNzVHlwZSB9LCBhZGRyZXNzRGV0YWlscywge1xuICAgICAgICBrZXljaGFpbnM6IGN1c3RvbUNoYW5nZUtleXMsXG4gICAgICAgIGFkZHJlc3M6IGN1cnJlbnRBZGRyZXNzLFxuICAgICAgfSlcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byB2ZXJpZnkgY3VzdG9tIGNoYW5nZSBhZGRyZXNzICVzJywgY3VycmVudEFkZHJlc3MpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yT3B0aW9ucyB7XG4gIGU6IEVycm9yO1xuICBjdXJyZW50QWRkcmVzczogc3RyaW5nO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcztcbiAgY3VzdG9tQ2hhbmdlS2V5cz86IEN1c3RvbUNoYW5nZU9wdGlvbnNbJ2tleXMnXTtcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbjtcbiAgYWRkcmVzc0RldGFpbHM/OiBhbnk7XG4gIGFkZHJlc3NUeXBlPzogc3RyaW5nO1xuICBjb25zaWRlck1pZ3JhdGVkRnJvbUFkZHJlc3NJbnRlcm5hbD86IGJvb2xlYW47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVZlcmlmeUFkZHJlc3NFcnJvcih7XG4gIGUsXG4gIGN1cnJlbnRBZGRyZXNzLFxuICB3YWxsZXQsXG4gIHR4UGFyYW1zLFxuICBjdXN0b21DaGFuZ2VLZXlzLFxuICBjb2luLFxuICBhZGRyZXNzRGV0YWlscyxcbiAgYWRkcmVzc1R5cGUsXG4gIGNvbnNpZGVyTWlncmF0ZWRGcm9tQWRkcmVzc0ludGVybmFsLFxufTogSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yT3B0aW9ucyk6IFByb21pc2U8SGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yUmVzcG9uc2U+IHtcbiAgLy8gVG9kbzogbmFtZSBzZXJ2ZXItc2lkZSBlcnJvcnMgdG8gYXZvaWQgbWVzc2FnZS1iYXNlZCBjaGVja2luZyBbQkctNTEyNF1cbiAgY29uc3Qgd2FsbGV0QWRkcmVzc05vdEZvdW5kID0gZS5tZXNzYWdlLmluY2x1ZGVzKCd3YWxsZXQgYWRkcmVzcyBub3QgZm91bmQnKTtcbiAgY29uc3QgdW5leHBlY3RlZEFkZHJlc3MgPSBlIGluc3RhbmNlb2YgVW5leHBlY3RlZEFkZHJlc3NFcnJvcjtcbiAgaWYgKHdhbGxldEFkZHJlc3NOb3RGb3VuZCB8fCB1bmV4cGVjdGVkQWRkcmVzcykge1xuICAgIGlmICh1bmV4cGVjdGVkQWRkcmVzcyAmJiAhd2FsbGV0QWRkcmVzc05vdEZvdW5kKSB7XG4gICAgICAvLyBjaGVjayB0byBzZWUgaWYgdGhpcyBpcyBhIG1pZ3JhdGVkIHYxIGJjaCBhZGRyZXNzIC0gaXQgY291bGQgYmUgaW50ZXJuYWxcbiAgICAgIGNvbnN0IGlzTWlncmF0ZWQgPSBpc01pZ3JhdGVkQWRkcmVzcyh3YWxsZXQsIGN1cnJlbnRBZGRyZXNzKTtcbiAgICAgIGlmIChpc01pZ3JhdGVkKSB7XG4gICAgICAgIHJldHVybiB7IGV4dGVybmFsOiBjb25zaWRlck1pZ3JhdGVkRnJvbUFkZHJlc3NJbnRlcm5hbCA9PT0gZmFsc2UgfTtcbiAgICAgIH1cblxuICAgICAgZGVidWcoJ0FkZHJlc3MgJXMgd2FzIGZvdW5kIG9uIHdhbGxldCBidXQgY291bGQgbm90IGJlIHJlY29uc3RydWN0ZWQnLCBjdXJyZW50QWRkcmVzcyk7XG5cbiAgICAgIC8vIGF0dGVtcHQgdG8gdmVyaWZ5IGFkZHJlc3MgdXNpbmcgY3VzdG9tIGNoYW5nZSBhZGRyZXNzIGtleXMgaWYgdGhlIHdhbGxldCBoYXMgdGhhdCBmZWF0dXJlIGVuYWJsZWRcbiAgICAgIGlmIChcbiAgICAgICAgY3VzdG9tQ2hhbmdlS2V5cyAmJlxuICAgICAgICAoYXdhaXQgdmVyaWZ5Q3VzdG9tQ2hhbmdlQWRkcmVzcyh7IGNvaW4sIGFkZHJlc3NEZXRhaWxzLCBhZGRyZXNzVHlwZSwgY3VycmVudEFkZHJlc3MsIGN1c3RvbUNoYW5nZUtleXMgfSkpXG4gICAgICApIHtcbiAgICAgICAgLy8gYWRkcmVzcyBpcyB2YWxpZCBhZ2FpbnN0IHRoZSBjdXN0b20gY2hhbmdlIGtleXMuIE1hcmsgYWRkcmVzcyBhcyBub3QgZXh0ZXJuYWxcbiAgICAgICAgLy8gYW5kIHJlcXVlc3Qgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGN1c3RvbSBjaGFuZ2Uga2V5c1xuICAgICAgICBkZWJ1ZygnQWRkcmVzcyAlcyB2ZXJpZmllZCBhcyBkZXJpdmVkIGZyb20gdGhlIGN1c3RvbSBjaGFuZ2Uga2V5cycsIGN1cnJlbnRBZGRyZXNzKTtcbiAgICAgICAgcmV0dXJuIHsgZXh0ZXJuYWw6IGZhbHNlLCBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogdHJ1ZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoZSBhZGRyZXNzIHdhcyBmb3VuZCwgYnV0IG5vdCBvbiB0aGUgd2FsbGV0LCB3aGljaCBzaW1wbHkgbWVhbnMgaXQncyBleHRlcm5hbFxuICAgIGRlYnVnKCdBZGRyZXNzICVzIHByZXN1bWVkIGV4dGVybmFsJywgY3VycmVudEFkZHJlc3MpO1xuICAgIHJldHVybiB7IGV4dGVybmFsOiB0cnVlIH07XG4gIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEludmFsaWRBZGRyZXNzRGVyaXZhdGlvblByb3BlcnR5RXJyb3IgJiYgY3VycmVudEFkZHJlc3MgPT09IHR4UGFyYW1zLmNoYW5nZUFkZHJlc3MpIHtcbiAgICAvLyBleHBlY3QgdG8gc2VlIHRoaXMgZXJyb3Igd2hlbiBwYXNzaW5nIGluIGEgY3VzdG9tIGNoYW5nZUFkZHJlc3Mgd2l0aCBubyBjaGFpbiBvciBpbmRleFxuICAgIHJldHVybiB7IGV4dGVybmFsOiBmYWxzZSB9O1xuICB9XG5cbiAgY29uc29sZS5lcnJvcignQWRkcmVzcyBjbGFzc2lmaWNhdGlvbiBmYWlsZWQgZm9yIGFkZHJlc3MnLCBjdXJyZW50QWRkcmVzcyk7XG4gIGNvbnNvbGUudHJhY2UoZSk7XG4gIC8qKlxuICAgKiBJdCBtaWdodCBiZSBhIGNvbXBsZXRlbHkgaW52YWxpZCBhZGRyZXNzIG9yIGEgYmFkIHZhbGlkYXRpb24gYXR0ZW1wdCBvciBzb21ldGhpbmcgZWxzZSBjb21wbGV0ZWx5LCBpblxuICAgKiB3aGljaCBjYXNlIHdlIGRvIG5vdCBwcm9jZWVkIGFuZCByYXRoZXIgcmV0aHJvdyB0aGUgZXJyb3IsIHdoaWNoIGlzIHNhZmVyIHRoYW4gYXNzdW1pbmcgdGhhdCB0aGUgYWRkcmVzc1xuICAgKiB2YWxpZGF0aW9uIGZhaWxlZCBzaW1wbHkgYmVjYXVzZSBpdCdzIGV4dGVybmFsIHRvIHRoZSB3YWxsZXQuXG4gICAqL1xuICB0aHJvdyBlO1xufVxuXG5pbnRlcmZhY2UgRmV0Y2hBZGRyZXNzRGV0YWlsc09wdGlvbnMge1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBkaXNhYmxlTmV0d29ya2luZzogYm9vbGVhbjtcbiAgYWRkcmVzc0RldGFpbHNQcmVidWlsZDogYW55O1xuICBhZGRyZXNzRGV0YWlsc1ZlcmlmaWNhdGlvbjogYW55O1xuICBjdXJyZW50QWRkcmVzczogc3RyaW5nO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWRkcmVzc0RldGFpbHMoe1xuICByZXFJZCxcbiAgZGlzYWJsZU5ldHdvcmtpbmcsXG4gIGFkZHJlc3NEZXRhaWxzUHJlYnVpbGQsXG4gIGFkZHJlc3NEZXRhaWxzVmVyaWZpY2F0aW9uLFxuICBjdXJyZW50QWRkcmVzcyxcbiAgd2FsbGV0LFxufTogRmV0Y2hBZGRyZXNzRGV0YWlsc09wdGlvbnMpIHtcbiAgbGV0IGFkZHJlc3NEZXRhaWxzID0gXy5leHRlbmQoe30sIGFkZHJlc3NEZXRhaWxzUHJlYnVpbGQsIGFkZHJlc3NEZXRhaWxzVmVyaWZpY2F0aW9uKTtcbiAgZGVidWcoJ0xvY2FsbHkgYXZhaWxhYmxlIGFkZHJlc3MgJXMgZGV0YWlsczogJU8nLCBjdXJyZW50QWRkcmVzcywgYWRkcmVzc0RldGFpbHMpO1xuICBpZiAoXy5pc0VtcHR5KGFkZHJlc3NEZXRhaWxzKSAmJiAhZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICBhZGRyZXNzRGV0YWlscyA9IGF3YWl0IHdhbGxldC5nZXRBZGRyZXNzKHsgYWRkcmVzczogY3VycmVudEFkZHJlc3MsIHJlcUlkIH0pO1xuICAgIGRlYnVnKCdEb3dubG9hZGVkIGFkZHJlc3MgJXMgZGV0YWlsczogJU8nLCBjdXJyZW50QWRkcmVzcywgYWRkcmVzc0RldGFpbHMpO1xuICB9XG4gIHJldHVybiBhZGRyZXNzRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21DaGFuZ2VPcHRpb25zIHtcbiAga2V5czogW0tleWNoYWluLCBLZXljaGFpbiwgS2V5Y2hhaW5dO1xuICBzaWduYXR1cmVzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VPdXRwdXRPcHRpb25zIHtcbiAgY3VycmVudE91dHB1dDogT3V0cHV0O1xuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuICB0eFByZWJ1aWxkOiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICB2ZXJpZmljYXRpb246IFZlcmlmaWNhdGlvbk9wdGlvbnM7XG4gIGtleWNoYWluQXJyYXk6IFtLZXljaGFpbiwgS2V5Y2hhaW4sIEtleWNoYWluXTtcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXM7XG4gIGN1c3RvbUNoYW5nZT86IEN1c3RvbUNoYW5nZU9wdGlvbnM7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYXJzZU91dHB1dCh7XG4gIGN1cnJlbnRPdXRwdXQsXG4gIGNvaW4sXG4gIHR4UHJlYnVpbGQsXG4gIHZlcmlmaWNhdGlvbixcbiAga2V5Y2hhaW5BcnJheSxcbiAgd2FsbGV0LFxuICB0eFBhcmFtcyxcbiAgY3VzdG9tQ2hhbmdlLFxuICByZXFJZCxcbn06IFBhcnNlT3V0cHV0T3B0aW9ucyk6IFByb21pc2U8T3V0cHV0PiB7XG4gIGNvbnN0IGRpc2FibGVOZXR3b3JraW5nID0gISF2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmc7XG4gIGNvbnN0IGN1cnJlbnRBZGRyZXNzID0gY3VycmVudE91dHB1dC5hZGRyZXNzO1xuXG4gIC8vIGF0dGVtcHQgdG8gZ3JhYiB0aGUgYWRkcmVzcyBkZXRhaWxzIGZyb20gZWl0aGVyIHRoZSBwcmVidWlsdCB0eCwgb3IgdGhlIHZlcmlmaWNhdGlvbiBwYXJhbXMuXG4gIC8vIElmIGJvdGggb2YgdGhlc2UgYXJlIGVtcHR5LCB0aGVuIHdlIHdpbGwgdHJ5IHRvIGdldCB0aGUgYWRkcmVzcyBkZXRhaWxzIGZyb20gYml0Z28gaW5zdGVhZFxuICBjb25zdCBhZGRyZXNzRGV0YWlsc1ByZWJ1aWxkID0gXy5nZXQodHhQcmVidWlsZCwgYHR4SW5mby53YWxsZXRBZGRyZXNzRGV0YWlscy4ke2N1cnJlbnRBZGRyZXNzfWAsIHt9KTtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHNWZXJpZmljYXRpb246IEFkZHJlc3NWZXJpZmljYXRpb25EYXRhID0gdmVyaWZpY2F0aW9uPy5hZGRyZXNzZXM/LltjdXJyZW50QWRkcmVzc10gPz8ge307XG4gIGRlYnVnKCdQYXJzaW5nIGFkZHJlc3MgZGV0YWlscyBmb3IgJXMnLCBjdXJyZW50QWRkcmVzcyk7XG4gIGxldCBjdXJyZW50QWRkcmVzc0RldGFpbHMgPSB1bmRlZmluZWQ7XG4gIGxldCBjdXJyZW50QWRkcmVzc1R5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICAvKipcbiAgICAgKiBUaGUgb25seSB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBrbm93biBvbiB0aGUgd2FsbGV0IGlzIHRvIGluaXRpYXRlIGEgbmV0d29yayByZXF1ZXN0IGFuZFxuICAgICAqIGZldGNoIGl0LiBTaG91bGQgdGhlIHJlcXVlc3QgZmFpbCBhbmQgcmV0dXJuIGEgNDA0LCBpdCB3aWxsIHRocm93IGFuZCB0aGVyZWZvcmUgaGFzIHRvIGJlIGNhdWdodC4gRm9yIHRoYXRcbiAgICAgKiByZWFzb24sIGFkZHJlc3Mgd2FsbGV0IG93bmVyc2hpcCBkZXRlY3Rpb24gaXMgd3JhcHBlZCBpbiBhIHRyeS9jYXRjaC4gQWRkaXRpb25hbGx5LCBvbmNlIHRoZSBhZGRyZXNzXG4gICAgICogZGV0YWlscyBhcmUgZmV0Y2hlZCBvbiB0aGUgd2FsbGV0LCBhIGxvY2FsIGFkZHJlc3MgdmFsaWRhdGlvbiBpcyBydW4sIHdob3NlIGVycm9ycyBob3dldmVyIGFyZSBnZW5lcmF0ZWRcbiAgICAgKiBjbGllbnQtc2lkZSBhbmQgY2FuIHRoZXJlZm9yZSBiZSBhbmFseXplZCB3aXRoIG1vcmUgZ3JhbnVsYXJpdHkgYW5kIHR5cGUgY2hlY2tpbmcuXG4gICAgICovXG4gICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBhd2FpdCBmZXRjaEFkZHJlc3NEZXRhaWxzKHtcbiAgICAgIHJlcUlkLFxuICAgICAgYWRkcmVzc0RldGFpbHNWZXJpZmljYXRpb24sXG4gICAgICBhZGRyZXNzRGV0YWlsc1ByZWJ1aWxkLFxuICAgICAgY3VycmVudEFkZHJlc3MsXG4gICAgICBkaXNhYmxlTmV0d29ya2luZyxcbiAgICAgIHdhbGxldCxcbiAgICB9KTtcbiAgICAvLyB2ZXJpZnkgdGhhdCB0aGUgYWRkcmVzcyBpcyBvbiB0aGUgd2FsbGV0LiB2ZXJpZnlBZGRyZXNzIHRocm93cyBpZlxuICAgIC8vIGl0IGZhaWxzIHRvIGNvcnJlY3RseSByZWRlcml2ZSB0aGUgYWRkcmVzcywgbWVhbmluZyBpdCdzIGV4dGVybmFsXG4gICAgY3VycmVudEFkZHJlc3NUeXBlID0gQWJzdHJhY3RVdHhvQ29pbi5pbmZlckFkZHJlc3NUeXBlKGFkZHJlc3NEZXRhaWxzKSB8fCB1bmRlZmluZWQ7XG4gICAgY3VycmVudEFkZHJlc3NEZXRhaWxzID0gYWRkcmVzc0RldGFpbHM7XG4gICAgYXdhaXQgY29pbi52ZXJpZnlBZGRyZXNzKFxuICAgICAgXy5leHRlbmQoeyBhZGRyZXNzVHlwZTogY3VycmVudEFkZHJlc3NUeXBlIH0sIGFkZHJlc3NEZXRhaWxzLCB7XG4gICAgICAgIGtleWNoYWluczoga2V5Y2hhaW5BcnJheSxcbiAgICAgICAgYWRkcmVzczogY3VycmVudEFkZHJlc3MsXG4gICAgICB9KVxuICAgICk7XG4gICAgZGVidWcoJ0FkZHJlc3MgJXMgdmVyaWZpY2F0aW9uIHBhc3NlZCcsIGN1cnJlbnRBZGRyZXNzKTtcblxuICAgIC8vIHZlcmlmeSBhZGRyZXNzIHN1Y2NlZWRlZCB3aXRob3V0IHRocm93aW5nLCBzbyB0aGUgYWRkcmVzcyB3YXNcbiAgICAvLyBjb3JyZWN0bHkgcmVkZXJpdmVkIGZyb20gdGhlIHdhbGxldCBrZXljaGFpbnMsIG1ha2luZyBpdCBub3QgZXh0ZXJuYWxcbiAgICByZXR1cm4gXy5leHRlbmQoe30sIGN1cnJlbnRPdXRwdXQsIGFkZHJlc3NEZXRhaWxzLCB7IGV4dGVybmFsOiBmYWxzZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRlYnVnKCdBZGRyZXNzICVzIHZlcmlmaWNhdGlvbiB0aHJldyBhbiBlcnJvcjonLCBjdXJyZW50QWRkcmVzcywgZSk7XG4gICAgcmV0dXJuIF8uZXh0ZW5kKFxuICAgICAge30sXG4gICAgICBjdXJyZW50T3V0cHV0LFxuICAgICAgYXdhaXQgaGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yKHtcbiAgICAgICAgZSxcbiAgICAgICAgY29pbixcbiAgICAgICAgY3VycmVudEFkZHJlc3MsXG4gICAgICAgIHdhbGxldCxcbiAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgIGN1c3RvbUNoYW5nZUtleXM6IGN1c3RvbUNoYW5nZSAmJiBjdXN0b21DaGFuZ2Uua2V5cyxcbiAgICAgICAgYWRkcmVzc0RldGFpbHM6IGN1cnJlbnRBZGRyZXNzRGV0YWlscyxcbiAgICAgICAgYWRkcmVzc1R5cGU6IGN1cnJlbnRBZGRyZXNzVHlwZSxcbiAgICAgICAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWw6IHZlcmlmaWNhdGlvbi5jb25zaWRlck1pZ3JhdGVkRnJvbUFkZHJlc3NJbnRlcm5hbCxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VPdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxrQ0FBa0M7QUFDbEMsNEJBQTRCO0FBQzVCLG1EQVM4QjtBQUM5Qix5REFBaUY7QUFFakYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFPL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsY0FBc0I7SUFDaEUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxjQUFjLEVBQUU7UUFDakYsS0FBSyxDQUFDLDZFQUE2RSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFVRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLHlCQUF5QixDQUFDLE1BQXdDO0lBQy9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkYsSUFBSTtRQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsY0FBYyxFQUFFO1lBQ3hDLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQyxDQUNILENBQUM7S0FDSDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBY0Qs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O1FBQ3BFLGtCQUFrQixHQUFHLG1DQUFnQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNwRixxQkFBcUIsR0FBRyxjQUFjLENBQUM7UUFDdkMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUN0QixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsY0FBYyxFQUFFO1lBQzVELFNBQVMsRUFBRSxhQUFhO1lBQ3hCLE9BQU8sRUFBRSxjQUFjO1NBQ3hCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXhELGdFQUFnRTtRQUNoRSx3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDekU7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNiLEVBQUUsRUFDRixhQUFhLEVBQ2IsTUFBTSx3QkFBd0IsQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSTtZQUNKLGNBQWM7WUFDZCxNQUFNO1lBQ04sUUFBUTtZQUNSLGdCQUFnQixFQUFFLFlBQVksSUFBSSxZQUFZLENBQUMsSUFBSTtZQUNuRCxjQUFjLEVBQUUscUJBQXFCO1lBQ3JDLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsbUNBQW1DLEVBQUUsWUFBWSxDQUFDLG1DQUFtQztTQUN0RixDQUFDLENBQ0gsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQXRGRCxrQ0FzRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5cbmltcG9ydCAqIGFzIGRlYnVnTGliIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIEFkZHJlc3NWZXJpZmljYXRpb25EYXRhLFxuICBJUmVxdWVzdFRyYWNlcixcbiAgSW52YWxpZEFkZHJlc3NEZXJpdmF0aW9uUHJvcGVydHlFcnJvcixcbiAgSVdhbGxldCxcbiAgS2V5Y2hhaW4sXG4gIFRyYW5zYWN0aW9uUHJlYnVpbGQsXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG4gIFZlcmlmaWNhdGlvbk9wdGlvbnMsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIE91dHB1dCwgVHJhbnNhY3Rpb25QYXJhbXMgfSBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW4nO1xuXG5jb25zdCBkZWJ1ZyA9IGRlYnVnTGliKCdiaXRnbzp2MjpwYXJzZW91dHB1dCcpO1xuXG5pbnRlcmZhY2UgSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yUmVzcG9uc2Uge1xuICBleHRlcm5hbDogYm9vbGVhbjtcbiAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENoZWNrIGFuIGFkZHJlc3Mgd2hpY2ggZmFpbGVkIGluaXRpYWwgdmFsaWRhdGlvbiB0byBzZWUgaWYgaXQncyB0aGUgYmFzZSBhZGRyZXNzIG9mIGEgbWlncmF0ZWQgdjEgYmNoIHdhbGxldC5cbiAqXG4gKiBUaGUgd2FsbGV0IGluIHF1ZXN0aW9uIGNvdWxkIGJlIGEgbWlncmF0ZWQgU2FmZUhEIEJDSCB3YWxsZXQsIGFuZCB0aGUgdHJhbnNhY3Rpb24gd2VcbiAqIGFyZSBjdXJyZW50bHkgcGFyc2luZyBpcyB0cnlpbmcgdG8gc3BlbmQgY2hhbmdlIGJhY2sgdG8gdGhlIHYxIHdhbGxldCBiYXNlIGFkZHJlc3MuXG4gKlxuICogSXQgZG9lcyB0aGlzIHNpbmNlIHdlIGRvbid0IGFsbG93IG5ldyBhZGRyZXNzIGNyZWF0aW9uIGZvciB0aGVzZSB3YWxsZXRzLFxuICogYW5kIGluc3RlYWQgcmV0dXJuIHRoZSBiYXNlIGFkZHJlc3MgZnJvbSB0aGUgdjEgd2FsbGV0IHdoZW4gYSBuZXcgYWRkcmVzcyBpcyByZXF1ZXN0ZWQuXG4gKiBJZiB0aGlzIG5ldyBhZGRyZXNzIGlzIHJlcXVlc3RlZCBmb3IgdGhlIHB1cnBvc2VzIG9mIHNwZW5kaW5nIGNoYW5nZSBiYWNrIHRvIHRoZSB3YWxsZXQsXG4gKiB0aGUgY2hhbmdlIHdpbGwgZ28gdG8gdGhlIHYxIHdhbGxldCBiYXNlIGFkZHJlc3MuIFRoaXMgYWRkcmVzcyAqaXMqIG9uIHRoZSB3YWxsZXQsXG4gKiBidXQgaXQgd2lsbCBzdGlsbCBjYXVzZSBhbiBlcnJvciB0byBiZSB0aHJvd24gYnkgdmVyaWZ5QWRkcmVzcywgc2luY2UgdGhlIGRlcml2YXRpb24gcGF0aFxuICogdXNlZCBmb3IgdGhpcyBhZGRyZXNzIGlzIG5vbi1zdGFuZGFyZC4gKEkgaGF2ZSBzZWVuIHRoZXNlIGFkZHJlc3NlcyBkZXJpdmVkIHVzaW5nIHBhdGhzIG0vMC8wIGFuZCBtLzEwMSxcbiAqIHdoZXJlYXMgdGhlIHYyIGFkZHJlc3NlcyBhcmUgZGVyaXZlZCB1c2luZyBwYXRoICBtLzAvMC8ke2NoYWlufS8ke2luZGV4fSkuXG4gKlxuICogVGhpcyBtZWFucyB3ZSBuZWVkIHRvIGNoZWNrIGZvciB0aGlzIGNhc2UgZXhwbGljaXRseSBpbiB0aGlzIGNhdGNoIGJsb2NrLCBhbmQgY2xhc3NpZnlcbiAqIHRoZXNlIHR5cGVzIG9mIG91dHB1dHMgYXMgaW50ZXJuYWwgaW5zdGVhZCBvZiBleHRlcm5hbC4gRmFpbGluZyB0byBkbyBzbyB3b3VsZCBjYXVzZSB0aGVcbiAqIHRyYW5zYWN0aW9uJ3MgaW1wbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyAoaWUsIG91dHB1dHMgd2hpY2ggZ28gdG8gYWRkcmVzc2VzIG5vdCBzcGVjaWZpZWQgaW5cbiAqIHRoZSByZWNpcGllbnRzIGFycmF5KSB0byBhZGQgdXAgdG8gbW9yZSB0aGFuIHRoZSAxNTAgYmFzaXMgcG9pbnQgbGltaXQgd2hpY2ggd2UgZW5mb3JjZSBvblxuICogcGF5LWFzLXlvdS1nbyBvdXRwdXRzICh3aGljaCBzaG91bGQgYmUgdGhlIG9ubHkgaW1wbGljaXQgZXh0ZXJuYWwgb3V0cHV0cyBvbiBvdXIgdHJhbnNhY3Rpb25zKS5cbiAqXG4gKiBUaGUgMTUwIGJhc2lzIHBvaW50IGxpbWl0IGZvciBpbXBsaWNpdCBleHRlcm5hbCBzZW5kcyBpcyBlbmZvcmNlZCBpbiB2ZXJpZnlUcmFuc2FjdGlvbixcbiAqIHdoaWNoIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IGluZm9ybWF0aW9uIG9uIHRoZSB0b3RhbCBleHRlcm5hbC9pbnRlcm5hbCBzcGVuZCBhbW91bnRzXG4gKiBmb3IgYSB0cmFuc2FjdGlvbi4gVGhlIGlkZWEgaGVyZSBpcyB0byBwcm90ZWN0IGZyb20gdGhlIHRyYW5zYWN0aW9uIGJlaW5nIG1hbGljaW91c2x5IG1vZGlmaWVkXG4gKiB0byBhZGQgbW9yZSBpbXBsaWNpdCBleHRlcm5hbCBzcGVuZHMgKGVnLCB0byBhbiBhdHRhY2tlci1jb250cm9sbGVkIHdhbGxldCkuXG4gKlxuICogU2VlIHZlcmlmeVRyYW5zYWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0cmFuc2FjdGlvbiBwcmVidWlsZHMgYXJlIHZlcmlmaWVkIGJlZm9yZSBzaWduaW5nLlxuICpcbiAqIEBwYXJhbSB3YWxsZXQge1dhbGxldH0gd2FsbGV0IHdoaWNoIGlzIG1ha2luZyB0aGUgdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBjdXJyZW50QWRkcmVzcyB7c3RyaW5nfSBhZGRyZXNzIHRvIGNoZWNrIGZvciBleHRlcm5hbGl0eSByZWxhdGl2ZSB0byB2MSB3YWxsZXQgYmFzZSBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGlzTWlncmF0ZWRBZGRyZXNzKHdhbGxldDogSVdhbGxldCwgY3VycmVudEFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc1N0cmluZyh3YWxsZXQubWlncmF0ZWRGcm9tKCkpICYmIHdhbGxldC5taWdyYXRlZEZyb20oKSA9PT0gY3VycmVudEFkZHJlc3MpIHtcbiAgICBkZWJ1ZygnZm91bmQgYWRkcmVzcyAlcyB3aGljaCB3YXMgbWlncmF0ZWQgZnJvbSB2MSB3YWxsZXQsIGFkZHJlc3MgaXMgbm90IGV4dGVybmFsJywgY3VycmVudEFkZHJlc3MpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5pbnRlcmZhY2UgVmVyaWZ5Q3VzdG9tQ2hhbmdlQWRkcmVzc09wdGlvbnMge1xuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuICBjdXN0b21DaGFuZ2VLZXlzOiBIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JPcHRpb25zWydjdXN0b21DaGFuZ2VLZXlzJ107XG4gIGFkZHJlc3NUeXBlOiBIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JPcHRpb25zWydhZGRyZXNzVHlwZSddO1xuICBhZGRyZXNzRGV0YWlsczogSGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yT3B0aW9uc1snYWRkcmVzc0RldGFpbHMnXTtcbiAgY3VycmVudEFkZHJlc3M6IEhhbmRsZVZlcmlmeUFkZHJlc3NFcnJvck9wdGlvbnNbJ2N1cnJlbnRBZGRyZXNzJ107XG59XG5cbi8qKlxuICogQ2hlY2sgdG8gc2VlIGlmIGFuIGFkZHJlc3MgaXMgZGVyaXZlZCBmcm9tIHRoZSBnaXZlbiBjdXN0b20gY2hhbmdlIGtleXNcbiAqIEBwYXJhbSB7VmVyaWZ5Q3VzdG9tQ2hhbmdlQWRkcmVzc09wdGlvbnN9IHBhcmFtc1xuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q3VzdG9tQ2hhbmdlQWRkcmVzcyhwYXJhbXM6IFZlcmlmeUN1c3RvbUNoYW5nZUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgY29pbiwgY3VzdG9tQ2hhbmdlS2V5cywgYWRkcmVzc1R5cGUsIGFkZHJlc3NEZXRhaWxzLCBjdXJyZW50QWRkcmVzcyB9ID0gcGFyYW1zO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBjb2luLnZlcmlmeUFkZHJlc3MoXG4gICAgICBfLmV4dGVuZCh7IGFkZHJlc3NUeXBlIH0sIGFkZHJlc3NEZXRhaWxzLCB7XG4gICAgICAgIGtleWNoYWluczogY3VzdG9tQ2hhbmdlS2V5cyxcbiAgICAgICAgYWRkcmVzczogY3VycmVudEFkZHJlc3MsXG4gICAgICB9KVxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIHZlcmlmeSBjdXN0b20gY2hhbmdlIGFkZHJlc3MgJXMnLCBjdXJyZW50QWRkcmVzcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmludGVyZmFjZSBIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JPcHRpb25zIHtcbiAgZTogRXJyb3I7XG4gIGN1cnJlbnRBZGRyZXNzOiBzdHJpbmc7XG4gIHdhbGxldDogSVdhbGxldDtcbiAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zO1xuICBjdXN0b21DaGFuZ2VLZXlzPzogQ3VzdG9tQ2hhbmdlT3B0aW9uc1sna2V5cyddO1xuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuICBhZGRyZXNzRGV0YWlscz86IGFueTtcbiAgYWRkcmVzc1R5cGU/OiBzdHJpbmc7XG4gIGNvbnNpZGVyTWlncmF0ZWRGcm9tQWRkcmVzc0ludGVybmFsPzogYm9vbGVhbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yKHtcbiAgZSxcbiAgY3VycmVudEFkZHJlc3MsXG4gIHdhbGxldCxcbiAgdHhQYXJhbXMsXG4gIGN1c3RvbUNoYW5nZUtleXMsXG4gIGNvaW4sXG4gIGFkZHJlc3NEZXRhaWxzLFxuICBhZGRyZXNzVHlwZSxcbiAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWwsXG59OiBIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JPcHRpb25zKTogUHJvbWlzZTxIYW5kbGVWZXJpZnlBZGRyZXNzRXJyb3JSZXNwb25zZT4ge1xuICAvLyBUb2RvOiBuYW1lIHNlcnZlci1zaWRlIGVycm9ycyB0byBhdm9pZCBtZXNzYWdlLWJhc2VkIGNoZWNraW5nIFtCRy01MTI0XVxuICBjb25zdCB3YWxsZXRBZGRyZXNzTm90Rm91bmQgPSBlLm1lc3NhZ2UuaW5jbHVkZXMoJ3dhbGxldCBhZGRyZXNzIG5vdCBmb3VuZCcpO1xuICBjb25zdCB1bmV4cGVjdGVkQWRkcmVzcyA9IGUgaW5zdGFuY2VvZiBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yO1xuICBpZiAod2FsbGV0QWRkcmVzc05vdEZvdW5kIHx8IHVuZXhwZWN0ZWRBZGRyZXNzKSB7XG4gICAgaWYgKHVuZXhwZWN0ZWRBZGRyZXNzICYmICF3YWxsZXRBZGRyZXNzTm90Rm91bmQpIHtcbiAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGEgbWlncmF0ZWQgdjEgYmNoIGFkZHJlc3MgLSBpdCBjb3VsZCBiZSBpbnRlcm5hbFxuICAgICAgY29uc3QgaXNNaWdyYXRlZCA9IGlzTWlncmF0ZWRBZGRyZXNzKHdhbGxldCwgY3VycmVudEFkZHJlc3MpO1xuICAgICAgaWYgKGlzTWlncmF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHsgZXh0ZXJuYWw6IGNvbnNpZGVyTWlncmF0ZWRGcm9tQWRkcmVzc0ludGVybmFsID09PSBmYWxzZSB9O1xuICAgICAgfVxuXG4gICAgICBkZWJ1ZygnQWRkcmVzcyAlcyB3YXMgZm91bmQgb24gd2FsbGV0IGJ1dCBjb3VsZCBub3QgYmUgcmVjb25zdHJ1Y3RlZCcsIGN1cnJlbnRBZGRyZXNzKTtcblxuICAgICAgLy8gYXR0ZW1wdCB0byB2ZXJpZnkgYWRkcmVzcyB1c2luZyBjdXN0b20gY2hhbmdlIGFkZHJlc3Mga2V5cyBpZiB0aGUgd2FsbGV0IGhhcyB0aGF0IGZlYXR1cmUgZW5hYmxlZFxuICAgICAgaWYgKFxuICAgICAgICBjdXN0b21DaGFuZ2VLZXlzICYmXG4gICAgICAgIChhd2FpdCB2ZXJpZnlDdXN0b21DaGFuZ2VBZGRyZXNzKHsgY29pbiwgYWRkcmVzc0RldGFpbHMsIGFkZHJlc3NUeXBlLCBjdXJyZW50QWRkcmVzcywgY3VzdG9tQ2hhbmdlS2V5cyB9KSlcbiAgICAgICkge1xuICAgICAgICAvLyBhZGRyZXNzIGlzIHZhbGlkIGFnYWluc3QgdGhlIGN1c3RvbSBjaGFuZ2Uga2V5cy4gTWFyayBhZGRyZXNzIGFzIG5vdCBleHRlcm5hbFxuICAgICAgICAvLyBhbmQgcmVxdWVzdCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZvciB0aGUgY3VzdG9tIGNoYW5nZSBrZXlzXG4gICAgICAgIGRlYnVnKCdBZGRyZXNzICVzIHZlcmlmaWVkIGFzIGRlcml2ZWQgZnJvbSB0aGUgY3VzdG9tIGNoYW5nZSBrZXlzJywgY3VycmVudEFkZHJlc3MpO1xuICAgICAgICByZXR1cm4geyBleHRlcm5hbDogZmFsc2UsIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiB0cnVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGhlIGFkZHJlc3Mgd2FzIGZvdW5kLCBidXQgbm90IG9uIHRoZSB3YWxsZXQsIHdoaWNoIHNpbXBseSBtZWFucyBpdCdzIGV4dGVybmFsXG4gICAgZGVidWcoJ0FkZHJlc3MgJXMgcHJlc3VtZWQgZXh0ZXJuYWwnLCBjdXJyZW50QWRkcmVzcyk7XG4gICAgcmV0dXJuIHsgZXh0ZXJuYWw6IHRydWUgfTtcbiAgfSBlbHNlIGlmIChlIGluc3RhbmNlb2YgSW52YWxpZEFkZHJlc3NEZXJpdmF0aW9uUHJvcGVydHlFcnJvciAmJiBjdXJyZW50QWRkcmVzcyA9PT0gdHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIC8vIGV4cGVjdCB0byBzZWUgdGhpcyBlcnJvciB3aGVuIHBhc3NpbmcgaW4gYSBjdXN0b20gY2hhbmdlQWRkcmVzcyB3aXRoIG5vIGNoYWluIG9yIGluZGV4XG4gICAgcmV0dXJuIHsgZXh0ZXJuYWw6IGZhbHNlIH07XG4gIH1cblxuICBjb25zb2xlLmVycm9yKCdBZGRyZXNzIGNsYXNzaWZpY2F0aW9uIGZhaWxlZCBmb3IgYWRkcmVzcycsIGN1cnJlbnRBZGRyZXNzKTtcbiAgY29uc29sZS50cmFjZShlKTtcbiAgLyoqXG4gICAqIEl0IG1pZ2h0IGJlIGEgY29tcGxldGVseSBpbnZhbGlkIGFkZHJlc3Mgb3IgYSBiYWQgdmFsaWRhdGlvbiBhdHRlbXB0IG9yIHNvbWV0aGluZyBlbHNlIGNvbXBsZXRlbHksIGluXG4gICAqIHdoaWNoIGNhc2Ugd2UgZG8gbm90IHByb2NlZWQgYW5kIHJhdGhlciByZXRocm93IHRoZSBlcnJvciwgd2hpY2ggaXMgc2FmZXIgdGhhbiBhc3N1bWluZyB0aGF0IHRoZSBhZGRyZXNzXG4gICAqIHZhbGlkYXRpb24gZmFpbGVkIHNpbXBseSBiZWNhdXNlIGl0J3MgZXh0ZXJuYWwgdG8gdGhlIHdhbGxldC5cbiAgICovXG4gIHRocm93IGU7XG59XG5cbmludGVyZmFjZSBGZXRjaEFkZHJlc3NEZXRhaWxzT3B0aW9ucyB7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIGRpc2FibGVOZXR3b3JraW5nOiBib29sZWFuO1xuICBhZGRyZXNzRGV0YWlsc1ByZWJ1aWxkOiBhbnk7XG4gIGFkZHJlc3NEZXRhaWxzVmVyaWZpY2F0aW9uOiBhbnk7XG4gIGN1cnJlbnRBZGRyZXNzOiBzdHJpbmc7XG4gIHdhbGxldDogSVdhbGxldDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBZGRyZXNzRGV0YWlscyh7XG4gIHJlcUlkLFxuICBkaXNhYmxlTmV0d29ya2luZyxcbiAgYWRkcmVzc0RldGFpbHNQcmVidWlsZCxcbiAgYWRkcmVzc0RldGFpbHNWZXJpZmljYXRpb24sXG4gIGN1cnJlbnRBZGRyZXNzLFxuICB3YWxsZXQsXG59OiBGZXRjaEFkZHJlc3NEZXRhaWxzT3B0aW9ucykge1xuICBsZXQgYWRkcmVzc0RldGFpbHMgPSBfLmV4dGVuZCh7fSwgYWRkcmVzc0RldGFpbHNQcmVidWlsZCwgYWRkcmVzc0RldGFpbHNWZXJpZmljYXRpb24pO1xuICBkZWJ1ZygnTG9jYWxseSBhdmFpbGFibGUgYWRkcmVzcyAlcyBkZXRhaWxzOiAlTycsIGN1cnJlbnRBZGRyZXNzLCBhZGRyZXNzRGV0YWlscyk7XG4gIGlmIChfLmlzRW1wdHkoYWRkcmVzc0RldGFpbHMpICYmICFkaXNhYmxlTmV0d29ya2luZykge1xuICAgIGFkZHJlc3NEZXRhaWxzID0gYXdhaXQgd2FsbGV0LmdldEFkZHJlc3MoeyBhZGRyZXNzOiBjdXJyZW50QWRkcmVzcywgcmVxSWQgfSk7XG4gICAgZGVidWcoJ0Rvd25sb2FkZWQgYWRkcmVzcyAlcyBkZXRhaWxzOiAlTycsIGN1cnJlbnRBZGRyZXNzLCBhZGRyZXNzRGV0YWlscyk7XG4gIH1cbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUNoYW5nZU9wdGlvbnMge1xuICBrZXlzOiBbS2V5Y2hhaW4sIEtleWNoYWluLCBLZXljaGFpbl07XG4gIHNpZ25hdHVyZXM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZU91dHB1dE9wdGlvbnMge1xuICBjdXJyZW50T3V0cHV0OiBPdXRwdXQ7XG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW47XG4gIHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIHZlcmlmaWNhdGlvbjogVmVyaWZpY2F0aW9uT3B0aW9ucztcbiAga2V5Y2hhaW5BcnJheTogW0tleWNoYWluLCBLZXljaGFpbiwgS2V5Y2hhaW5dO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcztcbiAgY3VzdG9tQ2hhbmdlPzogQ3VzdG9tQ2hhbmdlT3B0aW9ucztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlT3V0cHV0KHtcbiAgY3VycmVudE91dHB1dCxcbiAgY29pbixcbiAgdHhQcmVidWlsZCxcbiAgdmVyaWZpY2F0aW9uLFxuICBrZXljaGFpbkFycmF5LFxuICB3YWxsZXQsXG4gIHR4UGFyYW1zLFxuICBjdXN0b21DaGFuZ2UsXG4gIHJlcUlkLFxufTogUGFyc2VPdXRwdXRPcHRpb25zKTogUHJvbWlzZTxPdXRwdXQ+IHtcbiAgY29uc3QgZGlzYWJsZU5ldHdvcmtpbmcgPSAhIXZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcbiAgY29uc3QgY3VycmVudEFkZHJlc3MgPSBjdXJyZW50T3V0cHV0LmFkZHJlc3M7XG5cbiAgLy8gYXR0ZW1wdCB0byBncmFiIHRoZSBhZGRyZXNzIGRldGFpbHMgZnJvbSBlaXRoZXIgdGhlIHByZWJ1aWx0IHR4LCBvciB0aGUgdmVyaWZpY2F0aW9uIHBhcmFtcy5cbiAgLy8gSWYgYm90aCBvZiB0aGVzZSBhcmUgZW1wdHksIHRoZW4gd2Ugd2lsbCB0cnkgdG8gZ2V0IHRoZSBhZGRyZXNzIGRldGFpbHMgZnJvbSBiaXRnbyBpbnN0ZWFkXG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzUHJlYnVpbGQgPSBfLmdldCh0eFByZWJ1aWxkLCBgdHhJbmZvLndhbGxldEFkZHJlc3NEZXRhaWxzLiR7Y3VycmVudEFkZHJlc3N9YCwge30pO1xuICBjb25zdCBhZGRyZXNzRGV0YWlsc1ZlcmlmaWNhdGlvbjogQWRkcmVzc1ZlcmlmaWNhdGlvbkRhdGEgPSB2ZXJpZmljYXRpb24/LmFkZHJlc3Nlcz8uW2N1cnJlbnRBZGRyZXNzXSA/PyB7fTtcbiAgZGVidWcoJ1BhcnNpbmcgYWRkcmVzcyBkZXRhaWxzIGZvciAlcycsIGN1cnJlbnRBZGRyZXNzKTtcbiAgbGV0IGN1cnJlbnRBZGRyZXNzRGV0YWlscyA9IHVuZGVmaW5lZDtcbiAgbGV0IGN1cnJlbnRBZGRyZXNzVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBjb25zdCBSRUNJUElFTlRfVEhSRVNIT0xEID0gMTAwMDtcbiAgdHJ5IHtcbiAgICAvKipcbiAgICAgKiBUaGUgb25seSB3YXkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYWRkcmVzcyBpcyBrbm93biBvbiB0aGUgd2FsbGV0IGlzIHRvIGluaXRpYXRlIGEgbmV0d29yayByZXF1ZXN0IGFuZFxuICAgICAqIGZldGNoIGl0LiBTaG91bGQgdGhlIHJlcXVlc3QgZmFpbCBhbmQgcmV0dXJuIGEgNDA0LCBpdCB3aWxsIHRocm93IGFuZCB0aGVyZWZvcmUgaGFzIHRvIGJlIGNhdWdodC4gRm9yIHRoYXRcbiAgICAgKiByZWFzb24sIGFkZHJlc3Mgd2FsbGV0IG93bmVyc2hpcCBkZXRlY3Rpb24gaXMgd3JhcHBlZCBpbiBhIHRyeS9jYXRjaC4gQWRkaXRpb25hbGx5LCBvbmNlIHRoZSBhZGRyZXNzXG4gICAgICogZGV0YWlscyBhcmUgZmV0Y2hlZCBvbiB0aGUgd2FsbGV0LCBhIGxvY2FsIGFkZHJlc3MgdmFsaWRhdGlvbiBpcyBydW4sIHdob3NlIGVycm9ycyBob3dldmVyIGFyZSBnZW5lcmF0ZWRcbiAgICAgKiBjbGllbnQtc2lkZSBhbmQgY2FuIHRoZXJlZm9yZSBiZSBhbmFseXplZCB3aXRoIG1vcmUgZ3JhbnVsYXJpdHkgYW5kIHR5cGUgY2hlY2tpbmcuXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBJbiBvcmRlciB0byBtaW5pbWl6ZSBBUEkgcmVxdWVzdHMsIHdlIGFzc3VtZSB0aGF0IGV4cGxpY2l0IHJlY2lwaWVudHMgYXJlIGFsd2F5cyBleHRlcm5hbCB3aGVuIHRoZVxuICAgICAqIHJlY2lwaWVudCBsaXN0IGlzID4gMTAwMCBUaGlzIGlzIG5vdCBhbHdheXMgYSB2YWxpZCBhc3N1bXB0aW9uIGFuZCBjb3VsZCBsZWFkIGdyZWF0ZXIgYXBwYXJlbnQgc3BlbmQgKGJ1dCBuZXZlciBsb3dlcilcbiAgICAgKi9cbiAgICBpZiAodHhQYXJhbXMucmVjaXBpZW50cyAhPT0gdW5kZWZpbmVkICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gUkVDSVBJRU5UX1RIUkVTSE9MRCkge1xuICAgICAgY29uc3QgaXNDdXJyZW50QWRkcmVzc0luUmVjaXBpZW50cyA9IHR4UGFyYW1zLnJlY2lwaWVudHMuc29tZSgocmVjaXBpZW50KSA9PlxuICAgICAgICByZWNpcGllbnQuYWRkcmVzcy5pbmNsdWRlcyhjdXJyZW50QWRkcmVzcylcbiAgICAgICk7XG5cbiAgICAgIGlmIChpc0N1cnJlbnRBZGRyZXNzSW5SZWNpcGllbnRzKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmN1cnJlbnRPdXRwdXQsIGV4dGVybmFsOiB0cnVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBhd2FpdCBmZXRjaEFkZHJlc3NEZXRhaWxzKHtcbiAgICAgIHJlcUlkLFxuICAgICAgYWRkcmVzc0RldGFpbHNWZXJpZmljYXRpb24sXG4gICAgICBhZGRyZXNzRGV0YWlsc1ByZWJ1aWxkLFxuICAgICAgY3VycmVudEFkZHJlc3MsXG4gICAgICBkaXNhYmxlTmV0d29ya2luZyxcbiAgICAgIHdhbGxldCxcbiAgICB9KTtcbiAgICAvLyB2ZXJpZnkgdGhhdCB0aGUgYWRkcmVzcyBpcyBvbiB0aGUgd2FsbGV0LiB2ZXJpZnlBZGRyZXNzIHRocm93cyBpZlxuICAgIC8vIGl0IGZhaWxzIHRvIGNvcnJlY3RseSByZWRlcml2ZSB0aGUgYWRkcmVzcywgbWVhbmluZyBpdCdzIGV4dGVybmFsXG4gICAgY3VycmVudEFkZHJlc3NUeXBlID0gQWJzdHJhY3RVdHhvQ29pbi5pbmZlckFkZHJlc3NUeXBlKGFkZHJlc3NEZXRhaWxzKSB8fCB1bmRlZmluZWQ7XG4gICAgY3VycmVudEFkZHJlc3NEZXRhaWxzID0gYWRkcmVzc0RldGFpbHM7XG4gICAgYXdhaXQgY29pbi52ZXJpZnlBZGRyZXNzKFxuICAgICAgXy5leHRlbmQoeyBhZGRyZXNzVHlwZTogY3VycmVudEFkZHJlc3NUeXBlIH0sIGFkZHJlc3NEZXRhaWxzLCB7XG4gICAgICAgIGtleWNoYWluczoga2V5Y2hhaW5BcnJheSxcbiAgICAgICAgYWRkcmVzczogY3VycmVudEFkZHJlc3MsXG4gICAgICB9KVxuICAgICk7XG4gICAgZGVidWcoJ0FkZHJlc3MgJXMgdmVyaWZpY2F0aW9uIHBhc3NlZCcsIGN1cnJlbnRBZGRyZXNzKTtcblxuICAgIC8vIHZlcmlmeSBhZGRyZXNzIHN1Y2NlZWRlZCB3aXRob3V0IHRocm93aW5nLCBzbyB0aGUgYWRkcmVzcyB3YXNcbiAgICAvLyBjb3JyZWN0bHkgcmVkZXJpdmVkIGZyb20gdGhlIHdhbGxldCBrZXljaGFpbnMsIG1ha2luZyBpdCBub3QgZXh0ZXJuYWxcbiAgICByZXR1cm4gXy5leHRlbmQoe30sIGN1cnJlbnRPdXRwdXQsIGFkZHJlc3NEZXRhaWxzLCB7IGV4dGVybmFsOiBmYWxzZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRlYnVnKCdBZGRyZXNzICVzIHZlcmlmaWNhdGlvbiB0aHJldyBhbiBlcnJvcjonLCBjdXJyZW50QWRkcmVzcywgZSk7XG4gICAgcmV0dXJuIF8uZXh0ZW5kKFxuICAgICAge30sXG4gICAgICBjdXJyZW50T3V0cHV0LFxuICAgICAgYXdhaXQgaGFuZGxlVmVyaWZ5QWRkcmVzc0Vycm9yKHtcbiAgICAgICAgZSxcbiAgICAgICAgY29pbixcbiAgICAgICAgY3VycmVudEFkZHJlc3MsXG4gICAgICAgIHdhbGxldCxcbiAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgIGN1c3RvbUNoYW5nZUtleXM6IGN1c3RvbUNoYW5nZSAmJiBjdXN0b21DaGFuZ2Uua2V5cyxcbiAgICAgICAgYWRkcmVzc0RldGFpbHM6IGN1cnJlbnRBZGRyZXNzRGV0YWlscyxcbiAgICAgICAgYWRkcmVzc1R5cGU6IGN1cnJlbnRBZGRyZXNzVHlwZSxcbiAgICAgICAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWw6IHZlcmlmaWNhdGlvbi5jb25zaWRlck1pZ3JhdGVkRnJvbUFkZHJlc3NJbnRlcm5hbCxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -597,8 +597,8 @@
|
|
|
597
597
|
"affectsGlobalScope": false
|
|
598
598
|
},
|
|
599
599
|
"../../utxo-lib/dist/src/bitgo/UtxoPsbt.d.ts": {
|
|
600
|
-
"version": "
|
|
601
|
-
"signature": "
|
|
600
|
+
"version": "91e969c3f8f61c17b7c2204e9b649d4f672625bc2f6285f27dafbde13fda1a5f",
|
|
601
|
+
"signature": "91e969c3f8f61c17b7c2204e9b649d4f672625bc2f6285f27dafbde13fda1a5f",
|
|
602
602
|
"affectsGlobalScope": false
|
|
603
603
|
},
|
|
604
604
|
"../../utxo-lib/dist/src/bitgo/dash/DashPsbt.d.ts": {
|
|
@@ -627,8 +627,8 @@
|
|
|
627
627
|
"affectsGlobalScope": false
|
|
628
628
|
},
|
|
629
629
|
"../../utxo-lib/dist/src/bitgo/parseInput.d.ts": {
|
|
630
|
-
"version": "
|
|
631
|
-
"signature": "
|
|
630
|
+
"version": "8ddbd5b217234804631bf628b3cb9ec2b4cf580abf361ce26e69c967ddf1973d",
|
|
631
|
+
"signature": "8ddbd5b217234804631bf628b3cb9ec2b4cf580abf361ce26e69c967ddf1973d",
|
|
632
632
|
"affectsGlobalScope": false
|
|
633
633
|
},
|
|
634
634
|
"../../utxo-lib/dist/src/bitgo/signature.d.ts": {
|
|
@@ -662,8 +662,8 @@
|
|
|
662
662
|
"affectsGlobalScope": false
|
|
663
663
|
},
|
|
664
664
|
"../../utxo-lib/dist/src/bitgo/wallet/Psbt.d.ts": {
|
|
665
|
-
"version": "
|
|
666
|
-
"signature": "
|
|
665
|
+
"version": "974aaeb00537a29b5bbd14ddf4640cb0a8903be5e5c6a0e045af993db873c560",
|
|
666
|
+
"signature": "974aaeb00537a29b5bbd14ddf4640cb0a8903be5e5c6a0e045af993db873c560",
|
|
667
667
|
"affectsGlobalScope": false
|
|
668
668
|
},
|
|
669
669
|
"../../utxo-lib/dist/src/bitgo/wallet/WalletOutput.d.ts": {
|
|
@@ -872,8 +872,8 @@
|
|
|
872
872
|
"affectsGlobalScope": false
|
|
873
873
|
},
|
|
874
874
|
"../../unspents/dist/dimensions.d.ts": {
|
|
875
|
-
"version": "
|
|
876
|
-
"signature": "
|
|
875
|
+
"version": "b3b16440b26b8192c1e7a175b22d902dbe374f27820a61c13294ad3b57526b1d",
|
|
876
|
+
"signature": "b3b16440b26b8192c1e7a175b22d902dbe374f27820a61c13294ad3b57526b1d",
|
|
877
877
|
"affectsGlobalScope": false
|
|
878
878
|
},
|
|
879
879
|
"../../unspents/dist/index.d.ts": {
|
|
@@ -887,8 +887,8 @@
|
|
|
887
887
|
"affectsGlobalScope": false
|
|
888
888
|
},
|
|
889
889
|
"../../statics/dist/src/base.d.ts": {
|
|
890
|
-
"version": "
|
|
891
|
-
"signature": "
|
|
890
|
+
"version": "6d51026ea29fef4f15cf200c814e6ba3b42c53123c9fad9f69f0094328533b59",
|
|
891
|
+
"signature": "6d51026ea29fef4f15cf200c814e6ba3b42c53123c9fad9f69f0094328533b59",
|
|
892
892
|
"affectsGlobalScope": false
|
|
893
893
|
},
|
|
894
894
|
"../../statics/dist/src/map.d.ts": {
|
|
@@ -1737,8 +1737,8 @@
|
|
|
1737
1737
|
"affectsGlobalScope": false
|
|
1738
1738
|
},
|
|
1739
1739
|
"../../sdk-core/dist/src/bitgo/baseCoin/iBaseCoin.d.ts": {
|
|
1740
|
-
"version": "
|
|
1741
|
-
"signature": "
|
|
1740
|
+
"version": "3a8602fa4f99aa214497ac6f6876a287c36ff02c5ebf26213d66e89106d68a1d",
|
|
1741
|
+
"signature": "3a8602fa4f99aa214497ac6f6876a287c36ff02c5ebf26213d66e89106d68a1d",
|
|
1742
1742
|
"affectsGlobalScope": false
|
|
1743
1743
|
},
|
|
1744
1744
|
"../../sdk-core/dist/src/bitgo/webhook/webhooks.d.ts": {
|
|
@@ -1752,8 +1752,8 @@
|
|
|
1752
1752
|
"affectsGlobalScope": false
|
|
1753
1753
|
},
|
|
1754
1754
|
"../../sdk-core/dist/src/bitgo/baseCoin/baseCoin.d.ts": {
|
|
1755
|
-
"version": "
|
|
1756
|
-
"signature": "
|
|
1755
|
+
"version": "c92c60290c451d9bb22e4fe3f39d5293300a87da5711c314c5fcefdf6f944a10",
|
|
1756
|
+
"signature": "c92c60290c451d9bb22e4fe3f39d5293300a87da5711c314c5fcefdf6f944a10",
|
|
1757
1757
|
"affectsGlobalScope": false
|
|
1758
1758
|
},
|
|
1759
1759
|
"../../sdk-core/dist/src/bitgo/baseCoin/index.d.ts": {
|
|
@@ -2142,7 +2142,7 @@
|
|
|
2142
2142
|
"affectsGlobalScope": false
|
|
2143
2143
|
},
|
|
2144
2144
|
"../src/parseOutput.ts": {
|
|
2145
|
-
"version": "
|
|
2145
|
+
"version": "0ae2ed49bf95215c8a4b513040ad2d2d54bdc15d0c66005b54f59fde0f1eb139",
|
|
2146
2146
|
"signature": "0dfa4d2e39c3a203321684d75f90f00b46075a2730fb28b0847a17b725f7e2cb",
|
|
2147
2147
|
"affectsGlobalScope": false
|
|
2148
2148
|
},
|
|
@@ -2992,6 +2992,7 @@
|
|
|
2992
2992
|
"../../../node_modules/@types/superagent/index.d.ts"
|
|
2993
2993
|
],
|
|
2994
2994
|
"../../sdk-core/dist/src/bitgo/baseCoin/baseCoin.d.ts": [
|
|
2995
|
+
"../../../node_modules/@types/node/crypto.d.ts",
|
|
2995
2996
|
"../../../node_modules/@types/node/index.d.ts",
|
|
2996
2997
|
"../../sdk-core/dist/src/bitgo/baseCoin/iBaseCoin.d.ts",
|
|
2997
2998
|
"../../sdk-core/dist/src/bitgo/bitgoBase.d.ts",
|
|
@@ -3005,6 +3006,7 @@
|
|
|
3005
3006
|
"../../sdk-core/dist/src/bitgo/webhook/index.d.ts"
|
|
3006
3007
|
],
|
|
3007
3008
|
"../../sdk-core/dist/src/bitgo/baseCoin/iBaseCoin.d.ts": [
|
|
3009
|
+
"../../../node_modules/@types/node/crypto.d.ts",
|
|
3008
3010
|
"../../../node_modules/@types/node/index.d.ts",
|
|
3009
3011
|
"../../../node_modules/bignumber.js/bignumber.d.ts",
|
|
3010
3012
|
"../../sdk-core/dist/src/account-lib/index.d.ts",
|
|
@@ -5383,6 +5385,7 @@
|
|
|
5383
5385
|
"../../../node_modules/@types/superagent/index.d.ts"
|
|
5384
5386
|
],
|
|
5385
5387
|
"../../sdk-core/dist/src/bitgo/baseCoin/baseCoin.d.ts": [
|
|
5388
|
+
"../../../node_modules/@types/node/crypto.d.ts",
|
|
5386
5389
|
"../../../node_modules/@types/node/index.d.ts",
|
|
5387
5390
|
"../../sdk-core/dist/src/bitgo/baseCoin/iBaseCoin.d.ts",
|
|
5388
5391
|
"../../sdk-core/dist/src/bitgo/bitgoBase.d.ts",
|
|
@@ -5396,6 +5399,7 @@
|
|
|
5396
5399
|
"../../sdk-core/dist/src/bitgo/webhook/index.d.ts"
|
|
5397
5400
|
],
|
|
5398
5401
|
"../../sdk-core/dist/src/bitgo/baseCoin/iBaseCoin.d.ts": [
|
|
5402
|
+
"../../../node_modules/@types/node/crypto.d.ts",
|
|
5399
5403
|
"../../../node_modules/@types/node/index.d.ts",
|
|
5400
5404
|
"../../../node_modules/bignumber.js/bignumber.d.ts",
|
|
5401
5405
|
"../../sdk-core/dist/src/account-lib/index.d.ts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/abstract-utxo",
|
|
3
|
-
"version": "1.6.1-alpha.
|
|
3
|
+
"version": "1.6.1-alpha.39",
|
|
4
4
|
"description": "BitGo SDK coin library for UTXO base implementation",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@bitgo-beta/blockapis": "1.3.3-alpha.
|
|
41
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
42
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
43
|
-
"@bitgo-beta/unspents": "0.11.3-alpha.
|
|
44
|
-
"@bitgo-beta/utxo-lib": "4.0.1-alpha.
|
|
40
|
+
"@bitgo-beta/blockapis": "1.3.3-alpha.39",
|
|
41
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.39",
|
|
42
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.39",
|
|
43
|
+
"@bitgo-beta/unspents": "0.11.3-alpha.39",
|
|
44
|
+
"@bitgo-beta/utxo-lib": "4.0.1-alpha.39",
|
|
45
45
|
"@types/bluebird": "^3.5.25",
|
|
46
46
|
"@types/lodash": "^4.14.121",
|
|
47
47
|
"@types/superagent": "4.1.15",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"lodash": "^4.17.14",
|
|
53
53
|
"superagent": "^3.8.3"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "632ee5f4c358a7224cba200375d21dfed091b0a9"
|
|
56
56
|
}
|