@witnet/sdk 1.0.15 → 1.1.1

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.
Files changed (40) hide show
  1. package/dist/package.json +13 -13
  2. package/dist/src/bin/helpers.d.ts +1 -0
  3. package/dist/src/bin/helpers.d.ts.map +1 -1
  4. package/dist/src/bin/helpers.js +34 -5
  5. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +7 -4
  6. package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
  7. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +42 -16
  8. package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
  9. package/dist/src/lib/crypto/payloads.js +1 -2
  10. package/dist/src/lib/crypto/signer.js +12 -9
  11. package/dist/src/lib/crypto/transmitters.js +2 -2
  12. package/dist/src/lib/crypto/types.d.ts.map +1 -1
  13. package/dist/src/lib/crypto/types.js +1 -2
  14. package/dist/src/lib/radon/index.d.ts +4 -2
  15. package/dist/src/lib/radon/index.d.ts.map +1 -1
  16. package/dist/src/lib/radon/index.js +50 -32
  17. package/dist/src/lib/radon/types.d.ts +31 -27
  18. package/dist/src/lib/radon/types.d.ts.map +1 -1
  19. package/dist/src/lib/radon/types.js +88 -46
  20. package/dist/src/lib/radon/utils.js +3 -3
  21. package/dist/src/lib/rpc/provider.d.ts +12 -0
  22. package/dist/src/lib/rpc/provider.d.ts.map +1 -1
  23. package/dist/src/lib/rpc/provider.js +11 -1
  24. package/dist/witnet/assets/index.d.ts +1 -2
  25. package/dist/witnet/assets/modals/index.d.ts +1 -2
  26. package/dist/witnet/assets/modals/web3/eth.js +3 -3
  27. package/dist/witnet/assets/modals/web3/ipfs.d.ts +1 -2
  28. package/dist/witnet/assets/modals/web3/ipfs.js +11 -9
  29. package/dist/witnet/assets/modals/web3/wit.js +4 -4
  30. package/dist/witnet/assets/requests.js +6 -51
  31. package/package.json +13 -13
  32. package/src/bin/cli/inspect.js +103 -13
  33. package/src/bin/cli/radon.js +157 -79
  34. package/src/bin/cli/wallet.js +4 -6
  35. package/src/bin/helpers.js +37 -4
  36. package/src/bin/toolkit.js +2 -2
  37. package/witnet/assets/modals/web3/eth.js +2 -2
  38. package/witnet/assets/modals/web3/ipfs.js +9 -6
  39. package/witnet/assets/modals/web3/wit.js +3 -3
  40. package/witnet/assets/requests.js +5 -51
@@ -62,8 +62,8 @@ function requireRadonAsset(specs) {
62
62
  ? flattenRadonAssets(specs.assets, specs?.type)
63
63
  : loadModuleAssets({ flattened: true, type: specs?.type }));
64
64
  const found = stuff.find((entry) => entry.key === specs.artifact);
