@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.m.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, UInt16, UInt8, Int64, TimePoint, BlockTimestamp, Bytes, Int32, Checksum512, Action, APIClient,
|
|
2
|
+
import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, UInt16, UInt8, Int64, TimePoint, BlockTimestamp, Bytes, Int32, Checksum512, PermissionLevel, Action, APIClient, Serializer } from '@wharfkit/antelope';
|
|
3
3
|
import ContractKit, { Contract as Contract$2 } from '@wharfkit/contract';
|
|
4
4
|
|
|
5
|
-
const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yABsLYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwACBW93bmVyBG5hbWUNbGFzdF9hc3NldF9pZAZ1aW50NjQRAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAAAAhWlEBWNsb3Nl4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xvc2UKc3VtbWFyeTogJ0Nsb3NlIGEgZGVwb3NpdCBiYWxhbmNlIHJvdycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkNsb3NlIHRoZSBvd25lcidzIGRlcG9zaXQgYmFsYW5jZSByb3cgZm9yIHRoZSBnaXZlbiB0b2tlbiBhbmQgZnJlZSBpdHMgUkFNLiBUaGUgYmFsYW5jZSBtdXN0IGJlIHplcm8gYmVmb3JlIGNsb3NpbmcuIFJlcXVpcmVzIHRoZSBvd25lcidzIGF1dGhvcml0eS6QHaZVpeyOSgxkZWJpdGRlcG9zaXSdBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZWJpdGRlcG9zaXQKc3VtbWFyeTogJ0RlYml0IGEgZGVwb3NpdCBiYWxhbmNlIGZvciBhIHdyYXAgb3BlcmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgYSByZWdpc3RlcmVkLCBlbmFibGVkIGdhbWUgY29udHJhY3Qgb25seS4gRGViaXRzIHRoZSBvd25lcidzIGRlcG9zaXQgYmFsYW5jZSBieSB0aGUgbG9ja2VkIGFtb3VudCBwbHVzIHRoZSBmZWUsIGFuZCBjcmVkaXRzIHRoZSBmZWUgdG8gdGhlIGNvbmZpZ3VyZWQgZmVlIGFjY291bnQuIFVzZWQgYnkgYSBnYW1lJ3Mgd3JhcCBmbG93IHRvIGNvbGxlY3QgdGhlIHdyYXAgY29zdC4gQ2Fubm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBwbGF5ZXJzIG9yIHVucmVnaXN0ZXJlZCBhY2NvdW50cy4AAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LgCAkoapeMxUCmVuYWJsZWdhbWX8AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGVnYW1lCnN1bW1hcnk6ICdFbmFibGUvZGlzYmFibGUgYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAMFWlBG9wZW6bAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBvcGVuCnN1bW1hcnk6ICdPcGVuIGEgZGVwb3NpdCBiYWxhbmNlIHJvdycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCk9wZW4gYSB6ZXJvLWJhbGFuY2UgZGVwb3NpdCByb3cgZm9yIHRoZSBnaXZlbiBvd25lciBhbmQgdG9rZW4sIHdpdGggUkFNIHBhaWQgYnkgdGhlIG93bmVyLiBIYXMgbm8gZWZmZWN0IGlmIHRoZSByb3cgYWxyZWFkeSBleGlzdHMuIE11c3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgb3duZXIgY2FuIHJlY2VpdmUgdG9rZW4gZGVwb3NpdHMgb3Igd3JhcCByZWZ1bmRzLqCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
|
|
5
|
+
const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAB0LYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHJlbGdhdGVhc3NldAABCGFzc2V0X2lkBnVpbnQ2NAxyZWxnYXRlb3duZXIAAQVvd25lcgRuYW1lDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwADBW93bmVyBG5hbWUEZ2FtZQRuYW1lDWxhc3RfYXNzZXRfaWQGdWludDY0EwCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAIVpRAVjbG9zZeICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsb3NlCnN1bW1hcnk6ICdDbG9zZSBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpDbG9zZSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2Ugcm93IGZvciB0aGUgZ2l2ZW4gdG9rZW4gYW5kIGZyZWUgaXRzIFJBTS4gVGhlIGJhbGFuY2UgbXVzdCBiZSB6ZXJvIGJlZm9yZSBjbG9zaW5nLiBSZXF1aXJlcyB0aGUgb3duZXIncyBhdXRob3JpdHkukB2mVaXsjkoMZGViaXRkZXBvc2l0nQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGViaXRkZXBvc2l0CnN1bW1hcnk6ICdEZWJpdCBhIGRlcG9zaXQgYmFsYW5jZSBmb3IgYSB3cmFwIG9wZXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IGEgcmVnaXN0ZXJlZCwgZW5hYmxlZCBnYW1lIGNvbnRyYWN0IG9ubHkuIERlYml0cyB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UgYnkgdGhlIGxvY2tlZCBhbW91bnQgcGx1cyB0aGUgZmVlLCBhbmQgY3JlZGl0cyB0aGUgZmVlIHRvIHRoZSBjb25maWd1cmVkIGZlZSBhY2NvdW50LiBVc2VkIGJ5IGEgZ2FtZSdzIHdyYXAgZmxvdyB0byBjb2xsZWN0IHRoZSB3cmFwIGNvc3QuIENhbm5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgcGxheWVycyBvciB1bnJlZ2lzdGVyZWQgYWNjb3VudHMuAAAAAKh4zFQGZW5hYmxl8wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdFbmFibGUvZGlzYWJsZSBwbGF0Zm9ybScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBwbGF0Zm9ybSBjb250cmFjdC4AgJKGqXjMVAplbmFibGVnYW1l/AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlZ2FtZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2JhYmxlIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC7gp6mSojQ1XQxmb3VuZGNvbXBhbnmDAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3VuZGNvbXBhbnkKc3VtbWFyeTogJ0ZvdW5kIGEgbmV3IGNvbXBhbnknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpGb3VuZCBhIG5ldyBjb21wYW55IGluIHRoZSBTaGlwbG9hZCBwbGF0Zm9ybSBjb250cmFjdC4AAAAAADBVpQRvcGVumwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogb3BlbgpzdW1tYXJ5OiAnT3BlbiBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpPcGVuIGEgemVyby1iYWxhbmNlIGRlcG9zaXQgcm93IGZvciB0aGUgZ2l2ZW4gb3duZXIgYW5kIHRva2VuLCB3aXRoIFJBTSBwYWlkIGJ5IHRoZSBvd25lci4gSGFzIG5vIGVmZmVjdCBpZiB0aGUgcm93IGFscmVhZHkgZXhpc3RzLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIG93bmVyIGNhbiByZWNlaXZlIHRva2VuIGRlcG9zaXRzIG9yIHdyYXAgcmVmdW5kcy6QFcZGZcOiugxyZWxnYXRlYXNzZXQAcNXkVGXDoroMcmVsZ2F0ZW93bmVyAKCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
|
|
6
6
|
const abi$1 = ABI.from(abiBlob$1);
|
|
7
7
|
var Types$1;
|
|
8
8
|
(function (Types) {
|
|
@@ -204,6 +204,24 @@ var Types$1;
|
|
|
204
204
|
Struct.type('open')
|
|
205
205
|
], open);
|
|
206
206
|
Types.open = open;
|
|
207
|
+
let relgateasset = class relgateasset extends Struct {
|
|
208
|
+
};
|
|
209
|
+
__decorate([
|
|
210
|
+
Struct.field(UInt64)
|
|
211
|
+
], relgateasset.prototype, "asset_id", void 0);
|
|
212
|
+
relgateasset = __decorate([
|
|
213
|
+
Struct.type('relgateasset')
|
|
214
|
+
], relgateasset);
|
|
215
|
+
Types.relgateasset = relgateasset;
|
|
216
|
+
let relgateowner = class relgateowner extends Struct {
|
|
217
|
+
};
|
|
218
|
+
__decorate([
|
|
219
|
+
Struct.field(Name)
|
|
220
|
+
], relgateowner.prototype, "owner", void 0);
|
|
221
|
+
relgateowner = __decorate([
|
|
222
|
+
Struct.type('relgateowner')
|
|
223
|
+
], relgateowner);
|
|
224
|
+
Types.relgateowner = relgateowner;
|
|
207
225
|
let setepochtime = class setepochtime extends Struct {
|
|
208
226
|
};
|
|
209
227
|
__decorate([
|
|
@@ -377,6 +395,9 @@ var Types$1;
|
|
|
377
395
|
__decorate([
|
|
378
396
|
Struct.field(Name)
|
|
379
397
|
], wrapgate_row.prototype, "owner", void 0);
|
|
398
|
+
__decorate([
|
|
399
|
+
Struct.field(Name)
|
|
400
|
+
], wrapgate_row.prototype, "game", void 0);
|
|
380
401
|
__decorate([
|
|
381
402
|
Struct.field(UInt64)
|
|
382
403
|
], wrapgate_row.prototype, "last_asset_id", void 0);
|
|
@@ -419,7 +440,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
419
440
|
Contract: Contract$1
|
|
420
441
|
});
|
|
421
442
|
|
|
422
|
-
const abiBlob = 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');
|
|
443
|
+
const abiBlob = 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');
|
|
423
444
|
const abi = ABI.from(abiBlob);
|
|
424
445
|
var Types;
|
|
425
446
|
(function (Types) {
|
|
@@ -651,6 +672,15 @@ var Types;
|
|
|
651
672
|
Struct.type('cargo_view')
|
|
652
673
|
], cargo_view);
|
|
653
674
|
Types.cargo_view = cargo_view;
|
|
675
|
+
let claim_row = class claim_row extends Struct {
|
|
676
|
+
};
|
|
677
|
+
__decorate([
|
|
678
|
+
Struct.field(Name)
|
|
679
|
+
], claim_row.prototype, "owner", void 0);
|
|
680
|
+
claim_row = __decorate([
|
|
681
|
+
Struct.type('claim_row')
|
|
682
|
+
], claim_row);
|
|
683
|
+
Types.claim_row = claim_row;
|
|
654
684
|
let coordinates = class coordinates extends Struct {
|
|
655
685
|
};
|
|
656
686
|
__decorate([
|
|
@@ -681,6 +711,15 @@ var Types;
|
|
|
681
711
|
Struct.type('claimplot')
|
|
682
712
|
], claimplot);
|
|
683
713
|
Types.claimplot = claimplot;
|
|
714
|
+
let claimstarter = class claimstarter extends Struct {
|
|
715
|
+
};
|
|
716
|
+
__decorate([
|
|
717
|
+
Struct.field(Name)
|
|
718
|
+
], claimstarter.prototype, "owner", void 0);
|
|
719
|
+
claimstarter = __decorate([
|
|
720
|
+
Struct.type('claimstarter')
|
|
721
|
+
], claimstarter);
|
|
722
|
+
Types.claimstarter = claimstarter;
|
|
684
723
|
let cleanrsvp = class cleanrsvp extends Struct {
|
|
685
724
|
};
|
|
686
725
|
__decorate([
|
|
@@ -822,7 +861,7 @@ var Types;
|
|
|
822
861
|
Struct.field(UInt16)
|
|
823
862
|
], crafter_stats.prototype, "speed", void 0);
|
|
824
863
|
__decorate([
|
|
825
|
-
Struct.field(
|
|
864
|
+
Struct.field(UInt32)
|
|
826
865
|
], crafter_stats.prototype, "drain", void 0);
|
|
827
866
|
crafter_stats = __decorate([
|
|
828
867
|
Struct.type('crafter_stats')
|
|
@@ -879,10 +918,10 @@ var Types;
|
|
|
879
918
|
let energy_stats = class energy_stats extends Struct {
|
|
880
919
|
};
|
|
881
920
|
__decorate([
|
|
882
|
-
Struct.field(
|
|
921
|
+
Struct.field(UInt32)
|
|
883
922
|
], energy_stats.prototype, "capacity", void 0);
|
|
884
923
|
__decorate([
|
|
885
|
-
Struct.field(
|
|
924
|
+
Struct.field(UInt32)
|
|
886
925
|
], energy_stats.prototype, "recharge", void 0);
|
|
887
926
|
energy_stats = __decorate([
|
|
888
927
|
Struct.type('energy_stats')
|
|
@@ -894,7 +933,7 @@ var Types;
|
|
|
894
933
|
Struct.field(coordinates)
|
|
895
934
|
], entity_current_state.prototype, "coordinates", void 0);
|
|
896
935
|
__decorate([
|
|
897
|
-
Struct.field(
|
|
936
|
+
Struct.field(UInt32)
|
|
898
937
|
], entity_current_state.prototype, "energy", void 0);
|
|
899
938
|
entity_current_state = __decorate([
|
|
900
939
|
Struct.type('entity_current_state')
|
|
@@ -906,7 +945,7 @@ var Types;
|
|
|
906
945
|
Struct.field(UInt32)
|
|
907
946
|
], movement_stats.prototype, "thrust", void 0);
|
|
908
947
|
__decorate([
|
|
909
|
-
Struct.field(
|
|
948
|
+
Struct.field(UInt32)
|
|
910
949
|
], movement_stats.prototype, "drain", void 0);
|
|
911
950
|
movement_stats = __decorate([
|
|
912
951
|
Struct.type('movement_stats')
|
|
@@ -927,7 +966,7 @@ var Types;
|
|
|
927
966
|
Struct.field(UInt16)
|
|
928
967
|
], gatherer_stats.prototype, "yield", void 0);
|
|
929
968
|
__decorate([
|
|
930
|
-
Struct.field(
|
|
969
|
+
Struct.field(UInt32)
|
|
931
970
|
], gatherer_stats.prototype, "drain", void 0);
|
|
932
971
|
__decorate([
|
|
933
972
|
Struct.field(UInt16)
|
|
@@ -960,7 +999,7 @@ var Types;
|
|
|
960
999
|
Struct.field(UInt16)
|
|
961
1000
|
], hauler_stats.prototype, "efficiency", void 0);
|
|
962
1001
|
__decorate([
|
|
963
|
-
Struct.field(
|
|
1002
|
+
Struct.field(UInt32)
|
|
964
1003
|
], hauler_stats.prototype, "drain", void 0);
|
|
965
1004
|
hauler_stats = __decorate([
|
|
966
1005
|
Struct.type('hauler_stats')
|
|
@@ -990,7 +1029,7 @@ var Types;
|
|
|
990
1029
|
Struct.field(UInt64, { optional: true })
|
|
991
1030
|
], task.prototype, "entitygroup", void 0);
|
|
992
1031
|
__decorate([
|
|
993
|
-
Struct.field(
|
|
1032
|
+
Struct.field(UInt32, { optional: true })
|
|
994
1033
|
], task.prototype, "energy_cost", void 0);
|
|
995
1034
|
task = __decorate([
|
|
996
1035
|
Struct.type('task')
|
|
@@ -1038,7 +1077,7 @@ var Types;
|
|
|
1038
1077
|
Struct.field(module_entry, { array: true })
|
|
1039
1078
|
], entity_info.prototype, "modules", void 0);
|
|
1040
1079
|
__decorate([
|
|
1041
|
-
Struct.field(
|
|
1080
|
+
Struct.field(UInt32, { optional: true })
|
|
1042
1081
|
], entity_info.prototype, "energy", void 0);
|
|
1043
1082
|
__decorate([
|
|
1044
1083
|
Struct.field(UInt32, { optional: true })
|
|
@@ -1149,7 +1188,7 @@ var Types;
|
|
|
1149
1188
|
Struct.field(coordinates)
|
|
1150
1189
|
], entity_row.prototype, "coordinates", void 0);
|
|
1151
1190
|
__decorate([
|
|
1152
|
-
Struct.field(
|
|
1191
|
+
Struct.field(UInt32, { optional: true })
|
|
1153
1192
|
], entity_row.prototype, "energy", void 0);
|
|
1154
1193
|
__decorate([
|
|
1155
1194
|
Struct.field(UInt32)
|
|
@@ -1308,6 +1347,15 @@ var Types;
|
|
|
1308
1347
|
Struct.type('gather')
|
|
1309
1348
|
], gather);
|
|
1310
1349
|
Types.gather = gather;
|
|
1350
|
+
let genesisfleet = class genesisfleet extends Struct {
|
|
1351
|
+
};
|
|
1352
|
+
__decorate([
|
|
1353
|
+
Struct.field(entity_row, { array: true })
|
|
1354
|
+
], genesisfleet.prototype, "entities", void 0);
|
|
1355
|
+
genesisfleet = __decorate([
|
|
1356
|
+
Struct.type('genesisfleet')
|
|
1357
|
+
], genesisfleet);
|
|
1358
|
+
Types.genesisfleet = genesisfleet;
|
|
1311
1359
|
let getconfig = class getconfig extends Struct {
|
|
1312
1360
|
};
|
|
1313
1361
|
getconfig = __decorate([
|
|
@@ -1974,7 +2022,7 @@ var Types;
|
|
|
1974
2022
|
Struct.field(entity_current_state)
|
|
1975
2023
|
], nearby_info.prototype, "projected", void 0);
|
|
1976
2024
|
__decorate([
|
|
1977
|
-
Struct.field(
|
|
2025
|
+
Struct.field(UInt32)
|
|
1978
2026
|
], nearby_info.prototype, "max_energy", void 0);
|
|
1979
2027
|
__decorate([
|
|
1980
2028
|
Struct.field(nearby_system, { array: true })
|
|
@@ -2118,7 +2166,7 @@ var Types;
|
|
|
2118
2166
|
Struct.field(TimePoint)
|
|
2119
2167
|
], task_event.prototype, "completes_at", void 0);
|
|
2120
2168
|
__decorate([
|
|
2121
|
-
Struct.field(
|
|
2169
|
+
Struct.field(UInt32, { optional: true })
|
|
2122
2170
|
], task_event.prototype, "new_energy", void 0);
|
|
2123
2171
|
task_event = __decorate([
|
|
2124
2172
|
Struct.type('task_event')
|
|
@@ -2214,7 +2262,7 @@ var Types;
|
|
|
2214
2262
|
Struct.field(coordinates)
|
|
2215
2263
|
], projected_state.prototype, "coordinates", void 0);
|
|
2216
2264
|
__decorate([
|
|
2217
|
-
Struct.field(
|
|
2265
|
+
Struct.field(UInt32, { optional: true })
|
|
2218
2266
|
], projected_state.prototype, "energy", void 0);
|
|
2219
2267
|
__decorate([
|
|
2220
2268
|
Struct.field(UInt32)
|
|
@@ -2550,6 +2598,21 @@ var Types;
|
|
|
2550
2598
|
Struct.type('stratum_remaining')
|
|
2551
2599
|
], stratum_remaining);
|
|
2552
2600
|
Types.stratum_remaining = stratum_remaining;
|
|
2601
|
+
let swapmodule = class swapmodule extends Struct {
|
|
2602
|
+
};
|
|
2603
|
+
__decorate([
|
|
2604
|
+
Struct.field(UInt64)
|
|
2605
|
+
], swapmodule.prototype, "entity_id", void 0);
|
|
2606
|
+
__decorate([
|
|
2607
|
+
Struct.field(UInt8)
|
|
2608
|
+
], swapmodule.prototype, "module_index", void 0);
|
|
2609
|
+
__decorate([
|
|
2610
|
+
Struct.field(cargo_ref)
|
|
2611
|
+
], swapmodule.prototype, "module_ref", void 0);
|
|
2612
|
+
swapmodule = __decorate([
|
|
2613
|
+
Struct.type('swapmodule')
|
|
2614
|
+
], swapmodule);
|
|
2615
|
+
Types.swapmodule = swapmodule;
|
|
2553
2616
|
let task_results = class task_results extends Struct {
|
|
2554
2617
|
};
|
|
2555
2618
|
__decorate([
|
|
@@ -2676,6 +2739,7 @@ var Types;
|
|
|
2676
2739
|
})(Types || (Types = {}));
|
|
2677
2740
|
const TableMap = {
|
|
2678
2741
|
cargo: Types.cargo_row,
|
|
2742
|
+
claims: Types.claim_row,
|
|
2679
2743
|
commit: Types.commit_row,
|
|
2680
2744
|
entity: Types.entity_row,
|
|
2681
2745
|
entitygroup: Types.entitygroup_row,
|
|
@@ -2831,6 +2895,7 @@ var TaskType;
|
|
|
2831
2895
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
2832
2896
|
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
2833
2897
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
2898
|
+
TaskType[TaskType["RESERVED"] = 16] = "RESERVED";
|
|
2834
2899
|
})(TaskType || (TaskType = {}));
|
|
2835
2900
|
var LocationType;
|
|
2836
2901
|
(function (LocationType) {
|
|
@@ -7594,6 +7659,9 @@ class BaseManager {
|
|
|
7594
7659
|
get platform() {
|
|
7595
7660
|
return this.context.platform;
|
|
7596
7661
|
}
|
|
7662
|
+
get atomicAssetsAccount() {
|
|
7663
|
+
return this.context.atomicAssetsAccount;
|
|
7664
|
+
}
|
|
7597
7665
|
async getGame() {
|
|
7598
7666
|
return this.context.getGame();
|
|
7599
7667
|
}
|
|
@@ -8250,7 +8318,11 @@ function scheduleRemaining(entity, now) {
|
|
|
8250
8318
|
return Math.max(0, duration - elapsed);
|
|
8251
8319
|
}
|
|
8252
8320
|
function scheduleComplete(entity, now) {
|
|
8253
|
-
|
|
8321
|
+
if (!hasSchedule$1(entity))
|
|
8322
|
+
return false;
|
|
8323
|
+
if ((entity.schedule?.tasks ?? []).some((t) => t.type.toNumber() === TaskType.RESERVED))
|
|
8324
|
+
return false;
|
|
8325
|
+
return scheduleRemaining(entity, now) === 0;
|
|
8254
8326
|
}
|
|
8255
8327
|
function currentTaskIndex(entity, now) {
|
|
8256
8328
|
if (!entity.schedule || entity.schedule.tasks.length === 0)
|
|
@@ -8308,6 +8380,8 @@ function getTaskRemaining(entity, index, now) {
|
|
|
8308
8380
|
function isTaskComplete(entity, index, now) {
|
|
8309
8381
|
if (!entity.schedule || index < 0 || index >= entity.schedule.tasks.length)
|
|
8310
8382
|
return false;
|
|
8383
|
+
if (entity.schedule.tasks[index].type.toNumber() === TaskType.RESERVED)
|
|
8384
|
+
return false;
|
|
8311
8385
|
const taskDuration = entity.schedule.tasks[index].duration.toNumber();
|
|
8312
8386
|
const taskElapsed = getTaskElapsed(entity, index, now);
|
|
8313
8387
|
return taskElapsed >= taskDuration;
|
|
@@ -9280,120 +9354,1920 @@ class EpochsManager extends BaseManager {
|
|
|
9280
9354
|
}
|
|
9281
9355
|
}
|
|
9282
9356
|
|
|
9283
|
-
|
|
9284
|
-
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
id: UInt64.from(shipId),
|
|
9289
|
-
x,
|
|
9290
|
-
y,
|
|
9291
|
-
recharge,
|
|
9292
|
-
});
|
|
9357
|
+
function deserializeAtomicData(data, schema) {
|
|
9358
|
+
let rawData;
|
|
9359
|
+
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
9360
|
+
rawData = data
|
|
9361
|
+
.immutable_serialized_data;
|
|
9293
9362
|
}
|
|
9294
|
-
|
|
9295
|
-
|
|
9296
|
-
entity_type: e.entityType,
|
|
9297
|
-
entity_id: UInt64.from(e.entityId),
|
|
9298
|
-
}));
|
|
9299
|
-
const x = Int64.from(destination.x);
|
|
9300
|
-
const y = Int64.from(destination.y);
|
|
9301
|
-
return this.server.action('grouptravel', {
|
|
9302
|
-
entities: entityRefs,
|
|
9303
|
-
x,
|
|
9304
|
-
y,
|
|
9305
|
-
recharge,
|
|
9306
|
-
});
|
|
9363
|
+
else {
|
|
9364
|
+
rawData = data;
|
|
9307
9365
|
}
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9366
|
+
let bytes;
|
|
9367
|
+
if (typeof rawData === 'string') {
|
|
9368
|
+
const hex = rawData;
|
|
9369
|
+
bytes = new Uint8Array(hex.length / 2);
|
|
9370
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
9371
|
+
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
9314
9372
|
}
|
|
9315
|
-
return this.server.action('resolve', params);
|
|
9316
9373
|
}
|
|
9317
|
-
|
|
9318
|
-
|
|
9319
|
-
id: UInt64.from(entityId),
|
|
9320
|
-
count: UInt64.from(count),
|
|
9321
|
-
});
|
|
9322
|
-
}
|
|
9323
|
-
recharge(entityId) {
|
|
9324
|
-
return this.server.action('recharge', {
|
|
9325
|
-
id: UInt64.from(entityId),
|
|
9326
|
-
});
|
|
9327
|
-
}
|
|
9328
|
-
refrshentity(entityId) {
|
|
9329
|
-
return this.server.action('refrshentity', {
|
|
9330
|
-
entity_id: UInt64.from(entityId),
|
|
9331
|
-
});
|
|
9332
|
-
}
|
|
9333
|
-
transfer(sourceId, destId, items) {
|
|
9334
|
-
return this.server.action('transfer', {
|
|
9335
|
-
source_id: UInt64.from(sourceId),
|
|
9336
|
-
dest_id: UInt64.from(destId),
|
|
9337
|
-
items,
|
|
9338
|
-
});
|
|
9339
|
-
}
|
|
9340
|
-
foundCompany(account, name) {
|
|
9341
|
-
return this.platform.action('foundcompany', {
|
|
9342
|
-
account: Name.from(account),
|
|
9343
|
-
name,
|
|
9344
|
-
});
|
|
9345
|
-
}
|
|
9346
|
-
join(account) {
|
|
9347
|
-
return this.server.action('join', {
|
|
9348
|
-
account: Name.from(account),
|
|
9349
|
-
});
|
|
9374
|
+
else if (Array.isArray(rawData)) {
|
|
9375
|
+
bytes = new Uint8Array(rawData);
|
|
9350
9376
|
}
|
|
9351
|
-
|
|
9352
|
-
|
|
9353
|
-
source_id: UInt64.from(sourceId),
|
|
9354
|
-
destination_id: UInt64.from(destinationId),
|
|
9355
|
-
stratum: UInt16.from(stratum),
|
|
9356
|
-
quantity: UInt32.from(quantity),
|
|
9357
|
-
});
|
|
9377
|
+
else {
|
|
9378
|
+
bytes = rawData;
|
|
9358
9379
|
}
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9366
|
-
|
|
9380
|
+
let offset = 0;
|
|
9381
|
+
function readVarint() {
|
|
9382
|
+
let result = 0;
|
|
9383
|
+
let multiplier = 1;
|
|
9384
|
+
while (bytes[offset] >= 128) {
|
|
9385
|
+
result += (bytes[offset] - 128) * multiplier;
|
|
9386
|
+
offset++;
|
|
9387
|
+
multiplier *= 128;
|
|
9388
|
+
}
|
|
9389
|
+
result += bytes[offset] * multiplier;
|
|
9390
|
+
offset++;
|
|
9391
|
+
return result;
|
|
9367
9392
|
}
|
|
9368
|
-
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9393
|
+
function readVarint64() {
|
|
9394
|
+
let result = 0n;
|
|
9395
|
+
let multiplier = 1n;
|
|
9396
|
+
while (bytes[offset] >= 128) {
|
|
9397
|
+
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
9398
|
+
offset++;
|
|
9399
|
+
multiplier *= 128n;
|
|
9400
|
+
}
|
|
9401
|
+
result += BigInt(bytes[offset]) * multiplier;
|
|
9402
|
+
offset++;
|
|
9403
|
+
return result;
|
|
9375
9404
|
}
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
}
|
|
9405
|
+
function readZigzagInt64() {
|
|
9406
|
+
const unsigned = readVarint64();
|
|
9407
|
+
if (unsigned % 2n === 0n) {
|
|
9408
|
+
return unsigned / 2n;
|
|
9409
|
+
}
|
|
9410
|
+
else {
|
|
9411
|
+
return -(unsigned / 2n) - 1n;
|
|
9412
|
+
}
|
|
9381
9413
|
}
|
|
9382
|
-
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9414
|
+
function readString() {
|
|
9415
|
+
const length = readVarint();
|
|
9416
|
+
const str = new TextDecoder().decode(bytes.slice(offset, offset + length));
|
|
9417
|
+
offset += length;
|
|
9418
|
+
return str;
|
|
9387
9419
|
}
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9420
|
+
const RESERVED = 4;
|
|
9421
|
+
const result = {};
|
|
9422
|
+
while (offset < bytes.length) {
|
|
9423
|
+
const fieldIndex = readVarint() - RESERVED;
|
|
9424
|
+
const field = schema[fieldIndex];
|
|
9425
|
+
if (!field)
|
|
9426
|
+
break;
|
|
9427
|
+
switch (field.type) {
|
|
9428
|
+
case 'uint16':
|
|
9429
|
+
result[field.name] = readVarint();
|
|
9430
|
+
break;
|
|
9431
|
+
case 'uint32':
|
|
9432
|
+
result[field.name] = readVarint();
|
|
9433
|
+
break;
|
|
9434
|
+
case 'uint64':
|
|
9435
|
+
result[field.name] = readVarint64();
|
|
9436
|
+
break;
|
|
9437
|
+
case 'int32':
|
|
9438
|
+
result[field.name] = readZigzagInt64();
|
|
9439
|
+
break;
|
|
9440
|
+
case 'int64':
|
|
9441
|
+
result[field.name] = readZigzagInt64();
|
|
9442
|
+
break;
|
|
9443
|
+
case 'string':
|
|
9444
|
+
case 'image':
|
|
9445
|
+
case 'ipfs':
|
|
9446
|
+
result[field.name] = readString();
|
|
9447
|
+
break;
|
|
9448
|
+
case 'uint16[]': {
|
|
9449
|
+
const len = readVarint();
|
|
9450
|
+
const arr = [];
|
|
9451
|
+
for (let i = 0; i < len; i++)
|
|
9452
|
+
arr.push(readVarint());
|
|
9453
|
+
result[field.name] = arr;
|
|
9454
|
+
break;
|
|
9455
|
+
}
|
|
9456
|
+
case 'uint64[]': {
|
|
9457
|
+
const len = readVarint();
|
|
9458
|
+
const arr = [];
|
|
9459
|
+
for (let i = 0; i < len; i++)
|
|
9460
|
+
arr.push(readVarint64());
|
|
9461
|
+
result[field.name] = arr;
|
|
9462
|
+
break;
|
|
9463
|
+
}
|
|
9464
|
+
default:
|
|
9465
|
+
throw new Error(`Unknown type: ${field.type}`);
|
|
9466
|
+
}
|
|
9394
9467
|
}
|
|
9395
|
-
|
|
9396
|
-
|
|
9468
|
+
return result;
|
|
9469
|
+
}
|
|
9470
|
+
|
|
9471
|
+
const MODULE_ANY = 0;
|
|
9472
|
+
const MODULE_ENGINE = 1;
|
|
9473
|
+
const MODULE_GENERATOR = 2;
|
|
9474
|
+
const MODULE_GATHERER = 3;
|
|
9475
|
+
const MODULE_LOADER = 4;
|
|
9476
|
+
const MODULE_WARP = 5;
|
|
9477
|
+
const MODULE_CRAFTER = 6;
|
|
9478
|
+
const MODULE_LAUNCHER = 7;
|
|
9479
|
+
const MODULE_STORAGE = 8;
|
|
9480
|
+
const MODULE_HAULER = 9;
|
|
9481
|
+
const MODULE_BATTERY = 10;
|
|
9482
|
+
function moduleAccepts(slotType, moduleType) {
|
|
9483
|
+
return slotType === MODULE_ANY || slotType === moduleType;
|
|
9484
|
+
}
|
|
9485
|
+
function getModuleCapabilityType(itemId) {
|
|
9486
|
+
switch (itemId) {
|
|
9487
|
+
case ITEM_ENGINE_T1:
|
|
9488
|
+
return MODULE_ENGINE;
|
|
9489
|
+
case ITEM_GENERATOR_T1:
|
|
9490
|
+
return MODULE_GENERATOR;
|
|
9491
|
+
case ITEM_GATHERER_T1:
|
|
9492
|
+
return MODULE_GATHERER;
|
|
9493
|
+
case ITEM_LOADER_T1:
|
|
9494
|
+
return MODULE_LOADER;
|
|
9495
|
+
case ITEM_CRAFTER_T1:
|
|
9496
|
+
return MODULE_CRAFTER;
|
|
9497
|
+
case ITEM_STORAGE_T1:
|
|
9498
|
+
return MODULE_STORAGE;
|
|
9499
|
+
case ITEM_HAULER_T1:
|
|
9500
|
+
return MODULE_HAULER;
|
|
9501
|
+
case ITEM_WARP_T1:
|
|
9502
|
+
return MODULE_WARP;
|
|
9503
|
+
case ITEM_BATTERY_T1:
|
|
9504
|
+
return MODULE_BATTERY;
|
|
9505
|
+
default:
|
|
9506
|
+
return 0xff;
|
|
9507
|
+
}
|
|
9508
|
+
}
|
|
9509
|
+
function isModuleItem(itemId) {
|
|
9510
|
+
return getModuleCapabilityType(itemId) !== 0xff;
|
|
9511
|
+
}
|
|
9512
|
+
function moduleSlotTypeToCode(slotType) {
|
|
9513
|
+
switch (slotType) {
|
|
9514
|
+
case 'any':
|
|
9515
|
+
return MODULE_ANY;
|
|
9516
|
+
case 'engine':
|
|
9517
|
+
return MODULE_ENGINE;
|
|
9518
|
+
case 'generator':
|
|
9519
|
+
return MODULE_GENERATOR;
|
|
9520
|
+
case 'gatherer':
|
|
9521
|
+
return MODULE_GATHERER;
|
|
9522
|
+
case 'loader':
|
|
9523
|
+
return MODULE_LOADER;
|
|
9524
|
+
case 'warp':
|
|
9525
|
+
return MODULE_WARP;
|
|
9526
|
+
case 'crafter':
|
|
9527
|
+
return MODULE_CRAFTER;
|
|
9528
|
+
case 'launcher':
|
|
9529
|
+
return MODULE_LAUNCHER;
|
|
9530
|
+
case 'storage':
|
|
9531
|
+
return MODULE_STORAGE;
|
|
9532
|
+
case 'hauler':
|
|
9533
|
+
return MODULE_HAULER;
|
|
9534
|
+
case 'battery':
|
|
9535
|
+
return MODULE_BATTERY;
|
|
9536
|
+
default:
|
|
9537
|
+
return MODULE_ANY;
|
|
9538
|
+
}
|
|
9539
|
+
}
|
|
9540
|
+
|
|
9541
|
+
const ITEM_TYPE_RESOURCE = 0;
|
|
9542
|
+
const ITEM_TYPE_COMPONENT = 1;
|
|
9543
|
+
const ITEM_TYPE_MODULE = 2;
|
|
9544
|
+
const ITEM_TYPE_ENTITY = 3;
|
|
9545
|
+
function itemTypeCode(id) {
|
|
9546
|
+
switch (itemCategory(id)) {
|
|
9547
|
+
case 'resource':
|
|
9548
|
+
return ITEM_TYPE_RESOURCE;
|
|
9549
|
+
case 'component':
|
|
9550
|
+
return ITEM_TYPE_COMPONENT;
|
|
9551
|
+
case 'module':
|
|
9552
|
+
return ITEM_TYPE_MODULE;
|
|
9553
|
+
case 'entity':
|
|
9554
|
+
return ITEM_TYPE_ENTITY;
|
|
9555
|
+
}
|
|
9556
|
+
}
|
|
9557
|
+
function itemTier(id) {
|
|
9558
|
+
if (id < 10000)
|
|
9559
|
+
return 0;
|
|
9560
|
+
return Math.floor(id / 10000);
|
|
9561
|
+
}
|
|
9562
|
+
function itemOffset(id) {
|
|
9563
|
+
return id % 10000;
|
|
9564
|
+
}
|
|
9565
|
+
function itemCategory(id) {
|
|
9566
|
+
if (id < 10000)
|
|
9567
|
+
return 'resource';
|
|
9568
|
+
const offset = itemOffset(id);
|
|
9569
|
+
if (offset >= 200)
|
|
9570
|
+
return 'entity';
|
|
9571
|
+
if (offset >= 100)
|
|
9572
|
+
return 'module';
|
|
9573
|
+
return 'component';
|
|
9574
|
+
}
|
|
9575
|
+
function isRelatedItem(a, b) {
|
|
9576
|
+
if (a < 10000 || b < 10000)
|
|
9577
|
+
return false;
|
|
9578
|
+
return itemOffset(a) === itemOffset(b);
|
|
9579
|
+
}
|
|
9580
|
+
function isCraftedItem(id) {
|
|
9581
|
+
return id >= 10000;
|
|
9582
|
+
}
|
|
9583
|
+
|
|
9584
|
+
function readCommonBase(data) {
|
|
9585
|
+
return {
|
|
9586
|
+
quantity: Number(data.quantity),
|
|
9587
|
+
stats: String(data.stats),
|
|
9588
|
+
origin_x: String(data.origin_x),
|
|
9589
|
+
origin_y: String(data.origin_y),
|
|
9590
|
+
};
|
|
9591
|
+
}
|
|
9592
|
+
function deserializeScalar(data, itemId) {
|
|
9593
|
+
const base = readCommonBase(data);
|
|
9594
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
9595
|
+
}
|
|
9596
|
+
const deserializeResource = deserializeScalar;
|
|
9597
|
+
const deserializeComponent = deserializeScalar;
|
|
9598
|
+
const deserializeModule = deserializeScalar;
|
|
9599
|
+
function deserializeEntity(data, itemId) {
|
|
9600
|
+
const base = readCommonBase(data);
|
|
9601
|
+
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
9602
|
+
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
9603
|
+
const layout = getEntityLayout(itemId);
|
|
9604
|
+
const slots = layout?.slots ?? [];
|
|
9605
|
+
const modules = slots.map((slot, i) => ({
|
|
9606
|
+
type: moduleSlotTypeToCode(slot.type),
|
|
9607
|
+
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
9608
|
+
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
9609
|
+
: undefined,
|
|
9610
|
+
}));
|
|
9611
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
9612
|
+
}
|
|
9613
|
+
function deserializeAsset(data, itemId) {
|
|
9614
|
+
const type = itemTypeCode(itemId);
|
|
9615
|
+
switch (type) {
|
|
9616
|
+
case ITEM_TYPE_RESOURCE:
|
|
9617
|
+
case ITEM_TYPE_COMPONENT:
|
|
9618
|
+
case ITEM_TYPE_MODULE:
|
|
9619
|
+
return deserializeScalar(data, itemId);
|
|
9620
|
+
case ITEM_TYPE_ENTITY:
|
|
9621
|
+
return deserializeEntity(data, itemId);
|
|
9622
|
+
default:
|
|
9623
|
+
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
9624
|
+
}
|
|
9625
|
+
}
|
|
9626
|
+
|
|
9627
|
+
var ____comment = "This file was generated with eosio-abigen. DO NOT EDIT ";
|
|
9628
|
+
var version = "eosio::abi/1.2";
|
|
9629
|
+
var types = [
|
|
9630
|
+
{
|
|
9631
|
+
new_type_name: "ATOMIC_ATTRIBUTE",
|
|
9632
|
+
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"
|
|
9633
|
+
},
|
|
9634
|
+
{
|
|
9635
|
+
new_type_name: "ATTRIBUTE_MAP",
|
|
9636
|
+
type: "pair_string_ATOMIC_ATTRIBUTE[]"
|
|
9637
|
+
},
|
|
9638
|
+
{
|
|
9639
|
+
new_type_name: "DOUBLE_VEC",
|
|
9640
|
+
type: "float64[]"
|
|
9641
|
+
},
|
|
9642
|
+
{
|
|
9643
|
+
new_type_name: "FLOAT_VEC",
|
|
9644
|
+
type: "float32[]"
|
|
9645
|
+
},
|
|
9646
|
+
{
|
|
9647
|
+
new_type_name: "INT16_VEC",
|
|
9648
|
+
type: "int16[]"
|
|
9649
|
+
},
|
|
9650
|
+
{
|
|
9651
|
+
new_type_name: "INT32_VEC",
|
|
9652
|
+
type: "int32[]"
|
|
9653
|
+
},
|
|
9654
|
+
{
|
|
9655
|
+
new_type_name: "INT64_VEC",
|
|
9656
|
+
type: "int64[]"
|
|
9657
|
+
},
|
|
9658
|
+
{
|
|
9659
|
+
new_type_name: "INT8_VEC",
|
|
9660
|
+
type: "bytes"
|
|
9661
|
+
},
|
|
9662
|
+
{
|
|
9663
|
+
new_type_name: "STRING_VEC",
|
|
9664
|
+
type: "string[]"
|
|
9665
|
+
},
|
|
9666
|
+
{
|
|
9667
|
+
new_type_name: "UINT16_VEC",
|
|
9668
|
+
type: "uint16[]"
|
|
9669
|
+
},
|
|
9670
|
+
{
|
|
9671
|
+
new_type_name: "UINT32_VEC",
|
|
9672
|
+
type: "uint32[]"
|
|
9673
|
+
},
|
|
9674
|
+
{
|
|
9675
|
+
new_type_name: "UINT64_VEC",
|
|
9676
|
+
type: "uint64[]"
|
|
9677
|
+
},
|
|
9678
|
+
{
|
|
9679
|
+
new_type_name: "UINT8_VEC",
|
|
9680
|
+
type: "bytes"
|
|
9681
|
+
}
|
|
9682
|
+
];
|
|
9683
|
+
var structs = [
|
|
9684
|
+
{
|
|
9685
|
+
name: "FORMAT",
|
|
9686
|
+
base: "",
|
|
9687
|
+
fields: [
|
|
9688
|
+
{
|
|
9689
|
+
name: "name",
|
|
9690
|
+
type: "string"
|
|
9691
|
+
},
|
|
9692
|
+
{
|
|
9693
|
+
name: "type",
|
|
9694
|
+
type: "string"
|
|
9695
|
+
}
|
|
9696
|
+
]
|
|
9697
|
+
},
|
|
9698
|
+
{
|
|
9699
|
+
name: "acceptoffer",
|
|
9700
|
+
base: "",
|
|
9701
|
+
fields: [
|
|
9702
|
+
{
|
|
9703
|
+
name: "offer_id",
|
|
9704
|
+
type: "uint64"
|
|
9705
|
+
}
|
|
9706
|
+
]
|
|
9707
|
+
},
|
|
9708
|
+
{
|
|
9709
|
+
name: "addcolauth",
|
|
9710
|
+
base: "",
|
|
9711
|
+
fields: [
|
|
9712
|
+
{
|
|
9713
|
+
name: "collection_name",
|
|
9714
|
+
type: "name"
|
|
9715
|
+
},
|
|
9716
|
+
{
|
|
9717
|
+
name: "account_to_add",
|
|
9718
|
+
type: "name"
|
|
9719
|
+
}
|
|
9720
|
+
]
|
|
9721
|
+
},
|
|
9722
|
+
{
|
|
9723
|
+
name: "addconftoken",
|
|
9724
|
+
base: "",
|
|
9725
|
+
fields: [
|
|
9726
|
+
{
|
|
9727
|
+
name: "token_contract",
|
|
9728
|
+
type: "name"
|
|
9729
|
+
},
|
|
9730
|
+
{
|
|
9731
|
+
name: "token_symbol",
|
|
9732
|
+
type: "symbol"
|
|
9733
|
+
}
|
|
9734
|
+
]
|
|
9735
|
+
},
|
|
9736
|
+
{
|
|
9737
|
+
name: "addnotifyacc",
|
|
9738
|
+
base: "",
|
|
9739
|
+
fields: [
|
|
9740
|
+
{
|
|
9741
|
+
name: "collection_name",
|
|
9742
|
+
type: "name"
|
|
9743
|
+
},
|
|
9744
|
+
{
|
|
9745
|
+
name: "account_to_add",
|
|
9746
|
+
type: "name"
|
|
9747
|
+
}
|
|
9748
|
+
]
|
|
9749
|
+
},
|
|
9750
|
+
{
|
|
9751
|
+
name: "admincoledit",
|
|
9752
|
+
base: "",
|
|
9753
|
+
fields: [
|
|
9754
|
+
{
|
|
9755
|
+
name: "collection_format_extension",
|
|
9756
|
+
type: "FORMAT[]"
|
|
9757
|
+
}
|
|
9758
|
+
]
|
|
9759
|
+
},
|
|
9760
|
+
{
|
|
9761
|
+
name: "announcedepo",
|
|
9762
|
+
base: "",
|
|
9763
|
+
fields: [
|
|
9764
|
+
{
|
|
9765
|
+
name: "owner",
|
|
9766
|
+
type: "name"
|
|
9767
|
+
},
|
|
9768
|
+
{
|
|
9769
|
+
name: "symbol_to_announce",
|
|
9770
|
+
type: "symbol"
|
|
9771
|
+
}
|
|
9772
|
+
]
|
|
9773
|
+
},
|
|
9774
|
+
{
|
|
9775
|
+
name: "assets_s",
|
|
9776
|
+
base: "",
|
|
9777
|
+
fields: [
|
|
9778
|
+
{
|
|
9779
|
+
name: "asset_id",
|
|
9780
|
+
type: "uint64"
|
|
9781
|
+
},
|
|
9782
|
+
{
|
|
9783
|
+
name: "collection_name",
|
|
9784
|
+
type: "name"
|
|
9785
|
+
},
|
|
9786
|
+
{
|
|
9787
|
+
name: "schema_name",
|
|
9788
|
+
type: "name"
|
|
9789
|
+
},
|
|
9790
|
+
{
|
|
9791
|
+
name: "template_id",
|
|
9792
|
+
type: "int32"
|
|
9793
|
+
},
|
|
9794
|
+
{
|
|
9795
|
+
name: "ram_payer",
|
|
9796
|
+
type: "name"
|
|
9797
|
+
},
|
|
9798
|
+
{
|
|
9799
|
+
name: "backed_tokens",
|
|
9800
|
+
type: "asset[]"
|
|
9801
|
+
},
|
|
9802
|
+
{
|
|
9803
|
+
name: "immutable_serialized_data",
|
|
9804
|
+
type: "bytes"
|
|
9805
|
+
},
|
|
9806
|
+
{
|
|
9807
|
+
name: "mutable_serialized_data",
|
|
9808
|
+
type: "bytes"
|
|
9809
|
+
}
|
|
9810
|
+
]
|
|
9811
|
+
},
|
|
9812
|
+
{
|
|
9813
|
+
name: "backasset",
|
|
9814
|
+
base: "",
|
|
9815
|
+
fields: [
|
|
9816
|
+
{
|
|
9817
|
+
name: "payer",
|
|
9818
|
+
type: "name"
|
|
9819
|
+
},
|
|
9820
|
+
{
|
|
9821
|
+
name: "asset_owner",
|
|
9822
|
+
type: "name"
|
|
9823
|
+
},
|
|
9824
|
+
{
|
|
9825
|
+
name: "asset_id",
|
|
9826
|
+
type: "uint64"
|
|
9827
|
+
},
|
|
9828
|
+
{
|
|
9829
|
+
name: "token_to_back",
|
|
9830
|
+
type: "asset"
|
|
9831
|
+
}
|
|
9832
|
+
]
|
|
9833
|
+
},
|
|
9834
|
+
{
|
|
9835
|
+
name: "balances_s",
|
|
9836
|
+
base: "",
|
|
9837
|
+
fields: [
|
|
9838
|
+
{
|
|
9839
|
+
name: "owner",
|
|
9840
|
+
type: "name"
|
|
9841
|
+
},
|
|
9842
|
+
{
|
|
9843
|
+
name: "quantities",
|
|
9844
|
+
type: "asset[]"
|
|
9845
|
+
}
|
|
9846
|
+
]
|
|
9847
|
+
},
|
|
9848
|
+
{
|
|
9849
|
+
name: "burnasset",
|
|
9850
|
+
base: "",
|
|
9851
|
+
fields: [
|
|
9852
|
+
{
|
|
9853
|
+
name: "asset_owner",
|
|
9854
|
+
type: "name"
|
|
9855
|
+
},
|
|
9856
|
+
{
|
|
9857
|
+
name: "asset_id",
|
|
9858
|
+
type: "uint64"
|
|
9859
|
+
}
|
|
9860
|
+
]
|
|
9861
|
+
},
|
|
9862
|
+
{
|
|
9863
|
+
name: "canceloffer",
|
|
9864
|
+
base: "",
|
|
9865
|
+
fields: [
|
|
9866
|
+
{
|
|
9867
|
+
name: "offer_id",
|
|
9868
|
+
type: "uint64"
|
|
9869
|
+
}
|
|
9870
|
+
]
|
|
9871
|
+
},
|
|
9872
|
+
{
|
|
9873
|
+
name: "collections_s",
|
|
9874
|
+
base: "",
|
|
9875
|
+
fields: [
|
|
9876
|
+
{
|
|
9877
|
+
name: "collection_name",
|
|
9878
|
+
type: "name"
|
|
9879
|
+
},
|
|
9880
|
+
{
|
|
9881
|
+
name: "author",
|
|
9882
|
+
type: "name"
|
|
9883
|
+
},
|
|
9884
|
+
{
|
|
9885
|
+
name: "allow_notify",
|
|
9886
|
+
type: "bool"
|
|
9887
|
+
},
|
|
9888
|
+
{
|
|
9889
|
+
name: "authorized_accounts",
|
|
9890
|
+
type: "name[]"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
name: "notify_accounts",
|
|
9894
|
+
type: "name[]"
|
|
9895
|
+
},
|
|
9896
|
+
{
|
|
9897
|
+
name: "market_fee",
|
|
9898
|
+
type: "float64"
|
|
9899
|
+
},
|
|
9900
|
+
{
|
|
9901
|
+
name: "serialized_data",
|
|
9902
|
+
type: "bytes"
|
|
9903
|
+
}
|
|
9904
|
+
]
|
|
9905
|
+
},
|
|
9906
|
+
{
|
|
9907
|
+
name: "config_s",
|
|
9908
|
+
base: "",
|
|
9909
|
+
fields: [
|
|
9910
|
+
{
|
|
9911
|
+
name: "asset_counter",
|
|
9912
|
+
type: "uint64"
|
|
9913
|
+
},
|
|
9914
|
+
{
|
|
9915
|
+
name: "template_counter",
|
|
9916
|
+
type: "int32"
|
|
9917
|
+
},
|
|
9918
|
+
{
|
|
9919
|
+
name: "offer_counter",
|
|
9920
|
+
type: "uint64"
|
|
9921
|
+
},
|
|
9922
|
+
{
|
|
9923
|
+
name: "collection_format",
|
|
9924
|
+
type: "FORMAT[]"
|
|
9925
|
+
},
|
|
9926
|
+
{
|
|
9927
|
+
name: "supported_tokens",
|
|
9928
|
+
type: "extended_symbol[]"
|
|
9929
|
+
}
|
|
9930
|
+
]
|
|
9931
|
+
},
|
|
9932
|
+
{
|
|
9933
|
+
name: "createcol",
|
|
9934
|
+
base: "",
|
|
9935
|
+
fields: [
|
|
9936
|
+
{
|
|
9937
|
+
name: "author",
|
|
9938
|
+
type: "name"
|
|
9939
|
+
},
|
|
9940
|
+
{
|
|
9941
|
+
name: "collection_name",
|
|
9942
|
+
type: "name"
|
|
9943
|
+
},
|
|
9944
|
+
{
|
|
9945
|
+
name: "allow_notify",
|
|
9946
|
+
type: "bool"
|
|
9947
|
+
},
|
|
9948
|
+
{
|
|
9949
|
+
name: "authorized_accounts",
|
|
9950
|
+
type: "name[]"
|
|
9951
|
+
},
|
|
9952
|
+
{
|
|
9953
|
+
name: "notify_accounts",
|
|
9954
|
+
type: "name[]"
|
|
9955
|
+
},
|
|
9956
|
+
{
|
|
9957
|
+
name: "market_fee",
|
|
9958
|
+
type: "float64"
|
|
9959
|
+
},
|
|
9960
|
+
{
|
|
9961
|
+
name: "data",
|
|
9962
|
+
type: "ATTRIBUTE_MAP"
|
|
9963
|
+
}
|
|
9964
|
+
]
|
|
9965
|
+
},
|
|
9966
|
+
{
|
|
9967
|
+
name: "createoffer",
|
|
9968
|
+
base: "",
|
|
9969
|
+
fields: [
|
|
9970
|
+
{
|
|
9971
|
+
name: "sender",
|
|
9972
|
+
type: "name"
|
|
9973
|
+
},
|
|
9974
|
+
{
|
|
9975
|
+
name: "recipient",
|
|
9976
|
+
type: "name"
|
|
9977
|
+
},
|
|
9978
|
+
{
|
|
9979
|
+
name: "sender_asset_ids",
|
|
9980
|
+
type: "uint64[]"
|
|
9981
|
+
},
|
|
9982
|
+
{
|
|
9983
|
+
name: "recipient_asset_ids",
|
|
9984
|
+
type: "uint64[]"
|
|
9985
|
+
},
|
|
9986
|
+
{
|
|
9987
|
+
name: "memo",
|
|
9988
|
+
type: "string"
|
|
9989
|
+
}
|
|
9990
|
+
]
|
|
9991
|
+
},
|
|
9992
|
+
{
|
|
9993
|
+
name: "createschema",
|
|
9994
|
+
base: "",
|
|
9995
|
+
fields: [
|
|
9996
|
+
{
|
|
9997
|
+
name: "authorized_creator",
|
|
9998
|
+
type: "name"
|
|
9999
|
+
},
|
|
10000
|
+
{
|
|
10001
|
+
name: "collection_name",
|
|
10002
|
+
type: "name"
|
|
10003
|
+
},
|
|
10004
|
+
{
|
|
10005
|
+
name: "schema_name",
|
|
10006
|
+
type: "name"
|
|
10007
|
+
},
|
|
10008
|
+
{
|
|
10009
|
+
name: "schema_format",
|
|
10010
|
+
type: "FORMAT[]"
|
|
10011
|
+
}
|
|
10012
|
+
]
|
|
10013
|
+
},
|
|
10014
|
+
{
|
|
10015
|
+
name: "createtempl",
|
|
10016
|
+
base: "",
|
|
10017
|
+
fields: [
|
|
10018
|
+
{
|
|
10019
|
+
name: "authorized_creator",
|
|
10020
|
+
type: "name"
|
|
10021
|
+
},
|
|
10022
|
+
{
|
|
10023
|
+
name: "collection_name",
|
|
10024
|
+
type: "name"
|
|
10025
|
+
},
|
|
10026
|
+
{
|
|
10027
|
+
name: "schema_name",
|
|
10028
|
+
type: "name"
|
|
10029
|
+
},
|
|
10030
|
+
{
|
|
10031
|
+
name: "transferable",
|
|
10032
|
+
type: "bool"
|
|
10033
|
+
},
|
|
10034
|
+
{
|
|
10035
|
+
name: "burnable",
|
|
10036
|
+
type: "bool"
|
|
10037
|
+
},
|
|
10038
|
+
{
|
|
10039
|
+
name: "max_supply",
|
|
10040
|
+
type: "uint32"
|
|
10041
|
+
},
|
|
10042
|
+
{
|
|
10043
|
+
name: "immutable_data",
|
|
10044
|
+
type: "ATTRIBUTE_MAP"
|
|
10045
|
+
}
|
|
10046
|
+
]
|
|
10047
|
+
},
|
|
10048
|
+
{
|
|
10049
|
+
name: "declineoffer",
|
|
10050
|
+
base: "",
|
|
10051
|
+
fields: [
|
|
10052
|
+
{
|
|
10053
|
+
name: "offer_id",
|
|
10054
|
+
type: "uint64"
|
|
10055
|
+
}
|
|
10056
|
+
]
|
|
10057
|
+
},
|
|
10058
|
+
{
|
|
10059
|
+
name: "extended_symbol",
|
|
10060
|
+
base: "",
|
|
10061
|
+
fields: [
|
|
10062
|
+
{
|
|
10063
|
+
name: "sym",
|
|
10064
|
+
type: "symbol"
|
|
10065
|
+
},
|
|
10066
|
+
{
|
|
10067
|
+
name: "contract",
|
|
10068
|
+
type: "name"
|
|
10069
|
+
}
|
|
10070
|
+
]
|
|
10071
|
+
},
|
|
10072
|
+
{
|
|
10073
|
+
name: "extendschema",
|
|
10074
|
+
base: "",
|
|
10075
|
+
fields: [
|
|
10076
|
+
{
|
|
10077
|
+
name: "authorized_editor",
|
|
10078
|
+
type: "name"
|
|
10079
|
+
},
|
|
10080
|
+
{
|
|
10081
|
+
name: "collection_name",
|
|
10082
|
+
type: "name"
|
|
10083
|
+
},
|
|
10084
|
+
{
|
|
10085
|
+
name: "schema_name",
|
|
10086
|
+
type: "name"
|
|
10087
|
+
},
|
|
10088
|
+
{
|
|
10089
|
+
name: "schema_format_extension",
|
|
10090
|
+
type: "FORMAT[]"
|
|
10091
|
+
}
|
|
10092
|
+
]
|
|
10093
|
+
},
|
|
10094
|
+
{
|
|
10095
|
+
name: "forbidnotify",
|
|
10096
|
+
base: "",
|
|
10097
|
+
fields: [
|
|
10098
|
+
{
|
|
10099
|
+
name: "collection_name",
|
|
10100
|
+
type: "name"
|
|
10101
|
+
}
|
|
10102
|
+
]
|
|
10103
|
+
},
|
|
10104
|
+
{
|
|
10105
|
+
name: "init",
|
|
10106
|
+
base: "",
|
|
10107
|
+
fields: [
|
|
10108
|
+
]
|
|
10109
|
+
},
|
|
10110
|
+
{
|
|
10111
|
+
name: "locktemplate",
|
|
10112
|
+
base: "",
|
|
10113
|
+
fields: [
|
|
10114
|
+
{
|
|
10115
|
+
name: "authorized_editor",
|
|
10116
|
+
type: "name"
|
|
10117
|
+
},
|
|
10118
|
+
{
|
|
10119
|
+
name: "collection_name",
|
|
10120
|
+
type: "name"
|
|
10121
|
+
},
|
|
10122
|
+
{
|
|
10123
|
+
name: "template_id",
|
|
10124
|
+
type: "int32"
|
|
10125
|
+
}
|
|
10126
|
+
]
|
|
10127
|
+
},
|
|
10128
|
+
{
|
|
10129
|
+
name: "logbackasset",
|
|
10130
|
+
base: "",
|
|
10131
|
+
fields: [
|
|
10132
|
+
{
|
|
10133
|
+
name: "asset_owner",
|
|
10134
|
+
type: "name"
|
|
10135
|
+
},
|
|
10136
|
+
{
|
|
10137
|
+
name: "asset_id",
|
|
10138
|
+
type: "uint64"
|
|
10139
|
+
},
|
|
10140
|
+
{
|
|
10141
|
+
name: "backed_token",
|
|
10142
|
+
type: "asset"
|
|
10143
|
+
}
|
|
10144
|
+
]
|
|
10145
|
+
},
|
|
10146
|
+
{
|
|
10147
|
+
name: "logburnasset",
|
|
10148
|
+
base: "",
|
|
10149
|
+
fields: [
|
|
10150
|
+
{
|
|
10151
|
+
name: "asset_owner",
|
|
10152
|
+
type: "name"
|
|
10153
|
+
},
|
|
10154
|
+
{
|
|
10155
|
+
name: "asset_id",
|
|
10156
|
+
type: "uint64"
|
|
10157
|
+
},
|
|
10158
|
+
{
|
|
10159
|
+
name: "collection_name",
|
|
10160
|
+
type: "name"
|
|
10161
|
+
},
|
|
10162
|
+
{
|
|
10163
|
+
name: "schema_name",
|
|
10164
|
+
type: "name"
|
|
10165
|
+
},
|
|
10166
|
+
{
|
|
10167
|
+
name: "template_id",
|
|
10168
|
+
type: "int32"
|
|
10169
|
+
},
|
|
10170
|
+
{
|
|
10171
|
+
name: "backed_tokens",
|
|
10172
|
+
type: "asset[]"
|
|
10173
|
+
},
|
|
10174
|
+
{
|
|
10175
|
+
name: "old_immutable_data",
|
|
10176
|
+
type: "ATTRIBUTE_MAP"
|
|
10177
|
+
},
|
|
10178
|
+
{
|
|
10179
|
+
name: "old_mutable_data",
|
|
10180
|
+
type: "ATTRIBUTE_MAP"
|
|
10181
|
+
},
|
|
10182
|
+
{
|
|
10183
|
+
name: "asset_ram_payer",
|
|
10184
|
+
type: "name"
|
|
10185
|
+
}
|
|
10186
|
+
]
|
|
10187
|
+
},
|
|
10188
|
+
{
|
|
10189
|
+
name: "logmint",
|
|
10190
|
+
base: "",
|
|
10191
|
+
fields: [
|
|
10192
|
+
{
|
|
10193
|
+
name: "asset_id",
|
|
10194
|
+
type: "uint64"
|
|
10195
|
+
},
|
|
10196
|
+
{
|
|
10197
|
+
name: "authorized_minter",
|
|
10198
|
+
type: "name"
|
|
10199
|
+
},
|
|
10200
|
+
{
|
|
10201
|
+
name: "collection_name",
|
|
10202
|
+
type: "name"
|
|
10203
|
+
},
|
|
10204
|
+
{
|
|
10205
|
+
name: "schema_name",
|
|
10206
|
+
type: "name"
|
|
10207
|
+
},
|
|
10208
|
+
{
|
|
10209
|
+
name: "template_id",
|
|
10210
|
+
type: "int32"
|
|
10211
|
+
},
|
|
10212
|
+
{
|
|
10213
|
+
name: "new_asset_owner",
|
|
10214
|
+
type: "name"
|
|
10215
|
+
},
|
|
10216
|
+
{
|
|
10217
|
+
name: "immutable_data",
|
|
10218
|
+
type: "ATTRIBUTE_MAP"
|
|
10219
|
+
},
|
|
10220
|
+
{
|
|
10221
|
+
name: "mutable_data",
|
|
10222
|
+
type: "ATTRIBUTE_MAP"
|
|
10223
|
+
},
|
|
10224
|
+
{
|
|
10225
|
+
name: "backed_tokens",
|
|
10226
|
+
type: "asset[]"
|
|
10227
|
+
},
|
|
10228
|
+
{
|
|
10229
|
+
name: "immutable_template_data",
|
|
10230
|
+
type: "ATTRIBUTE_MAP"
|
|
10231
|
+
}
|
|
10232
|
+
]
|
|
10233
|
+
},
|
|
10234
|
+
{
|
|
10235
|
+
name: "lognewoffer",
|
|
10236
|
+
base: "",
|
|
10237
|
+
fields: [
|
|
10238
|
+
{
|
|
10239
|
+
name: "offer_id",
|
|
10240
|
+
type: "uint64"
|
|
10241
|
+
},
|
|
10242
|
+
{
|
|
10243
|
+
name: "sender",
|
|
10244
|
+
type: "name"
|
|
10245
|
+
},
|
|
10246
|
+
{
|
|
10247
|
+
name: "recipient",
|
|
10248
|
+
type: "name"
|
|
10249
|
+
},
|
|
10250
|
+
{
|
|
10251
|
+
name: "sender_asset_ids",
|
|
10252
|
+
type: "uint64[]"
|
|
10253
|
+
},
|
|
10254
|
+
{
|
|
10255
|
+
name: "recipient_asset_ids",
|
|
10256
|
+
type: "uint64[]"
|
|
10257
|
+
},
|
|
10258
|
+
{
|
|
10259
|
+
name: "memo",
|
|
10260
|
+
type: "string"
|
|
10261
|
+
}
|
|
10262
|
+
]
|
|
10263
|
+
},
|
|
10264
|
+
{
|
|
10265
|
+
name: "lognewtempl",
|
|
10266
|
+
base: "",
|
|
10267
|
+
fields: [
|
|
10268
|
+
{
|
|
10269
|
+
name: "template_id",
|
|
10270
|
+
type: "int32"
|
|
10271
|
+
},
|
|
10272
|
+
{
|
|
10273
|
+
name: "authorized_creator",
|
|
10274
|
+
type: "name"
|
|
10275
|
+
},
|
|
10276
|
+
{
|
|
10277
|
+
name: "collection_name",
|
|
10278
|
+
type: "name"
|
|
10279
|
+
},
|
|
10280
|
+
{
|
|
10281
|
+
name: "schema_name",
|
|
10282
|
+
type: "name"
|
|
10283
|
+
},
|
|
10284
|
+
{
|
|
10285
|
+
name: "transferable",
|
|
10286
|
+
type: "bool"
|
|
10287
|
+
},
|
|
10288
|
+
{
|
|
10289
|
+
name: "burnable",
|
|
10290
|
+
type: "bool"
|
|
10291
|
+
},
|
|
10292
|
+
{
|
|
10293
|
+
name: "max_supply",
|
|
10294
|
+
type: "uint32"
|
|
10295
|
+
},
|
|
10296
|
+
{
|
|
10297
|
+
name: "immutable_data",
|
|
10298
|
+
type: "ATTRIBUTE_MAP"
|
|
10299
|
+
}
|
|
10300
|
+
]
|
|
10301
|
+
},
|
|
10302
|
+
{
|
|
10303
|
+
name: "logrampayer",
|
|
10304
|
+
base: "",
|
|
10305
|
+
fields: [
|
|
10306
|
+
{
|
|
10307
|
+
name: "asset_owner",
|
|
10308
|
+
type: "name"
|
|
10309
|
+
},
|
|
10310
|
+
{
|
|
10311
|
+
name: "asset_id",
|
|
10312
|
+
type: "uint64"
|
|
10313
|
+
},
|
|
10314
|
+
{
|
|
10315
|
+
name: "old_ram_payer",
|
|
10316
|
+
type: "name"
|
|
10317
|
+
},
|
|
10318
|
+
{
|
|
10319
|
+
name: "new_ram_payer",
|
|
10320
|
+
type: "name"
|
|
10321
|
+
}
|
|
10322
|
+
]
|
|
10323
|
+
},
|
|
10324
|
+
{
|
|
10325
|
+
name: "logsetdata",
|
|
10326
|
+
base: "",
|
|
10327
|
+
fields: [
|
|
10328
|
+
{
|
|
10329
|
+
name: "asset_owner",
|
|
10330
|
+
type: "name"
|
|
10331
|
+
},
|
|
10332
|
+
{
|
|
10333
|
+
name: "asset_id",
|
|
10334
|
+
type: "uint64"
|
|
10335
|
+
},
|
|
10336
|
+
{
|
|
10337
|
+
name: "old_data",
|
|
10338
|
+
type: "ATTRIBUTE_MAP"
|
|
10339
|
+
},
|
|
10340
|
+
{
|
|
10341
|
+
name: "new_data",
|
|
10342
|
+
type: "ATTRIBUTE_MAP"
|
|
10343
|
+
}
|
|
10344
|
+
]
|
|
10345
|
+
},
|
|
10346
|
+
{
|
|
10347
|
+
name: "logtransfer",
|
|
10348
|
+
base: "",
|
|
10349
|
+
fields: [
|
|
10350
|
+
{
|
|
10351
|
+
name: "collection_name",
|
|
10352
|
+
type: "name"
|
|
10353
|
+
},
|
|
10354
|
+
{
|
|
10355
|
+
name: "from",
|
|
10356
|
+
type: "name"
|
|
10357
|
+
},
|
|
10358
|
+
{
|
|
10359
|
+
name: "to",
|
|
10360
|
+
type: "name"
|
|
10361
|
+
},
|
|
10362
|
+
{
|
|
10363
|
+
name: "asset_ids",
|
|
10364
|
+
type: "uint64[]"
|
|
10365
|
+
},
|
|
10366
|
+
{
|
|
10367
|
+
name: "memo",
|
|
10368
|
+
type: "string"
|
|
10369
|
+
}
|
|
10370
|
+
]
|
|
10371
|
+
},
|
|
10372
|
+
{
|
|
10373
|
+
name: "mintasset",
|
|
10374
|
+
base: "",
|
|
10375
|
+
fields: [
|
|
10376
|
+
{
|
|
10377
|
+
name: "authorized_minter",
|
|
10378
|
+
type: "name"
|
|
10379
|
+
},
|
|
10380
|
+
{
|
|
10381
|
+
name: "collection_name",
|
|
10382
|
+
type: "name"
|
|
10383
|
+
},
|
|
10384
|
+
{
|
|
10385
|
+
name: "schema_name",
|
|
10386
|
+
type: "name"
|
|
10387
|
+
},
|
|
10388
|
+
{
|
|
10389
|
+
name: "template_id",
|
|
10390
|
+
type: "int32"
|
|
10391
|
+
},
|
|
10392
|
+
{
|
|
10393
|
+
name: "new_asset_owner",
|
|
10394
|
+
type: "name"
|
|
10395
|
+
},
|
|
10396
|
+
{
|
|
10397
|
+
name: "immutable_data",
|
|
10398
|
+
type: "ATTRIBUTE_MAP"
|
|
10399
|
+
},
|
|
10400
|
+
{
|
|
10401
|
+
name: "mutable_data",
|
|
10402
|
+
type: "ATTRIBUTE_MAP"
|
|
10403
|
+
},
|
|
10404
|
+
{
|
|
10405
|
+
name: "tokens_to_back",
|
|
10406
|
+
type: "asset[]"
|
|
10407
|
+
}
|
|
10408
|
+
]
|
|
10409
|
+
},
|
|
10410
|
+
{
|
|
10411
|
+
name: "offers_s",
|
|
10412
|
+
base: "",
|
|
10413
|
+
fields: [
|
|
10414
|
+
{
|
|
10415
|
+
name: "offer_id",
|
|
10416
|
+
type: "uint64"
|
|
10417
|
+
},
|
|
10418
|
+
{
|
|
10419
|
+
name: "sender",
|
|
10420
|
+
type: "name"
|
|
10421
|
+
},
|
|
10422
|
+
{
|
|
10423
|
+
name: "recipient",
|
|
10424
|
+
type: "name"
|
|
10425
|
+
},
|
|
10426
|
+
{
|
|
10427
|
+
name: "sender_asset_ids",
|
|
10428
|
+
type: "uint64[]"
|
|
10429
|
+
},
|
|
10430
|
+
{
|
|
10431
|
+
name: "recipient_asset_ids",
|
|
10432
|
+
type: "uint64[]"
|
|
10433
|
+
},
|
|
10434
|
+
{
|
|
10435
|
+
name: "memo",
|
|
10436
|
+
type: "string"
|
|
10437
|
+
},
|
|
10438
|
+
{
|
|
10439
|
+
name: "ram_payer",
|
|
10440
|
+
type: "name"
|
|
10441
|
+
}
|
|
10442
|
+
]
|
|
10443
|
+
},
|
|
10444
|
+
{
|
|
10445
|
+
name: "pair_string_ATOMIC_ATTRIBUTE",
|
|
10446
|
+
base: "",
|
|
10447
|
+
fields: [
|
|
10448
|
+
{
|
|
10449
|
+
name: "first",
|
|
10450
|
+
type: "string"
|
|
10451
|
+
},
|
|
10452
|
+
{
|
|
10453
|
+
name: "second",
|
|
10454
|
+
type: "ATOMIC_ATTRIBUTE"
|
|
10455
|
+
}
|
|
10456
|
+
]
|
|
10457
|
+
},
|
|
10458
|
+
{
|
|
10459
|
+
name: "payofferram",
|
|
10460
|
+
base: "",
|
|
10461
|
+
fields: [
|
|
10462
|
+
{
|
|
10463
|
+
name: "payer",
|
|
10464
|
+
type: "name"
|
|
10465
|
+
},
|
|
10466
|
+
{
|
|
10467
|
+
name: "offer_id",
|
|
10468
|
+
type: "uint64"
|
|
10469
|
+
}
|
|
10470
|
+
]
|
|
10471
|
+
},
|
|
10472
|
+
{
|
|
10473
|
+
name: "remcolauth",
|
|
10474
|
+
base: "",
|
|
10475
|
+
fields: [
|
|
10476
|
+
{
|
|
10477
|
+
name: "collection_name",
|
|
10478
|
+
type: "name"
|
|
10479
|
+
},
|
|
10480
|
+
{
|
|
10481
|
+
name: "account_to_remove",
|
|
10482
|
+
type: "name"
|
|
10483
|
+
}
|
|
10484
|
+
]
|
|
10485
|
+
},
|
|
10486
|
+
{
|
|
10487
|
+
name: "remnotifyacc",
|
|
10488
|
+
base: "",
|
|
10489
|
+
fields: [
|
|
10490
|
+
{
|
|
10491
|
+
name: "collection_name",
|
|
10492
|
+
type: "name"
|
|
10493
|
+
},
|
|
10494
|
+
{
|
|
10495
|
+
name: "account_to_remove",
|
|
10496
|
+
type: "name"
|
|
10497
|
+
}
|
|
10498
|
+
]
|
|
10499
|
+
},
|
|
10500
|
+
{
|
|
10501
|
+
name: "schemas_s",
|
|
10502
|
+
base: "",
|
|
10503
|
+
fields: [
|
|
10504
|
+
{
|
|
10505
|
+
name: "schema_name",
|
|
10506
|
+
type: "name"
|
|
10507
|
+
},
|
|
10508
|
+
{
|
|
10509
|
+
name: "format",
|
|
10510
|
+
type: "FORMAT[]"
|
|
10511
|
+
}
|
|
10512
|
+
]
|
|
10513
|
+
},
|
|
10514
|
+
{
|
|
10515
|
+
name: "setassetdata",
|
|
10516
|
+
base: "",
|
|
10517
|
+
fields: [
|
|
10518
|
+
{
|
|
10519
|
+
name: "authorized_editor",
|
|
10520
|
+
type: "name"
|
|
10521
|
+
},
|
|
10522
|
+
{
|
|
10523
|
+
name: "asset_owner",
|
|
10524
|
+
type: "name"
|
|
10525
|
+
},
|
|
10526
|
+
{
|
|
10527
|
+
name: "asset_id",
|
|
10528
|
+
type: "uint64"
|
|
10529
|
+
},
|
|
10530
|
+
{
|
|
10531
|
+
name: "new_mutable_data",
|
|
10532
|
+
type: "ATTRIBUTE_MAP"
|
|
10533
|
+
}
|
|
10534
|
+
]
|
|
10535
|
+
},
|
|
10536
|
+
{
|
|
10537
|
+
name: "setcoldata",
|
|
10538
|
+
base: "",
|
|
10539
|
+
fields: [
|
|
10540
|
+
{
|
|
10541
|
+
name: "collection_name",
|
|
10542
|
+
type: "name"
|
|
10543
|
+
},
|
|
10544
|
+
{
|
|
10545
|
+
name: "data",
|
|
10546
|
+
type: "ATTRIBUTE_MAP"
|
|
10547
|
+
}
|
|
10548
|
+
]
|
|
10549
|
+
},
|
|
10550
|
+
{
|
|
10551
|
+
name: "setlastpayer",
|
|
10552
|
+
base: "",
|
|
10553
|
+
fields: [
|
|
10554
|
+
{
|
|
10555
|
+
name: "owner",
|
|
10556
|
+
type: "name"
|
|
10557
|
+
},
|
|
10558
|
+
{
|
|
10559
|
+
name: "collection_name",
|
|
10560
|
+
type: "name"
|
|
10561
|
+
}
|
|
10562
|
+
]
|
|
10563
|
+
},
|
|
10564
|
+
{
|
|
10565
|
+
name: "setmarketfee",
|
|
10566
|
+
base: "",
|
|
10567
|
+
fields: [
|
|
10568
|
+
{
|
|
10569
|
+
name: "collection_name",
|
|
10570
|
+
type: "name"
|
|
10571
|
+
},
|
|
10572
|
+
{
|
|
10573
|
+
name: "market_fee",
|
|
10574
|
+
type: "float64"
|
|
10575
|
+
}
|
|
10576
|
+
]
|
|
10577
|
+
},
|
|
10578
|
+
{
|
|
10579
|
+
name: "setrampayer",
|
|
10580
|
+
base: "",
|
|
10581
|
+
fields: [
|
|
10582
|
+
{
|
|
10583
|
+
name: "new_payer",
|
|
10584
|
+
type: "name"
|
|
10585
|
+
},
|
|
10586
|
+
{
|
|
10587
|
+
name: "asset_id",
|
|
10588
|
+
type: "uint64"
|
|
10589
|
+
}
|
|
10590
|
+
]
|
|
10591
|
+
},
|
|
10592
|
+
{
|
|
10593
|
+
name: "setversion",
|
|
10594
|
+
base: "",
|
|
10595
|
+
fields: [
|
|
10596
|
+
{
|
|
10597
|
+
name: "new_version",
|
|
10598
|
+
type: "string"
|
|
10599
|
+
}
|
|
10600
|
+
]
|
|
10601
|
+
},
|
|
10602
|
+
{
|
|
10603
|
+
name: "templates_s",
|
|
10604
|
+
base: "",
|
|
10605
|
+
fields: [
|
|
10606
|
+
{
|
|
10607
|
+
name: "template_id",
|
|
10608
|
+
type: "int32"
|
|
10609
|
+
},
|
|
10610
|
+
{
|
|
10611
|
+
name: "schema_name",
|
|
10612
|
+
type: "name"
|
|
10613
|
+
},
|
|
10614
|
+
{
|
|
10615
|
+
name: "transferable",
|
|
10616
|
+
type: "bool"
|
|
10617
|
+
},
|
|
10618
|
+
{
|
|
10619
|
+
name: "burnable",
|
|
10620
|
+
type: "bool"
|
|
10621
|
+
},
|
|
10622
|
+
{
|
|
10623
|
+
name: "max_supply",
|
|
10624
|
+
type: "uint32"
|
|
10625
|
+
},
|
|
10626
|
+
{
|
|
10627
|
+
name: "issued_supply",
|
|
10628
|
+
type: "uint32"
|
|
10629
|
+
},
|
|
10630
|
+
{
|
|
10631
|
+
name: "immutable_serialized_data",
|
|
10632
|
+
type: "bytes"
|
|
10633
|
+
}
|
|
10634
|
+
]
|
|
10635
|
+
},
|
|
10636
|
+
{
|
|
10637
|
+
name: "tokenconfigs_s",
|
|
10638
|
+
base: "",
|
|
10639
|
+
fields: [
|
|
10640
|
+
{
|
|
10641
|
+
name: "standard",
|
|
10642
|
+
type: "name"
|
|
10643
|
+
},
|
|
10644
|
+
{
|
|
10645
|
+
name: "version",
|
|
10646
|
+
type: "string"
|
|
10647
|
+
}
|
|
10648
|
+
]
|
|
10649
|
+
},
|
|
10650
|
+
{
|
|
10651
|
+
name: "transfer",
|
|
10652
|
+
base: "",
|
|
10653
|
+
fields: [
|
|
10654
|
+
{
|
|
10655
|
+
name: "from",
|
|
10656
|
+
type: "name"
|
|
10657
|
+
},
|
|
10658
|
+
{
|
|
10659
|
+
name: "to",
|
|
10660
|
+
type: "name"
|
|
10661
|
+
},
|
|
10662
|
+
{
|
|
10663
|
+
name: "asset_ids",
|
|
10664
|
+
type: "uint64[]"
|
|
10665
|
+
},
|
|
10666
|
+
{
|
|
10667
|
+
name: "memo",
|
|
10668
|
+
type: "string"
|
|
10669
|
+
}
|
|
10670
|
+
]
|
|
10671
|
+
},
|
|
10672
|
+
{
|
|
10673
|
+
name: "withdraw",
|
|
10674
|
+
base: "",
|
|
10675
|
+
fields: [
|
|
10676
|
+
{
|
|
10677
|
+
name: "owner",
|
|
10678
|
+
type: "name"
|
|
10679
|
+
},
|
|
10680
|
+
{
|
|
10681
|
+
name: "token_to_withdraw",
|
|
10682
|
+
type: "asset"
|
|
10683
|
+
}
|
|
10684
|
+
]
|
|
10685
|
+
}
|
|
10686
|
+
];
|
|
10687
|
+
var actions = [
|
|
10688
|
+
{
|
|
10689
|
+
name: "acceptoffer",
|
|
10690
|
+
type: "acceptoffer",
|
|
10691
|
+
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>"
|
|
10692
|
+
},
|
|
10693
|
+
{
|
|
10694
|
+
name: "addcolauth",
|
|
10695
|
+
type: "addcolauth",
|
|
10696
|
+
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>"
|
|
10697
|
+
},
|
|
10698
|
+
{
|
|
10699
|
+
name: "addconftoken",
|
|
10700
|
+
type: "addconftoken",
|
|
10701
|
+
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>"
|
|
10702
|
+
},
|
|
10703
|
+
{
|
|
10704
|
+
name: "addnotifyacc",
|
|
10705
|
+
type: "addnotifyacc",
|
|
10706
|
+
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>"
|
|
10707
|
+
},
|
|
10708
|
+
{
|
|
10709
|
+
name: "admincoledit",
|
|
10710
|
+
type: "admincoledit",
|
|
10711
|
+
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>"
|
|
10712
|
+
},
|
|
10713
|
+
{
|
|
10714
|
+
name: "announcedepo",
|
|
10715
|
+
type: "announcedepo",
|
|
10716
|
+
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>"
|
|
10717
|
+
},
|
|
10718
|
+
{
|
|
10719
|
+
name: "backasset",
|
|
10720
|
+
type: "backasset",
|
|
10721
|
+
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>"
|
|
10722
|
+
},
|
|
10723
|
+
{
|
|
10724
|
+
name: "burnasset",
|
|
10725
|
+
type: "burnasset",
|
|
10726
|
+
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>"
|
|
10727
|
+
},
|
|
10728
|
+
{
|
|
10729
|
+
name: "canceloffer",
|
|
10730
|
+
type: "canceloffer",
|
|
10731
|
+
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>"
|
|
10732
|
+
},
|
|
10733
|
+
{
|
|
10734
|
+
name: "createcol",
|
|
10735
|
+
type: "createcol",
|
|
10736
|
+
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>"
|
|
10737
|
+
},
|
|
10738
|
+
{
|
|
10739
|
+
name: "createoffer",
|
|
10740
|
+
type: "createoffer",
|
|
10741
|
+
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>"
|
|
10742
|
+
},
|
|
10743
|
+
{
|
|
10744
|
+
name: "createschema",
|
|
10745
|
+
type: "createschema",
|
|
10746
|
+
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>"
|
|
10747
|
+
},
|
|
10748
|
+
{
|
|
10749
|
+
name: "createtempl",
|
|
10750
|
+
type: "createtempl",
|
|
10751
|
+
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>"
|
|
10752
|
+
},
|
|
10753
|
+
{
|
|
10754
|
+
name: "declineoffer",
|
|
10755
|
+
type: "declineoffer",
|
|
10756
|
+
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>"
|
|
10757
|
+
},
|
|
10758
|
+
{
|
|
10759
|
+
name: "extendschema",
|
|
10760
|
+
type: "extendschema",
|
|
10761
|
+
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>"
|
|
10762
|
+
},
|
|
10763
|
+
{
|
|
10764
|
+
name: "forbidnotify",
|
|
10765
|
+
type: "forbidnotify",
|
|
10766
|
+
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>"
|
|
10767
|
+
},
|
|
10768
|
+
{
|
|
10769
|
+
name: "init",
|
|
10770
|
+
type: "init",
|
|
10771
|
+
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>"
|
|
10772
|
+
},
|
|
10773
|
+
{
|
|
10774
|
+
name: "locktemplate",
|
|
10775
|
+
type: "locktemplate",
|
|
10776
|
+
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>"
|
|
10777
|
+
},
|
|
10778
|
+
{
|
|
10779
|
+
name: "logbackasset",
|
|
10780
|
+
type: "logbackasset",
|
|
10781
|
+
ricardian_contract: ""
|
|
10782
|
+
},
|
|
10783
|
+
{
|
|
10784
|
+
name: "logburnasset",
|
|
10785
|
+
type: "logburnasset",
|
|
10786
|
+
ricardian_contract: ""
|
|
10787
|
+
},
|
|
10788
|
+
{
|
|
10789
|
+
name: "logmint",
|
|
10790
|
+
type: "logmint",
|
|
10791
|
+
ricardian_contract: ""
|
|
10792
|
+
},
|
|
10793
|
+
{
|
|
10794
|
+
name: "lognewoffer",
|
|
10795
|
+
type: "lognewoffer",
|
|
10796
|
+
ricardian_contract: ""
|
|
10797
|
+
},
|
|
10798
|
+
{
|
|
10799
|
+
name: "lognewtempl",
|
|
10800
|
+
type: "lognewtempl",
|
|
10801
|
+
ricardian_contract: ""
|
|
10802
|
+
},
|
|
10803
|
+
{
|
|
10804
|
+
name: "logrampayer",
|
|
10805
|
+
type: "logrampayer",
|
|
10806
|
+
ricardian_contract: ""
|
|
10807
|
+
},
|
|
10808
|
+
{
|
|
10809
|
+
name: "logsetdata",
|
|
10810
|
+
type: "logsetdata",
|
|
10811
|
+
ricardian_contract: ""
|
|
10812
|
+
},
|
|
10813
|
+
{
|
|
10814
|
+
name: "logtransfer",
|
|
10815
|
+
type: "logtransfer",
|
|
10816
|
+
ricardian_contract: ""
|
|
10817
|
+
},
|
|
10818
|
+
{
|
|
10819
|
+
name: "mintasset",
|
|
10820
|
+
type: "mintasset",
|
|
10821
|
+
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>"
|
|
10822
|
+
},
|
|
10823
|
+
{
|
|
10824
|
+
name: "payofferram",
|
|
10825
|
+
type: "payofferram",
|
|
10826
|
+
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>"
|
|
10827
|
+
},
|
|
10828
|
+
{
|
|
10829
|
+
name: "remcolauth",
|
|
10830
|
+
type: "remcolauth",
|
|
10831
|
+
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>"
|
|
10832
|
+
},
|
|
10833
|
+
{
|
|
10834
|
+
name: "remnotifyacc",
|
|
10835
|
+
type: "remnotifyacc",
|
|
10836
|
+
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>"
|
|
10837
|
+
},
|
|
10838
|
+
{
|
|
10839
|
+
name: "setassetdata",
|
|
10840
|
+
type: "setassetdata",
|
|
10841
|
+
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>"
|
|
10842
|
+
},
|
|
10843
|
+
{
|
|
10844
|
+
name: "setcoldata",
|
|
10845
|
+
type: "setcoldata",
|
|
10846
|
+
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>"
|
|
10847
|
+
},
|
|
10848
|
+
{
|
|
10849
|
+
name: "setlastpayer",
|
|
10850
|
+
type: "setlastpayer",
|
|
10851
|
+
ricardian_contract: ""
|
|
10852
|
+
},
|
|
10853
|
+
{
|
|
10854
|
+
name: "setmarketfee",
|
|
10855
|
+
type: "setmarketfee",
|
|
10856
|
+
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>"
|
|
10857
|
+
},
|
|
10858
|
+
{
|
|
10859
|
+
name: "setrampayer",
|
|
10860
|
+
type: "setrampayer",
|
|
10861
|
+
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>"
|
|
10862
|
+
},
|
|
10863
|
+
{
|
|
10864
|
+
name: "setversion",
|
|
10865
|
+
type: "setversion",
|
|
10866
|
+
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>"
|
|
10867
|
+
},
|
|
10868
|
+
{
|
|
10869
|
+
name: "transfer",
|
|
10870
|
+
type: "transfer",
|
|
10871
|
+
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>"
|
|
10872
|
+
},
|
|
10873
|
+
{
|
|
10874
|
+
name: "withdraw",
|
|
10875
|
+
type: "withdraw",
|
|
10876
|
+
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>"
|
|
10877
|
+
}
|
|
10878
|
+
];
|
|
10879
|
+
var tables = [
|
|
10880
|
+
{
|
|
10881
|
+
name: "assets",
|
|
10882
|
+
type: "assets_s",
|
|
10883
|
+
index_type: "i64",
|
|
10884
|
+
key_names: [
|
|
10885
|
+
],
|
|
10886
|
+
key_types: [
|
|
10887
|
+
]
|
|
10888
|
+
},
|
|
10889
|
+
{
|
|
10890
|
+
name: "balances",
|
|
10891
|
+
type: "balances_s",
|
|
10892
|
+
index_type: "i64",
|
|
10893
|
+
key_names: [
|
|
10894
|
+
],
|
|
10895
|
+
key_types: [
|
|
10896
|
+
]
|
|
10897
|
+
},
|
|
10898
|
+
{
|
|
10899
|
+
name: "collections",
|
|
10900
|
+
type: "collections_s",
|
|
10901
|
+
index_type: "i64",
|
|
10902
|
+
key_names: [
|
|
10903
|
+
],
|
|
10904
|
+
key_types: [
|
|
10905
|
+
]
|
|
10906
|
+
},
|
|
10907
|
+
{
|
|
10908
|
+
name: "config",
|
|
10909
|
+
type: "config_s",
|
|
10910
|
+
index_type: "i64",
|
|
10911
|
+
key_names: [
|
|
10912
|
+
],
|
|
10913
|
+
key_types: [
|
|
10914
|
+
]
|
|
10915
|
+
},
|
|
10916
|
+
{
|
|
10917
|
+
name: "offers",
|
|
10918
|
+
type: "offers_s",
|
|
10919
|
+
index_type: "i64",
|
|
10920
|
+
key_names: [
|
|
10921
|
+
],
|
|
10922
|
+
key_types: [
|
|
10923
|
+
]
|
|
10924
|
+
},
|
|
10925
|
+
{
|
|
10926
|
+
name: "schemas",
|
|
10927
|
+
type: "schemas_s",
|
|
10928
|
+
index_type: "i64",
|
|
10929
|
+
key_names: [
|
|
10930
|
+
],
|
|
10931
|
+
key_types: [
|
|
10932
|
+
]
|
|
10933
|
+
},
|
|
10934
|
+
{
|
|
10935
|
+
name: "templates",
|
|
10936
|
+
type: "templates_s",
|
|
10937
|
+
index_type: "i64",
|
|
10938
|
+
key_names: [
|
|
10939
|
+
],
|
|
10940
|
+
key_types: [
|
|
10941
|
+
]
|
|
10942
|
+
},
|
|
10943
|
+
{
|
|
10944
|
+
name: "tokenconfigs",
|
|
10945
|
+
type: "tokenconfigs_s",
|
|
10946
|
+
index_type: "i64",
|
|
10947
|
+
key_names: [
|
|
10948
|
+
],
|
|
10949
|
+
key_types: [
|
|
10950
|
+
]
|
|
10951
|
+
}
|
|
10952
|
+
];
|
|
10953
|
+
var ricardian_clauses = [
|
|
10954
|
+
];
|
|
10955
|
+
var variants = [
|
|
10956
|
+
{
|
|
10957
|
+
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",
|
|
10958
|
+
types: [
|
|
10959
|
+
"int8",
|
|
10960
|
+
"int16",
|
|
10961
|
+
"int32",
|
|
10962
|
+
"int64",
|
|
10963
|
+
"uint8",
|
|
10964
|
+
"uint16",
|
|
10965
|
+
"uint32",
|
|
10966
|
+
"uint64",
|
|
10967
|
+
"float32",
|
|
10968
|
+
"float64",
|
|
10969
|
+
"string",
|
|
10970
|
+
"INT8_VEC",
|
|
10971
|
+
"INT16_VEC",
|
|
10972
|
+
"INT32_VEC",
|
|
10973
|
+
"INT64_VEC",
|
|
10974
|
+
"UINT8_VEC",
|
|
10975
|
+
"UINT16_VEC",
|
|
10976
|
+
"UINT32_VEC",
|
|
10977
|
+
"UINT64_VEC",
|
|
10978
|
+
"FLOAT_VEC",
|
|
10979
|
+
"DOUBLE_VEC",
|
|
10980
|
+
"STRING_VEC"
|
|
10981
|
+
]
|
|
10982
|
+
}
|
|
10983
|
+
];
|
|
10984
|
+
var action_results = [
|
|
10985
|
+
];
|
|
10986
|
+
var atomicAssetsAbi = {
|
|
10987
|
+
____comment: ____comment,
|
|
10988
|
+
version: version,
|
|
10989
|
+
types: types,
|
|
10990
|
+
structs: structs,
|
|
10991
|
+
actions: actions,
|
|
10992
|
+
tables: tables,
|
|
10993
|
+
ricardian_clauses: ricardian_clauses,
|
|
10994
|
+
variants: variants,
|
|
10995
|
+
action_results: action_results
|
|
10996
|
+
};
|
|
10997
|
+
|
|
10998
|
+
const PLACEHOLDER_AUTH = PermissionLevel.from({
|
|
10999
|
+
actor: '............1',
|
|
11000
|
+
permission: '............2',
|
|
11001
|
+
});
|
|
11002
|
+
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
11003
|
+
const SHIPLOAD_COLLECTION = 'shipload';
|
|
11004
|
+
const ATOMICASSETS_ABI = ABI.from(atomicAssetsAbi);
|
|
11005
|
+
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';
|
|
11006
|
+
const MINTASSET_ABI_DEF = {
|
|
11007
|
+
version: 'eosio::abi/1.2',
|
|
11008
|
+
types: [
|
|
11009
|
+
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
11010
|
+
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
11011
|
+
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
11012
|
+
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
11013
|
+
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
11014
|
+
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
11015
|
+
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
11016
|
+
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
11017
|
+
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
11018
|
+
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
11019
|
+
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
11020
|
+
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
11021
|
+
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
11022
|
+
],
|
|
11023
|
+
structs: [
|
|
11024
|
+
{
|
|
11025
|
+
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
11026
|
+
base: '',
|
|
11027
|
+
fields: [
|
|
11028
|
+
{ name: 'first', type: 'string' },
|
|
11029
|
+
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
11030
|
+
],
|
|
11031
|
+
},
|
|
11032
|
+
{
|
|
11033
|
+
name: 'mintasset',
|
|
11034
|
+
base: '',
|
|
11035
|
+
fields: [
|
|
11036
|
+
{ name: 'authorized_minter', type: 'name' },
|
|
11037
|
+
{ name: 'collection_name', type: 'name' },
|
|
11038
|
+
{ name: 'schema_name', type: 'name' },
|
|
11039
|
+
{ name: 'template_id', type: 'int32' },
|
|
11040
|
+
{ name: 'new_asset_owner', type: 'name' },
|
|
11041
|
+
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
11042
|
+
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
11043
|
+
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
11044
|
+
],
|
|
11045
|
+
},
|
|
11046
|
+
],
|
|
11047
|
+
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
11048
|
+
variants: [
|
|
11049
|
+
{
|
|
11050
|
+
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
11051
|
+
types: [
|
|
11052
|
+
'int8',
|
|
11053
|
+
'int16',
|
|
11054
|
+
'int32',
|
|
11055
|
+
'int64',
|
|
11056
|
+
'uint8',
|
|
11057
|
+
'uint16',
|
|
11058
|
+
'uint32',
|
|
11059
|
+
'uint64',
|
|
11060
|
+
'float32',
|
|
11061
|
+
'float64',
|
|
11062
|
+
'string',
|
|
11063
|
+
'INT8_VEC',
|
|
11064
|
+
'INT16_VEC',
|
|
11065
|
+
'INT32_VEC',
|
|
11066
|
+
'INT64_VEC',
|
|
11067
|
+
'UINT8_VEC',
|
|
11068
|
+
'UINT16_VEC',
|
|
11069
|
+
'UINT32_VEC',
|
|
11070
|
+
'UINT64_VEC',
|
|
11071
|
+
'FLOAT_VEC',
|
|
11072
|
+
'DOUBLE_VEC',
|
|
11073
|
+
'STRING_VEC',
|
|
11074
|
+
],
|
|
11075
|
+
},
|
|
11076
|
+
],
|
|
11077
|
+
};
|
|
11078
|
+
const MINTASSET_ABI = ABI.from(MINTASSET_ABI_DEF);
|
|
11079
|
+
function buildMintAssetAction(params) {
|
|
11080
|
+
return Action.from({
|
|
11081
|
+
account: Name.from(ATOMICASSETS_ACCOUNT),
|
|
11082
|
+
name: Name.from('mintasset'),
|
|
11083
|
+
authorization: [PLACEHOLDER_AUTH],
|
|
11084
|
+
data: {
|
|
11085
|
+
authorized_minter: Name.from(params.authorizedMinter),
|
|
11086
|
+
collection_name: Name.from(params.collectionName),
|
|
11087
|
+
schema_name: Name.from(params.schemaName),
|
|
11088
|
+
template_id: params.templateId,
|
|
11089
|
+
new_asset_owner: Name.from(params.newAssetOwner),
|
|
11090
|
+
immutable_data: params.immutableData,
|
|
11091
|
+
mutable_data: [],
|
|
11092
|
+
tokens_to_back: [],
|
|
11093
|
+
},
|
|
11094
|
+
}, MINTASSET_ABI);
|
|
11095
|
+
}
|
|
11096
|
+
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
11097
|
+
const collection = opts.collection ? String(Name.from(opts.collection)) : undefined;
|
|
11098
|
+
const pageSize = opts.pageSize ?? 1000;
|
|
11099
|
+
const account = Name.from(opts.account ?? ATOMICASSETS_ACCOUNT);
|
|
11100
|
+
const out = [];
|
|
11101
|
+
let lower;
|
|
11102
|
+
while (true) {
|
|
11103
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11104
|
+
code: account,
|
|
11105
|
+
scope: String(Name.from(owner)),
|
|
11106
|
+
table: Name.from('assets'),
|
|
11107
|
+
limit: pageSize,
|
|
11108
|
+
lower_bound: lower,
|
|
11109
|
+
json: true,
|
|
11110
|
+
});
|
|
11111
|
+
for (const row of res.rows) {
|
|
11112
|
+
if (!collection || row.collection_name === collection)
|
|
11113
|
+
out.push(row);
|
|
11114
|
+
}
|
|
11115
|
+
if (!res.more)
|
|
11116
|
+
break;
|
|
11117
|
+
lower = UInt64.from(String(res.next_key));
|
|
11118
|
+
}
|
|
11119
|
+
return out;
|
|
11120
|
+
}
|
|
11121
|
+
async function fetchAtomicSchemas(client, collection, account = ATOMICASSETS_ACCOUNT) {
|
|
11122
|
+
const out = [];
|
|
11123
|
+
let lower;
|
|
11124
|
+
while (true) {
|
|
11125
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11126
|
+
code: Name.from(account),
|
|
11127
|
+
scope: String(Name.from(collection)),
|
|
11128
|
+
table: Name.from('schemas'),
|
|
11129
|
+
limit: 100,
|
|
11130
|
+
lower_bound: lower,
|
|
11131
|
+
json: true,
|
|
11132
|
+
});
|
|
11133
|
+
for (const row of res.rows)
|
|
11134
|
+
out.push(row);
|
|
11135
|
+
if (!res.more)
|
|
11136
|
+
break;
|
|
11137
|
+
lower = Name.from(String(res.next_key));
|
|
11138
|
+
}
|
|
11139
|
+
return out;
|
|
11140
|
+
}
|
|
11141
|
+
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
11142
|
+
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
11143
|
+
const cargo = deserializeAsset(data, itemId);
|
|
11144
|
+
return {
|
|
11145
|
+
asset_id: BigInt(String(asset.asset_id)),
|
|
11146
|
+
schema_name: String(asset.schema_name),
|
|
11147
|
+
template_id: Number(asset.template_id),
|
|
11148
|
+
item_id: cargo.item_id,
|
|
11149
|
+
quantity: cargo.quantity,
|
|
11150
|
+
stats: cargo.stats,
|
|
11151
|
+
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
11152
|
+
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
11153
|
+
modules: cargo.modules,
|
|
11154
|
+
};
|
|
11155
|
+
}
|
|
11156
|
+
|
|
11157
|
+
class ActionsManager extends BaseManager {
|
|
11158
|
+
travel(shipId, destination, recharge = true) {
|
|
11159
|
+
const x = Int64.from(destination.x);
|
|
11160
|
+
const y = Int64.from(destination.y);
|
|
11161
|
+
return this.server.action('travel', {
|
|
11162
|
+
id: UInt64.from(shipId),
|
|
11163
|
+
x,
|
|
11164
|
+
y,
|
|
11165
|
+
recharge,
|
|
11166
|
+
});
|
|
11167
|
+
}
|
|
11168
|
+
grouptravel(entities, destination, recharge = true) {
|
|
11169
|
+
const entityRefs = entities.map((e) => Types.entity_ref.from({
|
|
11170
|
+
entity_type: e.entityType,
|
|
11171
|
+
entity_id: UInt64.from(e.entityId),
|
|
11172
|
+
}));
|
|
11173
|
+
const x = Int64.from(destination.x);
|
|
11174
|
+
const y = Int64.from(destination.y);
|
|
11175
|
+
return this.server.action('grouptravel', {
|
|
11176
|
+
entities: entityRefs,
|
|
11177
|
+
x,
|
|
11178
|
+
y,
|
|
11179
|
+
recharge,
|
|
11180
|
+
});
|
|
11181
|
+
}
|
|
11182
|
+
resolve(entityId, count) {
|
|
11183
|
+
const params = {
|
|
11184
|
+
id: UInt64.from(entityId),
|
|
11185
|
+
};
|
|
11186
|
+
if (count !== undefined) {
|
|
11187
|
+
params.count = UInt64.from(count);
|
|
11188
|
+
}
|
|
11189
|
+
return this.server.action('resolve', params);
|
|
11190
|
+
}
|
|
11191
|
+
cancel(entityId, count) {
|
|
11192
|
+
return this.server.action('cancel', {
|
|
11193
|
+
id: UInt64.from(entityId),
|
|
11194
|
+
count: UInt64.from(count),
|
|
11195
|
+
});
|
|
11196
|
+
}
|
|
11197
|
+
recharge(entityId) {
|
|
11198
|
+
return this.server.action('recharge', {
|
|
11199
|
+
id: UInt64.from(entityId),
|
|
11200
|
+
});
|
|
11201
|
+
}
|
|
11202
|
+
refrshentity(entityId) {
|
|
11203
|
+
return this.server.action('refrshentity', {
|
|
11204
|
+
entity_id: UInt64.from(entityId),
|
|
11205
|
+
});
|
|
11206
|
+
}
|
|
11207
|
+
transfer(sourceId, destId, items) {
|
|
11208
|
+
return this.server.action('transfer', {
|
|
11209
|
+
source_id: UInt64.from(sourceId),
|
|
11210
|
+
dest_id: UInt64.from(destId),
|
|
11211
|
+
items,
|
|
11212
|
+
});
|
|
11213
|
+
}
|
|
11214
|
+
foundCompany(account, name) {
|
|
11215
|
+
return this.platform.action('foundcompany', {
|
|
11216
|
+
account: Name.from(account),
|
|
11217
|
+
name,
|
|
11218
|
+
});
|
|
11219
|
+
}
|
|
11220
|
+
join(account) {
|
|
11221
|
+
return this.server.action('join', {
|
|
11222
|
+
account: Name.from(account),
|
|
11223
|
+
});
|
|
11224
|
+
}
|
|
11225
|
+
gather(sourceId, destinationId, stratum, quantity) {
|
|
11226
|
+
return this.server.action('gather', {
|
|
11227
|
+
source_id: UInt64.from(sourceId),
|
|
11228
|
+
destination_id: UInt64.from(destinationId),
|
|
11229
|
+
stratum: UInt16.from(stratum),
|
|
11230
|
+
quantity: UInt32.from(quantity),
|
|
11231
|
+
});
|
|
11232
|
+
}
|
|
11233
|
+
warp(entityId, destination) {
|
|
11234
|
+
const x = Int64.from(destination.x);
|
|
11235
|
+
const y = Int64.from(destination.y);
|
|
11236
|
+
return this.server.action('warp', {
|
|
11237
|
+
id: UInt64.from(entityId),
|
|
11238
|
+
x,
|
|
11239
|
+
y,
|
|
11240
|
+
});
|
|
11241
|
+
}
|
|
11242
|
+
craft(entityId, recipeId, quantity, inputs) {
|
|
11243
|
+
return this.server.action('craft', {
|
|
11244
|
+
id: UInt64.from(entityId),
|
|
11245
|
+
recipe_id: UInt16.from(recipeId),
|
|
11246
|
+
quantity: UInt32.from(quantity),
|
|
11247
|
+
inputs,
|
|
11248
|
+
});
|
|
11249
|
+
}
|
|
11250
|
+
blend(entityId, inputs) {
|
|
11251
|
+
return this.server.action('blend', {
|
|
11252
|
+
id: UInt64.from(entityId),
|
|
11253
|
+
inputs,
|
|
11254
|
+
});
|
|
11255
|
+
}
|
|
11256
|
+
deploy(entityId, ref) {
|
|
11257
|
+
return this.server.action('deploy', {
|
|
11258
|
+
id: UInt64.from(entityId),
|
|
11259
|
+
ref,
|
|
11260
|
+
});
|
|
11261
|
+
}
|
|
11262
|
+
claimplot(entityId, targetItemId, coords) {
|
|
11263
|
+
return this.server.action('claimplot', {
|
|
11264
|
+
builder_id: UInt64.from(entityId),
|
|
11265
|
+
target_item_id: UInt16.from(targetItemId),
|
|
11266
|
+
coords,
|
|
11267
|
+
});
|
|
11268
|
+
}
|
|
11269
|
+
buildplot(entityId, plotId) {
|
|
11270
|
+
return this.server.action('buildplot', {
|
|
9397
11271
|
builder_id: UInt64.from(entityId),
|
|
9398
11272
|
plot_id: UInt64.from(plotId),
|
|
9399
11273
|
});
|
|
@@ -9413,8 +11287,15 @@ class ActionsManager extends BaseManager {
|
|
|
9413
11287
|
target_ref: targetRef ?? undefined,
|
|
9414
11288
|
});
|
|
9415
11289
|
}
|
|
9416
|
-
|
|
9417
|
-
return
|
|
11290
|
+
swapmodule(entityId, moduleIndex, moduleRef) {
|
|
11291
|
+
return this.server.action('swapmodule', {
|
|
11292
|
+
entity_id: UInt64.from(entityId),
|
|
11293
|
+
module_index: moduleIndex,
|
|
11294
|
+
module_ref: moduleRef,
|
|
11295
|
+
});
|
|
11296
|
+
}
|
|
11297
|
+
async wrap(owner, entityId, nexusId, cargoId, quantity, opts = {}) {
|
|
11298
|
+
const actions = [
|
|
9418
11299
|
this.platform.action('wrapcargo', {
|
|
9419
11300
|
game: this.server.account,
|
|
9420
11301
|
owner: Name.from(owner),
|
|
@@ -9424,6 +11305,11 @@ class ActionsManager extends BaseManager {
|
|
|
9424
11305
|
quantity: UInt64.from(quantity),
|
|
9425
11306
|
}),
|
|
9426
11307
|
];
|
|
11308
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11309
|
+
if (claimRam) {
|
|
11310
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11311
|
+
}
|
|
11312
|
+
return actions;
|
|
9427
11313
|
}
|
|
9428
11314
|
undeploy(hostId, targetId) {
|
|
9429
11315
|
return this.server.action('undeploy', {
|
|
@@ -9431,8 +11317,13 @@ class ActionsManager extends BaseManager {
|
|
|
9431
11317
|
target_id: UInt64.from(targetId),
|
|
9432
11318
|
});
|
|
9433
11319
|
}
|
|
9434
|
-
|
|
9435
|
-
return
|
|
11320
|
+
claimStarter(owner) {
|
|
11321
|
+
return this.server.action('claimstarter', {
|
|
11322
|
+
owner: Name.from(owner),
|
|
11323
|
+
});
|
|
11324
|
+
}
|
|
11325
|
+
async wrapEntity(owner, entityId, nexusId, opts = {}) {
|
|
11326
|
+
const actions = [
|
|
9436
11327
|
this.platform.action('wrapentity', {
|
|
9437
11328
|
game: this.server.account,
|
|
9438
11329
|
owner: Name.from(owner),
|
|
@@ -9440,6 +11331,11 @@ class ActionsManager extends BaseManager {
|
|
|
9440
11331
|
nexus_id: UInt64.from(nexusId),
|
|
9441
11332
|
}),
|
|
9442
11333
|
];
|
|
11334
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11335
|
+
if (claimRam) {
|
|
11336
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11337
|
+
}
|
|
11338
|
+
return actions;
|
|
9443
11339
|
}
|
|
9444
11340
|
placecargo(owner, hostId, assetId) {
|
|
9445
11341
|
return this.server.action('placecargo', {
|
|
@@ -9457,7 +11353,7 @@ class ActionsManager extends BaseManager {
|
|
|
9457
11353
|
}
|
|
9458
11354
|
transferForUnwrap(owner, assetId) {
|
|
9459
11355
|
return Action.from({
|
|
9460
|
-
account:
|
|
11356
|
+
account: this.atomicAssetsAccount,
|
|
9461
11357
|
name: 'transfer',
|
|
9462
11358
|
authorization: [{ actor: Name.from(owner), permission: 'active' }],
|
|
9463
11359
|
data: {
|
|
@@ -9466,7 +11362,7 @@ class ActionsManager extends BaseManager {
|
|
|
9466
11362
|
asset_ids: [UInt64.from(assetId)],
|
|
9467
11363
|
memo: 'unwrap',
|
|
9468
11364
|
},
|
|
9469
|
-
});
|
|
11365
|
+
}, ATOMICASSETS_ABI);
|
|
9470
11366
|
}
|
|
9471
11367
|
unwrapCargoTx(owner, assetId, hostId) {
|
|
9472
11368
|
return [this.transferForUnwrap(owner, assetId), this.placecargo(owner, hostId, assetId)];
|
|
@@ -9479,11 +11375,19 @@ class ActionsManager extends BaseManager {
|
|
|
9479
11375
|
}
|
|
9480
11376
|
setRamPayer(newPayer, assetId) {
|
|
9481
11377
|
return Action.from({
|
|
9482
|
-
account:
|
|
11378
|
+
account: this.atomicAssetsAccount,
|
|
9483
11379
|
name: 'setrampayer',
|
|
9484
11380
|
authorization: [{ actor: Name.from(newPayer), permission: 'active' }],
|
|
9485
11381
|
data: { new_payer: Name.from(newPayer), asset_id: UInt64.from(assetId) },
|
|
9486
|
-
});
|
|
11382
|
+
}, ATOMICASSETS_ABI);
|
|
11383
|
+
}
|
|
11384
|
+
setLastPayer(owner, collectionName) {
|
|
11385
|
+
return Action.from({
|
|
11386
|
+
account: this.atomicAssetsAccount,
|
|
11387
|
+
name: 'setlastpayer',
|
|
11388
|
+
authorization: [{ actor: Name.from(owner), permission: 'active' }],
|
|
11389
|
+
data: { owner: Name.from(owner), collection_name: Name.from(collectionName) },
|
|
11390
|
+
}, ATOMICASSETS_ABI);
|
|
9487
11391
|
}
|
|
9488
11392
|
demolish(entityId) {
|
|
9489
11393
|
return this.server.action('demolish', {
|
|
@@ -9957,10 +11861,11 @@ class SubscriptionsManager {
|
|
|
9957
11861
|
}
|
|
9958
11862
|
|
|
9959
11863
|
class GameContext {
|
|
9960
|
-
constructor(client, server, platform) {
|
|
11864
|
+
constructor(client, server, platform, atomicAssetsAccount = 'atomicassets') {
|
|
9961
11865
|
this.client = client;
|
|
9962
11866
|
this.server = server;
|
|
9963
11867
|
this.platform = platform;
|
|
11868
|
+
this.atomicAssetsAccount = atomicAssetsAccount;
|
|
9964
11869
|
}
|
|
9965
11870
|
get entities() {
|
|
9966
11871
|
if (!this._entities) {
|
|
@@ -10051,7 +11956,7 @@ class Shipload {
|
|
|
10051
11956
|
const server$1 = serverContract
|
|
10052
11957
|
? serverContract
|
|
10053
11958
|
: new Contract({ client: apiClient });
|
|
10054
|
-
this._context = new GameContext(apiClient, server$1, platform$1);
|
|
11959
|
+
this._context = new GameContext(apiClient, server$1, platform$1, constructorOptions?.atomicAssetsAccount ?? 'atomicassets');
|
|
10055
11960
|
if (constructorOptions?.subscriptionsUrl) {
|
|
10056
11961
|
this._context.setSubscriptionsUrl(constructorOptions.subscriptionsUrl);
|
|
10057
11962
|
}
|
|
@@ -10082,108 +11987,41 @@ class Shipload {
|
|
|
10082
11987
|
get client() {
|
|
10083
11988
|
return this._context.client;
|
|
10084
11989
|
}
|
|
11990
|
+
get atomicAssetsAccount() {
|
|
11991
|
+
return this._context.atomicAssetsAccount;
|
|
11992
|
+
}
|
|
10085
11993
|
get server() {
|
|
10086
11994
|
return this._context.server;
|
|
10087
11995
|
}
|
|
10088
11996
|
get platform() {
|
|
10089
11997
|
return this._context.platform;
|
|
10090
11998
|
}
|
|
10091
|
-
get entities() {
|
|
10092
|
-
return this._context.entities;
|
|
10093
|
-
}
|
|
10094
|
-
get players() {
|
|
10095
|
-
return this._context.players;
|
|
10096
|
-
}
|
|
10097
|
-
get locations() {
|
|
10098
|
-
return this._context.locations;
|
|
10099
|
-
}
|
|
10100
|
-
get epochs() {
|
|
10101
|
-
return this._context.epochs;
|
|
10102
|
-
}
|
|
10103
|
-
get actions() {
|
|
10104
|
-
return this._context.actions;
|
|
10105
|
-
}
|
|
10106
|
-
get nft() {
|
|
10107
|
-
return this._context.nft;
|
|
10108
|
-
}
|
|
10109
|
-
get subscriptions() {
|
|
10110
|
-
return this._context.subscriptions;
|
|
10111
|
-
}
|
|
10112
|
-
async getGame(reload = false) {
|
|
10113
|
-
return this._context.getGame(reload);
|
|
10114
|
-
}
|
|
10115
|
-
async getState(reload = false) {
|
|
10116
|
-
return this._context.getState(reload);
|
|
10117
|
-
}
|
|
10118
|
-
}
|
|
10119
|
-
|
|
10120
|
-
const MODULE_ANY = 0;
|
|
10121
|
-
const MODULE_ENGINE = 1;
|
|
10122
|
-
const MODULE_GENERATOR = 2;
|
|
10123
|
-
const MODULE_GATHERER = 3;
|
|
10124
|
-
const MODULE_LOADER = 4;
|
|
10125
|
-
const MODULE_WARP = 5;
|
|
10126
|
-
const MODULE_CRAFTER = 6;
|
|
10127
|
-
const MODULE_LAUNCHER = 7;
|
|
10128
|
-
const MODULE_STORAGE = 8;
|
|
10129
|
-
const MODULE_HAULER = 9;
|
|
10130
|
-
const MODULE_BATTERY = 10;
|
|
10131
|
-
function moduleAccepts(slotType, moduleType) {
|
|
10132
|
-
return slotType === MODULE_ANY || slotType === moduleType;
|
|
10133
|
-
}
|
|
10134
|
-
function getModuleCapabilityType(itemId) {
|
|
10135
|
-
switch (itemId) {
|
|
10136
|
-
case ITEM_ENGINE_T1:
|
|
10137
|
-
return MODULE_ENGINE;
|
|
10138
|
-
case ITEM_GENERATOR_T1:
|
|
10139
|
-
return MODULE_GENERATOR;
|
|
10140
|
-
case ITEM_GATHERER_T1:
|
|
10141
|
-
return MODULE_GATHERER;
|
|
10142
|
-
case ITEM_LOADER_T1:
|
|
10143
|
-
return MODULE_LOADER;
|
|
10144
|
-
case ITEM_CRAFTER_T1:
|
|
10145
|
-
return MODULE_CRAFTER;
|
|
10146
|
-
case ITEM_STORAGE_T1:
|
|
10147
|
-
return MODULE_STORAGE;
|
|
10148
|
-
case ITEM_HAULER_T1:
|
|
10149
|
-
return MODULE_HAULER;
|
|
10150
|
-
case ITEM_WARP_T1:
|
|
10151
|
-
return MODULE_WARP;
|
|
10152
|
-
case ITEM_BATTERY_T1:
|
|
10153
|
-
return MODULE_BATTERY;
|
|
10154
|
-
default:
|
|
10155
|
-
return 0xff;
|
|
10156
|
-
}
|
|
10157
|
-
}
|
|
10158
|
-
function isModuleItem(itemId) {
|
|
10159
|
-
return getModuleCapabilityType(itemId) !== 0xff;
|
|
10160
|
-
}
|
|
10161
|
-
function moduleSlotTypeToCode(slotType) {
|
|
10162
|
-
switch (slotType) {
|
|
10163
|
-
case 'any':
|
|
10164
|
-
return MODULE_ANY;
|
|
10165
|
-
case 'engine':
|
|
10166
|
-
return MODULE_ENGINE;
|
|
10167
|
-
case 'generator':
|
|
10168
|
-
return MODULE_GENERATOR;
|
|
10169
|
-
case 'gatherer':
|
|
10170
|
-
return MODULE_GATHERER;
|
|
10171
|
-
case 'loader':
|
|
10172
|
-
return MODULE_LOADER;
|
|
10173
|
-
case 'warp':
|
|
10174
|
-
return MODULE_WARP;
|
|
10175
|
-
case 'crafter':
|
|
10176
|
-
return MODULE_CRAFTER;
|
|
10177
|
-
case 'launcher':
|
|
10178
|
-
return MODULE_LAUNCHER;
|
|
10179
|
-
case 'storage':
|
|
10180
|
-
return MODULE_STORAGE;
|
|
10181
|
-
case 'hauler':
|
|
10182
|
-
return MODULE_HAULER;
|
|
10183
|
-
case 'battery':
|
|
10184
|
-
return MODULE_BATTERY;
|
|
10185
|
-
default:
|
|
10186
|
-
return MODULE_ANY;
|
|
11999
|
+
get entities() {
|
|
12000
|
+
return this._context.entities;
|
|
12001
|
+
}
|
|
12002
|
+
get players() {
|
|
12003
|
+
return this._context.players;
|
|
12004
|
+
}
|
|
12005
|
+
get locations() {
|
|
12006
|
+
return this._context.locations;
|
|
12007
|
+
}
|
|
12008
|
+
get epochs() {
|
|
12009
|
+
return this._context.epochs;
|
|
12010
|
+
}
|
|
12011
|
+
get actions() {
|
|
12012
|
+
return this._context.actions;
|
|
12013
|
+
}
|
|
12014
|
+
get nft() {
|
|
12015
|
+
return this._context.nft;
|
|
12016
|
+
}
|
|
12017
|
+
get subscriptions() {
|
|
12018
|
+
return this._context.subscriptions;
|
|
12019
|
+
}
|
|
12020
|
+
async getGame(reload = false) {
|
|
12021
|
+
return this._context.getGame(reload);
|
|
12022
|
+
}
|
|
12023
|
+
async getState(reload = false) {
|
|
12024
|
+
return this._context.getState(reload);
|
|
10187
12025
|
}
|
|
10188
12026
|
}
|
|
10189
12027
|
|
|
@@ -10204,6 +12042,7 @@ function packedModulesToInstalled(entries) {
|
|
|
10204
12042
|
function clampUint16(value) {
|
|
10205
12043
|
return Math.min(value, U16_MAX);
|
|
10206
12044
|
}
|
|
12045
|
+
const clampUint32 = (v) => Math.min(Math.max(Math.floor(v), 0), 4294967295);
|
|
10207
12046
|
function applySlotMultiplier(value, outputPct) {
|
|
10208
12047
|
return clampUint16(Math.floor((value * outputPct) / 100));
|
|
10209
12048
|
}
|
|
@@ -10248,7 +12087,7 @@ const GATHERER_DEPTH_TABLE = [
|
|
|
10248
12087
|
{ floor: 46000, slope: 12 },
|
|
10249
12088
|
{ floor: 53500, slope: 10 },
|
|
10250
12089
|
{ floor: 60000, slope: 5 },
|
|
10251
|
-
{ floor:
|
|
12090
|
+
{ floor: 63537, slope: 2 },
|
|
10252
12091
|
];
|
|
10253
12092
|
const GATHERER_DEPTH_MAX_TIER = 10;
|
|
10254
12093
|
function gathererDepthForTier(tol, tier) {
|
|
@@ -10441,8 +12280,8 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
10441
12280
|
}
|
|
10442
12281
|
if (hasGenerator) {
|
|
10443
12282
|
result.generator = {
|
|
10444
|
-
capacity:
|
|
10445
|
-
recharge:
|
|
12283
|
+
capacity: clampUint32(totalGenCapacity),
|
|
12284
|
+
recharge: clampUint32(totalGenRecharge),
|
|
10446
12285
|
};
|
|
10447
12286
|
}
|
|
10448
12287
|
if (hasGatherer) {
|
|
@@ -10605,7 +12444,7 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
10605
12444
|
}
|
|
10606
12445
|
function calc_craft_energy(drain, totalInputMass) {
|
|
10607
12446
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
10608
|
-
return
|
|
12447
|
+
return UInt32.from(Math.min(Math.max(raw, 1), 4294967295));
|
|
10609
12448
|
}
|
|
10610
12449
|
|
|
10611
12450
|
class PlotManager extends BaseManager {
|
|
@@ -10637,7 +12476,7 @@ class PlotManager extends BaseManager {
|
|
|
10637
12476
|
const isComplete = rows.every((r) => r.missing === 0);
|
|
10638
12477
|
return { targetItemId, rows, massProvided, massRequired, isComplete };
|
|
10639
12478
|
}
|
|
10640
|
-
buildableTarget(plot, cargo, activeTask) {
|
|
12479
|
+
buildableTarget(plot, cargo, activeTask, scheduledBuild) {
|
|
10641
12480
|
const progress = this.progress(plot, cargo);
|
|
10642
12481
|
const targetItemId = Number(plot.item_id.toString());
|
|
10643
12482
|
const targetItem = getItem(targetItemId);
|
|
@@ -10647,12 +12486,15 @@ class PlotManager extends BaseManager {
|
|
|
10647
12486
|
}
|
|
10648
12487
|
let state;
|
|
10649
12488
|
const taskType = activeTask?.type.toNumber();
|
|
10650
|
-
if (
|
|
10651
|
-
state = 'initializing';
|
|
10652
|
-
}
|
|
10653
|
-
else if (taskType === TaskType.BUILDPLOT) {
|
|
12489
|
+
if (scheduledBuild?.hasStarted) {
|
|
10654
12490
|
state = 'finalizing';
|
|
10655
12491
|
}
|
|
12492
|
+
else if (scheduledBuild) {
|
|
12493
|
+
state = 'scheduled';
|
|
12494
|
+
}
|
|
12495
|
+
else if (taskType === TaskType.CLAIMPLOT) {
|
|
12496
|
+
state = 'initializing';
|
|
12497
|
+
}
|
|
10656
12498
|
else if (progress.isComplete) {
|
|
10657
12499
|
state = 'ready';
|
|
10658
12500
|
}
|
|
@@ -10671,6 +12513,7 @@ class PlotManager extends BaseManager {
|
|
|
10671
12513
|
finalizeAction: Name.from('buildplot'),
|
|
10672
12514
|
finalizerCapability: 'crafter',
|
|
10673
12515
|
activeTask,
|
|
12516
|
+
scheduledBuild,
|
|
10674
12517
|
};
|
|
10675
12518
|
}
|
|
10676
12519
|
canBuild(plot, cargo) {
|
|
@@ -10691,10 +12534,10 @@ class ConstructionManager extends BaseManager {
|
|
|
10691
12534
|
super(...arguments);
|
|
10692
12535
|
this.plot = new PlotManager(this.context);
|
|
10693
12536
|
}
|
|
10694
|
-
getTarget(entity, cargo, activeTask) {
|
|
12537
|
+
getTarget(entity, cargo, activeTask, scheduledBuild) {
|
|
10695
12538
|
const kind = entity.kind.toString();
|
|
10696
12539
|
if (kind === 'plot') {
|
|
10697
|
-
return this.plot.buildableTarget(entity, cargo, activeTask);
|
|
12540
|
+
return this.plot.buildableTarget(entity, cargo, activeTask, scheduledBuild);
|
|
10698
12541
|
}
|
|
10699
12542
|
return null;
|
|
10700
12543
|
}
|
|
@@ -10789,6 +12632,77 @@ class ConstructionManager extends BaseManager {
|
|
|
10789
12632
|
}
|
|
10790
12633
|
return out;
|
|
10791
12634
|
}
|
|
12635
|
+
plotReservation(plot, now) {
|
|
12636
|
+
const schedule = plot.schedule;
|
|
12637
|
+
if (!schedule)
|
|
12638
|
+
return null;
|
|
12639
|
+
const tasks = schedule.tasks;
|
|
12640
|
+
const startedMs = schedule.started.toDate().getTime();
|
|
12641
|
+
let startSec = 0;
|
|
12642
|
+
for (const task of tasks) {
|
|
12643
|
+
if (task.type.toNumber() === TaskType.RESERVED) {
|
|
12644
|
+
if (!task.entitytarget)
|
|
12645
|
+
return null;
|
|
12646
|
+
const startsAt = startedMs + startSec * 1000;
|
|
12647
|
+
const completesAt = startsAt + task.duration.toNumber() * 1000;
|
|
12648
|
+
return {
|
|
12649
|
+
builderId: task.entitytarget.entity_id,
|
|
12650
|
+
group: task.entitygroup ?? undefined,
|
|
12651
|
+
startsAt,
|
|
12652
|
+
completesAt,
|
|
12653
|
+
hasStarted: startsAt <= now.getTime(),
|
|
12654
|
+
};
|
|
12655
|
+
}
|
|
12656
|
+
startSec += task.duration.toNumber();
|
|
12657
|
+
}
|
|
12658
|
+
return null;
|
|
12659
|
+
}
|
|
12660
|
+
builderCancelability(builder, group) {
|
|
12661
|
+
if (!builder?.schedule || group === undefined) {
|
|
12662
|
+
return { cancelable: false, blockingTaskCount: 0 };
|
|
12663
|
+
}
|
|
12664
|
+
const tasks = builder.schedule.tasks;
|
|
12665
|
+
const buildIdx = tasks.findIndex((t) => t.type.toNumber() === TaskType.BUILDPLOT &&
|
|
12666
|
+
t.entitygroup !== undefined &&
|
|
12667
|
+
t.entitygroup.equals(group));
|
|
12668
|
+
if (buildIdx < 0)
|
|
12669
|
+
return { cancelable: false, blockingTaskCount: 0 };
|
|
12670
|
+
const trailing = tasks.length - 1 - buildIdx;
|
|
12671
|
+
return { cancelable: trailing === 0, blockingTaskCount: trailing };
|
|
12672
|
+
}
|
|
12673
|
+
buildFromReservation(res, builder) {
|
|
12674
|
+
const { cancelable, blockingTaskCount } = this.builderCancelability(builder, res.group);
|
|
12675
|
+
return {
|
|
12676
|
+
shipId: res.builderId,
|
|
12677
|
+
shipName: builder?.entity_name || res.builderId.toString(),
|
|
12678
|
+
hasStarted: res.hasStarted,
|
|
12679
|
+
startsAt: res.startsAt,
|
|
12680
|
+
completesAt: res.completesAt,
|
|
12681
|
+
cancelable,
|
|
12682
|
+
blockingTaskCount,
|
|
12683
|
+
};
|
|
12684
|
+
}
|
|
12685
|
+
scheduledBuildFor(plot, entities, now) {
|
|
12686
|
+
const res = this.plotReservation(plot, now);
|
|
12687
|
+
if (!res)
|
|
12688
|
+
return null;
|
|
12689
|
+
const builder = entities.find((e) => e.id.equals(res.builderId));
|
|
12690
|
+
return this.buildFromReservation(res, builder);
|
|
12691
|
+
}
|
|
12692
|
+
scheduledBuildsByTarget(entities, now) {
|
|
12693
|
+
const byId = new Map(entities.map((e) => [e.id.toString(), e]));
|
|
12694
|
+
const out = new Map();
|
|
12695
|
+
for (const entity of entities) {
|
|
12696
|
+
if (entity.type.toString() !== 'plot')
|
|
12697
|
+
continue;
|
|
12698
|
+
const res = this.plotReservation(entity, now);
|
|
12699
|
+
if (!res)
|
|
12700
|
+
continue;
|
|
12701
|
+
const builder = byId.get(res.builderId.toString());
|
|
12702
|
+
out.set(entity.id.toString(), this.buildFromReservation(res, builder));
|
|
12703
|
+
}
|
|
12704
|
+
return out;
|
|
12705
|
+
}
|
|
10792
12706
|
reservationsFrom(sourceEntityId, entities) {
|
|
10793
12707
|
const source = entities.find((e) => e.id.equals(sourceEntityId));
|
|
10794
12708
|
if (!source)
|
|
@@ -11596,13 +13510,6 @@ function needsRecharge(entity) {
|
|
|
11596
13510
|
return UInt64.from(entity.energy).lt(entity.generator.capacity);
|
|
11597
13511
|
}
|
|
11598
13512
|
|
|
11599
|
-
function calcLoadDuration(entity, cargoMass) {
|
|
11600
|
-
const totalThrust = entity.loaders.thrust.toNumber() * entity.loaders.quantity.toNumber();
|
|
11601
|
-
if (totalThrust === 0)
|
|
11602
|
-
return UInt32.from(0);
|
|
11603
|
-
return UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
|
|
11604
|
-
}
|
|
11605
|
-
|
|
11606
13513
|
const GATHER_TIME_SCALE = 100;
|
|
11607
13514
|
const GATHER_MASS_DIVISOR = 228;
|
|
11608
13515
|
const DEPTH_PENALTY_DIVISOR = 5000;
|
|
@@ -11691,49 +13598,6 @@ const itemAbbreviations = {
|
|
|
11691
13598
|
20200: 'CT',
|
|
11692
13599
|
};
|
|
11693
13600
|
|
|
11694
|
-
const ITEM_TYPE_RESOURCE = 0;
|
|
11695
|
-
const ITEM_TYPE_COMPONENT = 1;
|
|
11696
|
-
const ITEM_TYPE_MODULE = 2;
|
|
11697
|
-
const ITEM_TYPE_ENTITY = 3;
|
|
11698
|
-
function itemTypeCode(id) {
|
|
11699
|
-
switch (itemCategory(id)) {
|
|
11700
|
-
case 'resource':
|
|
11701
|
-
return ITEM_TYPE_RESOURCE;
|
|
11702
|
-
case 'component':
|
|
11703
|
-
return ITEM_TYPE_COMPONENT;
|
|
11704
|
-
case 'module':
|
|
11705
|
-
return ITEM_TYPE_MODULE;
|
|
11706
|
-
case 'entity':
|
|
11707
|
-
return ITEM_TYPE_ENTITY;
|
|
11708
|
-
}
|
|
11709
|
-
}
|
|
11710
|
-
function itemTier(id) {
|
|
11711
|
-
if (id < 10000)
|
|
11712
|
-
return 0;
|
|
11713
|
-
return Math.floor(id / 10000);
|
|
11714
|
-
}
|
|
11715
|
-
function itemOffset(id) {
|
|
11716
|
-
return id % 10000;
|
|
11717
|
-
}
|
|
11718
|
-
function itemCategory(id) {
|
|
11719
|
-
if (id < 10000)
|
|
11720
|
-
return 'resource';
|
|
11721
|
-
const offset = itemOffset(id);
|
|
11722
|
-
if (offset >= 200)
|
|
11723
|
-
return 'entity';
|
|
11724
|
-
if (offset >= 100)
|
|
11725
|
-
return 'module';
|
|
11726
|
-
return 'component';
|
|
11727
|
-
}
|
|
11728
|
-
function isRelatedItem(a, b) {
|
|
11729
|
-
if (a < 10000 || b < 10000)
|
|
11730
|
-
return false;
|
|
11731
|
-
return itemOffset(a) === itemOffset(b);
|
|
11732
|
-
}
|
|
11733
|
-
function isCraftedItem(id) {
|
|
11734
|
-
return id >= 10000;
|
|
11735
|
-
}
|
|
11736
|
-
|
|
11737
13601
|
const categories = [
|
|
11738
13602
|
{
|
|
11739
13603
|
id: 'ore',
|
|
@@ -12453,49 +14317,6 @@ function renderDescription(desc, options) {
|
|
|
12453
14317
|
return spans;
|
|
12454
14318
|
}
|
|
12455
14319
|
|
|
12456
|
-
function readCommonBase(data) {
|
|
12457
|
-
return {
|
|
12458
|
-
quantity: Number(data.quantity),
|
|
12459
|
-
stats: String(data.stats),
|
|
12460
|
-
origin_x: String(data.origin_x),
|
|
12461
|
-
origin_y: String(data.origin_y),
|
|
12462
|
-
};
|
|
12463
|
-
}
|
|
12464
|
-
function deserializeScalar(data, itemId) {
|
|
12465
|
-
const base = readCommonBase(data);
|
|
12466
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
12467
|
-
}
|
|
12468
|
-
const deserializeResource = deserializeScalar;
|
|
12469
|
-
const deserializeComponent = deserializeScalar;
|
|
12470
|
-
const deserializeModule = deserializeScalar;
|
|
12471
|
-
function deserializeEntity(data, itemId) {
|
|
12472
|
-
const base = readCommonBase(data);
|
|
12473
|
-
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
12474
|
-
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
12475
|
-
const layout = getEntityLayout(itemId);
|
|
12476
|
-
const slots = layout?.slots ?? [];
|
|
12477
|
-
const modules = slots.map((slot, i) => ({
|
|
12478
|
-
type: moduleSlotTypeToCode(slot.type),
|
|
12479
|
-
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
12480
|
-
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
12481
|
-
: undefined,
|
|
12482
|
-
}));
|
|
12483
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
12484
|
-
}
|
|
12485
|
-
function deserializeAsset(data, itemId) {
|
|
12486
|
-
const type = itemTypeCode(itemId);
|
|
12487
|
-
switch (type) {
|
|
12488
|
-
case ITEM_TYPE_RESOURCE:
|
|
12489
|
-
case ITEM_TYPE_COMPONENT:
|
|
12490
|
-
case ITEM_TYPE_MODULE:
|
|
12491
|
-
return deserializeScalar(data, itemId);
|
|
12492
|
-
case ITEM_TYPE_ENTITY:
|
|
12493
|
-
return deserializeEntity(data, itemId);
|
|
12494
|
-
default:
|
|
12495
|
-
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
12496
|
-
}
|
|
12497
|
-
}
|
|
12498
|
-
|
|
12499
14320
|
function idiv(a, b) {
|
|
12500
14321
|
return Math.floor(a / b);
|
|
12501
14322
|
}
|
|
@@ -12588,342 +14409,71 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
12588
14409
|
case MODULE_GATHERER: {
|
|
12589
14410
|
const str = decodeStat(stats, 0);
|
|
12590
14411
|
const tol = decodeStat(stats, 1);
|
|
12591
|
-
const con = decodeStat(stats, 2);
|
|
12592
|
-
const tier = getItem(itemId).tier;
|
|
12593
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
12594
|
-
break;
|
|
12595
|
-
}
|
|
12596
|
-
case MODULE_LOADER: {
|
|
12597
|
-
const fin = decodeStat(stats, 0);
|
|
12598
|
-
const pla = decodeStat(stats, 1);
|
|
12599
|
-
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
12600
|
-
break;
|
|
12601
|
-
}
|
|
12602
|
-
case MODULE_CRAFTER: {
|
|
12603
|
-
const rea = decodeStat(stats, 0);
|
|
12604
|
-
const com = decodeStat(stats, 1);
|
|
12605
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12606
|
-
break;
|
|
12607
|
-
}
|
|
12608
|
-
case MODULE_STORAGE: {
|
|
12609
|
-
const str = decodeStat(stats, 0);
|
|
12610
|
-
const fin = decodeStat(stats, 2);
|
|
12611
|
-
const sat = decodeStat(stats, 3);
|
|
12612
|
-
const sum = str + fin + sat;
|
|
12613
|
-
const pct = 10 + idiv(sum * 10, 2997);
|
|
12614
|
-
out += ` +${pct}% capacity`;
|
|
12615
|
-
break;
|
|
12616
|
-
}
|
|
12617
|
-
case MODULE_HAULER: {
|
|
12618
|
-
const res = decodeStat(stats, 0);
|
|
12619
|
-
const con = decodeStat(stats, 1);
|
|
12620
|
-
const ref = decodeStat(stats, 2);
|
|
12621
|
-
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12622
|
-
break;
|
|
12623
|
-
}
|
|
12624
|
-
case MODULE_WARP: {
|
|
12625
|
-
const stat = decodeStat(stats, 0);
|
|
12626
|
-
out += ` Range ${computeWarpRange(stat)}`;
|
|
12627
|
-
break;
|
|
12628
|
-
}
|
|
12629
|
-
}
|
|
12630
|
-
return out;
|
|
12631
|
-
}
|
|
12632
|
-
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
12633
|
-
const hullMass = computeBaseHullmass(hullStats);
|
|
12634
|
-
let baseCapacity = 0;
|
|
12635
|
-
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
12636
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12637
|
-
}
|
|
12638
|
-
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
12639
|
-
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
12640
|
-
}
|
|
12641
|
-
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
12642
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12643
|
-
}
|
|
12644
|
-
let out = entityDisplayName(itemId);
|
|
12645
|
-
out += ` - Hull ${hullMass} mass`;
|
|
12646
|
-
if (baseCapacity > 0) {
|
|
12647
|
-
out += ` * ${baseCapacity} capacity`;
|
|
12648
|
-
}
|
|
12649
|
-
out += '\n\n';
|
|
12650
|
-
for (let i = 0; i < moduleItems.length; i++) {
|
|
12651
|
-
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
12652
|
-
out += '\n';
|
|
12653
|
-
}
|
|
12654
|
-
return out;
|
|
12655
|
-
}
|
|
12656
|
-
|
|
12657
|
-
function deserializeAtomicData(data, schema) {
|
|
12658
|
-
let rawData;
|
|
12659
|
-
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
12660
|
-
rawData = data
|
|
12661
|
-
.immutable_serialized_data;
|
|
12662
|
-
}
|
|
12663
|
-
else {
|
|
12664
|
-
rawData = data;
|
|
12665
|
-
}
|
|
12666
|
-
let bytes;
|
|
12667
|
-
if (typeof rawData === 'string') {
|
|
12668
|
-
const hex = rawData;
|
|
12669
|
-
bytes = new Uint8Array(hex.length / 2);
|
|
12670
|
-
for (let i = 0; i < hex.length; i += 2) {
|
|
12671
|
-
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
12672
|
-
}
|
|
12673
|
-
}
|
|
12674
|
-
else if (Array.isArray(rawData)) {
|
|
12675
|
-
bytes = new Uint8Array(rawData);
|
|
12676
|
-
}
|
|
12677
|
-
else {
|
|
12678
|
-
bytes = rawData;
|
|
12679
|
-
}
|
|
12680
|
-
let offset = 0;
|
|
12681
|
-
function readVarint() {
|
|
12682
|
-
let result = 0;
|
|
12683
|
-
let multiplier = 1;
|
|
12684
|
-
while (bytes[offset] >= 128) {
|
|
12685
|
-
result += (bytes[offset] - 128) * multiplier;
|
|
12686
|
-
offset++;
|
|
12687
|
-
multiplier *= 128;
|
|
12688
|
-
}
|
|
12689
|
-
result += bytes[offset] * multiplier;
|
|
12690
|
-
offset++;
|
|
12691
|
-
return result;
|
|
12692
|
-
}
|
|
12693
|
-
function readVarint64() {
|
|
12694
|
-
let result = 0n;
|
|
12695
|
-
let multiplier = 1n;
|
|
12696
|
-
while (bytes[offset] >= 128) {
|
|
12697
|
-
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
12698
|
-
offset++;
|
|
12699
|
-
multiplier *= 128n;
|
|
12700
|
-
}
|
|
12701
|
-
result += BigInt(bytes[offset]) * multiplier;
|
|
12702
|
-
offset++;
|
|
12703
|
-
return result;
|
|
12704
|
-
}
|
|
12705
|
-
function readZigzagInt64() {
|
|
12706
|
-
const unsigned = readVarint64();
|
|
12707
|
-
if (unsigned % 2n === 0n) {
|
|
12708
|
-
return unsigned / 2n;
|
|
14412
|
+
const con = decodeStat(stats, 2);
|
|
14413
|
+
const tier = getItem(itemId).tier;
|
|
14414
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
14415
|
+
break;
|
|
12709
14416
|
}
|
|
12710
|
-
|
|
12711
|
-
|
|
14417
|
+
case MODULE_LOADER: {
|
|
14418
|
+
const fin = decodeStat(stats, 0);
|
|
14419
|
+
const pla = decodeStat(stats, 1);
|
|
14420
|
+
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
14421
|
+
break;
|
|
12712
14422
|
}
|
|
12713
|
-
|
|
12714
|
-
|
|
12715
|
-
|
|
12716
|
-
|
|
12717
|
-
offset += length;
|
|
12718
|
-
return str;
|
|
12719
|
-
}
|
|
12720
|
-
const RESERVED = 4;
|
|
12721
|
-
const result = {};
|
|
12722
|
-
while (offset < bytes.length) {
|
|
12723
|
-
const fieldIndex = readVarint() - RESERVED;
|
|
12724
|
-
const field = schema[fieldIndex];
|
|
12725
|
-
if (!field)
|
|
14423
|
+
case MODULE_CRAFTER: {
|
|
14424
|
+
const rea = decodeStat(stats, 0);
|
|
14425
|
+
const com = decodeStat(stats, 1);
|
|
14426
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12726
14427
|
break;
|
|
12727
|
-
switch (field.type) {
|
|
12728
|
-
case 'uint16':
|
|
12729
|
-
result[field.name] = readVarint();
|
|
12730
|
-
break;
|
|
12731
|
-
case 'uint32':
|
|
12732
|
-
result[field.name] = readVarint();
|
|
12733
|
-
break;
|
|
12734
|
-
case 'uint64':
|
|
12735
|
-
result[field.name] = readVarint64();
|
|
12736
|
-
break;
|
|
12737
|
-
case 'int32':
|
|
12738
|
-
result[field.name] = readZigzagInt64();
|
|
12739
|
-
break;
|
|
12740
|
-
case 'int64':
|
|
12741
|
-
result[field.name] = readZigzagInt64();
|
|
12742
|
-
break;
|
|
12743
|
-
case 'string':
|
|
12744
|
-
case 'image':
|
|
12745
|
-
case 'ipfs':
|
|
12746
|
-
result[field.name] = readString();
|
|
12747
|
-
break;
|
|
12748
|
-
case 'uint16[]': {
|
|
12749
|
-
const len = readVarint();
|
|
12750
|
-
const arr = [];
|
|
12751
|
-
for (let i = 0; i < len; i++)
|
|
12752
|
-
arr.push(readVarint());
|
|
12753
|
-
result[field.name] = arr;
|
|
12754
|
-
break;
|
|
12755
|
-
}
|
|
12756
|
-
case 'uint64[]': {
|
|
12757
|
-
const len = readVarint();
|
|
12758
|
-
const arr = [];
|
|
12759
|
-
for (let i = 0; i < len; i++)
|
|
12760
|
-
arr.push(readVarint64());
|
|
12761
|
-
result[field.name] = arr;
|
|
12762
|
-
break;
|
|
12763
|
-
}
|
|
12764
|
-
default:
|
|
12765
|
-
throw new Error(`Unknown type: ${field.type}`);
|
|
12766
14428
|
}
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
|
|
12771
|
-
const
|
|
12772
|
-
|
|
12773
|
-
|
|
12774
|
-
|
|
12775
|
-
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
12776
|
-
const SHIPLOAD_COLLECTION = 'shipload';
|
|
12777
|
-
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';
|
|
12778
|
-
const MINTASSET_ABI_DEF = {
|
|
12779
|
-
version: 'eosio::abi/1.2',
|
|
12780
|
-
types: [
|
|
12781
|
-
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
12782
|
-
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
12783
|
-
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
12784
|
-
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
12785
|
-
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
12786
|
-
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
12787
|
-
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
12788
|
-
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
12789
|
-
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
12790
|
-
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
12791
|
-
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
12792
|
-
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
12793
|
-
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
12794
|
-
],
|
|
12795
|
-
structs: [
|
|
12796
|
-
{
|
|
12797
|
-
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
12798
|
-
base: '',
|
|
12799
|
-
fields: [
|
|
12800
|
-
{ name: 'first', type: 'string' },
|
|
12801
|
-
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
12802
|
-
],
|
|
12803
|
-
},
|
|
12804
|
-
{
|
|
12805
|
-
name: 'mintasset',
|
|
12806
|
-
base: '',
|
|
12807
|
-
fields: [
|
|
12808
|
-
{ name: 'authorized_minter', type: 'name' },
|
|
12809
|
-
{ name: 'collection_name', type: 'name' },
|
|
12810
|
-
{ name: 'schema_name', type: 'name' },
|
|
12811
|
-
{ name: 'template_id', type: 'int32' },
|
|
12812
|
-
{ name: 'new_asset_owner', type: 'name' },
|
|
12813
|
-
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12814
|
-
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12815
|
-
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
12816
|
-
],
|
|
12817
|
-
},
|
|
12818
|
-
],
|
|
12819
|
-
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
12820
|
-
variants: [
|
|
12821
|
-
{
|
|
12822
|
-
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
12823
|
-
types: [
|
|
12824
|
-
'int8',
|
|
12825
|
-
'int16',
|
|
12826
|
-
'int32',
|
|
12827
|
-
'int64',
|
|
12828
|
-
'uint8',
|
|
12829
|
-
'uint16',
|
|
12830
|
-
'uint32',
|
|
12831
|
-
'uint64',
|
|
12832
|
-
'float32',
|
|
12833
|
-
'float64',
|
|
12834
|
-
'string',
|
|
12835
|
-
'INT8_VEC',
|
|
12836
|
-
'INT16_VEC',
|
|
12837
|
-
'INT32_VEC',
|
|
12838
|
-
'INT64_VEC',
|
|
12839
|
-
'UINT8_VEC',
|
|
12840
|
-
'UINT16_VEC',
|
|
12841
|
-
'UINT32_VEC',
|
|
12842
|
-
'UINT64_VEC',
|
|
12843
|
-
'FLOAT_VEC',
|
|
12844
|
-
'DOUBLE_VEC',
|
|
12845
|
-
'STRING_VEC',
|
|
12846
|
-
],
|
|
12847
|
-
},
|
|
12848
|
-
],
|
|
12849
|
-
};
|
|
12850
|
-
const MINTASSET_ABI = ABI.from(MINTASSET_ABI_DEF);
|
|
12851
|
-
function buildMintAssetAction(params) {
|
|
12852
|
-
return Action.from({
|
|
12853
|
-
account: Name.from(ATOMICASSETS_ACCOUNT),
|
|
12854
|
-
name: Name.from('mintasset'),
|
|
12855
|
-
authorization: [PLACEHOLDER_AUTH],
|
|
12856
|
-
data: {
|
|
12857
|
-
authorized_minter: Name.from(params.authorizedMinter),
|
|
12858
|
-
collection_name: Name.from(params.collectionName),
|
|
12859
|
-
schema_name: Name.from(params.schemaName),
|
|
12860
|
-
template_id: params.templateId,
|
|
12861
|
-
new_asset_owner: Name.from(params.newAssetOwner),
|
|
12862
|
-
immutable_data: params.immutableData,
|
|
12863
|
-
mutable_data: [],
|
|
12864
|
-
tokens_to_back: [],
|
|
12865
|
-
},
|
|
12866
|
-
}, MINTASSET_ABI);
|
|
12867
|
-
}
|
|
12868
|
-
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
12869
|
-
const collection = opts.collection ? String(Name.from(opts.collection)) : undefined;
|
|
12870
|
-
const pageSize = opts.pageSize ?? 1000;
|
|
12871
|
-
const out = [];
|
|
12872
|
-
let lower;
|
|
12873
|
-
while (true) {
|
|
12874
|
-
const res = await client.v1.chain.get_table_rows({
|
|
12875
|
-
code: Name.from(ATOMICASSETS_ACCOUNT),
|
|
12876
|
-
scope: String(Name.from(owner)),
|
|
12877
|
-
table: Name.from('assets'),
|
|
12878
|
-
limit: pageSize,
|
|
12879
|
-
lower_bound: lower,
|
|
12880
|
-
json: true,
|
|
12881
|
-
});
|
|
12882
|
-
for (const row of res.rows) {
|
|
12883
|
-
if (!collection || row.collection_name === collection)
|
|
12884
|
-
out.push(row);
|
|
14429
|
+
case MODULE_STORAGE: {
|
|
14430
|
+
const str = decodeStat(stats, 0);
|
|
14431
|
+
const fin = decodeStat(stats, 2);
|
|
14432
|
+
const sat = decodeStat(stats, 3);
|
|
14433
|
+
const sum = str + fin + sat;
|
|
14434
|
+
const pct = 10 + idiv(sum * 10, 2997);
|
|
14435
|
+
out += ` +${pct}% capacity`;
|
|
14436
|
+
break;
|
|
12885
14437
|
}
|
|
12886
|
-
|
|
14438
|
+
case MODULE_HAULER: {
|
|
14439
|
+
const res = decodeStat(stats, 0);
|
|
14440
|
+
const con = decodeStat(stats, 1);
|
|
14441
|
+
const ref = decodeStat(stats, 2);
|
|
14442
|
+
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12887
14443
|
break;
|
|
12888
|
-
|
|
14444
|
+
}
|
|
14445
|
+
case MODULE_WARP: {
|
|
14446
|
+
const stat = decodeStat(stats, 0);
|
|
14447
|
+
out += ` Range ${computeWarpRange(stat)}`;
|
|
14448
|
+
break;
|
|
14449
|
+
}
|
|
12889
14450
|
}
|
|
12890
14451
|
return out;
|
|
12891
14452
|
}
|
|
12892
|
-
|
|
12893
|
-
const
|
|
12894
|
-
let
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12899
|
-
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12907
|
-
|
|
12908
|
-
|
|
14453
|
+
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14454
|
+
const hullMass = computeBaseHullmass(hullStats);
|
|
14455
|
+
let baseCapacity = 0;
|
|
14456
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
14457
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14458
|
+
}
|
|
14459
|
+
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
14460
|
+
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
14461
|
+
}
|
|
14462
|
+
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
14463
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14464
|
+
}
|
|
14465
|
+
let out = entityDisplayName(itemId);
|
|
14466
|
+
out += ` - Hull ${hullMass} mass`;
|
|
14467
|
+
if (baseCapacity > 0) {
|
|
14468
|
+
out += ` * ${baseCapacity} capacity`;
|
|
14469
|
+
}
|
|
14470
|
+
out += '\n\n';
|
|
14471
|
+
for (let i = 0; i < moduleItems.length; i++) {
|
|
14472
|
+
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
14473
|
+
out += '\n';
|
|
12909
14474
|
}
|
|
12910
14475
|
return out;
|
|
12911
14476
|
}
|
|
12912
|
-
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
12913
|
-
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
12914
|
-
const cargo = deserializeAsset(data, itemId);
|
|
12915
|
-
return {
|
|
12916
|
-
asset_id: BigInt(String(asset.asset_id)),
|
|
12917
|
-
schema_name: String(asset.schema_name),
|
|
12918
|
-
template_id: Number(asset.template_id),
|
|
12919
|
-
item_id: cargo.item_id,
|
|
12920
|
-
quantity: cargo.quantity,
|
|
12921
|
-
stats: cargo.stats,
|
|
12922
|
-
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
12923
|
-
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
12924
|
-
modules: cargo.modules,
|
|
12925
|
-
};
|
|
12926
|
-
}
|
|
12927
14477
|
|
|
12928
14478
|
function moduleSlotsForImmutable(modules) {
|
|
12929
14479
|
return modules.map((m) => ({
|
|
@@ -13154,6 +14704,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
13154
14704
|
deserializeAtomicData: deserializeAtomicData,
|
|
13155
14705
|
ATOMICASSETS_ACCOUNT: ATOMICASSETS_ACCOUNT,
|
|
13156
14706
|
SHIPLOAD_COLLECTION: SHIPLOAD_COLLECTION,
|
|
14707
|
+
ATOMICASSETS_ABI: ATOMICASSETS_ABI,
|
|
13157
14708
|
buildMintAssetAction: buildMintAssetAction,
|
|
13158
14709
|
fetchAtomicAssetsForOwner: fetchAtomicAssetsForOwner,
|
|
13159
14710
|
fetchAtomicSchemas: fetchAtomicSchemas,
|
|
@@ -13244,5 +14795,5 @@ function describeItem(resolved, opts) {
|
|
|
13244
14795
|
return `${tier} ${resolved.name} · ${mass}`;
|
|
13245
14796
|
}
|
|
13246
14797
|
|
|
13247
|
-
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CANCEL_PAIRED_HAS_PENDING, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, ConstructionManager, Coordinates, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_EMITTER, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_LOADER_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_REACTOR, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESONATOR, ITEM_SENSOR, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, InventoryAccessor, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION$1 as PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, allBuildableItems, allPlotBuildableItems, availableBuildMethods, availableCapacity, availableCapacityFromMass, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage,
|
|
14798
|
+
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CANCEL_PAIRED_HAS_PENDING, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, ConstructionManager, Coordinates, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_EMITTER, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_LOADER_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_REACTOR, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESONATOR, ITEM_SENSOR, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, InventoryAccessor, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION$1 as PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, allBuildableItems, allPlotBuildableItems, availableBuildMethods, availableCapacity, availableCapacityFromMass, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, capabilityAttributes, capabilityNames, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoRef, cargoUtils, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, componentIcon, computeBaseCapacity, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerDrain$1 as computeHaulerDrain, computeHaulerEfficiency, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAtomicAsset, decodeCraftedItemStats, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, encodeGatheredCargoStats, encodeStats, energyAtTime, energyPercent, entityDisplayName, estimateDealTravelTime, estimateTravelTime, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gathererDepthForTier, getCapabilityAttributes, getCategoryInfo, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getRecipe, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isWarehouse, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, kindCan, lerp$1 as lerp, makeEntity, mapEntity, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, needsRecharge, parseWireEntity, projectEntity, projectEntityAt, projectFromCurrentState, projectFromCurrentStateAt, readCommonBase, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveStats, rollTier, rollWithinTier, rotation, schedule, setSubscriptionsDebug, stackKey, stackToCargoItem, stacksEqual, taskCargoChanges, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, validateSchedule, yieldThresholdAt };
|
|
13248
14799
|
//# sourceMappingURL=shipload.m.js.map
|