@shipload/sdk 1.0.0-next.24 → 1.0.0-next.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/shipload.d.ts +114 -40
- package/lib/shipload.js +2204 -654
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2206 -655
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +27 -13
- package/lib/testing.js +80 -15
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +80 -15
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/crafting.test.ts +7 -0
- package/src/capabilities/crafting.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/contracts/platform.ts +21 -1
- package/src/contracts/server.ts +83 -43
- package/src/derivation/capabilities.ts +4 -3
- package/src/entities/slot-multiplier.ts +2 -0
- package/src/index-module.ts +1 -0
- package/src/managers/actions.ts +71 -20
- package/src/managers/base.ts +4 -0
- package/src/managers/construction-types.ts +12 -1
- package/src/managers/construction.ts +105 -2
- package/src/managers/context.ts +2 -1
- package/src/managers/index.ts +1 -0
- package/src/managers/plot.ts +9 -5
- package/src/nft/atomicassets.abi.json +1342 -0
- package/src/nft/atomicassets.ts +9 -3
- package/src/scheduling/schedule.ts +6 -1
- package/src/shipload.ts +11 -1
- package/src/types.ts +1 -0
- package/src/capabilities/loading.ts +0 -8
package/lib/shipload.js
CHANGED
|
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
10
10
|
|
|
11
11
|
var ContractKit__default = /*#__PURE__*/_interopDefaultLegacy(ContractKit);
|
|
12
12
|
|
|
13
|
-
const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yABsLYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwACBW93bmVyBG5hbWUNbGFzdF9hc3NldF9pZAZ1aW50NjQRAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAAAAhWlEBWNsb3Nl4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xvc2UKc3VtbWFyeTogJ0Nsb3NlIGEgZGVwb3NpdCBiYWxhbmNlIHJvdycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkNsb3NlIHRoZSBvd25lcidzIGRlcG9zaXQgYmFsYW5jZSByb3cgZm9yIHRoZSBnaXZlbiB0b2tlbiBhbmQgZnJlZSBpdHMgUkFNLiBUaGUgYmFsYW5jZSBtdXN0IGJlIHplcm8gYmVmb3JlIGNsb3NpbmcuIFJlcXVpcmVzIHRoZSBvd25lcidzIGF1dGhvcml0eS6QHaZVpeyOSgxkZWJpdGRlcG9zaXSdBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZWJpdGRlcG9zaXQKc3VtbWFyeTogJ0RlYml0IGEgZGVwb3NpdCBiYWxhbmNlIGZvciBhIHdyYXAgb3BlcmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgYSByZWdpc3RlcmVkLCBlbmFibGVkIGdhbWUgY29udHJhY3Qgb25seS4gRGViaXRzIHRoZSBvd25lcidzIGRlcG9zaXQgYmFsYW5jZSBieSB0aGUgbG9ja2VkIGFtb3VudCBwbHVzIHRoZSBmZWUsIGFuZCBjcmVkaXRzIHRoZSBmZWUgdG8gdGhlIGNvbmZpZ3VyZWQgZmVlIGFjY291bnQuIFVzZWQgYnkgYSBnYW1lJ3Mgd3JhcCBmbG93IHRvIGNvbGxlY3QgdGhlIHdyYXAgY29zdC4gQ2Fubm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBwbGF5ZXJzIG9yIHVucmVnaXN0ZXJlZCBhY2NvdW50cy4AAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LgCAkoapeMxUCmVuYWJsZWdhbWX8AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGVnYW1lCnN1bW1hcnk6ICdFbmFibGUvZGlzYmFibGUgYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAMFWlBG9wZW6bAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBvcGVuCnN1bW1hcnk6ICdPcGVuIGEgZGVwb3NpdCBiYWxhbmNlIHJvdycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCk9wZW4gYSB6ZXJvLWJhbGFuY2UgZGVwb3NpdCByb3cgZm9yIHRoZSBnaXZlbiBvd25lciBhbmQgdG9rZW4sIHdpdGggUkFNIHBhaWQgYnkgdGhlIG93bmVyLiBIYXMgbm8gZWZmZWN0IGlmIHRoZSByb3cgYWxyZWFkeSBleGlzdHMuIE11c3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgb3duZXIgY2FuIHJlY2VpdmUgdG9rZW4gZGVwb3NpdHMgb3Igd3JhcCByZWZ1bmRzLqCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
|
|
13
|
+
const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAB0LYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHJlbGdhdGVhc3NldAABCGFzc2V0X2lkBnVpbnQ2NAxyZWxnYXRlb3duZXIAAQVvd25lcgRuYW1lDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwADBW93bmVyBG5hbWUEZ2FtZQRuYW1lDWxhc3RfYXNzZXRfaWQGdWludDY0EwCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAIVpRAVjbG9zZeICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsb3NlCnN1bW1hcnk6ICdDbG9zZSBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpDbG9zZSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2Ugcm93IGZvciB0aGUgZ2l2ZW4gdG9rZW4gYW5kIGZyZWUgaXRzIFJBTS4gVGhlIGJhbGFuY2UgbXVzdCBiZSB6ZXJvIGJlZm9yZSBjbG9zaW5nLiBSZXF1aXJlcyB0aGUgb3duZXIncyBhdXRob3JpdHkukB2mVaXsjkoMZGViaXRkZXBvc2l0nQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGViaXRkZXBvc2l0CnN1bW1hcnk6ICdEZWJpdCBhIGRlcG9zaXQgYmFsYW5jZSBmb3IgYSB3cmFwIG9wZXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IGEgcmVnaXN0ZXJlZCwgZW5hYmxlZCBnYW1lIGNvbnRyYWN0IG9ubHkuIERlYml0cyB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UgYnkgdGhlIGxvY2tlZCBhbW91bnQgcGx1cyB0aGUgZmVlLCBhbmQgY3JlZGl0cyB0aGUgZmVlIHRvIHRoZSBjb25maWd1cmVkIGZlZSBhY2NvdW50LiBVc2VkIGJ5IGEgZ2FtZSdzIHdyYXAgZmxvdyB0byBjb2xsZWN0IHRoZSB3cmFwIGNvc3QuIENhbm5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgcGxheWVycyBvciB1bnJlZ2lzdGVyZWQgYWNjb3VudHMuAAAAAKh4zFQGZW5hYmxl8wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdFbmFibGUvZGlzYWJsZSBwbGF0Zm9ybScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBwbGF0Zm9ybSBjb250cmFjdC4AgJKGqXjMVAplbmFibGVnYW1l/AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlZ2FtZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2JhYmxlIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC7gp6mSojQ1XQxmb3VuZGNvbXBhbnmDAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3VuZGNvbXBhbnkKc3VtbWFyeTogJ0ZvdW5kIGEgbmV3IGNvbXBhbnknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpGb3VuZCBhIG5ldyBjb21wYW55IGluIHRoZSBTaGlwbG9hZCBwbGF0Zm9ybSBjb250cmFjdC4AAAAAADBVpQRvcGVumwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogb3BlbgpzdW1tYXJ5OiAnT3BlbiBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpPcGVuIGEgemVyby1iYWxhbmNlIGRlcG9zaXQgcm93IGZvciB0aGUgZ2l2ZW4gb3duZXIgYW5kIHRva2VuLCB3aXRoIFJBTSBwYWlkIGJ5IHRoZSBvd25lci4gSGFzIG5vIGVmZmVjdCBpZiB0aGUgcm93IGFscmVhZHkgZXhpc3RzLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIG93bmVyIGNhbiByZWNlaXZlIHRva2VuIGRlcG9zaXRzIG9yIHdyYXAgcmVmdW5kcy6QFcZGZcOiugxyZWxnYXRlYXNzZXQAcNXkVGXDoroMcmVsZ2F0ZW93bmVyAKCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
|
|
14
14
|
const abi$1 = antelope.ABI.from(abiBlob$1);
|
|
15
15
|
exports.PlatformTypes = void 0;
|
|
16
16
|
(function (Types) {
|
|
@@ -212,6 +212,24 @@ exports.PlatformTypes = void 0;
|
|
|
212
212
|
antelope.Struct.type('open')
|
|
213
213
|
], open);
|
|
214
214
|
Types.open = open;
|
|
215
|
+
let relgateasset = class relgateasset extends antelope.Struct {
|
|
216
|
+
};
|
|
217
|
+
tslib.__decorate([
|
|
218
|
+
antelope.Struct.field(antelope.UInt64)
|
|
219
|
+
], relgateasset.prototype, "asset_id", void 0);
|
|
220
|
+
relgateasset = tslib.__decorate([
|
|
221
|
+
antelope.Struct.type('relgateasset')
|
|
222
|
+
], relgateasset);
|
|
223
|
+
Types.relgateasset = relgateasset;
|
|
224
|
+
let relgateowner = class relgateowner extends antelope.Struct {
|
|
225
|
+
};
|
|
226
|
+
tslib.__decorate([
|
|
227
|
+
antelope.Struct.field(antelope.Name)
|
|
228
|
+
], relgateowner.prototype, "owner", void 0);
|
|
229
|
+
relgateowner = tslib.__decorate([
|
|
230
|
+
antelope.Struct.type('relgateowner')
|
|
231
|
+
], relgateowner);
|
|
232
|
+
Types.relgateowner = relgateowner;
|
|
215
233
|
let setepochtime = class setepochtime extends antelope.Struct {
|
|
216
234
|
};
|
|
217
235
|
tslib.__decorate([
|
|
@@ -385,6 +403,9 @@ exports.PlatformTypes = void 0;
|
|
|
385
403
|
tslib.__decorate([
|
|
386
404
|
antelope.Struct.field(antelope.Name)
|
|
387
405
|
], wrapgate_row.prototype, "owner", void 0);
|
|
406
|
+
tslib.__decorate([
|
|
407
|
+
antelope.Struct.field(antelope.Name)
|
|
408
|
+
], wrapgate_row.prototype, "game", void 0);
|
|
388
409
|
tslib.__decorate([
|
|
389
410
|
antelope.Struct.field(antelope.UInt64)
|
|
390
411
|
], wrapgate_row.prototype, "last_asset_id", void 0);
|
|
@@ -427,7 +448,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
427
448
|
Contract: Contract$1
|
|
428
449
|
});
|
|
429
450
|
|
|
430
|
-
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiiAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAgJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1wbG90AAMKYnVpbGRlcl9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmNvb3Jkcwtjb29yZGluYXRlcwljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwZjb21taXQAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGY29tbWl0C2NoZWNrc3VtMjU2CmNvbW1pdF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAQCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQACAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmCmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABoEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpdGVtX2lkBnVpbnQxNgljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPw5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQllcG9jaF9yb3cABAVlcG9jaAZ1aW50NjQKb3JhY2xlX2lkcwZuYW1lW10JdGhyZXNob2xkBXVpbnQ4BHNlZWQLY2hlY2tzdW0yNTYMZml4Y2FyZ29tYXNzAAEJZW50aXR5X2lkBnVpbnQ2NAtmb3JjZXJldmVhbAABBWVwb2NoBnVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAECXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg5nYXRoZXJlcl9zdGF0cwADBXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MTYFZGVwdGgGdWludDE2CWdldGNvbmZpZwAACmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAMIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDE2C2ltcG9ydGNhcmdvAAEDcm93CWNhcmdvX3JvdwxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwACBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbA9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQOcGFja2VkX21vZHVsZT8LbW9kdWxlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzILbW9kdWxlX3R5cGUFdWludDgEdGllcgV1aW50OA5tb2R1bGVzX3Jlc3VsdAABB21vZHVsZXMNbW9kdWxlX2luZm9bXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvDm5mdF9jYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyEG5mdF9pdGVtX3BheWxvYWQAAgRpdGVtDm5mdF9jYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAwdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lC3RlbXBsYXRlX2lkBWludDMyDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lCW5mdGltZ3VybAACBGl0ZW0KY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0aW5mb19yZXN1bHQAAgdzY2hlbWFzEG5mdF9zY2hlbWFfZGVmW10JdGVtcGxhdGVzEm5mdF90ZW1wbGF0ZV9kZWZbXQZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50EW9yYWNsZV9jb25maWdfcm93AAEJdGhyZXNob2xkBXVpbnQ4Cm9yYWNsZV9yb3cAAQJpZARuYW1lDXBhY2tlZF9tb2R1bGUAAgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQKcGxhY2VjYXJnbwADBW93bmVyBG5hbWUHaG9zdF9pZAZ1aW50NjQIYXNzZXRfaWQGdWludDY0C3BsYWNlZW50aXR5AAMFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQPdGFyZ2V0X25leHVzX2lkBnVpbnQ2NAtwbGF5ZXJfaW5mbwADBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQ9wcm9qZWN0ZWRfc3RhdGUADgVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29fdmlld1tdCGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UABw5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWULcmVzZXJ2ZV9yb3cABQJpZAZ1aW50NjQIY29vcmRfaWQGdWludDY0B3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIKbGFzdF9ibG9jaxRibG9ja190aW1lc3RhbXBfdHlwZQdyZXNvbHZlAAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQhzbG90X2RlZgACBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cAAwdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcIdHJhbnNmZXIAAwlzb3VyY2VfaWQGdWludDY0B2Rlc3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAUCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZxZzdHJhdHVtX3JlbWFpbmluZ190eXBlEXN0cmF0dW1fcmVtYWluaW5nFW5mdF9pdGVtX3BheWxvYWRfdHlwZRBuZnRfaXRlbV9wYXlsb2FkCHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAR3YXJwAAMCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAA53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NFAAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAADINFbpTEQJY2xhaW1wbG90AAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AQHaYVpWyYgpnZXRkZXBvc2l0AABUPI65qLJiC2dldGVsaWdpYmxlyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZWxpZ2libGUKc3VtbWFyeTogJ0dldCBlbGlnaWJsZSByZXNvdXJjZSBpdGVtIElEcyBhdCBhIGxvY2F0aW9uIGFuZCBzdHJhdHVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbGlzdCBvZiByZXNvdXJjZSBpdGVtIElEcyBlbGlnaWJsZSB0byBiZSBnYXRoZXJlZCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgYW5kIHN0cmF0dW0gZGVwdGguIEl0ZW1zIGFyZSBnYXRlZCBieSBib3RoIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIHByb2ZpbGUgYW5kIHRoZSBkZXB0aCB0aHJlc2hvbGQgZm9yIGVhY2ggdGllci4AAMAR5amyYglnZXRlbnRjbHOMAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRjbHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoT3JiaXRhbFZlc3NlbCwgUGxhbmV0YXJ5U3RydWN0dXJlKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgZW50aXR5IGNsYXNzIGlkZW50aWZpZXJzLgCwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgBMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AgMLm5DWzYgpnZXRuZnRiYXNlAAAAXdPlNbNiCmdldG5mdGluZm/wAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZnRpbmZvCnN1bW1hcnk6ICdHZXQgTkZUIHNjaGVtYSBhbmQgdGVtcGxhdGUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIEF0b21pY0Fzc2V0cyBzY2hlbWFzIGFuZCB0ZW1wbGF0ZXMgdGhlIGdhbWUgY29udHJhY3QgZXhwZWN0cywgcGx1cyB0aGUgY3VycmVudCBgaXRlbV9pZCDihpIgKHRlbXBsYXRlX2lkLCBzY2hlbWFfbmFtZSlgIG1hcHBpbmcgc3RvcmVkIGluIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBzeW5jIGF0b21pY2Fzc2V0cyBzdGF0ZSB3aXRoIHRoZSBjb250cmFjdC4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLqCyyfjRW7NiDGdldHByb2pzdGF0ZcsDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHByb2pzdGF0ZQpzdW1tYXJ5OiAnR2V0IHByb2plY3RlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBwcm9qZWN0ZWQgc3RhdGUgb2YgYW4gZW50aXR5IGFmdGVyIGFwcGx5aW5nIHRoZSBuZXh0IHRhc2tfY291bnQgc2NoZWR1bGVkIHRhc2tzIChvciBhbGwgdGFza3MgaWYgdGFza19jb3VudCBpcyBvbWl0dGVkKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBwcmV2aWV3IHRoZSByZXN1bHQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUgd2l0aG91dCByZXNvbHZpbmcgb24tY2hhaW4uAABQ1SF1s2IJZ2V0cmVjaXBlpgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlCnN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgY3JhZnRpbmcgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcmVjaXBlIHdob3NlIG91dHB1dCBtYXRjaGVzIHRoZSBnaXZlbiBpdGVtIGlkLCBpbmNsdWRpbmcgaXRzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRpc3BsYXkgY3JhZnRpbmcgcmVxdWlyZW1lbnRzLgAAVtUhdbNiCmdldHJlY2lwZXOsAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGVzCnN1bW1hcnk6ICdMaXN0IGNyYWZ0aW5nIHJlY2lwZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY3JhZnRpbmcgcmVjaXBlcyBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgbG93ZXIgYm91bmQgb3V0cHV0IGl0ZW0gaWQsIHVwIHRvIHRoZSBzcGVjaWZpZWQgbGltaXQuIEVhY2ggZW50cnkgaW5jbHVkZXMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uAADOBmF1s2IKZ2V0cmVzY2F0c54DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2NhdHMKc3VtbWFyeTogJ0dldCByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKG9yZSwgZ2FzLCByZWdvbGl0aCwgYmlvbWFzcywgY3J5c3RhbCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIHJlc291cmNlIHN1YnR5cGUgaWRlbnRpZmllcnMuALDaV2F1s2ILZ2V0cmVzZXJ2ZXP8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNlcnZlcwpzdW1tYXJ5OiAnR2V0IGN1cnJlbnQgcmVzZXJ2ZSBtb2RpZmljYXRpb25zIGF0IGEgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGNoYWluJ3MgbW9kaWZpY2F0aW9ucyB0byBkZXJpdmVkIHJlc2VydmVzIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlIGZvciB0aGUgY3VycmVudCBlcG9jaCBhcyBhIGxpc3Qgb2Yge3N0cmF0dW0sIHJlbWFpbmluZ30gcGFpcnMuIFN0cmF0YSBub3QgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgdXNlIHRoZWlyIGRlcml2ZWQgaW5pdGlhbCByZXNlcnZlLiBDb21wb3NlIHdpdGggU0RLIGRlcml2YXRpb24gdG8gZ2V0IHRoZSBmdWxsIHBlci1sb2NhdGlvbiBzdHJhdGEgdmlldy6AFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28A4LPLU+VLq3QMaW1wb3J0ZW50aXR5AACqppflS6t0C2ltcG9ydGdyb3VwAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEAAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAADMAAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnAEB2mFaVsmIOZXh0ZW5kZWRfYXNzZXQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
451
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDimAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAgJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGY29vcmRzC2Nvb3JkaW5hdGVzDGNsYWltc3RhcnRlcgABBW93bmVyBG5hbWUJY2xlYW5yc3ZwAAIFZXBvY2gGdWludDY0CG1heF9yb3dzBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BmNvbW1pdAtjaGVja3N1bTI1Ngpjb21taXRfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZjb21taXQLY2hlY2tzdW0yNTYJY29uZmlnbG9nAAEGY29uZmlnC2dhbWVfY29uZmlnC2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2PwVjcmFmdAAEAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdDWNyYWZ0ZXJfc3RhdHMAAgVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCGRlbW9saXNoAAEJZW50aXR5X2lkBnVpbnQ2NAZkZXBsb3kAAgJpZAZ1aW50NjQDcmVmCWNhcmdvX3JlZgpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAaBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhnYXRoZXJlcg9nYXRoZXJlcl9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8NZW50aXR5X2xheW91dAACDmVudGl0eV9pdGVtX2lkBnVpbnQxNgVzbG90cwpzbG90X2RlZltdFWVudGl0eV9sYXlvdXRzX3Jlc3VsdAABCGVudGl0aWVzD2VudGl0eV9sYXlvdXRbXQplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CmVudGl0eV9yb3cACwJpZAZ1aW50NjQFb3duZXIEbmFtZQRraW5kBG5hbWUHaXRlbV9pZAZ1aW50MTYEbmFtZQZzdHJpbmcFc3RhdHMGdWludDY0C2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQd1aW50MzI/CWNhcmdvbWFzcwZ1aW50MzIHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQLZm9yY2VyZXZlYWwAAQVlcG9jaAZ1aW50NjQLZ2FtZV9jb25maWcAAwd2ZXJzaW9uBnVpbnQzMghkZWZhdWx0cw9lbnRpdHlfZGVmYXVsdHMFaXRlbXMKaXRlbV9kZWZbXQZnYXRoZXIABAlzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIOZ2F0aGVyZXJfc3RhdHMAAwV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDMyBWRlcHRoBnVpbnQxNgxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10JZ2V0Y29uZmlnAAAKZ2V0ZGVwb3NpdAACBW93bmVyBG5hbWUIYXNzZXRfaWQGdWludDY0C2dldGVsaWdpYmxlAAIGY29vcmRzC2Nvb3JkaW5hdGVzB3N0cmF0dW0GdWludDE2CWdldGVudGNscwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0C2dldGl0ZW1kYXRhAAAKZ2V0aXRlbWlkcwAACGdldGl0ZW1zAAALZ2V0aXRlbXR5cGUAAQdpdGVtX2lkBnVpbnQxNgxnZXRpdGVtdHlwZXMAAAtnZXRraW5kbWV0YQAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQLZ2V0bW9kdHlwZXMAAApnZXRtb2R1bGVzAAAJZ2V0bmVhcmJ5AAIJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCmdldG5mdGJhc2UAAApnZXRuZnRpbmZvAAAJZ2V0cGxheWVyAAEHYWNjb3VudARuYW1lDGdldHByb2pzdGF0ZQACCWVudGl0eV9pZAZ1aW50NjQKdGFza19jb3VudAZ1aW50OD8JZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgKZ2V0cmVzY2F0cwAAC2dldHJlc2VydmVzAAIBeAVpbnQ2NAF5BWludDY0DGdldHJlc291cmNlcwAACGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMAAwhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sD2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OAxtb2R1bGVfZW50cnkAAgR0eXBlBXVpbnQ4CWluc3RhbGxlZA5wYWNrZWRfbW9kdWxlPwttb2R1bGVfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgttb2R1bGVfdHlwZQV1aW50OAR0aWVyBXVpbnQ4Dm1vZHVsZXNfcmVzdWx0AAEHbW9kdWxlcw1tb2R1bGVfaW5mb1tdDm1vdmVtZW50X3N0YXRzAAIGdGhydXN0BnVpbnQzMgVkcmFpbgZ1aW50MzILbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQAOBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/B2xvYWRlcnMNbG9hZGVyX3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/CHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAACB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAHDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10McmVmcnNoZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAxyZW1vdmVvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQFdWludDgUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10GcmV2ZWFsAAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BnJldmVhbAtjaGVja3N1bTI1NgpyZXZlYWxfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZyZXZlYWwLY2hlY2tzdW0yNTYIcm1tb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAp0YXJnZXRfcmVmCmNhcmdvX3JlZj8Icm1uZnRjZmcAAQdpdGVtX2lkBnVpbnQxNghzY2hlZHVsZQACB3N0YXJ0ZWQKdGltZV9wb2ludAV0YXNrcwZ0YXNrW10Mc2NoZW1hX2ZpZWxkAAIEbmFtZQZzdHJpbmcKZmllbGRfdHlwZQZzdHJpbmcJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQxzZXR0aHJlc2hvbGQAAQl0aHJlc2hvbGQFdWludDgLc2V0d3JhcGNvc3QAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0CnNldHdyYXBmZWUAAgdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lCHNsb3RfZGVmAAIEdHlwZQV1aW50OApvdXRwdXRfcGN0BnVpbnQxNhJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwADB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NglzdG93Y2FyZ28ABQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKc3Rvd2VudGl0eQADBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQMc3RyYXR1bV9kYXRhAAIHc3RyYXR1bQxzdHJhdHVtX2luZm8Fc3RhdHMOcmVzb3VyY2Vfc3RhdHMMc3RyYXR1bV9pbmZvAAUHaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQIcmljaG5lc3MGdWludDE2B3Jlc2VydmUGdWludDMyC3Jlc2VydmVfbWF4BnVpbnQzMhFzdHJhdHVtX3JlbWFpbmluZwADB3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIKbGFzdF9ibG9jaxRibG9ja190aW1lc3RhbXBfdHlwZQpzd2FwbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKbW9kdWxlX3JlZgljYXJnb19yZWYEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MzI/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDMyPwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cAAwdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcIdHJhbnNmZXIAAwlzb3VyY2VfaWQGdWludDY0B2Rlc3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAUCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZxZzdHJhdHVtX3JlbWFpbmluZ190eXBlEXN0cmF0dW1fcmVtYWluaW5nFW5mdF9pdGVtX3BheWxvYWRfdHlwZRBuZnRfaXRlbV9wYXlsb2FkCHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAR3YXJwAAMCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAA53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NFMAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAADINFbpTEQJY2xhaW1wbG90AHBVviZj6UxEDGNsYWltc3RhcnRlcgAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgCiUVtdhS5dC2ZvcmNlcmV2ZWFsvgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm9yY2VyZXZlYWwKc3VtbWFyeTogJ0RFQlVHOiBmb3JjZS1maW5hbGl6ZSBhbiBlcG9jaCBmcm9tIGV4aXN0aW5nIHJldmVhbHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZpbmFsaXplIGEgc3R1Y2sgZXBvY2ggYnkgY29tcHV0aW5nIGl0cyBzZWVkIGZyb20gdGhlIHJldmVhbHMgYWxyZWFkeSBzdWJtaXR0ZWQsIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIFRoZSBzZWVkIGlzIGRlcml2ZWQgc29sZWx5IGZyb20gdGhlIHByZS1pbWFnZS1sb2NrZWQgcmV2ZWFscyBhbHJlYWR5IG9uIGNoYWluOyBubyBhZG1pbi1zdXBwbGllZCBlbnRyb3B5IGlzIGludHJvZHVjZWQuIFVzZWQgdG8gdW5ibG9jayBlcG9jaCBwcm9ncmVzc2lvbiB3aGVuIHRoZSB0aHJlc2hvbGQgY2Fubm90IG90aGVyd2lzZSBiZSBtZXQuAAAAAFzVsmEGZ2F0aGVylwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2F0aGVyCnN1bW1hcnk6ICdHYXRoZXIgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpHYXRoZXIgcmVzb3VyY2VzIGF0IHRoZSBzaGlwJ3MgY3VycmVudCBsb2NhdGlvbi4gT25seSB3b3JrcyBhdCBnYXRoZXJhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYSBnYXRoZXIgdGFzayB0aGF0IGNvbnN1bWVzIGVuZXJneSBhbmQgeWllbGRzIGNhcmdvIGJhc2VkIG9uIHRoZSBzaGlwJ3MgZ2F0aGVyZXIgc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLpCVigs7rKZiDGdlbmVzaXNmbGVldKkELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXNmbGVldApzdW1tYXJ5OiAnTWludCB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW1wbGFjZSB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldDogYSBjYWxsZXItc3VwcGxpZWQgc2V0IG9mIGVudGl0aWVzIChzaGlwcywgc3RydWN0dXJlcywgYW5kIGNvbnRhaW5lcnMpIHdyaXR0ZW4gdG8gdGhlIHdvcmxkIGFzLWlzLiBWYWxpZCBvbmx5IGR1cmluZyB0aGUgcHJlLWdlbmVzaXMgd2luZG93LCBiZWZvcmUgZXBvY2ggMSBpcyBmaW5hbGl6ZWQuIFRoZSBzdXBwbGllZCBlbnRpdHkgaWRzIGFyZSBob25vcmVkIGFuZCB0aGUgaWQgc2VxdWVuY2UgaXMgYWR2YW5jZWQgcGFzdCB0aGVtOyBpZCAwIGlzIHJlc2VydmVkIGZvciB0aGUgR2VuZXNpcyBOZXh1cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ53gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgZmxpZ2h0IHRpbWUsIGFuZCBtYXJrZXQgaW5mb3JtYXRpb24uAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS6gssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaPgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAouwblS6t0C2ltcG9ydGNhcmdvAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAqqaX5UurdAtpbXBvcnRncm91cABwlTex5kurdAxpbXBvcnRwbGF5ZXIAuq/C6uZLq3QNaW1wb3J0cmVzZXJ2ZQAAVDYZ50urdAtpbXBvcnRzdGF0ZQAAAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAACIVzPp8poJbmZ0aW1ndXJssgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbmZ0aW1ndXJsCnN1bW1hcnk6ICdHZXQgTkZUIGltYWdlIFVSTCBmb3IgYSBjYXJnbyBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgaW1hZ2UgVVJMIHRoZSBjb250cmFjdCBlbWl0cyBmb3IgYSBnaXZlbiBjYXJnbyBpdGVtLCBvcHRpb25hbGx5IHNjb3BlZCB0byBhIGxvY2F0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGZldGNoIHRoZSBjYW5vbmljYWwgYXJ0d29yayBmb3IgYW4gaXRlbSBvciBwYWNrZWQgZW50aXR5LgAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAZdcghUysCnBsYWNlY2FyZ2/JBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWNhcmdvCnN1bW1hcnk6ICdSZXN0b3JlIE5GVCBjYXJnbyBvbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXN0b3JlcyB0aGUgY2FyZ28gcmVjb3JkZWQgaW4gYW4gdW53cmFwcGVkIE5GVCBvbnRvIGEgaG9zdCBlbnRpdHkuIFZhbGlkYXRlcyBob3N0IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHJlbWFpbmluZyBjYXBhY2l0eSwgZGVzZXJpYWxpemVzIHRoZSBORlQncyBpdGVtIGRhdGEsIGFuZCBhcHBlbmRzIGFuIHVud3JhcCB0YXNrIHRvIGRlbGl2ZXIgdGhlIGNhcmdvIHRvIHRoZSBob3N0LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgB8dnkqhUysC3BsYWNlZW50aXR5wAQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VlbnRpdHkKc3VtbWFyeTogJ01hdGVyaWFsaXplIGEgcGFja2VkLWVudGl0eSBORlQgYXMgYSBsaXZlIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIEVtcGxhY2VzIGEgbGl2ZSBvcmJpdGFsIHZlc3NlbCAoc2hpcCBvciBjb250YWluZXIpIGZyb20gaXRzIHBhY2tlZC1lbnRpdHkgTkZUIGRhdGEgYXQgdGhlIHJlY29yZGVkIHdyYXAgb3JpZ2luLCB0aGVuIHF1ZXVlcyB0cmF2ZWwgYW5kIHJlY2hhcmdlIHRhc2tzIHRvIGRlbGl2ZXIgaXQgdG8gdGhlIHRhcmdldCBuZXh1cyBhdCBmdWxsIGVuZXJneS4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUu4LPLUzV8l7oMcmVmcnNoZW50aXR5uAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVmcnNoZW50aXR5CnN1bW1hcnk6ICdSZWZyZXNoIGRlcml2ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgZGVyaXZlZCBmaWVsZHMgb24gYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgY2FyZ28gYW5kIG1vZHVsZXMsIHJlZnJlc2hpbmcgY2FwYWJpbGl0eSBzdGF0cyBhbmQgY2FyZ28gbWFzcy4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFVzZWQgdG8gcmVjb25jaWxlIGRlcml2ZWQgc3RhdGUgYWZ0ZXIgZGF0YSBtaWdyYXRpb25zIG9yIGNvbnRyYWN0IHVwZ3JhZGVzLqAiMpeqTaW6DHJlbW92ZW9yYWNsZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAKDsGsRpxglzdG93Y2FyZ2/VBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93Y2FyZ28Kc3VtbWFyeTogJ1Jlc2VydmUgYSBjYXJnbyBzdGFjayBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhbmQgY29uc3VtZXMgYSBjYXJnbyBzdGFjayBvbiBhIGxpdmUgZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVmFsaWRhdGVzIGVudGl0eSBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCBwcmVzZW5jZSBhdCB0aGUgbmV4dXMsIGFuZCBjb25maXJtcyB0aGUgdGFyZ2V0IGNhcmdvIHN0YWNrIGlzIGF2YWlsYWJsZSBhbmQgbm90IHJlc2VydmVkIGJ5IGEgcGVuZGluZyB0YXNrLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBORlQncyBpbW11dGFibGUgZGF0YSwgYW5kIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0IGJlZm9yZSBjb25zdW1pbmcgdGhlIGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAIDPLk/FacYKc3Rvd2VudGl0eZkFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3dlbnRpdHkKc3VtbWFyeTogJ1Jlc2VydmUgYW4gZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGEgd2hvbGUgZW50aXR5IChzaGlwLCBjb250YWluZXIsIG9yIHBsYW5ldGFyeSBzdHJ1Y3R1cmUpIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnbyBhbmQgbm8gc2NoZWR1bGVkIHRhc2tzLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBlbnRpdHkgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0LCBhbmQgZXJhc2VzIHRoZSBlbnRpdHkgZnJvbSB0aGUgd29ybGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgIo6UVkNxwpzd2FwbW9kdWxlAAAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEQAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABg6UxEA2k2NAAACWNsYWltX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAADMAAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnAEB2mFaVsmIOZXh0ZW5kZWRfYXNzZXQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
431
452
|
const abi = antelope.ABI.from(abiBlob);
|
|
432
453
|
exports.ServerTypes = void 0;
|
|
433
454
|
(function (Types) {
|
|
@@ -659,6 +680,15 @@ exports.ServerTypes = void 0;
|
|
|
659
680
|
antelope.Struct.type('cargo_view')
|
|
660
681
|
], cargo_view);
|
|
661
682
|
Types.cargo_view = cargo_view;
|
|
683
|
+
let claim_row = class claim_row extends antelope.Struct {
|
|
684
|
+
};
|
|
685
|
+
tslib.__decorate([
|
|
686
|
+
antelope.Struct.field(antelope.Name)
|
|
687
|
+
], claim_row.prototype, "owner", void 0);
|
|
688
|
+
claim_row = tslib.__decorate([
|
|
689
|
+
antelope.Struct.type('claim_row')
|
|
690
|
+
], claim_row);
|
|
691
|
+
Types.claim_row = claim_row;
|
|
662
692
|
let coordinates = class coordinates extends antelope.Struct {
|
|
663
693
|
};
|
|
664
694
|
tslib.__decorate([
|
|
@@ -689,6 +719,15 @@ exports.ServerTypes = void 0;
|
|
|
689
719
|
antelope.Struct.type('claimplot')
|
|
690
720
|
], claimplot);
|
|
691
721
|
Types.claimplot = claimplot;
|
|
722
|
+
let claimstarter = class claimstarter extends antelope.Struct {
|
|
723
|
+
};
|
|
724
|
+
tslib.__decorate([
|
|
725
|
+
antelope.Struct.field(antelope.Name)
|
|
726
|
+
], claimstarter.prototype, "owner", void 0);
|
|
727
|
+
claimstarter = tslib.__decorate([
|
|
728
|
+
antelope.Struct.type('claimstarter')
|
|
729
|
+
], claimstarter);
|
|
730
|
+
Types.claimstarter = claimstarter;
|
|
692
731
|
let cleanrsvp = class cleanrsvp extends antelope.Struct {
|
|
693
732
|
};
|
|
694
733
|
tslib.__decorate([
|
|
@@ -830,7 +869,7 @@ exports.ServerTypes = void 0;
|
|
|
830
869
|
antelope.Struct.field(antelope.UInt16)
|
|
831
870
|
], crafter_stats.prototype, "speed", void 0);
|
|
832
871
|
tslib.__decorate([
|
|
833
|
-
antelope.Struct.field(antelope.
|
|
872
|
+
antelope.Struct.field(antelope.UInt32)
|
|
834
873
|
], crafter_stats.prototype, "drain", void 0);
|
|
835
874
|
crafter_stats = tslib.__decorate([
|
|
836
875
|
antelope.Struct.type('crafter_stats')
|
|
@@ -887,10 +926,10 @@ exports.ServerTypes = void 0;
|
|
|
887
926
|
let energy_stats = class energy_stats extends antelope.Struct {
|
|
888
927
|
};
|
|
889
928
|
tslib.__decorate([
|
|
890
|
-
antelope.Struct.field(antelope.
|
|
929
|
+
antelope.Struct.field(antelope.UInt32)
|
|
891
930
|
], energy_stats.prototype, "capacity", void 0);
|
|
892
931
|
tslib.__decorate([
|
|
893
|
-
antelope.Struct.field(antelope.
|
|
932
|
+
antelope.Struct.field(antelope.UInt32)
|
|
894
933
|
], energy_stats.prototype, "recharge", void 0);
|
|
895
934
|
energy_stats = tslib.__decorate([
|
|
896
935
|
antelope.Struct.type('energy_stats')
|
|
@@ -902,7 +941,7 @@ exports.ServerTypes = void 0;
|
|
|
902
941
|
antelope.Struct.field(coordinates)
|
|
903
942
|
], entity_current_state.prototype, "coordinates", void 0);
|
|
904
943
|
tslib.__decorate([
|
|
905
|
-
antelope.Struct.field(antelope.
|
|
944
|
+
antelope.Struct.field(antelope.UInt32)
|
|
906
945
|
], entity_current_state.prototype, "energy", void 0);
|
|
907
946
|
entity_current_state = tslib.__decorate([
|
|
908
947
|
antelope.Struct.type('entity_current_state')
|
|
@@ -914,7 +953,7 @@ exports.ServerTypes = void 0;
|
|
|
914
953
|
antelope.Struct.field(antelope.UInt32)
|
|
915
954
|
], movement_stats.prototype, "thrust", void 0);
|
|
916
955
|
tslib.__decorate([
|
|
917
|
-
antelope.Struct.field(antelope.
|
|
956
|
+
antelope.Struct.field(antelope.UInt32)
|
|
918
957
|
], movement_stats.prototype, "drain", void 0);
|
|
919
958
|
movement_stats = tslib.__decorate([
|
|
920
959
|
antelope.Struct.type('movement_stats')
|
|
@@ -935,7 +974,7 @@ exports.ServerTypes = void 0;
|
|
|
935
974
|
antelope.Struct.field(antelope.UInt16)
|
|
936
975
|
], gatherer_stats.prototype, "yield", void 0);
|
|
937
976
|
tslib.__decorate([
|
|
938
|
-
antelope.Struct.field(antelope.
|
|
977
|
+
antelope.Struct.field(antelope.UInt32)
|
|
939
978
|
], gatherer_stats.prototype, "drain", void 0);
|
|
940
979
|
tslib.__decorate([
|
|
941
980
|
antelope.Struct.field(antelope.UInt16)
|
|
@@ -968,7 +1007,7 @@ exports.ServerTypes = void 0;
|
|
|
968
1007
|
antelope.Struct.field(antelope.UInt16)
|
|
969
1008
|
], hauler_stats.prototype, "efficiency", void 0);
|
|
970
1009
|
tslib.__decorate([
|
|
971
|
-
antelope.Struct.field(antelope.
|
|
1010
|
+
antelope.Struct.field(antelope.UInt32)
|
|
972
1011
|
], hauler_stats.prototype, "drain", void 0);
|
|
973
1012
|
hauler_stats = tslib.__decorate([
|
|
974
1013
|
antelope.Struct.type('hauler_stats')
|
|
@@ -998,7 +1037,7 @@ exports.ServerTypes = void 0;
|
|
|
998
1037
|
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
999
1038
|
], task.prototype, "entitygroup", void 0);
|
|
1000
1039
|
tslib.__decorate([
|
|
1001
|
-
antelope.Struct.field(antelope.
|
|
1040
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1002
1041
|
], task.prototype, "energy_cost", void 0);
|
|
1003
1042
|
task = tslib.__decorate([
|
|
1004
1043
|
antelope.Struct.type('task')
|
|
@@ -1046,7 +1085,7 @@ exports.ServerTypes = void 0;
|
|
|
1046
1085
|
antelope.Struct.field(module_entry, { array: true })
|
|
1047
1086
|
], entity_info.prototype, "modules", void 0);
|
|
1048
1087
|
tslib.__decorate([
|
|
1049
|
-
antelope.Struct.field(antelope.
|
|
1088
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1050
1089
|
], entity_info.prototype, "energy", void 0);
|
|
1051
1090
|
tslib.__decorate([
|
|
1052
1091
|
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
@@ -1157,7 +1196,7 @@ exports.ServerTypes = void 0;
|
|
|
1157
1196
|
antelope.Struct.field(coordinates)
|
|
1158
1197
|
], entity_row.prototype, "coordinates", void 0);
|
|
1159
1198
|
tslib.__decorate([
|
|
1160
|
-
antelope.Struct.field(antelope.
|
|
1199
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1161
1200
|
], entity_row.prototype, "energy", void 0);
|
|
1162
1201
|
tslib.__decorate([
|
|
1163
1202
|
antelope.Struct.field(antelope.UInt32)
|
|
@@ -1316,6 +1355,15 @@ exports.ServerTypes = void 0;
|
|
|
1316
1355
|
antelope.Struct.type('gather')
|
|
1317
1356
|
], gather);
|
|
1318
1357
|
Types.gather = gather;
|
|
1358
|
+
let genesisfleet = class genesisfleet extends antelope.Struct {
|
|
1359
|
+
};
|
|
1360
|
+
tslib.__decorate([
|
|
1361
|
+
antelope.Struct.field(entity_row, { array: true })
|
|
1362
|
+
], genesisfleet.prototype, "entities", void 0);
|
|
1363
|
+
genesisfleet = tslib.__decorate([
|
|
1364
|
+
antelope.Struct.type('genesisfleet')
|
|
1365
|
+
], genesisfleet);
|
|
1366
|
+
Types.genesisfleet = genesisfleet;
|
|
1319
1367
|
let getconfig = class getconfig extends antelope.Struct {
|
|
1320
1368
|
};
|
|
1321
1369
|
getconfig = tslib.__decorate([
|
|
@@ -1982,7 +2030,7 @@ exports.ServerTypes = void 0;
|
|
|
1982
2030
|
antelope.Struct.field(entity_current_state)
|
|
1983
2031
|
], nearby_info.prototype, "projected", void 0);
|
|
1984
2032
|
tslib.__decorate([
|
|
1985
|
-
antelope.Struct.field(antelope.
|
|
2033
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1986
2034
|
], nearby_info.prototype, "max_energy", void 0);
|
|
1987
2035
|
tslib.__decorate([
|
|
1988
2036
|
antelope.Struct.field(nearby_system, { array: true })
|
|
@@ -2126,7 +2174,7 @@ exports.ServerTypes = void 0;
|
|
|
2126
2174
|
antelope.Struct.field(antelope.TimePoint)
|
|
2127
2175
|
], task_event.prototype, "completes_at", void 0);
|
|
2128
2176
|
tslib.__decorate([
|
|
2129
|
-
antelope.Struct.field(antelope.
|
|
2177
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
2130
2178
|
], task_event.prototype, "new_energy", void 0);
|
|
2131
2179
|
task_event = tslib.__decorate([
|
|
2132
2180
|
antelope.Struct.type('task_event')
|
|
@@ -2222,7 +2270,7 @@ exports.ServerTypes = void 0;
|
|
|
2222
2270
|
antelope.Struct.field(coordinates)
|
|
2223
2271
|
], projected_state.prototype, "coordinates", void 0);
|
|
2224
2272
|
tslib.__decorate([
|
|
2225
|
-
antelope.Struct.field(antelope.
|
|
2273
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
2226
2274
|
], projected_state.prototype, "energy", void 0);
|
|
2227
2275
|
tslib.__decorate([
|
|
2228
2276
|
antelope.Struct.field(antelope.UInt32)
|
|
@@ -2558,6 +2606,21 @@ exports.ServerTypes = void 0;
|
|
|
2558
2606
|
antelope.Struct.type('stratum_remaining')
|
|
2559
2607
|
], stratum_remaining);
|
|
2560
2608
|
Types.stratum_remaining = stratum_remaining;
|
|
2609
|
+
let swapmodule = class swapmodule extends antelope.Struct {
|
|
2610
|
+
};
|
|
2611
|
+
tslib.__decorate([
|
|
2612
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2613
|
+
], swapmodule.prototype, "entity_id", void 0);
|
|
2614
|
+
tslib.__decorate([
|
|
2615
|
+
antelope.Struct.field(antelope.UInt8)
|
|
2616
|
+
], swapmodule.prototype, "module_index", void 0);
|
|
2617
|
+
tslib.__decorate([
|
|
2618
|
+
antelope.Struct.field(cargo_ref)
|
|
2619
|
+
], swapmodule.prototype, "module_ref", void 0);
|
|
2620
|
+
swapmodule = tslib.__decorate([
|
|
2621
|
+
antelope.Struct.type('swapmodule')
|
|
2622
|
+
], swapmodule);
|
|
2623
|
+
Types.swapmodule = swapmodule;
|
|
2561
2624
|
let task_results = class task_results extends antelope.Struct {
|
|
2562
2625
|
};
|
|
2563
2626
|
tslib.__decorate([
|
|
@@ -2684,6 +2747,7 @@ exports.ServerTypes = void 0;
|
|
|
2684
2747
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
2685
2748
|
const TableMap = {
|
|
2686
2749
|
cargo: exports.ServerTypes.cargo_row,
|
|
2750
|
+
claims: exports.ServerTypes.claim_row,
|
|
2687
2751
|
commit: exports.ServerTypes.commit_row,
|
|
2688
2752
|
entity: exports.ServerTypes.entity_row,
|
|
2689
2753
|
entitygroup: exports.ServerTypes.entitygroup_row,
|
|
@@ -2839,6 +2903,7 @@ exports.TaskType = void 0;
|
|
|
2839
2903
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
2840
2904
|
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
2841
2905
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
2906
|
+
TaskType[TaskType["RESERVED"] = 16] = "RESERVED";
|
|
2842
2907
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
2843
2908
|
exports.LocationType = void 0;
|
|
2844
2909
|
(function (LocationType) {
|
|
@@ -7602,6 +7667,9 @@ class BaseManager {
|
|
|
7602
7667
|
get platform() {
|
|
7603
7668
|
return this.context.platform;
|
|
7604
7669
|
}
|
|
7670
|
+
get atomicAssetsAccount() {
|
|
7671
|
+
return this.context.atomicAssetsAccount;
|
|
7672
|
+
}
|
|
7605
7673
|
async getGame() {
|
|
7606
7674
|
return this.context.getGame();
|
|
7607
7675
|
}
|
|
@@ -8258,7 +8326,11 @@ function scheduleRemaining(entity, now) {
|
|
|
8258
8326
|
return Math.max(0, duration - elapsed);
|
|
8259
8327
|
}
|
|
8260
8328
|
function scheduleComplete(entity, now) {
|
|
8261
|
-
|
|
8329
|
+
if (!hasSchedule$1(entity))
|
|
8330
|
+
return false;
|
|
8331
|
+
if ((entity.schedule?.tasks ?? []).some((t) => t.type.toNumber() === exports.TaskType.RESERVED))
|
|
8332
|
+
return false;
|
|
8333
|
+
return scheduleRemaining(entity, now) === 0;
|
|
8262
8334
|
}
|
|
8263
8335
|
function currentTaskIndex(entity, now) {
|
|
8264
8336
|
if (!entity.schedule || entity.schedule.tasks.length === 0)
|
|
@@ -8316,6 +8388,8 @@ function getTaskRemaining(entity, index, now) {
|
|
|
8316
8388
|
function isTaskComplete(entity, index, now) {
|
|
8317
8389
|
if (!entity.schedule || index < 0 || index >= entity.schedule.tasks.length)
|
|
8318
8390
|
return false;
|
|
8391
|
+
if (entity.schedule.tasks[index].type.toNumber() === exports.TaskType.RESERVED)
|
|
8392
|
+
return false;
|
|
8319
8393
|
const taskDuration = entity.schedule.tasks[index].duration.toNumber();
|
|
8320
8394
|
const taskElapsed = getTaskElapsed(entity, index, now);
|
|
8321
8395
|
return taskElapsed >= taskDuration;
|
|
@@ -9288,120 +9362,1920 @@ class EpochsManager extends BaseManager {
|
|
|
9288
9362
|
}
|
|
9289
9363
|
}
|
|
9290
9364
|
|
|
9291
|
-
|
|
9292
|
-
|
|
9293
|
-
|
|
9294
|
-
|
|
9295
|
-
|
|
9296
|
-
id: antelope.UInt64.from(shipId),
|
|
9297
|
-
x,
|
|
9298
|
-
y,
|
|
9299
|
-
recharge,
|
|
9300
|
-
});
|
|
9365
|
+
function deserializeAtomicData(data, schema) {
|
|
9366
|
+
let rawData;
|
|
9367
|
+
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
9368
|
+
rawData = data
|
|
9369
|
+
.immutable_serialized_data;
|
|
9301
9370
|
}
|
|
9302
|
-
|
|
9303
|
-
|
|
9304
|
-
entity_type: e.entityType,
|
|
9305
|
-
entity_id: antelope.UInt64.from(e.entityId),
|
|
9306
|
-
}));
|
|
9307
|
-
const x = antelope.Int64.from(destination.x);
|
|
9308
|
-
const y = antelope.Int64.from(destination.y);
|
|
9309
|
-
return this.server.action('grouptravel', {
|
|
9310
|
-
entities: entityRefs,
|
|
9311
|
-
x,
|
|
9312
|
-
y,
|
|
9313
|
-
recharge,
|
|
9314
|
-
});
|
|
9371
|
+
else {
|
|
9372
|
+
rawData = data;
|
|
9315
9373
|
}
|
|
9316
|
-
|
|
9317
|
-
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
|
|
9321
|
-
|
|
9374
|
+
let bytes;
|
|
9375
|
+
if (typeof rawData === 'string') {
|
|
9376
|
+
const hex = rawData;
|
|
9377
|
+
bytes = new Uint8Array(hex.length / 2);
|
|
9378
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
9379
|
+
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
9322
9380
|
}
|
|
9323
|
-
return this.server.action('resolve', params);
|
|
9324
9381
|
}
|
|
9325
|
-
|
|
9326
|
-
|
|
9327
|
-
id: antelope.UInt64.from(entityId),
|
|
9328
|
-
count: antelope.UInt64.from(count),
|
|
9329
|
-
});
|
|
9330
|
-
}
|
|
9331
|
-
recharge(entityId) {
|
|
9332
|
-
return this.server.action('recharge', {
|
|
9333
|
-
id: antelope.UInt64.from(entityId),
|
|
9334
|
-
});
|
|
9335
|
-
}
|
|
9336
|
-
refrshentity(entityId) {
|
|
9337
|
-
return this.server.action('refrshentity', {
|
|
9338
|
-
entity_id: antelope.UInt64.from(entityId),
|
|
9339
|
-
});
|
|
9340
|
-
}
|
|
9341
|
-
transfer(sourceId, destId, items) {
|
|
9342
|
-
return this.server.action('transfer', {
|
|
9343
|
-
source_id: antelope.UInt64.from(sourceId),
|
|
9344
|
-
dest_id: antelope.UInt64.from(destId),
|
|
9345
|
-
items,
|
|
9346
|
-
});
|
|
9347
|
-
}
|
|
9348
|
-
foundCompany(account, name) {
|
|
9349
|
-
return this.platform.action('foundcompany', {
|
|
9350
|
-
account: antelope.Name.from(account),
|
|
9351
|
-
name,
|
|
9352
|
-
});
|
|
9353
|
-
}
|
|
9354
|
-
join(account) {
|
|
9355
|
-
return this.server.action('join', {
|
|
9356
|
-
account: antelope.Name.from(account),
|
|
9357
|
-
});
|
|
9382
|
+
else if (Array.isArray(rawData)) {
|
|
9383
|
+
bytes = new Uint8Array(rawData);
|
|
9358
9384
|
}
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
source_id: antelope.UInt64.from(sourceId),
|
|
9362
|
-
destination_id: antelope.UInt64.from(destinationId),
|
|
9363
|
-
stratum: antelope.UInt16.from(stratum),
|
|
9364
|
-
quantity: antelope.UInt32.from(quantity),
|
|
9365
|
-
});
|
|
9385
|
+
else {
|
|
9386
|
+
bytes = rawData;
|
|
9366
9387
|
}
|
|
9367
|
-
|
|
9368
|
-
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9388
|
+
let offset = 0;
|
|
9389
|
+
function readVarint() {
|
|
9390
|
+
let result = 0;
|
|
9391
|
+
let multiplier = 1;
|
|
9392
|
+
while (bytes[offset] >= 128) {
|
|
9393
|
+
result += (bytes[offset] - 128) * multiplier;
|
|
9394
|
+
offset++;
|
|
9395
|
+
multiplier *= 128;
|
|
9396
|
+
}
|
|
9397
|
+
result += bytes[offset] * multiplier;
|
|
9398
|
+
offset++;
|
|
9399
|
+
return result;
|
|
9375
9400
|
}
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9401
|
+
function readVarint64() {
|
|
9402
|
+
let result = 0n;
|
|
9403
|
+
let multiplier = 1n;
|
|
9404
|
+
while (bytes[offset] >= 128) {
|
|
9405
|
+
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
9406
|
+
offset++;
|
|
9407
|
+
multiplier *= 128n;
|
|
9408
|
+
}
|
|
9409
|
+
result += BigInt(bytes[offset]) * multiplier;
|
|
9410
|
+
offset++;
|
|
9411
|
+
return result;
|
|
9383
9412
|
}
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
}
|
|
9413
|
+
function readZigzagInt64() {
|
|
9414
|
+
const unsigned = readVarint64();
|
|
9415
|
+
if (unsigned % 2n === 0n) {
|
|
9416
|
+
return unsigned / 2n;
|
|
9417
|
+
}
|
|
9418
|
+
else {
|
|
9419
|
+
return -(unsigned / 2n) - 1n;
|
|
9420
|
+
}
|
|
9389
9421
|
}
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9422
|
+
function readString() {
|
|
9423
|
+
const length = readVarint();
|
|
9424
|
+
const str = new TextDecoder().decode(bytes.slice(offset, offset + length));
|
|
9425
|
+
offset += length;
|
|
9426
|
+
return str;
|
|
9395
9427
|
}
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9428
|
+
const RESERVED = 4;
|
|
9429
|
+
const result = {};
|
|
9430
|
+
while (offset < bytes.length) {
|
|
9431
|
+
const fieldIndex = readVarint() - RESERVED;
|
|
9432
|
+
const field = schema[fieldIndex];
|
|
9433
|
+
if (!field)
|
|
9434
|
+
break;
|
|
9435
|
+
switch (field.type) {
|
|
9436
|
+
case 'uint16':
|
|
9437
|
+
result[field.name] = readVarint();
|
|
9438
|
+
break;
|
|
9439
|
+
case 'uint32':
|
|
9440
|
+
result[field.name] = readVarint();
|
|
9441
|
+
break;
|
|
9442
|
+
case 'uint64':
|
|
9443
|
+
result[field.name] = readVarint64();
|
|
9444
|
+
break;
|
|
9445
|
+
case 'int32':
|
|
9446
|
+
result[field.name] = readZigzagInt64();
|
|
9447
|
+
break;
|
|
9448
|
+
case 'int64':
|
|
9449
|
+
result[field.name] = readZigzagInt64();
|
|
9450
|
+
break;
|
|
9451
|
+
case 'string':
|
|
9452
|
+
case 'image':
|
|
9453
|
+
case 'ipfs':
|
|
9454
|
+
result[field.name] = readString();
|
|
9455
|
+
break;
|
|
9456
|
+
case 'uint16[]': {
|
|
9457
|
+
const len = readVarint();
|
|
9458
|
+
const arr = [];
|
|
9459
|
+
for (let i = 0; i < len; i++)
|
|
9460
|
+
arr.push(readVarint());
|
|
9461
|
+
result[field.name] = arr;
|
|
9462
|
+
break;
|
|
9463
|
+
}
|
|
9464
|
+
case 'uint64[]': {
|
|
9465
|
+
const len = readVarint();
|
|
9466
|
+
const arr = [];
|
|
9467
|
+
for (let i = 0; i < len; i++)
|
|
9468
|
+
arr.push(readVarint64());
|
|
9469
|
+
result[field.name] = arr;
|
|
9470
|
+
break;
|
|
9471
|
+
}
|
|
9472
|
+
default:
|
|
9473
|
+
throw new Error(`Unknown type: ${field.type}`);
|
|
9474
|
+
}
|
|
9402
9475
|
}
|
|
9403
|
-
|
|
9404
|
-
|
|
9476
|
+
return result;
|
|
9477
|
+
}
|
|
9478
|
+
|
|
9479
|
+
const MODULE_ANY = 0;
|
|
9480
|
+
const MODULE_ENGINE = 1;
|
|
9481
|
+
const MODULE_GENERATOR = 2;
|
|
9482
|
+
const MODULE_GATHERER = 3;
|
|
9483
|
+
const MODULE_LOADER = 4;
|
|
9484
|
+
const MODULE_WARP = 5;
|
|
9485
|
+
const MODULE_CRAFTER = 6;
|
|
9486
|
+
const MODULE_LAUNCHER = 7;
|
|
9487
|
+
const MODULE_STORAGE = 8;
|
|
9488
|
+
const MODULE_HAULER = 9;
|
|
9489
|
+
const MODULE_BATTERY = 10;
|
|
9490
|
+
function moduleAccepts(slotType, moduleType) {
|
|
9491
|
+
return slotType === MODULE_ANY || slotType === moduleType;
|
|
9492
|
+
}
|
|
9493
|
+
function getModuleCapabilityType(itemId) {
|
|
9494
|
+
switch (itemId) {
|
|
9495
|
+
case ITEM_ENGINE_T1:
|
|
9496
|
+
return MODULE_ENGINE;
|
|
9497
|
+
case ITEM_GENERATOR_T1:
|
|
9498
|
+
return MODULE_GENERATOR;
|
|
9499
|
+
case ITEM_GATHERER_T1:
|
|
9500
|
+
return MODULE_GATHERER;
|
|
9501
|
+
case ITEM_LOADER_T1:
|
|
9502
|
+
return MODULE_LOADER;
|
|
9503
|
+
case ITEM_CRAFTER_T1:
|
|
9504
|
+
return MODULE_CRAFTER;
|
|
9505
|
+
case ITEM_STORAGE_T1:
|
|
9506
|
+
return MODULE_STORAGE;
|
|
9507
|
+
case ITEM_HAULER_T1:
|
|
9508
|
+
return MODULE_HAULER;
|
|
9509
|
+
case ITEM_WARP_T1:
|
|
9510
|
+
return MODULE_WARP;
|
|
9511
|
+
case ITEM_BATTERY_T1:
|
|
9512
|
+
return MODULE_BATTERY;
|
|
9513
|
+
default:
|
|
9514
|
+
return 0xff;
|
|
9515
|
+
}
|
|
9516
|
+
}
|
|
9517
|
+
function isModuleItem(itemId) {
|
|
9518
|
+
return getModuleCapabilityType(itemId) !== 0xff;
|
|
9519
|
+
}
|
|
9520
|
+
function moduleSlotTypeToCode(slotType) {
|
|
9521
|
+
switch (slotType) {
|
|
9522
|
+
case 'any':
|
|
9523
|
+
return MODULE_ANY;
|
|
9524
|
+
case 'engine':
|
|
9525
|
+
return MODULE_ENGINE;
|
|
9526
|
+
case 'generator':
|
|
9527
|
+
return MODULE_GENERATOR;
|
|
9528
|
+
case 'gatherer':
|
|
9529
|
+
return MODULE_GATHERER;
|
|
9530
|
+
case 'loader':
|
|
9531
|
+
return MODULE_LOADER;
|
|
9532
|
+
case 'warp':
|
|
9533
|
+
return MODULE_WARP;
|
|
9534
|
+
case 'crafter':
|
|
9535
|
+
return MODULE_CRAFTER;
|
|
9536
|
+
case 'launcher':
|
|
9537
|
+
return MODULE_LAUNCHER;
|
|
9538
|
+
case 'storage':
|
|
9539
|
+
return MODULE_STORAGE;
|
|
9540
|
+
case 'hauler':
|
|
9541
|
+
return MODULE_HAULER;
|
|
9542
|
+
case 'battery':
|
|
9543
|
+
return MODULE_BATTERY;
|
|
9544
|
+
default:
|
|
9545
|
+
return MODULE_ANY;
|
|
9546
|
+
}
|
|
9547
|
+
}
|
|
9548
|
+
|
|
9549
|
+
const ITEM_TYPE_RESOURCE = 0;
|
|
9550
|
+
const ITEM_TYPE_COMPONENT = 1;
|
|
9551
|
+
const ITEM_TYPE_MODULE = 2;
|
|
9552
|
+
const ITEM_TYPE_ENTITY = 3;
|
|
9553
|
+
function itemTypeCode(id) {
|
|
9554
|
+
switch (itemCategory(id)) {
|
|
9555
|
+
case 'resource':
|
|
9556
|
+
return ITEM_TYPE_RESOURCE;
|
|
9557
|
+
case 'component':
|
|
9558
|
+
return ITEM_TYPE_COMPONENT;
|
|
9559
|
+
case 'module':
|
|
9560
|
+
return ITEM_TYPE_MODULE;
|
|
9561
|
+
case 'entity':
|
|
9562
|
+
return ITEM_TYPE_ENTITY;
|
|
9563
|
+
}
|
|
9564
|
+
}
|
|
9565
|
+
function itemTier(id) {
|
|
9566
|
+
if (id < 10000)
|
|
9567
|
+
return 0;
|
|
9568
|
+
return Math.floor(id / 10000);
|
|
9569
|
+
}
|
|
9570
|
+
function itemOffset(id) {
|
|
9571
|
+
return id % 10000;
|
|
9572
|
+
}
|
|
9573
|
+
function itemCategory(id) {
|
|
9574
|
+
if (id < 10000)
|
|
9575
|
+
return 'resource';
|
|
9576
|
+
const offset = itemOffset(id);
|
|
9577
|
+
if (offset >= 200)
|
|
9578
|
+
return 'entity';
|
|
9579
|
+
if (offset >= 100)
|
|
9580
|
+
return 'module';
|
|
9581
|
+
return 'component';
|
|
9582
|
+
}
|
|
9583
|
+
function isRelatedItem(a, b) {
|
|
9584
|
+
if (a < 10000 || b < 10000)
|
|
9585
|
+
return false;
|
|
9586
|
+
return itemOffset(a) === itemOffset(b);
|
|
9587
|
+
}
|
|
9588
|
+
function isCraftedItem(id) {
|
|
9589
|
+
return id >= 10000;
|
|
9590
|
+
}
|
|
9591
|
+
|
|
9592
|
+
function readCommonBase(data) {
|
|
9593
|
+
return {
|
|
9594
|
+
quantity: Number(data.quantity),
|
|
9595
|
+
stats: String(data.stats),
|
|
9596
|
+
origin_x: String(data.origin_x),
|
|
9597
|
+
origin_y: String(data.origin_y),
|
|
9598
|
+
};
|
|
9599
|
+
}
|
|
9600
|
+
function deserializeScalar(data, itemId) {
|
|
9601
|
+
const base = readCommonBase(data);
|
|
9602
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
9603
|
+
}
|
|
9604
|
+
const deserializeResource = deserializeScalar;
|
|
9605
|
+
const deserializeComponent = deserializeScalar;
|
|
9606
|
+
const deserializeModule = deserializeScalar;
|
|
9607
|
+
function deserializeEntity(data, itemId) {
|
|
9608
|
+
const base = readCommonBase(data);
|
|
9609
|
+
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
9610
|
+
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
9611
|
+
const layout = getEntityLayout(itemId);
|
|
9612
|
+
const slots = layout?.slots ?? [];
|
|
9613
|
+
const modules = slots.map((slot, i) => ({
|
|
9614
|
+
type: moduleSlotTypeToCode(slot.type),
|
|
9615
|
+
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
9616
|
+
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
9617
|
+
: undefined,
|
|
9618
|
+
}));
|
|
9619
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
9620
|
+
}
|
|
9621
|
+
function deserializeAsset(data, itemId) {
|
|
9622
|
+
const type = itemTypeCode(itemId);
|
|
9623
|
+
switch (type) {
|
|
9624
|
+
case ITEM_TYPE_RESOURCE:
|
|
9625
|
+
case ITEM_TYPE_COMPONENT:
|
|
9626
|
+
case ITEM_TYPE_MODULE:
|
|
9627
|
+
return deserializeScalar(data, itemId);
|
|
9628
|
+
case ITEM_TYPE_ENTITY:
|
|
9629
|
+
return deserializeEntity(data, itemId);
|
|
9630
|
+
default:
|
|
9631
|
+
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
9632
|
+
}
|
|
9633
|
+
}
|
|
9634
|
+
|
|
9635
|
+
var ____comment = "This file was generated with eosio-abigen. DO NOT EDIT ";
|
|
9636
|
+
var version = "eosio::abi/1.2";
|
|
9637
|
+
var types = [
|
|
9638
|
+
{
|
|
9639
|
+
new_type_name: "ATOMIC_ATTRIBUTE",
|
|
9640
|
+
type: "variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC"
|
|
9641
|
+
},
|
|
9642
|
+
{
|
|
9643
|
+
new_type_name: "ATTRIBUTE_MAP",
|
|
9644
|
+
type: "pair_string_ATOMIC_ATTRIBUTE[]"
|
|
9645
|
+
},
|
|
9646
|
+
{
|
|
9647
|
+
new_type_name: "DOUBLE_VEC",
|
|
9648
|
+
type: "float64[]"
|
|
9649
|
+
},
|
|
9650
|
+
{
|
|
9651
|
+
new_type_name: "FLOAT_VEC",
|
|
9652
|
+
type: "float32[]"
|
|
9653
|
+
},
|
|
9654
|
+
{
|
|
9655
|
+
new_type_name: "INT16_VEC",
|
|
9656
|
+
type: "int16[]"
|
|
9657
|
+
},
|
|
9658
|
+
{
|
|
9659
|
+
new_type_name: "INT32_VEC",
|
|
9660
|
+
type: "int32[]"
|
|
9661
|
+
},
|
|
9662
|
+
{
|
|
9663
|
+
new_type_name: "INT64_VEC",
|
|
9664
|
+
type: "int64[]"
|
|
9665
|
+
},
|
|
9666
|
+
{
|
|
9667
|
+
new_type_name: "INT8_VEC",
|
|
9668
|
+
type: "bytes"
|
|
9669
|
+
},
|
|
9670
|
+
{
|
|
9671
|
+
new_type_name: "STRING_VEC",
|
|
9672
|
+
type: "string[]"
|
|
9673
|
+
},
|
|
9674
|
+
{
|
|
9675
|
+
new_type_name: "UINT16_VEC",
|
|
9676
|
+
type: "uint16[]"
|
|
9677
|
+
},
|
|
9678
|
+
{
|
|
9679
|
+
new_type_name: "UINT32_VEC",
|
|
9680
|
+
type: "uint32[]"
|
|
9681
|
+
},
|
|
9682
|
+
{
|
|
9683
|
+
new_type_name: "UINT64_VEC",
|
|
9684
|
+
type: "uint64[]"
|
|
9685
|
+
},
|
|
9686
|
+
{
|
|
9687
|
+
new_type_name: "UINT8_VEC",
|
|
9688
|
+
type: "bytes"
|
|
9689
|
+
}
|
|
9690
|
+
];
|
|
9691
|
+
var structs = [
|
|
9692
|
+
{
|
|
9693
|
+
name: "FORMAT",
|
|
9694
|
+
base: "",
|
|
9695
|
+
fields: [
|
|
9696
|
+
{
|
|
9697
|
+
name: "name",
|
|
9698
|
+
type: "string"
|
|
9699
|
+
},
|
|
9700
|
+
{
|
|
9701
|
+
name: "type",
|
|
9702
|
+
type: "string"
|
|
9703
|
+
}
|
|
9704
|
+
]
|
|
9705
|
+
},
|
|
9706
|
+
{
|
|
9707
|
+
name: "acceptoffer",
|
|
9708
|
+
base: "",
|
|
9709
|
+
fields: [
|
|
9710
|
+
{
|
|
9711
|
+
name: "offer_id",
|
|
9712
|
+
type: "uint64"
|
|
9713
|
+
}
|
|
9714
|
+
]
|
|
9715
|
+
},
|
|
9716
|
+
{
|
|
9717
|
+
name: "addcolauth",
|
|
9718
|
+
base: "",
|
|
9719
|
+
fields: [
|
|
9720
|
+
{
|
|
9721
|
+
name: "collection_name",
|
|
9722
|
+
type: "name"
|
|
9723
|
+
},
|
|
9724
|
+
{
|
|
9725
|
+
name: "account_to_add",
|
|
9726
|
+
type: "name"
|
|
9727
|
+
}
|
|
9728
|
+
]
|
|
9729
|
+
},
|
|
9730
|
+
{
|
|
9731
|
+
name: "addconftoken",
|
|
9732
|
+
base: "",
|
|
9733
|
+
fields: [
|
|
9734
|
+
{
|
|
9735
|
+
name: "token_contract",
|
|
9736
|
+
type: "name"
|
|
9737
|
+
},
|
|
9738
|
+
{
|
|
9739
|
+
name: "token_symbol",
|
|
9740
|
+
type: "symbol"
|
|
9741
|
+
}
|
|
9742
|
+
]
|
|
9743
|
+
},
|
|
9744
|
+
{
|
|
9745
|
+
name: "addnotifyacc",
|
|
9746
|
+
base: "",
|
|
9747
|
+
fields: [
|
|
9748
|
+
{
|
|
9749
|
+
name: "collection_name",
|
|
9750
|
+
type: "name"
|
|
9751
|
+
},
|
|
9752
|
+
{
|
|
9753
|
+
name: "account_to_add",
|
|
9754
|
+
type: "name"
|
|
9755
|
+
}
|
|
9756
|
+
]
|
|
9757
|
+
},
|
|
9758
|
+
{
|
|
9759
|
+
name: "admincoledit",
|
|
9760
|
+
base: "",
|
|
9761
|
+
fields: [
|
|
9762
|
+
{
|
|
9763
|
+
name: "collection_format_extension",
|
|
9764
|
+
type: "FORMAT[]"
|
|
9765
|
+
}
|
|
9766
|
+
]
|
|
9767
|
+
},
|
|
9768
|
+
{
|
|
9769
|
+
name: "announcedepo",
|
|
9770
|
+
base: "",
|
|
9771
|
+
fields: [
|
|
9772
|
+
{
|
|
9773
|
+
name: "owner",
|
|
9774
|
+
type: "name"
|
|
9775
|
+
},
|
|
9776
|
+
{
|
|
9777
|
+
name: "symbol_to_announce",
|
|
9778
|
+
type: "symbol"
|
|
9779
|
+
}
|
|
9780
|
+
]
|
|
9781
|
+
},
|
|
9782
|
+
{
|
|
9783
|
+
name: "assets_s",
|
|
9784
|
+
base: "",
|
|
9785
|
+
fields: [
|
|
9786
|
+
{
|
|
9787
|
+
name: "asset_id",
|
|
9788
|
+
type: "uint64"
|
|
9789
|
+
},
|
|
9790
|
+
{
|
|
9791
|
+
name: "collection_name",
|
|
9792
|
+
type: "name"
|
|
9793
|
+
},
|
|
9794
|
+
{
|
|
9795
|
+
name: "schema_name",
|
|
9796
|
+
type: "name"
|
|
9797
|
+
},
|
|
9798
|
+
{
|
|
9799
|
+
name: "template_id",
|
|
9800
|
+
type: "int32"
|
|
9801
|
+
},
|
|
9802
|
+
{
|
|
9803
|
+
name: "ram_payer",
|
|
9804
|
+
type: "name"
|
|
9805
|
+
},
|
|
9806
|
+
{
|
|
9807
|
+
name: "backed_tokens",
|
|
9808
|
+
type: "asset[]"
|
|
9809
|
+
},
|
|
9810
|
+
{
|
|
9811
|
+
name: "immutable_serialized_data",
|
|
9812
|
+
type: "bytes"
|
|
9813
|
+
},
|
|
9814
|
+
{
|
|
9815
|
+
name: "mutable_serialized_data",
|
|
9816
|
+
type: "bytes"
|
|
9817
|
+
}
|
|
9818
|
+
]
|
|
9819
|
+
},
|
|
9820
|
+
{
|
|
9821
|
+
name: "backasset",
|
|
9822
|
+
base: "",
|
|
9823
|
+
fields: [
|
|
9824
|
+
{
|
|
9825
|
+
name: "payer",
|
|
9826
|
+
type: "name"
|
|
9827
|
+
},
|
|
9828
|
+
{
|
|
9829
|
+
name: "asset_owner",
|
|
9830
|
+
type: "name"
|
|
9831
|
+
},
|
|
9832
|
+
{
|
|
9833
|
+
name: "asset_id",
|
|
9834
|
+
type: "uint64"
|
|
9835
|
+
},
|
|
9836
|
+
{
|
|
9837
|
+
name: "token_to_back",
|
|
9838
|
+
type: "asset"
|
|
9839
|
+
}
|
|
9840
|
+
]
|
|
9841
|
+
},
|
|
9842
|
+
{
|
|
9843
|
+
name: "balances_s",
|
|
9844
|
+
base: "",
|
|
9845
|
+
fields: [
|
|
9846
|
+
{
|
|
9847
|
+
name: "owner",
|
|
9848
|
+
type: "name"
|
|
9849
|
+
},
|
|
9850
|
+
{
|
|
9851
|
+
name: "quantities",
|
|
9852
|
+
type: "asset[]"
|
|
9853
|
+
}
|
|
9854
|
+
]
|
|
9855
|
+
},
|
|
9856
|
+
{
|
|
9857
|
+
name: "burnasset",
|
|
9858
|
+
base: "",
|
|
9859
|
+
fields: [
|
|
9860
|
+
{
|
|
9861
|
+
name: "asset_owner",
|
|
9862
|
+
type: "name"
|
|
9863
|
+
},
|
|
9864
|
+
{
|
|
9865
|
+
name: "asset_id",
|
|
9866
|
+
type: "uint64"
|
|
9867
|
+
}
|
|
9868
|
+
]
|
|
9869
|
+
},
|
|
9870
|
+
{
|
|
9871
|
+
name: "canceloffer",
|
|
9872
|
+
base: "",
|
|
9873
|
+
fields: [
|
|
9874
|
+
{
|
|
9875
|
+
name: "offer_id",
|
|
9876
|
+
type: "uint64"
|
|
9877
|
+
}
|
|
9878
|
+
]
|
|
9879
|
+
},
|
|
9880
|
+
{
|
|
9881
|
+
name: "collections_s",
|
|
9882
|
+
base: "",
|
|
9883
|
+
fields: [
|
|
9884
|
+
{
|
|
9885
|
+
name: "collection_name",
|
|
9886
|
+
type: "name"
|
|
9887
|
+
},
|
|
9888
|
+
{
|
|
9889
|
+
name: "author",
|
|
9890
|
+
type: "name"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
name: "allow_notify",
|
|
9894
|
+
type: "bool"
|
|
9895
|
+
},
|
|
9896
|
+
{
|
|
9897
|
+
name: "authorized_accounts",
|
|
9898
|
+
type: "name[]"
|
|
9899
|
+
},
|
|
9900
|
+
{
|
|
9901
|
+
name: "notify_accounts",
|
|
9902
|
+
type: "name[]"
|
|
9903
|
+
},
|
|
9904
|
+
{
|
|
9905
|
+
name: "market_fee",
|
|
9906
|
+
type: "float64"
|
|
9907
|
+
},
|
|
9908
|
+
{
|
|
9909
|
+
name: "serialized_data",
|
|
9910
|
+
type: "bytes"
|
|
9911
|
+
}
|
|
9912
|
+
]
|
|
9913
|
+
},
|
|
9914
|
+
{
|
|
9915
|
+
name: "config_s",
|
|
9916
|
+
base: "",
|
|
9917
|
+
fields: [
|
|
9918
|
+
{
|
|
9919
|
+
name: "asset_counter",
|
|
9920
|
+
type: "uint64"
|
|
9921
|
+
},
|
|
9922
|
+
{
|
|
9923
|
+
name: "template_counter",
|
|
9924
|
+
type: "int32"
|
|
9925
|
+
},
|
|
9926
|
+
{
|
|
9927
|
+
name: "offer_counter",
|
|
9928
|
+
type: "uint64"
|
|
9929
|
+
},
|
|
9930
|
+
{
|
|
9931
|
+
name: "collection_format",
|
|
9932
|
+
type: "FORMAT[]"
|
|
9933
|
+
},
|
|
9934
|
+
{
|
|
9935
|
+
name: "supported_tokens",
|
|
9936
|
+
type: "extended_symbol[]"
|
|
9937
|
+
}
|
|
9938
|
+
]
|
|
9939
|
+
},
|
|
9940
|
+
{
|
|
9941
|
+
name: "createcol",
|
|
9942
|
+
base: "",
|
|
9943
|
+
fields: [
|
|
9944
|
+
{
|
|
9945
|
+
name: "author",
|
|
9946
|
+
type: "name"
|
|
9947
|
+
},
|
|
9948
|
+
{
|
|
9949
|
+
name: "collection_name",
|
|
9950
|
+
type: "name"
|
|
9951
|
+
},
|
|
9952
|
+
{
|
|
9953
|
+
name: "allow_notify",
|
|
9954
|
+
type: "bool"
|
|
9955
|
+
},
|
|
9956
|
+
{
|
|
9957
|
+
name: "authorized_accounts",
|
|
9958
|
+
type: "name[]"
|
|
9959
|
+
},
|
|
9960
|
+
{
|
|
9961
|
+
name: "notify_accounts",
|
|
9962
|
+
type: "name[]"
|
|
9963
|
+
},
|
|
9964
|
+
{
|
|
9965
|
+
name: "market_fee",
|
|
9966
|
+
type: "float64"
|
|
9967
|
+
},
|
|
9968
|
+
{
|
|
9969
|
+
name: "data",
|
|
9970
|
+
type: "ATTRIBUTE_MAP"
|
|
9971
|
+
}
|
|
9972
|
+
]
|
|
9973
|
+
},
|
|
9974
|
+
{
|
|
9975
|
+
name: "createoffer",
|
|
9976
|
+
base: "",
|
|
9977
|
+
fields: [
|
|
9978
|
+
{
|
|
9979
|
+
name: "sender",
|
|
9980
|
+
type: "name"
|
|
9981
|
+
},
|
|
9982
|
+
{
|
|
9983
|
+
name: "recipient",
|
|
9984
|
+
type: "name"
|
|
9985
|
+
},
|
|
9986
|
+
{
|
|
9987
|
+
name: "sender_asset_ids",
|
|
9988
|
+
type: "uint64[]"
|
|
9989
|
+
},
|
|
9990
|
+
{
|
|
9991
|
+
name: "recipient_asset_ids",
|
|
9992
|
+
type: "uint64[]"
|
|
9993
|
+
},
|
|
9994
|
+
{
|
|
9995
|
+
name: "memo",
|
|
9996
|
+
type: "string"
|
|
9997
|
+
}
|
|
9998
|
+
]
|
|
9999
|
+
},
|
|
10000
|
+
{
|
|
10001
|
+
name: "createschema",
|
|
10002
|
+
base: "",
|
|
10003
|
+
fields: [
|
|
10004
|
+
{
|
|
10005
|
+
name: "authorized_creator",
|
|
10006
|
+
type: "name"
|
|
10007
|
+
},
|
|
10008
|
+
{
|
|
10009
|
+
name: "collection_name",
|
|
10010
|
+
type: "name"
|
|
10011
|
+
},
|
|
10012
|
+
{
|
|
10013
|
+
name: "schema_name",
|
|
10014
|
+
type: "name"
|
|
10015
|
+
},
|
|
10016
|
+
{
|
|
10017
|
+
name: "schema_format",
|
|
10018
|
+
type: "FORMAT[]"
|
|
10019
|
+
}
|
|
10020
|
+
]
|
|
10021
|
+
},
|
|
10022
|
+
{
|
|
10023
|
+
name: "createtempl",
|
|
10024
|
+
base: "",
|
|
10025
|
+
fields: [
|
|
10026
|
+
{
|
|
10027
|
+
name: "authorized_creator",
|
|
10028
|
+
type: "name"
|
|
10029
|
+
},
|
|
10030
|
+
{
|
|
10031
|
+
name: "collection_name",
|
|
10032
|
+
type: "name"
|
|
10033
|
+
},
|
|
10034
|
+
{
|
|
10035
|
+
name: "schema_name",
|
|
10036
|
+
type: "name"
|
|
10037
|
+
},
|
|
10038
|
+
{
|
|
10039
|
+
name: "transferable",
|
|
10040
|
+
type: "bool"
|
|
10041
|
+
},
|
|
10042
|
+
{
|
|
10043
|
+
name: "burnable",
|
|
10044
|
+
type: "bool"
|
|
10045
|
+
},
|
|
10046
|
+
{
|
|
10047
|
+
name: "max_supply",
|
|
10048
|
+
type: "uint32"
|
|
10049
|
+
},
|
|
10050
|
+
{
|
|
10051
|
+
name: "immutable_data",
|
|
10052
|
+
type: "ATTRIBUTE_MAP"
|
|
10053
|
+
}
|
|
10054
|
+
]
|
|
10055
|
+
},
|
|
10056
|
+
{
|
|
10057
|
+
name: "declineoffer",
|
|
10058
|
+
base: "",
|
|
10059
|
+
fields: [
|
|
10060
|
+
{
|
|
10061
|
+
name: "offer_id",
|
|
10062
|
+
type: "uint64"
|
|
10063
|
+
}
|
|
10064
|
+
]
|
|
10065
|
+
},
|
|
10066
|
+
{
|
|
10067
|
+
name: "extended_symbol",
|
|
10068
|
+
base: "",
|
|
10069
|
+
fields: [
|
|
10070
|
+
{
|
|
10071
|
+
name: "sym",
|
|
10072
|
+
type: "symbol"
|
|
10073
|
+
},
|
|
10074
|
+
{
|
|
10075
|
+
name: "contract",
|
|
10076
|
+
type: "name"
|
|
10077
|
+
}
|
|
10078
|
+
]
|
|
10079
|
+
},
|
|
10080
|
+
{
|
|
10081
|
+
name: "extendschema",
|
|
10082
|
+
base: "",
|
|
10083
|
+
fields: [
|
|
10084
|
+
{
|
|
10085
|
+
name: "authorized_editor",
|
|
10086
|
+
type: "name"
|
|
10087
|
+
},
|
|
10088
|
+
{
|
|
10089
|
+
name: "collection_name",
|
|
10090
|
+
type: "name"
|
|
10091
|
+
},
|
|
10092
|
+
{
|
|
10093
|
+
name: "schema_name",
|
|
10094
|
+
type: "name"
|
|
10095
|
+
},
|
|
10096
|
+
{
|
|
10097
|
+
name: "schema_format_extension",
|
|
10098
|
+
type: "FORMAT[]"
|
|
10099
|
+
}
|
|
10100
|
+
]
|
|
10101
|
+
},
|
|
10102
|
+
{
|
|
10103
|
+
name: "forbidnotify",
|
|
10104
|
+
base: "",
|
|
10105
|
+
fields: [
|
|
10106
|
+
{
|
|
10107
|
+
name: "collection_name",
|
|
10108
|
+
type: "name"
|
|
10109
|
+
}
|
|
10110
|
+
]
|
|
10111
|
+
},
|
|
10112
|
+
{
|
|
10113
|
+
name: "init",
|
|
10114
|
+
base: "",
|
|
10115
|
+
fields: [
|
|
10116
|
+
]
|
|
10117
|
+
},
|
|
10118
|
+
{
|
|
10119
|
+
name: "locktemplate",
|
|
10120
|
+
base: "",
|
|
10121
|
+
fields: [
|
|
10122
|
+
{
|
|
10123
|
+
name: "authorized_editor",
|
|
10124
|
+
type: "name"
|
|
10125
|
+
},
|
|
10126
|
+
{
|
|
10127
|
+
name: "collection_name",
|
|
10128
|
+
type: "name"
|
|
10129
|
+
},
|
|
10130
|
+
{
|
|
10131
|
+
name: "template_id",
|
|
10132
|
+
type: "int32"
|
|
10133
|
+
}
|
|
10134
|
+
]
|
|
10135
|
+
},
|
|
10136
|
+
{
|
|
10137
|
+
name: "logbackasset",
|
|
10138
|
+
base: "",
|
|
10139
|
+
fields: [
|
|
10140
|
+
{
|
|
10141
|
+
name: "asset_owner",
|
|
10142
|
+
type: "name"
|
|
10143
|
+
},
|
|
10144
|
+
{
|
|
10145
|
+
name: "asset_id",
|
|
10146
|
+
type: "uint64"
|
|
10147
|
+
},
|
|
10148
|
+
{
|
|
10149
|
+
name: "backed_token",
|
|
10150
|
+
type: "asset"
|
|
10151
|
+
}
|
|
10152
|
+
]
|
|
10153
|
+
},
|
|
10154
|
+
{
|
|
10155
|
+
name: "logburnasset",
|
|
10156
|
+
base: "",
|
|
10157
|
+
fields: [
|
|
10158
|
+
{
|
|
10159
|
+
name: "asset_owner",
|
|
10160
|
+
type: "name"
|
|
10161
|
+
},
|
|
10162
|
+
{
|
|
10163
|
+
name: "asset_id",
|
|
10164
|
+
type: "uint64"
|
|
10165
|
+
},
|
|
10166
|
+
{
|
|
10167
|
+
name: "collection_name",
|
|
10168
|
+
type: "name"
|
|
10169
|
+
},
|
|
10170
|
+
{
|
|
10171
|
+
name: "schema_name",
|
|
10172
|
+
type: "name"
|
|
10173
|
+
},
|
|
10174
|
+
{
|
|
10175
|
+
name: "template_id",
|
|
10176
|
+
type: "int32"
|
|
10177
|
+
},
|
|
10178
|
+
{
|
|
10179
|
+
name: "backed_tokens",
|
|
10180
|
+
type: "asset[]"
|
|
10181
|
+
},
|
|
10182
|
+
{
|
|
10183
|
+
name: "old_immutable_data",
|
|
10184
|
+
type: "ATTRIBUTE_MAP"
|
|
10185
|
+
},
|
|
10186
|
+
{
|
|
10187
|
+
name: "old_mutable_data",
|
|
10188
|
+
type: "ATTRIBUTE_MAP"
|
|
10189
|
+
},
|
|
10190
|
+
{
|
|
10191
|
+
name: "asset_ram_payer",
|
|
10192
|
+
type: "name"
|
|
10193
|
+
}
|
|
10194
|
+
]
|
|
10195
|
+
},
|
|
10196
|
+
{
|
|
10197
|
+
name: "logmint",
|
|
10198
|
+
base: "",
|
|
10199
|
+
fields: [
|
|
10200
|
+
{
|
|
10201
|
+
name: "asset_id",
|
|
10202
|
+
type: "uint64"
|
|
10203
|
+
},
|
|
10204
|
+
{
|
|
10205
|
+
name: "authorized_minter",
|
|
10206
|
+
type: "name"
|
|
10207
|
+
},
|
|
10208
|
+
{
|
|
10209
|
+
name: "collection_name",
|
|
10210
|
+
type: "name"
|
|
10211
|
+
},
|
|
10212
|
+
{
|
|
10213
|
+
name: "schema_name",
|
|
10214
|
+
type: "name"
|
|
10215
|
+
},
|
|
10216
|
+
{
|
|
10217
|
+
name: "template_id",
|
|
10218
|
+
type: "int32"
|
|
10219
|
+
},
|
|
10220
|
+
{
|
|
10221
|
+
name: "new_asset_owner",
|
|
10222
|
+
type: "name"
|
|
10223
|
+
},
|
|
10224
|
+
{
|
|
10225
|
+
name: "immutable_data",
|
|
10226
|
+
type: "ATTRIBUTE_MAP"
|
|
10227
|
+
},
|
|
10228
|
+
{
|
|
10229
|
+
name: "mutable_data",
|
|
10230
|
+
type: "ATTRIBUTE_MAP"
|
|
10231
|
+
},
|
|
10232
|
+
{
|
|
10233
|
+
name: "backed_tokens",
|
|
10234
|
+
type: "asset[]"
|
|
10235
|
+
},
|
|
10236
|
+
{
|
|
10237
|
+
name: "immutable_template_data",
|
|
10238
|
+
type: "ATTRIBUTE_MAP"
|
|
10239
|
+
}
|
|
10240
|
+
]
|
|
10241
|
+
},
|
|
10242
|
+
{
|
|
10243
|
+
name: "lognewoffer",
|
|
10244
|
+
base: "",
|
|
10245
|
+
fields: [
|
|
10246
|
+
{
|
|
10247
|
+
name: "offer_id",
|
|
10248
|
+
type: "uint64"
|
|
10249
|
+
},
|
|
10250
|
+
{
|
|
10251
|
+
name: "sender",
|
|
10252
|
+
type: "name"
|
|
10253
|
+
},
|
|
10254
|
+
{
|
|
10255
|
+
name: "recipient",
|
|
10256
|
+
type: "name"
|
|
10257
|
+
},
|
|
10258
|
+
{
|
|
10259
|
+
name: "sender_asset_ids",
|
|
10260
|
+
type: "uint64[]"
|
|
10261
|
+
},
|
|
10262
|
+
{
|
|
10263
|
+
name: "recipient_asset_ids",
|
|
10264
|
+
type: "uint64[]"
|
|
10265
|
+
},
|
|
10266
|
+
{
|
|
10267
|
+
name: "memo",
|
|
10268
|
+
type: "string"
|
|
10269
|
+
}
|
|
10270
|
+
]
|
|
10271
|
+
},
|
|
10272
|
+
{
|
|
10273
|
+
name: "lognewtempl",
|
|
10274
|
+
base: "",
|
|
10275
|
+
fields: [
|
|
10276
|
+
{
|
|
10277
|
+
name: "template_id",
|
|
10278
|
+
type: "int32"
|
|
10279
|
+
},
|
|
10280
|
+
{
|
|
10281
|
+
name: "authorized_creator",
|
|
10282
|
+
type: "name"
|
|
10283
|
+
},
|
|
10284
|
+
{
|
|
10285
|
+
name: "collection_name",
|
|
10286
|
+
type: "name"
|
|
10287
|
+
},
|
|
10288
|
+
{
|
|
10289
|
+
name: "schema_name",
|
|
10290
|
+
type: "name"
|
|
10291
|
+
},
|
|
10292
|
+
{
|
|
10293
|
+
name: "transferable",
|
|
10294
|
+
type: "bool"
|
|
10295
|
+
},
|
|
10296
|
+
{
|
|
10297
|
+
name: "burnable",
|
|
10298
|
+
type: "bool"
|
|
10299
|
+
},
|
|
10300
|
+
{
|
|
10301
|
+
name: "max_supply",
|
|
10302
|
+
type: "uint32"
|
|
10303
|
+
},
|
|
10304
|
+
{
|
|
10305
|
+
name: "immutable_data",
|
|
10306
|
+
type: "ATTRIBUTE_MAP"
|
|
10307
|
+
}
|
|
10308
|
+
]
|
|
10309
|
+
},
|
|
10310
|
+
{
|
|
10311
|
+
name: "logrampayer",
|
|
10312
|
+
base: "",
|
|
10313
|
+
fields: [
|
|
10314
|
+
{
|
|
10315
|
+
name: "asset_owner",
|
|
10316
|
+
type: "name"
|
|
10317
|
+
},
|
|
10318
|
+
{
|
|
10319
|
+
name: "asset_id",
|
|
10320
|
+
type: "uint64"
|
|
10321
|
+
},
|
|
10322
|
+
{
|
|
10323
|
+
name: "old_ram_payer",
|
|
10324
|
+
type: "name"
|
|
10325
|
+
},
|
|
10326
|
+
{
|
|
10327
|
+
name: "new_ram_payer",
|
|
10328
|
+
type: "name"
|
|
10329
|
+
}
|
|
10330
|
+
]
|
|
10331
|
+
},
|
|
10332
|
+
{
|
|
10333
|
+
name: "logsetdata",
|
|
10334
|
+
base: "",
|
|
10335
|
+
fields: [
|
|
10336
|
+
{
|
|
10337
|
+
name: "asset_owner",
|
|
10338
|
+
type: "name"
|
|
10339
|
+
},
|
|
10340
|
+
{
|
|
10341
|
+
name: "asset_id",
|
|
10342
|
+
type: "uint64"
|
|
10343
|
+
},
|
|
10344
|
+
{
|
|
10345
|
+
name: "old_data",
|
|
10346
|
+
type: "ATTRIBUTE_MAP"
|
|
10347
|
+
},
|
|
10348
|
+
{
|
|
10349
|
+
name: "new_data",
|
|
10350
|
+
type: "ATTRIBUTE_MAP"
|
|
10351
|
+
}
|
|
10352
|
+
]
|
|
10353
|
+
},
|
|
10354
|
+
{
|
|
10355
|
+
name: "logtransfer",
|
|
10356
|
+
base: "",
|
|
10357
|
+
fields: [
|
|
10358
|
+
{
|
|
10359
|
+
name: "collection_name",
|
|
10360
|
+
type: "name"
|
|
10361
|
+
},
|
|
10362
|
+
{
|
|
10363
|
+
name: "from",
|
|
10364
|
+
type: "name"
|
|
10365
|
+
},
|
|
10366
|
+
{
|
|
10367
|
+
name: "to",
|
|
10368
|
+
type: "name"
|
|
10369
|
+
},
|
|
10370
|
+
{
|
|
10371
|
+
name: "asset_ids",
|
|
10372
|
+
type: "uint64[]"
|
|
10373
|
+
},
|
|
10374
|
+
{
|
|
10375
|
+
name: "memo",
|
|
10376
|
+
type: "string"
|
|
10377
|
+
}
|
|
10378
|
+
]
|
|
10379
|
+
},
|
|
10380
|
+
{
|
|
10381
|
+
name: "mintasset",
|
|
10382
|
+
base: "",
|
|
10383
|
+
fields: [
|
|
10384
|
+
{
|
|
10385
|
+
name: "authorized_minter",
|
|
10386
|
+
type: "name"
|
|
10387
|
+
},
|
|
10388
|
+
{
|
|
10389
|
+
name: "collection_name",
|
|
10390
|
+
type: "name"
|
|
10391
|
+
},
|
|
10392
|
+
{
|
|
10393
|
+
name: "schema_name",
|
|
10394
|
+
type: "name"
|
|
10395
|
+
},
|
|
10396
|
+
{
|
|
10397
|
+
name: "template_id",
|
|
10398
|
+
type: "int32"
|
|
10399
|
+
},
|
|
10400
|
+
{
|
|
10401
|
+
name: "new_asset_owner",
|
|
10402
|
+
type: "name"
|
|
10403
|
+
},
|
|
10404
|
+
{
|
|
10405
|
+
name: "immutable_data",
|
|
10406
|
+
type: "ATTRIBUTE_MAP"
|
|
10407
|
+
},
|
|
10408
|
+
{
|
|
10409
|
+
name: "mutable_data",
|
|
10410
|
+
type: "ATTRIBUTE_MAP"
|
|
10411
|
+
},
|
|
10412
|
+
{
|
|
10413
|
+
name: "tokens_to_back",
|
|
10414
|
+
type: "asset[]"
|
|
10415
|
+
}
|
|
10416
|
+
]
|
|
10417
|
+
},
|
|
10418
|
+
{
|
|
10419
|
+
name: "offers_s",
|
|
10420
|
+
base: "",
|
|
10421
|
+
fields: [
|
|
10422
|
+
{
|
|
10423
|
+
name: "offer_id",
|
|
10424
|
+
type: "uint64"
|
|
10425
|
+
},
|
|
10426
|
+
{
|
|
10427
|
+
name: "sender",
|
|
10428
|
+
type: "name"
|
|
10429
|
+
},
|
|
10430
|
+
{
|
|
10431
|
+
name: "recipient",
|
|
10432
|
+
type: "name"
|
|
10433
|
+
},
|
|
10434
|
+
{
|
|
10435
|
+
name: "sender_asset_ids",
|
|
10436
|
+
type: "uint64[]"
|
|
10437
|
+
},
|
|
10438
|
+
{
|
|
10439
|
+
name: "recipient_asset_ids",
|
|
10440
|
+
type: "uint64[]"
|
|
10441
|
+
},
|
|
10442
|
+
{
|
|
10443
|
+
name: "memo",
|
|
10444
|
+
type: "string"
|
|
10445
|
+
},
|
|
10446
|
+
{
|
|
10447
|
+
name: "ram_payer",
|
|
10448
|
+
type: "name"
|
|
10449
|
+
}
|
|
10450
|
+
]
|
|
10451
|
+
},
|
|
10452
|
+
{
|
|
10453
|
+
name: "pair_string_ATOMIC_ATTRIBUTE",
|
|
10454
|
+
base: "",
|
|
10455
|
+
fields: [
|
|
10456
|
+
{
|
|
10457
|
+
name: "first",
|
|
10458
|
+
type: "string"
|
|
10459
|
+
},
|
|
10460
|
+
{
|
|
10461
|
+
name: "second",
|
|
10462
|
+
type: "ATOMIC_ATTRIBUTE"
|
|
10463
|
+
}
|
|
10464
|
+
]
|
|
10465
|
+
},
|
|
10466
|
+
{
|
|
10467
|
+
name: "payofferram",
|
|
10468
|
+
base: "",
|
|
10469
|
+
fields: [
|
|
10470
|
+
{
|
|
10471
|
+
name: "payer",
|
|
10472
|
+
type: "name"
|
|
10473
|
+
},
|
|
10474
|
+
{
|
|
10475
|
+
name: "offer_id",
|
|
10476
|
+
type: "uint64"
|
|
10477
|
+
}
|
|
10478
|
+
]
|
|
10479
|
+
},
|
|
10480
|
+
{
|
|
10481
|
+
name: "remcolauth",
|
|
10482
|
+
base: "",
|
|
10483
|
+
fields: [
|
|
10484
|
+
{
|
|
10485
|
+
name: "collection_name",
|
|
10486
|
+
type: "name"
|
|
10487
|
+
},
|
|
10488
|
+
{
|
|
10489
|
+
name: "account_to_remove",
|
|
10490
|
+
type: "name"
|
|
10491
|
+
}
|
|
10492
|
+
]
|
|
10493
|
+
},
|
|
10494
|
+
{
|
|
10495
|
+
name: "remnotifyacc",
|
|
10496
|
+
base: "",
|
|
10497
|
+
fields: [
|
|
10498
|
+
{
|
|
10499
|
+
name: "collection_name",
|
|
10500
|
+
type: "name"
|
|
10501
|
+
},
|
|
10502
|
+
{
|
|
10503
|
+
name: "account_to_remove",
|
|
10504
|
+
type: "name"
|
|
10505
|
+
}
|
|
10506
|
+
]
|
|
10507
|
+
},
|
|
10508
|
+
{
|
|
10509
|
+
name: "schemas_s",
|
|
10510
|
+
base: "",
|
|
10511
|
+
fields: [
|
|
10512
|
+
{
|
|
10513
|
+
name: "schema_name",
|
|
10514
|
+
type: "name"
|
|
10515
|
+
},
|
|
10516
|
+
{
|
|
10517
|
+
name: "format",
|
|
10518
|
+
type: "FORMAT[]"
|
|
10519
|
+
}
|
|
10520
|
+
]
|
|
10521
|
+
},
|
|
10522
|
+
{
|
|
10523
|
+
name: "setassetdata",
|
|
10524
|
+
base: "",
|
|
10525
|
+
fields: [
|
|
10526
|
+
{
|
|
10527
|
+
name: "authorized_editor",
|
|
10528
|
+
type: "name"
|
|
10529
|
+
},
|
|
10530
|
+
{
|
|
10531
|
+
name: "asset_owner",
|
|
10532
|
+
type: "name"
|
|
10533
|
+
},
|
|
10534
|
+
{
|
|
10535
|
+
name: "asset_id",
|
|
10536
|
+
type: "uint64"
|
|
10537
|
+
},
|
|
10538
|
+
{
|
|
10539
|
+
name: "new_mutable_data",
|
|
10540
|
+
type: "ATTRIBUTE_MAP"
|
|
10541
|
+
}
|
|
10542
|
+
]
|
|
10543
|
+
},
|
|
10544
|
+
{
|
|
10545
|
+
name: "setcoldata",
|
|
10546
|
+
base: "",
|
|
10547
|
+
fields: [
|
|
10548
|
+
{
|
|
10549
|
+
name: "collection_name",
|
|
10550
|
+
type: "name"
|
|
10551
|
+
},
|
|
10552
|
+
{
|
|
10553
|
+
name: "data",
|
|
10554
|
+
type: "ATTRIBUTE_MAP"
|
|
10555
|
+
}
|
|
10556
|
+
]
|
|
10557
|
+
},
|
|
10558
|
+
{
|
|
10559
|
+
name: "setlastpayer",
|
|
10560
|
+
base: "",
|
|
10561
|
+
fields: [
|
|
10562
|
+
{
|
|
10563
|
+
name: "owner",
|
|
10564
|
+
type: "name"
|
|
10565
|
+
},
|
|
10566
|
+
{
|
|
10567
|
+
name: "collection_name",
|
|
10568
|
+
type: "name"
|
|
10569
|
+
}
|
|
10570
|
+
]
|
|
10571
|
+
},
|
|
10572
|
+
{
|
|
10573
|
+
name: "setmarketfee",
|
|
10574
|
+
base: "",
|
|
10575
|
+
fields: [
|
|
10576
|
+
{
|
|
10577
|
+
name: "collection_name",
|
|
10578
|
+
type: "name"
|
|
10579
|
+
},
|
|
10580
|
+
{
|
|
10581
|
+
name: "market_fee",
|
|
10582
|
+
type: "float64"
|
|
10583
|
+
}
|
|
10584
|
+
]
|
|
10585
|
+
},
|
|
10586
|
+
{
|
|
10587
|
+
name: "setrampayer",
|
|
10588
|
+
base: "",
|
|
10589
|
+
fields: [
|
|
10590
|
+
{
|
|
10591
|
+
name: "new_payer",
|
|
10592
|
+
type: "name"
|
|
10593
|
+
},
|
|
10594
|
+
{
|
|
10595
|
+
name: "asset_id",
|
|
10596
|
+
type: "uint64"
|
|
10597
|
+
}
|
|
10598
|
+
]
|
|
10599
|
+
},
|
|
10600
|
+
{
|
|
10601
|
+
name: "setversion",
|
|
10602
|
+
base: "",
|
|
10603
|
+
fields: [
|
|
10604
|
+
{
|
|
10605
|
+
name: "new_version",
|
|
10606
|
+
type: "string"
|
|
10607
|
+
}
|
|
10608
|
+
]
|
|
10609
|
+
},
|
|
10610
|
+
{
|
|
10611
|
+
name: "templates_s",
|
|
10612
|
+
base: "",
|
|
10613
|
+
fields: [
|
|
10614
|
+
{
|
|
10615
|
+
name: "template_id",
|
|
10616
|
+
type: "int32"
|
|
10617
|
+
},
|
|
10618
|
+
{
|
|
10619
|
+
name: "schema_name",
|
|
10620
|
+
type: "name"
|
|
10621
|
+
},
|
|
10622
|
+
{
|
|
10623
|
+
name: "transferable",
|
|
10624
|
+
type: "bool"
|
|
10625
|
+
},
|
|
10626
|
+
{
|
|
10627
|
+
name: "burnable",
|
|
10628
|
+
type: "bool"
|
|
10629
|
+
},
|
|
10630
|
+
{
|
|
10631
|
+
name: "max_supply",
|
|
10632
|
+
type: "uint32"
|
|
10633
|
+
},
|
|
10634
|
+
{
|
|
10635
|
+
name: "issued_supply",
|
|
10636
|
+
type: "uint32"
|
|
10637
|
+
},
|
|
10638
|
+
{
|
|
10639
|
+
name: "immutable_serialized_data",
|
|
10640
|
+
type: "bytes"
|
|
10641
|
+
}
|
|
10642
|
+
]
|
|
10643
|
+
},
|
|
10644
|
+
{
|
|
10645
|
+
name: "tokenconfigs_s",
|
|
10646
|
+
base: "",
|
|
10647
|
+
fields: [
|
|
10648
|
+
{
|
|
10649
|
+
name: "standard",
|
|
10650
|
+
type: "name"
|
|
10651
|
+
},
|
|
10652
|
+
{
|
|
10653
|
+
name: "version",
|
|
10654
|
+
type: "string"
|
|
10655
|
+
}
|
|
10656
|
+
]
|
|
10657
|
+
},
|
|
10658
|
+
{
|
|
10659
|
+
name: "transfer",
|
|
10660
|
+
base: "",
|
|
10661
|
+
fields: [
|
|
10662
|
+
{
|
|
10663
|
+
name: "from",
|
|
10664
|
+
type: "name"
|
|
10665
|
+
},
|
|
10666
|
+
{
|
|
10667
|
+
name: "to",
|
|
10668
|
+
type: "name"
|
|
10669
|
+
},
|
|
10670
|
+
{
|
|
10671
|
+
name: "asset_ids",
|
|
10672
|
+
type: "uint64[]"
|
|
10673
|
+
},
|
|
10674
|
+
{
|
|
10675
|
+
name: "memo",
|
|
10676
|
+
type: "string"
|
|
10677
|
+
}
|
|
10678
|
+
]
|
|
10679
|
+
},
|
|
10680
|
+
{
|
|
10681
|
+
name: "withdraw",
|
|
10682
|
+
base: "",
|
|
10683
|
+
fields: [
|
|
10684
|
+
{
|
|
10685
|
+
name: "owner",
|
|
10686
|
+
type: "name"
|
|
10687
|
+
},
|
|
10688
|
+
{
|
|
10689
|
+
name: "token_to_withdraw",
|
|
10690
|
+
type: "asset"
|
|
10691
|
+
}
|
|
10692
|
+
]
|
|
10693
|
+
}
|
|
10694
|
+
];
|
|
10695
|
+
var actions = [
|
|
10696
|
+
{
|
|
10697
|
+
name: "acceptoffer",
|
|
10698
|
+
type: "acceptoffer",
|
|
10699
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Accept an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is accepted'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe recipient of the offer with the id {{offer_id}} accepts the offer.\n\nThe assets from either side specified in the offer are automatically transferred to the respective other side.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the recipient of the offer.\n</div>"
|
|
10700
|
+
},
|
|
10701
|
+
{
|
|
10702
|
+
name: "addcolauth",
|
|
10703
|
+
type: "addcolauth",
|
|
10704
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Make an account authorized in a collection\nsummary: 'Add the account {{nowrap account_to_add}} to the authorized_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nAdds the account {{account_to_add}} to the authorized_accounts list of the collection {{collection_name}}.\n\nThis allows {{account_to_add}} to both create and edit templates and assets of this collection.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10705
|
+
},
|
|
10706
|
+
{
|
|
10707
|
+
name: "addconftoken",
|
|
10708
|
+
type: "addconftoken",
|
|
10709
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Add token to supported list\nsummary: 'Adds a token that can then be used to back assets'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n<b>Description:</b>\n<div class=\"description\">\nThe token with the symbol {{token_symbol}} from the token contract {{token_contract}} is added to the supported_tokens list.\n\nThis means that assets can then be backed with that specific token.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10710
|
+
},
|
|
10711
|
+
{
|
|
10712
|
+
name: "addnotifyacc",
|
|
10713
|
+
type: "addnotifyacc",
|
|
10714
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Add an account to a collection's notify list\nsummary: 'Add the account {{nowrap account_to_add}} to the notify_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nAdds the account {{account_to_add}} to the notify_accounts list of the collection {{collection_name}}.\n\nThis will make {{account_to_add}} get notifications directly on the blockchain when one of the following actions is performed:\n- One or more assets of the collection {{collection_name}} is transferred\n- An asset of the collection {{collection_name}} is minted\n- An asset of the collection {{collection_name}} has its mutable data changed\n- An asset of the collection {{collection_name}} is burned\n- An asset of the collection {{collection_name}} gets backed with core tokens\n- A template of the collection {{collection_name}} is created\n\n{{account_to_add}} is able to add code to their own smart contract to handle these notifications. \n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n\n{{account_to_add}} may not make any transactions throw when receiving a notification. This includes, but is not limited to, purposely blocking certain transfers by making the transaction throw.\n\nIt is the collection author's responsibility to enforce that this does not happen.\n</div>"
|
|
10715
|
+
},
|
|
10716
|
+
{
|
|
10717
|
+
name: "admincoledit",
|
|
10718
|
+
type: "admincoledit",
|
|
10719
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Extend collections schema\nsummary: 'Extends the schema to serialize collection data by one or more lines'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe following FORMAT lines are added to the schema that is used to serialize collections data:\n{{#each collection_format_extension}}\n - name: {{this.name}} , type: {{this.type}}\n{{/each}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10720
|
+
},
|
|
10721
|
+
{
|
|
10722
|
+
name: "announcedepo",
|
|
10723
|
+
type: "announcedepo",
|
|
10724
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Announces a deposit\nsummary: '{{nowrap owner}} adds the symbol {{nowrap symbol_to_announce}} to his balance table row'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThis action is used to add a zero value asset to the quantities vector of the balance row with the owner {{owner}}.\nIf there is no balance row with the owner {{owner}}, a new one is created.\nAdding something to a vector increases the RAM required, therefore this can't be done directly in the receipt of the transfer action, so using this action a zero value is added so that the RAM required doesn't change when adding the received quantity in the transfer action later.\n\nBy calling this action, {{payer}} pays for the RAM of the balance table row with the owner {{owner}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
name: "backasset",
|
|
10728
|
+
type: "backasset",
|
|
10729
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Backs an asset with tokens\nsummary: '{{nowrap payer}} backs the asset with the ID {{nowrap asset_id}} with {{nowrap token_to_back}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{payer}} backs an the asset with the ID {{asset_id}} owned by {{asset_owner}} with {{token_to_back}}.\n{{payer}} must have at least as many tokens in his balance. {{token_to_back}} will be removed from {{payer}}'s balance.\nThe tokens backed to this asset can be retreived by burning the asset, in which case the owner at the time of the burn will receive the tokens.\n\n{{payer}} pays for the full RAM cost of the asset.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10730
|
+
},
|
|
10731
|
+
{
|
|
10732
|
+
name: "burnasset",
|
|
10733
|
+
type: "burnasset",
|
|
10734
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Burn an asset\nsummary: '{{nowrap asset_owner}} burns his asset with the id {{nowrap asset_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{asset_owner}} burns his asset with the id {{asset_id}}.\n\nIf there previously were tokens backed to this asset, these tokens are added to the balance table entry {{asset_owner}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{asset_owner}}.\n</div>"
|
|
10735
|
+
},
|
|
10736
|
+
{
|
|
10737
|
+
name: "canceloffer",
|
|
10738
|
+
type: "canceloffer",
|
|
10739
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Cancel an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is cancelled'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe creator of the offer with the id {{offer_id}} cancels this offer. The offer is deleted from the offers table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the creator of the offer.\n</div>"
|
|
10740
|
+
},
|
|
10741
|
+
{
|
|
10742
|
+
name: "createcol",
|
|
10743
|
+
type: "createcol",
|
|
10744
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create collection\nsummary: '{{nowrap author}} creates a new collection with the name {{collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{author}} creates a new collection with the name {{collection_name}}.\n\n{{#if authorized_accounts}}The following accounts are added to the authorized_accounts list, allowing them create and edit templates and assets within this collection:\n {{#each authorized_accounts}}\n - {{this}}\n {{/each}}\n{{else}}No accounts are added to the authorized_accounts list.\n{{/if}}\n\n{{#if notify_accounts}}The following accounts are added to the notify_accounts list, which means that they get notified on the blockchain of any actions related to assets and templates of this collection:\n {{#each notify_accounts}}\n - {{this}}\n {{/each}}\n{{else}}No accounts are added to the notify_accounts list.\n{{/if}}\n\n{{#if allow_notify}}It will be possible to add more accounts to the notify_accounts list later.\n{{else}}It will not be possible to add more accounts to the notify_accounts list later.\n{{/if}}\n\nThe market_fee for this collection will be set to {{market_fee}}. 3rd party markets are encouraged to use this value to collect fees for the collection author, but are not required to do so.\n\n{{#if data}}The collections will be initialized with the following data:\n {{#each data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}The collection will be initialized without any data.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{author}}.\n\nCreating collections with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n\nIf the notify functionality is being used, the notify accounts may not make any transactions throw when receiving the notification. This includes, but is not limited to, purposely blocking certain transfers by making the transaction throw.\n\nIt is the collection author's responsibility to enforce that this does not happen.\n</div>"
|
|
10745
|
+
},
|
|
10746
|
+
{
|
|
10747
|
+
name: "createoffer",
|
|
10748
|
+
type: "createoffer",
|
|
10749
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create an offer\nsummary: '{{nowrap sender}} makes an offer to {{nowrap recipient}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{sender}} makes the following offer to {{recipient}}.\n\n{{#if sender_asset_ids}}{{sender}} gives the assets with the following ids:\n {{#each sender_asset_ids}}\n - {{this}}\n {{/each}}\n{{else}}{{sender}} does not give any assets.\n{{/if}}\n\n{{#if recipient_asset_ids}}{{recipient}} gives the assets with the following ids:\n {{#each recipient_asset_ids}}\n - {{this}}\n {{/each}}\n{{else}}{{recipient}} does not give any assets.\n{{/if}}\n\nIf {{recipient}} accepts the offer, the assets will automatically be transferred to the respective sides.\n\n{{#if memo}}There is a memo attached to the offer stating:\n {{memo}}\n{{else}}No memo is attached to the offer.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{sender}}.\n\nCreating offers that do not serve any purpose other than spamming the recipient is not allowed.\n\n{{sender}} must not take advantage of the notification they receive when the offer is accepted or declined in a way that harms {{recipient}}.\n</div>"
|
|
10750
|
+
},
|
|
10751
|
+
{
|
|
10752
|
+
name: "createschema",
|
|
10753
|
+
type: "createschema",
|
|
10754
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create a schema\nsummary: '{{nowrap authorized_creator}} creates a new schema with the name {{nowrap schema_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_creator}} creates a new schema with the name {{schema_name}}. This schema belongs to the collection {{collection_name}}\n\n{{#if schema_format}}The schema will be initialized with the following FORMAT lines that can be used to serialize template and asset data:\n {{#each schema_format}}\n - name: {{this.name}} , type: {{this.type}}\n {{/each}}\n{{else}}The schema will be initialized without any FORMAT lines.\n{{/if}}\n\nOnly authorized accounts of the {{collection_name}} collection will be able to extend the schema by adding additional FORMAT lines in the future, but they will not be able to delete previously added FORMAT lines.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n\nCreating schemas with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n</div>"
|
|
10755
|
+
},
|
|
10756
|
+
{
|
|
10757
|
+
name: "createtempl",
|
|
10758
|
+
type: "createtempl",
|
|
10759
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create a template\nsummary: '{{nowrap authorized_creator}} creates a new template which belongs to the {{nowrap collection_name}} collection and uses the {{nowrap schema_name}} schema'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_creator}} creates a new template which belongs to the {{collection_name}} collection.\n\nThe schema {{schema_name}} is used for the serialization of the template's data.\n\n{{#if transferable}}The assets within this template will be transferable\n{{else}}The assets within this template will not be transferable\n{{/if}}\n\n{{#if burnable}}The assets within this template will be burnable\n{{else}}The assets within this template will not be burnable\n{{/if}}\n\n{{#if max_supply}}A maximum of {{max_supply}} assets can ever be created within this template.\n{{else}}There is no maximum amount of assets that can be created within this template.\n{{/if}}\n\n{{#if immutable_data}}The immutable data of the template is set to:\n {{#each immutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No immutable data is set for the template.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n</div>"
|
|
10760
|
+
},
|
|
10761
|
+
{
|
|
10762
|
+
name: "declineoffer",
|
|
10763
|
+
type: "declineoffer",
|
|
10764
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Decline an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is declined'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe recipient of the offer with the id {{offer_id}} declines the offer. The offer is deleted from the offers table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the recipient of the offer.\n</div>"
|
|
10765
|
+
},
|
|
10766
|
+
{
|
|
10767
|
+
name: "extendschema",
|
|
10768
|
+
type: "extendschema",
|
|
10769
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Extend schema\nsummary: 'Extends the schema {{nowrap schema_name}} by adding one or more FORMAT lines'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe schema {{schema_name}} belonging to the collection {{collection_name}} is extended by adding the following FORMAT lines that can be used to serialize template and asset data:\n{{#each schema_format_extension}}\n - name: {{this.name}} , type: {{this.type}}\n{{/each}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_editor}}.\n\n{{authorized_editor}} has to be an authorized account in the collection {{collection_name}}.\n</div>"
|
|
10770
|
+
},
|
|
10771
|
+
{
|
|
10772
|
+
name: "forbidnotify",
|
|
10773
|
+
type: "forbidnotify",
|
|
10774
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Disallow collection notifications\nsummary: 'Sets the allow_notify value of the collection {{nowrap collection_name}} to false'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe allow_notify value of the collection {{collection_name}} is set to false.\nThis means that it will not be possible to add accounts to the notify_accounts list later.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10775
|
+
},
|
|
10776
|
+
{
|
|
10777
|
+
name: "init",
|
|
10778
|
+
type: "init",
|
|
10779
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Initialize config tables\nsummary: 'Initialize the tables \"config\" and \"tokenconfig\" if they have not been initialized before'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nInitialize the tables \"config\" and \"tokenconfig\" if they have not been initialized before. If they have been initialized before, nothing will happen.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10780
|
+
},
|
|
10781
|
+
{
|
|
10782
|
+
name: "locktemplate",
|
|
10783
|
+
type: "locktemplate",
|
|
10784
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Locks a template\nsummary: '{{nowrap authorized_editor}} locks the template with the id {{nowrap template_id}} belonging to the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_editor}} locks the template with the id {{template_id}} belonging to the collection {{collection_name}}.\n\nThis sets the template's maximum supply to the template's current supply, which means that no more assets referencing this template can be minted.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n\nThe template's issued supply must be greater than 0.\n</div>"
|
|
10785
|
+
},
|
|
10786
|
+
{
|
|
10787
|
+
name: "logbackasset",
|
|
10788
|
+
type: "logbackasset",
|
|
10789
|
+
ricardian_contract: ""
|
|
10790
|
+
},
|
|
10791
|
+
{
|
|
10792
|
+
name: "logburnasset",
|
|
10793
|
+
type: "logburnasset",
|
|
10794
|
+
ricardian_contract: ""
|
|
10795
|
+
},
|
|
10796
|
+
{
|
|
10797
|
+
name: "logmint",
|
|
10798
|
+
type: "logmint",
|
|
10799
|
+
ricardian_contract: ""
|
|
10800
|
+
},
|
|
10801
|
+
{
|
|
10802
|
+
name: "lognewoffer",
|
|
10803
|
+
type: "lognewoffer",
|
|
10804
|
+
ricardian_contract: ""
|
|
10805
|
+
},
|
|
10806
|
+
{
|
|
10807
|
+
name: "lognewtempl",
|
|
10808
|
+
type: "lognewtempl",
|
|
10809
|
+
ricardian_contract: ""
|
|
10810
|
+
},
|
|
10811
|
+
{
|
|
10812
|
+
name: "logrampayer",
|
|
10813
|
+
type: "logrampayer",
|
|
10814
|
+
ricardian_contract: ""
|
|
10815
|
+
},
|
|
10816
|
+
{
|
|
10817
|
+
name: "logsetdata",
|
|
10818
|
+
type: "logsetdata",
|
|
10819
|
+
ricardian_contract: ""
|
|
10820
|
+
},
|
|
10821
|
+
{
|
|
10822
|
+
name: "logtransfer",
|
|
10823
|
+
type: "logtransfer",
|
|
10824
|
+
ricardian_contract: ""
|
|
10825
|
+
},
|
|
10826
|
+
{
|
|
10827
|
+
name: "mintasset",
|
|
10828
|
+
type: "mintasset",
|
|
10829
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Mint an asset\nsummary: '{{nowrap authorized_minter}} mints an asset which will be owned by {{nowrap new_asset_owner}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_minter}} mints an asset of the template which belongs to the {{schema_name}} schema of the {{collection_name}} collection. The asset will be owned by {{new_asset_owner}}.\n\n{{#if immutable_data}}The immutable data of the asset is set to:\n {{#each immutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No immutable data is set for the asset.\n{{/if}}\n\n{{#if mutable_data}}The mutable data of the asset is set to:\n {{#each mutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No mutable data is set for the asset.\n{{/if}}\n\n{{#if quantities_to_back}}The asset will be backed with the following tokens and {{authorized_minter}} needs to have at least that amount of tokens in their balance:\n {{#each quantities_to_back}}\n - {{quantities_to_back}}\n {{/each}}\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_minter}}.\n\n{{authorized_minter}} has to be an authorized account in the collection that the template with the id {{template_id}} belongs to.\n\nMinting assets that contain intellectual property requires the permission of the all rights holders of that intellectual property.\n\nMinting assets with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n\nMinting assets with the purpose of spamming or otherwise negatively impacing {{new_owner}} is not allowed.\n</div>"
|
|
10830
|
+
},
|
|
10831
|
+
{
|
|
10832
|
+
name: "payofferram",
|
|
10833
|
+
type: "payofferram",
|
|
10834
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Pays RAM for existing offer\nsummary: '{{nowrap payer}} will pay for the RAM cost of the offer {{nowrap offer_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{payer}} pays for the RAM cost of the offer {{offer_id}}. The offer itself is not modified\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10835
|
+
},
|
|
10836
|
+
{
|
|
10837
|
+
name: "remcolauth",
|
|
10838
|
+
type: "remcolauth",
|
|
10839
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Remove an account's authorization in a collection\nsummary: 'Remove the account {{nowrap account_to_remove}} from the authorized_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nRemoves the account {{account_to_remove}} from the authorized_accounts list of the collection {{collection_name}}.\n\nThis removes {{account_to_remove}}'s permission to both create and edit templates and assets of this collection.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10840
|
+
},
|
|
10841
|
+
{
|
|
10842
|
+
name: "remnotifyacc",
|
|
10843
|
+
type: "remnotifyacc",
|
|
10844
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Remove an account from a collection's notfiy list\nsummary: 'Remove the account {{nowrap account_to_remove}} from the notify_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nRemoves the account {{account_to_remove}} from the notify_accounts list of the collection {{collection_name}}.\n\n{{account_to_remove}} will therefore no longer receive notifications for any of the actions related to the collection {{collection_name}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10845
|
+
},
|
|
10846
|
+
{
|
|
10847
|
+
name: "setassetdata",
|
|
10848
|
+
type: "setassetdata",
|
|
10849
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set the mutable data of an asset\nsummary: '{{nowrap authorized_editor}} sets the mutable data of the asset with the id {{nowrap asset_id}} owned by {{nowrap asset_owner}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{#if new_mutable_data}}{{authorized_editor}} sets the mutable data of the asset with the id {{asset_id}} owned by {{nowrap asset_owner}} to the following:\n {{#each new_mutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}{{authorized_editor}} clears the mutable data of the asset with the id {{asset_id}} owned by {{asset_owner}}.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_editor}}.\n\n{{authorized_editor}} has to be an authorized account in the collection that the asset with the id {{asset_id}} belongs to. (An asset belongs to the collection that the template it is within belongs to)\n</div>"
|
|
10850
|
+
},
|
|
10851
|
+
{
|
|
10852
|
+
name: "setcoldata",
|
|
10853
|
+
type: "setcoldata",
|
|
10854
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set collection data\nsummary: 'Sets the data of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{#if data}}Sets the data of the collection {{collection_name}} to the following\n {{#each data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}Clears the data of the collection {{collection_name}}\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10855
|
+
},
|
|
10856
|
+
{
|
|
10857
|
+
name: "setlastpayer",
|
|
10858
|
+
type: "setlastpayer",
|
|
10859
|
+
ricardian_contract: ""
|
|
10860
|
+
},
|
|
10861
|
+
{
|
|
10862
|
+
name: "setmarketfee",
|
|
10863
|
+
type: "setmarketfee",
|
|
10864
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set collection market fee\nsummary: 'Sets the market fee of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe market_fee for the collection {{collection_name}} will be set to {{market_fee}}. 3rd party markets are encouraged to use this value to collect fees for the collection author, but are not required to do so.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10865
|
+
},
|
|
10866
|
+
{
|
|
10867
|
+
name: "setrampayer",
|
|
10868
|
+
type: "setrampayer",
|
|
10869
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set the RAM payer of an asset\nsummary: '{{nowrap new_payer}} takes over the RAM cost of the asset with the id {{nowrap asset_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{new_payer}} takes over responsibility for the RAM cost of the asset with the id {{asset_id}}. The previous RAM payer is refunded the freed RAM.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{new_payer}}.\n\n{{new_payer}} has to be the current owner of the asset with the id {{asset_id}}.\n</div>"
|
|
10870
|
+
},
|
|
10871
|
+
{
|
|
10872
|
+
name: "setversion",
|
|
10873
|
+
type: "setversion",
|
|
10874
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set tokenconfig version\nsummary: 'Sets the version in the tokenconfigs table to {{nowrap new_version}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n<b>Description:</b>\n<div class=\"description\">\nThe version in the tokenconfigs table is set to {{new_version}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10875
|
+
},
|
|
10876
|
+
{
|
|
10877
|
+
name: "transfer",
|
|
10878
|
+
type: "transfer",
|
|
10879
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Transfer Assets\nsummary: 'Send one or more assets from {{nowrap from}} to {{nowrap to}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{from}} transfers one or more assets with the following ids to {{to}}:\n{{#each asset_ids}}\n - {{this}}\n{{/each}}\n\n{{#if memo}}There is a memo attached to the transfer stating:\n {{memo}}\n{{else}}No memo is attached to the transfer.\n{{/if}}\n\nIf {{to}} does not own any assets, {{from}} pays the RAM for the scope of {{to}} in the assets table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{from}}.\n\nTransfers that do not serve any purpose other than spamming the recipient are not allowed.\n</div>"
|
|
10880
|
+
},
|
|
10881
|
+
{
|
|
10882
|
+
name: "withdraw",
|
|
10883
|
+
type: "withdraw",
|
|
10884
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Withdraws fungible tokens\nsummary: '{{nowrap owner}} withdraws {{token_to_withdraw}} from his balance'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{owner}} withdraws {{token_to_withdraw}} that they previously deposited and have not yet spent otherwise.\nThe tokens will be transferred back to {{owner}} and will be deducted from {{owner}}'s balance.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{owner}}.\n</div>"
|
|
10885
|
+
}
|
|
10886
|
+
];
|
|
10887
|
+
var tables = [
|
|
10888
|
+
{
|
|
10889
|
+
name: "assets",
|
|
10890
|
+
type: "assets_s",
|
|
10891
|
+
index_type: "i64",
|
|
10892
|
+
key_names: [
|
|
10893
|
+
],
|
|
10894
|
+
key_types: [
|
|
10895
|
+
]
|
|
10896
|
+
},
|
|
10897
|
+
{
|
|
10898
|
+
name: "balances",
|
|
10899
|
+
type: "balances_s",
|
|
10900
|
+
index_type: "i64",
|
|
10901
|
+
key_names: [
|
|
10902
|
+
],
|
|
10903
|
+
key_types: [
|
|
10904
|
+
]
|
|
10905
|
+
},
|
|
10906
|
+
{
|
|
10907
|
+
name: "collections",
|
|
10908
|
+
type: "collections_s",
|
|
10909
|
+
index_type: "i64",
|
|
10910
|
+
key_names: [
|
|
10911
|
+
],
|
|
10912
|
+
key_types: [
|
|
10913
|
+
]
|
|
10914
|
+
},
|
|
10915
|
+
{
|
|
10916
|
+
name: "config",
|
|
10917
|
+
type: "config_s",
|
|
10918
|
+
index_type: "i64",
|
|
10919
|
+
key_names: [
|
|
10920
|
+
],
|
|
10921
|
+
key_types: [
|
|
10922
|
+
]
|
|
10923
|
+
},
|
|
10924
|
+
{
|
|
10925
|
+
name: "offers",
|
|
10926
|
+
type: "offers_s",
|
|
10927
|
+
index_type: "i64",
|
|
10928
|
+
key_names: [
|
|
10929
|
+
],
|
|
10930
|
+
key_types: [
|
|
10931
|
+
]
|
|
10932
|
+
},
|
|
10933
|
+
{
|
|
10934
|
+
name: "schemas",
|
|
10935
|
+
type: "schemas_s",
|
|
10936
|
+
index_type: "i64",
|
|
10937
|
+
key_names: [
|
|
10938
|
+
],
|
|
10939
|
+
key_types: [
|
|
10940
|
+
]
|
|
10941
|
+
},
|
|
10942
|
+
{
|
|
10943
|
+
name: "templates",
|
|
10944
|
+
type: "templates_s",
|
|
10945
|
+
index_type: "i64",
|
|
10946
|
+
key_names: [
|
|
10947
|
+
],
|
|
10948
|
+
key_types: [
|
|
10949
|
+
]
|
|
10950
|
+
},
|
|
10951
|
+
{
|
|
10952
|
+
name: "tokenconfigs",
|
|
10953
|
+
type: "tokenconfigs_s",
|
|
10954
|
+
index_type: "i64",
|
|
10955
|
+
key_names: [
|
|
10956
|
+
],
|
|
10957
|
+
key_types: [
|
|
10958
|
+
]
|
|
10959
|
+
}
|
|
10960
|
+
];
|
|
10961
|
+
var ricardian_clauses = [
|
|
10962
|
+
];
|
|
10963
|
+
var variants = [
|
|
10964
|
+
{
|
|
10965
|
+
name: "variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC",
|
|
10966
|
+
types: [
|
|
10967
|
+
"int8",
|
|
10968
|
+
"int16",
|
|
10969
|
+
"int32",
|
|
10970
|
+
"int64",
|
|
10971
|
+
"uint8",
|
|
10972
|
+
"uint16",
|
|
10973
|
+
"uint32",
|
|
10974
|
+
"uint64",
|
|
10975
|
+
"float32",
|
|
10976
|
+
"float64",
|
|
10977
|
+
"string",
|
|
10978
|
+
"INT8_VEC",
|
|
10979
|
+
"INT16_VEC",
|
|
10980
|
+
"INT32_VEC",
|
|
10981
|
+
"INT64_VEC",
|
|
10982
|
+
"UINT8_VEC",
|
|
10983
|
+
"UINT16_VEC",
|
|
10984
|
+
"UINT32_VEC",
|
|
10985
|
+
"UINT64_VEC",
|
|
10986
|
+
"FLOAT_VEC",
|
|
10987
|
+
"DOUBLE_VEC",
|
|
10988
|
+
"STRING_VEC"
|
|
10989
|
+
]
|
|
10990
|
+
}
|
|
10991
|
+
];
|
|
10992
|
+
var action_results = [
|
|
10993
|
+
];
|
|
10994
|
+
var atomicAssetsAbi = {
|
|
10995
|
+
____comment: ____comment,
|
|
10996
|
+
version: version,
|
|
10997
|
+
types: types,
|
|
10998
|
+
structs: structs,
|
|
10999
|
+
actions: actions,
|
|
11000
|
+
tables: tables,
|
|
11001
|
+
ricardian_clauses: ricardian_clauses,
|
|
11002
|
+
variants: variants,
|
|
11003
|
+
action_results: action_results
|
|
11004
|
+
};
|
|
11005
|
+
|
|
11006
|
+
const PLACEHOLDER_AUTH = antelope.PermissionLevel.from({
|
|
11007
|
+
actor: '............1',
|
|
11008
|
+
permission: '............2',
|
|
11009
|
+
});
|
|
11010
|
+
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
11011
|
+
const SHIPLOAD_COLLECTION = 'shipload';
|
|
11012
|
+
const ATOMICASSETS_ABI = antelope.ABI.from(atomicAssetsAbi);
|
|
11013
|
+
const ATOMIC_ATTRIBUTE_VARIANT_NAME = 'variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC';
|
|
11014
|
+
const MINTASSET_ABI_DEF = {
|
|
11015
|
+
version: 'eosio::abi/1.2',
|
|
11016
|
+
types: [
|
|
11017
|
+
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
11018
|
+
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
11019
|
+
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
11020
|
+
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
11021
|
+
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
11022
|
+
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
11023
|
+
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
11024
|
+
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
11025
|
+
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
11026
|
+
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
11027
|
+
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
11028
|
+
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
11029
|
+
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
11030
|
+
],
|
|
11031
|
+
structs: [
|
|
11032
|
+
{
|
|
11033
|
+
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
11034
|
+
base: '',
|
|
11035
|
+
fields: [
|
|
11036
|
+
{ name: 'first', type: 'string' },
|
|
11037
|
+
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
11038
|
+
],
|
|
11039
|
+
},
|
|
11040
|
+
{
|
|
11041
|
+
name: 'mintasset',
|
|
11042
|
+
base: '',
|
|
11043
|
+
fields: [
|
|
11044
|
+
{ name: 'authorized_minter', type: 'name' },
|
|
11045
|
+
{ name: 'collection_name', type: 'name' },
|
|
11046
|
+
{ name: 'schema_name', type: 'name' },
|
|
11047
|
+
{ name: 'template_id', type: 'int32' },
|
|
11048
|
+
{ name: 'new_asset_owner', type: 'name' },
|
|
11049
|
+
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
11050
|
+
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
11051
|
+
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
11052
|
+
],
|
|
11053
|
+
},
|
|
11054
|
+
],
|
|
11055
|
+
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
11056
|
+
variants: [
|
|
11057
|
+
{
|
|
11058
|
+
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
11059
|
+
types: [
|
|
11060
|
+
'int8',
|
|
11061
|
+
'int16',
|
|
11062
|
+
'int32',
|
|
11063
|
+
'int64',
|
|
11064
|
+
'uint8',
|
|
11065
|
+
'uint16',
|
|
11066
|
+
'uint32',
|
|
11067
|
+
'uint64',
|
|
11068
|
+
'float32',
|
|
11069
|
+
'float64',
|
|
11070
|
+
'string',
|
|
11071
|
+
'INT8_VEC',
|
|
11072
|
+
'INT16_VEC',
|
|
11073
|
+
'INT32_VEC',
|
|
11074
|
+
'INT64_VEC',
|
|
11075
|
+
'UINT8_VEC',
|
|
11076
|
+
'UINT16_VEC',
|
|
11077
|
+
'UINT32_VEC',
|
|
11078
|
+
'UINT64_VEC',
|
|
11079
|
+
'FLOAT_VEC',
|
|
11080
|
+
'DOUBLE_VEC',
|
|
11081
|
+
'STRING_VEC',
|
|
11082
|
+
],
|
|
11083
|
+
},
|
|
11084
|
+
],
|
|
11085
|
+
};
|
|
11086
|
+
const MINTASSET_ABI = antelope.ABI.from(MINTASSET_ABI_DEF);
|
|
11087
|
+
function buildMintAssetAction(params) {
|
|
11088
|
+
return antelope.Action.from({
|
|
11089
|
+
account: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
11090
|
+
name: antelope.Name.from('mintasset'),
|
|
11091
|
+
authorization: [PLACEHOLDER_AUTH],
|
|
11092
|
+
data: {
|
|
11093
|
+
authorized_minter: antelope.Name.from(params.authorizedMinter),
|
|
11094
|
+
collection_name: antelope.Name.from(params.collectionName),
|
|
11095
|
+
schema_name: antelope.Name.from(params.schemaName),
|
|
11096
|
+
template_id: params.templateId,
|
|
11097
|
+
new_asset_owner: antelope.Name.from(params.newAssetOwner),
|
|
11098
|
+
immutable_data: params.immutableData,
|
|
11099
|
+
mutable_data: [],
|
|
11100
|
+
tokens_to_back: [],
|
|
11101
|
+
},
|
|
11102
|
+
}, MINTASSET_ABI);
|
|
11103
|
+
}
|
|
11104
|
+
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
11105
|
+
const collection = opts.collection ? String(antelope.Name.from(opts.collection)) : undefined;
|
|
11106
|
+
const pageSize = opts.pageSize ?? 1000;
|
|
11107
|
+
const account = antelope.Name.from(opts.account ?? ATOMICASSETS_ACCOUNT);
|
|
11108
|
+
const out = [];
|
|
11109
|
+
let lower;
|
|
11110
|
+
while (true) {
|
|
11111
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11112
|
+
code: account,
|
|
11113
|
+
scope: String(antelope.Name.from(owner)),
|
|
11114
|
+
table: antelope.Name.from('assets'),
|
|
11115
|
+
limit: pageSize,
|
|
11116
|
+
lower_bound: lower,
|
|
11117
|
+
json: true,
|
|
11118
|
+
});
|
|
11119
|
+
for (const row of res.rows) {
|
|
11120
|
+
if (!collection || row.collection_name === collection)
|
|
11121
|
+
out.push(row);
|
|
11122
|
+
}
|
|
11123
|
+
if (!res.more)
|
|
11124
|
+
break;
|
|
11125
|
+
lower = antelope.UInt64.from(String(res.next_key));
|
|
11126
|
+
}
|
|
11127
|
+
return out;
|
|
11128
|
+
}
|
|
11129
|
+
async function fetchAtomicSchemas(client, collection, account = ATOMICASSETS_ACCOUNT) {
|
|
11130
|
+
const out = [];
|
|
11131
|
+
let lower;
|
|
11132
|
+
while (true) {
|
|
11133
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11134
|
+
code: antelope.Name.from(account),
|
|
11135
|
+
scope: String(antelope.Name.from(collection)),
|
|
11136
|
+
table: antelope.Name.from('schemas'),
|
|
11137
|
+
limit: 100,
|
|
11138
|
+
lower_bound: lower,
|
|
11139
|
+
json: true,
|
|
11140
|
+
});
|
|
11141
|
+
for (const row of res.rows)
|
|
11142
|
+
out.push(row);
|
|
11143
|
+
if (!res.more)
|
|
11144
|
+
break;
|
|
11145
|
+
lower = antelope.Name.from(String(res.next_key));
|
|
11146
|
+
}
|
|
11147
|
+
return out;
|
|
11148
|
+
}
|
|
11149
|
+
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
11150
|
+
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
11151
|
+
const cargo = deserializeAsset(data, itemId);
|
|
11152
|
+
return {
|
|
11153
|
+
asset_id: BigInt(String(asset.asset_id)),
|
|
11154
|
+
schema_name: String(asset.schema_name),
|
|
11155
|
+
template_id: Number(asset.template_id),
|
|
11156
|
+
item_id: cargo.item_id,
|
|
11157
|
+
quantity: cargo.quantity,
|
|
11158
|
+
stats: cargo.stats,
|
|
11159
|
+
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
11160
|
+
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
11161
|
+
modules: cargo.modules,
|
|
11162
|
+
};
|
|
11163
|
+
}
|
|
11164
|
+
|
|
11165
|
+
class ActionsManager extends BaseManager {
|
|
11166
|
+
travel(shipId, destination, recharge = true) {
|
|
11167
|
+
const x = antelope.Int64.from(destination.x);
|
|
11168
|
+
const y = antelope.Int64.from(destination.y);
|
|
11169
|
+
return this.server.action('travel', {
|
|
11170
|
+
id: antelope.UInt64.from(shipId),
|
|
11171
|
+
x,
|
|
11172
|
+
y,
|
|
11173
|
+
recharge,
|
|
11174
|
+
});
|
|
11175
|
+
}
|
|
11176
|
+
grouptravel(entities, destination, recharge = true) {
|
|
11177
|
+
const entityRefs = entities.map((e) => exports.ServerTypes.entity_ref.from({
|
|
11178
|
+
entity_type: e.entityType,
|
|
11179
|
+
entity_id: antelope.UInt64.from(e.entityId),
|
|
11180
|
+
}));
|
|
11181
|
+
const x = antelope.Int64.from(destination.x);
|
|
11182
|
+
const y = antelope.Int64.from(destination.y);
|
|
11183
|
+
return this.server.action('grouptravel', {
|
|
11184
|
+
entities: entityRefs,
|
|
11185
|
+
x,
|
|
11186
|
+
y,
|
|
11187
|
+
recharge,
|
|
11188
|
+
});
|
|
11189
|
+
}
|
|
11190
|
+
resolve(entityId, count) {
|
|
11191
|
+
const params = {
|
|
11192
|
+
id: antelope.UInt64.from(entityId),
|
|
11193
|
+
};
|
|
11194
|
+
if (count !== undefined) {
|
|
11195
|
+
params.count = antelope.UInt64.from(count);
|
|
11196
|
+
}
|
|
11197
|
+
return this.server.action('resolve', params);
|
|
11198
|
+
}
|
|
11199
|
+
cancel(entityId, count) {
|
|
11200
|
+
return this.server.action('cancel', {
|
|
11201
|
+
id: antelope.UInt64.from(entityId),
|
|
11202
|
+
count: antelope.UInt64.from(count),
|
|
11203
|
+
});
|
|
11204
|
+
}
|
|
11205
|
+
recharge(entityId) {
|
|
11206
|
+
return this.server.action('recharge', {
|
|
11207
|
+
id: antelope.UInt64.from(entityId),
|
|
11208
|
+
});
|
|
11209
|
+
}
|
|
11210
|
+
refrshentity(entityId) {
|
|
11211
|
+
return this.server.action('refrshentity', {
|
|
11212
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
11213
|
+
});
|
|
11214
|
+
}
|
|
11215
|
+
transfer(sourceId, destId, items) {
|
|
11216
|
+
return this.server.action('transfer', {
|
|
11217
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
11218
|
+
dest_id: antelope.UInt64.from(destId),
|
|
11219
|
+
items,
|
|
11220
|
+
});
|
|
11221
|
+
}
|
|
11222
|
+
foundCompany(account, name) {
|
|
11223
|
+
return this.platform.action('foundcompany', {
|
|
11224
|
+
account: antelope.Name.from(account),
|
|
11225
|
+
name,
|
|
11226
|
+
});
|
|
11227
|
+
}
|
|
11228
|
+
join(account) {
|
|
11229
|
+
return this.server.action('join', {
|
|
11230
|
+
account: antelope.Name.from(account),
|
|
11231
|
+
});
|
|
11232
|
+
}
|
|
11233
|
+
gather(sourceId, destinationId, stratum, quantity) {
|
|
11234
|
+
return this.server.action('gather', {
|
|
11235
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
11236
|
+
destination_id: antelope.UInt64.from(destinationId),
|
|
11237
|
+
stratum: antelope.UInt16.from(stratum),
|
|
11238
|
+
quantity: antelope.UInt32.from(quantity),
|
|
11239
|
+
});
|
|
11240
|
+
}
|
|
11241
|
+
warp(entityId, destination) {
|
|
11242
|
+
const x = antelope.Int64.from(destination.x);
|
|
11243
|
+
const y = antelope.Int64.from(destination.y);
|
|
11244
|
+
return this.server.action('warp', {
|
|
11245
|
+
id: antelope.UInt64.from(entityId),
|
|
11246
|
+
x,
|
|
11247
|
+
y,
|
|
11248
|
+
});
|
|
11249
|
+
}
|
|
11250
|
+
craft(entityId, recipeId, quantity, inputs) {
|
|
11251
|
+
return this.server.action('craft', {
|
|
11252
|
+
id: antelope.UInt64.from(entityId),
|
|
11253
|
+
recipe_id: antelope.UInt16.from(recipeId),
|
|
11254
|
+
quantity: antelope.UInt32.from(quantity),
|
|
11255
|
+
inputs,
|
|
11256
|
+
});
|
|
11257
|
+
}
|
|
11258
|
+
blend(entityId, inputs) {
|
|
11259
|
+
return this.server.action('blend', {
|
|
11260
|
+
id: antelope.UInt64.from(entityId),
|
|
11261
|
+
inputs,
|
|
11262
|
+
});
|
|
11263
|
+
}
|
|
11264
|
+
deploy(entityId, ref) {
|
|
11265
|
+
return this.server.action('deploy', {
|
|
11266
|
+
id: antelope.UInt64.from(entityId),
|
|
11267
|
+
ref,
|
|
11268
|
+
});
|
|
11269
|
+
}
|
|
11270
|
+
claimplot(entityId, targetItemId, coords) {
|
|
11271
|
+
return this.server.action('claimplot', {
|
|
11272
|
+
builder_id: antelope.UInt64.from(entityId),
|
|
11273
|
+
target_item_id: antelope.UInt16.from(targetItemId),
|
|
11274
|
+
coords,
|
|
11275
|
+
});
|
|
11276
|
+
}
|
|
11277
|
+
buildplot(entityId, plotId) {
|
|
11278
|
+
return this.server.action('buildplot', {
|
|
9405
11279
|
builder_id: antelope.UInt64.from(entityId),
|
|
9406
11280
|
plot_id: antelope.UInt64.from(plotId),
|
|
9407
11281
|
});
|
|
@@ -9421,8 +11295,15 @@ class ActionsManager extends BaseManager {
|
|
|
9421
11295
|
target_ref: targetRef ?? undefined,
|
|
9422
11296
|
});
|
|
9423
11297
|
}
|
|
9424
|
-
|
|
9425
|
-
return
|
|
11298
|
+
swapmodule(entityId, moduleIndex, moduleRef) {
|
|
11299
|
+
return this.server.action('swapmodule', {
|
|
11300
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
11301
|
+
module_index: moduleIndex,
|
|
11302
|
+
module_ref: moduleRef,
|
|
11303
|
+
});
|
|
11304
|
+
}
|
|
11305
|
+
async wrap(owner, entityId, nexusId, cargoId, quantity, opts = {}) {
|
|
11306
|
+
const actions = [
|
|
9426
11307
|
this.platform.action('wrapcargo', {
|
|
9427
11308
|
game: this.server.account,
|
|
9428
11309
|
owner: antelope.Name.from(owner),
|
|
@@ -9432,6 +11313,11 @@ class ActionsManager extends BaseManager {
|
|
|
9432
11313
|
quantity: antelope.UInt64.from(quantity),
|
|
9433
11314
|
}),
|
|
9434
11315
|
];
|
|
11316
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11317
|
+
if (claimRam) {
|
|
11318
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11319
|
+
}
|
|
11320
|
+
return actions;
|
|
9435
11321
|
}
|
|
9436
11322
|
undeploy(hostId, targetId) {
|
|
9437
11323
|
return this.server.action('undeploy', {
|
|
@@ -9439,8 +11325,13 @@ class ActionsManager extends BaseManager {
|
|
|
9439
11325
|
target_id: antelope.UInt64.from(targetId),
|
|
9440
11326
|
});
|
|
9441
11327
|
}
|
|
9442
|
-
|
|
9443
|
-
return
|
|
11328
|
+
claimStarter(owner) {
|
|
11329
|
+
return this.server.action('claimstarter', {
|
|
11330
|
+
owner: antelope.Name.from(owner),
|
|
11331
|
+
});
|
|
11332
|
+
}
|
|
11333
|
+
async wrapEntity(owner, entityId, nexusId, opts = {}) {
|
|
11334
|
+
const actions = [
|
|
9444
11335
|
this.platform.action('wrapentity', {
|
|
9445
11336
|
game: this.server.account,
|
|
9446
11337
|
owner: antelope.Name.from(owner),
|
|
@@ -9448,6 +11339,11 @@ class ActionsManager extends BaseManager {
|
|
|
9448
11339
|
nexus_id: antelope.UInt64.from(nexusId),
|
|
9449
11340
|
}),
|
|
9450
11341
|
];
|
|
11342
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11343
|
+
if (claimRam) {
|
|
11344
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11345
|
+
}
|
|
11346
|
+
return actions;
|
|
9451
11347
|
}
|
|
9452
11348
|
placecargo(owner, hostId, assetId) {
|
|
9453
11349
|
return this.server.action('placecargo', {
|
|
@@ -9465,7 +11361,7 @@ class ActionsManager extends BaseManager {
|
|
|
9465
11361
|
}
|
|
9466
11362
|
transferForUnwrap(owner, assetId) {
|
|
9467
11363
|
return antelope.Action.from({
|
|
9468
|
-
account:
|
|
11364
|
+
account: this.atomicAssetsAccount,
|
|
9469
11365
|
name: 'transfer',
|
|
9470
11366
|
authorization: [{ actor: antelope.Name.from(owner), permission: 'active' }],
|
|
9471
11367
|
data: {
|
|
@@ -9474,7 +11370,7 @@ class ActionsManager extends BaseManager {
|
|
|
9474
11370
|
asset_ids: [antelope.UInt64.from(assetId)],
|
|
9475
11371
|
memo: 'unwrap',
|
|
9476
11372
|
},
|
|
9477
|
-
});
|
|
11373
|
+
}, ATOMICASSETS_ABI);
|
|
9478
11374
|
}
|
|
9479
11375
|
unwrapCargoTx(owner, assetId, hostId) {
|
|
9480
11376
|
return [this.transferForUnwrap(owner, assetId), this.placecargo(owner, hostId, assetId)];
|
|
@@ -9487,11 +11383,19 @@ class ActionsManager extends BaseManager {
|
|
|
9487
11383
|
}
|
|
9488
11384
|
setRamPayer(newPayer, assetId) {
|
|
9489
11385
|
return antelope.Action.from({
|
|
9490
|
-
account:
|
|
11386
|
+
account: this.atomicAssetsAccount,
|
|
9491
11387
|
name: 'setrampayer',
|
|
9492
11388
|
authorization: [{ actor: antelope.Name.from(newPayer), permission: 'active' }],
|
|
9493
11389
|
data: { new_payer: antelope.Name.from(newPayer), asset_id: antelope.UInt64.from(assetId) },
|
|
9494
|
-
});
|
|
11390
|
+
}, ATOMICASSETS_ABI);
|
|
11391
|
+
}
|
|
11392
|
+
setLastPayer(owner, collectionName) {
|
|
11393
|
+
return antelope.Action.from({
|
|
11394
|
+
account: this.atomicAssetsAccount,
|
|
11395
|
+
name: 'setlastpayer',
|
|
11396
|
+
authorization: [{ actor: antelope.Name.from(owner), permission: 'active' }],
|
|
11397
|
+
data: { owner: antelope.Name.from(owner), collection_name: antelope.Name.from(collectionName) },
|
|
11398
|
+
}, ATOMICASSETS_ABI);
|
|
9495
11399
|
}
|
|
9496
11400
|
demolish(entityId) {
|
|
9497
11401
|
return this.server.action('demolish', {
|
|
@@ -9965,10 +11869,11 @@ class SubscriptionsManager {
|
|
|
9965
11869
|
}
|
|
9966
11870
|
|
|
9967
11871
|
class GameContext {
|
|
9968
|
-
constructor(client, server, platform) {
|
|
11872
|
+
constructor(client, server, platform, atomicAssetsAccount = 'atomicassets') {
|
|
9969
11873
|
this.client = client;
|
|
9970
11874
|
this.server = server;
|
|
9971
11875
|
this.platform = platform;
|
|
11876
|
+
this.atomicAssetsAccount = atomicAssetsAccount;
|
|
9972
11877
|
}
|
|
9973
11878
|
get entities() {
|
|
9974
11879
|
if (!this._entities) {
|
|
@@ -10059,7 +11964,7 @@ class Shipload {
|
|
|
10059
11964
|
const server$1 = serverContract
|
|
10060
11965
|
? serverContract
|
|
10061
11966
|
: new Contract({ client: apiClient });
|
|
10062
|
-
this._context = new GameContext(apiClient, server$1, platform$1);
|
|
11967
|
+
this._context = new GameContext(apiClient, server$1, platform$1, constructorOptions?.atomicAssetsAccount ?? 'atomicassets');
|
|
10063
11968
|
if (constructorOptions?.subscriptionsUrl) {
|
|
10064
11969
|
this._context.setSubscriptionsUrl(constructorOptions.subscriptionsUrl);
|
|
10065
11970
|
}
|
|
@@ -10090,108 +11995,41 @@ class Shipload {
|
|
|
10090
11995
|
get client() {
|
|
10091
11996
|
return this._context.client;
|
|
10092
11997
|
}
|
|
11998
|
+
get atomicAssetsAccount() {
|
|
11999
|
+
return this._context.atomicAssetsAccount;
|
|
12000
|
+
}
|
|
10093
12001
|
get server() {
|
|
10094
12002
|
return this._context.server;
|
|
10095
12003
|
}
|
|
10096
12004
|
get platform() {
|
|
10097
12005
|
return this._context.platform;
|
|
10098
12006
|
}
|
|
10099
|
-
get entities() {
|
|
10100
|
-
return this._context.entities;
|
|
10101
|
-
}
|
|
10102
|
-
get players() {
|
|
10103
|
-
return this._context.players;
|
|
10104
|
-
}
|
|
10105
|
-
get locations() {
|
|
10106
|
-
return this._context.locations;
|
|
10107
|
-
}
|
|
10108
|
-
get epochs() {
|
|
10109
|
-
return this._context.epochs;
|
|
10110
|
-
}
|
|
10111
|
-
get actions() {
|
|
10112
|
-
return this._context.actions;
|
|
10113
|
-
}
|
|
10114
|
-
get nft() {
|
|
10115
|
-
return this._context.nft;
|
|
10116
|
-
}
|
|
10117
|
-
get subscriptions() {
|
|
10118
|
-
return this._context.subscriptions;
|
|
10119
|
-
}
|
|
10120
|
-
async getGame(reload = false) {
|
|
10121
|
-
return this._context.getGame(reload);
|
|
10122
|
-
}
|
|
10123
|
-
async getState(reload = false) {
|
|
10124
|
-
return this._context.getState(reload);
|
|
10125
|
-
}
|
|
10126
|
-
}
|
|
10127
|
-
|
|
10128
|
-
const MODULE_ANY = 0;
|
|
10129
|
-
const MODULE_ENGINE = 1;
|
|
10130
|
-
const MODULE_GENERATOR = 2;
|
|
10131
|
-
const MODULE_GATHERER = 3;
|
|
10132
|
-
const MODULE_LOADER = 4;
|
|
10133
|
-
const MODULE_WARP = 5;
|
|
10134
|
-
const MODULE_CRAFTER = 6;
|
|
10135
|
-
const MODULE_LAUNCHER = 7;
|
|
10136
|
-
const MODULE_STORAGE = 8;
|
|
10137
|
-
const MODULE_HAULER = 9;
|
|
10138
|
-
const MODULE_BATTERY = 10;
|
|
10139
|
-
function moduleAccepts(slotType, moduleType) {
|
|
10140
|
-
return slotType === MODULE_ANY || slotType === moduleType;
|
|
10141
|
-
}
|
|
10142
|
-
function getModuleCapabilityType(itemId) {
|
|
10143
|
-
switch (itemId) {
|
|
10144
|
-
case ITEM_ENGINE_T1:
|
|
10145
|
-
return MODULE_ENGINE;
|
|
10146
|
-
case ITEM_GENERATOR_T1:
|
|
10147
|
-
return MODULE_GENERATOR;
|
|
10148
|
-
case ITEM_GATHERER_T1:
|
|
10149
|
-
return MODULE_GATHERER;
|
|
10150
|
-
case ITEM_LOADER_T1:
|
|
10151
|
-
return MODULE_LOADER;
|
|
10152
|
-
case ITEM_CRAFTER_T1:
|
|
10153
|
-
return MODULE_CRAFTER;
|
|
10154
|
-
case ITEM_STORAGE_T1:
|
|
10155
|
-
return MODULE_STORAGE;
|
|
10156
|
-
case ITEM_HAULER_T1:
|
|
10157
|
-
return MODULE_HAULER;
|
|
10158
|
-
case ITEM_WARP_T1:
|
|
10159
|
-
return MODULE_WARP;
|
|
10160
|
-
case ITEM_BATTERY_T1:
|
|
10161
|
-
return MODULE_BATTERY;
|
|
10162
|
-
default:
|
|
10163
|
-
return 0xff;
|
|
10164
|
-
}
|
|
10165
|
-
}
|
|
10166
|
-
function isModuleItem(itemId) {
|
|
10167
|
-
return getModuleCapabilityType(itemId) !== 0xff;
|
|
10168
|
-
}
|
|
10169
|
-
function moduleSlotTypeToCode(slotType) {
|
|
10170
|
-
switch (slotType) {
|
|
10171
|
-
case 'any':
|
|
10172
|
-
return MODULE_ANY;
|
|
10173
|
-
case 'engine':
|
|
10174
|
-
return MODULE_ENGINE;
|
|
10175
|
-
case 'generator':
|
|
10176
|
-
return MODULE_GENERATOR;
|
|
10177
|
-
case 'gatherer':
|
|
10178
|
-
return MODULE_GATHERER;
|
|
10179
|
-
case 'loader':
|
|
10180
|
-
return MODULE_LOADER;
|
|
10181
|
-
case 'warp':
|
|
10182
|
-
return MODULE_WARP;
|
|
10183
|
-
case 'crafter':
|
|
10184
|
-
return MODULE_CRAFTER;
|
|
10185
|
-
case 'launcher':
|
|
10186
|
-
return MODULE_LAUNCHER;
|
|
10187
|
-
case 'storage':
|
|
10188
|
-
return MODULE_STORAGE;
|
|
10189
|
-
case 'hauler':
|
|
10190
|
-
return MODULE_HAULER;
|
|
10191
|
-
case 'battery':
|
|
10192
|
-
return MODULE_BATTERY;
|
|
10193
|
-
default:
|
|
10194
|
-
return MODULE_ANY;
|
|
12007
|
+
get entities() {
|
|
12008
|
+
return this._context.entities;
|
|
12009
|
+
}
|
|
12010
|
+
get players() {
|
|
12011
|
+
return this._context.players;
|
|
12012
|
+
}
|
|
12013
|
+
get locations() {
|
|
12014
|
+
return this._context.locations;
|
|
12015
|
+
}
|
|
12016
|
+
get epochs() {
|
|
12017
|
+
return this._context.epochs;
|
|
12018
|
+
}
|
|
12019
|
+
get actions() {
|
|
12020
|
+
return this._context.actions;
|
|
12021
|
+
}
|
|
12022
|
+
get nft() {
|
|
12023
|
+
return this._context.nft;
|
|
12024
|
+
}
|
|
12025
|
+
get subscriptions() {
|
|
12026
|
+
return this._context.subscriptions;
|
|
12027
|
+
}
|
|
12028
|
+
async getGame(reload = false) {
|
|
12029
|
+
return this._context.getGame(reload);
|
|
12030
|
+
}
|
|
12031
|
+
async getState(reload = false) {
|
|
12032
|
+
return this._context.getState(reload);
|
|
10195
12033
|
}
|
|
10196
12034
|
}
|
|
10197
12035
|
|
|
@@ -10212,6 +12050,7 @@ function packedModulesToInstalled(entries) {
|
|
|
10212
12050
|
function clampUint16(value) {
|
|
10213
12051
|
return Math.min(value, U16_MAX);
|
|
10214
12052
|
}
|
|
12053
|
+
const clampUint32 = (v) => Math.min(Math.max(Math.floor(v), 0), 4294967295);
|
|
10215
12054
|
function applySlotMultiplier(value, outputPct) {
|
|
10216
12055
|
return clampUint16(Math.floor((value * outputPct) / 100));
|
|
10217
12056
|
}
|
|
@@ -10256,7 +12095,7 @@ const GATHERER_DEPTH_TABLE = [
|
|
|
10256
12095
|
{ floor: 46000, slope: 12 },
|
|
10257
12096
|
{ floor: 53500, slope: 10 },
|
|
10258
12097
|
{ floor: 60000, slope: 5 },
|
|
10259
|
-
{ floor:
|
|
12098
|
+
{ floor: 63537, slope: 2 },
|
|
10260
12099
|
];
|
|
10261
12100
|
const GATHERER_DEPTH_MAX_TIER = 10;
|
|
10262
12101
|
function gathererDepthForTier(tol, tier) {
|
|
@@ -10449,8 +12288,8 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
10449
12288
|
}
|
|
10450
12289
|
if (hasGenerator) {
|
|
10451
12290
|
result.generator = {
|
|
10452
|
-
capacity:
|
|
10453
|
-
recharge:
|
|
12291
|
+
capacity: clampUint32(totalGenCapacity),
|
|
12292
|
+
recharge: clampUint32(totalGenRecharge),
|
|
10454
12293
|
};
|
|
10455
12294
|
}
|
|
10456
12295
|
if (hasGatherer) {
|
|
@@ -10613,7 +12452,7 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
10613
12452
|
}
|
|
10614
12453
|
function calc_craft_energy(drain, totalInputMass) {
|
|
10615
12454
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
10616
|
-
return antelope.
|
|
12455
|
+
return antelope.UInt32.from(Math.min(Math.max(raw, 1), 4294967295));
|
|
10617
12456
|
}
|
|
10618
12457
|
|
|
10619
12458
|
class PlotManager extends BaseManager {
|
|
@@ -10645,7 +12484,7 @@ class PlotManager extends BaseManager {
|
|
|
10645
12484
|
const isComplete = rows.every((r) => r.missing === 0);
|
|
10646
12485
|
return { targetItemId, rows, massProvided, massRequired, isComplete };
|
|
10647
12486
|
}
|
|
10648
|
-
buildableTarget(plot, cargo, activeTask) {
|
|
12487
|
+
buildableTarget(plot, cargo, activeTask, scheduledBuild) {
|
|
10649
12488
|
const progress = this.progress(plot, cargo);
|
|
10650
12489
|
const targetItemId = Number(plot.item_id.toString());
|
|
10651
12490
|
const targetItem = getItem(targetItemId);
|
|
@@ -10655,12 +12494,15 @@ class PlotManager extends BaseManager {
|
|
|
10655
12494
|
}
|
|
10656
12495
|
let state;
|
|
10657
12496
|
const taskType = activeTask?.type.toNumber();
|
|
10658
|
-
if (
|
|
10659
|
-
state = 'initializing';
|
|
10660
|
-
}
|
|
10661
|
-
else if (taskType === exports.TaskType.BUILDPLOT) {
|
|
12497
|
+
if (scheduledBuild?.hasStarted) {
|
|
10662
12498
|
state = 'finalizing';
|
|
10663
12499
|
}
|
|
12500
|
+
else if (scheduledBuild) {
|
|
12501
|
+
state = 'scheduled';
|
|
12502
|
+
}
|
|
12503
|
+
else if (taskType === exports.TaskType.CLAIMPLOT) {
|
|
12504
|
+
state = 'initializing';
|
|
12505
|
+
}
|
|
10664
12506
|
else if (progress.isComplete) {
|
|
10665
12507
|
state = 'ready';
|
|
10666
12508
|
}
|
|
@@ -10679,6 +12521,7 @@ class PlotManager extends BaseManager {
|
|
|
10679
12521
|
finalizeAction: antelope.Name.from('buildplot'),
|
|
10680
12522
|
finalizerCapability: 'crafter',
|
|
10681
12523
|
activeTask,
|
|
12524
|
+
scheduledBuild,
|
|
10682
12525
|
};
|
|
10683
12526
|
}
|
|
10684
12527
|
canBuild(plot, cargo) {
|
|
@@ -10699,10 +12542,10 @@ class ConstructionManager extends BaseManager {
|
|
|
10699
12542
|
super(...arguments);
|
|
10700
12543
|
this.plot = new PlotManager(this.context);
|
|
10701
12544
|
}
|
|
10702
|
-
getTarget(entity, cargo, activeTask) {
|
|
12545
|
+
getTarget(entity, cargo, activeTask, scheduledBuild) {
|
|
10703
12546
|
const kind = entity.kind.toString();
|
|
10704
12547
|
if (kind === 'plot') {
|
|
10705
|
-
return this.plot.buildableTarget(entity, cargo, activeTask);
|
|
12548
|
+
return this.plot.buildableTarget(entity, cargo, activeTask, scheduledBuild);
|
|
10706
12549
|
}
|
|
10707
12550
|
return null;
|
|
10708
12551
|
}
|
|
@@ -10797,6 +12640,77 @@ class ConstructionManager extends BaseManager {
|
|
|
10797
12640
|
}
|
|
10798
12641
|
return out;
|
|
10799
12642
|
}
|
|
12643
|
+
plotReservation(plot, now) {
|
|
12644
|
+
const schedule = plot.schedule;
|
|
12645
|
+
if (!schedule)
|
|
12646
|
+
return null;
|
|
12647
|
+
const tasks = schedule.tasks;
|
|
12648
|
+
const startedMs = schedule.started.toDate().getTime();
|
|
12649
|
+
let startSec = 0;
|
|
12650
|
+
for (const task of tasks) {
|
|
12651
|
+
if (task.type.toNumber() === exports.TaskType.RESERVED) {
|
|
12652
|
+
if (!task.entitytarget)
|
|
12653
|
+
return null;
|
|
12654
|
+
const startsAt = startedMs + startSec * 1000;
|
|
12655
|
+
const completesAt = startsAt + task.duration.toNumber() * 1000;
|
|
12656
|
+
return {
|
|
12657
|
+
builderId: task.entitytarget.entity_id,
|
|
12658
|
+
group: task.entitygroup ?? undefined,
|
|
12659
|
+
startsAt,
|
|
12660
|
+
completesAt,
|
|
12661
|
+
hasStarted: startsAt <= now.getTime(),
|
|
12662
|
+
};
|
|
12663
|
+
}
|
|
12664
|
+
startSec += task.duration.toNumber();
|
|
12665
|
+
}
|
|
12666
|
+
return null;
|
|
12667
|
+
}
|
|
12668
|
+
builderCancelability(builder, group) {
|
|
12669
|
+
if (!builder?.schedule || group === undefined) {
|
|
12670
|
+
return { cancelable: false, blockingTaskCount: 0 };
|
|
12671
|
+
}
|
|
12672
|
+
const tasks = builder.schedule.tasks;
|
|
12673
|
+
const buildIdx = tasks.findIndex((t) => t.type.toNumber() === exports.TaskType.BUILDPLOT &&
|
|
12674
|
+
t.entitygroup !== undefined &&
|
|
12675
|
+
t.entitygroup.equals(group));
|
|
12676
|
+
if (buildIdx < 0)
|
|
12677
|
+
return { cancelable: false, blockingTaskCount: 0 };
|
|
12678
|
+
const trailing = tasks.length - 1 - buildIdx;
|
|
12679
|
+
return { cancelable: trailing === 0, blockingTaskCount: trailing };
|
|
12680
|
+
}
|
|
12681
|
+
buildFromReservation(res, builder) {
|
|
12682
|
+
const { cancelable, blockingTaskCount } = this.builderCancelability(builder, res.group);
|
|
12683
|
+
return {
|
|
12684
|
+
shipId: res.builderId,
|
|
12685
|
+
shipName: builder?.entity_name || res.builderId.toString(),
|
|
12686
|
+
hasStarted: res.hasStarted,
|
|
12687
|
+
startsAt: res.startsAt,
|
|
12688
|
+
completesAt: res.completesAt,
|
|
12689
|
+
cancelable,
|
|
12690
|
+
blockingTaskCount,
|
|
12691
|
+
};
|
|
12692
|
+
}
|
|
12693
|
+
scheduledBuildFor(plot, entities, now) {
|
|
12694
|
+
const res = this.plotReservation(plot, now);
|
|
12695
|
+
if (!res)
|
|
12696
|
+
return null;
|
|
12697
|
+
const builder = entities.find((e) => e.id.equals(res.builderId));
|
|
12698
|
+
return this.buildFromReservation(res, builder);
|
|
12699
|
+
}
|
|
12700
|
+
scheduledBuildsByTarget(entities, now) {
|
|
12701
|
+
const byId = new Map(entities.map((e) => [e.id.toString(), e]));
|
|
12702
|
+
const out = new Map();
|
|
12703
|
+
for (const entity of entities) {
|
|
12704
|
+
if (entity.type.toString() !== 'plot')
|
|
12705
|
+
continue;
|
|
12706
|
+
const res = this.plotReservation(entity, now);
|
|
12707
|
+
if (!res)
|
|
12708
|
+
continue;
|
|
12709
|
+
const builder = byId.get(res.builderId.toString());
|
|
12710
|
+
out.set(entity.id.toString(), this.buildFromReservation(res, builder));
|
|
12711
|
+
}
|
|
12712
|
+
return out;
|
|
12713
|
+
}
|
|
10800
12714
|
reservationsFrom(sourceEntityId, entities) {
|
|
10801
12715
|
const source = entities.find((e) => e.id.equals(sourceEntityId));
|
|
10802
12716
|
if (!source)
|
|
@@ -11604,13 +13518,6 @@ function needsRecharge(entity) {
|
|
|
11604
13518
|
return antelope.UInt64.from(entity.energy).lt(entity.generator.capacity);
|
|
11605
13519
|
}
|
|
11606
13520
|
|
|
11607
|
-
function calcLoadDuration(entity, cargoMass) {
|
|
11608
|
-
const totalThrust = entity.loaders.thrust.toNumber() * entity.loaders.quantity.toNumber();
|
|
11609
|
-
if (totalThrust === 0)
|
|
11610
|
-
return antelope.UInt32.from(0);
|
|
11611
|
-
return antelope.UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
|
|
11612
|
-
}
|
|
11613
|
-
|
|
11614
13521
|
const GATHER_TIME_SCALE = 100;
|
|
11615
13522
|
const GATHER_MASS_DIVISOR = 228;
|
|
11616
13523
|
const DEPTH_PENALTY_DIVISOR = 5000;
|
|
@@ -11699,49 +13606,6 @@ const itemAbbreviations = {
|
|
|
11699
13606
|
20200: 'CT',
|
|
11700
13607
|
};
|
|
11701
13608
|
|
|
11702
|
-
const ITEM_TYPE_RESOURCE = 0;
|
|
11703
|
-
const ITEM_TYPE_COMPONENT = 1;
|
|
11704
|
-
const ITEM_TYPE_MODULE = 2;
|
|
11705
|
-
const ITEM_TYPE_ENTITY = 3;
|
|
11706
|
-
function itemTypeCode(id) {
|
|
11707
|
-
switch (itemCategory(id)) {
|
|
11708
|
-
case 'resource':
|
|
11709
|
-
return ITEM_TYPE_RESOURCE;
|
|
11710
|
-
case 'component':
|
|
11711
|
-
return ITEM_TYPE_COMPONENT;
|
|
11712
|
-
case 'module':
|
|
11713
|
-
return ITEM_TYPE_MODULE;
|
|
11714
|
-
case 'entity':
|
|
11715
|
-
return ITEM_TYPE_ENTITY;
|
|
11716
|
-
}
|
|
11717
|
-
}
|
|
11718
|
-
function itemTier(id) {
|
|
11719
|
-
if (id < 10000)
|
|
11720
|
-
return 0;
|
|
11721
|
-
return Math.floor(id / 10000);
|
|
11722
|
-
}
|
|
11723
|
-
function itemOffset(id) {
|
|
11724
|
-
return id % 10000;
|
|
11725
|
-
}
|
|
11726
|
-
function itemCategory(id) {
|
|
11727
|
-
if (id < 10000)
|
|
11728
|
-
return 'resource';
|
|
11729
|
-
const offset = itemOffset(id);
|
|
11730
|
-
if (offset >= 200)
|
|
11731
|
-
return 'entity';
|
|
11732
|
-
if (offset >= 100)
|
|
11733
|
-
return 'module';
|
|
11734
|
-
return 'component';
|
|
11735
|
-
}
|
|
11736
|
-
function isRelatedItem(a, b) {
|
|
11737
|
-
if (a < 10000 || b < 10000)
|
|
11738
|
-
return false;
|
|
11739
|
-
return itemOffset(a) === itemOffset(b);
|
|
11740
|
-
}
|
|
11741
|
-
function isCraftedItem(id) {
|
|
11742
|
-
return id >= 10000;
|
|
11743
|
-
}
|
|
11744
|
-
|
|
11745
13609
|
const categories = [
|
|
11746
13610
|
{
|
|
11747
13611
|
id: 'ore',
|
|
@@ -12461,49 +14325,6 @@ function renderDescription(desc, options) {
|
|
|
12461
14325
|
return spans;
|
|
12462
14326
|
}
|
|
12463
14327
|
|
|
12464
|
-
function readCommonBase(data) {
|
|
12465
|
-
return {
|
|
12466
|
-
quantity: Number(data.quantity),
|
|
12467
|
-
stats: String(data.stats),
|
|
12468
|
-
origin_x: String(data.origin_x),
|
|
12469
|
-
origin_y: String(data.origin_y),
|
|
12470
|
-
};
|
|
12471
|
-
}
|
|
12472
|
-
function deserializeScalar(data, itemId) {
|
|
12473
|
-
const base = readCommonBase(data);
|
|
12474
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
12475
|
-
}
|
|
12476
|
-
const deserializeResource = deserializeScalar;
|
|
12477
|
-
const deserializeComponent = deserializeScalar;
|
|
12478
|
-
const deserializeModule = deserializeScalar;
|
|
12479
|
-
function deserializeEntity(data, itemId) {
|
|
12480
|
-
const base = readCommonBase(data);
|
|
12481
|
-
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
12482
|
-
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
12483
|
-
const layout = getEntityLayout(itemId);
|
|
12484
|
-
const slots = layout?.slots ?? [];
|
|
12485
|
-
const modules = slots.map((slot, i) => ({
|
|
12486
|
-
type: moduleSlotTypeToCode(slot.type),
|
|
12487
|
-
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
12488
|
-
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
12489
|
-
: undefined,
|
|
12490
|
-
}));
|
|
12491
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
12492
|
-
}
|
|
12493
|
-
function deserializeAsset(data, itemId) {
|
|
12494
|
-
const type = itemTypeCode(itemId);
|
|
12495
|
-
switch (type) {
|
|
12496
|
-
case ITEM_TYPE_RESOURCE:
|
|
12497
|
-
case ITEM_TYPE_COMPONENT:
|
|
12498
|
-
case ITEM_TYPE_MODULE:
|
|
12499
|
-
return deserializeScalar(data, itemId);
|
|
12500
|
-
case ITEM_TYPE_ENTITY:
|
|
12501
|
-
return deserializeEntity(data, itemId);
|
|
12502
|
-
default:
|
|
12503
|
-
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
12504
|
-
}
|
|
12505
|
-
}
|
|
12506
|
-
|
|
12507
14328
|
function idiv(a, b) {
|
|
12508
14329
|
return Math.floor(a / b);
|
|
12509
14330
|
}
|
|
@@ -12596,342 +14417,71 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
12596
14417
|
case MODULE_GATHERER: {
|
|
12597
14418
|
const str = decodeStat(stats, 0);
|
|
12598
14419
|
const tol = decodeStat(stats, 1);
|
|
12599
|
-
const con = decodeStat(stats, 2);
|
|
12600
|
-
const tier = getItem(itemId).tier;
|
|
12601
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
12602
|
-
break;
|
|
12603
|
-
}
|
|
12604
|
-
case MODULE_LOADER: {
|
|
12605
|
-
const fin = decodeStat(stats, 0);
|
|
12606
|
-
const pla = decodeStat(stats, 1);
|
|
12607
|
-
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
12608
|
-
break;
|
|
12609
|
-
}
|
|
12610
|
-
case MODULE_CRAFTER: {
|
|
12611
|
-
const rea = decodeStat(stats, 0);
|
|
12612
|
-
const com = decodeStat(stats, 1);
|
|
12613
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12614
|
-
break;
|
|
12615
|
-
}
|
|
12616
|
-
case MODULE_STORAGE: {
|
|
12617
|
-
const str = decodeStat(stats, 0);
|
|
12618
|
-
const fin = decodeStat(stats, 2);
|
|
12619
|
-
const sat = decodeStat(stats, 3);
|
|
12620
|
-
const sum = str + fin + sat;
|
|
12621
|
-
const pct = 10 + idiv(sum * 10, 2997);
|
|
12622
|
-
out += ` +${pct}% capacity`;
|
|
12623
|
-
break;
|
|
12624
|
-
}
|
|
12625
|
-
case MODULE_HAULER: {
|
|
12626
|
-
const res = decodeStat(stats, 0);
|
|
12627
|
-
const con = decodeStat(stats, 1);
|
|
12628
|
-
const ref = decodeStat(stats, 2);
|
|
12629
|
-
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12630
|
-
break;
|
|
12631
|
-
}
|
|
12632
|
-
case MODULE_WARP: {
|
|
12633
|
-
const stat = decodeStat(stats, 0);
|
|
12634
|
-
out += ` Range ${computeWarpRange(stat)}`;
|
|
12635
|
-
break;
|
|
12636
|
-
}
|
|
12637
|
-
}
|
|
12638
|
-
return out;
|
|
12639
|
-
}
|
|
12640
|
-
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
12641
|
-
const hullMass = computeBaseHullmass(hullStats);
|
|
12642
|
-
let baseCapacity = 0;
|
|
12643
|
-
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
12644
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12645
|
-
}
|
|
12646
|
-
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
12647
|
-
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
12648
|
-
}
|
|
12649
|
-
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
12650
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12651
|
-
}
|
|
12652
|
-
let out = entityDisplayName(itemId);
|
|
12653
|
-
out += ` - Hull ${hullMass} mass`;
|
|
12654
|
-
if (baseCapacity > 0) {
|
|
12655
|
-
out += ` * ${baseCapacity} capacity`;
|
|
12656
|
-
}
|
|
12657
|
-
out += '\n\n';
|
|
12658
|
-
for (let i = 0; i < moduleItems.length; i++) {
|
|
12659
|
-
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
12660
|
-
out += '\n';
|
|
12661
|
-
}
|
|
12662
|
-
return out;
|
|
12663
|
-
}
|
|
12664
|
-
|
|
12665
|
-
function deserializeAtomicData(data, schema) {
|
|
12666
|
-
let rawData;
|
|
12667
|
-
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
12668
|
-
rawData = data
|
|
12669
|
-
.immutable_serialized_data;
|
|
12670
|
-
}
|
|
12671
|
-
else {
|
|
12672
|
-
rawData = data;
|
|
12673
|
-
}
|
|
12674
|
-
let bytes;
|
|
12675
|
-
if (typeof rawData === 'string') {
|
|
12676
|
-
const hex = rawData;
|
|
12677
|
-
bytes = new Uint8Array(hex.length / 2);
|
|
12678
|
-
for (let i = 0; i < hex.length; i += 2) {
|
|
12679
|
-
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
12680
|
-
}
|
|
12681
|
-
}
|
|
12682
|
-
else if (Array.isArray(rawData)) {
|
|
12683
|
-
bytes = new Uint8Array(rawData);
|
|
12684
|
-
}
|
|
12685
|
-
else {
|
|
12686
|
-
bytes = rawData;
|
|
12687
|
-
}
|
|
12688
|
-
let offset = 0;
|
|
12689
|
-
function readVarint() {
|
|
12690
|
-
let result = 0;
|
|
12691
|
-
let multiplier = 1;
|
|
12692
|
-
while (bytes[offset] >= 128) {
|
|
12693
|
-
result += (bytes[offset] - 128) * multiplier;
|
|
12694
|
-
offset++;
|
|
12695
|
-
multiplier *= 128;
|
|
12696
|
-
}
|
|
12697
|
-
result += bytes[offset] * multiplier;
|
|
12698
|
-
offset++;
|
|
12699
|
-
return result;
|
|
12700
|
-
}
|
|
12701
|
-
function readVarint64() {
|
|
12702
|
-
let result = 0n;
|
|
12703
|
-
let multiplier = 1n;
|
|
12704
|
-
while (bytes[offset] >= 128) {
|
|
12705
|
-
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
12706
|
-
offset++;
|
|
12707
|
-
multiplier *= 128n;
|
|
12708
|
-
}
|
|
12709
|
-
result += BigInt(bytes[offset]) * multiplier;
|
|
12710
|
-
offset++;
|
|
12711
|
-
return result;
|
|
12712
|
-
}
|
|
12713
|
-
function readZigzagInt64() {
|
|
12714
|
-
const unsigned = readVarint64();
|
|
12715
|
-
if (unsigned % 2n === 0n) {
|
|
12716
|
-
return unsigned / 2n;
|
|
14420
|
+
const con = decodeStat(stats, 2);
|
|
14421
|
+
const tier = getItem(itemId).tier;
|
|
14422
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
14423
|
+
break;
|
|
12717
14424
|
}
|
|
12718
|
-
|
|
12719
|
-
|
|
14425
|
+
case MODULE_LOADER: {
|
|
14426
|
+
const fin = decodeStat(stats, 0);
|
|
14427
|
+
const pla = decodeStat(stats, 1);
|
|
14428
|
+
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
14429
|
+
break;
|
|
12720
14430
|
}
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
offset += length;
|
|
12726
|
-
return str;
|
|
12727
|
-
}
|
|
12728
|
-
const RESERVED = 4;
|
|
12729
|
-
const result = {};
|
|
12730
|
-
while (offset < bytes.length) {
|
|
12731
|
-
const fieldIndex = readVarint() - RESERVED;
|
|
12732
|
-
const field = schema[fieldIndex];
|
|
12733
|
-
if (!field)
|
|
14431
|
+
case MODULE_CRAFTER: {
|
|
14432
|
+
const rea = decodeStat(stats, 0);
|
|
14433
|
+
const com = decodeStat(stats, 1);
|
|
14434
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12734
14435
|
break;
|
|
12735
|
-
switch (field.type) {
|
|
12736
|
-
case 'uint16':
|
|
12737
|
-
result[field.name] = readVarint();
|
|
12738
|
-
break;
|
|
12739
|
-
case 'uint32':
|
|
12740
|
-
result[field.name] = readVarint();
|
|
12741
|
-
break;
|
|
12742
|
-
case 'uint64':
|
|
12743
|
-
result[field.name] = readVarint64();
|
|
12744
|
-
break;
|
|
12745
|
-
case 'int32':
|
|
12746
|
-
result[field.name] = readZigzagInt64();
|
|
12747
|
-
break;
|
|
12748
|
-
case 'int64':
|
|
12749
|
-
result[field.name] = readZigzagInt64();
|
|
12750
|
-
break;
|
|
12751
|
-
case 'string':
|
|
12752
|
-
case 'image':
|
|
12753
|
-
case 'ipfs':
|
|
12754
|
-
result[field.name] = readString();
|
|
12755
|
-
break;
|
|
12756
|
-
case 'uint16[]': {
|
|
12757
|
-
const len = readVarint();
|
|
12758
|
-
const arr = [];
|
|
12759
|
-
for (let i = 0; i < len; i++)
|
|
12760
|
-
arr.push(readVarint());
|
|
12761
|
-
result[field.name] = arr;
|
|
12762
|
-
break;
|
|
12763
|
-
}
|
|
12764
|
-
case 'uint64[]': {
|
|
12765
|
-
const len = readVarint();
|
|
12766
|
-
const arr = [];
|
|
12767
|
-
for (let i = 0; i < len; i++)
|
|
12768
|
-
arr.push(readVarint64());
|
|
12769
|
-
result[field.name] = arr;
|
|
12770
|
-
break;
|
|
12771
|
-
}
|
|
12772
|
-
default:
|
|
12773
|
-
throw new Error(`Unknown type: ${field.type}`);
|
|
12774
14436
|
}
|
|
12775
|
-
|
|
12776
|
-
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
const
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
12784
|
-
const SHIPLOAD_COLLECTION = 'shipload';
|
|
12785
|
-
const ATOMIC_ATTRIBUTE_VARIANT_NAME = 'variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC';
|
|
12786
|
-
const MINTASSET_ABI_DEF = {
|
|
12787
|
-
version: 'eosio::abi/1.2',
|
|
12788
|
-
types: [
|
|
12789
|
-
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
12790
|
-
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
12791
|
-
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
12792
|
-
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
12793
|
-
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
12794
|
-
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
12795
|
-
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
12796
|
-
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
12797
|
-
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
12798
|
-
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
12799
|
-
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
12800
|
-
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
12801
|
-
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
12802
|
-
],
|
|
12803
|
-
structs: [
|
|
12804
|
-
{
|
|
12805
|
-
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
12806
|
-
base: '',
|
|
12807
|
-
fields: [
|
|
12808
|
-
{ name: 'first', type: 'string' },
|
|
12809
|
-
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
12810
|
-
],
|
|
12811
|
-
},
|
|
12812
|
-
{
|
|
12813
|
-
name: 'mintasset',
|
|
12814
|
-
base: '',
|
|
12815
|
-
fields: [
|
|
12816
|
-
{ name: 'authorized_minter', type: 'name' },
|
|
12817
|
-
{ name: 'collection_name', type: 'name' },
|
|
12818
|
-
{ name: 'schema_name', type: 'name' },
|
|
12819
|
-
{ name: 'template_id', type: 'int32' },
|
|
12820
|
-
{ name: 'new_asset_owner', type: 'name' },
|
|
12821
|
-
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12822
|
-
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12823
|
-
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
12824
|
-
],
|
|
12825
|
-
},
|
|
12826
|
-
],
|
|
12827
|
-
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
12828
|
-
variants: [
|
|
12829
|
-
{
|
|
12830
|
-
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
12831
|
-
types: [
|
|
12832
|
-
'int8',
|
|
12833
|
-
'int16',
|
|
12834
|
-
'int32',
|
|
12835
|
-
'int64',
|
|
12836
|
-
'uint8',
|
|
12837
|
-
'uint16',
|
|
12838
|
-
'uint32',
|
|
12839
|
-
'uint64',
|
|
12840
|
-
'float32',
|
|
12841
|
-
'float64',
|
|
12842
|
-
'string',
|
|
12843
|
-
'INT8_VEC',
|
|
12844
|
-
'INT16_VEC',
|
|
12845
|
-
'INT32_VEC',
|
|
12846
|
-
'INT64_VEC',
|
|
12847
|
-
'UINT8_VEC',
|
|
12848
|
-
'UINT16_VEC',
|
|
12849
|
-
'UINT32_VEC',
|
|
12850
|
-
'UINT64_VEC',
|
|
12851
|
-
'FLOAT_VEC',
|
|
12852
|
-
'DOUBLE_VEC',
|
|
12853
|
-
'STRING_VEC',
|
|
12854
|
-
],
|
|
12855
|
-
},
|
|
12856
|
-
],
|
|
12857
|
-
};
|
|
12858
|
-
const MINTASSET_ABI = antelope.ABI.from(MINTASSET_ABI_DEF);
|
|
12859
|
-
function buildMintAssetAction(params) {
|
|
12860
|
-
return antelope.Action.from({
|
|
12861
|
-
account: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
12862
|
-
name: antelope.Name.from('mintasset'),
|
|
12863
|
-
authorization: [PLACEHOLDER_AUTH],
|
|
12864
|
-
data: {
|
|
12865
|
-
authorized_minter: antelope.Name.from(params.authorizedMinter),
|
|
12866
|
-
collection_name: antelope.Name.from(params.collectionName),
|
|
12867
|
-
schema_name: antelope.Name.from(params.schemaName),
|
|
12868
|
-
template_id: params.templateId,
|
|
12869
|
-
new_asset_owner: antelope.Name.from(params.newAssetOwner),
|
|
12870
|
-
immutable_data: params.immutableData,
|
|
12871
|
-
mutable_data: [],
|
|
12872
|
-
tokens_to_back: [],
|
|
12873
|
-
},
|
|
12874
|
-
}, MINTASSET_ABI);
|
|
12875
|
-
}
|
|
12876
|
-
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
12877
|
-
const collection = opts.collection ? String(antelope.Name.from(opts.collection)) : undefined;
|
|
12878
|
-
const pageSize = opts.pageSize ?? 1000;
|
|
12879
|
-
const out = [];
|
|
12880
|
-
let lower;
|
|
12881
|
-
while (true) {
|
|
12882
|
-
const res = await client.v1.chain.get_table_rows({
|
|
12883
|
-
code: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
12884
|
-
scope: String(antelope.Name.from(owner)),
|
|
12885
|
-
table: antelope.Name.from('assets'),
|
|
12886
|
-
limit: pageSize,
|
|
12887
|
-
lower_bound: lower,
|
|
12888
|
-
json: true,
|
|
12889
|
-
});
|
|
12890
|
-
for (const row of res.rows) {
|
|
12891
|
-
if (!collection || row.collection_name === collection)
|
|
12892
|
-
out.push(row);
|
|
14437
|
+
case MODULE_STORAGE: {
|
|
14438
|
+
const str = decodeStat(stats, 0);
|
|
14439
|
+
const fin = decodeStat(stats, 2);
|
|
14440
|
+
const sat = decodeStat(stats, 3);
|
|
14441
|
+
const sum = str + fin + sat;
|
|
14442
|
+
const pct = 10 + idiv(sum * 10, 2997);
|
|
14443
|
+
out += ` +${pct}% capacity`;
|
|
14444
|
+
break;
|
|
12893
14445
|
}
|
|
12894
|
-
|
|
14446
|
+
case MODULE_HAULER: {
|
|
14447
|
+
const res = decodeStat(stats, 0);
|
|
14448
|
+
const con = decodeStat(stats, 1);
|
|
14449
|
+
const ref = decodeStat(stats, 2);
|
|
14450
|
+
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12895
14451
|
break;
|
|
12896
|
-
|
|
14452
|
+
}
|
|
14453
|
+
case MODULE_WARP: {
|
|
14454
|
+
const stat = decodeStat(stats, 0);
|
|
14455
|
+
out += ` Range ${computeWarpRange(stat)}`;
|
|
14456
|
+
break;
|
|
14457
|
+
}
|
|
12897
14458
|
}
|
|
12898
14459
|
return out;
|
|
12899
14460
|
}
|
|
12900
|
-
|
|
12901
|
-
const
|
|
12902
|
-
let
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12907
|
-
|
|
12908
|
-
|
|
12909
|
-
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
14461
|
+
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14462
|
+
const hullMass = computeBaseHullmass(hullStats);
|
|
14463
|
+
let baseCapacity = 0;
|
|
14464
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
14465
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14466
|
+
}
|
|
14467
|
+
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
14468
|
+
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
14469
|
+
}
|
|
14470
|
+
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
14471
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14472
|
+
}
|
|
14473
|
+
let out = entityDisplayName(itemId);
|
|
14474
|
+
out += ` - Hull ${hullMass} mass`;
|
|
14475
|
+
if (baseCapacity > 0) {
|
|
14476
|
+
out += ` * ${baseCapacity} capacity`;
|
|
14477
|
+
}
|
|
14478
|
+
out += '\n\n';
|
|
14479
|
+
for (let i = 0; i < moduleItems.length; i++) {
|
|
14480
|
+
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
14481
|
+
out += '\n';
|
|
12917
14482
|
}
|
|
12918
14483
|
return out;
|
|
12919
14484
|
}
|
|
12920
|
-
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
12921
|
-
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
12922
|
-
const cargo = deserializeAsset(data, itemId);
|
|
12923
|
-
return {
|
|
12924
|
-
asset_id: BigInt(String(asset.asset_id)),
|
|
12925
|
-
schema_name: String(asset.schema_name),
|
|
12926
|
-
template_id: Number(asset.template_id),
|
|
12927
|
-
item_id: cargo.item_id,
|
|
12928
|
-
quantity: cargo.quantity,
|
|
12929
|
-
stats: cargo.stats,
|
|
12930
|
-
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
12931
|
-
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
12932
|
-
modules: cargo.modules,
|
|
12933
|
-
};
|
|
12934
|
-
}
|
|
12935
14485
|
|
|
12936
14486
|
function moduleSlotsForImmutable(modules) {
|
|
12937
14487
|
return modules.map((m) => ({
|
|
@@ -13162,6 +14712,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
13162
14712
|
deserializeAtomicData: deserializeAtomicData,
|
|
13163
14713
|
ATOMICASSETS_ACCOUNT: ATOMICASSETS_ACCOUNT,
|
|
13164
14714
|
SHIPLOAD_COLLECTION: SHIPLOAD_COLLECTION,
|
|
14715
|
+
ATOMICASSETS_ABI: ATOMICASSETS_ABI,
|
|
13165
14716
|
buildMintAssetAction: buildMintAssetAction,
|
|
13166
14717
|
fetchAtomicAssetsForOwner: fetchAtomicAssetsForOwner,
|
|
13167
14718
|
fetchAtomicSchemas: fetchAtomicSchemas,
|
|
@@ -13516,7 +15067,6 @@ exports.buildResourceImmutable = buildResourceImmutable;
|
|
|
13516
15067
|
exports.calcCargoItemMass = calcCargoItemMass;
|
|
13517
15068
|
exports.calcCargoMass = calcCargoMass;
|
|
13518
15069
|
exports.calcEnergyUsage = calcEnergyUsage;
|
|
13519
|
-
exports.calcLoadDuration = calcLoadDuration;
|
|
13520
15070
|
exports.calcStacksMass = calcStacksMass;
|
|
13521
15071
|
exports.calc_acceleration = calc_acceleration;
|
|
13522
15072
|
exports.calc_craft_duration = calc_craft_duration;
|