@bitgo/sdk-coin-sui 3.1.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.2...@bitgo/sdk-coin-sui@3.2.0) (2023-06-21)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **sdk-coin-sui:** add output value for unstaking txs ([9430e60](https://github.com/BitGo/BitGoJS/commit/9430e60d8000bb8d76e3057501c04d403458c1e7))
11
+ - **sdk-coin-sui:** fix method name for parsing reserialized tx pair ([a0e052b](https://github.com/BitGo/BitGoJS/commit/a0e052be7153f38de0d9fce57fd0776ef2f4a7d2))
12
+
13
+ ### Features
14
+
15
+ - **sdk-coin-sui:** double-check reserialized transactions ([dc2d672](https://github.com/BitGo/BitGoJS/commit/dc2d6725ee23767533a05e06990169b990104f7e))
16
+
17
+ ## [3.1.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.1...@bitgo/sdk-coin-sui@3.1.2) (2023-06-14)
18
+
19
+ ### Bug Fixes
20
+
21
+ - **sdk-coin-sui:** fix unstaking again ([ea0345f](https://github.com/BitGo/BitGoJS/commit/ea0345fec578dbb44c4230c9fde520dae1431151))
22
+
6
23
  ## [3.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-sui@3.1.0...@bitgo/sdk-coin-sui@3.1.1) (2023-06-13)
7
24
 
8
25
  **Note:** Version bump only for package @bitgo/sdk-coin-sui
@@ -1,9 +1,8 @@
1
- import { SuiTransaction } from './iface';
2
1
  export declare function assertEqualTransactionBlocks(a: {
3
- inputs: SuiTransaction['tx']['inputs'];
2
+ inputs: unknown[];
4
3
  transactions: unknown[];
5
4
  }, b: {
6
- inputs: SuiTransaction['tx']['inputs'];
5
+ inputs: unknown[];
7
6
  transactions: unknown[];
8
7
  }): void;
9
8
  //# sourceMappingURL=compareTransactionBlocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compareTransactionBlocks.d.ts","sourceRoot":"","sources":["../../../src/lib/compareTransactionBlocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,EACtE,CAAC,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,GACrE,IAAI,CAGN"}
1
+ {"version":3,"file":"compareTransactionBlocks.d.ts","sourceRoot":"","sources":["../../../src/lib/compareTransactionBlocks.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,EACjD,CAAC,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,GAChD,IAAI,CAGN"}
@@ -10,4 +10,4 @@ function assertEqualTransactionBlocks(a, b) {
10
10
  assert_1.default.deepStrictEqual(a.transactions, b.transactions, 'Different transactions');
11
11
  }
12
12
  exports.assertEqualTransactionBlocks = assertEqualTransactionBlocks;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRzVCLFNBQWdCLDRCQUE0QixDQUMxQyxDQUFzRSxFQUN0RSxDQUFzRTtJQUV0RSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBTkQsb0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTdWlUcmFuc2FjdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RXF1YWxUcmFuc2FjdGlvbkJsb2NrcyhcbiAgYTogeyBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXTsgdHJhbnNhY3Rpb25zOiB1bmtub3duW10gfSxcbiAgYjogeyBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXTsgdHJhbnNhY3Rpb25zOiB1bmtub3duW10gfVxuKTogdm9pZCB7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYS5pbnB1dHMsIGIuaW5wdXRzLCAnRGlmZmVyZW50IGlucHV0cycpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGEudHJhbnNhY3Rpb25zLCBiLnRyYW5zYWN0aW9ucywgJ0RpZmZlcmVudCB0cmFuc2FjdGlvbnMnKTtcbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLFNBQWdCLDRCQUE0QixDQUMxQyxDQUFpRCxFQUNqRCxDQUFpRDtJQUVqRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBTkQsb0VBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFcXVhbFRyYW5zYWN0aW9uQmxvY2tzKFxuICBhOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9LFxuICBiOiB7IGlucHV0czogdW5rbm93bltdOyB0cmFuc2FjdGlvbnM6IHVua25vd25bXSB9XG4pOiB2b2lkIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhLmlucHV0cywgYi5pbnB1dHMsICdEaWZmZXJlbnQgaW5wdXRzJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYS50cmFuc2FjdGlvbnMsIGIudHJhbnNhY3Rpb25zLCAnRGlmZmVyZW50IHRyYW5zYWN0aW9ucycpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/Inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpF,OAAO,EAAuB,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAcxF,eAAO,MAAM,WAAW;;;;EAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC;AAC3D,oBAAY,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACpD,oBAAY,aAAa,GAAG,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;QAAsC,CAAC;AAClE,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,MAAM;eACN,OAAO,8BAAkB,WAAW;mBAKhC,YAAY,GAAG,aAAa;yBAGtB,eAAe,GAAG,aAAa;CAGrD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,UAQ7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAErF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEvE"}
1
+ {"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/Inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpF,OAAO,EAAuB,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAcxF,eAAO,MAAM,WAAW;;;;EAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC;AAC3D,oBAAY,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACpD,oBAAY,aAAa,GAAG,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;QAAsC,CAAC;AAClE,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,MAAM;eACN,OAAO,8BAAkB,WAAW;mBAKhC,YAAY,GAAG,aAAa;yBAGtB,eAAe,GAAG,aAAa;CAGrD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,MAAM,CAQtE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAErF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEvE"}
@@ -53,4 +53,4 @@ function isMutableSharedObjectInput(arg) {
53
53
  return (_b = (_a = getSharedObjectInput(arg)) === null || _a === void 0 ? void 0 : _a.mutable) !== null && _b !== void 0 ? _b : false;
54
54
  }
55
55
  exports.isMutableSharedObjectInput = isMutableSharedObjectInput;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9JbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW9GO0FBQ3BGLG9DQUF3RjtBQUN4RiwrQkFBZ0M7QUFFaEMsTUFBTSxTQUFTLEdBQUcsbUJBQUssQ0FBQztJQUN0QixvQkFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLG9CQUFZLEVBQUUsQ0FBQztJQUNwQyxvQkFBTSxDQUFDO1FBQ0wsTUFBTSxFQUFFLG9CQUFNLENBQUM7WUFDYixRQUFRLEVBQUUsb0JBQU0sRUFBRTtZQUNsQixvQkFBb0IsRUFBRSxtQkFBSyxDQUFDLENBQUMscUJBQU8sRUFBRSxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxxQkFBTyxFQUFFO1NBQ25CLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRVUsUUFBQSxXQUFXLEdBQUcsb0JBQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBSyxDQUFDLHFCQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRCxRQUFBLGFBQWEsR0FBRyxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFJOUMsUUFBQSxjQUFjLEdBQUcsbUJBQUssQ0FBQyxDQUFDLG1CQUFXLEVBQUUscUJBQWEsQ0FBQyxDQUFDLENBQUM7QUFHckQsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxDQUFDLElBQWEsRUFBRSxJQUFhO1FBQy9CLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQU8sQ0FBQyxHQUFHLENBQUMsSUFBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3pGLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQWlCO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQW9CO1FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUFDLEdBQTZCO0lBQzVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQzNCLE9BQU8sMkJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDakM7SUFDRCxJQUFJLFlBQVksSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDcEMsQ0FBQztBQVJELDRDQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBbUI7SUFDdEQsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFtQjtJQUNyRCxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxHQUFtQjs7SUFDNUQsT0FBTyxNQUFBLE1BQUEsb0JBQW9CLENBQUMsR0FBRyxDQUFDLDBDQUFFLE9BQU8sbUNBQUksS0FBSyxDQUFDO0FBQ3JELENBQUM7QUFGRCxnRUFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBib29sZWFuLCBJbmZlciwgaW50ZWdlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcywgT2JqZWN0SWQsIFNoYXJlZE9iamVjdFJlZiwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRlciB9IGZyb20gJy4vYmNzJztcblxuY29uc3QgT2JqZWN0QXJnID0gdW5pb24oW1xuICBvYmplY3QoeyBJbW1Pck93bmVkOiBTdWlPYmplY3RSZWYgfSksXG4gIG9iamVjdCh7XG4gICAgU2hhcmVkOiBvYmplY3Qoe1xuICAgICAgb2JqZWN0SWQ6IHN0cmluZygpLFxuICAgICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IHVuaW9uKFtpbnRlZ2VyKCksIHN0cmluZygpXSksXG4gICAgICBtdXRhYmxlOiBib29sZWFuKCksXG4gICAgfSksXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQdXJlQ2FsbEFyZyA9IG9iamVjdCh7IFB1cmU6IGFycmF5KGludGVnZXIoKSkgfSk7XG5leHBvcnQgY29uc3QgT2JqZWN0Q2FsbEFyZyA9IG9iamVjdCh7IE9iamVjdDogT2JqZWN0QXJnIH0pO1xuZXhwb3J0IHR5cGUgUHVyZUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgUHVyZUNhbGxBcmc+O1xuZXhwb3J0IHR5cGUgT2JqZWN0Q2FsbEFyZyA9IEluZmVyPHR5cGVvZiBPYmplY3RDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IEJ1aWxkZXJDYWxsQXJnID0gdW5pb24oW1B1cmVDYWxsQXJnLCBPYmplY3RDYWxsQXJnXSk7XG5leHBvcnQgdHlwZSBCdWlsZGVyQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBCdWlsZGVyQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBJbnB1dHMgPSB7XG4gIFB1cmUoZGF0YTogdW5rbm93biwgdHlwZT86IHN0cmluZyk6IFB1cmVDYWxsQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgUHVyZTogQXJyYXkuZnJvbShkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBidWlsZGVyLnNlcih0eXBlISwgZGF0YSkudG9CeXRlcygpKSxcbiAgICB9O1xuICB9LFxuICBPYmplY3RSZWYocmVmOiBTdWlPYmplY3RSZWYpOiBPYmplY3RDYWxsQXJnIHtcbiAgICByZXR1cm4geyBPYmplY3Q6IHsgSW1tT3JPd25lZDogcmVmIH0gfTtcbiAgfSxcbiAgU2hhcmVkT2JqZWN0UmVmKHJlZjogU2hhcmVkT2JqZWN0UmVmKTogT2JqZWN0Q2FsbEFyZyB7XG4gICAgcmV0dXJuIHsgT2JqZWN0OiB7IFNoYXJlZDogcmVmIH0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZEZyb21DYWxsQXJnKGFyZzogT2JqZWN0SWQgfCBPYmplY3RDYWxsQXJnKSB7XG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBub3JtYWxpemVTdWlBZGRyZXNzKGFyZyk7XG4gIH1cbiAgaWYgKCdJbW1Pck93bmVkJyBpbiBhcmcuT2JqZWN0KSB7XG4gICAgcmV0dXJuIGFyZy5PYmplY3QuSW1tT3JPd25lZC5vYmplY3RJZDtcbiAgfVxuICByZXR1cm4gYXJnLk9iamVjdC5TaGFyZWQub2JqZWN0SWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRPYmplY3RJbnB1dChhcmc6IEJ1aWxkZXJDYWxsQXJnKTogU2hhcmVkT2JqZWN0UmVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmICdPYmplY3QnIGluIGFyZyAmJiAnU2hhcmVkJyBpbiBhcmcuT2JqZWN0ID8gYXJnLk9iamVjdC5TaGFyZWQgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZ2V0U2hhcmVkT2JqZWN0SW5wdXQoYXJnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXV0YWJsZVNoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFNoYXJlZE9iamVjdElucHV0KGFyZyk/Lm11dGFibGUgPz8gZmFsc2U7XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9JbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW9GO0FBQ3BGLG9DQUF3RjtBQUN4RiwrQkFBZ0M7QUFFaEMsTUFBTSxTQUFTLEdBQUcsbUJBQUssQ0FBQztJQUN0QixvQkFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLG9CQUFZLEVBQUUsQ0FBQztJQUNwQyxvQkFBTSxDQUFDO1FBQ0wsTUFBTSxFQUFFLG9CQUFNLENBQUM7WUFDYixRQUFRLEVBQUUsb0JBQU0sRUFBRTtZQUNsQixvQkFBb0IsRUFBRSxtQkFBSyxDQUFDLENBQUMscUJBQU8sRUFBRSxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxxQkFBTyxFQUFFO1NBQ25CLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRVUsUUFBQSxXQUFXLEdBQUcsb0JBQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBSyxDQUFDLHFCQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRCxRQUFBLGFBQWEsR0FBRyxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFJOUMsUUFBQSxjQUFjLEdBQUcsbUJBQUssQ0FBQyxDQUFDLG1CQUFXLEVBQUUscUJBQWEsQ0FBQyxDQUFDLENBQUM7QUFHckQsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxDQUFDLElBQWEsRUFBRSxJQUFhO1FBQy9CLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQU8sQ0FBQyxHQUFHLENBQUMsSUFBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3pGLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQWlCO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQW9CO1FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUFDLEdBQTZCO0lBQzVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQzNCLE9BQU8sMkJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDakM7SUFDRCxJQUFJLFlBQVksSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDcEMsQ0FBQztBQVJELDRDQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBbUI7SUFDdEQsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFtQjtJQUNyRCxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxHQUFtQjs7SUFDNUQsT0FBTyxNQUFBLE1BQUEsb0JBQW9CLENBQUMsR0FBRyxDQUFDLDBDQUFFLE9BQU8sbUNBQUksS0FBSyxDQUFDO0FBQ3JELENBQUM7QUFGRCxnRUFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBib29sZWFuLCBJbmZlciwgaW50ZWdlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcywgT2JqZWN0SWQsIFNoYXJlZE9iamVjdFJlZiwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRlciB9IGZyb20gJy4vYmNzJztcblxuY29uc3QgT2JqZWN0QXJnID0gdW5pb24oW1xuICBvYmplY3QoeyBJbW1Pck93bmVkOiBTdWlPYmplY3RSZWYgfSksXG4gIG9iamVjdCh7XG4gICAgU2hhcmVkOiBvYmplY3Qoe1xuICAgICAgb2JqZWN0SWQ6IHN0cmluZygpLFxuICAgICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IHVuaW9uKFtpbnRlZ2VyKCksIHN0cmluZygpXSksXG4gICAgICBtdXRhYmxlOiBib29sZWFuKCksXG4gICAgfSksXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQdXJlQ2FsbEFyZyA9IG9iamVjdCh7IFB1cmU6IGFycmF5KGludGVnZXIoKSkgfSk7XG5leHBvcnQgY29uc3QgT2JqZWN0Q2FsbEFyZyA9IG9iamVjdCh7IE9iamVjdDogT2JqZWN0QXJnIH0pO1xuZXhwb3J0IHR5cGUgUHVyZUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgUHVyZUNhbGxBcmc+O1xuZXhwb3J0IHR5cGUgT2JqZWN0Q2FsbEFyZyA9IEluZmVyPHR5cGVvZiBPYmplY3RDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IEJ1aWxkZXJDYWxsQXJnID0gdW5pb24oW1B1cmVDYWxsQXJnLCBPYmplY3RDYWxsQXJnXSk7XG5leHBvcnQgdHlwZSBCdWlsZGVyQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBCdWlsZGVyQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBJbnB1dHMgPSB7XG4gIFB1cmUoZGF0YTogdW5rbm93biwgdHlwZT86IHN0cmluZyk6IFB1cmVDYWxsQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgUHVyZTogQXJyYXkuZnJvbShkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBidWlsZGVyLnNlcih0eXBlISwgZGF0YSkudG9CeXRlcygpKSxcbiAgICB9O1xuICB9LFxuICBPYmplY3RSZWYocmVmOiBTdWlPYmplY3RSZWYpOiBPYmplY3RDYWxsQXJnIHtcbiAgICByZXR1cm4geyBPYmplY3Q6IHsgSW1tT3JPd25lZDogcmVmIH0gfTtcbiAgfSxcbiAgU2hhcmVkT2JqZWN0UmVmKHJlZjogU2hhcmVkT2JqZWN0UmVmKTogT2JqZWN0Q2FsbEFyZyB7XG4gICAgcmV0dXJuIHsgT2JqZWN0OiB7IFNoYXJlZDogcmVmIH0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZEZyb21DYWxsQXJnKGFyZzogT2JqZWN0SWQgfCBPYmplY3RDYWxsQXJnKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVN1aUFkZHJlc3MoYXJnKTtcbiAgfVxuICBpZiAoJ0ltbU9yT3duZWQnIGluIGFyZy5PYmplY3QpIHtcbiAgICByZXR1cm4gYXJnLk9iamVjdC5JbW1Pck93bmVkLm9iamVjdElkO1xuICB9XG4gIHJldHVybiBhcmcuT2JqZWN0LlNoYXJlZC5vYmplY3RJZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBTaGFyZWRPYmplY3RSZWYgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgJ09iamVjdCcgaW4gYXJnICYmICdTaGFyZWQnIGluIGFyZy5PYmplY3QgPyBhcmcuT2JqZWN0LlNoYXJlZCA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkT2JqZWN0SW5wdXQoYXJnOiBCdWlsZGVyQ2FsbEFyZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFnZXRTaGFyZWRPYmplY3RJbnB1dChhcmcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNdXRhYmxlU2hhcmVkT2JqZWN0SW5wdXQoYXJnOiBCdWlsZGVyQ2FsbEFyZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0U2hhcmVkT2JqZWN0SW5wdXQoYXJnKT8ubXV0YWJsZSA/PyBmYWxzZTtcbn1cbiJdfQ==
@@ -47,6 +47,10 @@ export declare class UnstakingBuilder extends TransactionBuilder<UnstakingProgra
47
47
  */
48
48
  private validateTransactionFields;
49
49
  static getTransactionBlockData(objectRef: SuiObjectRef, amount?: bigint): SerializedTransactionDataBuilder;
50
+ static getTransactionBlockDataReserialized(objectRef: SuiObjectRef, amount: bigint): {
51
+ inputs: unknown[];
52
+ transactions: unknown[];
53
+ };
50
54
  /**
51
55
  * Build SuiTransaction
52
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"unstakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EACL,cAAc,EACd,wBAAwB,EAExB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAiB5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAE5F,qBAAa,gBAAiB,SAAQ,kBAAkB,CAAC,gCAAgC,CAAC;IACxF,SAAS,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAE5C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,IAAI,cAAc,CAAC,gCAAgC,CAAC;IAYrF;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAWhD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,gCAAgC,CAAC;IAQnG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAgB7F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAqBpE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAWjC,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gCAAgC;IA2B1G;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,gCAAgC,CAAC;CAkBlF"}
1
+ {"version":3,"file":"unstakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakingBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EACL,cAAc,EACd,wBAAwB,EAExB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAY5D,OAAO,EAAwB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAE5F,qBAAa,gBAAiB,SAAQ,kBAAkB,CAAC,gCAAgC,CAAC;IACxF,SAAS,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAE5C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,IAAI,cAAc,CAAC,gCAAgC,CAAC;IAYrF;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAWhD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,gCAAgC,CAAC;IAQnG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAgB7F;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAuBpE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAWjC,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gCAAgC;IA2B1G,MAAM,CAAC,mCAAmC,CACxC,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,GACb;QAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,YAAY,EAAE,OAAO,EAAE,CAAA;KAAE;IAkDjD;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,gCAAgC,CAAC;CAkBlF"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UnstakingBuilder = void 0;
7
+ const bcs_1 = require("@mysten/bcs");
7
8
  const sdk_core_1 = require("@bitgo/sdk-core");
8
9
  const iface_1 = require("./iface");
9
10
  const transactionBuilder_1 = require("./transactionBuilder");
@@ -12,6 +13,7 @@ const builder_1 = require("./mystenlab/builder");
12
13
  const framework_1 = require("./mystenlab/framework");
13
14
  const unstakingTransaction_1 = require("./unstakingTransaction");
14
15
  const utils_1 = __importDefault(require("./utils"));
16
+ const types_1 = require("./mystenlab/types");
15
17
  class UnstakingBuilder extends transactionBuilder_1.TransactionBuilder {
16
18
  constructor(_coinConfig) {
17
19
  super(_coinConfig);
@@ -104,10 +106,16 @@ class UnstakingBuilder extends transactionBuilder_1.TransactionBuilder {
104
106
  this.type(iface_1.SuiTransactionType.WithdrawStake);
105
107
  this.sender(txData.sender);
106
108
  this.gasData(txData.gasData);
107
- const stakedSuiInputIdx = txData.kind.ProgrammableTransaction.transactions[0].arguments[1].index;
108
- const stakedSuiInput = txData.kind.ProgrammableTransaction.inputs[stakedSuiInputIdx];
109
- const stakedSui = 'value' in stakedSuiInput ? stakedSuiInput.value : stakedSuiInput;
110
- this.unstake({ stakedSui: stakedSui.Object.ImmOrOwned });
109
+ const parsed = unstakingTransaction_1.UnstakingTransaction.parseTransaction(tx.suiTransaction.tx);
110
+ this.unstake({
111
+ stakedSui: {
112
+ // it is a bit unclear why we have to normalize this way
113
+ ...parsed.stakedObjectRef,
114
+ objectId: types_1.normalizeSuiObjectId(parsed.stakedObjectRef.objectId),
115
+ version: Number(parsed.stakedObjectRef.version),
116
+ },
117
+ amount: parsed.amount === undefined ? undefined : Number(parsed.amount),
118
+ });
111
119
  }
112
120
  /**
113
121
  * Validates all fields are defined
@@ -144,6 +152,55 @@ class UnstakingBuilder extends transactionBuilder_1.TransactionBuilder {
144
152
  }
145
153
  return txb.blockData;
146
154
  }
155
+ static getTransactionBlockDataReserialized(objectRef, amount) {
156
+ const inputs = [
157
+ { Object: { ImmOrOwned: objectRef } },
158
+ builder_1.Inputs.Pure(amount, bcs_1.BCS.U64),
159
+ {
160
+ Object: {
161
+ Shared: {
162
+ objectId: '0000000000000000000000000000000000000000000000000000000000000005',
163
+ initialSharedVersion: '1',
164
+ mutable: true,
165
+ },
166
+ },
167
+ },
168
+ ];
169
+ const transactions = [
170
+ {
171
+ kind: 'MoveCall',
172
+ target: '0000000000000000000000000000000000000000000000000000000000000003::staking_pool::split',
173
+ arguments: [
174
+ {
175
+ kind: 'Input',
176
+ index: 0,
177
+ },
178
+ {
179
+ kind: 'Input',
180
+ index: 1,
181
+ },
182
+ ],
183
+ typeArguments: [],
184
+ },
185
+ {
186
+ kind: 'MoveCall',
187
+ target: '0000000000000000000000000000000000000000000000000000000000000003::sui_system::request_withdraw_stake',
188
+ arguments: [
189
+ {
190
+ kind: 'Input',
191
+ index: 2,
192
+ },
193
+ {
194
+ kind: 'NestedResult',
195
+ index: 0,
196
+ resultIndex: 0,
197
+ },
198
+ ],
199
+ typeArguments: [],
200
+ },
201
+ ];
202
+ return { inputs, transactions };
203
+ }
147
204
  /**
148
205
  * Build SuiTransaction
149
206
  *
@@ -167,4 +224,4 @@ class UnstakingBuilder extends transactionBuilder_1.TransactionBuilder {
167
224
  }
168
225
  }
169
226
  exports.UnstakingBuilder = UnstakingBuilder;
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFraW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdW5zdGFraW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSw4Q0FBa0Y7QUFDbEYsbUNBS2lCO0FBQ2pCLDZEQUEwRDtBQUUxRCxvREFBNEI7QUFFNUIsaURBSzZCO0FBQzdCLHFEQU8rQjtBQUMvQixpRUFBOEQ7QUFDOUQsb0RBQTRCO0FBSTVCLE1BQWEsZ0JBQWlCLFNBQVEsdUNBQW9EO0lBR3hGLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLHVCQUF1QjtRQUMvQixPQUFPO1lBQ0wsSUFBSSxFQUFFLDBCQUFrQixDQUFDLGFBQWE7WUFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRTtnQkFDRixNQUFNLEVBQUUsRUFBRTtnQkFDVixZQUFZLEVBQUUsRUFBRTthQUNqQjtZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxXQUFnQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFZO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FB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QUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdExELDRDQXNMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQge1xuICBTdWlUcmFuc2FjdGlvbixcbiAgUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpLFxuICBTdWlUcmFuc2FjdGlvblR5cGUsXG4gIFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBUcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcixcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBJbnB1dHMsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgU1VJX1NUQUtJTkdfUE9PTF9NT0RVTEVfTkFNRSxcbiAgU1VJX1NUQUtJTkdfUE9PTF9TUExJVF9GVU5fTkFNRSxcbiAgU1VJX1NZU1RFTV9BRERSRVNTLFxuICBTVUlfU1lTVEVNX01PRFVMRV9OQU1FLFxuICBTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCxcbiAgV0lUSERSQVdfU1RBS0VfRlVOX05BTUUsXG59IGZyb20gJy4vbXlzdGVubGFiL2ZyYW1ld29yayc7XG5pbXBvcnQgeyBVbnN0YWtpbmdUcmFuc2FjdGlvbiB9IGZyb20gJy4vdW5zdGFraW5nVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZFRyYW5zYWN0aW9uRGF0YUJ1aWxkZXIgfSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyL1RyYW5zYWN0aW9uRGF0YUJsb2NrJztcblxuZXhwb3J0IGNsYXNzIFVuc3Rha2luZ0J1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF93aXRoZHJhd0RlbGVnYXRpb246IFJlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVW5zdGFraW5nVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgTW92ZUNhbGwgdHJhbnNhY3Rpb24gcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHJldHVybnMge0JpdEdvU3VpVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIFN1aSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVW5zdGFrZVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBzaWduKGtleTogQmFzZUtleSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHN1cGVyLnNpZ24oa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHdpdGhkcmF3aW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aX0gcmVxdWVzdFxuICAgKi9cbiAgdW5zdGFrZShyZXF1ZXN0OiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWkpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHJlcXVlc3Quc3Rha2VkU3VpLCAnc3Rha2VkU3VpJyk7XG4gICAgaWYgKHJlcXVlc3QuYW1vdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghdXRpbHMuaXNWYWxpZEFtb3VudChyZXF1ZXN0LmFtb3VudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFtb3VudDogJHtyZXF1ZXN0LmFtb3VudH1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFVuc3Rha2luZ1RyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUucHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG5cbiAgICBpZiAodHguc2lnbmF0dXJlICYmIHR4LnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzID0gW3R4LnN1aVNpZ25hdHVyZV07XG4gICAgfVxuXG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy50eXBlKFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuXG4gICAgY29uc3Qgc3Rha2VkU3VpSW5wdXRJZHggPSAoXG4gICAgICAodHhEYXRhLmtpbmQuUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zWzBdIGFzIE1vdmVDYWxsVHJhbnNhY3Rpb24pLmFyZ3VtZW50c1sxXSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICApLmluZGV4O1xuICAgIGNvbnN0IHN0YWtlZFN1aUlucHV0ID0gdHhEYXRhLmtpbmQuUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24uaW5wdXRzW3N0YWtlZFN1aUlucHV0SWR4XSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXQ7XG4gICAgY29uc3Qgc3Rha2VkU3VpID0gJ3ZhbHVlJyBpbiBzdGFrZWRTdWlJbnB1dCA/IHN0YWtlZFN1aUlucHV0LnZhbHVlIDogc3Rha2VkU3VpSW5wdXQ7XG5cbiAgICB0aGlzLnVuc3Rha2UoeyBzdGFrZWRTdWk6IHN0YWtlZFN1aS5PYmplY3QuSW1tT3JPd25lZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGFzc2VydCh0aGlzLl90eXBlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0eXBlIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydChcbiAgICAgIHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5zdGFrZWRTdWksXG4gICAgICBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzdGFrZWRTdWkgb2JqZWN0IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpXG4gICAgKTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VHJhbnNhY3Rpb25CbG9ja0RhdGEob2JqZWN0UmVmOiBTdWlPYmplY3RSZWYsIGFtb3VudD86IGJpZ2ludCk6IFNlcmlhbGl6ZWRUcmFuc2FjdGlvbkRhdGFCdWlsZGVyIHtcbiAgICBjb25zdCB0eGIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIGNvbnN0IHRhcmdldFNwbGl0ID1cbiAgICAgIGAke1NVSV9TWVNURU1fQUREUkVTU306OiR7U1VJX1NUQUtJTkdfUE9PTF9NT0RVTEVfTkFNRX06OiR7U1VJX1NUQUtJTkdfUE9PTF9TUExJVF9GVU5fTkFNRX1gIGFzIGAke3N0cmluZ306OiR7c3RyaW5nfTo6JHtzdHJpbmd9YDtcbiAgICBjb25zdCB0YXJnZXRXaXRoZHJhd1N0YWtlID1cbiAgICAgIGAke1NVSV9TWVNURU1fQUREUkVTU306OiR7U1VJX1NZU1RFTV9NT0RVTEVfTkFNRX06OiR7V0lUSERSQVdfU1RBS0VfRlVOX05BTUV9YCBhcyBgJHtzdHJpbmd9Ojoke3N0cmluZ306OiR7c3RyaW5nfWA7XG4gICAgaWYgKGFtb3VudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFdpdGhkcmF3U3Rha2UsXG4gICAgICAgIGFyZ3VtZW50czogW3R4Yi5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLCB0eGIucHVyZShJbnB1dHMuT2JqZWN0UmVmKG9iamVjdFJlZikpXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFNwbGl0LFxuICAgICAgICBhcmd1bWVudHM6IFt0eGIub2JqZWN0KElucHV0cy5PYmplY3RSZWYob2JqZWN0UmVmKSksIHR4Yi5wdXJlKGFtb3VudCldLFxuICAgICAgfSk7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFdpdGhkcmF3U3Rha2UsXG4gICAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICAgIHR4Yi5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLFxuICAgICAgICAgIHsga2luZDogJ05lc3RlZFJlc3VsdCcsIGluZGV4OiAwLCByZXN1bHRJbmRleDogMCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0eGIuYmxvY2tEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIFN1aVRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEByZXR1cm4ge1N1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgICBjb25zdCB0eERhdGEgPSBVbnN0YWtpbmdCdWlsZGVyLmdldFRyYW5zYWN0aW9uQmxvY2tEYXRhKFxuICAgICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uLnN0YWtlZFN1aSxcbiAgICAgIHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5hbW91bnQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEJpZ0ludCh0aGlzLl93aXRoZHJhd0RlbGVnYXRpb24uYW1vdW50KVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHR4OiB7XG4gICAgICAgIGlucHV0czogWy4uLnR4RGF0YS5pbnB1dHNdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFsuLi50eERhdGEudHJhbnNhY3Rpb25zXSxcbiAgICAgIH0sXG4gICAgICBnYXNEYXRhOiB7XG4gICAgICAgIC4uLnRoaXMuX2dhc0RhdGEsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFraW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdW5zdGFraW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxQ0FBa0M7QUFFbEMsOENBQWtGO0FBQ2xGLG1DQUtpQjtBQUNqQiw2REFBMEQ7QUFFMUQsb0RBQTRCO0FBRTVCLGlEQUFxRztBQUNyRyxxREFPK0I7QUFDL0IsaUVBQThEO0FBQzlELG9EQUE0QjtBQUM1Qiw2Q0FBdUU7QUFHdkUsTUFBYSxnQkFBaUIsU0FBUSx1Q0FBb0Q7SUFHeEYsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDJDQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ08sdUJBQXVCO1FBQy9CLE9BQU87WUFDTCxJQUFJLEVBQUUsMEJBQWtCLENBQUMsYUFBYTtZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQWdDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQy9CLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQVk7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFD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QU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN09ELDRDQTZPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQge1xuICBTdWlUcmFuc2FjdGlvbixcbiAgUmVxdWVzdFdpdGhkcmF3U3Rha2VkU3VpLFxuICBTdWlUcmFuc2FjdGlvblR5cGUsXG4gIFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBUcmFuc2ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2ZlclRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlciwgSW5wdXRzIH0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQge1xuICBTVUlfU1RBS0lOR19QT09MX01PRFVMRV9OQU1FLFxuICBTVUlfU1RBS0lOR19QT09MX1NQTElUX0ZVTl9OQU1FLFxuICBTVUlfU1lTVEVNX0FERFJFU1MsXG4gIFNVSV9TWVNURU1fTU9EVUxFX05BTUUsXG4gIFNVSV9TWVNURU1fU1RBVEVfT0JKRUNULFxuICBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSxcbn0gZnJvbSAnLi9teXN0ZW5sYWIvZnJhbWV3b3JrJztcbmltcG9ydCB7IFVuc3Rha2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnLi91bnN0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBub3JtYWxpemVTdWlPYmplY3RJZCwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZFRyYW5zYWN0aW9uRGF0YUJ1aWxkZXIgfSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyL1RyYW5zYWN0aW9uRGF0YUJsb2NrJztcblxuZXhwb3J0IGNsYXNzIFVuc3Rha2luZ0J1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI8VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF93aXRoZHJhd0RlbGVnYXRpb246IFJlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVW5zdGFraW5nVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgTW92ZUNhbGwgdHJhbnNhY3Rpb24gcmVhZHkgdG8gYmUgc2lnbmVkIGFuZCBleGVjdXRlZC5cbiAgICpcbiAgICogQHJldHVybnMge0JpdEdvU3VpVHJhbnNhY3Rpb259IGFuIHVuc2lnbmVkIFN1aSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVW5zdGFrZVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2ZlclRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBzaWduKGtleTogQmFzZUtleSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHN1cGVyLnNpZ24oa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdHJhbnNhY3Rpb24gZm9yIHdpdGhkcmF3aW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZFxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RXaXRoZHJhd1N0YWtlZFN1aX0gcmVxdWVzdFxuICAgKi9cbiAgdW5zdGFrZShyZXF1ZXN0OiBSZXF1ZXN0V2l0aGRyYXdTdGFrZWRTdWkpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKHJlcXVlc3Quc3Rha2VkU3VpLCAnc3Rha2VkU3VpJyk7XG4gICAgaWYgKHJlcXVlc3QuYW1vdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghdXRpbHMuaXNWYWxpZEFtb3VudChyZXF1ZXN0LmFtb3VudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFtb3VudDogJHtyZXF1ZXN0LmFtb3VudH1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbjxVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFVuc3Rha2luZ1RyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0U3VpVHJhbnNhY3Rpb24odGhpcy5idWlsZFN1aVRyYW5zYWN0aW9uKCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcblxuICAgIGlmICh0aGlzLl9zaWduZXIpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uc2lnbih0aGlzLl9zaWduZXIpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25hdHVyZXMuZm9yRWFjaCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNpZ25hdHVyZShzaWduYXR1cmUucHVibGljS2V5LCBzaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG5cbiAgICBpZiAodHguc2lnbmF0dXJlICYmIHR4LnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzID0gW3R4LnN1aVNpZ25hdHVyZV07XG4gICAgfVxuXG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy50eXBlKFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuICAgIGNvbnN0IHBhcnNlZCA9IFVuc3Rha2luZ1RyYW5zYWN0aW9uLnBhcnNlVHJhbnNhY3Rpb24odHguc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMudW5zdGFrZSh7XG4gICAgICBzdGFrZWRTdWk6IHtcbiAgICAgICAgLy8gaXQgaXMgYSBiaXQgdW5jbGVhciB3aHkgd2UgaGF2ZSB0byBub3JtYWxpemUgdGhpcyB3YXlcbiAgICAgICAgLi4ucGFyc2VkLnN0YWtlZE9iamVjdFJlZixcbiAgICAgICAgb2JqZWN0SWQ6IG5vcm1hbGl6ZVN1aU9iamVjdElkKHBhcnNlZC5zdGFrZWRPYmplY3RSZWYub2JqZWN0SWQpLFxuICAgICAgICB2ZXJzaW9uOiBOdW1iZXIocGFyc2VkLnN0YWtlZE9iamVjdFJlZi52ZXJzaW9uKSxcbiAgICAgIH0sXG4gICAgICBhbW91bnQ6IHBhcnNlZC5hbW91bnQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IE51bWJlcihwYXJzZWQuYW1vdW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGFzc2VydCh0aGlzLl90eXBlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0eXBlIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydChcbiAgICAgIHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5zdGFrZWRTdWksXG4gICAgICBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzdGFrZWRTdWkgb2JqZWN0IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpXG4gICAgKTtcbiAgICBhc3NlcnQodGhpcy5fZ2FzRGF0YSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzRGF0YSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEodGhpcy5fZ2FzRGF0YSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VHJhbnNhY3Rpb25CbG9ja0RhdGEob2JqZWN0UmVmOiBTdWlPYmplY3RSZWYsIGFtb3VudD86IGJpZ2ludCk6IFNlcmlhbGl6ZWRUcmFuc2FjdGlvbkRhdGFCdWlsZGVyIHtcbiAgICBjb25zdCB0eGIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIGNvbnN0IHRhcmdldFNwbGl0ID1cbiAgICAgIGAke1NVSV9TWVNURU1fQUREUkVTU306OiR7U1VJX1NUQUtJTkdfUE9PTF9NT0RVTEVfTkFNRX06OiR7U1VJX1NUQUtJTkdfUE9PTF9TUExJVF9GVU5fTkFNRX1gIGFzIGAke3N0cmluZ306OiR7c3RyaW5nfTo6JHtzdHJpbmd9YDtcbiAgICBjb25zdCB0YXJnZXRXaXRoZHJhd1N0YWtlID1cbiAgICAgIGAke1NVSV9TWVNURU1fQUREUkVTU306OiR7U1VJX1NZU1RFTV9NT0RVTEVfTkFNRX06OiR7V0lUSERSQVdfU1RBS0VfRlVOX05BTUV9YCBhcyBgJHtzdHJpbmd9Ojoke3N0cmluZ306OiR7c3RyaW5nfWA7XG4gICAgaWYgKGFtb3VudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFdpdGhkcmF3U3Rha2UsXG4gICAgICAgIGFyZ3VtZW50czogW3R4Yi5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLCB0eGIucHVyZShJbnB1dHMuT2JqZWN0UmVmKG9iamVjdFJlZikpXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFNwbGl0LFxuICAgICAgICBhcmd1bWVudHM6IFt0eGIub2JqZWN0KElucHV0cy5PYmplY3RSZWYob2JqZWN0UmVmKSksIHR4Yi5wdXJlKGFtb3VudCldLFxuICAgICAgfSk7XG4gICAgICB0eGIubW92ZUNhbGwoe1xuICAgICAgICB0YXJnZXQ6IHRhcmdldFdpdGhkcmF3U3Rha2UsXG4gICAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICAgIHR4Yi5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZihTVUlfU1lTVEVNX1NUQVRFX09CSkVDVCkpLFxuICAgICAgICAgIHsga2luZDogJ05lc3RlZFJlc3VsdCcsIGluZGV4OiAwLCByZXN1bHRJbmRleDogMCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0eGIuYmxvY2tEYXRhO1xuICB9XG5cbiAgc3RhdGljIGdldFRyYW5zYWN0aW9uQmxvY2tEYXRhUmVzZXJpYWxpemVkKFxuICAgIG9iamVjdFJlZjogU3VpT2JqZWN0UmVmLFxuICAgIGFtb3VudDogYmlnaW50XG4gICk6IHsgaW5wdXRzOiB1bmtub3duW107IHRyYW5zYWN0aW9uczogdW5rbm93bltdIH0ge1xuICAgIGNvbnN0IGlucHV0cyA9IFtcbiAgICAgIHsgT2JqZWN0OiB7IEltbU9yT3duZWQ6IG9iamVjdFJlZiB9IH0sXG4gICAgICBJbnB1dHMuUHVyZShhbW91bnQsIEJDUy5VNjQpLFxuICAgICAge1xuICAgICAgICBPYmplY3Q6IHtcbiAgICAgICAgICBTaGFyZWQ6IHtcbiAgICAgICAgICAgIG9iamVjdElkOiAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNScsXG4gICAgICAgICAgICBpbml0aWFsU2hhcmVkVmVyc2lvbjogJzEnLFxuICAgICAgICAgICAgbXV0YWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAga2luZDogJ01vdmVDYWxsJyxcbiAgICAgICAgdGFyZ2V0OiAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzo6c3Rha2luZ19wb29sOjpzcGxpdCcsXG4gICAgICAgIGFyZ3VtZW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtpbmQ6ICdJbnB1dCcsXG4gICAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtpbmQ6ICdJbnB1dCcsXG4gICAgICAgICAgICBpbmRleDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0eXBlQXJndW1lbnRzOiBbXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdNb3ZlQ2FsbCcsXG4gICAgICAgIHRhcmdldDogJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM6OnN1aV9zeXN0ZW06OnJlcXVlc3Rfd2l0aGRyYXdfc3Rha2UnLFxuICAgICAgICBhcmd1bWVudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBraW5kOiAnSW5wdXQnLFxuICAgICAgICAgICAgaW5kZXg6IDIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBraW5kOiAnTmVzdGVkUmVzdWx0JyxcbiAgICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgICAgcmVzdWx0SW5kZXg6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdHlwZUFyZ3VtZW50czogW10sXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHsgaW5wdXRzLCB0cmFuc2FjdGlvbnMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBTdWlUcmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJuIHtTdWlUcmFuc2FjdGlvbjxVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj59XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gICAgY29uc3QgdHhEYXRhID0gVW5zdGFraW5nQnVpbGRlci5nZXRUcmFuc2FjdGlvbkJsb2NrRGF0YShcbiAgICAgIHRoaXMuX3dpdGhkcmF3RGVsZWdhdGlvbi5zdGFrZWRTdWksXG4gICAgICB0aGlzLl93aXRoZHJhd0RlbGVnYXRpb24uYW1vdW50ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBCaWdJbnQodGhpcy5fd2l0aGRyYXdEZWxlZ2F0aW9uLmFtb3VudClcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLl90eXBlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFsuLi50eERhdGEuaW5wdXRzXSxcbiAgICAgICAgdHJhbnNhY3Rpb25zOiBbLi4udHhEYXRhLnRyYW5zYWN0aW9uc10sXG4gICAgICB9LFxuICAgICAgZ2FzRGF0YToge1xuICAgICAgICAuLi50aGlzLl9nYXNEYXRhLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { BaseKey, Entry, PublicKey as BasePublicKey, Signature, TransactionType
3
3
  import { UnstakingProgrammableTransaction, SuiTransaction, TransactionExplanation, TxData } from './iface';
4
4
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
5
5
  import { Transaction } from './transaction';
6
- import { TransactionBlockInput } from './mystenlab/builder';
6
+ import { SuiObjectRef } from './mystenlab/types';
7
7
  export declare class UnstakingTransaction extends Transaction<UnstakingProgrammableTransaction> {
8
8
  constructor(_coinConfig: Readonly<CoinConfig>);
9
9
  get suiTransaction(): SuiTransaction<UnstakingProgrammableTransaction>;
@@ -24,17 +24,28 @@ export declare class UnstakingTransaction extends Transaction<UnstakingProgramma
24
24
  * @param {TransactionType} transactionType The transaction type to be set.
25
25
  */
26
26
  transactionType(transactionType: TransactionType): void;
27
- getEntriesForStakedSuiInput(stakedSuiInput: TransactionBlockInput, amount?: bigint): {
27
+ getEntriesForStakedSuiInput(stakedSuiInput: SuiObjectRef, amount?: bigint): {
28
28
  inputs: Entry[];
29
29
  outputs: Entry[];
30
30
  };
31
- getEntriesForTransactionPair(inputs: SuiTransaction['tx']['inputs'], transactions: unknown[]): {
32
- inputs: Entry[];
33
- outputs: Entry[];
31
+ /**
32
+ * @param inputs
33
+ * @param transactions
34
+ */
35
+ static parseTransactionPairReserialized(inputs: [unknown, unknown, unknown], transactions: [unknown, unknown]): {
36
+ stakedObjectRef: SuiObjectRef;
37
+ amount: bigint;
34
38
  };
35
- getEntriesForSingleTransaction(inputs: SuiTransaction['tx']['inputs'], tx: unknown): {
36
- inputs: Entry[];
37
- outputs: Entry[];
39
+ static parseTransactionPair(inputs: SuiTransaction['tx']['inputs'], transactions: unknown[]): {
40
+ stakedObjectRef: SuiObjectRef;
41
+ amount: bigint;
42
+ };
43
+ static parseTransactionSingle(inputs: SuiTransaction['tx']['inputs'], tx: unknown): {
44
+ stakedObjectRef: SuiObjectRef;
45
+ };
46
+ static parseTransaction(tx: UnstakingProgrammableTransaction): {
47
+ stakedObjectRef: SuiObjectRef;
48
+ amount?: bigint;
38
49
  };
39
50
  /**
40
51
  * Load the input and output data on this transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"unstakingTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakingTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAGL,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAML,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAO7B,qBAAa,oBAAqB,SAAQ,WAAW,CAAC,gCAAgC,CAAC;gBACzE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAErE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAI7E,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAehB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAmC5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD,2BAA2B,CACzB,cAAc,EAAE,qBAAqB,EACrC,MAAM,CAAC,EAAE,MAAM,GACd;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,CAAA;KAAE;IAoBxC,4BAA4B,CAC1B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACtC,YAAY,EAAE,OAAO,EAAE,GACtB;QACD,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,CAAC;KAClB;IA2CD,8BAA8B,CAC5B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACtC,EAAE,EAAE,OAAO,GACV;QACD,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,CAAC;KAClB;IAeD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAmB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACH,SAAS,IAAI,MAAM;IA0CnB;;;;;;OAMG;IACH,mCAAmC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CAerH"}
1
+ {"version":3,"file":"unstakingTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/unstakingTransaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAGL,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAqC,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMpF,qBAAa,oBAAqB,SAAQ,WAAW,CAAC,gCAAgC,CAAC;gBACzE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAErE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAI7E,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAehB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAmC5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD,2BAA2B,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,CAAA;KAAE;IAmBjH;;;OAGG;IACH,MAAM,CAAC,gCAAgC,CACrC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EACnC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAC/B;QACD,eAAe,EAAE,YAAY,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB;IAgCD,MAAM,CAAC,oBAAoB,CACzB,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACtC,YAAY,EAAE,OAAO,EAAE,GACtB;QACD,eAAe,EAAE,YAAY,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB;IAqDD,MAAM,CAAC,sBAAsB,CAC3B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACtC,EAAE,EAAE,OAAO,GACV;QACD,eAAe,EAAE,YAAY,CAAC;KAC/B;IA2BD,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,gCAAgC,GAAG;QAC7D,eAAe,EAAE,YAAY,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAWD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAW5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACH,SAAS,IAAI,MAAM;IA0CnB;;;;;;OAMG;IACH,mCAAmC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CAerH"}
@@ -1,11 +1,27 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
4
20
  };
5
21
  Object.defineProperty(exports, "__esModule", { value: true });
6
22
  exports.UnstakingTransaction = void 0;
7
23
  const sdk_core_1 = require("@bitgo/sdk-core");
8
- const utils_1 = __importDefault(require("./utils"));
24
+ const utils_1 = __importStar(require("./utils"));
9
25
  const buffer_1 = require("buffer");
10
26
  const transaction_1 = require("./transaction");
11
27
  const builder_1 = require("./mystenlab/builder");
@@ -99,11 +115,10 @@ class UnstakingTransaction extends transaction_1.Transaction {
99
115
  this._type = transactionType;
100
116
  }
101
117
  getEntriesForStakedSuiInput(stakedSuiInput, amount) {
102
- const stakedSui = 'value' in stakedSuiInput ? stakedSuiInput.value : stakedSuiInput;
103
118
  return {
104
119
  inputs: [
105
120
  {
106
- address: types_1.normalizeSuiAddress(builder_1.getIdFromCallArg(stakedSui)),
121
+ address: types_1.normalizeSuiAddress(stakedSuiInput.objectId),
107
122
  value: amount === undefined ? constants_1.AMOUNT_UNKNOWN_TEXT : amount.toString(),
108
123
  coin: this._coinConfig.name,
109
124
  },
@@ -111,13 +126,39 @@ class UnstakingTransaction extends transaction_1.Transaction {
111
126
  outputs: [
112
127
  {
113
128
  address: this.suiTransaction.sender,
114
- value: constants_1.AMOUNT_UNKNOWN_TEXT,
129
+ value: amount === undefined ? constants_1.AMOUNT_UNKNOWN_TEXT : amount.toString(),
115
130
  coin: this._coinConfig.name,
116
131
  },
117
132
  ],
118
133
  };
119
134
  }
120
- getEntriesForTransactionPair(inputs, transactions) {
135
+ /**
136
+ * @param inputs
137
+ * @param transactions
138
+ */
139
+ static parseTransactionPairReserialized(inputs, transactions) {
140
+ const [inputStakedSui, inputAmount, inputSharedObj] = inputs;
141
+ if (!builder_1.ObjectCallArg.is(inputStakedSui)) {
142
+ throw new Error('Invalid input staked sui');
143
+ }
144
+ if (!builder_1.PureCallArg.is(inputAmount)) {
145
+ throw new Error('Invalid input amount');
146
+ }
147
+ if (!builder_1.ObjectCallArg.is(inputSharedObj)) {
148
+ throw new Error('Invalid input shared object');
149
+ }
150
+ const amount = BigInt(types_1.bcs.de(bcs_1.BCS.U64, Uint8Array.from(inputAmount.Pure)));
151
+ if (!utils_1.isImmOrOwnedObj(inputStakedSui.Object)) {
152
+ throw new Error('Invalid input shared object');
153
+ }
154
+ // make sure we parsed the transaction correctly by rebuilding it and comparing the transaction blocks
155
+ compareTransactionBlocks_1.assertEqualTransactionBlocks({ inputs, transactions }, unstakingBuilder_1.UnstakingBuilder.getTransactionBlockDataReserialized(inputStakedSui.Object.ImmOrOwned, amount));
156
+ return {
157
+ stakedObjectRef: inputStakedSui.Object.ImmOrOwned,
158
+ amount,
159
+ };
160
+ }
161
+ static parseTransactionPair(inputs, transactions) {
121
162
  if (transactions.length !== 2) {
122
163
  throw new Error('Invalid transaction pair');
123
164
  }
@@ -127,60 +168,83 @@ class UnstakingTransaction extends transaction_1.Transaction {
127
168
  if (!Array.isArray(inputs) || inputs.length !== 3) {
128
169
  throw new Error('Invalid inputs');
129
170
  }
130
- function isImmOrOwnedObj(obj) {
131
- return 'ImmOrOwned' in obj;
132
- }
133
171
  const [inputStakedSui, inputAmount, inputSharedObj] = inputs;
134
172
  if (!builder_1.TransactionBlockInput.is(inputStakedSui) ||
135
173
  !builder_1.TransactionBlockInput.is(inputAmount) ||
136
- !builder_1.TransactionBlockInput.is(inputSharedObj) ||
137
- inputStakedSui.type !== 'object' ||
174
+ !builder_1.TransactionBlockInput.is(inputSharedObj)) {
175
+ // for unclear reasons there seem to be two different serialization formats that we are dealing with
176
+ // try the other one here
177
+ return this.parseTransactionPairReserialized(
178
+ // we have length checked these earlier
179
+ inputs, transactions);
180
+ }
181
+ if (inputStakedSui.type !== 'object' ||
138
182
  inputAmount.type !== 'pure' ||
139
183
  typeof inputAmount.value !== 'string' ||
140
184
  inputSharedObj.type !== 'object' ||
141
185
  !builder_1.ObjectCallArg.is(inputStakedSui.value) ||
142
- !isImmOrOwnedObj(inputStakedSui.value.Object)) {
186
+ !utils_1.isImmOrOwnedObj(inputStakedSui.value.Object)) {
143
187
  throw new Error('Invalid inputs');
144
188
  }
145
189
  const amount = BigInt(inputAmount.value);
146
190
  // make sure we parsed the transaction correctly by rebuilding it and comparing the transaction blocks
147
191
  compareTransactionBlocks_1.assertEqualTransactionBlocks({ inputs, transactions }, unstakingBuilder_1.UnstakingBuilder.getTransactionBlockData(inputStakedSui.value.Object.ImmOrOwned, amount));
148
- return this.getEntriesForStakedSuiInput(inputStakedSui, amount);
192
+ return {
193
+ stakedObjectRef: inputStakedSui.value.Object.ImmOrOwned,
194
+ amount,
195
+ };
149
196
  }
150
- getEntriesForSingleTransaction(inputs, tx) {
197
+ static parseTransactionSingle(inputs, tx) {
151
198
  if (!builder_1.MoveCallTransaction.is(tx) || !builder_1.TransactionBlockInput.is(tx.arguments[1])) {
152
199
  throw new Error('Invalid transaction');
153
200
  }
154
201
  const stakedSuiInputIdx = tx.arguments[1].index;
155
- const stakedSuiInput = inputs[stakedSuiInputIdx];
202
+ let stakedSuiInput = inputs[stakedSuiInputIdx];
156
203
  if (!builder_1.TransactionBlockInput.is(stakedSuiInput)) {
157
204
  // for unclear reasons, in tests the stakedSuiInput is not a TransactionBlockInput sometimes
158
205
  if (!builder_1.ObjectCallArg.is(stakedSuiInput)) {
159
206
  throw new Error('Invalid transaction');
160
207
  }
161
208
  }
162
- return this.getEntriesForStakedSuiInput(stakedSuiInput);
163
- }
164
- /**
165
- * Load the input and output data on this transaction.
166
- */
167
- loadInputsAndOutputs() {
168
- if (!this.suiTransaction) {
169
- return;
209
+ if ('Object' in stakedSuiInput && utils_1.isImmOrOwnedObj(stakedSuiInput.Object)) {
210
+ stakedSuiInput = stakedSuiInput.Object.ImmOrOwned;
211
+ }
212
+ else if ('value' in stakedSuiInput && utils_1.isImmOrOwnedObj(stakedSuiInput.value.Object)) {
213
+ stakedSuiInput = stakedSuiInput.value.Object.ImmOrOwned;
214
+ }
215
+ else {
216
+ throw new Error('Invalid transaction');
170
217
  }
171
- let parsed;
172
- const { inputs, transactions } = this.suiTransaction.tx;
218
+ if (!types_1.SuiObjectRef.is(stakedSuiInput)) {
219
+ throw new Error('Invalid transaction');
220
+ }
221
+ return {
222
+ stakedObjectRef: stakedSuiInput,
223
+ };
224
+ }
225
+ static parseTransaction(tx) {
226
+ const { inputs, transactions } = tx;
173
227
  if (transactions.length === 1) {
174
- parsed = this.getEntriesForSingleTransaction(inputs, transactions[0]);
228
+ return UnstakingTransaction.parseTransactionSingle(inputs, transactions[0]);
175
229
  }
176
230
  else if (transactions.length === 2) {
177
- parsed = this.getEntriesForTransactionPair(inputs, transactions);
231
+ return UnstakingTransaction.parseTransactionPair(inputs, transactions);
178
232
  }
179
233
  else {
180
234
  throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
181
235
  }
182
- this._inputs = parsed.inputs;
183
- this._outputs = parsed.outputs;
236
+ }
237
+ /**
238
+ * Load the input and output data on this transaction.
239
+ */
240
+ loadInputsAndOutputs() {
241
+ if (!this.suiTransaction) {
242
+ return;
243
+ }
244
+ const parsed = UnstakingTransaction.parseTransaction(this.suiTransaction.tx);
245
+ const { inputs, outputs } = this.getEntriesForStakedSuiInput(parsed.stakedObjectRef, parsed.amount);
246
+ this._inputs = inputs;
247
+ this._outputs = outputs;
184
248
  }
185
249
  /**
186
250
  * Sets this transaction payload
@@ -264,4 +328,4 @@ class UnstakingTransaction extends transaction_1.Transaction {
264
328
  }
265
329
  }
266
330
  exports.UnstakingTransaction = UnstakingTransaction;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFraW5nVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc3Rha2luZ1RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVN5QjtBQUd6QixvREFBNEI7QUFDNUIsbUNBQWdDO0FBQ2hDLCtDQUE0QztBQUM1QyxpREFPNkI7QUFDN0IsNkNBQStFO0FBQy9FLHFDQUFrQztBQUNsQywyQ0FBc0U7QUFDdEUseURBQXNEO0FBQ3RELHlFQUEwRTtBQUUxRSxNQUFhLG9CQUFxQixTQUFRLHlCQUE2QztJQUNyRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBb0Q7UUFDcEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEQ7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU07WUFDakIsSUFBSSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDbkIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sWUFBWSxHQUFHO1lBQ25CLElBQUk7WUFDSixTQUFTO1lBQ1QsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsS0FBSztZQUNMLE1BQU07WUFDTixRQUFRO1lBQ1IsVUFBVTtZQUNWLGtCQUFrQjtTQUNuQixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQztRQUUzQyxNQUFNLGlCQUFpQixHQUEyQjtZQUNoRCxZQUFZO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTztZQUNQLFlBQVksRUFBRSxHQUFHO1lBQ2pCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxHQUFHO1lBQ2pCLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFFRixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSywwQkFBZSxDQUFDLFlBQVk7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdFO2dCQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsZUFBZ0M7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUVELDJCQUEyQixDQUN6QixjQUFxQyxFQUNyQyxNQUFlO1FBRWYsTUFBTSxTQUFTLEdBQUcsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ3BGLE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsT0FBTyxFQUFFLDJCQUFtQixDQUFDLDBCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN6RCxLQUFLLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsK0JBQW1CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQ3JFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7aUJBQzVCO2FBQ0Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtvQkFDbkMsS0FBSyxFQUFFLCtCQUFtQjtvQkFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsNEJBQTRCLENBQzFCLE1BQXNDLEVBQ3RDLFlBQXVCO1FBS3ZCLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLDZCQUFtQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUFtQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkM7UUFFRCxTQUFTLGVBQWUsQ0FBQyxHQUE0QjtZQUNuRCxPQUFPLFlBQVksSUFBSSxHQUFHLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM3RCxJQUNFLENBQUMsK0JBQXFCLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUN6QyxDQUFDLCtCQUFxQixDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDdEMsQ0FBQywrQkFBcUIsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3pDLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUNoQyxXQUFXLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDM0IsT0FBTyxXQUFXLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFDckMsY0FBYyxDQUFDLElBQUksS0FBSyxRQUFRO1lBQ2hDLENBQUMsdUJBQWEsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUN2QyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUM3QztZQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsc0dBQXNHO1FBQ3RHLHVEQUE0QixDQUMxQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFDeEIsbUNBQWdCLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUN6RixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCw4QkFBOEIsQ0FDNUIsTUFBc0MsRUFDdEMsRUFBVztRQUtYLElBQUksQ0FBQyw2QkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQywrQkFBcUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLCtCQUFxQixDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM3Qyw0RkFBNEY7WUFDNUYsSUFBSSxDQUFDLHVCQUFhLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDeEM7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLGNBQXVDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUM7UUFDWCxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3hELElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkU7YUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDTCxNQUFNLElBQUksa0NBQXVCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0IsQ0FBQyxjQUFzQjtRQUN2QyxJQUFJO1lBQ0YsZUFBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcseUJBQVcsQ0FBQyx5QkFBeUIsQ0FDMUQsY0FBYyxDQUNxQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsTUFBTSxNQUFNLEdBQXdDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdEcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNsQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLDhCQUFrQixFQUFFO29CQUM1QyxNQUFNLE9BQU8sR0FBRywyQkFBbUIsQ0FDakMsaUJBQU8sQ0FBQyxFQUFFLENBQUMsU0FBRyxDQUFDLE9BQU8sRUFBRSxlQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQzlFLENBQUM7b0JBQ0YsT0FBTyxnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMxQztxQkFBTTtvQkFDTCxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEVBQUUsQ0FBQyxTQUFHLENBQUMsR0FBRyxFQUFFLGVBQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDekYsT0FBTyxnQkFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQzthQUNGO1lBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0JBQzFHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQzthQUNwQjtZQUVELG1EQUFtRDtZQUNuRCxPQUFPLGdCQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHO1lBQ3JCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFlBQVk7U0FDZixDQUFDO1FBRXRDLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNO1lBQ25DLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTztZQUNyQyxJQUFJLEVBQUU7Z0JBQ0osdUJBQXVCLEVBQUUsY0FBYzthQUN4QztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsbUNBQW1DLENBQUMsSUFBWSxFQUFFLGlCQUF5QztRQUN6RixNQUFNLE9BQU8sR0FBMkI7WUFDdEM7Z0JBQ0UsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtnQkFDbkMsTUFBTSxFQUFFLCtCQUFtQjthQUM1QjtTQUNGLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRywrQkFBbUIsQ0FBQztRQUV6QyxPQUFPO1lBQ0wsR0FBRyxpQkFBaUI7WUFDcEIsWUFBWTtZQUNaLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNVNELG9EQTRTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEVudHJ5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIFN1aVRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGJ1aWxkZXIsXG4gIGdldElkRnJvbUNhbGxBcmcsXG4gIElucHV0cyxcbiAgTW92ZUNhbGxUcmFuc2FjdGlvbixcbiAgT2JqZWN0Q2FsbEFyZyxcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxufSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyJztcbmltcG9ydCB7IENhbGxBcmcsIG5vcm1hbGl6ZVN1aUFkZHJlc3MsIFN1aU9iamVjdFJlZiB9IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB7IEJDUyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7IEFNT1VOVF9VTktOT1dOX1RFWFQsIFNVSV9BRERSRVNTX0xFTkdUSCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFVuc3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3Vuc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgYXNzZXJ0RXF1YWxUcmFuc2FjdGlvbkJsb2NrcyB9IGZyb20gJy4vY29tcGFyZVRyYW5zYWN0aW9uQmxvY2tzJztcblxuZXhwb3J0IGNsYXNzIFVuc3Rha2luZ1RyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb248VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0U3VpVHJhbnNhY3Rpb24odHg6IFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH07XG4gICAgdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIGdldCBzdWlTaWduYXR1cmUoKTogU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBraW5kOiB7IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCB9LFxuICAgICAgZ2FzRGF0YTogdHguZ2FzRGF0YSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gW1xuICAgICAgJ2lkJyxcbiAgICAgICdvdXRwdXRzJyxcbiAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgJ2NoYW5nZUFtb3VudCcsXG4gICAgICAnZmVlJyxcbiAgICAgICd0eXBlJyxcbiAgICAgICdtb2R1bGUnLFxuICAgICAgJ2Z1bmN0aW9uJyxcbiAgICAgICd2YWxpZGF0b3JBZGRyZXNzJyxcbiAgICBdO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogdGhpcy5zdWlUcmFuc2FjdGlvbi5nYXNEYXRhLmJ1ZGdldC50b1N0cmluZygpIH0sXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQ2xhaW06XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5XaXRoZHJhd1N0YWtlZFN1aVRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBnZXRFbnRyaWVzRm9yU3Rha2VkU3VpSW5wdXQoXG4gICAgc3Rha2VkU3VpSW5wdXQ6IFRyYW5zYWN0aW9uQmxvY2tJbnB1dCxcbiAgICBhbW91bnQ/OiBiaWdpbnRcbiAgKTogeyBpbnB1dHM6IEVudHJ5W107IG91dHB1dHM6IEVudHJ5W10gfSB7XG4gICAgY29uc3Qgc3Rha2VkU3VpID0gJ3ZhbHVlJyBpbiBzdGFrZWRTdWlJbnB1dCA/IHN0YWtlZFN1aUlucHV0LnZhbHVlIDogc3Rha2VkU3VpSW5wdXQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogbm9ybWFsaXplU3VpQWRkcmVzcyhnZXRJZEZyb21DYWxsQXJnKHN0YWtlZFN1aSkpLFxuICAgICAgICAgIHZhbHVlOiBhbW91bnQgPT09IHVuZGVmaW5lZCA/IEFNT1VOVF9VTktOT1dOX1RFWFQgOiBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdGhpcy5zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICAgICAgdmFsdWU6IEFNT1VOVF9VTktOT1dOX1RFWFQsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RW50cmllc0ZvclRyYW5zYWN0aW9uUGFpcihcbiAgICBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXSxcbiAgICB0cmFuc2FjdGlvbnM6IHVua25vd25bXVxuICApOiB7XG4gICAgaW5wdXRzOiBFbnRyeVtdO1xuICAgIG91dHB1dHM6IEVudHJ5W107XG4gIH0ge1xuICAgIGlmICh0cmFuc2FjdGlvbnMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gcGFpcicpO1xuICAgIH1cblxuICAgIGlmICghTW92ZUNhbGxUcmFuc2FjdGlvbi5pcyh0cmFuc2FjdGlvbnNbMF0pIHx8ICFNb3ZlQ2FsbFRyYW5zYWN0aW9uLmlzKHRyYW5zYWN0aW9uc1sxXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiBwYWlyJyk7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGlucHV0cykgfHwgaW5wdXRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSW1tT3JPd25lZE9iaihvYmo6IE9iamVjdENhbGxBcmdbJ09iamVjdCddKTogb2JqIGlzIHsgSW1tT3JPd25lZDogU3VpT2JqZWN0UmVmIH0ge1xuICAgICAgcmV0dXJuICdJbW1Pck93bmVkJyBpbiBvYmo7XG4gICAgfVxuXG4gICAgY29uc3QgW2lucHV0U3Rha2VkU3VpLCBpbnB1dEFtb3VudCwgaW5wdXRTaGFyZWRPYmpdID0gaW5wdXRzO1xuICAgIGlmIChcbiAgICAgICFUcmFuc2FjdGlvbkJsb2NrSW5wdXQuaXMoaW5wdXRTdGFrZWRTdWkpIHx8XG4gICAgICAhVHJhbnNhY3Rpb25CbG9ja0lucHV0LmlzKGlucHV0QW1vdW50KSB8fFxuICAgICAgIVRyYW5zYWN0aW9uQmxvY2tJbnB1dC5pcyhpbnB1dFNoYXJlZE9iaikgfHxcbiAgICAgIGlucHV0U3Rha2VkU3VpLnR5cGUgIT09ICdvYmplY3QnIHx8XG4gICAgICBpbnB1dEFtb3VudC50eXBlICE9PSAncHVyZScgfHxcbiAgICAgIHR5cGVvZiBpbnB1dEFtb3VudC52YWx1ZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgIGlucHV0U2hhcmVkT2JqLnR5cGUgIT09ICdvYmplY3QnIHx8XG4gICAgICAhT2JqZWN0Q2FsbEFyZy5pcyhpbnB1dFN0YWtlZFN1aS52YWx1ZSkgfHxcbiAgICAgICFpc0ltbU9yT3duZWRPYmooaW5wdXRTdGFrZWRTdWkudmFsdWUuT2JqZWN0KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0cycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudCA9IEJpZ0ludChpbnB1dEFtb3VudC52YWx1ZSk7XG5cbiAgICAvLyBtYWtlIHN1cmUgd2UgcGFyc2VkIHRoZSB0cmFuc2FjdGlvbiBjb3JyZWN0bHkgYnkgcmVidWlsZGluZyBpdCBhbmQgY29tcGFyaW5nIHRoZSB0cmFuc2FjdGlvbiBibG9ja3NcbiAgICBhc3NlcnRFcXVhbFRyYW5zYWN0aW9uQmxvY2tzKFxuICAgICAgeyBpbnB1dHMsIHRyYW5zYWN0aW9ucyB9LFxuICAgICAgVW5zdGFraW5nQnVpbGRlci5nZXRUcmFuc2FjdGlvbkJsb2NrRGF0YShpbnB1dFN0YWtlZFN1aS52YWx1ZS5PYmplY3QuSW1tT3JPd25lZCwgYW1vdW50KVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRFbnRyaWVzRm9yU3Rha2VkU3VpSW5wdXQoaW5wdXRTdGFrZWRTdWksIGFtb3VudCk7XG4gIH1cblxuICBnZXRFbnRyaWVzRm9yU2luZ2xlVHJhbnNhY3Rpb24oXG4gICAgaW5wdXRzOiBTdWlUcmFuc2FjdGlvblsndHgnXVsnaW5wdXRzJ10sXG4gICAgdHg6IHVua25vd25cbiAgKToge1xuICAgIGlucHV0czogRW50cnlbXTtcbiAgICBvdXRwdXRzOiBFbnRyeVtdO1xuICB9IHtcbiAgICBpZiAoIU1vdmVDYWxsVHJhbnNhY3Rpb24uaXModHgpIHx8ICFUcmFuc2FjdGlvbkJsb2NrSW5wdXQuaXModHguYXJndW1lbnRzWzFdKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IHN0YWtlZFN1aUlucHV0SWR4ID0gdHguYXJndW1lbnRzWzFdLmluZGV4O1xuICAgIGNvbnN0IHN0YWtlZFN1aUlucHV0ID0gaW5wdXRzW3N0YWtlZFN1aUlucHV0SWR4XTtcbiAgICBpZiAoIVRyYW5zYWN0aW9uQmxvY2tJbnB1dC5pcyhzdGFrZWRTdWlJbnB1dCkpIHtcbiAgICAgIC8vIGZvciB1bmNsZWFyIHJlYXNvbnMsIGluIHRlc3RzIHRoZSBzdGFrZWRTdWlJbnB1dCBpcyBub3QgYSBUcmFuc2FjdGlvbkJsb2NrSW5wdXQgc29tZXRpbWVzXG4gICAgICBpZiAoIU9iamVjdENhbGxBcmcuaXMoc3Rha2VkU3VpSW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbnRyaWVzRm9yU3Rha2VkU3VpSW5wdXQoc3Rha2VkU3VpSW5wdXQgYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwYXJzZWQ7XG4gICAgY29uc3QgeyBpbnB1dHMsIHRyYW5zYWN0aW9ucyB9ID0gdGhpcy5zdWlUcmFuc2FjdGlvbi50eDtcbiAgICBpZiAodHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcGFyc2VkID0gdGhpcy5nZXRFbnRyaWVzRm9yU2luZ2xlVHJhbnNhY3Rpb24oaW5wdXRzLCB0cmFuc2FjdGlvbnNbMF0pO1xuICAgIH0gZWxzZSBpZiAodHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMikge1xuICAgICAgcGFyc2VkID0gdGhpcy5nZXRFbnRyaWVzRm9yVHJhbnNhY3Rpb25QYWlyKGlucHV0cywgdHJhbnNhY3Rpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRzID0gcGFyc2VkLmlucHV0cztcbiAgICB0aGlzLl9vdXRwdXRzID0gcGFyc2VkLm91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIHRyYW5zYWN0aW9uIHBheWxvYWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uXG4gICAqL1xuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB1dGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSBUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKFxuICAgICAgICByYXdUcmFuc2FjdGlvblxuICAgICAgKSBhcyBTdWlUcmFuc2FjdGlvbjxVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG4gICAgICB0aGlzLl90eXBlID0gdXRpbHMuZ2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR5cGUpO1xuICAgICAgdGhpcy5faWQgPSB0aGlzLl9zdWlUcmFuc2FjdGlvbi5pZDtcbiAgICAgIHRoaXMubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNlcmlhbGl6ZSgpIHRvIGdldCB0aGUgY29ycmVjdCB0eERhdGEgd2l0aCB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1R4RGF0YX1cbiAgICovXG4gIGdldFR4RGF0YSgpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignZW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgaW5wdXRzOiBDYWxsQXJnW10gfCBUcmFuc2FjdGlvbkJsb2NrSW5wdXRbXSA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnR4LmlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCdPYmplY3QnKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ1B1cmUnKSkge1xuICAgICAgICBpZiAoaW5wdXQuUHVyZS5sZW5ndGggPT09IFNVSV9BRERSRVNTX0xFTkdUSCkge1xuICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBub3JtYWxpemVTdWlBZGRyZXNzKFxuICAgICAgICAgICAgYnVpbGRlci5kZShCQ1MuQUREUkVTUywgQnVmZmVyLmZyb20oaW5wdXQuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0JylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhZGRyZXNzLCBCQ1MuQUREUkVTUyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYW1vdW50ID0gYnVpbGRlci5kZShCQ1MuVTY0LCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKTtcbiAgICAgICAgICByZXR1cm4gSW5wdXRzLlB1cmUoYW1vdW50LCBCQ1MuVTY0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlucHV0LmtpbmQgPT09ICdJbnB1dCcgJiYgKGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdPYmplY3QnKSB8fCBpbnB1dC52YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSkge1xuICAgICAgICByZXR1cm4gaW5wdXQudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHdoYXQncyBsZWZ0IGlzIHRoZSBwdXJlIG51bWJlciBvciBhZGRyZXNzIHN0cmluZ1xuICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGlucHV0LnZhbHVlLCBpbnB1dC50eXBlID09PSAncHVyZScgPyBCQ1MuVTY0IDogQkNTLkFERFJFU1MpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3JhbW1hYmxlVHggPSB7XG4gICAgICBpbnB1dHM6IGlucHV0cyxcbiAgICAgIHRyYW5zYWN0aW9uczogdGhpcy5fc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zLFxuICAgIH0gYXMgVW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmdhc0RhdGEsXG4gICAgICBraW5kOiB7XG4gICAgICAgIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiBwcm9ncmFtbWFibGVUeCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxldGUgZXhwbGFuYXRpb24gZm9yIGEgdW5zdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHhEYXRhfSBqc29uIFRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIGpzb24gZm9ybWF0XG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFuYXRpb25SZXN1bHQgVGhlIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIHRvIGJlIGNvbXBsZXRlZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn1cbiAgICovXG4gIGV4cGxhaW5XaXRoZHJhd1N0YWtlZFN1aVRyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnN1aVRyYW5zYWN0aW9uLnNlbmRlcixcbiAgICAgICAgYW1vdW50OiBBTU9VTlRfVU5LTk9XTl9URVhULFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IEFNT1VOVF9VTktOT1dOX1RFWFQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXhwbGFuYXRpb25SZXN1bHQsXG4gICAgICBvdXRwdXRBbW91bnQsXG4gICAgICBvdXRwdXRzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdGFraW5nVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc3Rha2luZ1RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FTeUI7QUFHekIsaURBQWlEO0FBQ2pELG1DQUFnQztBQUNoQywrQ0FBNEM7QUFDNUMsaURBTzZCO0FBQzdCLDZDQUFvRjtBQUNwRixxQ0FBa0M7QUFDbEMsMkNBQXNFO0FBQ3RFLHlEQUFzRDtBQUN0RCx5RUFBMEU7QUFFMUUsTUFBYSxvQkFBcUIsU0FBUSx5QkFBNkM7SUFDckYsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQW9EO1FBQ3BFLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixN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LEdBQUc7WUFDckIsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsWUFBWTtTQUNmLENBQUM7UUFFdEMsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU07WUFDbkMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ3JDLElBQUksRUFBRTtnQkFDSix1QkFBdUIsRUFBRSxjQUFjO2FBQ3hDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxtQ0FBbUMsQ0FBQyxJQUFZLEVBQUUsaUJBQXlDO1FBQ3pGLE1BQU0sT0FBTyxHQUEyQjtZQUN0QztnQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNO2dCQUNuQyxNQUFNLEVBQUUsK0JBQW1CO2FBQzVCO1NBQ0YsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLCtCQUFtQixDQUFDO1FBRXpDLE9BQU87WUFDTCxHQUFHLGlCQUFpQjtZQUNwQixZQUFZO1lBQ1osT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3V0Qsb0RBNldDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgRW50cnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB1dGlscywgeyBpc0ltbU9yT3duZWRPYmogfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgYnVpbGRlcixcbiAgSW5wdXRzLFxuICBNb3ZlQ2FsbFRyYW5zYWN0aW9uLFxuICBPYmplY3RDYWxsQXJnLFxuICBQdXJlQ2FsbEFyZyxcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxufSBmcm9tICcuL215c3RlbmxhYi9idWlsZGVyJztcbmltcG9ydCB7IGJjcywgQ2FsbEFyZywgbm9ybWFsaXplU3VpQWRkcmVzcywgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0IHsgQU1PVU5UX1VOS05PV05fVEVYVCwgU1VJX0FERFJFU1NfTEVOR1RIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVW5zdGFraW5nQnVpbGRlciB9IGZyb20gJy4vdW5zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBhc3NlcnRFcXVhbFRyYW5zYWN0aW9uQmxvY2tzIH0gZnJvbSAnLi9jb21wYXJlVHJhbnNhY3Rpb25CbG9ja3MnO1xuXG5leHBvcnQgY2xhc3MgVW5zdGFraW5nVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbjxVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgc3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248VW5zdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+KTogdm9pZCB7XG4gICAgdGhpcy5fc3VpVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZS50b1N0cmluZygnaGV4JykpO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHsgcHVibGljS2V5LCBzaWduYXR1cmUgfTtcbiAgICB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgZ2V0IHN1aVNpZ25hdHVyZSgpOiBTaWduYXR1cmUge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBzZW5kZXI6IHR4LnNlbmRlcixcbiAgICAgIGtpbmQ6IHsgUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb246IHR4LnR4IH0sXG4gICAgICBnYXNEYXRhOiB0eC5nYXNEYXRhLFxuICAgICAgZXhwaXJhdGlvbjogeyBOb25lOiBudWxsIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbXG4gICAgICAnaWQnLFxuICAgICAgJ291dHB1dHMnLFxuICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICdmZWUnLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ21vZHVsZScsXG4gICAgICAnZnVuY3Rpb24nLFxuICAgICAgJ3ZhbGlkYXRvckFkZHJlc3MnLFxuICAgIF07XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuXG4gICAgY29uc3QgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiB0aGlzLnN1aVRyYW5zYWN0aW9uLmdhc0RhdGEuYnVkZ2V0LnRvU3RyaW5nKCkgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdDbGFpbTpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbldpdGhkcmF3U3Rha2VkU3VpVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIGdldEVudHJpZXNGb3JTdGFrZWRTdWlJbnB1dChzdGFrZWRTdWlJbnB1dDogU3VpT2JqZWN0UmVmLCBhbW91bnQ/OiBiaWdpbnQpOiB7IGlucHV0czogRW50cnlbXTsgb3V0cHV0czogRW50cnlbXSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiBub3JtYWxpemVTdWlBZGRyZXNzKHN0YWtlZFN1aUlucHV0Lm9iamVjdElkKSxcbiAgICAgICAgICB2YWx1ZTogYW1vdW50ID09PSB1bmRlZmluZWQgPyBBTU9VTlRfVU5LTk9XTl9URVhUIDogYW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IHRoaXMuc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgICAgIHZhbHVlOiBhbW91bnQgPT09IHVuZGVmaW5lZCA/IEFNT1VOVF9VTktOT1dOX1RFWFQgOiBhbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGlucHV0c1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zXG4gICAqL1xuICBzdGF0aWMgcGFyc2VUcmFuc2FjdGlvblBhaXJSZXNlcmlhbGl6ZWQoXG4gICAgaW5wdXRzOiBbdW5rbm93biwgdW5rbm93biwgdW5rbm93bl0sXG4gICAgdHJhbnNhY3Rpb25zOiBbdW5rbm93biwgdW5rbm93bl1cbiAgKToge1xuICAgIHN0YWtlZE9iamVjdFJlZjogU3VpT2JqZWN0UmVmO1xuICAgIGFtb3VudDogYmlnaW50O1xuICB9IHtcbiAgICBjb25zdCBbaW5wdXRTdGFrZWRTdWksIGlucHV0QW1vdW50LCBpbnB1dFNoYXJlZE9ial0gPSBpbnB1dHM7XG5cbiAgICBpZiAoIU9iamVjdENhbGxBcmcuaXMoaW5wdXRTdGFrZWRTdWkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXQgc3Rha2VkIHN1aScpO1xuICAgIH1cblxuICAgIGlmICghUHVyZUNhbGxBcmcuaXMoaW5wdXRBbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXQgYW1vdW50Jyk7XG4gICAgfVxuXG4gICAgaWYgKCFPYmplY3RDYWxsQXJnLmlzKGlucHV0U2hhcmVkT2JqKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0IHNoYXJlZCBvYmplY3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbW91bnQgPSBCaWdJbnQoYmNzLmRlKEJDUy5VNjQsIFVpbnQ4QXJyYXkuZnJvbShpbnB1dEFtb3VudC5QdXJlKSkpO1xuICAgIGlmICghaXNJbW1Pck93bmVkT2JqKGlucHV0U3Rha2VkU3VpLk9iamVjdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnB1dCBzaGFyZWQgb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHdlIHBhcnNlZCB0aGUgdHJhbnNhY3Rpb24gY29ycmVjdGx5IGJ5IHJlYnVpbGRpbmcgaXQgYW5kIGNvbXBhcmluZyB0aGUgdHJhbnNhY3Rpb24gYmxvY2tzXG4gICAgYXNzZXJ0RXF1YWxUcmFuc2FjdGlvbkJsb2NrcyhcbiAgICAgIHsgaW5wdXRzLCB0cmFuc2FjdGlvbnMgfSxcbiAgICAgIFVuc3Rha2luZ0J1aWxkZXIuZ2V0VHJhbnNhY3Rpb25CbG9ja0RhdGFSZXNlcmlhbGl6ZWQoaW5wdXRTdGFrZWRTdWkuT2JqZWN0LkltbU9yT3duZWQsIGFtb3VudClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YWtlZE9iamVjdFJlZjogaW5wdXRTdGFrZWRTdWkuT2JqZWN0LkltbU9yT3duZWQsXG4gICAgICBhbW91bnQsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVRyYW5zYWN0aW9uUGFpcihcbiAgICBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXSxcbiAgICB0cmFuc2FjdGlvbnM6IHVua25vd25bXVxuICApOiB7XG4gICAgc3Rha2VkT2JqZWN0UmVmOiBTdWlPYmplY3RSZWY7XG4gICAgYW1vdW50OiBiaWdpbnQ7XG4gIH0ge1xuICAgIGlmICh0cmFuc2FjdGlvbnMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gcGFpcicpO1xuICAgIH1cblxuICAgIGlmICghTW92ZUNhbGxUcmFuc2FjdGlvbi5pcyh0cmFuc2FjdGlvbnNbMF0pIHx8ICFNb3ZlQ2FsbFRyYW5zYWN0aW9uLmlzKHRyYW5zYWN0aW9uc1sxXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiBwYWlyJyk7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGlucHV0cykgfHwgaW5wdXRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0cycpO1xuICAgIH1cblxuICAgIGNvbnN0IFtpbnB1dFN0YWtlZFN1aSwgaW5wdXRBbW91bnQsIGlucHV0U2hhcmVkT2JqXSA9IGlucHV0cztcbiAgICBpZiAoXG4gICAgICAhVHJhbnNhY3Rpb25CbG9ja0lucHV0LmlzKGlucHV0U3Rha2VkU3VpKSB8fFxuICAgICAgIVRyYW5zYWN0aW9uQmxvY2tJbnB1dC5pcyhpbnB1dEFtb3VudCkgfHxcbiAgICAgICFUcmFuc2FjdGlvbkJsb2NrSW5wdXQuaXMoaW5wdXRTaGFyZWRPYmopXG4gICAgKSB7XG4gICAgICAvLyBmb3IgdW5jbGVhciByZWFzb25zIHRoZXJlIHNlZW0gdG8gYmUgdHdvIGRpZmZlcmVudCBzZXJpYWxpemF0aW9uIGZvcm1hdHMgdGhhdCB3ZSBhcmUgZGVhbGluZyB3aXRoXG4gICAgICAvLyB0cnkgdGhlIG90aGVyIG9uZSBoZXJlXG4gICAgICByZXR1cm4gdGhpcy5wYXJzZVRyYW5zYWN0aW9uUGFpclJlc2VyaWFsaXplZChcbiAgICAgICAgLy8gd2UgaGF2ZSBsZW5ndGggY2hlY2tlZCB0aGVzZSBlYXJsaWVyXG4gICAgICAgIGlucHV0cyBhcyBbdW5rbm93biwgdW5rbm93biwgdW5rbm93bl0sXG4gICAgICAgIHRyYW5zYWN0aW9ucyBhcyBbdW5rbm93biwgdW5rbm93bl1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaW5wdXRTdGFrZWRTdWkudHlwZSAhPT0gJ29iamVjdCcgfHxcbiAgICAgIGlucHV0QW1vdW50LnR5cGUgIT09ICdwdXJlJyB8fFxuICAgICAgdHlwZW9mIGlucHV0QW1vdW50LnZhbHVlICE9PSAnc3RyaW5nJyB8fFxuICAgICAgaW5wdXRTaGFyZWRPYmoudHlwZSAhPT0gJ29iamVjdCcgfHxcbiAgICAgICFPYmplY3RDYWxsQXJnLmlzKGlucHV0U3Rha2VkU3VpLnZhbHVlKSB8fFxuICAgICAgIWlzSW1tT3JPd25lZE9iaihpbnB1dFN0YWtlZFN1aS52YWx1ZS5PYmplY3QpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXRzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50ID0gQmlnSW50KGlucHV0QW1vdW50LnZhbHVlKTtcblxuICAgIC8vIG1ha2Ugc3VyZSB3ZSBwYXJzZWQgdGhlIHRyYW5zYWN0aW9uIGNvcnJlY3RseSBieSByZWJ1aWxkaW5nIGl0IGFuZCBjb21wYXJpbmcgdGhlIHRyYW5zYWN0aW9uIGJsb2Nrc1xuICAgIGFzc2VydEVxdWFsVHJhbnNhY3Rpb25CbG9ja3MoXG4gICAgICB7IGlucHV0cywgdHJhbnNhY3Rpb25zIH0sXG4gICAgICBVbnN0YWtpbmdCdWlsZGVyLmdldFRyYW5zYWN0aW9uQmxvY2tEYXRhKGlucHV0U3Rha2VkU3VpLnZhbHVlLk9iamVjdC5JbW1Pck93bmVkLCBhbW91bnQpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdGFrZWRPYmplY3RSZWY6IGlucHV0U3Rha2VkU3VpLnZhbHVlLk9iamVjdC5JbW1Pck93bmVkLFxuICAgICAgYW1vdW50LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcGFyc2VUcmFuc2FjdGlvblNpbmdsZShcbiAgICBpbnB1dHM6IFN1aVRyYW5zYWN0aW9uWyd0eCddWydpbnB1dHMnXSxcbiAgICB0eDogdW5rbm93blxuICApOiB7XG4gICAgc3Rha2VkT2JqZWN0UmVmOiBTdWlPYmplY3RSZWY7XG4gIH0ge1xuICAgIGlmICghTW92ZUNhbGxUcmFuc2FjdGlvbi5pcyh0eCkgfHwgIVRyYW5zYWN0aW9uQmxvY2tJbnB1dC5pcyh0eC5hcmd1bWVudHNbMV0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3Qgc3Rha2VkU3VpSW5wdXRJZHggPSB0eC5hcmd1bWVudHNbMV0uaW5kZXg7XG4gICAgbGV0IHN0YWtlZFN1aUlucHV0OiB1bmtub3duIHwgU3VpT2JqZWN0UmVmID0gaW5wdXRzW3N0YWtlZFN1aUlucHV0SWR4XTtcbiAgICBpZiAoIVRyYW5zYWN0aW9uQmxvY2tJbnB1dC5pcyhzdGFrZWRTdWlJbnB1dCkpIHtcbiAgICAgIC8vIGZvciB1bmNsZWFyIHJlYXNvbnMsIGluIHRlc3RzIHRoZSBzdGFrZWRTdWlJbnB1dCBpcyBub3QgYSBUcmFuc2FjdGlvbkJsb2NrSW5wdXQgc29tZXRpbWVzXG4gICAgICBpZiAoIU9iamVjdENhbGxBcmcuaXMoc3Rha2VkU3VpSW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoJ09iamVjdCcgaW4gc3Rha2VkU3VpSW5wdXQgJiYgaXNJbW1Pck93bmVkT2JqKHN0YWtlZFN1aUlucHV0Lk9iamVjdCkpIHtcbiAgICAgIHN0YWtlZFN1aUlucHV0ID0gc3Rha2VkU3VpSW5wdXQuT2JqZWN0LkltbU9yT3duZWQgYXMgU3VpT2JqZWN0UmVmO1xuICAgIH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBzdGFrZWRTdWlJbnB1dCAmJiBpc0ltbU9yT3duZWRPYmooc3Rha2VkU3VpSW5wdXQudmFsdWUuT2JqZWN0KSkge1xuICAgICAgc3Rha2VkU3VpSW5wdXQgPSBzdGFrZWRTdWlJbnB1dC52YWx1ZS5PYmplY3QuSW1tT3JPd25lZCBhcyBTdWlPYmplY3RSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIVN1aU9iamVjdFJlZi5pcyhzdGFrZWRTdWlJbnB1dCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3Rha2VkT2JqZWN0UmVmOiBzdGFrZWRTdWlJbnB1dCxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHBhcnNlVHJhbnNhY3Rpb24odHg6IFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uKToge1xuICAgIHN0YWtlZE9iamVjdFJlZjogU3VpT2JqZWN0UmVmO1xuICAgIGFtb3VudD86IGJpZ2ludDtcbiAgfSB7XG4gICAgY29uc3QgeyBpbnB1dHMsIHRyYW5zYWN0aW9ucyB9ID0gdHg7XG4gICAgaWYgKHRyYW5zYWN0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBVbnN0YWtpbmdUcmFuc2FjdGlvbi5wYXJzZVRyYW5zYWN0aW9uU2luZ2xlKGlucHV0cywgdHJhbnNhY3Rpb25zWzBdKTtcbiAgICB9IGVsc2UgaWYgKHRyYW5zYWN0aW9ucy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHJldHVybiBVbnN0YWtpbmdUcmFuc2FjdGlvbi5wYXJzZVRyYW5zYWN0aW9uUGFpcihpbnB1dHMsIHRyYW5zYWN0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IFVuc3Rha2luZ1RyYW5zYWN0aW9uLnBhcnNlVHJhbnNhY3Rpb24odGhpcy5zdWlUcmFuc2FjdGlvbi50eCk7XG4gICAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHRoaXMuZ2V0RW50cmllc0ZvclN0YWtlZFN1aUlucHV0KHBhcnNlZC5zdGFrZWRPYmplY3RSZWYsIHBhcnNlZC5hbW91bnQpO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24oXG4gICAgICAgIHJhd1RyYW5zYWN0aW9uXG4gICAgICApIGFzIFN1aVRyYW5zYWN0aW9uPFVuc3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbiAgICAgIHRoaXMuX3R5cGUgPSB1dGlscy5nZXRUcmFuc2FjdGlvblR5cGUodGhpcy5fc3VpVHJhbnNhY3Rpb24udHlwZSk7XG4gICAgICB0aGlzLl9pZCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmlkO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiBmb3Igc2VyaWFsaXplKCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHR4RGF0YSB3aXRoIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHJldHVybiB7VHhEYXRhfVxuICAgKi9cbiAgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHM6IENhbGxBcmdbXSB8IFRyYW5zYWN0aW9uQmxvY2tJbnB1dFtdID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24udHguaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSB7XG4gICAgICAgIGlmIChpbnB1dC5QdXJlLmxlbmd0aCA9PT0gU1VJX0FERFJFU1NfTEVOR1RIKSB7XG4gICAgICAgICAgY29uc3QgYWRkcmVzcyA9IG5vcm1hbGl6ZVN1aUFkZHJlc3MoXG4gICAgICAgICAgICBidWlsZGVyLmRlKEJDUy5BRERSRVNTLCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGFkZHJlc3MsIEJDUy5BRERSRVNTKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhbW91bnQgPSBidWlsZGVyLmRlKEJDUy5VNjQsIEJ1ZmZlci5mcm9tKGlucHV0LlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhbW91bnQsIEJDUy5VNjQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQua2luZCA9PT0gJ0lucHV0JyAmJiAoaW5wdXQudmFsdWUuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpIHx8IGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdQdXJlJykpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gd2hhdCdzIGxlZnQgaXMgdGhlIHB1cmUgbnVtYmVyIG9yIGFkZHJlc3Mgc3RyaW5nXG4gICAgICByZXR1cm4gSW5wdXRzLlB1cmUoaW5wdXQudmFsdWUsIGlucHV0LnR5cGUgPT09ICdwdXJlJyA/IEJDUy5VNjQgOiBCQ1MuQUREUkVTUyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeCA9IHtcbiAgICAgIGlucHV0czogaW5wdXRzLFxuICAgICAgdHJhbnNhY3Rpb25zOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnMsXG4gICAgfSBhcyBVbnN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjtcblxuICAgIHJldHVybiB7XG4gICAgICBzZW5kZXI6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLnNlbmRlcixcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgICAgZ2FzRGF0YTogdGhpcy5fc3VpVHJhbnNhY3Rpb24uZ2FzRGF0YSxcbiAgICAgIGtpbmQ6IHtcbiAgICAgICAgUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb246IHByb2dyYW1tYWJsZVR4LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBmb3IgYSB1bnN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUeERhdGF9IGpzb24gVGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4ganNvbiBmb3JtYXRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCBUaGUgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gdG8gYmUgY29tcGxldGVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufVxuICAgKi9cbiAgZXhwbGFpbldpdGhkcmF3U3Rha2VkU3VpVHJhbnNhY3Rpb24oanNvbjogVHhEYXRhLCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRoaXMuc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgICBhbW91bnQ6IEFNT1VOVF9VTktOT1dOX1RFWFQsXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gQU1PVU5UX1VOS05PV05fVEVYVDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,7 +1,10 @@
1
1
  import { BaseUtils, TransactionType, Recipient } from '@bitgo/sdk-core';
2
2
  import { SuiTransaction, SuiTransactionType, TransferProgrammableTransaction, StakingProgrammableTransaction } from './iface';
3
3
  import { SuiJsonValue, SuiObjectRef } from './mystenlab/types';
4
- import { TransactionBlockInput, TransactionType as TransactionCommandType } from './mystenlab/builder';
4
+ import { ObjectCallArg, TransactionBlockInput, TransactionType as TransactionCommandType } from './mystenlab/builder';
5
+ export declare function isImmOrOwnedObj(obj: ObjectCallArg['Object']): obj is {
6
+ ImmOrOwned: SuiObjectRef;
7
+ };
5
8
  export declare class Utils implements BaseUtils {
6
9
  /** @inheritdoc */
7
10
  isValidBlockId(hash: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIT,eAAe,EACf,SAAS,EAEV,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAEL,cAAc,EACd,kBAAkB,EAClB,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAIL,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAW,qBAAqB,EAAE,eAAe,IAAI,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIhH,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAWtD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzD,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKvC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAS1C;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAQ/C;;;;;QAKI;IACJ,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,eAAe;IAW3E;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,kBAAkB;IAiB1E,aAAa,CAAC,EAAE,EAAE,cAAc,CAAC,+BAA+B,GAAG,8BAA8B,CAAC,GAAG,SAAS,EAAE;IAuBhH,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM;IAM9D,UAAU,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAYhD,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE;IAM5C,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAQtD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,KAAK,SAAI,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAS5F,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAanD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC;AAErB,oBAAY,KAAK;IACf,GAAG,IAAI;CACR;AAED,oBAAY,aAAa;IACvB,EAAE,IAAI;CACP;AAED,oBAAY,WAAW;IACrB,eAAe,IAAI;IACnB,kBAAkB,IAAI;IACtB,iBAAiB,IAAI;IACrB,eAAe,IAAI;CACpB;AAED,oBAAY,MAAM,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IntentScope = exports.IntentVersion = exports.AppId = exports.Utils = void 0;
6
+ exports.IntentScope = exports.IntentVersion = exports.AppId = exports.Utils = exports.isImmOrOwnedObj = void 0;
7
7
  const sdk_core_1 = require("@bitgo/sdk-core");
8
8
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
9
  const constants_1 = require("./constants");
@@ -15,6 +15,10 @@ const types_1 = require("./mystenlab/types");
15
15
  const builder_1 = require("./mystenlab/builder");
16
16
  const keyPair_1 = require("./keyPair");
17
17
  const blake2b_1 = __importDefault(require("@bitgo/blake2b"));
18
+ function isImmOrOwnedObj(obj) {
19
+ return 'ImmOrOwned' in obj;
20
+ }
21
+ exports.isImmOrOwnedObj = isImmOrOwnedObj;
18
22
  class Utils {
19
23
  /** @inheritdoc */
20
24
  isValidBlockId(hash) {
@@ -264,4 +268,4 @@ var IntentScope;
264
268
  IntentScope[IntentScope["CheckpointSummary"] = 2] = "CheckpointSummary";
265
269
  IntentScope[IntentScope["PersonalMessage"] = 3] = "PersonalMessage";
266
270
  })(IntentScope = exports.IntentScope || (exports.IntentScope = {}));
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVF5QjtBQUN6QixnRUFBcUM7QUFDckMsMkNBQWlEO0FBQ2pELHVEQUFzRDtBQUN0RCxxQ0FBMkM7QUFDM0MsbUNBTWlCO0FBQ2pCLG1DQUFnQztBQUNoQyw2Q0FNMkI7QUFDM0IsaURBQWdIO0FBQ2hILHVDQUFxRDtBQUNyRCw2REFBcUM7QUFFckMsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsT0FBTyxrQ0FBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9CQUFvQixDQUFDLElBQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLGNBQXNCO1FBQzFDLElBQUk7WUFDRixNQUFNLElBQUksR0FBRyxhQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsTUFBTSxZQUFZLEdBQUcsaUJBQU8sQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsaUJBQU8sQ0FBQyxHQUFHLENB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SUFDdkIsNkNBQU0sQ0FBQTtBQUNSLENBQUMsRUFGVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUV4QjtBQUVELElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQixtRUFBbUIsQ0FBQTtJQUNuQix5RUFBc0IsQ0FBQTtJQUN0Qix1RUFBcUIsQ0FBQTtJQUNyQixtRUFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFLdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlVXRpbHMsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSxcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBSZWNpcGllbnQsXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgU1VJX0FERFJFU1NfTEVOR1RIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNQdXJlQXJnIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMvc3VpLWJjcyc7XG5pbXBvcnQgeyBCQ1MsIGZyb21CNjQgfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQge1xuICBNZXRob2ROYW1lcyxcbiAgU3VpVHJhbnNhY3Rpb24sXG4gIFN1aVRyYW5zYWN0aW9uVHlwZSxcbiAgVHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbiAgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQge1xuICBpc1ZhbGlkU3VpQWRkcmVzcyxcbiAgbm9ybWFsaXplU3VpQWRkcmVzcyxcbiAgbm9ybWFsaXplU3VpT2JqZWN0SWQsXG4gIFN1aUpzb25WYWx1ZSxcbiAgU3VpT2JqZWN0UmVmLFxufSBmcm9tICcuL215c3RlbmxhYi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZGVyLCBUcmFuc2FjdGlvbkJsb2NrSW5wdXQsIFRyYW5zYWN0aW9uVHlwZSBhcyBUcmFuc2FjdGlvbkNvbW1hbmRUeXBlIH0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgeyBTSUdOQVRVUkVfU0NIRU1FX1RPX0ZMQUcgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IGJsYWtlMmIgZnJvbSAnQGJpdGdvL2JsYWtlMmInO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgcmF3IHRyYW5zYWN0aW9uIGNhbiBiZSBkZXNlcmlhbGl6ZWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIC0gdHJhbnNhY3Rpb24gaW4gYmFzZTY0IHN0cmluZyBmb3JtYXRcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gICAqL1xuICBpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gZnJvbUI2NChyYXdUcmFuc2FjdGlvbik7XG4gICAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSBidWlsZGVyLmRlKCdUcmFuc2FjdGlvbkRhdGEnLCBkYXRhKTtcbiAgICAgIGJ1aWxkZXIuc2VyKCdUcmFuc2FjdGlvbkRhdGEnLCBkZXNlcmlhbGl6ZWQsIHsgbWF4U2l6ZTogMTAyNCAqIDY0IH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgcmF3IHRyYW5zYWN0aW9uIGhhcyBhIHZhbGlkIGZvcm1hdCBpbiB0aGUgYmxvY2tjaGFpbiBjb250ZXh0LCB0aHJvdyBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIFRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgIGZvcm1hdFxuICAgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFkZHJlc3NlcyB0byBjaGVjayBpZiBhbGwgZXhpc3QgYW5kIGFyZSB2YWxpZCBTdWkgcHVibGljIGtleXNcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NlcyBUaGUgYWRkcmVzcyB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSBOYW1lIG9mIHRoZSBmaWVsZCB0byB2YWxpZGF0ZSwgaXRzIG5lZWRlZCB0byByZXR1cm4gd2hpY2ggZmllbGQgaXMgZmFpbGluZyBvbiBjYXNlIG9mIGVycm9yLlxuICAgKi9cbiAgdmFsaWRhdGVBZGRyZXNzZXMoYWRkcmVzc2VzOiBzdHJpbmdbXSwgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgYWRkcmVzc2VzKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzLCBmaWVsZE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWRkcmVzcyB0byBjaGVjayBpZiBpdCBleGlzdHMgYW5kIGlzIGEgdmFsaWQgU3VpIHB1YmxpYyBrZXlcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgVGhlIGFkZHJlc3MgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgTmFtZSBvZiB0aGUgZmllbGQgdG8gdmFsaWRhdGUsIGl0cyBuZWVkZWQgdG8gcmV0dXJuIHdoaWNoIGZpZWxkIGlzIGZhaWxpbmcgb24gY2FzZSBvZiBlcnJvci5cbiAgICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFhZGRyZXNzIHx8ICFpc1ZhbGlkU3VpQWRkcmVzcyhub3JtYWxpemVTdWlBZGRyZXNzKGFkZHJlc3MpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBvciBtaXNzaW5nICR7ZmllbGROYW1lfSwgZ290OiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSGV4KGFkZHJlc3MpICYmIHRoaXMuZ2V0SGV4Qnl0ZUxlbmd0aChhZGRyZXNzKSA9PT0gU1VJX0FERFJFU1NfTEVOR1RIO1xuICB9XG5cbiAgaXNIZXgodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXigweHwwWCk/W2EtZkEtRjAtOV0rJC8udGVzdCh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoICUgMiA9PT0gMDtcbiAgfVxuXG4gIGdldEhleEJ5dGVMZW5ndGgodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgLy8gcmV0dXJuIC9eKDB4fDBYKS8udGVzdCh2YWx1ZSkgPyAodmFsdWUubGVuZ3RoIC0gMikgLyAyIDogdmFsdWUubGVuZ3RoIC8gMjtcbiAgICByZXR1cm4gL14oMHh8MFgpLy50ZXN0KHZhbHVlKSA/ICh2YWx1ZS5sZW5ndGggLSAyKSAvIDIgOiB2YWx1ZS5sZW5ndGggLyAyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGFtb3VudFxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcltdfSBhbW91bnRzIC0gdGhlIGFtb3VudHMgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gICAqL1xuICBpc1ZhbGlkQW1vdW50cyhhbW91bnRzOiBudW1iZXJbXSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgYW1vdW50IG9mIGFtb3VudHMpIHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnRcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudHMgLSB0aGUgYW1vdW50IHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZEFtb3VudChhbW91bnQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoTnVtYmVyKGFtb3VudCkpO1xuICAgIGlmICghYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpIHx8IGJpZ051bWJlckFtb3VudC5pc0xlc3NUaGFuT3JFcXVhbFRvKDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXMgaGV4IGlkcyAoYWRkcmVzc2VzLCBvYmplY3QgaWRzKSB0byBhbHdheXMgY29udGFpbiB0aGUgJzB4JyBwcmVmaXguXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqKi9cbiAgbm9ybWFsaXplSGV4SWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlkLnN0YXJ0c1dpdGgoJzB4JykgPyBpZCA6ICcweCcuY29uY2F0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gdHlwZSBieSBmdW5jdGlvbiBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7TWV0aG9kTmFtZXN9IGZjdE5hbWVcbiAgICogQHJldHVybiB7VHJhbnNhY3Rpb25UeXBlfVxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25UeXBlKHN1aVRyYW5zYWN0aW9uVHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICBzd2l0Y2ggKHN1aVRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXI6XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IFNVSSB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7TWV0aG9kTmFtZXN9IGZjdE5hbWVcbiAgICogQHJldHVybiB7VHJhbnNhY3Rpb25UeXBlfVxuICAgKi9cbiAgZ2V0U3VpVHJhbnNhY3Rpb25UeXBlKGNvbW1hbmQ6IFRyYW5zYWN0aW9uQ29tbWFuZFR5cGUpOiBTdWlUcmFuc2FjdGlvblR5cGUge1xuICAgIHN3aXRjaCAoY29tbWFuZC5raW5kKSB7XG4gICAgICBjYXNlICdUcmFuc2Zlck9iamVjdHMnOlxuICAgICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyO1xuICAgICAgY2FzZSAnTW92ZUNhbGwnOlxuICAgICAgICBpZiAoY29tbWFuZC50YXJnZXQuZW5kc1dpdGgoTWV0aG9kTmFtZXMuUmVxdWVzdEFkZFN0YWtlKSkge1xuICAgICAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuQWRkU3Rha2U7XG4gICAgICAgIH0gZWxzZSBpZiAoY29tbWFuZC50YXJnZXQuZW5kc1dpdGgoTWV0aG9kTmFtZXMuUmVxdWVzdFdpdGhkcmF3U3Rha2UpKSB7XG4gICAgICAgICAgcmV0dXJuIFN1aVRyYW5zYWN0aW9uVHlwZS5XaXRoZHJhd1N0YWtlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgdW5zdXBwb3J0ZWQgdGFyZ2V0IG1ldGhvZGApO1xuICAgICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYHVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIGtpbmRgKTtcbiAgICB9XG4gIH1cblxuICBnZXRSZWNpcGllbnRzKHR4OiBTdWlUcmFuc2FjdGlvbjxUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uIHwgU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IFJlY2lwaWVudFtdIHtcbiAgICBjb25zdCBhbW91bnRzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IGFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICB0eC50eC50cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb24sIGkpID0+IHtcbiAgICAgIGlmICh0cmFuc2FjdGlvbi5raW5kID09PSAnU3BsaXRDb2lucycpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0cmFuc2FjdGlvbi5hbW91bnRzWzBdLmluZGV4O1xuICAgICAgICBjb25zdCBpbnB1dCA9IHR4LnR4LmlucHV0c1tpbmRleF0gYXMgYW55O1xuICAgICAgICBhbW91bnRzLnB1c2godGhpcy5nZXRBbW91bnQoaW5wdXQpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0cmFuc2FjdGlvbi5raW5kID09PSAnVHJhbnNmZXJPYmplY3RzJykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRyYW5zYWN0aW9uLmFkZHJlc3MuaW5kZXg7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdHgudHguaW5wdXRzW2luZGV4XSBhcyBhbnk7XG4gICAgICAgIGFkZHJlc3Nlcy5wdXNoKHRoaXMuZ2V0QWRkcmVzcyhpbnB1dCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhZGRyZXNzZXMubWFwKChhZGRyZXNzLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBOdW1iZXIoYW1vdW50c1tpbmRleF0pLnRvU3RyaW5nKCksXG4gICAgICB9IGFzIFJlY2lwaWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFtb3VudChpbnB1dDogU3VpSnNvblZhbHVlIHwgVHJhbnNhY3Rpb25CbG9ja0lucHV0KTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXNQdXJlQXJnKGlucHV0KVxuICAgICAgPyBidWlsZGVyLmRlKEJDUy5VNjQsIEJ1ZmZlci5mcm9tKGlucHV0LlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpXG4gICAgICA6IChpbnB1dCBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXQpLnZhbHVlO1xuICB9XG5cbiAgZ2V0QWRkcmVzcyhpbnB1dDogVHJhbnNhY3Rpb25CbG9ja0lucHV0KTogc3RyaW5nIHtcbiAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICAgIHJldHVybiBpc1B1cmVBcmcoaW5wdXQudmFsdWUpXG4gICAgICAgID8gbm9ybWFsaXplU3VpQWRkcmVzcyhidWlsZGVyLmRlKEJDUy5BRERSRVNTLCBCdWZmZXIuZnJvbShpbnB1dD8udmFsdWUuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0JykpXG4gICAgICAgIDogKGlucHV0IGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCkudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpc1B1cmVBcmcoaW5wdXQpXG4gICAgICAgID8gbm9ybWFsaXplU3VpQWRkcmVzcyhidWlsZGVyLmRlKEJDUy5BRERSRVNTLCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKSlcbiAgICAgICAgOiAoaW5wdXQgYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0KS52YWx1ZTtcbiAgICB9XG4gIH1cblxuICBub3JtYWxpemVDb2lucyhjb2luczogYW55W10pOiBTdWlPYmplY3RSZWZbXSB7XG4gICAgcmV0dXJuIGNvaW5zLm1hcCgoY29pbikgPT4ge1xuICAgICAgcmV0dXJuIHV0aWxzLm5vcm1hbGl6ZVN1aU9iamVjdFJlZihjb2luKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5vcm1hbGl6ZVN1aU9iamVjdFJlZihvYmo6IFN1aU9iamVjdFJlZik6IFN1aU9iamVjdFJlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdElkOiBub3JtYWxpemVTdWlPYmplY3RJZChvYmoub2JqZWN0SWQpLFxuICAgICAgdmVyc2lvbjogTnVtYmVyKG9iai52ZXJzaW9uKSxcbiAgICAgIGRpZ2VzdDogb2JqLmRpZ2VzdCxcbiAgICB9O1xuICB9XG5cbiAgdHJhbnNhY3Rpb25JbnB1dCh0eXBlOiAnb2JqZWN0JyB8ICdwdXJlJywgaW5kZXggPSAwLCB2YWx1ZT86IHVua25vd24pOiBUcmFuc2FjdGlvbkJsb2NrSW5wdXQge1xuICAgIHJldHVybiB7XG4gICAgICBraW5kOiAnSW5wdXQnLFxuICAgICAgdmFsdWU6IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgPyBTdHJpbmcodmFsdWUpIDogdmFsdWUsXG4gICAgICBpbmRleCxcbiAgICAgIHR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBQVUJMSUNfS0VZX1NJWkUgPSAzMjtcbiAgICBjb25zdCB0bXAgPSBuZXcgVWludDhBcnJheShQVUJMSUNfS0VZX1NJWkUgKyAxKTtcbiAgICBjb25zdCBwdWJCdWYgPSBCdWZmZXIuZnJvbShwdWJsaWNLZXksICdoZXgnKTtcbiAgICB0bXAuc2V0KFtTSUdOQVRVUkVfU0NIRU1FX1RPX0ZMQUdbJ0VEMjU1MTknXV0pOyAvLyBFRDI1NTE5OiAweDAwLFxuICAgIHRtcC5zZXQocHViQnVmLCAxKTtcbiAgICByZXR1cm4gbm9ybWFsaXplU3VpQWRkcmVzcyhcbiAgICAgIGJsYWtlMmIoUFVCTElDX0tFWV9TSVpFKVxuICAgICAgICAudXBkYXRlKHRtcClcbiAgICAgICAgLmRpZ2VzdCgnaGV4JylcbiAgICAgICAgLnNsaWNlKDAsIFNVSV9BRERSRVNTX0xFTkdUSCAqIDIpXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG5cbmV4cG9ydCBlbnVtIEFwcElkIHtcbiAgU3VpID0gMCxcbn1cblxuZXhwb3J0IGVudW0gSW50ZW50VmVyc2lvbiB7XG4gIFYwID0gMCxcbn1cblxuZXhwb3J0IGVudW0gSW50ZW50U2NvcGUge1xuICBUcmFuc2FjdGlvbkRhdGEgPSAwLFxuICBUcmFuc2FjdGlvbkVmZmVjdHMgPSAxLFxuICBDaGVja3BvaW50U3VtbWFyeSA9IDIsXG4gIFBlcnNvbmFsTWVzc2FnZSA9IDMsXG59XG5cbmV4cG9ydCB0eXBlIEludGVudCA9IFtJbnRlbnRTY29wZSwgSW50ZW50VmVyc2lvbiwgQXBwSWRdO1xuIl19
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVF5QjtBQUN6QixnRUFBcUM7QUFDckMsMkNBQWlEO0FBQ2pELHVEQUFzRDtBQUN0RCxxQ0FBMkM7QUFDM0MsbUNBTWlCO0FBQ2pCLG1DQUFnQztBQUNoQyw2Q0FNMkI7QUFDM0IsaURBSzZCO0FBQzdCLHVDQUFxRDtBQUNyRCw2REFBcUM7QUFFckMsU0FBZ0IsZUFBZSxDQUFDLEdBQTRCO0lBQzFELE9BQU8sWUFBWSxJQUFJLEdBQUcsQ0FBQztBQUM3QixDQUFDO0FBRkQsMENBRUM7QUFFRCxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLGtDQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUMsY0FBc0I7UUFDMUMsSUFBSTtZQUNGLE1BQU0sSUFBSSxHQUFHLGFBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyQyxNQUFNLFlB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QUFBO0FBQ1QsQ0FBQyxFQUZXLEtBQUssR0FBTCxhQUFLLEtBQUwsYUFBSyxRQUVoQjtBQUVELElBQVksYUFFWDtBQUZELFdBQVksYUFBYTtJQUN2Qiw2Q0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUZXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBRXhCO0FBRUQsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLG1FQUFtQixDQUFBO0lBQ25CLHlFQUFzQixDQUFBO0lBQ3RCLHVFQUFxQixDQUFBO0lBQ3JCLG1FQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VVdGlscyxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5LFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFJlY2lwaWVudCxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBTVUlfQUREUkVTU19MRU5HVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc1B1cmVBcmcgfSBmcm9tICcuL215c3RlbmxhYi90eXBlcy9zdWktYmNzJztcbmltcG9ydCB7IEJDUywgZnJvbUI2NCB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7XG4gIE1ldGhvZE5hbWVzLFxuICBTdWlUcmFuc2FjdGlvbixcbiAgU3VpVHJhbnNhY3Rpb25UeXBlLFxuICBUcmFuc2ZlclByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLFxuICBTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7XG4gIGlzVmFsaWRTdWlBZGRyZXNzLFxuICBub3JtYWxpemVTdWlBZGRyZXNzLFxuICBub3JtYWxpemVTdWlPYmplY3RJZCxcbiAgU3VpSnNvblZhbHVlLFxuICBTdWlPYmplY3RSZWYsXG59IGZyb20gJy4vbXlzdGVubGFiL3R5cGVzJztcbmltcG9ydCB7XG4gIGJ1aWxkZXIsXG4gIE9iamVjdENhbGxBcmcsXG4gIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCxcbiAgVHJhbnNhY3Rpb25UeXBlIGFzIFRyYW5zYWN0aW9uQ29tbWFuZFR5cGUsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHsgU0lHTkFUVVJFX1NDSEVNRV9UT19GTEFHIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCBibGFrZTJiIGZyb20gJ0BiaXRnby9ibGFrZTJiJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW1tT3JPd25lZE9iaihvYmo6IE9iamVjdENhbGxBcmdbJ09iamVjdCddKTogb2JqIGlzIHsgSW1tT3JPd25lZDogU3VpT2JqZWN0UmVmIH0ge1xuICByZXR1cm4gJ0ltbU9yT3duZWQnIGluIG9iajtcbn1cblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHJhdyB0cmFuc2FjdGlvbiBjYW4gYmUgZGVzZXJpYWxpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIHRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGZyb21CNjQocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYnVpbGRlci5kZSgnVHJhbnNhY3Rpb25EYXRhJywgZGF0YSk7XG4gICAgICBidWlsZGVyLnNlcignVHJhbnNhY3Rpb25EYXRhJywgZGVzZXJpYWxpemVkLCB7IG1heFNpemU6IDEwMjQgKiA2NCB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhlIHJhdyB0cmFuc2FjdGlvbiBoYXMgYSB2YWxpZCBmb3JtYXQgaW4gdGhlIGJsb2NrY2hhaW4gY29udGV4dCwgdGhyb3cgb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb24gLSBUcmFuc2FjdGlvbiBpbiBiYXNlNjQgc3RyaW5nICBmb3JtYXRcbiAgICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uOiBVbmRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhZGRyZXNzZXMgdG8gY2hlY2sgaWYgYWxsIGV4aXN0IGFuZCBhcmUgdmFsaWQgU3VpIHB1YmxpYyBrZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzZXMgVGhlIGFkZHJlc3MgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgTmFtZSBvZiB0aGUgZmllbGQgdG8gdmFsaWRhdGUsIGl0cyBuZWVkZWQgdG8gcmV0dXJuIHdoaWNoIGZpZWxkIGlzIGZhaWxpbmcgb24gY2FzZSBvZiBlcnJvci5cbiAgICovXG4gIHZhbGlkYXRlQWRkcmVzc2VzKGFkZHJlc3Nlczogc3RyaW5nW10sIGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGFkZHJlc3Nlcykge1xuICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoYWRkcmVzcywgZmllbGROYW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFkZHJlc3MgdG8gY2hlY2sgaWYgaXQgZXhpc3RzIGFuZCBpcyBhIHZhbGlkIFN1aSBwdWJsaWMga2V5XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGROYW1lIE5hbWUgb2YgdGhlIGZpZWxkIHRvIHZhbGlkYXRlLCBpdHMgbmVlZGVkIHRvIHJldHVybiB3aGljaCBmaWVsZCBpcyBmYWlsaW5nIG9uIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghYWRkcmVzcyB8fCAhaXNWYWxpZFN1aUFkZHJlc3Mobm9ybWFsaXplU3VpQWRkcmVzcyhhZGRyZXNzKSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgb3IgbWlzc2luZyAke2ZpZWxkTmFtZX0sIGdvdDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0hleChhZGRyZXNzKSAmJiB0aGlzLmdldEhleEJ5dGVMZW5ndGgoYWRkcmVzcykgPT09IFNVSV9BRERSRVNTX0xFTkdUSDtcbiAgfVxuXG4gIGlzSGV4KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL14oMHh8MFgpP1thLWZBLUYwLTldKyQvLnRlc3QodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAlIDIgPT09IDA7XG4gIH1cblxuICBnZXRIZXhCeXRlTGVuZ3RoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIC8vIHJldHVybiAvXigweHwwWCkvLnRlc3QodmFsdWUpID8gKHZhbHVlLmxlbmd0aCAtIDIpIC8gMiA6IHZhbHVlLmxlbmd0aCAvIDI7XG4gICAgcmV0dXJuIC9eKDB4fDBYKS8udGVzdCh2YWx1ZSkgPyAodmFsdWUubGVuZ3RoIC0gMikgLyAyIDogdmFsdWUubGVuZ3RoIC8gMjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnRcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJbXX0gYW1vdW50cyAtIHRoZSBhbW91bnRzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZEFtb3VudHMoYW1vdW50czogbnVtYmVyW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGFtb3VudCBvZiBhbW91bnRzKSB7XG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZEFtb3VudChhbW91bnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50XG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnRzIC0gdGhlIGFtb3VudCB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgICovXG4gIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBiaWdOdW1iZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKE51bWJlcihhbW91bnQpKTtcbiAgICBpZiAoIWJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSB8fCBiaWdOdW1iZXJBbW91bnQuaXNMZXNzVGhhbk9yRXF1YWxUbygwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemVzIGhleCBpZHMgKGFkZHJlc3Nlcywgb2JqZWN0IGlkcykgdG8gYWx3YXlzIGNvbnRhaW4gdGhlICcweCcgcHJlZml4LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKiovXG4gIG5vcm1hbGl6ZUhleElkKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBpZC5zdGFydHNXaXRoKCcweCcpID8gaWQgOiAnMHgnLmNvbmNhdChpZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIHR5cGUgYnkgZnVuY3Rpb24gbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge01ldGhvZE5hbWVzfSBmY3ROYW1lXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICovXG4gIGdldFRyYW5zYWN0aW9uVHlwZShzdWlUcmFuc2FjdGlvblR5cGU6IFN1aVRyYW5zYWN0aW9uVHlwZSk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgc3dpdGNoIChzdWlUcmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5BZGRTdGFrZTpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWRkO1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTpcbiAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nV2l0aGRyYXc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBTVUkgdHJhbnNhY3Rpb24gdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge01ldGhvZE5hbWVzfSBmY3ROYW1lXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICovXG4gIGdldFN1aVRyYW5zYWN0aW9uVHlwZShjb21tYW5kOiBUcmFuc2FjdGlvbkNvbW1hbmRUeXBlKTogU3VpVHJhbnNhY3Rpb25UeXBlIHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQua2luZCkge1xuICAgICAgY2FzZSAnVHJhbnNmZXJPYmplY3RzJzpcbiAgICAgICAgcmV0dXJuIFN1aVRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlcjtcbiAgICAgIGNhc2UgJ01vdmVDYWxsJzpcbiAgICAgICAgaWYgKGNvbW1hbmQudGFyZ2V0LmVuZHNXaXRoKE1ldGhvZE5hbWVzLlJlcXVlc3RBZGRTdGFrZSkpIHtcbiAgICAgICAgICByZXR1cm4gU3VpVHJhbnNhY3Rpb25UeXBlLkFkZFN0YWtlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbW1hbmQudGFyZ2V0LmVuZHNXaXRoKE1ldGhvZE5hbWVzLlJlcXVlc3RXaXRoZHJhd1N0YWtlKSkge1xuICAgICAgICAgIHJldHVybiBTdWlUcmFuc2FjdGlvblR5cGUuV2l0aGRyYXdTdGFrZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYHVuc3VwcG9ydGVkIHRhcmdldCBtZXRob2RgKTtcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiBraW5kYCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVjaXBpZW50cyh0eDogU3VpVHJhbnNhY3Rpb248VHJhbnNmZXJQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IFN0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4pOiBSZWNpcGllbnRbXSB7XG4gICAgY29uc3QgYW1vdW50czogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBhZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgdHgudHgudHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uLCBpKSA9PiB7XG4gICAgICBpZiAodHJhbnNhY3Rpb24ua2luZCA9PT0gJ1NwbGl0Q29pbnMnKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdHJhbnNhY3Rpb24uYW1vdW50c1swXS5pbmRleDtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0eC50eC5pbnB1dHNbaW5kZXhdIGFzIGFueTtcbiAgICAgICAgYW1vdW50cy5wdXNoKHRoaXMuZ2V0QW1vdW50KGlucHV0KSk7XG4gICAgICB9XG4gICAgICBpZiAodHJhbnNhY3Rpb24ua2luZCA9PT0gJ1RyYW5zZmVyT2JqZWN0cycpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0cmFuc2FjdGlvbi5hZGRyZXNzLmluZGV4O1xuICAgICAgICBjb25zdCBpbnB1dCA9IHR4LnR4LmlucHV0c1tpbmRleF0gYXMgYW55O1xuICAgICAgICBhZGRyZXNzZXMucHVzaCh0aGlzLmdldEFkZHJlc3MoaW5wdXQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWRkcmVzc2VzLm1hcCgoYWRkcmVzcywgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6IGFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogTnVtYmVyKGFtb3VudHNbaW5kZXhdKS50b1N0cmluZygpLFxuICAgICAgfSBhcyBSZWNpcGllbnQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRBbW91bnQoaW5wdXQ6IFN1aUpzb25WYWx1ZSB8IFRyYW5zYWN0aW9uQmxvY2tJbnB1dCk6IG51bWJlciB7XG4gICAgcmV0dXJuIGlzUHVyZUFyZyhpbnB1dClcbiAgICAgID8gYnVpbGRlci5kZShCQ1MuVTY0LCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKVxuICAgICAgOiAoaW5wdXQgYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0KS52YWx1ZTtcbiAgfVxuXG4gIGdldEFkZHJlc3MoaW5wdXQ6IFRyYW5zYWN0aW9uQmxvY2tJbnB1dCk6IHN0cmluZyB7XG4gICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KCd2YWx1ZScpKSB7XG4gICAgICByZXR1cm4gaXNQdXJlQXJnKGlucHV0LnZhbHVlKVxuICAgICAgICA/IG5vcm1hbGl6ZVN1aUFkZHJlc3MoYnVpbGRlci5kZShCQ1MuQUREUkVTUywgQnVmZmVyLmZyb20oaW5wdXQ/LnZhbHVlLlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpKVxuICAgICAgICA6IChpbnB1dCBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXQpLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaXNQdXJlQXJnKGlucHV0KVxuICAgICAgICA/IG5vcm1hbGl6ZVN1aUFkZHJlc3MoYnVpbGRlci5kZShCQ1MuQUREUkVTUywgQnVmZmVyLmZyb20oaW5wdXQuUHVyZSkudG9TdHJpbmcoJ2Jhc2U2NCcpLCAnYmFzZTY0JykpXG4gICAgICAgIDogKGlucHV0IGFzIFRyYW5zYWN0aW9uQmxvY2tJbnB1dCkudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbm9ybWFsaXplQ29pbnMoY29pbnM6IGFueVtdKTogU3VpT2JqZWN0UmVmW10ge1xuICAgIHJldHVybiBjb2lucy5tYXAoKGNvaW4pID0+IHtcbiAgICAgIHJldHVybiB1dGlscy5ub3JtYWxpemVTdWlPYmplY3RSZWYoY29pbik7XG4gICAgfSk7XG4gIH1cblxuICBub3JtYWxpemVTdWlPYmplY3RSZWYob2JqOiBTdWlPYmplY3RSZWYpOiBTdWlPYmplY3RSZWYge1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogbm9ybWFsaXplU3VpT2JqZWN0SWQob2JqLm9iamVjdElkKSxcbiAgICAgIHZlcnNpb246IE51bWJlcihvYmoudmVyc2lvbiksXG4gICAgICBkaWdlc3Q6IG9iai5kaWdlc3QsXG4gICAgfTtcbiAgfVxuXG4gIHRyYW5zYWN0aW9uSW5wdXQodHlwZTogJ29iamVjdCcgfCAncHVyZScsIGluZGV4ID0gMCwgdmFsdWU/OiB1bmtub3duKTogVHJhbnNhY3Rpb25CbG9ja0lucHV0IHtcbiAgICByZXR1cm4ge1xuICAgICAga2luZDogJ0lucHV0JyxcbiAgICAgIHZhbHVlOiB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gU3RyaW5nKHZhbHVlKSA6IHZhbHVlLFxuICAgICAgaW5kZXgsXG4gICAgICB0eXBlLFxuICAgIH07XG4gIH1cblxuICBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgUFVCTElDX0tFWV9TSVpFID0gMzI7XG4gICAgY29uc3QgdG1wID0gbmV3IFVpbnQ4QXJyYXkoUFVCTElDX0tFWV9TSVpFICsgMSk7XG4gICAgY29uc3QgcHViQnVmID0gQnVmZmVyLmZyb20ocHVibGljS2V5LCAnaGV4Jyk7XG4gICAgdG1wLnNldChbU0lHTkFUVVJFX1NDSEVNRV9UT19GTEFHWydFRDI1NTE5J11dKTsgLy8gRUQyNTUxOTogMHgwMCxcbiAgICB0bXAuc2V0KHB1YkJ1ZiwgMSk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVN1aUFkZHJlc3MoXG4gICAgICBibGFrZTJiKFBVQkxJQ19LRVlfU0laRSlcbiAgICAgICAgLnVwZGF0ZSh0bXApXG4gICAgICAgIC5kaWdlc3QoJ2hleCcpXG4gICAgICAgIC5zbGljZSgwLCBTVUlfQUREUkVTU19MRU5HVEggKiAyKVxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuXG5leHBvcnQgZW51bSBBcHBJZCB7XG4gIFN1aSA9IDAsXG59XG5cbmV4cG9ydCBlbnVtIEludGVudFZlcnNpb24ge1xuICBWMCA9IDAsXG59XG5cbmV4cG9ydCBlbnVtIEludGVudFNjb3BlIHtcbiAgVHJhbnNhY3Rpb25EYXRhID0gMCxcbiAgVHJhbnNhY3Rpb25FZmZlY3RzID0gMSxcbiAgQ2hlY2twb2ludFN1bW1hcnkgPSAyLFxuICBQZXJzb25hbE1lc3NhZ2UgPSAzLFxufVxuXG5leHBvcnQgdHlwZSBJbnRlbnQgPSBbSW50ZW50U2NvcGUsIEludGVudFZlcnNpb24sIEFwcElkXTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-sui",
3
- "version": "3.1.1",
3
+ "version": "3.2.0",
4
4
  "description": "BitGo SDK coin library for Sui",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -41,8 +41,8 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@bitgo/blake2b": "^3.2.1",
44
- "@bitgo/sdk-core": "^8.8.0",
45
- "@bitgo/statics": "^17.0.0",
44
+ "@bitgo/sdk-core": "^8.10.0",
45
+ "@bitgo/statics": "^17.0.1",
46
46
  "@mysten/bcs": "^0.7.0",
47
47
  "bignumber.js": "^9.0.0",
48
48
  "bs58": "^4.0.1",
@@ -51,11 +51,11 @@
51
51
  "tweetnacl": "^1.0.3"
52
52
  },
53
53
  "devDependencies": {
54
- "@bitgo/sdk-api": "^1.11.0",
55
- "@bitgo/sdk-test": "^1.2.25",
54
+ "@bitgo/sdk-api": "^1.11.2",
55
+ "@bitgo/sdk-test": "^1.2.27",
56
56
  "@types/lodash": "^4.14.183",
57
57
  "axios": "^1.4.0",
58
58
  "debug": "^4.3.4"
59
59
  },
60
- "gitHead": "eecfb716f412ea5577f302a5c970d2b83fbe5b1b"
60
+ "gitHead": "fced576cf32a20224ba25abd31efdfd4e8e04f94"
61
61
  }