65
- if (found) {
66
- return found[0].artifact;
65
+ if (found?.artifact) {
66
+ return found.artifact;
67
67
  }
68
68
  else {
69
69
  throw Error(`Radon asset "${specs.artifact}" not available.`);
@@ -150,4 +150,4 @@ function parseScriptOperator(script, opcode, args) {
150
150
  }
151
151
  }
152
152
  }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRCQSw0Q0FhQztBQUdELGdEQThCQztBQUVELDhDQWdCQztBQVdELDhDQXFDQztBQTVJRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7QUFDMUIsK0JBQTJDO0FBRTNDLCtDQUE4RDtBQUU5RCxtQ0FBaUY7QUFFakYsbUNBVWdCO0FBRWhCLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSw4QkFBOEIsQ0FBQTtBQUVyRyw2Q0FBcUQ7QUFBNUMsNEdBQUEsaUJBQWlCLE9BQUE7QUFFMUI7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLFFBQWE7SUFDNUMsSUFBSSxNQUFNLENBQUE7SUFDVixJQUFJLElBQUEscUJBQVcsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sR0FBRyxJQUFBLHVCQUFhLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDbEMsQ0FBQztTQUFNLElBQUksUUFBUSxZQUFZLFVBQVUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7U0FBTSxJQUFJLFFBQVEsWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBQSxhQUFVLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDaEMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUdELFNBQWdCLGtCQUFrQixDQUNo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QUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssUUFBUSxDQUFDO1lBQUMsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssT0FBTztnQkFDbEQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNyQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekQsZ0JBQWdCO1lBQ2hCLDhFQUE4RTtZQUU5RTtnQkFDRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCdkb3RlbnYnKS5jb25maWcoKVxyXG5pbXBvcnQgeyBkZWNvZGUgYXMgY2JvckRlY29kZSB9IGZyb20gJ2Nib3InXHJcblxyXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCBpc0hleFN0cmluZyB9IGZyb20gXCIuLi8uLi9iaW4vaGVscGVyc1wiXHJcblxyXG5pbXBvcnQgeyBSYWRvblJlcXVlc3QsIFJhZG9uTW9kYWwsIFJhZG9uVGVtcGxhdGUsIFJhZG9uUmV0cmlldmFsIH0gZnJvbSBcIi4vaW5kZXhcIlxyXG5cclxuaW1wb3J0IHtcclxuICBSYWRvbkFueSxcclxuICBSYWRvbkFycmF5LFxyXG4gIFJhZG9uQm9vbGVhbixcclxuICBSYWRvbkJ5dGVzLFxyXG4gIFJhZG9uRmxvYXQsXHJcbiAgUmFkb25JbnRlZ2VyLFxyXG4gIFJhZG9uTWFwLFxyXG4gIFJhZG9uU3RyaW5nLFxyXG4gIFJhZG9uT3BlcmF0b3JzLFxyXG59IGZyb20gXCIuL3R5cGVzXCJcclxuXHJcbmNvbnN0IFdJVE5FVF9BU1NFVFNfUEFUSCA9IHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcclxuXHJcbmV4cG9ydCB7IGV4ZWNSYWRvbkJ5dGVjb2RlIH0gZnJvbSBcIi4uLy4uL2Jpbi9oZWxwZXJzXCJcclxuXHJcbi8qKlxyXG4gKiBEZWNvZGVzIGEgUmFkb24gc2NyaXB0IG91dCBmcm9tIGEgUHJvdG9idWYtc2VyaWFsaXplZCBieXRlY29kZS5cclxuICogQHBhcmFtIGhleFN0cmluZyBSYWRvbiBzY3JpcHQgYnl0ZWNvZGUuXHJcbiAqIEByZXR1cm5zIFJhZG9uIHNjcmlwdCBvYmplY3QgKGkuZS4gY2hhaW4gb2YgUmFkb24gb3BlcmF0b3JzIHdpdGggYSBkZXRlcm1pbmlzdGljIG91dHB1dCBSYWRvbiB0eXBlKS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJhZG9uU2NyaXB0KGJ5dGVjb2RlOiBhbnkpOiBSYWRvbkFueSB7XHJcbiAgbGV0IGJ1ZmZlclxyXG4gIGlmIChpc0hleFN0cmluZyhieXRlY29kZSkpIHtcclxuICAgIGJ1ZmZlciA9IGZyb21IZXhTdHJpbmcoYnl0ZWNvZGUpXHJcbiAgfSBlbHNlIGlmIChieXRlY29kZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcclxuICAgIGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJ5dGVjb2RlKVxyXG4gIH0gZWxzZSBpZiAoYnl0ZWNvZGUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcclxuICAgIGJ1ZmZlciA9IGJ5dGVjb2RlXHJcbiAgfSBlbHNlIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIFJhZG9uU2NyaXB0IGJ5dGVjb2RlIGZvcm1hdDogJHtieXRlY29kZX1gKVxyXG4gIH1cclxuICBjb25zdCBhcnJheSA9IGNib3JEZWNvZGUoYnVmZmVyKVxyXG4gIHJldHVybiBwYXJzZVNjcmlwdChhcnJheSlcclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuUmFkb25Bc3NldHM8VCBleHRlbmRzIFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUgfCBSYWRvbk1vZGFsIHwgUmFkb25SZXRyaWV2YWw+KFxyXG4gIHRyZWU6IGFueSxcclxuICB0eXBlPzogeyBuZXcoc3BlY3M6IGFueSk6IFQ7IH0sXHJcbiAgaGVhZGVycz86IHN0cmluZ1tdXHJcbik6IEFycmF5PHsga2V5OiBzdHJpbmcsIGFydGlmYWN0OiBhbnkgfT4ge1xyXG4gIGlmICghaGVhZGVycykgaGVhZGVycyA9IFtdXHJcbiAgY29uc3QgZW50cmllczogQXJyYXk8eyBrZXk6IHN0cmluZywgYXJ0aWZhY3Q6IGFueSB9PiA9IFtdXHJcbiAgZm9yIChjb25zdCBrZXkgaW4gdHJlZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICAodHlwZSAmJiB0cmVlW2tleV0gaW5zdGFuY2VvZiB0eXBlKVxyXG4gICAgICB8fCAoIXR5cGUgJiYgKFxyXG4gICAgICAgICAgdHJlZVtrZXldIGluc3RhbmNlb2YgUmFkb25SZXF1ZXN0XHJcbiAgICAgICAgICB8fCB0cmVlW2tleV0gaW5zdGFuY2VvZiBSYWRvblRlbXBsYXRlXHJcbiAgICAgICAgICB8fCB0cmVlW2tleV0gaW5zdGFuY2VvZiBSYWRvbk1vZGFsXHJcbiAgICAgICAgICB8fCB0cmVlW2tleV0gaW5zdGFuY2VvZiBSYWRvblJldHJpZXZhbFxyXG4gICAgICApKVxyXG4gICAgKSB7XHJcbiAgICAgIGVudHJpZXMucHVzaCh7XHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIGFydGlmYWN0OiB0cmVlW2tleV0sXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0cmVlW2tleV0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgZW50cmllcy5wdXNoKC4uLmZsYXR0ZW5SYWRvbkFzc2V0cyhcclxuICAgICAgICB0cmVlW2tleV0sXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBbLi4uaGVhZGVycywga2V5XVxyXG4gICAgICApKVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZW50cmllc1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVSYWRvbkFzc2V0PFQgZXh0ZW5kcyBSYWRvblJlcXVlc3QgfCBSYWRvblRlbXBsYXRlIHwgUmFkb25Nb2RhbCB8IFJhZG9uUmV0cmlldmFsPihzcGVjczoge1xyXG4gIGFydGlmYWN0OiBzdHJpbmcsXHJcbiAgYXNzZXRzPzogYW55LFxyXG4gIHR5cGU/OiB7IG5ldyAoc3BlY3M6IGFueSk6IFQ7IH0sXHJcbn0pOiBUIHtcclxuICBjb25zdCBzdHVmZiA9IChcclxuICAgIHNwZWNzPy5hc3NldHMgXHJcbiAgICAgID8gZmxhdHRlblJhZG9uQXNzZXRzKHNwZWNzLmFzc2V0cywgc3BlY3M/LnR5cGUpIFxyXG4gICAgICA6IGxvYWRNb2R1bGVBc3NldHMoeyBmbGF0dGVuZWQ6IHRydWUsIHR5cGU6IHNwZWNzPy50eXBlIH0pXHJcbiAgKTtcclxuICBjb25zdCBmb3VuZCA9IHN0dWZmLmZpbmQoKGVudHJ5OiB7IGtleTogc3RyaW5nLCBhcnRpZmFjdDogYW55IH0pID0+IGVudHJ5LmtleSA9PT0gc3BlY3MuYXJ0aWZhY3QpXHJcbiAgaWYgKGZvdW5kKSB7XHJcbiAgICByZXR1cm4gZm91bmRbMF0uYXJ0aWZhY3RcclxuICB9IGVsc2Uge1xyXG4gICAgdGhyb3cgRXJyb3IoYFJhZG9uIGFzc2V0IFwiJHtzcGVjcy5hcnRpZmFjdH1cIiBub3QgYXZhaWxhYmxlLmApXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2VhcmNoIFdpdG5ldCBSYWRvbiBhc3NldHMgZGVjbGFyZWQgb3IgaW1wb3J0ZWQgd2l0aGluIGN1cnJlbnQgcmVwb3NpdG9yeSwgXHJcbiAqIHdob3NlIG5hbWVzIGNvbXBsaWVzIHdpdGggdGhlIHByb3ZpZGVkIGBwYXR0ZXJuYCBhbmQgYGZpbHRlckZuYC4gXHJcbiAqIElmIG5vIGBmaWx0ZXJGbmAgaXMgc3BlY2lmaWVkLCBzZWFyY2ggd2lsbCBpbmNsdWRlIGFzc2V0cyB3aG9zZSBuYW1lcyBcclxuICogYXJlIHN1ZmZpeGVkIGJ5IGdpdmVuIGBwYXR0ZXJuYCAoY2FzZSBpbnNlbnNpdGl2ZSkuXHJcbiAqIEBwYXJhbSBvcHRpb25zIFNlYXJjaCBvcHRpb25zXHJcbiAqIEBwYXJhbSBmaWx0ZXJGbiBGaWx0ZXJpbmcgZnVuY3Rpb24uXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIFJhZG9uIGFzc2V0cyBvZiB0aGUgc3BlY2lmaWVkIGtpbmQgY29tcGx5aW5nIHdpdGggdGhlIHNlYXJjaCBwYXR0ZXJuLiBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hSYWRvbkFzc2V0czxUIGV4dGVuZHMgUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSB8IFJhZG9uTW9kYWwgfCBSYWRvblJldHJpZXZhbD4oXHJcbiAgb3B0aW9uczoge1xyXG4gICAgLyoqXHJcbiAgICAgKiBPYmplY3QgY29udGFpbmluZyBzdHJ1Y3R1cmVkIGhlcmlhcmNoeSBvZiBSYWRvbiBhc3NldHMuIElmIG5vdCBwcm92aWRlZCwgUmFkb24gYXNzZXRzIGRlY2xhcmVkIHdpdGhpbiBwcm9qZWN0J3MgZW52aXJvbm1lbnQuXHJcbiAgICAgKi9cclxuICAgIGFzc2V0cz86IGFueSxcclxuICAgIC8qKlxyXG4gICAgICogTGltaXRzIG51bWJlciBvZiByZXR1cm5lZCBSYWRvbiBhc3NldHMuXHJcbiAgICAgKi9cclxuICAgIGxpbWl0PzogbnVtYmVyLFxyXG4gICAgLyoqXHJcbiAgICAgKiBPZmZzZXRzIHJldHVybmVkIGFycmF5IG9mIFJhZG9uIGFzc2V0cy5cclxuICAgICAqL1xyXG4gICAgb2Zmc2V0PzogbnVtYmVyLFxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIHBhdHRlcm4gc2VhcmNoZWQgZm9yLlxyXG4gICAgICovXHJcbiAgICBwYXR0ZXJuOiBzdHJpbmcsXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljIHR5cGUgb2YgUmFkb24gYXNzZXQgdG8gc2VhcmNoIGZvcjogYFJhZG9uUmVxdWVzdGAsIGBSYWRvblJlcXVlc3RgLCBgUmFkb25SZXRyaWV2YWxgIG9yIGBSYWRvbkNDRFJgLlxyXG4gICAgICovXHJcbiAgICB0eXBlPzogeyBuZXcgKHNwZWNzOiBhbnkpOiBUOyB9LFxyXG4gIH0sXHJcbiAgZmlsdGVyRm4/OiAoa2V5OiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZykgPT4gYm9vbGVhbixcclxuKTogQXJyYXk8W2tleTogc3RyaW5nLCBhcnRpZmFjdDogVF0+IHtcclxuICBjb25zdCBkZWZhdWx0RmlsdGVyID0gKGtleTogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpID0+IGtleS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHBhdHRlcm4udG9Mb3dlckNhc2UoKSlcclxuICBjb25zdCBzdHVmZiA9IChcclxuICAgIG9wdGlvbnM/LmFzc2V0c1xyXG4gICAgICA/IGZsYXR0ZW5SYWRvbkFzc2V0cyhvcHRpb25zLmFzc2V0cywgb3B0aW9ucz8udHlwZSlcclxuICAgICAgOiBsb2FkTW9kdWxlQXNzZXRzKHsgZmxhdHRlbmVkOiB0cnVlLCB0eXBlOiBvcHRpb25zPy50eXBlIH0pXHJcbiAgKTtcclxuICByZXR1cm4gKFxyXG4gICAgc3R1ZmZcclxuICAgICAgLmZpbHRlcigoZW50cnk6IHsga2V5OiBzdHJpbmcsIGFydGlmYWN0OiBhbnkgfSkgPT4gKGZpbHRlckZuIHx8IGRlZmF1bHRGaWx0ZXIpKGVudHJ5LmtleSwgb3B0aW9ucy5wYXR0ZXJuIHx8IFwiXCIpKVxyXG4gICAgICAuc2xpY2Uob3B0aW9ucz8ub2Zmc2V0IHx8IDAsIG9wdGlvbnM/LmxpbWl0KVxyXG4gICAgICAubWFwKChlbnRyeTogeyBrZXk6IHN0cmluZywgYXJ0aWZhY3Q6IGFueSB8IFQgfSkgPT4gW2VudHJ5LmtleSwgZW50cnkuYXJ0aWZhY3RdKVxyXG4gICk7XHJcbn1cclxuXHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAtLS0gSU5URVJOQUwgTUVUSE9EUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuZnVuY3Rpb24gbG9hZE1vZHVsZUFzc2V0czxUIGV4dGVuZHMgUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSB8IFJhZG9uTW9kYWwgfCBSYWRvblJldHJpZXZhbD4oXHJcbiAgb3B0aW9uczoge1xyXG4gICAgLy8gbGVnYWN5PzogYm9vbGVhbixcclxuICAgIGZsYXR0ZW5lZD86IGJvb2xlYW4sXHJcbiAgICB0eXBlPzogeyBuZXcoc3BlY3M6IGFueSk6IFQ7IH0sXHJcbiAgfSxcclxuKTogYW55IHtcclxuICAvLyBjb25zdCBzdHVmZiA9IG9wdGlvbnM/LmxlZ2FjeSA/IHJlcXVpcmUoYCR7V0lUTkVUX0FTU0VUU19QQVRIfWApLmxlZ2FjeSA6IHtcclxuICAvLyAgIHJlcXVlc3RzOiByZXF1aXJlKGAke1dJVE5FVF9BU1NFVFNfUEFUSH0vcmVxdWVzdHNgKSxcclxuICAvLyAgIHRlbXBsYXRlczogcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9L3RlbXBsYXRlc2ApLFxyXG4gIC8vICAgcmV0cmlldmFsczogcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9L3JldHJpZXZhbHNgKSxcclxuICAvLyB9O1xyXG4gIGNvbnN0IHN0dWZmID0gcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9YClcclxuICByZXR1cm4gb3B0aW9ucz8uZmxhdHRlbmVkID8gZmxhdHRlblJhZG9uQXNzZXRzKHN0dWZmLCBvcHRpb25zPy50eXBlKSA6IHN0dWZmXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlU2NyaXB0KGFycmF5OiBhbnksIHNjcmlwdD86IGFueSk6IGFueSB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XHJcbiAgICBhcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgIHNjcmlwdCA9IHBhcnNlU2NyaXB0T3BlcmF0b3Ioc2NyaXB0LCBpdGVtWzBdLCAuLi5pdGVtLnNsaWNlKDEpKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNjcmlwdCA9IHBhcnNlU2NyaXB0T3BlcmF0b3Ioc2NyaXB0LCBpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHNjcmlwdFxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gcGFyc2VTY3JpcHRPcGVyYXRvcihzY3JpcHQsIGFycmF5KVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VTY3JpcHRPcGVyYXRvcihzY3JpcHQ6IGFueSwgb3Bjb2RlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xyXG4gIGlmICghc2NyaXB0KSB7XHJcbiAgICBjb25zdCBmb3VuZCA9IE9iamVjdC5lbnRyaWVzKHtcclxuICAgICAgXCIxMFwiOiBSYWRvbkFycmF5LFxyXG4gICAgICBcIjIwXCI6IFJhZG9uQm9vbGVhbixcclxuICAgICAgXCIzMFwiOiBSYWRvbkJ5dGVzLFxyXG4gICAgICBcIjQwXCI6IFJhZG9uSW50ZWdlcixcclxuICAgICAgXCI1MFwiOiBSYWRvbkZsb2F0LFxyXG4gICAgICBcIjYwXCI6IFJhZG9uTWFwLFxyXG4gICAgICBcIjcwXCI6IFJhZG9uU3RyaW5nLFxyXG4gICAgfSkuZmluZChlbnRyeSA9PiBlbnRyeVswXSA9PT0gKHBhcnNlSW50KG9wY29kZSkgJiAweGYwKS50b1N0cmluZygxNikpXHJcbiAgICBpZiAoZm91bmQpIHtcclxuICAgICAgc2NyaXB0ID0gbmV3IGZvdW5kWzFdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYHVua25vd24gUmFkb24gb3BlcmF0b3I6ICR7b3Bjb2RlfWApXHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChvcGNvZGUpIHtcclxuICAgIGxldCBvcGVyYXRvciA9IFJhZG9uT3BlcmF0b3JzW29wY29kZV0uc3BsaXQoLyg/PVtBLVpdKS8pLnNsaWNlKDEpLmpvaW4oXCJcIilcclxuICAgIG9wZXJhdG9yID0gb3BlcmF0b3IuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBvcGVyYXRvci5zbGljZSgxKVxyXG4gICAgc3dpdGNoIChvcGVyYXRvcikge1xyXG4gICAgICBjYXNlIFwiZmlsdGVyXCI6IGNhc2UgXCJtYXBcIjogY2FzZSBcInNvcnRcIjogY2FzZSBcImFsdGVyXCI6XHJcbiAgICAgICAgY29uc3QgaW5uZXJTY3JpcHQgPSBwYXJzZVNjcmlwdChhcmdzKVxyXG4gICAgICAgIHJldHVybiBzY3JpcHRbb3BlcmF0b3JdKGlubmVyU2NyaXB0LCAuLi5hcmdzLnNsaWNlKDEpKTtcclxuXHJcbiAgICAgIC8vIGNhc2UgXCJhbHRlclwiOlxyXG4gICAgICAvLyAgIHJldHVybiBzY3JpcHRbb3BlcmF0b3JdKGFyZ3NbMF0sIHBhcnNlU2NyaXB0KGFyZ3NbMV0sIC4uLmFyZ3Muc2xpY2UoMikpKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHNjcmlwdFtvcGVyYXRvcl0oYXJncylcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRCQSw0Q0FhQztBQUdELGdEQThCQztBQUVELDhDQWdCQztBQVdELDhDQXFDQztBQTVJRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7QUFDMUIsK0JBQTJDO0FBRTNDLCtDQUE4RDtBQUU5RCxtQ0FBaUY7QUFFakYsbUNBVWdCO0FBRWhCLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSw4QkFBOEIsQ0FBQTtBQUVyRyw2Q0FBcUQ7QUFBNUMsNEdBQUEsaUJBQWlCLE9BQUE7QUFFMUI7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLFFBQWE7SUFDNUMsSUFBSSxNQUFNLENBQUE7SUFDVixJQUFJLElBQUEscUJBQVcsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sR0FBRyxJQUFBLHVCQUFhLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDbEMsQ0FBQztTQUFNLElBQUksUUFBUSxZQUFZLFVBQVUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7U0FBTSxJQUFJLFFBQVEsWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEdBQUcsUUFBUSxDQUFBO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBQSxhQUFVLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDaEMsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDM0IsQ0FBQztBQUdELFNBQWdCLGtCQUFrQixDQUNo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UUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxRQUFRLENBQUM7WUFBQyxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxPQUFPO2dCQUNsRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3JDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV6RCxnQkFBZ0I7WUFDaEIsOEVBQThFO1lBRTlFO2dCQUNFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJ2RvdGVudicpLmNvbmZpZygpXHJcbmltcG9ydCB7IGRlY29kZSBhcyBjYm9yRGVjb2RlIH0gZnJvbSAnY2JvcidcclxuXHJcbmltcG9ydCB7IGZyb21IZXhTdHJpbmcsIGlzSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uL2Jpbi9oZWxwZXJzXCJcclxuXHJcbmltcG9ydCB7IFJhZG9uUmVxdWVzdCwgUmFkb25Nb2RhbCwgUmFkb25UZW1wbGF0ZSwgUmFkb25SZXRyaWV2YWwgfSBmcm9tIFwiLi9pbmRleFwiXHJcblxyXG5pbXBvcnQge1xyXG4gIFJhZG9uQW55LFxyXG4gIFJhZG9uQXJyYXksXHJcbiAgUmFkb25Cb29sZWFuLFxyXG4gIFJhZG9uQnl0ZXMsXHJcbiAgUmFkb25GbG9hdCxcclxuICBSYWRvbkludGVnZXIsXHJcbiAgUmFkb25NYXAsXHJcbiAgUmFkb25TdHJpbmcsXHJcbiAgUmFkb25PcGVyYXRvcnMsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIlxyXG5cclxuY29uc3QgV0lUTkVUX0FTU0VUU19QQVRIID0gcHJvY2Vzcy5lbnYuV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCB8fCBcIi4uLy4uLy4uLy4uLy4uL3dpdG5ldC9hc3NldHNcIlxyXG5cclxuZXhwb3J0IHsgZXhlY1JhZG9uQnl0ZWNvZGUgfSBmcm9tIFwiLi4vLi4vYmluL2hlbHBlcnNcIlxyXG5cclxuLyoqXHJcbiAqIERlY29kZXMgYSBSYWRvbiBzY3JpcHQgb3V0IGZyb20gYSBQcm90b2J1Zi1zZXJpYWxpemVkIGJ5dGVjb2RlLlxyXG4gKiBAcGFyYW0gaGV4U3RyaW5nIFJhZG9uIHNjcmlwdCBieXRlY29kZS5cclxuICogQHJldHVybnMgUmFkb24gc2NyaXB0IG9iamVjdCAoaS5lLiBjaGFpbiBvZiBSYWRvbiBvcGVyYXRvcnMgd2l0aCBhIGRldGVybWluaXN0aWMgb3V0cHV0IFJhZG9uIHR5cGUpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmFkb25TY3JpcHQoYnl0ZWNvZGU6IGFueSk6IFJhZG9uQW55IHtcclxuICBsZXQgYnVmZmVyXHJcbiAgaWYgKGlzSGV4U3RyaW5nKGJ5dGVjb2RlKSkge1xyXG4gICAgYnVmZmVyID0gZnJvbUhleFN0cmluZyhieXRlY29kZSlcclxuICB9IGVsc2UgaWYgKGJ5dGVjb2RlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xyXG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20oYnl0ZWNvZGUpXHJcbiAgfSBlbHNlIGlmIChieXRlY29kZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xyXG4gICAgYnVmZmVyID0gYnl0ZWNvZGVcclxuICB9IGVsc2Uge1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgUmFkb25TY3JpcHQgYnl0ZWNvZGUgZm9ybWF0OiAke2J5dGVjb2RlfWApXHJcbiAgfVxyXG4gIGNvbnN0IGFycmF5ID0gY2JvckRlY29kZShidWZmZXIpXHJcbiAgcmV0dXJuIHBhcnNlU2NyaXB0KGFycmF5KVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZsYXR0ZW5SYWRvbkFzc2V0czxUIGV4dGVuZHMgUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSB8IFJhZG9uTW9kYWwgfCBSYWRvblJldHJpZXZhbD4oXHJcbiAgdHJlZTogYW55LFxyXG4gIHR5cGU/OiB7IG5ldyhzcGVjczogYW55KTogVDsgfSxcclxuICBoZWFkZXJzPzogc3RyaW5nW11cclxuKTogQXJyYXk8eyBrZXk6IHN0cmluZywgYXJ0aWZhY3Q6IGFueSB9PiB7XHJcbiAgaWYgKCFoZWFkZXJzKSBoZWFkZXJzID0gW11cclxuICBjb25zdCBlbnRyaWVzOiBBcnJheTx7IGtleTogc3RyaW5nLCBhcnRpZmFjdDogYW55IH0+ID0gW11cclxuICBmb3IgKGNvbnN0IGtleSBpbiB0cmVlKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICh0eXBlICYmIHRyZWVba2V5XSBpbnN0YW5jZW9mIHR5cGUpXHJcbiAgICAgIHx8ICghdHlwZSAmJiAoXHJcbiAgICAgICAgICB0cmVlW2tleV0gaW5zdGFuY2VvZiBSYWRvblJlcXVlc3RcclxuICAgICAgICAgIHx8IHRyZWVba2V5XSBpbnN0YW5jZW9mIFJhZG9uVGVtcGxhdGVcclxuICAgICAgICAgIHx8IHRyZWVba2V5XSBpbnN0YW5jZW9mIFJhZG9uTW9kYWxcclxuICAgICAgICAgIHx8IHRyZWVba2V5XSBpbnN0YW5jZW9mIFJhZG9uUmV0cmlldmFsXHJcbiAgICAgICkpXHJcbiAgICApIHtcclxuICAgICAgZW50cmllcy5wdXNoKHtcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgYXJ0aWZhY3Q6IHRyZWVba2V5XSxcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRyZWVba2V5XSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBlbnRyaWVzLnB1c2goLi4uZmxhdHRlblJhZG9uQXNzZXRzKFxyXG4gICAgICAgIHRyZWVba2V5XSxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIFsuLi5oZWFkZXJzLCBrZXldXHJcbiAgICAgICkpXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBlbnRyaWVzXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVJhZG9uQXNzZXQ8VCBleHRlbmRzIFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUgfCBSYWRvbk1vZGFsIHwgUmFkb25SZXRyaWV2YWw+KHNwZWNzOiB7XHJcbiAgYXJ0aWZhY3Q6IHN0cmluZyxcclxuICBhc3NldHM/OiBhbnksXHJcbiAgdHlwZT86IHsgbmV3IChzcGVjczogYW55KTogVDsgfSxcclxufSk6IFQge1xyXG4gIGNvbnN0IHN0dWZmID0gKFxyXG4gICAgc3BlY3M/LmFzc2V0cyBcclxuICAgICAgPyBmbGF0dGVuUmFkb25Bc3NldHMoc3BlY3MuYXNzZXRzLCBzcGVjcz8udHlwZSkgXHJcbiAgICAgIDogbG9hZE1vZHVsZUFzc2V0cyh7IGZsYXR0ZW5lZDogdHJ1ZSwgdHlwZTogc3BlY3M/LnR5cGUgfSlcclxuICApO1xyXG4gIGNvbnN0IGZvdW5kID0gc3R1ZmYuZmluZCgoZW50cnk6IHsga2V5OiBzdHJpbmcsIGFydGlmYWN0OiBhbnkgfSkgPT4gZW50cnkua2V5ID09PSBzcGVjcy5hcnRpZmFjdClcclxuICBpZiAoZm91bmQ/LmFydGlmYWN0KSB7XHJcbiAgICByZXR1cm4gZm91bmQuYXJ0aWZhY3RcclxuICB9IGVsc2Uge1xyXG4gICAgdGhyb3cgRXJyb3IoYFJhZG9uIGFzc2V0IFwiJHtzcGVjcy5hcnRpZmFjdH1cIiBub3QgYXZhaWxhYmxlLmApXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU2VhcmNoIFdpdG5ldCBSYWRvbiBhc3NldHMgZGVjbGFyZWQgb3IgaW1wb3J0ZWQgd2l0aGluIGN1cnJlbnQgcmVwb3NpdG9yeSwgXHJcbiAqIHdob3NlIG5hbWVzIGNvbXBsaWVzIHdpdGggdGhlIHByb3ZpZGVkIGBwYXR0ZXJuYCBhbmQgYGZpbHRlckZuYC4gXHJcbiAqIElmIG5vIGBmaWx0ZXJGbmAgaXMgc3BlY2lmaWVkLCBzZWFyY2ggd2lsbCBpbmNsdWRlIGFzc2V0cyB3aG9zZSBuYW1lcyBcclxuICogYXJlIHN1ZmZpeGVkIGJ5IGdpdmVuIGBwYXR0ZXJuYCAoY2FzZSBpbnNlbnNpdGl2ZSkuXHJcbiAqIEBwYXJhbSBvcHRpb25zIFNlYXJjaCBvcHRpb25zXHJcbiAqIEBwYXJhbSBmaWx0ZXJGbiBGaWx0ZXJpbmcgZnVuY3Rpb24uXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIFJhZG9uIGFzc2V0cyBvZiB0aGUgc3BlY2lmaWVkIGtpbmQgY29tcGx5aW5nIHdpdGggdGhlIHNlYXJjaCBwYXR0ZXJuLiBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hSYWRvbkFzc2V0czxUIGV4dGVuZHMgUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSB8IFJhZG9uTW9kYWwgfCBSYWRvblJldHJpZXZhbD4oXHJcbiAgb3B0aW9uczoge1xyXG4gICAgLyoqXHJcbiAgICAgKiBPYmplY3QgY29udGFpbmluZyBzdHJ1Y3R1cmVkIGhlcmlhcmNoeSBvZiBSYWRvbiBhc3NldHMuIElmIG5vdCBwcm92aWRlZCwgUmFkb24gYXNzZXRzIGRlY2xhcmVkIHdpdGhpbiBwcm9qZWN0J3MgZW52aXJvbm1lbnQuXHJcbiAgICAgKi9cclxuICAgIGFzc2V0cz86IGFueSxcclxuICAgIC8qKlxyXG4gICAgICogTGltaXRzIG51bWJlciBvZiByZXR1cm5lZCBSYWRvbiBhc3NldHMuXHJcbiAgICAgKi9cclxuICAgIGxpbWl0PzogbnVtYmVyLFxyXG4gICAgLyoqXHJcbiAgICAgKiBPZmZzZXRzIHJldHVybmVkIGFycmF5IG9mIFJhZG9uIGFzc2V0cy5cclxuICAgICAqL1xyXG4gICAgb2Zmc2V0PzogbnVtYmVyLFxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIHBhdHRlcm4gc2VhcmNoZWQgZm9yLlxyXG4gICAgICovXHJcbiAgICBwYXR0ZXJuOiBzdHJpbmcsXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmljIHR5cGUgb2YgUmFkb24gYXNzZXQgdG8gc2VhcmNoIGZvcjogYFJhZG9uUmVxdWVzdGAsIGBSYWRvblJlcXVlc3RgLCBgUmFkb25SZXRyaWV2YWxgIG9yIGBSYWRvbkNDRFJgLlxyXG4gICAgICovXHJcbiAgICB0eXBlPzogeyBuZXcgKHNwZWNzOiBhbnkpOiBUOyB9LFxyXG4gIH0sXHJcbiAgZmlsdGVyRm4/OiAoa2V5OiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZykgPT4gYm9vbGVhbixcclxuKTogQXJyYXk8W2tleTogc3RyaW5nLCBhcnRpZmFjdDogVF0+IHtcclxuICBjb25zdCBkZWZhdWx0RmlsdGVyID0gKGtleTogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpID0+IGtleS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHBhdHRlcm4udG9Mb3dlckNhc2UoKSlcclxuICBjb25zdCBzdHVmZiA9IChcclxuICAgIG9wdGlvbnM/LmFzc2V0c1xyXG4gICAgICA/IGZsYXR0ZW5SYWRvbkFzc2V0cyhvcHRpb25zLmFzc2V0cywgb3B0aW9ucz8udHlwZSlcclxuICAgICAgOiBsb2FkTW9kdWxlQXNzZXRzKHsgZmxhdHRlbmVkOiB0cnVlLCB0eXBlOiBvcHRpb25zPy50eXBlIH0pXHJcbiAgKTtcclxuICByZXR1cm4gKFxyXG4gICAgc3R1ZmZcclxuICAgICAgLmZpbHRlcigoZW50cnk6IHsga2V5OiBzdHJpbmcsIGFydGlmYWN0OiBhbnkgfSkgPT4gKGZpbHRlckZuIHx8IGRlZmF1bHRGaWx0ZXIpKGVudHJ5LmtleSwgb3B0aW9ucy5wYXR0ZXJuIHx8IFwiXCIpKVxyXG4gICAgICAuc2xpY2Uob3B0aW9ucz8ub2Zmc2V0IHx8IDAsIG9wdGlvbnM/LmxpbWl0KVxyXG4gICAgICAubWFwKChlbnRyeTogeyBrZXk6IHN0cmluZywgYXJ0aWZhY3Q6IGFueSB8IFQgfSkgPT4gW2VudHJ5LmtleSwgZW50cnkuYXJ0aWZhY3RdKVxyXG4gICk7XHJcbn1cclxuXHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAtLS0gSU5URVJOQUwgTUVUSE9EUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuZnVuY3Rpb24gbG9hZE1vZHVsZUFzc2V0czxUIGV4dGVuZHMgUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSB8IFJhZG9uTW9kYWwgfCBSYWRvblJldHJpZXZhbD4oXHJcbiAgb3B0aW9uczoge1xyXG4gICAgLy8gbGVnYWN5PzogYm9vbGVhbixcclxuICAgIGZsYXR0ZW5lZD86IGJvb2xlYW4sXHJcbiAgICB0eXBlPzogeyBuZXcoc3BlY3M6IGFueSk6IFQ7IH0sXHJcbiAgfSxcclxuKTogYW55IHtcclxuICAvLyBjb25zdCBzdHVmZiA9IG9wdGlvbnM/LmxlZ2FjeSA/IHJlcXVpcmUoYCR7V0lUTkVUX0FTU0VUU19QQVRIfWApLmxlZ2FjeSA6IHtcclxuICAvLyAgIHJlcXVlc3RzOiByZXF1aXJlKGAke1dJVE5FVF9BU1NFVFNfUEFUSH0vcmVxdWVzdHNgKSxcclxuICAvLyAgIHRlbXBsYXRlczogcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9L3RlbXBsYXRlc2ApLFxyXG4gIC8vICAgcmV0cmlldmFsczogcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9L3JldHJpZXZhbHNgKSxcclxuICAvLyB9O1xyXG4gIGNvbnN0IHN0dWZmID0gcmVxdWlyZShgJHtXSVRORVRfQVNTRVRTX1BBVEh9YClcclxuICByZXR1cm4gb3B0aW9ucz8uZmxhdHRlbmVkID8gZmxhdHRlblJhZG9uQXNzZXRzKHN0dWZmLCBvcHRpb25zPy50eXBlKSA6IHN0dWZmXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlU2NyaXB0KGFycmF5OiBhbnksIHNjcmlwdD86IGFueSk6IGFueSB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XHJcbiAgICBhcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgIHNjcmlwdCA9IHBhcnNlU2NyaXB0T3BlcmF0b3Ioc2NyaXB0LCBpdGVtWzBdLCAuLi5pdGVtLnNsaWNlKDEpKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNjcmlwdCA9IHBhcnNlU2NyaXB0T3BlcmF0b3Ioc2NyaXB0LCBpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHNjcmlwdFxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gcGFyc2VTY3JpcHRPcGVyYXRvcihzY3JpcHQsIGFycmF5KVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VTY3JpcHRPcGVyYXRvcihzY3JpcHQ6IGFueSwgb3Bjb2RlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xyXG4gIGlmICghc2NyaXB0KSB7XHJcbiAgICBjb25zdCBmb3VuZCA9IE9iamVjdC5lbnRyaWVzKHtcclxuICAgICAgXCIxMFwiOiBSYWRvbkFycmF5LFxyXG4gICAgICBcIjIwXCI6IFJhZG9uQm9vbGVhbixcclxuICAgICAgXCIzMFwiOiBSYWRvbkJ5dGVzLFxyXG4gICAgICBcIjQwXCI6IFJhZG9uSW50ZWdlcixcclxuICAgICAgXCI1MFwiOiBSYWRvbkZsb2F0LFxyXG4gICAgICBcIjYwXCI6IFJhZG9uTWFwLFxyXG4gICAgICBcIjcwXCI6IFJhZG9uU3RyaW5nLFxyXG4gICAgfSkuZmluZChlbnRyeSA9PiBlbnRyeVswXSA9PT0gKHBhcnNlSW50KG9wY29kZSkgJiAweGYwKS50b1N0cmluZygxNikpXHJcbiAgICBpZiAoZm91bmQpIHtcclxuICAgICAgc2NyaXB0ID0gbmV3IGZvdW5kWzFdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYHVua25vd24gUmFkb24gb3BlcmF0b3I6ICR7b3Bjb2RlfWApXHJcbiAgICB9XHJcbiAgfVxyXG4gIGlmIChvcGNvZGUpIHtcclxuICAgIGxldCBvcGVyYXRvciA9IFJhZG9uT3BlcmF0b3JzW29wY29kZV0uc3BsaXQoLyg/PVtBLVpdKS8pLnNsaWNlKDEpLmpvaW4oXCJcIilcclxuICAgIG9wZXJhdG9yID0gb3BlcmF0b3IuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBvcGVyYXRvci5zbGljZSgxKVxyXG4gICAgc3dpdGNoIChvcGVyYXRvcikge1xyXG4gICAgICBjYXNlIFwiZmlsdGVyXCI6IGNhc2UgXCJtYXBcIjogY2FzZSBcInNvcnRcIjogY2FzZSBcImFsdGVyXCI6XHJcbiAgICAgICAgY29uc3QgaW5uZXJTY3JpcHQgPSBwYXJzZVNjcmlwdChhcmdzKVxyXG4gICAgICAgIHJldHVybiBzY3JpcHRbb3BlcmF0b3JdKGlubmVyU2NyaXB0LCAuLi5hcmdzLnNsaWNlKDEpKTtcclxuXHJcbiAgICAgIC8vIGNhc2UgXCJhbHRlclwiOlxyXG4gICAgICAvLyAgIHJldHVybiBzY3JpcHRbb3BlcmF0b3JdKGFyZ3NbMF0sIHBhcnNlU2NyaXB0KGFyZ3NbMV0sIC4uLmFyZ3Muc2xpY2UoMikpKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHNjcmlwdFtvcGVyYXRvcl0oYXJncylcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -28,6 +28,12 @@ export interface IJsonRpcProvider {
28
28
  signer?: PublicKeyHashString;
29
29
  }): Promise<Array<UtxoMetadata>>;
