@bitgo-beta/sdk-lib-safes 1.0.0-beta.19 → 1.0.0-beta.20

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.
@@ -11,7 +11,8 @@
11
11
  */
12
12
  import * as t from 'io-ts';
13
13
  export declare const DERIVED_FROM_PARENT_WITH_HARDENED_PATH: RegExp;
14
- type ChildKeyShape<K> = K extends 'bitgo' ? {
14
+ export type SafeChildKeyName = 'user' | 'backup' | 'bitgo';
15
+ type ChildKeyShape<K extends SafeChildKeyName> = K extends 'bitgo' ? {
15
16
  pub: string;
16
17
  } : {
17
18
  prv: string;
@@ -20,7 +21,12 @@ type ChildKeyShape<K> = K extends 'bitgo' ? {
20
21
  export type SafeChildTriplet = {
21
22
  index: number;
22
23
  } & {
23
- [K in 'user' | 'backup' | 'bitgo']: ChildKeyShape<K>;
24
+ [K in SafeChildKeyName]: ChildKeyShape<K>;
25
+ };
26
+ export type SafeChildTripletPubs = {
27
+ [K in SafeChildKeyName]: {
28
+ pub: string;
29
+ };
24
30
  };
25
31
  export declare function parseSafeDerivationIndex(index: string | number): number;
26
32
  export declare function getSafeHardenedDerivationPath(index: string | number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"safeDerivation.d.ts","sourceRoot":"","sources":["../../src/safeDerivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAQ3B,eAAO,MAAM,sCAAsC,QAAgB,CAAC;AAEpE,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG;KACD,CAAC,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAavE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE5E;AAED,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,iCAAiC,EAAE,OAAO,MAAM,CAAC;CAC3D;AAED,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;AAE1G,eAAO,MAAM,iCAAiC,6DAI7C,CAAC;AAcF,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3E;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAI9G;AAED,8EAA8E;AAC9E,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAOlH;AAkBD;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,GAAG,gBAAgB,CAWnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAY5G"}
1
+ {"version":3,"file":"safeDerivation.d.ts","sourceRoot":"","sources":["../../src/safeDerivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAQ3B,eAAO,MAAM,sCAAsC,QAAgB,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,KAAK,aAAa,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG;KACD,CAAC,IAAI,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,gBAAgB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;CACzC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAavE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE5E;AAED,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,iCAAiC,EAAE,OAAO,MAAM,CAAC;CAC3D;AAED,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;AAE1G,eAAO,MAAM,iCAAiC,6DAI7C,CAAC;AAcF,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3E;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAaD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAI9G;AAED,8EAA8E;AAC9E,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAOlH;AAkBD;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,GAAG,gBAAgB,CAWnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,oBAAoB,CAY5G"}
@@ -181,4 +181,4 @@ function deriveSafeChildEd25519Hardened(rootPrv, index) {
181
181
  derivationPath,
182
182
  };
183
183
  }
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZURlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FmZURlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLDREQWFDO0FBRUQsc0VBRUM7QUEwQkQsd0ZBT0M7QUFtQkQsMEVBSUM7QUFHRCxrRkFPQztBQXdCRCxnRkFnQkM7QUFjRCx3RUFZQztBQWpMRDs7Ozs7Ozs7OztHQVVHO0FBQ0gseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyxtREFBNkQ7QUFDN0QsMkRBQXdEO0FBQ3hELHFDQUEyQztBQUMzQyw2Q0FBMkY7QUFFM0YsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDO0FBQ3RCLFFBQUEsc0NBQXNDLEdBQUcsYUFBYSxDQUFDO0FBU3BFLFNBQWdCLHdCQUF3QixDQUFDLEtBQXNCO0lBQzdELElBQUksR0FBVyxDQUFDO0lBQ2hCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNkLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxLQUFLLG9DQUFvQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVE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QUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDdEMsS0FBSyxFQUFFLGFBQWE7S0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLDhCQUE4QixDQUFDLE9BQWUsRUFBRSxLQUFzQjtJQUNwRixNQUFNLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFBLDBDQUE2QixFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRSxNQUFNLFNBQVMsR0FBRyxxQ0FBaUIsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMvRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sR0FBRyxHQUFHLElBQUEseUNBQTRCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPO1FBQ0wsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUMzQyxHQUFHO1FBQ0gsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFNoYXJlZCBzYWZlIGNoaWxkIGRlcml2YXRpb24gZm9yIG1pbnQsIHNpZ24sIGFuZCByZWNvdmVyeS5cbiAqXG4gKiBVc2VyIGNoaWxkOiBoYXJkZW5lZCBgbS88aW5kZXg+J2AgZnJvbSB0aGUgc2VxdWVudGlhbCBgc2FmZS5kZXJpdmF0aW9uSW5kZXhbc2xvdF1gLlxuICogQmFja3VwIC8gQml0R28gY2hpbGRyZW4gYXJlIHNvZnQtZGVyaXZlZCBhdCBgbS88aW5kZXg+YCBjbGllbnQtc2lkZSBmb3IgcmVjb3ZlcnkuXG4gKlxuICogRG8gbm90IHVzZSBgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZGAgLyBgZGVyaXZlS2V5V2l0aFNlZWRgIChgbS85OTk5OTkvYS9iYCkg4oCUXG4gKiB0aGF0IGlzIHRoZSBjdXN0b2R5IGhhc2hlZCBwYXRoIGFuZCBjYW5ub3QgcmVwcm9kdWNlIGEgc2FmZSBjaGlsZC5cbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgKiBhcyBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBFZDI1NTE5S2V5RGVyaXZlciB9IGZyb20gJy4vZWQyNTUxOUtleURlcml2ZXInO1xuaW1wb3J0IHsgZGVjb2RlV2l0aENvZGVjIH0gZnJvbSAnLi9jb2RlY3MnO1xuaW1wb3J0IHsgZGVjb2RlRWQyNTUxOVN0cktleVNlY3JldFNlZWQsIGVuY29kZUVkMjU1MTlTdHJLZXlQdWJsaWNLZXkgfSBmcm9tICcuL2VkMjU1MTlQdWInO1xuXG5jb25zdCBNQVhfQklQMzJfSU5ERVggPSAweDdmZmZmZmZmO1xuZXhwb3J0IGNvbnN0IERFUklWRURfRlJPTV9QQVJFTlRfV0lUSF9IQVJERU5FRF9QQVRIID0gL15tXFwvKFxcZCspJyQvO1xuXG50eXBlIENoaWxkS2V5U2hhcGU8Sz4gPSBLIGV4dGVuZHMgJ2JpdGdvJyA/IHsgcHViOiBzdHJpbmcgfSA6IHsgcHJ2OiBzdHJpbmc7IHB1Yjogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBTYWZlQ2hpbGRUcmlwbGV0ID0ge1xuICBpbmRleDogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gJ3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nXTogQ2hpbGRLZXlTaGFwZTxLPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNhZmVEZXJpdmF0aW9uSW5kZXgoaW5kZXg6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gIGxldCBpZHg6IG51bWJlcjtcbiAgaWYgKHR5cGVvZiBpbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICBpZHggPSBpbmRleDtcbiAgfSBlbHNlIGlmICgvXlxcZCskLy50ZXN0KGluZGV4KSkge1xuICAgIGlkeCA9IE51bWJlcihpbmRleCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNhZmUgZGVyaXZhdGlvbiBpbmRleCAnJHtpbmRleH0nOiBleHBlY3RlZCBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyYCk7XG4gIH1cbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGlkeCkgfHwgaWR4IDwgMCB8fCBpZHggPiBNQVhfQklQMzJfSU5ERVgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2FmZSBkZXJpdmF0aW9uIGluZGV4ICcke2luZGV4fSc6IGV4cGVjdGVkIGEgbm9uLW5lZ2F0aXZlIGludGVnZXJgKTtcbiAgfVxuICByZXR1cm4gaWR4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FmZUhhcmRlbmVkRGVyaXZhdGlvblBhdGgoaW5kZXg6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgbS8ke3BhcnNlU2FmZURlcml2YXRpb25JbmRleChpbmRleCl9J2A7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoQnJhbmQge1xuICByZWFkb25seSBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGg6IHVuaXF1ZSBzeW1ib2w7XG59XG5cbmV4cG9ydCB0eXBlIERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCA9IHQuQnJhbmRlZDxzdHJpbmcsIERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aEJyYW5kPjtcblxuZXhwb3J0IGNvbnN0IERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCA9IHQuYnJhbmQoXG4gIHQuc3RyaW5nLFxuICAocyk6IHMgaXMgRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoID0+IHBhcnNlRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoSW5kZXgocykgIT09IHVuZGVmaW5lZCxcbiAgJ0Rlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCdcbik7XG5cbmZ1bmN0aW9uIHBhcnNlRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoSW5kZXgocGF0aDogc3RyaW5nKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWF0Y2ggPSBERVJJVkVEX0ZST01fUEFSRU5UX1dJVEhfSEFSREVORURfUEFUSC5leGVjKHBhdGgpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBwYXJzZVNhZmVEZXJpdmF0aW9uSW5kZXgobWF0Y2hbMV0pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZURlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aChwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCB2YWxpZGF0ZWQgPSBkZWNvZGVXaXRoQ29kZWMoRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoLCBwYXRoLCAnZGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoJyk7XG4gIGNvbnN0IGluZGV4ID0gcGFyc2VEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGhJbmRleCh2YWxpZGF0ZWQpO1xuICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGggJyR7cGF0aH0nOiBleHBlY3RlZCBtLzxuPidgKTtcbiAgfVxuICByZXR1cm4gaW5kZXg7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZUhhcmRlbmVkQ2hpbGRLZXkge1xuICBwcnY6IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGNoaWxkRnJvbU5vZGUoY2hpbGQ6IEJJUDMySW50ZXJmYWNlLCBkZXJpdmF0aW9uUGF0aDogc3RyaW5nKTogU2FmZUhhcmRlbmVkQ2hpbGRLZXkge1xuICBpZiAoIWNoaWxkLnByaXZhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZXJpdmUgaGFyZGVuZWQgc2FmZSBjaGlsZCBhdCAke2Rlcml2YXRpb25QYXRofWApO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHJ2OiBjaGlsZC50b0Jhc2U1OCgpLFxuICAgIHB1YjogY2hpbGQubmV1dGVyZWQoKS50b0Jhc2U1OCgpLFxuICAgIGRlcml2YXRpb25QYXRoLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlU2FmZUNoaWxkSGFyZGVuZWRGcm9tWHBydihyb290WHBydjogc3RyaW5nLCBpbmRleDogc3RyaW5nIHwgbnVtYmVyKTogU2FmZUhhcmRlbmVkQ2hpbGRLZXkge1xuICBjb25zdCBpZHggPSBwYXJzZVNhZmVEZXJpdmF0aW9uSW5kZXgoaW5kZXgpO1xuICBjb25zdCBkZXJpdmF0aW9uUGF0aCA9IGdldFNhZmVIYXJkZW5lZERlcml2YXRpb25QYXRoKGlkeCk7XG4gIHJldHVybiBjaGlsZEZyb21Ob2RlKGJpcDMyLmZyb21CYXNlNTgocm9vdFhwcnYpLmRlcml2ZUhhcmRlbmVkKGlkeCksIGRlcml2YXRpb25QYXRoKTtcbn1cblxuLyoqIFJlLWRlcml2ZSBhbmQgYXNzZXJ0IGJvdGggcmVzdWx0cyBtYXRjaCBiZWZvcmUgdGhlIGNoaWxkIGlzIHJlZ2lzdGVyZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlQW5kU2VsZkNoZWNrU2FmZUNoaWxkSGFyZGVuZWQocm9vdFhwcnY6IHN0cmluZywgaW5kZXg6IHN0cmluZyB8IG51bWJlcik6IFNhZmVIYXJkZW5lZENoaWxkS2V5IHtcbiAgY29uc3QgZmlyc3QgPSBkZXJpdmVTYWZlQ2hpbGRIYXJkZW5lZEZyb21YcHJ2KHJvb3RYcHJ2LCBpbmRleCk7XG4gIGNvbnN0IHNlY29uZCA9IGRlcml2ZVNhZmVDaGlsZEhhcmRlbmVkRnJvbVhwcnYocm9vdFhwcnYsIGluZGV4KTtcbiAgaWYgKGZpcnN0LnB1YiAhPT0gc2Vjb25kLnB1YiB8fCBmaXJzdC5wcnYgIT09IHNlY29uZC5wcnYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNhZmUgY2hpbGQgc2VsZi1jaGVjayBmYWlsZWQgYXQgJHtmaXJzdC5kZXJpdmF0aW9uUGF0aH06IGRlcml2YXRpb24gd2FzIG5vdCBkZXRlcm1pbmlzdGljYCk7XG4gIH1cbiAgcmV0dXJuIGZpcnN0O1xufVxuXG5mdW5jdGlvbiBkZXJpdmVTYWZlQ2hpbGRTb2Z0RnJvbVhwcnYocm9vdFhwcnY6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHsgcHJ2OiBzdHJpbmc7IHB1Yjogc3RyaW5nIH0ge1xuICBjb25zdCBjaGlsZCA9IGJpcDMyLmZyb21CYXNlNTgocm9vdFhwcnYpLmRlcml2ZShpbmRleCk7XG4gIGlmICghY2hpbGQucHJpdmF0ZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNvZnQtZGVyaXZlIHNhZmUgY2hpbGQgYXQgbS8ke2luZGV4fTogcm9vdCBoYXMgbm8gcHJpdmF0ZSBrZXlgKTtcbiAgfVxuICByZXR1cm4geyBwcnY6IGNoaWxkLnRvQmFzZTU4KCksIHB1YjogY2hpbGQubmV1dGVyZWQoKS50b0Jhc2U1OCgpIH07XG59XG5cbmZ1bmN0aW9uIGRlcml2ZVNhZmVDaGlsZFNvZnRGcm9tWHB1Yihyb290WHB1Yjogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogeyBwdWI6IHN0cmluZyB9IHtcbiAgY29uc3QgY2hpbGQgPSBiaXAzMi5mcm9tQmFzZTU4KHJvb3RYcHViKS5kZXJpdmUoaW5kZXgpO1xuICBpZiAoY2hpbGQucHJpdmF0ZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNvZnQtZGVyaXZlIHNhZmUgY2hpbGQgYXQgbS8ke2luZGV4fTogcm9vdCBoYXMgYSBwcml2YXRlIGtleWApO1xuICB9XG4gIHJldHVybiB7IHB1YjogY2hpbGQubmV1dGVyZWQoKS50b0Jhc2U1OCgpIH07XG59XG5cbi8qKlxuICogRGVyaXZlcyBzbG90LTEgY2hpbGQga2V5IG1hdGVyaWFsIGZvciBhIGNhbGxlci1zdXBwbGllZCBTYWZlIGluZGV4LlxuICpcbiAqIEluZGV4IGRpc2NvdmVyeSBiZWxvbmdzIHRvIHRoZSBvdXRlciByZWNvdmVyeSBzY2FuIChXQ04tMjc0MS9XQ04tMjc0MikuXG4gKiBUaGlzIHB1cmUgZnVuY3Rpb24gcmVwcm9kdWNlcyB0aGUgdHJpcGxldCBmb3Igb25lIGNhbmRpZGF0ZSBpbmRleC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZVNhZmVTZWNwMjU2azFNdWx0aXNpZ1RyaXBsZXQocGFyYW1zOiB7XG4gIHVzZXJSb290WHBydjogc3RyaW5nO1xuICBiYWNrdXBSb290WHBydjogc3RyaW5nO1xuICBiaXRnb1Jvb3RYcHViOiBzdHJpbmc7XG4gIGluZGV4OiBzdHJpbmcgfCBudW1iZXI7XG59KTogU2FmZUNoaWxkVHJpcGxldCB7XG4gIGNvbnN0IGRlcml2YXRpb25JZHggPSBwYXJzZVNhZmVEZXJpdmF0aW9uSW5kZXgocGFyYW1zLmluZGV4KTtcbiAgY29uc3QgdXNlciA9IGRlcml2ZVNhZmVDaGlsZEhhcmRlbmVkRnJvbVhwcnYocGFyYW1zLnVzZXJSb290WHBydiwgZGVyaXZhdGlvbklkeCk7XG4gIGNvbnN0IGJhY2t1cCA9IGRlcml2ZVNhZmVDaGlsZFNvZnRGcm9tWHBydihwYXJhbXMuYmFja3VwUm9vdFhwcnYsIGRlcml2YXRpb25JZHgpO1xuICBjb25zdCBiaXRnbyA9IGRlcml2ZVNhZmVDaGlsZFNvZnRGcm9tWHB1YihwYXJhbXMuYml0Z29Sb290WHB1YiwgZGVyaXZhdGlvbklkeCk7XG4gIHJldHVybiB7XG4gICAgYmFja3VwLFxuICAgIGJpdGdvLFxuICAgIHVzZXI6IHsgcHJ2OiB1c2VyLnBydiwgcHViOiB1c2VyLnB1YiB9LFxuICAgIGluZGV4OiBkZXJpdmF0aW9uSWR4LFxuICB9O1xufVxuXG4vKipcbiAqIFNMSVAtMDAxMCBoYXJkZW5lZCBkZXJpdmF0aW9uIG9mIGEgc2FmZSB1c2VyIGNoaWxkIGZyb20gYW4gZWQyNTUxOSByb290IHNlY3JldCBzZWVkLlxuICpcbiAqIGByb290UHJ2YCBpcyBhIFN0ZWxsYXIgU3RyS2V5IGBT4oCmYCBzZWNyZXQgc2VlZCAod2hhdCBzbG90LeKRoyBgZWQyNTUxOU11bHRpc2lnYCB1c2VyIHJvb3RzIHN0b3JlKS5cbiAqIFRoZSBkZXJpdmF0aW9uIHJldXNlcyB0aGUgZXhpc3RpbmcgU0xJUC0wMDEwIGltcGxlbWVudGF0aW9uIHtAbGluayBFZDI1NTE5S2V5RGVyaXZlci5kZXJpdmVQYXRofVxuICogKGhhcmRlbmVkLW9ubHkgQ0tEUHJpdiBvdmVyIHRoZSBgZWQyNTUxOSBzZWVkYCBITUFDIG1hc3RlciksIHRoZW4gZXhwYW5kcyB0aGUgcmVzdWx0aW5nIDMyLWJ5dGVcbiAqIGNoaWxkIHNlZWQgaW50byBhIGtleXBhaXIgd2l0aCBgbmFjbGAuIFRoZSBjaGlsZCBgcHViYCBpcyBhIGJhcmUgU3RyS2V5IGBH4oCmYDsgdGhlIGBwcnZgIGlzIHRoZVxuICogcmF3IDMyLWJ5dGUgY2hpbGQgc2VlZCBhcyBoZXggKHRoZSBzZWVkIGlucHV0IGEgc2lnbmVyIG5lZWRzKS5cbiAqXG4gKiBVbmxpa2UgdGhlIHNlY3AyNTZrMSBwYXRoLCBlZDI1NTE5IGhhcmRlbmVkIGRlcml2YXRpb24gbmVlZHMgbm8gY2hhaW4gY29kZSDigJQgdGhlIGNvbXBvc2l0ZVxuICogYHB1YuKAlmNoYWluQ29kZWAgZm9ybSBpcyBvbmx5IGZvciBTT0ZUIGNvLXNpZ25lciBkZXJpdmF0aW9uIGFuZCBpcyBub3QgdXNlZCBoZXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlU2FmZUNoaWxkRWQyNTUxOUhhcmRlbmVkKHJvb3RQcnY6IHN0cmluZywgaW5kZXg6IHN0cmluZyB8IG51bWJlcik6IFNhZmVIYXJkZW5lZENoaWxkS2V5IHtcbiAgY29uc3QgaWR4ID0gcGFyc2VTYWZlRGVyaXZhdGlvbkluZGV4KGluZGV4KTtcbiAgY29uc3QgZGVyaXZhdGlvblBhdGggPSBnZXRTYWZlSGFyZGVuZWREZXJpdmF0aW9uUGF0aChpZHgpO1xuICBjb25zdCByYXdTZWVkSGV4ID0gZGVjb2RlRWQyNTUxOVN0cktleVNlY3JldFNlZWQocm9vdFBydikudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCBjaGlsZFNlZWQgPSBFZDI1NTE5S2V5RGVyaXZlci5kZXJpdmVQYXRoKGRlcml2YXRpb25QYXRoLCByYXdTZWVkSGV4KS5rZXk7XG4gIGNvbnN0IGtleVBhaXIgPSBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZChVaW50OEFycmF5LmZyb20oY2hpbGRTZWVkKSk7XG4gIGNvbnN0IHB1YiA9IGVuY29kZUVkMjU1MTlTdHJLZXlQdWJsaWNLZXkoQnVmZmVyLmZyb20oa2V5UGFpci5wdWJsaWNLZXkpKTtcbiAgcmV0dXJuIHtcbiAgICBwcnY6IEJ1ZmZlci5mcm9tKGNoaWxkU2VlZCkudG9TdHJpbmcoJ2hleCcpLFxuICAgIHB1YixcbiAgICBkZXJpdmF0aW9uUGF0aCxcbiAgfTtcbn1cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZURlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FmZURlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUNBLDREQWFDO0FBRUQsc0VBRUM7QUEwQkQsd0ZBT0M7QUFtQkQsMEVBSUM7QUFHRCxrRkFPQztBQXdCRCxnRkFnQkM7QUFjRCx3RUFZQztBQXhMRDs7Ozs7Ozs7OztHQVVHO0FBQ0gseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyxtREFBNkQ7QUFDN0QsMkRBQXdEO0FBQ3hELHFDQUEyQztBQUMzQyw2Q0FBMkY7QUFFM0YsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDO0FBQ3RCLFFBQUEsc0NBQXNDLEdBQUcsYUFBYSxDQUFDO0FBZ0JwRSxTQUFnQix3QkFBd0IsQ0FBQyxLQUFzQjtJQUM3RCxJQUFJLEdBQVcsQ0FBQztJQUNoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDZCxDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEtBQUssb0NBQW9DLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsS0FBSyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFF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R0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3RDLEtBQUssRUFBRSxhQUFhO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxPQUFlLEVBQUUsS0FBc0I7SUFDcEYsTUFBTSxHQUFHLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSxjQUFjLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBQSwwQ0FBNkIsRUFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUUsTUFBTSxTQUFTLEdBQUcscUNBQWlCLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFBLHlDQUE0QixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekUsT0FBTztRQUNMLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDM0MsR0FBRztRQUNILGNBQWM7S0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKlxuICogQGV4cGVyaW1lbnRhbCBTaGFyZWQgc2FmZSBjaGlsZCBkZXJpdmF0aW9uIGZvciBtaW50LCBzaWduLCBhbmQgcmVjb3ZlcnkuXG4gKlxuICogVXNlciBjaGlsZDogaGFyZGVuZWQgYG0vPGluZGV4PidgIGZyb20gdGhlIHNlcXVlbnRpYWwgYHNhZmUuZGVyaXZhdGlvbkluZGV4W3Nsb3RdYC5cbiAqIEJhY2t1cCAvIEJpdEdvIGNoaWxkcmVuIGFyZSBzb2Z0LWRlcml2ZWQgYXQgYG0vPGluZGV4PmAgY2xpZW50LXNpZGUgZm9yIHJlY292ZXJ5LlxuICpcbiAqIERvIG5vdCB1c2UgYGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWRgIC8gYGRlcml2ZUtleVdpdGhTZWVkYCAoYG0vOTk5OTk5L2EvYmApIOKAlFxuICogdGhhdCBpcyB0aGUgY3VzdG9keSBoYXNoZWQgcGF0aCBhbmQgY2Fubm90IHJlcHJvZHVjZSBhIHNhZmUgY2hpbGQuXG4gKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRWQyNTUxOUtleURlcml2ZXIgfSBmcm9tICcuL2VkMjU1MTlLZXlEZXJpdmVyJztcbmltcG9ydCB7IGRlY29kZVdpdGhDb2RlYyB9IGZyb20gJy4vY29kZWNzJztcbmltcG9ydCB7IGRlY29kZUVkMjU1MTlTdHJLZXlTZWNyZXRTZWVkLCBlbmNvZGVFZDI1NTE5U3RyS2V5UHVibGljS2V5IH0gZnJvbSAnLi9lZDI1NTE5UHViJztcblxuY29uc3QgTUFYX0JJUDMyX0lOREVYID0gMHg3ZmZmZmZmZjtcbmV4cG9ydCBjb25zdCBERVJJVkVEX0ZST01fUEFSRU5UX1dJVEhfSEFSREVORURfUEFUSCA9IC9ebVxcLyhcXGQrKSckLztcblxuZXhwb3J0IHR5cGUgU2FmZUNoaWxkS2V5TmFtZSA9ICd1c2VyJyB8ICdiYWNrdXAnIHwgJ2JpdGdvJztcblxudHlwZSBDaGlsZEtleVNoYXBlPEsgZXh0ZW5kcyBTYWZlQ2hpbGRLZXlOYW1lPiA9IEsgZXh0ZW5kcyAnYml0Z28nID8geyBwdWI6IHN0cmluZyB9IDogeyBwcnY6IHN0cmluZzsgcHViOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgU2FmZUNoaWxkVHJpcGxldCA9IHtcbiAgaW5kZXg6IG51bWJlcjtcbn0gJiB7XG4gIFtLIGluIFNhZmVDaGlsZEtleU5hbWVdOiBDaGlsZEtleVNoYXBlPEs+O1xufTtcblxuZXhwb3J0IHR5cGUgU2FmZUNoaWxkVHJpcGxldFB1YnMgPSB7XG4gIFtLIGluIFNhZmVDaGlsZEtleU5hbWVdOiB7IHB1Yjogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYWZlRGVyaXZhdGlvbkluZGV4KGluZGV4OiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgaWR4OiBudW1iZXI7XG4gIGlmICh0eXBlb2YgaW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgaWR4ID0gaW5kZXg7XG4gIH0gZWxzZSBpZiAoL15cXGQrJC8udGVzdChpbmRleCkpIHtcbiAgICBpZHggPSBOdW1iZXIoaW5kZXgpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzYWZlIGRlcml2YXRpb24gaW5kZXggJyR7aW5kZXh9JzogZXhwZWN0ZWQgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihpZHgpIHx8IGlkeCA8IDAgfHwgaWR4ID4gTUFYX0JJUDMyX0lOREVYKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNhZmUgZGVyaXZhdGlvbiBpbmRleCAnJHtpbmRleH0nOiBleHBlY3RlZCBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyYCk7XG4gIH1cbiAgcmV0dXJuIGlkeDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNhZmVIYXJkZW5lZERlcml2YXRpb25QYXRoKGluZGV4OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYG0vJHtwYXJzZVNhZmVEZXJpdmF0aW9uSW5kZXgoaW5kZXgpfSdgO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aEJyYW5kIHtcbiAgcmVhZG9ubHkgRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoOiB1bmlxdWUgc3ltYm9sO1xufVxuXG5leHBvcnQgdHlwZSBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGggPSB0LkJyYW5kZWQ8c3RyaW5nLCBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGhCcmFuZD47XG5cbmV4cG9ydCBjb25zdCBEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGggPSB0LmJyYW5kKFxuICB0LnN0cmluZyxcbiAgKHMpOiBzIGlzIERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCA9PiBwYXJzZURlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aEluZGV4KHMpICE9PSB1bmRlZmluZWQsXG4gICdEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgnXG4pO1xuXG5mdW5jdGlvbiBwYXJzZURlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aEluZGV4KHBhdGg6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1hdGNoID0gREVSSVZFRF9GUk9NX1BBUkVOVF9XSVRIX0hBUkRFTkVEX1BBVEguZXhlYyhwYXRoKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VTYWZlRGVyaXZhdGlvbkluZGV4KG1hdGNoWzFdKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXJpdmVkRnJvbVBhcmVudFdpdGhIYXJkZW5lZFBhdGgocGF0aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgdmFsaWRhdGVkID0gZGVjb2RlV2l0aENvZGVjKERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCwgcGF0aCwgJ2Rlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCcpO1xuICBjb25zdCBpbmRleCA9IHBhcnNlRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoSW5kZXgodmFsaWRhdGVkKTtcbiAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoICcke3BhdGh9JzogZXhwZWN0ZWQgbS88bj4nYCk7XG4gIH1cbiAgcmV0dXJuIGluZGV4O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhZmVIYXJkZW5lZENoaWxkS2V5IHtcbiAgcHJ2OiBzdHJpbmc7XG4gIHB1Yjogc3RyaW5nO1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBjaGlsZEZyb21Ob2RlKGNoaWxkOiBCSVAzMkludGVyZmFjZSwgZGVyaXZhdGlvblBhdGg6IHN0cmluZyk6IFNhZmVIYXJkZW5lZENoaWxkS2V5IHtcbiAgaWYgKCFjaGlsZC5wcml2YXRlS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVyaXZlIGhhcmRlbmVkIHNhZmUgY2hpbGQgYXQgJHtkZXJpdmF0aW9uUGF0aH1gKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHBydjogY2hpbGQudG9CYXNlNTgoKSxcbiAgICBwdWI6IGNoaWxkLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgICBkZXJpdmF0aW9uUGF0aCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZVNhZmVDaGlsZEhhcmRlbmVkRnJvbVhwcnYocm9vdFhwcnY6IHN0cmluZywgaW5kZXg6IHN0cmluZyB8IG51bWJlcik6IFNhZmVIYXJkZW5lZENoaWxkS2V5IHtcbiAgY29uc3QgaWR4ID0gcGFyc2VTYWZlRGVyaXZhdGlvbkluZGV4KGluZGV4KTtcbiAgY29uc3QgZGVyaXZhdGlvblBhdGggPSBnZXRTYWZlSGFyZGVuZWREZXJpdmF0aW9uUGF0aChpZHgpO1xuICByZXR1cm4gY2hpbGRGcm9tTm9kZShiaXAzMi5mcm9tQmFzZTU4KHJvb3RYcHJ2KS5kZXJpdmVIYXJkZW5lZChpZHgpLCBkZXJpdmF0aW9uUGF0aCk7XG59XG5cbi8qKiBSZS1kZXJpdmUgYW5kIGFzc2VydCBib3RoIHJlc3VsdHMgbWF0Y2ggYmVmb3JlIHRoZSBjaGlsZCBpcyByZWdpc3RlcmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZUFuZFNlbGZDaGVja1NhZmVDaGlsZEhhcmRlbmVkKHJvb3RYcHJ2OiBzdHJpbmcsIGluZGV4OiBzdHJpbmcgfCBudW1iZXIpOiBTYWZlSGFyZGVuZWRDaGlsZEtleSB7XG4gIGNvbnN0IGZpcnN0ID0gZGVyaXZlU2FmZUNoaWxkSGFyZGVuZWRGcm9tWHBydihyb290WHBydiwgaW5kZXgpO1xuICBjb25zdCBzZWNvbmQgPSBkZXJpdmVTYWZlQ2hpbGRIYXJkZW5lZEZyb21YcHJ2KHJvb3RYcHJ2LCBpbmRleCk7XG4gIGlmIChmaXJzdC5wdWIgIT09IHNlY29uZC5wdWIgfHwgZmlyc3QucHJ2ICE9PSBzZWNvbmQucHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYWZlIGNoaWxkIHNlbGYtY2hlY2sgZmFpbGVkIGF0ICR7Zmlyc3QuZGVyaXZhdGlvblBhdGh9OiBkZXJpdmF0aW9uIHdhcyBub3QgZGV0ZXJtaW5pc3RpY2ApO1xuICB9XG4gIHJldHVybiBmaXJzdDtcbn1cblxuZnVuY3Rpb24gZGVyaXZlU2FmZUNoaWxkU29mdEZyb21YcHJ2KHJvb3RYcHJ2OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB7IHBydjogc3RyaW5nOyBwdWI6IHN0cmluZyB9IHtcbiAgY29uc3QgY2hpbGQgPSBiaXAzMi5mcm9tQmFzZTU4KHJvb3RYcHJ2KS5kZXJpdmUoaW5kZXgpO1xuICBpZiAoIWNoaWxkLnByaXZhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBzb2Z0LWRlcml2ZSBzYWZlIGNoaWxkIGF0IG0vJHtpbmRleH06IHJvb3QgaGFzIG5vIHByaXZhdGUga2V5YCk7XG4gIH1cbiAgcmV0dXJuIHsgcHJ2OiBjaGlsZC50b0Jhc2U1OCgpLCBwdWI6IGNoaWxkLm5ldXRlcmVkKCkudG9CYXNlNTgoKSB9O1xufVxuXG5mdW5jdGlvbiBkZXJpdmVTYWZlQ2hpbGRTb2Z0RnJvbVhwdWIocm9vdFhwdWI6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHsgcHViOiBzdHJpbmcgfSB7XG4gIGNvbnN0IGNoaWxkID0gYmlwMzIuZnJvbUJhc2U1OChyb290WHB1YikuZGVyaXZlKGluZGV4KTtcbiAgaWYgKGNoaWxkLnByaXZhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBzb2Z0LWRlcml2ZSBzYWZlIGNoaWxkIGF0IG0vJHtpbmRleH06IHJvb3QgaGFzIGEgcHJpdmF0ZSBrZXlgKTtcbiAgfVxuICByZXR1cm4geyBwdWI6IGNoaWxkLm5ldXRlcmVkKCkudG9CYXNlNTgoKSB9O1xufVxuXG4vKipcbiAqIERlcml2ZXMgc2xvdC0xIGNoaWxkIGtleSBtYXRlcmlhbCBmb3IgYSBjYWxsZXItc3VwcGxpZWQgU2FmZSBpbmRleC5cbiAqXG4gKiBJbmRleCBkaXNjb3ZlcnkgYmVsb25ncyB0byB0aGUgb3V0ZXIgcmVjb3Zlcnkgc2NhbiAoV0NOLTI3NDEvV0NOLTI3NDIpLlxuICogVGhpcyBwdXJlIGZ1bmN0aW9uIHJlcHJvZHVjZXMgdGhlIHRyaXBsZXQgZm9yIG9uZSBjYW5kaWRhdGUgaW5kZXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVTYWZlU2VjcDI1NmsxTXVsdGlzaWdUcmlwbGV0KHBhcmFtczoge1xuICB1c2VyUm9vdFhwcnY6IHN0cmluZztcbiAgYmFja3VwUm9vdFhwcnY6IHN0cmluZztcbiAgYml0Z29Sb290WHB1Yjogc3RyaW5nO1xuICBpbmRleDogc3RyaW5nIHwgbnVtYmVyO1xufSk6IFNhZmVDaGlsZFRyaXBsZXQge1xuICBjb25zdCBkZXJpdmF0aW9uSWR4ID0gcGFyc2VTYWZlRGVyaXZhdGlvbkluZGV4KHBhcmFtcy5pbmRleCk7XG4gIGNvbnN0IHVzZXIgPSBkZXJpdmVTYWZlQ2hpbGRIYXJkZW5lZEZyb21YcHJ2KHBhcmFtcy51c2VyUm9vdFhwcnYsIGRlcml2YXRpb25JZHgpO1xuICBjb25zdCBiYWNrdXAgPSBkZXJpdmVTYWZlQ2hpbGRTb2Z0RnJvbVhwcnYocGFyYW1zLmJhY2t1cFJvb3RYcHJ2LCBkZXJpdmF0aW9uSWR4KTtcbiAgY29uc3QgYml0Z28gPSBkZXJpdmVTYWZlQ2hpbGRTb2Z0RnJvbVhwdWIocGFyYW1zLmJpdGdvUm9vdFhwdWIsIGRlcml2YXRpb25JZHgpO1xuICByZXR1cm4ge1xuICAgIGJhY2t1cCxcbiAgICBiaXRnbyxcbiAgICB1c2VyOiB7IHBydjogdXNlci5wcnYsIHB1YjogdXNlci5wdWIgfSxcbiAgICBpbmRleDogZGVyaXZhdGlvbklkeCxcbiAgfTtcbn1cblxuLyoqXG4gKiBTTElQLTAwMTAgaGFyZGVuZWQgZGVyaXZhdGlvbiBvZiBhIHNhZmUgdXNlciBjaGlsZCBmcm9tIGFuIGVkMjU1MTkgcm9vdCBzZWNyZXQgc2VlZC5cbiAqXG4gKiBgcm9vdFBydmAgaXMgYSBTdGVsbGFyIFN0cktleSBgU+KApmAgc2VjcmV0IHNlZWQgKHdoYXQgc2xvdC3ikaMgYGVkMjU1MTlNdWx0aXNpZ2AgdXNlciByb290cyBzdG9yZSkuXG4gKiBUaGUgZGVyaXZhdGlvbiByZXVzZXMgdGhlIGV4aXN0aW5nIFNMSVAtMDAxMCBpbXBsZW1lbnRhdGlvbiB7QGxpbmsgRWQyNTUxOUtleURlcml2ZXIuZGVyaXZlUGF0aH1cbiAqIChoYXJkZW5lZC1vbmx5IENLRFByaXYgb3ZlciB0aGUgYGVkMjU1MTkgc2VlZGAgSE1BQyBtYXN0ZXIpLCB0aGVuIGV4cGFuZHMgdGhlIHJlc3VsdGluZyAzMi1ieXRlXG4gKiBjaGlsZCBzZWVkIGludG8gYSBrZXlwYWlyIHdpdGggYG5hY2xgLiBUaGUgY2hpbGQgYHB1YmAgaXMgYSBiYXJlIFN0cktleSBgR+KApmA7IHRoZSBgcHJ2YCBpcyB0aGVcbiAqIHJhdyAzMi1ieXRlIGNoaWxkIHNlZWQgYXMgaGV4ICh0aGUgc2VlZCBpbnB1dCBhIHNpZ25lciBuZWVkcykuXG4gKlxuICogVW5saWtlIHRoZSBzZWNwMjU2azEgcGF0aCwgZWQyNTUxOSBoYXJkZW5lZCBkZXJpdmF0aW9uIG5lZWRzIG5vIGNoYWluIGNvZGUg4oCUIHRoZSBjb21wb3NpdGVcbiAqIGBwdWLigJZjaGFpbkNvZGVgIGZvcm0gaXMgb25seSBmb3IgU09GVCBjby1zaWduZXIgZGVyaXZhdGlvbiBhbmQgaXMgbm90IHVzZWQgaGVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZVNhZmVDaGlsZEVkMjU1MTlIYXJkZW5lZChyb290UHJ2OiBzdHJpbmcsIGluZGV4OiBzdHJpbmcgfCBudW1iZXIpOiBTYWZlSGFyZGVuZWRDaGlsZEtleSB7XG4gIGNvbnN0IGlkeCA9IHBhcnNlU2FmZURlcml2YXRpb25JbmRleChpbmRleCk7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRoID0gZ2V0U2FmZUhhcmRlbmVkRGVyaXZhdGlvblBhdGgoaWR4KTtcbiAgY29uc3QgcmF3U2VlZEhleCA9IGRlY29kZUVkMjU1MTlTdHJLZXlTZWNyZXRTZWVkKHJvb3RQcnYpLnRvU3RyaW5nKCdoZXgnKTtcbiAgY29uc3QgY2hpbGRTZWVkID0gRWQyNTUxOUtleURlcml2ZXIuZGVyaXZlUGF0aChkZXJpdmF0aW9uUGF0aCwgcmF3U2VlZEhleCkua2V5O1xuICBjb25zdCBrZXlQYWlyID0gbmFjbC5zaWduLmtleVBhaXIuZnJvbVNlZWQoVWludDhBcnJheS5mcm9tKGNoaWxkU2VlZCkpO1xuICBjb25zdCBwdWIgPSBlbmNvZGVFZDI1NTE5U3RyS2V5UHVibGljS2V5KEJ1ZmZlci5mcm9tKGtleVBhaXIucHVibGljS2V5KSk7XG4gIHJldHVybiB7XG4gICAgcHJ2OiBCdWZmZXIuZnJvbShjaGlsZFNlZWQpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBwdWIsXG4gICAgZGVyaXZhdGlvblBhdGgsXG4gIH07XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import type { RootKeyType } from '@bitgo/public-types';
2
2
  type OnchainSafeRootKeySlot = Extract<RootKeyType, 'secp256k1Multisig' | 'ed25519Multisig'>;
3
- type TssSafeRootKeySlot = Extract<RootKeyType, 'ecdsaMpc'>;
3
+ type TssSafeRootKeySlot = Extract<RootKeyType, 'ecdsaMpc' | 'eddsaMpc'>;
4
4
  export declare function onchainSlotForCoin(chain: string): OnchainSafeRootKeySlot;
5
5
  export declare function tssSlotForCoin(chain: string): TssSafeRootKeySlot;
6
6
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"safeSlot.d.ts","sourceRoot":"","sources":["../../src/safeSlot.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,KAAK,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,CAAC;AAC5F,KAAK,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAE3D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CASxE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAShE"}
1
+ {"version":3,"file":"safeSlot.d.ts","sourceRoot":"","sources":["../../src/safeSlot.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,KAAK,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,CAAC;AAC5F,KAAK,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CASxE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAShE"}
@@ -9,7 +9,7 @@ exports.tssSlotForCoin = tssSlotForCoin;
9
9
  *
10
10
  * Maps a coin chain + minting model to the safe root slot that derives it. The slot
11
11
  * is a signing scheme, not a coin: slot ① secp256k1Multisig serves UTXO + XRP + TRX + …,
12
- * slot ④ ed25519Multisig serves ALGO/XLM/HBAR, and ecdsaMpc serves TSS coins.
12
+ * slot ④ ed25519Multisig serves ALGO/XLM/HBAR, and the MPC slots serve TSS coins.
13
13
  *
14
14
  * The multisigType-vs-coin validation stays in sdk-core (it needs IBaseCoin); these
15
15
  * functions take only the chain so this leaf never imports sdk-core.
@@ -31,8 +31,8 @@ function tssSlotForCoin(chain) {
31
31
  return 'ecdsaMpc';
32
32
  }
33
33
  if (curve === statics_1.KeyCurve.Ed25519) {
34
- throw new Error('ed25519 MPC safe wallet minting is not yet supported');
34
+ return 'eddsaMpc';
35
35
  }
36
36
  throw new Error(`Coin '${chain}' is not supported for safe wallet minting`);
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZVNsb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FmZVNsb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsZ0RBU0M7QUFFRCx3Q0FTQztBQXRDRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILGlEQUFzRDtBQU10RCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE1BQU0sS0FBSyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQy9DLElBQUksS0FBSyxLQUFLLGtCQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssa0JBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsS0FBYTtJQUMxQyxNQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUMvQyxJQUFJLEtBQUssS0FBSyxrQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxrQkFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssNENBQTRDLENBQUMsQ0FBQztBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFNoYXJlZCBzYWZlIHNsb3QtZm9yLWNvaW4gbWFwcGluZy5cbiAqXG4gKiBNYXBzIGEgY29pbiBjaGFpbiArIG1pbnRpbmcgbW9kZWwgdG8gdGhlIHNhZmUgcm9vdCBzbG90IHRoYXQgZGVyaXZlcyBpdC4gVGhlIHNsb3RcbiAqIGlzIGEgc2lnbmluZyBzY2hlbWUsIG5vdCBhIGNvaW46IHNsb3Qg4pGgIHNlY3AyNTZrMU11bHRpc2lnIHNlcnZlcyBVVFhPICsgWFJQICsgVFJYICsg4oCmLFxuICogc2xvdCDikaMgZWQyNTUxOU11bHRpc2lnIHNlcnZlcyBBTEdPL1hMTS9IQkFSLCBhbmQgZWNkc2FNcGMgc2VydmVzIFRTUyBjb2lucy5cbiAqXG4gKiBUaGUgbXVsdGlzaWdUeXBlLXZzLWNvaW4gdmFsaWRhdGlvbiBzdGF5cyBpbiBzZGstY29yZSAoaXQgbmVlZHMgSUJhc2VDb2luKTsgdGhlc2VcbiAqIGZ1bmN0aW9ucyB0YWtlIG9ubHkgdGhlIGNoYWluIHNvIHRoaXMgbGVhZiBuZXZlciBpbXBvcnRzIHNkay1jb3JlLlxuICovXG5pbXBvcnQgeyBjb2lucywgS2V5Q3VydmUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB0eXBlIHsgUm9vdEtleVR5cGUgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcblxudHlwZSBPbmNoYWluU2FmZVJvb3RLZXlTbG90ID0gRXh0cmFjdDxSb290S2V5VHlwZSwgJ3NlY3AyNTZrMU11bHRpc2lnJyB8ICdlZDI1NTE5TXVsdGlzaWcnPjtcbnR5cGUgVHNzU2FmZVJvb3RLZXlTbG90ID0gRXh0cmFjdDxSb290S2V5VHlwZSwgJ2VjZHNhTXBjJz47XG5cbmV4cG9ydCBmdW5jdGlvbiBvbmNoYWluU2xvdEZvckNvaW4oY2hhaW46IHN0cmluZyk6IE9uY2hhaW5TYWZlUm9vdEtleVNsb3Qge1xuICBjb25zdCBjdXJ2ZSA9IGNvaW5zLmdldChjaGFpbikucHJpbWFyeUtleUN1cnZlO1xuICBpZiAoY3VydmUgPT09IEtleUN1cnZlLlNlY3AyNTZrMSkge1xuICAgIHJldHVybiAnc2VjcDI1NmsxTXVsdGlzaWcnO1xuICB9XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuRWQyNTUxOSkge1xuICAgIHJldHVybiAnZWQyNTUxOU11bHRpc2lnJztcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYENvaW4gJyR7Y2hhaW59JyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzYWZlIHdhbGxldCBtaW50aW5nYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0c3NTbG90Rm9yQ29pbihjaGFpbjogc3RyaW5nKTogVHNzU2FmZVJvb3RLZXlTbG90IHtcbiAgY29uc3QgY3VydmUgPSBjb2lucy5nZXQoY2hhaW4pLnByaW1hcnlLZXlDdXJ2ZTtcbiAgaWYgKGN1cnZlID09PSBLZXlDdXJ2ZS5TZWNwMjU2azEpIHtcbiAgICByZXR1cm4gJ2VjZHNhTXBjJztcbiAgfVxuICBpZiAoY3VydmUgPT09IEtleUN1cnZlLkVkMjU1MTkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2VkMjU1MTkgTVBDIHNhZmUgd2FsbGV0IG1pbnRpbmcgaXMgbm90IHlldCBzdXBwb3J0ZWQnKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYENvaW4gJyR7Y2hhaW59JyBpcyBub3Qgc3VwcG9ydGVkIGZvciBzYWZlIHdhbGxldCBtaW50aW5nYCk7XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZVNsb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FmZVNsb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsZ0RBU0M7QUFFRCx3Q0FTQztBQXRDRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILGlEQUFzRDtBQU10RCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE1BQU0sS0FBSyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQy9DLElBQUksS0FBSyxLQUFLLGtCQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssa0JBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsS0FBYTtJQUMxQyxNQUFNLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUMvQyxJQUFJLEtBQUssS0FBSyxrQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxrQkFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIEBleHBlcmltZW50YWwgU2hhcmVkIHNhZmUgc2xvdC1mb3ItY29pbiBtYXBwaW5nLlxuICpcbiAqIE1hcHMgYSBjb2luIGNoYWluICsgbWludGluZyBtb2RlbCB0byB0aGUgc2FmZSByb290IHNsb3QgdGhhdCBkZXJpdmVzIGl0LiBUaGUgc2xvdFxuICogaXMgYSBzaWduaW5nIHNjaGVtZSwgbm90IGEgY29pbjogc2xvdCDikaAgc2VjcDI1NmsxTXVsdGlzaWcgc2VydmVzIFVUWE8gKyBYUlAgKyBUUlggKyDigKYsXG4gKiBzbG90IOKRoyBlZDI1NTE5TXVsdGlzaWcgc2VydmVzIEFMR08vWExNL0hCQVIsIGFuZCB0aGUgTVBDIHNsb3RzIHNlcnZlIFRTUyBjb2lucy5cbiAqXG4gKiBUaGUgbXVsdGlzaWdUeXBlLXZzLWNvaW4gdmFsaWRhdGlvbiBzdGF5cyBpbiBzZGstY29yZSAoaXQgbmVlZHMgSUJhc2VDb2luKTsgdGhlc2VcbiAqIGZ1bmN0aW9ucyB0YWtlIG9ubHkgdGhlIGNoYWluIHNvIHRoaXMgbGVhZiBuZXZlciBpbXBvcnRzIHNkay1jb3JlLlxuICovXG5pbXBvcnQgeyBjb2lucywgS2V5Q3VydmUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB0eXBlIHsgUm9vdEtleVR5cGUgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcblxudHlwZSBPbmNoYWluU2FmZVJvb3RLZXlTbG90ID0gRXh0cmFjdDxSb290S2V5VHlwZSwgJ3NlY3AyNTZrMU11bHRpc2lnJyB8ICdlZDI1NTE5TXVsdGlzaWcnPjtcbnR5cGUgVHNzU2FmZVJvb3RLZXlTbG90ID0gRXh0cmFjdDxSb290S2V5VHlwZSwgJ2VjZHNhTXBjJyB8ICdlZGRzYU1wYyc+O1xuXG5leHBvcnQgZnVuY3Rpb24gb25jaGFpblNsb3RGb3JDb2luKGNoYWluOiBzdHJpbmcpOiBPbmNoYWluU2FmZVJvb3RLZXlTbG90IHtcbiAgY29uc3QgY3VydmUgPSBjb2lucy5nZXQoY2hhaW4pLnByaW1hcnlLZXlDdXJ2ZTtcbiAgaWYgKGN1cnZlID09PSBLZXlDdXJ2ZS5TZWNwMjU2azEpIHtcbiAgICByZXR1cm4gJ3NlY3AyNTZrMU11bHRpc2lnJztcbiAgfVxuICBpZiAoY3VydmUgPT09IEtleUN1cnZlLkVkMjU1MTkpIHtcbiAgICByZXR1cm4gJ2VkMjU1MTlNdWx0aXNpZyc7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBDb2luICcke2NoYWlufScgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2FmZSB3YWxsZXQgbWludGluZ2ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHNzU2xvdEZvckNvaW4oY2hhaW46IHN0cmluZyk6IFRzc1NhZmVSb290S2V5U2xvdCB7XG4gIGNvbnN0IGN1cnZlID0gY29pbnMuZ2V0KGNoYWluKS5wcmltYXJ5S2V5Q3VydmU7XG4gIGlmIChjdXJ2ZSA9PT0gS2V5Q3VydmUuU2VjcDI1NmsxKSB7XG4gICAgcmV0dXJuICdlY2RzYU1wYyc7XG4gIH1cbiAgaWYgKGN1cnZlID09PSBLZXlDdXJ2ZS5FZDI1NTE5KSB7XG4gICAgcmV0dXJuICdlZGRzYU1wYyc7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBDb2luICcke2NoYWlufScgaXMgbm90IHN1cHBvcnRlZCBmb3Igc2FmZSB3YWxsZXQgbWludGluZ2ApO1xufVxuIl19