30
30
  getValueTransfer(txHash: Hash, mode?: string): Promise<any>;
31
+ searchDataRequests(radHash: Hash, options?: {
32
+ limit?: number;
33
+ offset?: number;
34
+ mode?: GetDataRequestMode;
35
+ reverse?: boolean;
36
+ }): Promise<Array<GetDataRequestFullReport | GetDataRequestEtherealReport>>;
31
37
  sendRawTransaction(tx: any): Promise<boolean>;
32
38
  }
33
39
  export declare class JsonRpcProviderError extends Error {
@@ -90,6 +96,12 @@ export declare class JsonRpcProvider implements IJsonRpcProvider {
90
96
  fromSigner?: PublicKeyHashString;
91
97
  }): Promise<Array<UtxoMetadata>>;
92
98
  getValueTransfer(txHash: Hash, mode?: string, force?: boolean): Promise<any>;
99
+ searchDataRequests(radHash: Hash, options?: {
100
+ limit?: number;
101
+ offset?: number;
102
+ mode?: GetDataRequestMode;
103
+ reverse?: boolean;
104
+ }): Promise<Array<GetDataRequestEtherealReport | GetDataRequestFullReport>>;
93
105
  sendRawTransaction(transaction: any): Promise<boolean>;
94
106
  supplyInfo(): Promise<SupplyInfo>;
95
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/provider.ts"],"names":[],"mappings":"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"}
@@ -326,6 +326,16 @@ class JsonRpcProvider {
326
326
  force
327
327
  });
328
328
  }
329
+ async searchDataRequests(radHash, options) {
330
+ return this
331
+ .callApiMethod(types_2.Methods.SearchDataRequests, {
332
+ radHash,
333
+ limit: options?.limit,
334
+ offset: options?.offset,
335
+ reverse: options?.reverse
336
+ })
337
+ .then(async (entries) => Promise.all(entries.map((entry) => this.getDataRequest(entry[1], options?.mode || "ethereal", true))));
338
+ }
329
339
  /// ---------------------------------------------------------------------------------------------------------------
330
340
  async sendRawTransaction(transaction) {
331
341
  return this.callApiMethod(types_2.Methods.Inventory, { transaction });
@@ -337,4 +347,4 @@ class JsonRpcProvider {
337
347
  }
338
348
  exports.JsonRpcProvider = JsonRpcProvider;
339
349
  JsonRpcProvider.receipts = {};
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBc0Q7QUFDdEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLDJDQUE4QztBQUM5QyxNQUFNLFNBQVMsR0FBRyxpQkFBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUUzRCwyQ0FBb0Y7QUFFcEYsZ0RBQWlDO0FBRWpDLG1DQU9nQjtBQStCaEIsTUFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBSTNDLFlBQVksTUFBYyxFQUFFLE1BQWEsRUFBRSxLQUFXO1FBQ2xELEtBQUssQ0FBQyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3hFLE9BQU8sS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDO0NBQ0o7QUFYRCxvREFXQztBQUVELE1BQWEsZUFBZTtJQVN4Qjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBWTtRQUM3QixPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksMEJBQTBCLENBQUMsQ0FB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LEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLEdBQUcsSUFBSTtZQUNQLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ1osQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFZLEVBQUUsSUFBYSxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBTSxlQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDckQsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUs7U0FDUixDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsbUhBQW1IO0lBQzVHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxXQUFnQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQVUsZUFBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUVELG1CQUFtQjtJQUNaLEtBQUssQ0FBQyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBYSxlQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDaEUsQ0FBQzs7QUFsVUwsMENBbVVDO0FBL1RpQix3QkFBUSxHQUFxQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZhdWx0IGFzIGF4aW9zLCBBeGlvc0hlYWRlcnMgfSBmcm9tIFwiYXhpb3NcIlxyXG5jb25zdCBqc29uQmlnID0gcmVxdWlyZSgnanNvbi1iaWdpbnQnKTtcclxuaW1wb3J0IHsgUm9vdCBhcyBQcm90b1Jvb3QgfSBmcm9tIFwicHJvdG9idWZqc1wiXHJcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihyZXF1aXJlKFwiLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpKSBcclxuY29uc3QgcHJvdG9CdWYgPSBwcm90b1Jvb3QubG9va3VwVHlwZShcIkNvbnNlbnN1c0NvbnN0YW50c1wiKVxyXG5cclxuaW1wb3J0IHsgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoU3RyaW5nLCBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tIFwiLi4vY3J5cHRvL3R5cGVzXCJcclxuaW1wb3J0IHsgRXBvY2gsIEhhc2gsIE5ldHdvcmssIFV0eG9NZXRhZGF0YSB9IGZyb20gXCIuLi90eXBlc1wiXHJcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuLi91dGlsc1wiXHJcblxyXG5pbXBvcnQge1xyXG4gICAgQmFsYW5jZSwgQmFsYW5jZTIsIEJsb2NrLCBDb25zZW5zdXNDb25zdGFudHMsIFxyXG4gICAgR2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0LCBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0LCBHZXREYXRhUmVxdWVzdE1vZGUsXHJcbiAgICBNZW1wb29sLCBNZXRob2RzLCBQZWVyQWRkciwgUHJpb3JpdGllcywgUHJvdG9jb2xJbmZvLCBcclxuICAgIFF1ZXJ5U3Rha2VzLCBRdWVyeVN0YWtpbmdQb3dlcnMsXHJcbiAgICBUcmFuc2FjdGlvblJlcG9ydCwgU2lnbmFsaW5nSW5mbywgU3Rha2VFbnRyeSwgU3Rha2luZ1Bvd2VyLCBcclxuICAgIFN1cGVyYmxvY2tSZXBvcnQsIFN1cHBseUluZm8sIFN5bmNTdGF0dXMsIFV0eG9JbmZvLFxyXG59IGZyb20gXCIuL3R5cGVzXCJcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25ScGNQcm92aWRlciB7XHJcbiAgICBuZXR3b3JrPzogTmV0d29yaztcclxuICAgIG5ldHdvcmtJZD86IG51bWJlcjtcclxuICAgIFxyXG4gICAgYmxvY2tzKHNpbmNlOiBFcG9jaCwgbGltaXQ6IG51bWJlcik6IFByb21pc2U8QXJyYXk8W251bWJlciwgSGFzaC8qLCBQdWJsaWNLZXlIYXNoU3RyaW5nKi9dPj47XHJcbiAgICBjb25zdGFudHMoKTogUHJvbWlzZTxDb25zZW5zdXNDb25zdGFudHM+O1xyXG4gICAgaG9sZGVycyhsaW1pdD86IG51bWJlcik6IFByb21pc2U8UmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIEJhbGFuY2UyPj4gXHJcbiAgICBtZW1wb29sKCk6IFByb21pc2U8TWVtcG9vbD47XHJcbiAgICBwb3dlcnMocGFyYW1zPzogUXVlcnlTdGFraW5nUG93ZXJzKTogUHJvbWlzZTxBcnJheTxTdGFraW5nUG93ZXI+PjtcclxuICAgIHByaW9yaXRpZXMoKTogUHJvbWlzZTxQcmlvcml0aWVzPjtcclxuICAgIHByb3RvY29sSW5mbygpOiBQcm9taXNlPFByb3RvY29sSW5mbz47XHJcbiAgICBzdGFrZXMocGFyYW1zOiBRdWVyeVN0YWtlcyk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+OyBcclxuICAgIHN1cHBseUluZm8oKTogUHJvbWlzZTxTdXBwbHlJbmZvPjtcclxuICAgIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+O1xyXG4gICAgd2lwcygpOiBQcm9taXNlPFNpZ25hbGluZ0luZm8+O1xyXG4gICAgd2l0bmVzc2VzKCk6IFByb21pc2U8bnVtYmVyPjtcclxuXHJcbiAgICBnZXRCYWxhbmNlKHBraDogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8QmFsYW5jZTI+O1xyXG4gICAgZ2V0QmxvY2soYmxvY2tIYXNoOiBIYXNoLCBzaG93VHJhbnNhY3Rpb25IYXNoZXM/OiBib29sZWFuKTogUHJvbWlzZTxCbG9jaz47XHJcbiAgICBnZXREYXRhUmVxdWVzdChkclR4SGFzaDogSGFzaCwgbW9kZT86IEdldERhdGFSZXF1ZXN0TW9kZSk6IFByb21pc2U8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD47XHJcbiAgICBnZXRTdXBlcmJsb2NrKGVwb2NoOiBFcG9jaCk6IFByb21pc2U8U3VwZXJibG9ja1JlcG9ydD47XHJcbiAgICBnZXRUcmFuc2FjdGlvbih0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVwb3J0PjtcclxuICAgIGdldFRyYW5zYWN0aW9uUmVjZWlwdCh0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XHJcbiAgICBnZXRVdHhvcyhwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsIGZpbHRlcj86IHsgbWluVmFsdWU/OiBiaWdpbnQsIHNpZ25lcj86IFB1YmxpY0tleUhhc2hTdHJpbmcgfSk6IFByb21pc2U8QXJyYXk8VXR4b01ldGFkYXRhPj47XHJcbiAgICBnZXRWYWx1ZVRyYW5zZmVyKHR4SGFzaDogSGFzaCwgbW9kZT86IHN0cmluZyk6IFByb21pc2U8YW55PjtcclxuICAgICAgICBcclxuICAgIHNlbmRSYXdUcmFuc2FjdGlvbih0eDogYW55KTogUHJvbWlzZTxib29sZWFuPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEpzb25ScGNQcm92aWRlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gICAgcmVhZG9ubHkgZXJyb3I/OiBhbnk7XHJcbiAgICByZWFkb25seSBtZXRob2Q6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHBhcmFtczogYW55W107XHJcbiAgICBjb25zdHJ1Y3RvcihtZXRob2Q6IHN0cmluZywgcGFyYW1zOiBhbnlbXSwgZXJyb3I/OiBhbnkpIHtcclxuICAgICAgICBzdXBlcihgJHttZXRob2R9KCR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX0pOiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX0pYClcclxuICAgICAgICBkZWxldGUgZXJyb3I/LnN0YWNrXHJcbiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yXHJcbiAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2RcclxuICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtc1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSnNvblJwY1Byb3ZpZGVyIGltcGxlbWVudHMgSUpzb25ScGNQcm92aWRlciB7XHJcbiAgICBcclxuICAgIHB1YmxpYyByZWFkb25seSBlbmRwb2ludHM6IHN0cmluZ1tdXHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWNlaXB0czogUmVjb3JkPEhhc2gsIFRyYW5zYWN0aW9uUmVjZWlwdD4gPSB7fTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2NvbnN0YW50cz86IENvbnNlbnN1c0NvbnN0YW50c1xyXG4gICAgcHJvdGVjdGVkIF9oZWFkZXJzOiBBeGlvc0hlYWRlcnM7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGEgSnNvblJwY1Byb3ZpZGVyIG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIGRlZmF1bHQgV2l0L1JQQyBlbmRwb2ludC5cclxuICAgICAqIERlZmF1bHRzIHRvIGh0dHBzOi8vcnBjLTAxLndpdG5ldC5pbyBpZiBubyBXSVRORVRfU0RLX1BST1ZJREVSX1VSTCBlbnZhciBpcyBzZXR0bGVkXHJcbiAgICAgKiBvbiB0aGUgZW52aXJvbm1lbnQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBmcm9tRW52KHVybD86IHN0cmluZyk6IFByb21pc2U8SnNvblJwY1Byb3ZpZGVyPiB7XHJcbiAgICAgICAgcmV0dXJuIEpzb25ScGNQcm92aWRlci5mcm9tVVJMKHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfU0RLX1BST1ZJREVSX1VSTCB8fCBcImh0dHBzOi8vcnBjLTAxLndpdG5ldC5pb1wiKVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhIEpzb25ScGNQcm92aWRlciBvYmplY3QgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgV2l0L1JQQyBlbmRwb2ludC5cclxuICAgICAqIEBwYXJhbSB1cmwgV2l0L1JQQyBlbmRwb2ludCBVUkwuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBmcm9tVVJMKHVybDogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcclxuICAgICAgICBjb25zdCBwcm92aWRlciA9IG5ldyBKc29uUnBjUHJvdmlkZXIodXJsKVxyXG4gICAgICAgIHJldHVybiBwcm92aWRlci5jb25zdGFudHMoKS50aGVuKCgpID0+IHByb3ZpZGVyKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHVybD86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzID0gW11cclxuICAgICAgICBpZiAodXJsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgdXJscyA9IHVybC5yZXBsYWNlQWxsKCcsJywgJzsnKS5zcGxpdCgnOycpXHJcbiAgICAgICAgICAgIHVybHMuZm9yRWFjaCh1cmwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW3NjaGVtYSwgXSA9IHV0aWxzLnBhcnNlVVJMKHVybClcclxuICAgICAgICAgICAgICAgIGlmICghc2NoZW1hLnN0YXJ0c1dpdGgoXCJodHRwOi8vXCIpICYmICFzY2hlbWEuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYFdpdG5ldC5Kc29uUnBjUHJvdmlkZXI6IHVuc3VwcG9ydGVkIFVSTCBzY2hlbWEgJHtzY2hlbWF9YClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5lbmRwb2ludHMgPSB1cmxzXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbmRwb2ludHMucHVzaChwcm9jZXNzLmVudi5XSVRORVRfU0RLX1BST1ZJREVSX1VSTCB8fCBcImh0dHBzOi8vcnBjLTAxLndpdG5ldC5pb1wiKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9oZWFkZXJzID0gbmV3IEF4aW9zSGVhZGVycyh7IFxyXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbmV0d29yaygpOiBOZXR3b3JrIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uc3RhbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25zdGFudHMuYm9vdHN0cmFwcGluZ19jb21taXR0ZWVbMF0uc3RhcnRzV2l0aCgnd2l0JykgPyBcIm1haW5uZXRcIjogXCJ0ZXN0bmV0XCJcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbmV0d29ya0lkKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NvbnN0YW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBvYmo6IGFueSA9IHt9XHJcbiAgICAgICAgICAgIG9iai5hY3Rpdml0eVBlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5hY3Rpdml0eV9wZXJpb2Q7XHJcbiAgICAgICAgICAgIG9iai5ib290c3RyYXBIYXNoID0geyBTSEEyNTY6IEFycmF5LmZyb20odXRpbHMuZnJvbUhleFN0cmluZyh0aGlzLl9jb25zdGFudHMuYm9vdHN0cmFwX2hhc2gpKSB9XHJcbiAgICAgICAgICAgIG9iai5ib290c3RyYXBwaW5nQ29tbWl0dGVlID0gdGhpcy5fY29uc3RhbnRzLmJvb3RzdHJhcHBpbmdfY29tbWl0dGVlXHJcbiAgICAgICAgICAgIG9iai5jaGVja3BvaW50WmVyb1RpbWVzdGFtcCA9IHRoaXMuX2NvbnN0YW50cy5jaGVja3BvaW50X3plcm9fdGltZXN0YW1wXHJcbiAgICAgICAgICAgIG9iai5jaGVja3BvaW50c1BlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5jaGVja3BvaW50c19wZXJpb2RcclxuICAgICAgICAgICAgb2JqLmNvbGxhdGVyYWxBZ2UgPSB0aGlzLl9jb25zdGFudHMuY29sbGF0ZXJhbF9hZ2VcclxuICAgICAgICAgICAgb2JqLmNvbGxhdGVyYWxNaW5pbXVtID0gdGhpcy5fY29uc3RhbnRzLmNvbGxhdGVyYWxfbWluaW11bVxyXG4gICAgICAgICAgICBvYmouZXBvY2hzV2l0aE1pbmltdW1EaWZmaWN1bHR5ID0gdGhpcy5fY29uc3RhbnRzLmVwb2Noc193aXRoX21pbmltdW1fZGlmZmljdWx0eVxyXG4gICAgICAgICAgICBvYmouZXh0cmFSb3VuZHMgPSB0aGlzLl9jb25zdGFudHMuZXh0cmFfcm91bmRzXHJcbiAgICAgICAgICAgIG9iai5nZW5lc2lzSGFzaCA9IHsgU0hBMjU2OiBBcnJheS5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcodGhpcy5fY29uc3RhbnRzLmdlbmVzaXNfaGFzaCkpIH1cclxuICAgICAgICAgICAgb2JqLmhhbHZpbmdQZXJpb2QgPSB0aGlzLl9jb25zdGFudHMuaGFsdmluZ19wZXJpb2RcclxuICAgICAgICAgICAgb2JqLmluaXRpYWxCbG9ja1Jld2FyZCA9IHRoaXMuX2NvbnN0YW50cy5pbml0aWFsX2Jsb2NrX3Jld2FyZFxyXG4gICAgICAgICAgICBvYmoubWF4RHJXZWlnaHQgPSB0aGlzLl9jb25zdGFudHMubWF4X2RyX3dlaWdodFxyXG4gICAgICAgICAgICBvYmoubWF4VnRXZWlnaHQgPSB0aGlzLl9jb25zdGFudHMubWF4X3Z0X3dlaWdodFxyXG4gICAgICAgICAgICBpZiAodGhpcy5fY29uc3RhbnRzLm1pbmltdW1fZGlmZmljdWx0eSA+IDApIG9iai5taW5pbXVtRGlmZmljdWx0eSA9IHRoaXMuX2NvbnN0YW50cy5taW5pbXVtX2RpZmZpY3VsdHlcclxuICAgICAgICAgICAgb2JqLm1pbmluZ0JhY2t1cEZhY3RvciA9IHRoaXMuX2NvbnN0YW50cy5taW5pbmdfYmFja3VwX2ZhY3RvclxyXG4gICAgICAgICAgICBvYmoubWluaW5nUmVwbGljYXRpb25GYWN0b3IgPSB0aGlzLl9jb25zdGFudHMubWluaW5nX3JlcGxpY2F0aW9uX2ZhY3RvclxyXG4gICAgICAgICAgICBvYmoucmVwdXRhdGlvbkV4cGlyZUFscGhhRGlmZiA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2V4cGlyZV9hbHBoYV9kaWZmXHJcbiAgICAgICAgICAgIG9iai5yZXB1dGF0aW9uSXNzdWFuY2UgPSB0aGlzLl9jb25zdGFudHMucmVwdXRhdGlvbl9pc3N1YW5jZVxyXG4gICAgICAgICAgICBvYmoucmVwdXRhdGlvbklzc3VhbmNlU3RvcCA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2lzc3VhbmNlX3N0b3BcclxuICAgICAgICAgICAgb2JqLnJlcHV0YXRpb25QZW5hbGl6YXRpb25GYWN0b3IgPSB0aGlzLl9jb25zdGFudHMucmVwdXRhdGlvbl9wZW5hbGl6YXRpb25fZmFjdG9yXHJcbiAgICAgICAgICAgIG9iai5zdXBlcmJsb2NrQ29tbWl0dGVlRGVjcmVhc2luZ1BlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5zdXBlcmJsb2NrX2NvbW1pdHRlZV9kZWNyZWFzaW5nX3BlcmlvZFxyXG4gICAgICAgICAgICBvYmouc3VwZXJibG9ja0NvbW1pdHRlZURlY3JlYXNpbmdTdGVwID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfc3RlcFxyXG4gICAgICAgICAgICBvYmouc3VwZXJibG9ja1BlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5zdXBlcmJsb2NrX3BlcmlvZFxyXG4gICAgICAgICAgICBvYmouc3VwZXJibG9ja1NpZ25pbmdDb21taXR0ZWVTaXplID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfc2lnbmluZ19jb21taXR0ZWVfc2l6ZVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhvYmopXHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwcm90b0J1Zi5mcm9tT2JqZWN0KG9iailcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2cobWVzc2FnZSlcclxuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gcHJvdG9CdWYuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpXHJcbiAgICAgICAgICAgIGNvbnN0IGhhc2ggPSB1dGlscy50b0hleFN0cmluZyh1dGlscy5zaGEyNTYoYnVmZmVyKSkgXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGhhc2gpXHJcbiAgICAgICAgICAgIGNvbnN0IGhleCA9IGhhc2guc3Vic3RyaW5nKDAsIDQpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChoZXgsIDE2KVxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwcm90ZWN0ZWQgbmV4dFVSTCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLmVuZHBvaW50cy5sZW5ndGgpXVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaU1ldGhvZDxUPihtZXRob2Q6IHN0cmluZywgcGFyYW1zPzogQXJyYXk8YW55PiB8IGFueSApOiBQcm9taXNlPEVycm9yIHwgYW55PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5uZXh0VVJMKClcclxuICAgICAgICByZXR1cm4gYXhpb3NcclxuICAgICAgICAgICAgLnBvc3QoXHJcbiAgICAgICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAganNvbnJwYzogJzIuMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICsgbmV3IERhdGUoKSxcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2QsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybVJlc3BvbnNlOiBmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4ganNvbkJpZygpLnBhcnNlKHJlc3BvbnNlKSB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICkudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSnNvblJwY1Byb3ZpZGVyRXJyb3IobWV0aG9kLCBwYXJhbXMsIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gcmVzcG9uc2U/LmRhdGE/LnJlc3VsdCBhcyBUO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgYmxvY2sgaGFzaGVzIHdpdGhpbiBnaXZlbiByYW5nZSwgYXMga25vd24gYnkgdGhlIHByb3ZpZGVyLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNpbmNlIC0gRmlyc3QgZXBvY2ggZm9yIHdoaWNoIHRvIHJldHVybiBibG9jayBoYXNoZXMuIElmIG5lZ2F0aXZlLCByZXR1cm4gYmxvY2sgaGFzaGVzIGZyb20gdGhlIGxhc3QgbiBlcG9jaHMuXHJcbiAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gTnVtYmVyIG9mIGJsb2NrIGhhc2hlcyB0byByZXR1cm4uIElmIG5lZ2F0aXZlLCByZXR1cm4gdGhlIGxhc3QgbiBibG9jayBoYXNoZXMgZnJvbSB0aGlzIGVwb2NoIHJhbmdlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgYmxvY2tzKHNpbmNlOiBudW1iZXIgPSAtMSwgbGltaXQ6IG51bWJlciA9IDEsKTogUHJvbWlzZTxBcnJheTxbbnVtYmVyLCBIYXNoXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFtOdW1iZXIsIEhhc2hdPihNZXRob2RzLkdldEJsb2NrQ2hhaW4sIFtzaW5jZSwgbGltaXQsIF0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IGNvbnNlbnN1cyBjb25zdGFudHMgdXNlZCBieSB0aGUgbm9kZVxyXG4gICAgcHVibGljIGFzeW5jIGNvbnN0YW50cygpOiBQcm9taXNlPENvbnNlbnN1c0NvbnN0YW50cz4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fY29uc3RhbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgICAgICAuY2FsbEFwaU1ldGhvZDxDb25zZW5zdXNDb25zdGFudHM+KE1ldGhvZHMuR2V0Q29uc2Vuc3VzQ29uc3RhbnRzKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oKGNvbnN0YW50czogQ29uc2Vuc3VzQ29uc3RhbnRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uc3RhbnRzID0gY29uc3RhbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50c1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uc3RhbnRzXHJcbiAgICAgICAgfSAgICBcclxuICAgIH1cclxuXHJcbiAgICAvLy8gR2V0IGxpbWl0ZWQgbGlzdCBvZiBjdXJyZW50bHkgdG9wIGhvbGRlcnMsIGFzIGtub3duIGJ5IHRoZSBwcm92aWRlci5cclxuICAgIHB1YmxpYyBhc3luYyBob2xkZXJzKG1pbkJhbGFuY2UgPSAwLCBtYXhCYWxhbmNlPzogbnVtYmVyKTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNcclxuICAgICAgICAgICAgLmNhbGxBcGlNZXRob2Q8UmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIEJhbGFuY2U+PihNZXRob2RzLkdldEJhbGFuY2UyLCB7XHJcbiAgICAgICAgICAgICAgICBhbGw6IHtcclxuICAgICAgICAgICAgICAgICAgICBtaW5CYWxhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLiBtYXhCYWxhbmNlID8geyBtYXhCYWxhbmNlIH0gOiB7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KS50aGVuKChiYWxhbmNlczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIEJhbGFuY2UyPikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJzZUNvbXBhcmUgPSAoYTogQmFsYW5jZTIsIGI6IEJhbGFuY2UyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYV90b3QgPSBhLmxvY2tlZCArIGEudW5sb2NrZWQgKyBhLnN0YWtlZFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJfdG90ID0gYi5sb2NrZWQgKyBiLnVubG9ja2VkICsgYi5zdGFrZWRcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYV90b3QgPCBiX3RvdCkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYV90b3QgPiBiX3RvdCkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGJhbGFuY2VzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYTogKHN0cmluZyB8IEJhbGFuY2UyKVtdLCBiOiAoc3RyaW5nIHwgQmFsYW5jZTIpW10pID0+IHJldmVyc2VDb21wYXJlKGFbMV0gYXMgQmFsYW5jZTIsIGJbMV0gYXMgQmFsYW5jZTIpKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCBsaXN0IG9mIGtub3duIHBlZXJzXHJcbiAgICBwdWJsaWMgYXN5bmMga25vd25QZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8UGVlckFkZHI+PihNZXRob2RzLktub3duUGVlcnMpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IGFsbCB0aGUgcGVuZGluZyB0cmFuc2FjdGlvbnNcclxuICAgIHB1YmxpYyBhc3luYyBtZW1wb29sKCk6IFByb21pc2U8TWVtcG9vbD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8TWVtcG9vbD4oTWV0aG9kcy5HZXRNZW1wb29sKTtcclxuICAgIH0gICAgXHJcbiAgICBcclxuICAgIC8vLyBHZXQgcHJpb3JpdHkgYW5kIHRpbWUtdG8tYmxvY2sgZXN0aW1hdGlvbnMgZm9yIGRpZmZlcmVudCBwcmlvcml0eSB0aWVycy5cclxuICAgIHB1YmxpYyBhc3luYyBwcmlvcml0aWVzKCk6IFByb21pc2U8UHJpb3JpdGllcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8UHJpb3JpdGllcz4oTWV0aG9kcy5Qcmlvcml0eSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCBpbmZvcm1hdGlvbiBhYm91dCBwcm90b2NvbCB2ZXJzaW9ucyBhbmQgd2hpY2ggdmVyc2lvbiBpcyBjdXJyZW50bHkgYmVpbmcgZW5mb3JjZWQuXHJcbiAgICBwdWJsaWMgYXN5bmMgcHJvdG9jb2xJbmZvKCk6IFByb21pc2U8UHJvdG9jb2xJbmZvPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxQcm90b2NvbEluZm8+KE1ldGhvZHMuUHJvdG9jb2wpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyBHZXQgYSBmdWxsIGxpc3Qgb2Ygc3Rha2luZyBwb3dlcnMgb3JkZXJlZCBieSByYW5rXHJcbiAgICBwdWJsaWMgYXN5bmMgcG93ZXJzKHF1ZXJ5PzogUXVlcnlTdGFraW5nUG93ZXJzKTogUHJvbWlzZTxBcnJheTxTdGFraW5nUG93ZXI+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxTdGFraW5nUG93ZXI+PihNZXRob2RzLlF1ZXJ5U3Rha2luZ1Bvd2VycywgcXVlcnkpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyBHZXQgYSBmdWxsIGxpc3Qgb2YgY3VycmVudCBzdGFrZSBlbnRyaWVzICBRdWVyeSB0aGUgYW1vdW50IG9mIG5hbm93aXRzIHN0YWtlZCBieSBhbiBhZGRyZXNzLlxyXG4gICAgcHVibGljIGFzeW5jIHN0YWtlcyhxdWVyeT86IFF1ZXJ5U3Rha2VzKTogUHJvbWlzZTxBcnJheTxTdGFrZUVudHJ5Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5jYWxsQXBpTWV0aG9kPEFycmF5PFN0YWtlRW50cnk+PihNZXRob2RzLlF1ZXJ5U3Rha2VzLCBxdWVyeSlcclxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyPy5lcnJvcj8ubWVzc2FnZSAmJiBlcnIuZXJyb3IubWVzc2FnZS5pbmRleE9mKFwibm90IHJlZ2lzdGVyZWRcIikgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCBub2RlIHN0YXR1c1xyXG4gICAgcHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxTeW5jU3RhdHVzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgYXN5bmMgd2lwcygpOiBQcm9taXNlPFNpZ25hbGluZ0luZm8+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFNpZ25hbGluZ0luZm8+KE1ldGhvZHMuU2lnbmFsaW5nSW5mbylcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgd2l0bmVzc2VzKF9zaW5jZT86IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICAgICAgLy8gdG9kbzogd2l0bmVzc2VzIGVzdGltYXRpb24gc2hvdWxkIGluc3RlYWQgYmUgY29tcHV0ZWQgaW4gcHJvcG9ydGlvbiB0b1xyXG4gICAgICAgIC8vICAgICAgIHJhdGlvIG9mIHZhbGlkYXRvcnMgdGhhdCBoYXZlIGhvbmVzdGx5IHdpdG5lc3NlZCBkYXRhIHJlcXVlc3RzXHJcbiAgICAgICAgLy8gICAgICAgdnMgdmFsaWRhdG9ycyB0aGF0IGhhdmUgaG9uZXN0bHkgd2l0bmVzc2VkIGRhdGEgcmVxdWVzdHMgYW5kXHJcbiAgICAgICAgLy8gICAgICAgbmV2ZXIgcmV2ZWFsZWQgXCJpIHBhc3NlZFwiIG91dCBvZiBtYWpvcml0eSwgXHJcbiAgICAgICAgLy8gICAgICAgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgZXBvY2hzLlxyXG4gICAgICAgIGxldCBjZW5zdXMgPSAwXHJcbiAgICAgICAgcmV0dXJuIHRoaXMgXHJcbiAgICAgICAgICAgIC5zdGFrZXMoeyBwYXJhbXM6IHsgZGlzdGluY3Q6IHRydWUgfX0pIC8vIHRvZG86IGltcGxlbWVudCBgY291bnRgIGZsYWcgb24gSUpzb25ScGNQcm92aWRlci5zdGFrZXMoKVxyXG4gICAgICAgICAgICAudGhlbihyZWNvcmRzID0+IHtcclxuICAgICAgICAgICAgICAgIGNlbnN1cyA9IHJlY29yZHMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3MoLTE2LCAxNikgLy8gdG9kbzogYmxvY2tzKCkgc2hvdWxkIHJldHVybiBlcG9jaCwgaGFzaCBhbmQgdmFsaWRhdG9yIHBraCBmb3IgZWFjaCBibG9ja1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihyZWNvcmRzID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChyZWNvcmRzLm1hcChyZWNvcmQgPT4gdGhpcy5nZXRCbG9jayhyZWNvcmRbMV0pKSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnRoZW4oYmxvY2tzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+ID0gW11cclxuICAgICAgICAgICAgICAgIGJsb2Nrcy5tYXAoYmxvY2sgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBraCA9IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoYmxvY2suYmxvY2tfc2lnLnB1YmxpY19rZXkpLmhhc2goKS50b0JlY2gzMih0aGlzLm5ldHdvcmspXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0b3JzLmluY2x1ZGVzKHBraCkpIHZhbGlkYXRvcnMucHVzaChwa2gpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKHRoaXMubmV0d29yayA9PT0gXCJ0ZXN0bmV0XCIgPyBjZW5zdXMgLyAyIDogY2Vuc3VzIC8gNClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8vIEdldCBiYWxhbmNlXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QmFsYW5jZShwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPEJhbGFuY2UyPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNcclxuICAgICAgICAgICAgLmNhbGxBcGlNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIsIHsgcGtoIH0pXHJcbiAgICAgICAgICAgIC50aGVuKChiYWxhbmNlOiBCYWxhbmNlMikgPT4gKHtcclxuICAgICAgICAgICAgICAgIGxvY2tlZDogQmlnSW50KGJhbGFuY2UubG9ja2VkKSxcclxuICAgICAgICAgICAgICAgIHN0YWtlZDogQmlnSW50KGJhbGFuY2Uuc3Rha2VkKSxcclxuICAgICAgICAgICAgICAgIHVubG9ja2VkOiBCaWdJbnQoYmFsYW5jZS51bmxvY2tlZCksXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEdldCBibG9jayBpbmZvIGJ5IGhhc2hcclxuICAgICAqIEBwYXJhbSB7SGFzaH0gYmxvY2tIYXNoIC0gSGFzaCBvZiB0aGUgYmxvY2sgdGhhdCB3ZSBhcmUgcXVlcnlpbmcuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNob3dUcmFuc2FjdGlvbkhhc2ggLSBXaGV0aGVyIHRvIGluY2x1ZGUgYW4gZXh0cmEgZmllbGQgY29udGFpbmluZyBhcnJheSBvZiB0cmFuc2FjdGlvbiBoYXNoZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBnZXRCbG9jayhcclxuICAgICAgICAgICAgYmxvY2tIYXNoOiBIYXNoLFxyXG4gICAgICAgICAgICBzaG93VHJhbnNhY3Rpb25IYXNoID0gZmFsc2UsXHJcbiAgICAgICAgKTogUHJvbWlzZTxCbG9jaz5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEJsb2NrPihNZXRob2RzLkdldEJsb2NrLCBbYmxvY2tIYXNoLCBzaG93VHJhbnNhY3Rpb25IYXNoLCBdKVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0RGF0YVJlcXVlc3QoZHJUeEhhc2g6IEhhc2gsIG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsIGZvcmNlID0gZmFsc2UpOiBQcm9taXNlPEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+KE1ldGhvZHMuR2V0RGF0YVJlcXVlc3QsIHtcclxuICAgICAgICAgICAgaGFzaDogZHJUeEhhc2gsXHJcbiAgICAgICAgICAgIG1vZGU6IG1vZGUgfHwgXCJmdWxsXCIsXHJcbiAgICAgICAgICAgIGZvcmNlXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCB0aGUgYmxvY2tzIHRoYXQgcGVydGFpbiB0byB0aGUgc3VwZXJibG9jayBpbmRleFxyXG4gICAgcHVibGljIGFzeW5jIGdldFN1cGVyYmxvY2soZXBvY2g6IEVwb2NoKTogUHJvbWlzZTxTdXBlcmJsb2NrUmVwb3J0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTdXBlcmJsb2NrUmVwb3J0PihNZXRob2RzLkdldFN1cGVyYmxvY2ssIHsgXCJibG9ja19lcG9jaFwiOiBlcG9jaCB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uKHR4SGFzaDogSGFzaCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXBvcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFRyYW5zYWN0aW9uUmVwb3J0PihNZXRob2RzLkdldFRyYW5zYWN0aW9uLCBbdHhIYXNoLCBdKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25SZWNlaXB0KHR4SGFzaDogSGFzaCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0PiB7XHJcbiAgICAgICAgLy8gdG9kbzogZmV0Y2gvdXBkYXRlIHJlY2VpcHQgZnJvbSBwcm92aWRlciwgaWYgbm90IGNhY2hlZFxyXG4gICAgICAgIHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbdHhIYXNoXVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IHV0eG9zXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBmaWx0ZXI/OiB7IG1pblZhbHVlPzogYmlnaW50IHwgc3RyaW5nLCBmcm9tU2lnbmVyPzogUHVibGljS2V5SGFzaFN0cmluZyB9KTogUHJvbWlzZTxBcnJheTxVdHhvTWV0YWRhdGE+PiB7XHJcbiAgICAgICAgaWYgKGZpbHRlcikge1xyXG4gICAgICAgICAgICBmaWx0ZXIubWluVmFsdWUgPSBmaWx0ZXI/Lm1pblZhbHVlPy50b1N0cmluZygpID8/IFwiMFwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgICAgICAgICAuY2FsbEFwaU1ldGhvZDxVdHhvSW5mbz4oTWV0aG9kcy5HZXRVdHhvSW5mbywgW3BraCwgLi4uKGZpbHRlciA/IFtmaWx0ZXJdOiBbXSldKVxyXG4gICAgICAgICAgICAudGhlbigocmVzdWx0OiBVdHhvSW5mbykgPT4gcmVzdWx0LnV0eG9zLm1hcCgodXR4bzogVXR4b01ldGFkYXRhKSA9PiAoeyBcclxuICAgICAgICAgICAgICAgIC4uLnV0eG8sIFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IEJpZ0ludCh1dHhvLnZhbHVlKVxyXG4gICAgICAgICAgICB9KSkpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldFZhbHVlVHJhbnNmZXIodHhIYXNoOiBIYXNoLCBtb2RlPzogc3RyaW5nLCBmb3JjZSA9IGZhbHNlKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPGFueT4oTWV0aG9kcy5HZXRWYWx1ZVRyYW5zZmVyLCB7XHJcbiAgICAgICAgICAgIGhhc2g6IHR4SGFzaCxcclxuICAgICAgICAgICAgbW9kZTogbW9kZSxcclxuICAgICAgICAgICAgZm9yY2VcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBwdWJsaWMgYXN5bmMgc2VuZFJhd1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPGJvb2xlYW4+KE1ldGhvZHMuSW52ZW50b3J5LCB7IHRyYW5zYWN0aW9uIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLy8vIEdldCBzdXBwbHkgaW5mb1xyXG4gICAgcHVibGljIGFzeW5jIHN1cHBseUluZm8oKTogUHJvbWlzZTxTdXBwbHlJbmZvPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTdXBwbHlJbmZvPihNZXRob2RzLkdldFN1cHBseUluZm8pXHJcbiAgICB9XHJcbn0iXX0=
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBc0Q7QUFDdEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLDJDQUE4QztBQUM5QyxNQUFNLFNBQVMsR0FBRyxpQkFBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUUzRCwyQ0FBb0Y7QUFFcEYsZ0RBQWlDO0FBRWpDLG1DQU9nQjtBQXNDaEIsTUFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBSTNDLFlBQVksTUFBYyxFQUFFLE1BQWEsRUFBRSxLQUFXO1FBQ2xELEtBQUssQ0FBQyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3hFLE9BQU8sS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDO0NBQ0o7QUFYRCxvREFXQztBQUVELE1BQWEsZUFBZTtJQVN4Qjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBWTtRQUM3QixPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksMEJBQTBCLENBQUMsQ0FB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VUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQWEsZUFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7O0FBdFZMLDBDQXVWQztBQW5WaUIsd0JBQVEsR0FBcUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBheGlvcywgQXhpb3NIZWFkZXJzIH0gZnJvbSBcImF4aW9zXCJcclxuY29uc3QganNvbkJpZyA9IHJlcXVpcmUoJ2pzb24tYmlnaW50Jyk7XHJcbmltcG9ydCB7IFJvb3QgYXMgUHJvdG9Sb290IH0gZnJvbSBcInByb3RvYnVmanNcIlxyXG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04ocmVxdWlyZShcIi4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSkgXHJcbmNvbnN0IHByb3RvQnVmID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJDb25zZW5zdXNDb25zdGFudHNcIilcclxuXHJcbmltcG9ydCB7IFB1YmxpY0tleSwgUHVibGljS2V5SGFzaFN0cmluZywgVHJhbnNhY3Rpb25SZWNlaXB0IH0gZnJvbSBcIi4uL2NyeXB0by90eXBlc1wiXHJcbmltcG9ydCB7IEVwb2NoLCBIYXNoLCBOZXR3b3JrLCBVdHhvTWV0YWRhdGEgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHNcIlxyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhbGFuY2UsIEJhbGFuY2UyLCBCbG9jaywgQ29uc2Vuc3VzQ29uc3RhbnRzLCBcclxuICAgIEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydCwgR2V0RGF0YVJlcXVlc3RNb2RlLFxyXG4gICAgTWVtcG9vbCwgTWV0aG9kcywgUGVlckFkZHIsIFByaW9yaXRpZXMsIFByb3RvY29sSW5mbywgXHJcbiAgICBRdWVyeVN0YWtlcywgUXVlcnlTdGFraW5nUG93ZXJzLFxyXG4gICAgVHJhbnNhY3Rpb25SZXBvcnQsIFNpZ25hbGluZ0luZm8sIFN0YWtlRW50cnksIFN0YWtpbmdQb3dlciwgXHJcbiAgICBTdXBlcmJsb2NrUmVwb3J0LCBTdXBwbHlJbmZvLCBTeW5jU3RhdHVzLCBVdHhvSW5mbyxcclxufSBmcm9tIFwiLi90eXBlc1wiXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElKc29uUnBjUHJvdmlkZXIge1xyXG4gICAgbmV0d29yaz86IE5ldHdvcms7XHJcbiAgICBuZXR3b3JrSWQ/OiBudW1iZXI7XHJcbiAgICBcclxuICAgIGJsb2NrcyhzaW5jZTogRXBvY2gsIGxpbWl0OiBudW1iZXIpOiBQcm9taXNlPEFycmF5PFtudW1iZXIsIEhhc2gvKiwgUHVibGljS2V5SGFzaFN0cmluZyovXT4+O1xyXG4gICAgY29uc3RhbnRzKCk6IFByb21pc2U8Q29uc2Vuc3VzQ29uc3RhbnRzPjtcclxuICAgIGhvbGRlcnMobGltaXQ/OiBudW1iZXIpOiBQcm9taXNlPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMj4+IFxyXG4gICAgbWVtcG9vbCgpOiBQcm9taXNlPE1lbXBvb2w+O1xyXG4gICAgcG93ZXJzKHBhcmFtcz86IFF1ZXJ5U3Rha2luZ1Bvd2Vycyk6IFByb21pc2U8QXJyYXk8U3Rha2luZ1Bvd2VyPj47XHJcbiAgICBwcmlvcml0aWVzKCk6IFByb21pc2U8UHJpb3JpdGllcz47XHJcbiAgICBwcm90b2NvbEluZm8oKTogUHJvbWlzZTxQcm90b2NvbEluZm8+O1xyXG4gICAgc3Rha2VzKHBhcmFtczogUXVlcnlTdGFrZXMpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PjsgXHJcbiAgICBzdXBwbHlJbmZvKCk6IFByb21pc2U8U3VwcGx5SW5mbz47XHJcbiAgICBzeW5jU3RhdHVzKCk6IFByb21pc2U8YW55PjtcclxuICAgIHdpcHMoKTogUHJvbWlzZTxTaWduYWxpbmdJbmZvPjtcclxuICAgIHdpdG5lc3NlcygpOiBQcm9taXNlPG51bWJlcj47XHJcblxyXG4gICAgZ2V0QmFsYW5jZShwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPEJhbGFuY2UyPjtcclxuICAgIGdldEJsb2NrKGJsb2NrSGFzaDogSGFzaCwgc2hvd1RyYW5zYWN0aW9uSGFzaGVzPzogYm9vbGVhbik6IFByb21pc2U8QmxvY2s+O1xyXG4gICAgZ2V0RGF0YVJlcXVlc3QoZHJUeEhhc2g6IEhhc2gsIG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUpOiBQcm9taXNlPEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+O1xyXG4gICAgZ2V0U3VwZXJibG9jayhlcG9jaDogRXBvY2gpOiBQcm9taXNlPFN1cGVyYmxvY2tSZXBvcnQ+O1xyXG4gICAgZ2V0VHJhbnNhY3Rpb24odHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlcG9ydD47XHJcbiAgICBnZXRUcmFuc2FjdGlvblJlY2VpcHQodHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+O1xyXG4gICAgZ2V0VXR4b3MocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nLCBmaWx0ZXI/OiB7IG1pblZhbHVlPzogYmlnaW50LCBzaWduZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nIH0pOiBQcm9taXNlPEFycmF5PFV0eG9NZXRhZGF0YT4+O1xyXG4gICAgZ2V0VmFsdWVUcmFuc2Zlcih0eEhhc2g6IEhhc2gsIG1vZGU/OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XHJcblxyXG4gICAgc2VhcmNoRGF0YVJlcXVlc3RzKHJhZEhhc2g6IEhhc2gsIG9wdGlvbnM/OiB7IFxyXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLCBcclxuICAgICAgICBvZmZzZXQ/OiBudW1iZXIsIFxyXG4gICAgICAgIG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsIFxyXG4gICAgICAgIHJldmVyc2U/OiBib29sZWFuIFxyXG4gICAgfSk6IFByb21pc2U8QXJyYXk8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD4+O1xyXG4gICAgICAgIFxyXG4gICAgc2VuZFJhd1RyYW5zYWN0aW9uKHR4OiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSnNvblJwY1Byb3ZpZGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICByZWFkb25seSBlcnJvcj86IGFueTtcclxuICAgIHJlYWRvbmx5IG1ldGhvZDogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgcGFyYW1zOiBhbnlbXTtcclxuICAgIGNvbnN0cnVjdG9yKG1ldGhvZDogc3RyaW5nLCBwYXJhbXM6IGFueVtdLCBlcnJvcj86IGFueSkge1xyXG4gICAgICAgIHN1cGVyKGAke21ldGhvZH0oJHtKU09OLnN0cmluZ2lmeShwYXJhbXMpfSk6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IpfSlgKVxyXG4gICAgICAgIGRlbGV0ZSBlcnJvcj8uc3RhY2tcclxuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3JcclxuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZFxyXG4gICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBKc29uUnBjUHJvdmlkZXIgaW1wbGVtZW50cyBJSnNvblJwY1Byb3ZpZGVyIHtcclxuICAgIFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVuZHBvaW50czogc3RyaW5nW11cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlY2VpcHRzOiBSZWNvcmQ8SGFzaCwgVHJhbnNhY3Rpb25SZWNlaXB0PiA9IHt9O1xyXG5cclxuICAgIHByb3RlY3RlZCBfY29uc3RhbnRzPzogQ29uc2Vuc3VzQ29uc3RhbnRzXHJcbiAgICBwcm90ZWN0ZWQgX2hlYWRlcnM6IEF4aW9zSGVhZGVycztcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgYW5kIGluaXRpYWxpemUgYSBKc29uUnBjUHJvdmlkZXIgb2JqZWN0IGNvbm5lY3RlZCB0byB0aGUgZGVmYXVsdCBXaXQvUlBDIGVuZHBvaW50LlxyXG4gICAgICogRGVmYXVsdHMgdG8gaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvIGlmIG5vIFdJVE5FVF9TREtfUFJPVklERVJfVVJMIGVudmFyIGlzIHNldHRsZWRcclxuICAgICAqIG9uIHRoZSBlbnZpcm9ubWVudC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGZyb21FbnYodXJsPzogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcclxuICAgICAgICByZXR1cm4gSnNvblJwY1Byb3ZpZGVyLmZyb21VUkwodXJsIHx8IHByb2Nlc3MuZW52LldJVE5FVF9TREtfUFJPVklERVJfVVJMIHx8IFwiaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvXCIpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGEgSnNvblJwY1Byb3ZpZGVyIG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIHNwZWNpZmllZCBXaXQvUlBDIGVuZHBvaW50LlxyXG4gICAgICogQHBhcmFtIHVybCBXaXQvUlBDIGVuZHBvaW50IFVSTC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGZyb21VUkwodXJsOiBzdHJpbmcpOiBQcm9taXNlPEpzb25ScGNQcm92aWRlcj4ge1xyXG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IEpzb25ScGNQcm92aWRlcih1cmwpXHJcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVyLmNvbnN0YW50cygpLnRoZW4oKCkgPT4gcHJvdmlkZXIpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IodXJsPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lbmRwb2ludHMgPSBbXVxyXG4gICAgICAgIGlmICh1cmwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCB1cmxzID0gdXJsLnJlcGxhY2VBbGwoJywnLCAnOycpLnNwbGl0KCc7JylcclxuICAgICAgICAgICAgdXJscy5mb3JFYWNoKHVybCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbc2NoZW1hLCBdID0gdXRpbHMucGFyc2VVUkwodXJsKVxyXG4gICAgICAgICAgICAgICAgaWYgKCFzY2hlbWEuc3RhcnRzV2l0aChcImh0dHA6Ly9cIikgJiYgIXNjaGVtYS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9cIikpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgV2l0bmV0Lkpzb25ScGNQcm92aWRlcjogdW5zdXBwb3J0ZWQgVVJMIHNjaGVtYSAke3NjaGVtYX1gKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0aGlzLmVuZHBvaW50cyA9IHVybHNcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVuZHBvaW50cy5wdXNoKHByb2Nlc3MuZW52LldJVE5FVF9TREtfUFJPVklERVJfVVJMIHx8IFwiaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvXCIpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2hlYWRlcnMgPSBuZXcgQXhpb3NIZWFkZXJzKHsgXHJcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9jb25zdGFudHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnN0YW50cy5ib290c3RyYXBwaW5nX2NvbW1pdHRlZVswXS5zdGFydHNXaXRoKCd3aXQnKSA/IFwibWFpbm5ldFwiOiBcInRlc3RuZXRcIlxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBuZXR3b3JrSWQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uc3RhbnRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iajogYW55ID0ge31cclxuICAgICAgICAgICAgb2JqLmFjdGl2aXR5UGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLmFjdGl2aXR5X3BlcmlvZDtcclxuICAgICAgICAgICAgb2JqLmJvb3RzdHJhcEhhc2ggPSB7IFNIQTI1NjogQXJyYXkuZnJvbSh1dGlscy5mcm9tSGV4U3RyaW5nKHRoaXMuX2NvbnN0YW50cy5ib290c3RyYXBfaGFzaCkpIH1cclxuICAgICAgICAgICAgb2JqLmJvb3RzdHJhcHBpbmdDb21taXR0ZWUgPSB0aGlzLl9jb25zdGFudHMuYm9vdHN0cmFwcGluZ19jb21taXR0ZWVcclxuICAgICAgICAgICAgb2JqLmNoZWNrcG9pbnRaZXJvVGltZXN0YW1wID0gdGhpcy5fY29uc3RhbnRzLmNoZWNrcG9pbnRfemVyb190aW1lc3RhbXBcclxuICAgICAgICAgICAgb2JqLmNoZWNrcG9pbnRzUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLmNoZWNrcG9pbnRzX3BlcmlvZFxyXG4gICAgICAgICAgICBvYmouY29sbGF0ZXJhbEFnZSA9IHRoaXMuX2NvbnN0YW50cy5jb2xsYXRlcmFsX2FnZVxyXG4gICAgICAgICAgICBvYmouY29sbGF0ZXJhbE1pbmltdW0gPSB0aGlzLl9jb25zdGFudHMuY29sbGF0ZXJhbF9taW5pbXVtXHJcbiAgICAgICAgICAgIG9iai5lcG9jaHNXaXRoTWluaW11bURpZmZpY3VsdHkgPSB0aGlzLl9jb25zdGFudHMuZXBvY2hzX3dpdGhfbWluaW11bV9kaWZmaWN1bHR5XHJcbiAgICAgICAgICAgIG9iai5leHRyYVJvdW5kcyA9IHRoaXMuX2NvbnN0YW50cy5leHRyYV9yb3VuZHNcclxuICAgICAgICAgICAgb2JqLmdlbmVzaXNIYXNoID0geyBTSEEyNTY6IEFycmF5LmZyb20odXRpbHMuZnJvbUhleFN0cmluZyh0aGlzLl9jb25zdGFudHMuZ2VuZXNpc19oYXNoKSkgfVxyXG4gICAgICAgICAgICBvYmouaGFsdmluZ1BlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5oYWx2aW5nX3BlcmlvZFxyXG4gICAgICAgICAgICBvYmouaW5pdGlhbEJsb2NrUmV3YXJkID0gdGhpcy5fY29uc3RhbnRzLmluaXRpYWxfYmxvY2tfcmV3YXJkXHJcbiAgICAgICAgICAgIG9iai5tYXhEcldlaWdodCA9IHRoaXMuX2NvbnN0YW50cy5tYXhfZHJfd2VpZ2h0XHJcbiAgICAgICAgICAgIG9iai5tYXhWdFdlaWdodCA9IHRoaXMuX2NvbnN0YW50cy5tYXhfdnRfd2VpZ2h0XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jb25zdGFudHMubWluaW11bV9kaWZmaWN1bHR5ID4gMCkgb2JqLm1pbmltdW1EaWZmaWN1bHR5ID0gdGhpcy5fY29uc3RhbnRzLm1pbmltdW1fZGlmZmljdWx0eVxyXG4gICAgICAgICAgICBvYmoubWluaW5nQmFja3VwRmFjdG9yID0gdGhpcy5fY29uc3RhbnRzLm1pbmluZ19iYWNrdXBfZmFjdG9yXHJcbiAgICAgICAgICAgIG9iai5taW5pbmdSZXBsaWNhdGlvbkZhY3RvciA9IHRoaXMuX2NvbnN0YW50cy5taW5pbmdfcmVwbGljYXRpb25fZmFjdG9yXHJcbiAgICAgICAgICAgIG9iai5yZXB1dGF0aW9uRXhwaXJlQWxwaGFEaWZmID0gdGhpcy5fY29uc3RhbnRzLnJlcHV0YXRpb25fZXhwaXJlX2FscGhhX2RpZmZcclxuICAgICAgICAgICAgb2JqLnJlcHV0YXRpb25Jc3N1YW5jZSA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2lzc3VhbmNlXHJcbiAgICAgICAgICAgIG9iai5yZXB1dGF0aW9uSXNzdWFuY2VTdG9wID0gdGhpcy5fY29uc3RhbnRzLnJlcHV0YXRpb25faXNzdWFuY2Vfc3RvcFxyXG4gICAgICAgICAgICBvYmoucmVwdXRhdGlvblBlbmFsaXphdGlvbkZhY3RvciA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX3BlbmFsaXphdGlvbl9mYWN0b3JcclxuICAgICAgICAgICAgb2JqLnN1cGVyYmxvY2tDb21taXR0ZWVEZWNyZWFzaW5nUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfcGVyaW9kXHJcbiAgICAgICAgICAgIG9iai5zdXBlcmJsb2NrQ29tbWl0dGVlRGVjcmVhc2luZ1N0ZXAgPSB0aGlzLl9jb25zdGFudHMuc3VwZXJibG9ja19jb21taXR0ZWVfZGVjcmVhc2luZ19zdGVwXHJcbiAgICAgICAgICAgIG9iai5zdXBlcmJsb2NrUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfcGVyaW9kXHJcbiAgICAgICAgICAgIG9iai5zdXBlcmJsb2NrU2lnbmluZ0NvbW1pdHRlZVNpemUgPSB0aGlzLl9jb25zdGFudHMuc3VwZXJibG9ja19zaWduaW5nX2NvbW1pdHRlZV9zaXplXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKG9iailcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHByb3RvQnVmLmZyb21PYmplY3Qob2JqKVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhtZXNzYWdlKVxyXG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBwcm90b0J1Zi5lbmNvZGUobWVzc2FnZSkuZmluaXNoKClcclxuICAgICAgICAgICAgY29uc3QgaGFzaCA9IHV0aWxzLnRvSGV4U3RyaW5nKHV0aWxzLnNoYTI1NihidWZmZXIpKSBcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coaGFzaClcclxuICAgICAgICAgICAgY29uc3QgaGV4ID0gaGFzaC5zdWJzdHJpbmcoMCwgNClcclxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGhleCwgMTYpXHJcbiAgICAgICAgfSBcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByb3RlY3RlZCBuZXh0VVJMKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kcG9pbnRzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMuZW5kcG9pbnRzLmxlbmd0aCldXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByb3RlY3RlZCBhc3luYyBjYWxsQXBpTWV0aG9kPFQ+KG1ldGhvZDogc3RyaW5nLCBwYXJhbXM/OiBBcnJheTxhbnk+IHwgYW55ICk6IFByb21pc2U8RXJyb3IgfCBhbnk+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLm5leHRVUkwoKVxyXG4gICAgICAgIHJldHVybiBheGlvc1xyXG4gICAgICAgICAgICAucG9zdChcclxuICAgICAgICAgICAgICAgIHVybCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBqc29ucnBjOiAnMi4wJyxcclxuICAgICAgICAgICAgICAgICAgICBpZDogKyBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuX2hlYWRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtUmVzcG9uc2U6IGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiBqc29uQmlnKCkucGFyc2UocmVzcG9uc2UpIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBKc29uUnBjUHJvdmlkZXJFcnJvcihtZXRob2QsIHBhcmFtcywgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHJldHVybiByZXNwb25zZT8uZGF0YT8ucmVzdWx0IGFzIFQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgbGlzdCBvZiBibG9jayBoYXNoZXMgd2l0aGluIGdpdmVuIHJhbmdlLCBhcyBrbm93biBieSB0aGUgcHJvdmlkZXIuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc2luY2UgLSBGaXJzdCBlcG9jaCBmb3Igd2hpY2ggdG8gcmV0dXJuIGJsb2NrIGhhc2hlcy4gSWYgbmVnYXRpdmUsIHJldHVybiBibG9jayBoYXNoZXMgZnJvbSB0aGUgbGFzdCBuIGVwb2Nocy5cclxuICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBOdW1iZXIgb2YgYmxvY2sgaGFzaGVzIHRvIHJldHVybi4gSWYgbmVnYXRpdmUsIHJldHVybiB0aGUgbGFzdCBuIGJsb2NrIGhhc2hlcyBmcm9tIHRoaXMgZXBvY2ggcmFuZ2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBibG9ja3Moc2luY2U6IG51bWJlciA9IC0xLCBsaW1pdDogbnVtYmVyID0gMSwpOiBQcm9taXNlPEFycmF5PFtudW1iZXIsIEhhc2hdPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8W051bWJlciwgSGFzaF0+KE1ldGhvZHMuR2V0QmxvY2tDaGFpbiwgW3NpbmNlLCBsaW1pdCwgXSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyBHZXQgY29uc2Vuc3VzIGNvbnN0YW50cyB1c2VkIGJ5IHRoZSBub2RlXHJcbiAgICBwdWJsaWMgYXN5bmMgY29uc3RhbnRzKCk6IFByb21pc2U8Q29uc2Vuc3VzQ29uc3RhbnRzPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9jb25zdGFudHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXNcclxuICAgICAgICAgICAgICAgIC5jYWxsQXBpTWV0aG9kPENvbnNlbnN1c0NvbnN0YW50cz4oTWV0aG9kcy5HZXRDb25zZW5zdXNDb25zdGFudHMpXHJcbiAgICAgICAgICAgICAgICAudGhlbigoY29uc3RhbnRzOiBDb25zZW5zdXNDb25zdGFudHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25zdGFudHMgPSBjb25zdGFudHNcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RhbnRzXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25zdGFudHNcclxuICAgICAgICB9ICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8vLyBHZXQgbGltaXRlZCBsaXN0IG9mIGN1cnJlbnRseSB0b3AgaG9sZGVycywgYXMga25vd24gYnkgdGhlIHByb3ZpZGVyLlxyXG4gICAgcHVibGljIGFzeW5jIGhvbGRlcnMobWluQmFsYW5jZSA9IDAsIG1heEJhbGFuY2U/OiBudW1iZXIpOiBQcm9taXNlPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMj4+IHtcclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgICAgICAgICAuY2FsbEFwaU1ldGhvZDxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZT4+KE1ldGhvZHMuR2V0QmFsYW5jZTIsIHtcclxuICAgICAgICAgICAgICAgIGFsbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbkJhbGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgLi4uIG1heEJhbGFuY2UgPyB7IG1heEJhbGFuY2UgfSA6IHt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLnRoZW4oKGJhbGFuY2VzOiBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXZlcnNlQ29tcGFyZSA9IChhOiBCYWxhbmNlMiwgYjogQmFsYW5jZTIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhX3RvdCA9IGEubG9ja2VkICsgYS51bmxvY2tlZCArIGEuc3Rha2VkXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYl90b3QgPSBiLmxvY2tlZCArIGIudW5sb2NrZWQgKyBiLnN0YWtlZFxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhX3RvdCA8IGJfdG90KSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChhX3RvdCA+IGJfdG90KSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoYmFsYW5jZXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zb3J0KChhOiAoc3RyaW5nIHwgQmFsYW5jZTIpW10sIGI6IChzdHJpbmcgfCBCYWxhbmNlMilbXSkgPT4gcmV2ZXJzZUNvbXBhcmUoYVsxXSBhcyBCYWxhbmNlMiwgYlsxXSBhcyBCYWxhbmNlMikpXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IGxpc3Qgb2Yga25vd24gcGVlcnNcclxuICAgIHB1YmxpYyBhc3luYyBrbm93blBlZXJzKCk6IFByb21pc2U8QXJyYXk8UGVlckFkZHI+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxQZWVyQWRkcj4+KE1ldGhvZHMuS25vd25QZWVycyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyBHZXQgYWxsIHRoZSBwZW5kaW5nIHRyYW5zYWN0aW9uc1xyXG4gICAgcHVibGljIGFzeW5jIG1lbXBvb2woKTogUHJvbWlzZTxNZW1wb29sPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxNZW1wb29sPihNZXRob2RzLkdldE1lbXBvb2wpO1xyXG4gICAgfSAgICBcclxuICAgIFxyXG4gICAgLy8vIEdldCBwcmlvcml0eSBhbmQgdGltZS10by1ibG9jayBlc3RpbWF0aW9ucyBmb3IgZGlmZmVyZW50IHByaW9yaXR5IHRpZXJzLlxyXG4gICAgcHVibGljIGFzeW5jIHByaW9yaXRpZXMoKTogUHJvbWlzZTxQcmlvcml0aWVzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxQcmlvcml0aWVzPihNZXRob2RzLlByaW9yaXR5KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IGluZm9ybWF0aW9uIGFib3V0IHByb3RvY29sIHZlcnNpb25zIGFuZCB3aGljaCB2ZXJzaW9uIGlzIGN1cnJlbnRseSBiZWluZyBlbmZvcmNlZC5cclxuICAgIHB1YmxpYyBhc3luYyBwcm90b2NvbEluZm8oKTogUHJvbWlzZTxQcm90b2NvbEluZm8+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFByb3RvY29sSW5mbz4oTWV0aG9kcy5Qcm90b2NvbClcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCBhIGZ1bGwgbGlzdCBvZiBzdGFraW5nIHBvd2VycyBvcmRlcmVkIGJ5IHJhbmtcclxuICAgIHB1YmxpYyBhc3luYyBwb3dlcnMocXVlcnk/OiBRdWVyeVN0YWtpbmdQb3dlcnMpOiBQcm9taXNlPEFycmF5PFN0YWtpbmdQb3dlcj4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEFycmF5PFN0YWtpbmdQb3dlcj4+KE1ldGhvZHMuUXVlcnlTdGFraW5nUG93ZXJzLCBxdWVyeSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8vIEdldCBhIGZ1bGwgbGlzdCBvZiBjdXJyZW50IHN0YWtlIGVudHJpZXMgIFF1ZXJ5IHRoZSBhbW91bnQgb2YgbmFub3dpdHMgc3Rha2VkIGJ5IGFuIGFkZHJlc3MuXHJcbiAgICBwdWJsaWMgYXN5bmMgc3Rha2VzKHF1ZXJ5PzogUXVlcnlTdGFrZXMpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNcclxuICAgICAgICAgICAgLmNhbGxBcGlNZXRob2Q8QXJyYXk8U3Rha2VFbnRyeT4+KE1ldGhvZHMuUXVlcnlTdGFrZXMsIHF1ZXJ5KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnI/LmVycm9yPy5tZXNzYWdlICYmIGVyci5lcnJvci5tZXNzYWdlLmluZGV4T2YoXCJub3QgcmVnaXN0ZXJlZFwiKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVyclxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IG5vZGUgc3RhdHVzXHJcbiAgICBwdWJsaWMgYXN5bmMgc3luY1N0YXR1cygpOiBQcm9taXNlPFN5bmNTdGF0dXM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFN5bmNTdGF0dXM+KE1ldGhvZHMuU3luY1N0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyBhc3luYyB3aXBzKCk6IFByb21pc2U8U2lnbmFsaW5nSW5mbz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8U2lnbmFsaW5nSW5mbz4oTWV0aG9kcy5TaWduYWxpbmdJbmZvKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyB3aXRuZXNzZXMoX3NpbmNlPzogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgICAgICAvLyB0b2RvOiB3aXRuZXNzZXMgZXN0aW1hdGlvbiBzaG91bGQgaW5zdGVhZCBiZSBjb21wdXRlZCBpbiBwcm9wb3J0aW9uIHRvXHJcbiAgICAgICAgLy8gICAgICAgcmF0aW8gb2YgdmFsaWRhdG9ycyB0aGF0IGhhdmUgaG9uZXN0bHkgd2l0bmVzc2VkIGRhdGEgcmVxdWVzdHNcclxuICAgICAgICAvLyAgICAgICB2cyB2YWxpZGF0b3JzIHRoYXQgaGF2ZSBob25lc3RseSB3aXRuZXNzZWQgZGF0YSByZXF1ZXN0cyBhbmRcclxuICAgICAgICAvLyAgICAgICBuZXZlciByZXZlYWxlZCBcImkgcGFzc2VkXCIgb3V0IG9mIG1ham9yaXR5LCBcclxuICAgICAgICAvLyAgICAgICB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiBlcG9jaHMuXHJcbiAgICAgICAgbGV0IGNlbnN1cyA9IDBcclxuICAgICAgICByZXR1cm4gdGhpcyBcclxuICAgICAgICAgICAgLnN0YWtlcyh7IHBhcmFtczogeyBkaXN0aW5jdDogdHJ1ZSB9fSkgLy8gdG9kbzogaW1wbGVtZW50IGBjb3VudGAgZmxhZyBvbiBJSnNvblJwY1Byb3ZpZGVyLnN0YWtlcygpXHJcbiAgICAgICAgICAgIC50aGVuKHJlY29yZHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2Vuc3VzID0gcmVjb3Jkcy5sZW5ndGhcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJsb2NrcygtMTYsIDE2KSAvLyB0b2RvOiBibG9ja3MoKSBzaG91bGQgcmV0dXJuIGVwb2NoLCBoYXNoIGFuZCB2YWxpZGF0b3IgcGtoIGZvciBlYWNoIGJsb2NrXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC50aGVuKHJlY29yZHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlY29yZHMubWFwKHJlY29yZCA9PiB0aGlzLmdldEJsb2NrKHJlY29yZFsxXSkpKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihibG9ja3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yczogQXJyYXk8UHVibGljS2V5SGFzaFN0cmluZz4gPSBbXVxyXG4gICAgICAgICAgICAgICAgYmxvY2tzLm1hcChibG9jayA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGtoID0gUHVibGljS2V5LmZyb21Qcm90b2J1ZihibG9jay5ibG9ja19zaWcucHVibGljX2tleSkuaGFzaCgpLnRvQmVjaDMyKHRoaXMubmV0d29yaylcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRvcnMuaW5jbHVkZXMocGtoKSkgdmFsaWRhdG9ycy5wdXNoKHBraCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IodGhpcy5uZXR3b3JrID09PSBcInRlc3RuZXRcIiA/IGNlbnN1cyAvIDIgOiBjZW5zdXMgLyA0KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvLy8gR2V0IGJhbGFuY2VcclxuICAgIHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKHBraDogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8QmFsYW5jZTI+IHtcclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgICAgICAgICAuY2FsbEFwaU1ldGhvZDxCYWxhbmNlMj4oTWV0aG9kcy5HZXRCYWxhbmNlMiwgeyBwa2ggfSlcclxuICAgICAgICAgICAgLnRoZW4oKGJhbGFuY2U6IEJhbGFuY2UyKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgbG9ja2VkOiBCaWdJbnQoYmFsYW5jZS5sb2NrZWQpLFxyXG4gICAgICAgICAgICAgICAgc3Rha2VkOiBCaWdJbnQoYmFsYW5jZS5zdGFrZWQpLFxyXG4gICAgICAgICAgICAgICAgdW5sb2NrZWQ6IEJpZ0ludChiYWxhbmNlLnVubG9ja2VkKSxcclxuICAgICAgICAgICAgfSkpXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogR2V0IGJsb2NrIGluZm8gYnkgaGFzaFxyXG4gICAgICogQHBhcmFtIHtIYXNofSBibG9ja0hhc2ggLSBIYXNoIG9mIHRoZSBibG9jayB0aGF0IHdlIGFyZSBxdWVyeWluZy5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvd1RyYW5zYWN0aW9uSGFzaCAtIFdoZXRoZXIgdG8gaW5jbHVkZSBhbiBleHRyYSBmaWVsZCBjb250YWluaW5nIGFycmF5IG9mIHRyYW5zYWN0aW9uIGhhc2hlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGdldEJsb2NrKFxyXG4gICAgICAgICAgICBibG9ja0hhc2g6IEhhc2gsXHJcbiAgICAgICAgICAgIHNob3dUcmFuc2FjdGlvbkhhc2ggPSBmYWxzZSxcclxuICAgICAgICApOiBQcm9taXNlPEJsb2NrPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QmxvY2s+KE1ldGhvZHMuR2V0QmxvY2ssIFtibG9ja0hhc2gsIHNob3dUcmFuc2FjdGlvbkhhc2gsIF0pXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyBhc3luYyBnZXREYXRhUmVxdWVzdChkclR4SGFzaDogSGFzaCwgbW9kZT86IEdldERhdGFSZXF1ZXN0TW9kZSwgZm9yY2UgPSBmYWxzZSk6IFByb21pc2U8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD4oTWV0aG9kcy5HZXREYXRhUmVxdWVzdCwge1xyXG4gICAgICAgICAgICBoYXNoOiBkclR4SGFzaCxcclxuICAgICAgICAgICAgbW9kZTogbW9kZSB8fCBcImZ1bGxcIixcclxuICAgICAgICAgICAgZm9yY2VcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gR2V0IHRoZSBibG9ja3MgdGhhdCBwZXJ0YWluIHRvIHRoZSBzdXBlcmJsb2NrIGluZGV4XHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0U3VwZXJibG9jayhlcG9jaDogRXBvY2gpOiBQcm9taXNlPFN1cGVyYmxvY2tSZXBvcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFN1cGVyYmxvY2tSZXBvcnQ+KE1ldGhvZHMuR2V0U3VwZXJibG9jaywgeyBcImJsb2NrX2Vwb2NoXCI6IGVwb2NoIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb24odHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlcG9ydD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8VHJhbnNhY3Rpb25SZXBvcnQ+KE1ldGhvZHMuR2V0VHJhbnNhY3Rpb24sIFt0eEhhc2gsIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvblJlY2VpcHQodHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcclxuICAgICAgICAvLyB0b2RvOiBmZXRjaC91cGRhdGUgcmVjZWlwdCBmcm9tIHByb3ZpZGVyLCBpZiBub3QgY2FjaGVkXHJcbiAgICAgICAgcmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1t0eEhhc2hdXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vLyBHZXQgdXR4b3NcclxuICAgIHB1YmxpYyBhc3luYyBnZXRVdHhvcyhwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsIGZpbHRlcj86IHsgbWluVmFsdWU/OiBiaWdpbnQgfCBzdHJpbmcsIGZyb21TaWduZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nIH0pOiBQcm9taXNlPEFycmF5PFV0eG9NZXRhZGF0YT4+IHtcclxuICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlci5taW5WYWx1ZSA9IGZpbHRlcj8ubWluVmFsdWU/LnRvU3RyaW5nKCkgPz8gXCIwXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5jYWxsQXBpTWV0aG9kPFV0eG9JbmZvPihNZXRob2RzLkdldFV0eG9JbmZvLCBbcGtoLCAuLi4oZmlsdGVyID8gW2ZpbHRlcl06IFtdKV0pXHJcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHQ6IFV0eG9JbmZvKSA9PiByZXN1bHQudXR4b3MubWFwKCh1dHhvOiBVdHhvTWV0YWRhdGEpID0+ICh7IFxyXG4gICAgICAgICAgICAgICAgLi4udXR4bywgXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogQmlnSW50KHV0eG8udmFsdWUpXHJcbiAgICAgICAgICAgIH0pKSlcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VmFsdWVUcmFuc2Zlcih0eEhhc2g6IEhhc2gsIG1vZGU/OiBzdHJpbmcsIGZvcmNlID0gZmFsc2UpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8YW55PihNZXRob2RzLkdldFZhbHVlVHJhbnNmZXIsIHtcclxuICAgICAgICAgICAgaGFzaDogdHhIYXNoLFxyXG4gICAgICAgICAgICBtb2RlOiBtb2RlLFxyXG4gICAgICAgICAgICBmb3JjZVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaERhdGFSZXF1ZXN0cyhcclxuICAgICAgICByYWRIYXNoOiBIYXNoLCBcclxuICAgICAgICBvcHRpb25zPzogeyBcclxuICAgICAgICAgICAgbGltaXQ/OiBudW1iZXIsIFxyXG4gICAgICAgICAgICBvZmZzZXQ/OiBudW1iZXIsXHJcbiAgICAgICAgICAgIG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsIFxyXG4gICAgICAgICAgICByZXZlcnNlPzogYm9vbGVhbiBcclxuICAgIH0pOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQ+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNcclxuICAgICAgICAgICAgLmNhbGxBcGlNZXRob2Q8QXJyYXk8YW55W10+PihNZXRob2RzLlNlYXJjaERhdGFSZXF1ZXN0cywge1xyXG4gICAgICAgICAgICAgICAgcmFkSGFzaCxcclxuICAgICAgICAgICAgICAgIGxpbWl0OiBvcHRpb25zPy5saW1pdCxcclxuICAgICAgICAgICAgICAgIG9mZnNldDogb3B0aW9ucz8ub2Zmc2V0LFxyXG4gICAgICAgICAgICAgICAgcmV2ZXJzZTogb3B0aW9ucz8ucmV2ZXJzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihhc3luYyBlbnRyaWVzID0+IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgICAgZW50cmllcy5tYXAoKGVudHJ5OiBhbnlbXSkgPT4gdGhpcy5nZXREYXRhUmVxdWVzdChlbnRyeVsxXSwgb3B0aW9ucz8ubW9kZSB8fCBcImV0aGVyZWFsXCIsIHRydWUpKVxyXG4gICAgICAgICAgICApKVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBwdWJsaWMgYXN5bmMgc2VuZFJhd1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPGJvb2xlYW4+KE1ldGhvZHMuSW52ZW50b3J5LCB7IHRyYW5zYWN0aW9uIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLy8vIEdldCBzdXBwbHkgaW5mb1xyXG4gICAgcHVibGljIGFzeW5jIHN1cHBseUluZm8oKTogUHJvbWlzZTxTdXBwbHlJbmZvPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTdXBwbHlJbmZvPihNZXRob2RzLkdldFN1cHBseUluZm8pXHJcbiAgICB9XHJcbn0iXX0=
@@ -7,8 +7,7 @@ export let modals: {
7
7
  };
8
8
  ipfs: {
9
9
  WitOracleIpfsFileExists: import("../../src/lib/radon").RadonModal;
10
- WitOracleIpfsFileSha256: {};
11
- WitOracleIpfsFileSha256Sealed: {};
10
+ WitOracleIpfsFileSha256: import("../../src/lib/radon").RadonModal;
12
11
  };
13
12
  wit: {
14
13
  WitOracleWitGetBalance: import("../../src/lib/radon").RadonModal;
@@ -6,8 +6,7 @@ export namespace web3 {
6
6
  };
7
7
  let ipfs: {
8
8
  WitOracleIpfsFileExists: import("../../../src/lib/radon/index.js").RadonModal;
9
- WitOracleIpfsFileSha256: {};
10
- WitOracleIpfsFileSha256Sealed: {};
9
+ WitOracleIpfsFileSha256: import("../../../src/lib/radon/index.js").RadonModal;
11
10
  };
12
11
  let wit: {
13
12
  WitOracleWitGetBalance: import("../../../src/lib/radon/index.js").RadonModal;
@@ -12,15 +12,15 @@ module.exports = {
12
12
  }),
13
13
  WitOracleEthGetBalance: new RadonModal({
14
14
  retrieval: retrievals.JsonRPC({
15
- rpc: retrievals.rpc.eth.getBalance("\\1\\"),
15
+ rpc: retrievals.rpc.eth.getBalance("\\0\\"),
16
16
  script: RadonScript(types.RadonString).asFloat().floor(),
17
17
  }),
18
18
  }),
19
19
  WitOracleEthGetTransactionReceipt: new RadonModal({
20
20
  retrieval: retrievals.JsonRPC({
21
- rpc: retrievals.rpc.eth.getTransactionByHash("\\1\\"),
21
+ rpc: retrievals.rpc.eth.getTransactionByHash("\\0\\"),
22
22
  script: RadonScript(types.RadonString).parseJSONMap(),
23
23
  }),
24
24
  }),
25
25
  };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2l0bmV0L2Fzc2V0cy9tb2RhbHMvd2ViMy9ldGguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU0sRUFDSixVQUFVLEVBQ1YsV0FBVztBQUNYLFdBQVc7QUFDWCxZQUFZO0FBQ1osVUFBVSxFQUNWLEtBQUssR0FDTixHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZix1QkFBdUIsRUFBRSxJQUFJLFVBQVUsQ0FBQztRQUN0QyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM1QixHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRTtTQUN6RCxDQUFDO0tBQ0gsQ0FBQztJQUNGLHNCQUFzQixFQUFFLElBQUksVUFBVSxDQUFDO1FBQ3JDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRTtTQUN6RCxDQUFDO0tBQ0gsQ0FBQztJQUNGLGlDQUFpQyxFQUFFLElBQUksVUFBVSxDQUFDO1FBQ2hELFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7WUFDckQsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxFQUFFO1NBQ3RELENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvbk1vZGFsLFxyXG4gIFJhZG9uU2NyaXB0LFxyXG4gIC8vIGZpbHRlcnMsXHJcbiAgLy8gcmVkdWNlcnMsXHJcbiAgcmV0cmlldmFscyxcclxuICB0eXBlcyxcclxufSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uXCIpXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICBXaXRPcmFjbGVFdGhCbG9ja051bWJlcjogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgcmV0cmlldmFsOiByZXRyaWV2YWxzLkpzb25SUEMoe1xyXG4gICAgICBycGM6IHJldHJpZXZhbHMucnBjLmV0aC5ibG9ja051bWJlcigpLFxyXG4gICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKS5hc0Zsb2F0KCkuZmxvb3IoKSxcclxuICAgIH0pLFxyXG4gIH0pLFxyXG4gIFdpdE9yYWNsZUV0aEdldEJhbGFuY2U6IG5ldyBSYWRvbk1vZGFsKHtcclxuICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5Kc29uUlBDKHtcclxuICAgICAgcnBjOiByZXRyaWV2YWxzLnJwYy5ldGguZ2V0QmFsYW5jZShcIlxcXFwxXFxcXFwiKSxcclxuICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvblN0cmluZykuYXNGbG9hdCgpLmZsb29yKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxuICBXaXRPcmFjbGVFdGhHZXRUcmFuc2FjdGlvblJlY2VpcHQ6IG5ldyBSYWRvbk1vZGFsKHtcclxuICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5Kc29uUlBDKHtcclxuICAgICAgcnBjOiByZXRyaWV2YWxzLnJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2goXCJcXFxcMVxcXFxcIiksXHJcbiAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpLnBhcnNlSlNPTk1hcCgpLFxyXG4gICAgfSksXHJcbiAgfSksXHJcbn1cclxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2l0bmV0L2Fzc2V0cy9tb2RhbHMvd2ViMy9ldGguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU0sRUFDSixVQUFVLEVBQ1YsV0FBVztBQUNYLFdBQVc7QUFDWCxZQUFZO0FBQ1osVUFBVSxFQUNWLEtBQUssR0FDTixHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZix1QkFBdUIsRUFBRSxJQUFJLFVBQVUsQ0FBQztRQUN0QyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM1QixHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRTtTQUN6RCxDQUFDO0tBQ0gsQ0FBQztJQUNGLHNCQUFzQixFQUFFLElBQUksVUFBVSxDQUFDO1FBQ3JDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRTtTQUN6RCxDQUFDO0tBQ0gsQ0FBQztJQUNGLGlDQUFpQyxFQUFFLElBQUksVUFBVSxDQUFDO1FBQ2hELFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7WUFDckQsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxFQUFFO1NBQ3RELENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvbk1vZGFsLFxyXG4gIFJhZG9uU2NyaXB0LFxyXG4gIC8vIGZpbHRlcnMsXHJcbiAgLy8gcmVkdWNlcnMsXHJcbiAgcmV0cmlldmFscyxcclxuICB0eXBlcyxcclxufSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9zcmMvbGliL3JhZG9uXCIpXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICBXaXRPcmFjbGVFdGhCbG9ja051bWJlcjogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgcmV0cmlldmFsOiByZXRyaWV2YWxzLkpzb25SUEMoe1xyXG4gICAgICBycGM6IHJldHJpZXZhbHMucnBjLmV0aC5ibG9ja051bWJlcigpLFxyXG4gICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKS5hc0Zsb2F0KCkuZmxvb3IoKSxcclxuICAgIH0pLFxyXG4gIH0pLFxyXG4gIFdpdE9yYWNsZUV0aEdldEJhbGFuY2U6IG5ldyBSYWRvbk1vZGFsKHtcclxuICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5Kc29uUlBDKHtcclxuICAgICAgcnBjOiByZXRyaWV2YWxzLnJwYy5ldGguZ2V0QmFsYW5jZShcIlxcXFwwXFxcXFwiKSxcclxuICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvblN0cmluZykuYXNGbG9hdCgpLmZsb29yKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxuICBXaXRPcmFjbGVFdGhHZXRUcmFuc2FjdGlvblJlY2VpcHQ6IG5ldyBSYWRvbk1vZGFsKHtcclxuICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5Kc29uUlBDKHtcclxuICAgICAgcnBjOiByZXRyaWV2YWxzLnJwYy5ldGguZ2V0VHJhbnNhY3Rpb25CeUhhc2goXCJcXFxcMFxcXFxcIiksXHJcbiAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpLnBhcnNlSlNPTk1hcCgpLFxyXG4gICAgfSksXHJcbiAgfSksXHJcbn1cclxuIl19
@@ -1,5 +1,4 @@
1
1
  import { RadonModal } from "../../../../src/lib/radon";
2
2
  export let WitOracleIpfsFileExists: RadonModal;
3
- export let WitOracleIpfsFileSha256: {};
4
- export let WitOracleIpfsFileSha256Sealed: {};
3
+ export let WitOracleIpfsFileSha256: RadonModal;
5
4
  //# sourceMappingURL=ipfs.d.ts.map
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
- const { RadonModal, RadonScript,
3
- // filters,
4
- // reducers,
5
- retrievals, types, } = require("../../../../src/lib/radon");
2
+ const { RadonModal, RadonScript, retrievals, types, } = require("../../../../src/lib/radon");
6
3
  module.exports = {
7
4
  WitOracleIpfsFileExists: new RadonModal({
8
5
  retrieval: retrievals.HttpHead({
9
- headers: {},
10
- script: RadonScript(types.RadonString),
6
+ script: RadonScript(types.RadonMap)
7
+ .getString("etag")
8
+ .slice(1, -1)
9
+ .match(types.RadonBoolean, { "\\0\\": true }, false)
11
10
  }),
12
11
  }),
13
- WitOracleIpfsFileSha256: {},
14
- WitOracleIpfsFileSha256Sealed: {},
12
+ WitOracleIpfsFileSha256: new RadonModal({
13
+ retrieval: retrievals.HttpGet({
14
+ script: RadonScript(types.RadonBytes).hash()
15
+ })
16
+ })
15
17
  };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBmcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3dpdG5ldC9hc3NldHMvbW9kYWxzL3dlYjMvaXBmcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxFQUNKLFVBQVUsRUFDVixXQUFXO0FBQ1gsV0FBVztBQUNYLFlBQVk7QUFDWixVQUFVLEVBQ1YsS0FBSyxHQUNOLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNiLHVCQUF1QixFQUFFLElBQUksVUFBVSxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzNCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1NBQ3pDLENBQUM7S0FDTCxDQUFDO0lBQ0YsdUJBQXVCLEVBQUUsRUFBRTtJQUMzQiw2QkFBNkIsRUFBRSxFQUFFO0NBQ3BDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7XHJcbiAgUmFkb25Nb2RhbCxcclxuICBSYWRvblNjcmlwdCxcclxuICAvLyBmaWx0ZXJzLFxyXG4gIC8vIHJlZHVjZXJzLFxyXG4gIHJldHJpZXZhbHMsXHJcbiAgdHlwZXMsXHJcbn0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvblwiKVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBXaXRPcmFjbGVJcGZzRmlsZUV4aXN0czogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5IdHRwSGVhZCh7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHt9LFxyXG4gICAgICAgICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKSxcclxuICAgICAgICB9KSxcclxuICAgIH0pLFxyXG4gICAgV2l0T3JhY2xlSXBmc0ZpbGVTaGEyNTY6IHt9LFxyXG4gICAgV2l0T3JhY2xlSXBmc0ZpbGVTaGEyNTZTZWFsZWQ6IHt9LFxyXG59XHJcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBmcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3dpdG5ldC9hc3NldHMvbW9kYWxzL3dlYjMvaXBmcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxFQUNKLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxFQUNWLEtBQUssR0FDTixHQUFHLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDYix1QkFBdUIsRUFBRSxJQUFJLFVBQVUsQ0FBQztRQUNwQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMzQixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxNQUFNLENBQUM7aUJBQ2pCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ1osS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDO1NBQzNELENBQUM7S0FDTCxDQUFDO0lBQ0YsdUJBQXVCLEVBQUUsSUFBSSxVQUFVLENBQUM7UUFDcEMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDMUIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFO1NBQy9DLENBQUM7S0FDTCxDQUFDO0NBQ0wsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvbk1vZGFsLFxyXG4gIFJhZG9uU2NyaXB0LFxyXG4gIHJldHJpZXZhbHMsXHJcbiAgdHlwZXMsXHJcbn0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvblwiKVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBXaXRPcmFjbGVJcGZzRmlsZUV4aXN0czogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5IdHRwSGVhZCh7XHJcbiAgICAgICAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25NYXApXHJcbiAgICAgICAgICAgICAgICAuZ2V0U3RyaW5nKFwiZXRhZ1wiKVxyXG4gICAgICAgICAgICAgICAgLnNsaWNlKDEsIC0xKVxyXG4gICAgICAgICAgICAgICAgLm1hdGNoKHR5cGVzLlJhZG9uQm9vbGVhbiwgeyBcIlxcXFwwXFxcXFwiOiB0cnVlIH0sIGZhbHNlKVxyXG4gICAgICAgIH0pLFxyXG4gICAgfSksXHJcbiAgICBXaXRPcmFjbGVJcGZzRmlsZVNoYTI1NjogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgICAgIHJldHJpZXZhbDogcmV0cmlldmFscy5IdHRwR2V0KHtcclxuICAgICAgICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvbkJ5dGVzKS5oYXNoKClcclxuICAgICAgICB9KVxyXG4gICAgfSlcclxufVxyXG4iXX0=
@@ -3,15 +3,15 @@ const { RadonModal, RadonScript, retrievals, types, } = require("../../../../src
3
3
  module.exports = {
4
4
  WitOracleWitGetBalance: new RadonModal({
5
5
  retrieval: retrievals.JsonRPC({
6
- rpc: retrievals.rpc.wit.getBalance("\\1\\"),
6
+ rpc: retrievals.rpc.wit.getBalance("\\0\\"),
7
7
  script: RadonScript(types.RadonString).parseJSONMap().getMap("result").values(),
8
8
  }),
9
9
  }),
10
10
  WitOracleWitGetValueTransfer: new RadonModal({
11
11
  retrieval: retrievals.JsonRPC({
12
- rpc: retrievals.rpc.wit.getValueTransfer("\\1\\", "\\2\\"),
13
- script: RadonScript(types.RadonString).parseJSONMap().getMap("result").getMap("\\2\\").values(),
12
+ rpc: retrievals.rpc.wit.getValueTransfer("\\0\\", "\\1\\"),
13
+ script: RadonScript(types.RadonString).parseJSONMap().getMap("result").getMap("\\1\\").values(),
14
14
  }),
15
15
  }),
16
16
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2l0bmV0L2Fzc2V0cy9tb2RhbHMvd2ViMy93aXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU0sRUFDSixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixLQUFLLEdBQ04sR0FBRyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV4QyxNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2Ysc0JBQXNCLEVBQUUsSUFBSSxVQUFVLENBQUM7UUFDckMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDM0MsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNoRixDQUFDO0tBQ0gsQ0FBQztJQUNGLDRCQUE0QixFQUFFLElBQUksVUFBVSxDQUFDO1FBQzNDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQzFELE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1NBQ2hHLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvbk1vZGFsLFxyXG4gIFJhZG9uU2NyaXB0LFxyXG4gIHJldHJpZXZhbHMsXHJcbiAgdHlwZXMsXHJcbn0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvblwiKVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgV2l0T3JhY2xlV2l0R2V0QmFsYW5jZTogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgcmV0cmlldmFsOiByZXRyaWV2YWxzLkpzb25SUEMoe1xyXG4gICAgICBycGM6IHJldHJpZXZhbHMucnBjLndpdC5nZXRCYWxhbmNlKFwiXFxcXDFcXFxcXCIpLFxyXG4gICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKS5wYXJzZUpTT05NYXAoKS5nZXRNYXAoXCJyZXN1bHRcIikudmFsdWVzKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxuICBXaXRPcmFjbGVXaXRHZXRWYWx1ZVRyYW5zZmVyOiBuZXcgUmFkb25Nb2RhbCh7XHJcbiAgICByZXRyaWV2YWw6IHJldHJpZXZhbHMuSnNvblJQQyh7XHJcbiAgICAgIHJwYzogcmV0cmlldmFscy5ycGMud2l0LmdldFZhbHVlVHJhbnNmZXIoXCJcXFxcMVxcXFxcIiwgXCJcXFxcMlxcXFxcIiksXHJcbiAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpLnBhcnNlSlNPTk1hcCgpLmdldE1hcChcInJlc3VsdFwiKS5nZXRNYXAoXCJcXFxcMlxcXFxcIikudmFsdWVzKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxufVxyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2l0bmV0L2Fzc2V0cy9tb2RhbHMvd2ViMy93aXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU0sRUFDSixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixLQUFLLEdBQ04sR0FBRyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV4QyxNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2Ysc0JBQXNCLEVBQUUsSUFBSSxVQUFVLENBQUM7UUFDckMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDM0MsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNoRixDQUFDO0tBQ0gsQ0FBQztJQUNGLDRCQUE0QixFQUFFLElBQUksVUFBVSxDQUFDO1FBQzNDLFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQzFELE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1NBQ2hHLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvbk1vZGFsLFxyXG4gIFJhZG9uU2NyaXB0LFxyXG4gIHJldHJpZXZhbHMsXHJcbiAgdHlwZXMsXHJcbn0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vc3JjL2xpYi9yYWRvblwiKVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgV2l0T3JhY2xlV2l0R2V0QmFsYW5jZTogbmV3IFJhZG9uTW9kYWwoe1xyXG4gICAgcmV0cmlldmFsOiByZXRyaWV2YWxzLkpzb25SUEMoe1xyXG4gICAgICBycGM6IHJldHJpZXZhbHMucnBjLndpdC5nZXRCYWxhbmNlKFwiXFxcXDBcXFxcXCIpLFxyXG4gICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKS5wYXJzZUpTT05NYXAoKS5nZXRNYXAoXCJyZXN1bHRcIikudmFsdWVzKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxuICBXaXRPcmFjbGVXaXRHZXRWYWx1ZVRyYW5zZmVyOiBuZXcgUmFkb25Nb2RhbCh7XHJcbiAgICByZXRyaWV2YWw6IHJldHJpZXZhbHMuSnNvblJQQyh7XHJcbiAgICAgIHJwYzogcmV0cmlldmFscy5ycGMud2l0LmdldFZhbHVlVHJhbnNmZXIoXCJcXFxcMFxcXFxcIiwgXCJcXFxcMVxcXFxcIiksXHJcbiAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpLnBhcnNlSlNPTk1hcCgpLmdldE1hcChcInJlc3VsdFwiKS5nZXRNYXAoXCJcXFxcMVxcXFxcIikudmFsdWVzKCksXHJcbiAgICB9KSxcclxuICB9KSxcclxufVxyXG4iXX0=
@@ -7,31 +7,10 @@ module.exports = {
7
7
  WitOracleRequestPriceCryptoWitUsdt6: new RadonRequest({
8
8
  sources: [
9
9
  retrievals.HttpGet({
10
- url: "https://api-cloud.bitmart.com/spot/v1/ticker?symbol=WIT_USDT",
10
+ url: "https://api.mexc.com/api/v3/ticker/price?symbol=WITUSDT",
11
11
  script: RadonScript(types.RadonString)
12
12
  .parseJSONMap()
13
- .getMap("data")
14
- .getArray("tickers")
15
- .getMap(0)
16
- .getFloat("last_price")
17
- .multiply(1e6)
18
- .round(),
19
- }),
20
- retrievals.HttpGet({
21
- url: "https://data.gateapi.io/api2/1/ticker/wit_usdt",
22
- script: RadonScript(types.RadonString)
23
- .parseJSONMap()
24
- .getFloat("last")
25
- .multiply(1e6)
26
- .round(),
27
- }),
28
- retrievals.HttpGet({
29
- url: "https://www.mexc.com/open/api/v2/market/ticker?symbol=WIT_USDT",
30
- script: RadonScript(types.RadonString)
31
- .parseJSONMap()
32
- .getArray("data")
33
- .getMap(0)
34
- .getFloat("last")
13
+ .getFloat("price")
35
14
  .multiply(1e6)
36
15
  .round(),
37
16
  }),
@@ -42,35 +21,11 @@ module.exports = {
42
21
  WitOracleRequestPriceCryptoUsdtWit9: new RadonRequest({
43
22
  sources: [
44
23
  retrievals.HttpGet({
45
- url: "https://api-cloud.bitmart.com/spot/v1/ticker?symbol=WIT_USDT",
24
+ url: "https://api.mexc.com/api/v3/ticker/price?symbol=WITUSDT",
46
25
  script: RadonScript(types.RadonString)
47
26
  .parseJSONMap()
48
- .getMap("data")
49
- .getArray("tickers")
50
- .getMap(0)
51
- .getFloat("last_price")
52
- .power(-1)
53
- .multiply(1e9)
54
- .round(),
55
- }),
56
- retrievals.HttpGet({
57
- url: "https://data.gateapi.io/api2/1/ticker/wit_usdt",
58
- script: RadonScript(types.RadonString)
59
- .parseJSONMap()
60
- .getFloat("last")
61
- .power(-1)
62
- .multiply(1e9)
63
- .round(),
64
- }),
65
- retrievals.HttpGet({
66
- url: "https://www.mexc.com/open/api/v2/market/ticker?symbol=WIT_USDT",
67
- script: RadonScript(types.RadonString)
68
- .parseJSONMap()
69
- .getArray("data")
70
- .getMap(0)
71
- .getFloat("last")
72
- .power(-1)
73
- .multiply(1e9)
27
+ .getFloat("price")
28
+ .multiply(1e6)
74
29
  .round(),
75
30
  }),
76
31
  ],
@@ -85,4 +40,4 @@ module.exports = {
85
40
  witnessReducer: reducers.ConcatHash(),
86
41
  }),
87
42
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi93aXRuZXQvYXNzZXRzL3JlcXVlc3RzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQ0osWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixLQUFLLEdBQ04sR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUVsQyxNQUFNLENBQUMsT0FBTyxHQUFHO0lBRWYsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFO2dCQUNOLG1DQUFtQyxFQUFFLElBQUksWUFBWSxDQUFDO29CQUNwRCxPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLE9BQU8sQ0FBQzs0QkFDakIsR0FBRyxFQUFFLDhEQUE4RDs0QkFDbkUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2lDQUNuQyxZQUFZLEVBQUU7aUNBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQ0FDZCxRQUFRLENBQUMsU0FBUyxDQUFDO2lDQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDO2lDQUNULFFBQVEsQ0FBQyxZQUFZLENBQUM7aUNBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUM7aUNBQ2IsS0FBSyxFQUFFO3lCQUNYLENBQUM7d0JBQ0YsVUFBVSxDQUFDLE9BQU8sQ0FBQzs0QkFDakIsR0FBRyxFQUFFLGdEQUFnRDs0QkFDckQsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2lDQUNuQyxZQUFZLEVBQUU7aUNBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQztpQ0FDaEIsUUFBUSxDQUFDLEdBQUcsQ0FBQztpQ0FDYixLQUFLLEVBQUU7eUJBQ1gsQ0FBQzt3QkFDRixVQUFVLENBQUMsT0FBTyxDQUFDOzRCQUNqQixHQUFHLEVBQUUsZ0VBQWdFOzRCQUNyRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7aUNBQ25DLFlBQVksRUFBRTtpQ0FDZCxRQUFRLENBQUMsTUFBTSxDQUFDO2lDQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDO2lDQUNULFFBQVEsQ0FBQyxNQUFNLENBQUM7aUNBQ2hCLFFBQVEsQ0FBQyxHQUFHLENBQUM7aUNBQ2IsS0FBSyxFQUFFO3lCQUNYLENBQUM7cUJBQ0g7b0JBQ0QsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkQsY0FBYyxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUU7aUJBQ3RDLENBQUM7Z0JBQ0YsbUNBQW1DLEVBQUUsSUFBSSxZQUFZLENBQUM7b0JBQ3BELE9BQU8sRUFBRTt3QkFDUCxVQUFVLENBQUMsT0FBTyxDQUFDOzRCQUNqQixHQUFHLEVBQUUsOERBQThEOzRCQUNuRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7aUNBQ25DLFlBQVksRUFBRTtpQ0FDZCxNQUFNLENBQUMsTUFBTSxDQUFDO2lDQUNkLFFBQVEsQ0FBQyxTQUFTLENBQUM7aUNBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUNBQ1QsUUFBUSxDQUFDLFlBQVksQ0FBQztpQ0FDdEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNULFFBQVEsQ0FBQyxHQUFHLENBQUM7aUNBQ2IsS0FBSyxFQUFFO3lCQUNYLENBQUM7d0JBQ0YsVUFBVSxDQUFDLE9BQU8sQ0FBQzs0QkFDakIsR0FBRyxFQUFFLGdEQUFnRDs0QkFDckQsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2lDQUNuQyxZQUFZLEVBQUU7aUNBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQztpQ0FDaEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNULFFBQVEsQ0FBQyxHQUFHLENBQUM7aUNBQ2IsS0FBSyxFQUFFO3lCQUNYLENBQUM7d0JBQ0YsVUFBVSxDQUFDLE9BQU8sQ0FBQzs0QkFDakIsR0FBRyxFQUFFLGdFQUFnRTs0QkFDckUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2lDQUNuQyxZQUFZLEVBQUU7aUNBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQztpQ0FDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQztpQ0FDVCxRQUFRLENBQUMsTUFBTSxDQUFDO2lDQUNoQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUNBQ1QsUUFBUSxDQUFDLEdBQUcsQ0FBQztpQ0FDYixLQUFLLEVBQUU7eUJBQ1gsQ0FBQztxQkFDSDtvQkFDRCxjQUFjLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNuRCxjQUFjLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRTtpQkFDdEMsQ0FBQzthQUNIO1NBQ0Y7S0FDRjtJQUNELDBCQUEwQixFQUFFLElBQUksWUFBWSxDQUFDO1FBQzNDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3pCLGNBQWMsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFO0tBQ3RDLENBQUM7Q0FDSCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qge1xyXG4gIFJhZG9uUmVxdWVzdCxcclxuICBSYWRvblNjcmlwdCxcclxuICBmaWx0ZXJzLFxyXG4gIHJlZHVjZXJzLFxyXG4gIHJldHJpZXZhbHMsXHJcbiAgdHlwZXMsXHJcbn0gPSByZXF1aXJlKFwiLi4vLi4vc3JjL2xpYi9yYWRvblwiKVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gIGRlZmk6IHtcclxuICAgIHRpY2tlcnM6IHtcclxuICAgICAgY3J5cHRvOiB7XHJcbiAgICAgICAgV2l0T3JhY2xlUmVxdWVzdFByaWNlQ3J5cHRvV2l0VXNkdDY6IG5ldyBSYWRvblJlcXVlc3Qoe1xyXG4gICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICByZXRyaWV2YWxzLkh0dHBHZXQoe1xyXG4gICAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS1jbG91ZC5iaXRtYXJ0LmNvbS9zcG90L3YxL3RpY2tlcj9zeW1ib2w9V0lUX1VTRFRcIixcclxuICAgICAgICAgICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKVxyXG4gICAgICAgICAgICAgICAgLnBhcnNlSlNPTk1hcCgpXHJcbiAgICAgICAgICAgICAgICAuZ2V0TWFwKFwiZGF0YVwiKVxyXG4gICAgICAgICAgICAgICAgLmdldEFycmF5KFwidGlja2Vyc1wiKVxyXG4gICAgICAgICAgICAgICAgLmdldE1hcCgwKVxyXG4gICAgICAgICAgICAgICAgLmdldEZsb2F0KFwibGFzdF9wcmljZVwiKVxyXG4gICAgICAgICAgICAgICAgLm11bHRpcGx5KDFlNilcclxuICAgICAgICAgICAgICAgIC5yb3VuZCgpLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgcmV0cmlldmFscy5IdHRwR2V0KHtcclxuICAgICAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly9kYXRhLmdhdGVhcGkuaW8vYXBpMi8xL3RpY2tlci93aXRfdXNkdFwiLFxyXG4gICAgICAgICAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpXHJcbiAgICAgICAgICAgICAgICAucGFyc2VKU09OTWFwKClcclxuICAgICAgICAgICAgICAgIC5nZXRGbG9hdChcImxhc3RcIilcclxuICAgICAgICAgICAgICAgIC5tdWx0aXBseSgxZTYpXHJcbiAgICAgICAgICAgICAgICAucm91bmQoKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHJldHJpZXZhbHMuSHR0cEdldCh7XHJcbiAgICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vd3d3Lm1leGMuY29tL29wZW4vYXBpL3YyL21hcmtldC90aWNrZXI/c3ltYm9sPVdJVF9VU0RUXCIsXHJcbiAgICAgICAgICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvblN0cmluZylcclxuICAgICAgICAgICAgICAgIC5wYXJzZUpTT05NYXAoKVxyXG4gICAgICAgICAgICAgICAgLmdldEFycmF5KFwiZGF0YVwiKVxyXG4gICAgICAgICAgICAgICAgLmdldE1hcCgwKVxyXG4gICAgICAgICAgICAgICAgLmdldEZsb2F0KFwibGFzdFwiKVxyXG4gICAgICAgICAgICAgICAgLm11bHRpcGx5KDFlNilcclxuICAgICAgICAgICAgICAgIC5yb3VuZCgpLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzb3VyY2VzUmVkdWNlcjogcmVkdWNlcnMuTWVkaWFuKGZpbHRlcnMuU3RkZXYoMS40KSksXHJcbiAgICAgICAgICB3aXRuZXNzUmVkdWNlcjogcmVkdWNlcnMuUHJpY2VUYWxseSgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIFdpdE9yYWNsZVJlcXVlc3RQcmljZUNyeXB0b1VzZHRXaXQ5OiBuZXcgUmFkb25SZXF1ZXN0KHtcclxuICAgICAgICAgIHNvdXJjZXM6IFtcclxuICAgICAgICAgICAgcmV0cmlldmFscy5IdHRwR2V0KHtcclxuICAgICAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly9hcGktY2xvdWQuYml0bWFydC5jb20vc3BvdC92MS90aWNrZXI/c3ltYm9sPVdJVF9VU0RUXCIsXHJcbiAgICAgICAgICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvblN0cmluZylcclxuICAgICAgICAgICAgICAgIC5wYXJzZUpTT05NYXAoKVxyXG4gICAgICAgICAgICAgICAgLmdldE1hcChcImRhdGFcIilcclxuICAgICAgICAgICAgICAgIC5nZXRBcnJheShcInRpY2tlcnNcIilcclxuICAgICAgICAgICAgICAgIC5nZXRNYXAoMClcclxuICAgICAgICAgICAgICAgIC5nZXRGbG9hdChcImxhc3RfcHJpY2VcIilcclxuICAgICAgICAgICAgICAgIC5wb3dlcigtMSlcclxuICAgICAgICAgICAgICAgIC5tdWx0aXBseSgxZTkpXHJcbiAgICAgICAgICAgICAgICAucm91bmQoKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHJldHJpZXZhbHMuSHR0cEdldCh7XHJcbiAgICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vZGF0YS5nYXRlYXBpLmlvL2FwaTIvMS90aWNrZXIvd2l0X3VzZHRcIixcclxuICAgICAgICAgICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKVxyXG4gICAgICAgICAgICAgICAgLnBhcnNlSlNPTk1hcCgpXHJcbiAgICAgICAgICAgICAgICAuZ2V0RmxvYXQoXCJsYXN0XCIpXHJcbiAgICAgICAgICAgICAgICAucG93ZXIoLTEpXHJcbiAgICAgICAgICAgICAgICAubXVsdGlwbHkoMWU5KVxyXG4gICAgICAgICAgICAgICAgLnJvdW5kKCksXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICByZXRyaWV2YWxzLkh0dHBHZXQoe1xyXG4gICAgICAgICAgICAgIHVybDogXCJodHRwczovL3d3dy5tZXhjLmNvbS9vcGVuL2FwaS92Mi9tYXJrZXQvdGlja2VyP3N5bWJvbD1XSVRfVVNEVFwiLFxyXG4gICAgICAgICAgICAgIHNjcmlwdDogUmFkb25TY3JpcHQodHlwZXMuUmFkb25TdHJpbmcpXHJcbiAgICAgICAgICAgICAgICAucGFyc2VKU09OTWFwKClcclxuICAgICAgICAgICAgICAgIC5nZXRBcnJheShcImRhdGFcIilcclxuICAgICAgICAgICAgICAgIC5nZXRNYXAoMClcclxuICAgICAgICAgICAgICAgIC5nZXRGbG9hdChcImxhc3RcIilcclxuICAgICAgICAgICAgICAgIC5wb3dlcigtMSlcclxuICAgICAgICAgICAgICAgIC5tdWx0aXBseSgxZTkpXHJcbiAgICAgICAgICAgICAgICAucm91bmQoKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc291cmNlc1JlZHVjZXI6IHJlZHVjZXJzLk1lZGlhbihmaWx0ZXJzLlN0ZGV2KDEuNCkpLFxyXG4gICAgICAgICAgd2l0bmVzc1JlZHVjZXI6IHJlZHVjZXJzLlByaWNlVGFsbHkoKSxcclxuICAgICAgICB9KSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBXaXRPcmFjbGVSZXF1ZXN0UmFuZG9tbmVzczogbmV3IFJhZG9uUmVxdWVzdCh7XHJcbiAgICBzb3VyY2VzOiByZXRyaWV2YWxzLlJORygpLFxyXG4gICAgd2l0bmVzc1JlZHVjZXI6IHJlZHVjZXJzLkNvbmNhdEhhc2goKSxcclxuICB9KSxcclxufVxyXG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi93aXRuZXQvYXNzZXRzL3JlcXVlc3RzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQ0osWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixLQUFLLEdBQ04sR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUVsQyxNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2YsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFO2dCQUNOLG1DQUFtQyxFQUFFLElBQUksWUFBWSxDQUFDO29CQUNwRCxPQUFPLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLE9BQU8sQ0FBQzs0QkFDakIsR0FBRyxFQUFFLHlEQUF5RDs0QkFDOUQsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2lDQUNuQyxZQUFZLEVBQUU7aUNBQ2QsUUFBUSxDQUFDLE9BQU8sQ0FBQztpQ0FDakIsUUFBUSxDQUFDLEdBQUcsQ0FBQztpQ0FDYixLQUFLLEVBQUU7eUJBQ1gsQ0FBQztxQkFDSDtvQkFDRCxjQUFjLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNuRCxjQUFjLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRTtpQkFDdEMsQ0FBQztnQkFDRixtQ0FBbUMsRUFBRSxJQUFJLFlBQVksQ0FBQztvQkFDcEQsT0FBTyxFQUFFO3dCQUNQLFVBQVUsQ0FBQyxPQUFPLENBQUM7NEJBQ2pCLEdBQUcsRUFBRSx5REFBeUQ7NEJBQzlELE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztpQ0FDbkMsWUFBWSxFQUFFO2lDQUNkLFFBQVEsQ0FBQyxPQUFPLENBQUM7aUNBQ2pCLFFBQVEsQ0FBQyxHQUFHLENBQUM7aUNBQ2IsS0FBSyxFQUFFO3lCQUNYLENBQUM7cUJBQ0g7b0JBQ0QsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkQsY0FBYyxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUU7aUJBQ3RDLENBQUM7YUFDSDtTQUNGO0tBQ0Y7SUFDRCwwQkFBMEIsRUFBRSxJQUFJLFlBQVksQ0FBQztRQUMzQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUN6QixjQUFjLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRTtLQUN0QyxDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHtcclxuICBSYWRvblJlcXVlc3QsXHJcbiAgUmFkb25TY3JpcHQsXHJcbiAgZmlsdGVycyxcclxuICByZWR1Y2VycyxcclxuICByZXRyaWV2YWxzLFxyXG4gIHR5cGVzLFxyXG59ID0gcmVxdWlyZShcIi4uLy4uL3NyYy9saWIvcmFkb25cIilcclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gIGRlZmk6IHtcclxuICAgIHRpY2tlcnM6IHtcclxuICAgICAgY3J5cHRvOiB7XHJcbiAgICAgICAgV2l0T3JhY2xlUmVxdWVzdFByaWNlQ3J5cHRvV2l0VXNkdDY6IG5ldyBSYWRvblJlcXVlc3Qoe1xyXG4gICAgICAgICAgc291cmNlczogW1xyXG4gICAgICAgICAgICByZXRyaWV2YWxzLkh0dHBHZXQoe1xyXG4gICAgICAgICAgICAgIHVybDogXCJodHRwczovL2FwaS5tZXhjLmNvbS9hcGkvdjMvdGlja2VyL3ByaWNlP3N5bWJvbD1XSVRVU0RUXCIsXHJcbiAgICAgICAgICAgICAgc2NyaXB0OiBSYWRvblNjcmlwdCh0eXBlcy5SYWRvblN0cmluZylcclxuICAgICAgICAgICAgICAgIC5wYXJzZUpTT05NYXAoKVxyXG4gICAgICAgICAgICAgICAgLmdldEZsb2F0KFwicHJpY2VcIilcclxuICAgICAgICAgICAgICAgIC5tdWx0aXBseSgxZTYpXHJcbiAgICAgICAgICAgICAgICAucm91bmQoKSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc291cmNlc1JlZHVjZXI6IHJlZHVjZXJzLk1lZGlhbihmaWx0ZXJzLlN0ZGV2KDEuNCkpLFxyXG4gICAgICAgICAgd2l0bmVzc1JlZHVjZXI6IHJlZHVjZXJzLlByaWNlVGFsbHkoKSxcclxuICAgICAgICB9KSxcclxuICAgICAgICBXaXRPcmFjbGVSZXF1ZXN0UHJpY2VDcnlwdG9Vc2R0V2l0OTogbmV3IFJhZG9uUmVxdWVzdCh7XHJcbiAgICAgICAgICBzb3VyY2VzOiBbXHJcbiAgICAgICAgICAgIHJldHJpZXZhbHMuSHR0cEdldCh7XHJcbiAgICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vYXBpLm1leGMuY29tL2FwaS92My90aWNrZXIvcHJpY2U/c3ltYm9sPVdJVFVTRFRcIixcclxuICAgICAgICAgICAgICBzY3JpcHQ6IFJhZG9uU2NyaXB0KHR5cGVzLlJhZG9uU3RyaW5nKVxyXG4gICAgICAgICAgICAgICAgLnBhcnNlSlNPTk1hcCgpXHJcbiAgICAgICAgICAgICAgICAuZ2V0RmxvYXQoXCJwcmljZVwiKVxyXG4gICAgICAgICAgICAgICAgLm11bHRpcGx5KDFlNilcclxuICAgICAgICAgICAgICAgIC5yb3VuZCgpLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzb3VyY2VzUmVkdWNlcjogcmVkdWNlcnMuTWVkaWFuKGZpbHRlcnMuU3RkZXYoMS40KSksXHJcbiAgICAgICAgICB3aXRuZXNzUmVkdWNlcjogcmVkdWNlcnMuUHJpY2VUYWxseSgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIFdpdE9yYWNsZVJlcXVlc3RSYW5kb21uZXNzOiBuZXcgUmFkb25SZXF1ZXN0KHtcclxuICAgIHNvdXJjZXM6IHJldHJpZXZhbHMuUk5HKCksXHJcbiAgICB3aXRuZXNzUmVkdWNlcjogcmVkdWNlcnMuQ29uY2F0SGFzaCgpLFxyXG4gIH0pLFxyXG59XHJcbiJdfQ==