@shipload/sdk 0.7.1 → 2.0.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +349 -1
  2. package/lib/shipload.d.ts +2016 -230
  3. package/lib/shipload.js +5733 -2094
  4. package/lib/shipload.js.map +1 -1
  5. package/lib/shipload.m.js +5425 -2012
  6. package/lib/shipload.m.js.map +1 -1
  7. package/package.json +5 -5
  8. package/src/capabilities/extraction.ts +37 -0
  9. package/src/capabilities/guards.ts +43 -0
  10. package/src/capabilities/index.ts +5 -0
  11. package/src/capabilities/loading.ts +8 -0
  12. package/src/capabilities/movement.ts +29 -0
  13. package/src/capabilities/storage.ts +67 -0
  14. package/src/contracts/server.ts +788 -202
  15. package/src/data/goods.json +23 -0
  16. package/src/data/syllables.json +1184 -0
  17. package/src/entities/cargo-utils.ts +142 -0
  18. package/src/entities/container.ts +70 -0
  19. package/src/entities/entity-inventory.ts +39 -0
  20. package/src/entities/gamestate.ts +152 -0
  21. package/src/entities/inventory-accessor.ts +46 -0
  22. package/src/entities/location.ts +255 -0
  23. package/src/entities/makers.ts +69 -0
  24. package/src/entities/player.ts +288 -0
  25. package/src/entities/ship.ts +208 -0
  26. package/src/entities/warehouse.ts +89 -0
  27. package/src/errors.ts +46 -9
  28. package/src/index-module.ts +152 -7
  29. package/src/managers/actions.ts +200 -0
  30. package/src/managers/base.ts +25 -0
  31. package/src/managers/context.ts +104 -0
  32. package/src/managers/entities.ts +103 -0
  33. package/src/managers/epochs.ts +47 -0
  34. package/src/managers/index.ts +9 -0
  35. package/src/managers/locations.ts +122 -0
  36. package/src/managers/players.ts +13 -0
  37. package/src/managers/trades.ts +119 -0
  38. package/src/market/goods.ts +31 -0
  39. package/src/{market.ts → market/market.ts} +31 -37
  40. package/src/{rolls.ts → market/rolls.ts} +3 -3
  41. package/src/scheduling/accessor.ts +82 -0
  42. package/src/{epoch.ts → scheduling/epoch.ts} +1 -1
  43. package/src/scheduling/projection.ts +290 -0
  44. package/src/scheduling/schedule.ts +179 -0
  45. package/src/shipload.ts +39 -157
  46. package/src/trading/collect.ts +938 -0
  47. package/src/trading/deal.ts +207 -0
  48. package/src/trading/trade.ts +203 -0
  49. package/src/travel/travel.ts +486 -0
  50. package/src/types/capabilities.ts +79 -0
  51. package/src/types/entity-traits.ts +70 -0
  52. package/src/types/entity.ts +36 -0
  53. package/src/types/index.ts +3 -0
  54. package/src/types.ts +127 -25
  55. package/src/{hash.ts → utils/hash.ts} +1 -1
  56. package/src/utils/system.ts +155 -0
  57. package/src/goods.ts +0 -124
  58. package/src/ship.ts +0 -36
  59. package/src/state.ts +0 -0
  60. package/src/syllables.ts +0 -1184
  61. package/src/system.ts +0 -37
  62. package/src/travel.ts +0 -259
@@ -3,15 +3,17 @@ import type {
3
3
  Checksum256Type,
4
4
  Int64Type,
5
5
  NameType,
6
+ TimePointType,
6
7
  UInt16Type,
8
+ UInt32Type,
7
9
  UInt64Type,
10
+ UInt8Type,
8
11
  } from '@wharfkit/antelope'
9
12
  import {
10
13
  ABI,
11
14
  Blob,
12
15
  Checksum256,
13
16
  Checksum512,
14
- Float64,
15
17
  Int64,
16
18
  Name,
17
19
  Struct,
@@ -24,7 +26,7 @@ import {
24
26
  import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
25
27
  import {Contract as BaseContract} from '@wharfkit/contract'
26
28
  export const abiBlob = Blob.from(
27
- 'DmVvc2lvOjphYmkvMS4yACcHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAdidXlzaGlwAAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NARwYWlkBnVpbnQ2NAVvd25lZAZ1aW50MzIGbG9hZGVkBnVpbnQzMgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAMCaWQGdWludDE2BXByaWNlBnVpbnQ2NAZzdXBwbHkGdWludDY0BGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghqZXR0aXNvbgADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQ2NARqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyCHF1YW50aXR5BnVpbnQxNgZ0aHJ1c3QGdWludDMyDGxvY2F0aW9uX3JvdwAFAmlkBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwVlcG9jaAZ1aW50NjQHZ29vZF9pZAZ1aW50MTYGc3VwcGx5BnVpbnQxNgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB3BheWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NApwbGF5ZXJfcm93AAQFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NAhuZXR3b3J0aAVpbnQ2NARzYWx0AAEEc2FsdAZ1aW50NjQJc2VsbGdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0DHNlcXVlbmNlX3JvdwACA2tleQRuYW1lBXZhbHVlBnVpbnQ2NAhzaGlwX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nCGxvY2F0aW9uC2Nvb3JkaW5hdGVzBHNraW4FdWludDgEdGllcgV1aW50OAVzdGF0ZQpzaGlwX3N0YXRlBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0ZQABBmVuZXJneQZ1aW50MzIKc2hpcF9zdGF0cwAHCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIEbWFzcwZ1aW50NjQHbWF4bWFzcwZ1aW50NjQFb3JiaXQGdWludDE2CHJlY2hhcmdlBnVpbnQzMgZ0aHJ1c3QGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50NjQEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CHRha2Vsb2FuAAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQGdHJhdmVsAAMCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4ACQlkZXBhcnR1cmUKdGltZV9wb2ludAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50MzIIbG9hZHRpbWUGdWludDMyDHJlY2hhcmdldGltZQZ1aW50MzILbWFzc3BlbmFsdHkGdWludDMyBG1hc3MGdWludDY0C2VuZXJneXVzYWdlBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQANBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgdmbG9hdDY0CmZsaWdodHRpbWUGdWludDMyC2VuZXJneXVzYWdlBnVpbnQzMgxyZWNoYXJnZXRpbWUGdWludDMyC21hc3NwZW5hbHR5BnVpbnQzMghsb2FkdGltZQZ1aW50NjQEdGltZQZ1aW50NjQKdHJhdmVscGxhbgAEAmlkBnVpbnQ2NAZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDHVwZGF0ZWNyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQKdXBkYXRlZGVidAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQLdXBncmFkZXNoaXAAAgdhY2NvdW50BG5hbWUCaWQGdWludDY0BHdpcGUAAAx3aXBlc2VxdWVuY2UAABoAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAAAAoLqGvT4HYnV5c2hpcMYBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eXNoaXAKc3VtbWFyeTogJ0J1eSBhIG5ldyBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBzaGlwAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAACTYpezeghqZXR0aXNvbvkBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpldHRpc29uCnN1bW1hcnk6ICdKZXR0aXNvbiBDYXJnbyBmcm9tIFNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpldHRpc29uIGNhcmdvIGZyb20gdGhlIGEgc2hpcCBhbmQgcmVjYWxjdWxhdGUgdHJhdmVsIHRpbWUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAABgGhq9qQdwYXlsb2Fu3gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGF5bG9hbgpzdW1tYXJ5OiAnTG9hbiBQYXltZW50JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpNYWtlIGEgcGF5bWVudCBvbiBhbiBvdXRzdGFuZGluZyBjcmVkaXQgbG9hbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAABEtc3NBnRyYXZlbMgCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgDANLFGtc3NCnRyYXZlbHBsYW6OAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWxwbGFuCnN1bW1hcnk6ICdFc3RpbWF0ZSBhIHRyYXZlbCBwbGFuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGUgd2hhdCB0aGUgdHJhdmVsIHBsYW4gaXMgZm9yIGEgc2hpcCB0cmF2ZWxpbmcgdG8gYSBnaXZlbiBsb2NhdGlvbi4KCi0tLQCAki5Htc3NCnRyYXZlbHRpbWWMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWx0aW1lCnN1bW1hcnk6ICdFc3RpbWF0ZSBUcmF2ZWwgVGltZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXN0aW1hdGUgdGhlIGR1cmF0aW9uIG9mIGEgc2hpcCB0cmF2ZWxpbmcgd2l0aG91dCBjb21taXR0aW5nIHRvIHRoZSBhY3Rpb24uCgotLS2QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCqa1glc1nVC3VwZ3JhZGVzaGlw1wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBncmFkZXNoaXAKc3VtbWFyeTogJ1VwZ3JhZGUgYSBTaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVcGdyYWRlIGEgc2hpcCB0byB0aGUgbmV4dCB0aWVyLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tBgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAGAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAUcrdmBa+RCmdvb2RfcHJpY2WAFXK3ZgWvkQxnb29kX3ByaWNlW10AwDSxRrXNzQt0cmF2ZWxfcGxhbgCAki5Htc3NDnRyYXZlbF9zdW1tYXJ5'
29
+ 'DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhQB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgxidXljb250YWluZXIAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcIYnV5Z29vZHMABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdnb29kX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIHYnV5c2hpcAACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwxidXl3YXJlaG91c2UAAwdhY2NvdW50BG5hbWUHc2hpcF9pZAZ1aW50NjQEbmFtZQZzdHJpbmcGY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdnb29kX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIJdW5pdF9jb3N0BnVpbnQ2NAdtaXh0dXJlDW1peHR1cmVfaW5mbz8JY2FyZ29fcm93AAUCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CXVuaXRfY29zdAZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ng1jb250YWluZXJfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MGdWludDMyCGNhcGFjaXR5BnVpbnQzMgljYXJnb21hc3MGdWludDMyCHNjaGVkdWxlCXNjaGVkdWxlPwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8GZW5hYmxlAAEHZW5hYmxlZARib29sDGVuZXJneV9zdGF0cwACCGNhcGFjaXR5BnVpbnQxNghyZWNoYXJnZQZ1aW50MTYUZW50aXR5X2N1cnJlbnRfc3RhdGUAAgtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kGdWludDE2C2VudGl0eV9pbmZvABUEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/B2lzX2lkbGUEYm9vbAxjdXJyZW50X3Rhc2sFdGFzaz8UY3VycmVudF90YXNrX2VsYXBzZWQGdWludDMyFmN1cnJlbnRfdGFza19yZW1haW5pbmcGdWludDMyDXBlbmRpbmdfdGFza3MGdGFza1tdB2lkbGVfYXQLdGltZV9wb2ludD8Ic2NoZWR1bGUJc2NoZWR1bGU/CmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQdleHRyYWN0AAEHc2hpcF9pZAZ1aW50NjQPZXh0cmFjdG9yX3N0YXRzAAMEcmF0ZQZ1aW50MTYFZHJhaW4GdWludDE2CmVmZmljaWVuY3kGdWludDE2C2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIZ2V0Z29vZHMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCWdldHBsYXllcgABB2FjY291bnQEbmFtZQpnZXRzdGFydGVyAAAMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwRnb29kAAMCaWQGdWludDE2CmJhc2VfcHJpY2UGdWludDMyBG1hc3MGdWludDMyCmdvb2RzX2luZm8AAQVnb29kcwZnb29kW10LZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nBGluaXQAAQRzZWVkC2NoZWNrc3VtMjU2BGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwtlcG9jaF9wcm9wcw5sb2NhdGlvbl9lcG9jaA5sb2NhdGlvbl9lcG9jaAADBmFjdGl2ZQRib29sBXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DWxvY2F0aW9uX2dvb2QABQJpZAZ1aW50MTYFcHJpY2UGdWludDMyBnN1cHBseQZ1aW50MTYRcmFyaXR5X211bHRpcGxpZXIGdWludDMyE2xvY2F0aW9uX211bHRpcGxpZXIGdWludDMyDWxvY2F0aW9uX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wFZ29vZHMPbG9jYXRpb25fZ29vZFtdDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgRbWl4dHVyZV9jb21wb25lbnQAAgdnb29kX2lkBnVpbnQxNgZwdXJpdHkGdWludDE2DG1peHR1cmVfaW5mbwABCmNvbXBvbmVudHMTbWl4dHVyZV9jb21wb25lbnRbXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQHcGF5bG9hbgACB2FjY291bnQEbmFtZQZhbW91bnQGdWludDY0C3BsYXllcl9pbmZvAA0Fb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDMyCG5ldHdvcnRoBWludDY0DmF2YWlsYWJsZV9sb2FuBnVpbnQ2NA9uZXh0X3NoaXBfcHJpY2UGdWludDY0FG5leHRfd2FyZWhvdXNlX3ByaWNlBnVpbnQ2NBRuZXh0X2NvbnRhaW5lcl9wcmljZQZ1aW50NjQKc2hpcF9jb3VudAZ1aW50NjQPd2FyZWhvdXNlX2NvdW50BnVpbnQ2NA9jb250YWluZXJfY291bnQGdWludDY0CnBsYXllcl9yb3cABAVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDMyCG5ldHdvcnRoBWludDY0C3B1cmdlc3VwcGx5AAEIbWF4X3Jvd3MHdWludDY0PwhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3Jlc29sdmUAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAV1aW50OBRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwRzYWx0AAEEc2FsdAZ1aW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdCXNlbGxnb29kcwAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMFdHJhZGUMdHJhZGVfc3RhdHM/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/CHNjaGVkdWxlCXNjaGVkdWxlPwxzdGFydGVyX2luZm8AAwdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NARzaGlwC2VudGl0eV9pbmZvCXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CnN1cHBseV9yb3cABQJpZAZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMFZXBvY2gGdWludDY0B2dvb2RfaWQGdWludDE2BnN1cHBseQZ1aW50MTYIdGFrZWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NAR0YXNrAAkEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/B2NyZWRpdHMGaW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAOCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/D25ld19jb29yZGluYXRlcwxjb29yZGluYXRlcz8PY2FyZ29tYXNzX2RlbHRhBWludDY0C2NhcmdvX2FkZGVkDGNhcmdvX2l0ZW1bXQ1jYXJnb19yZW1vdmVkDGNhcmdvX2l0ZW1bXQdjcmVkaXRzBmludDY0Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10LdHJhZGVfc3RhdHMAAQZtYXJnaW4GdWludDE2CHRyYW5zZmVyAAYLc291cmNlX3R5cGUEbmFtZQlzb3VyY2VfaWQGdWludDY0CWRlc3RfdHlwZQRuYW1lB2Rlc3RfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZ0cmF2ZWwABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cAAwJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRFzdGFydGVyX2luZm9fdHlwZQxzdGFydGVyX2luZm8MdXBkYXRlY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAVpbnQ2NAp1cGRhdGVkZWJ0AAIHYWNjb3VudARuYW1lBmFtb3VudAVpbnQ2NA13YXJlaG91c2Vfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIY2FwYWNpdHkGdWludDMyCWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycwxsb2FkZXJfc3RhdHMIc2NoZWR1bGUJc2NoZWR1bGU/BHdpcGUAAAx3aXBlc2VxdWVuY2UAACYAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4ucNV0Jk+KvD4MYnV5Y29udGFpbmVyygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5Y29udGFpbmVyCnN1bW1hcnk6ICdCdXkgYSBuZXcgY29udGFpbmVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBjb250YWluZXIgYXQgdGhlIGxvY2F0aW9uIG9mIGFuIGlkbGUgc2hpcC4gQ29udGFpbmVycyBwcm92aWRlIGNhcmdvIHN0b3JhZ2UgYnV0IGhhdmUgbm8gbG9hZGVycyBhbmQgY2Fubm90IG1vdmUgaW5kZXBlbmRlbnRseS4AAAA4Ucq8PghidXlnb29kc90BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eWdvb2RzCnN1bW1hcnk6ICdCdXkgZ29vZHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGdvb2RzIGFuZCBhZGQgdGhlbSB0byBhIHNoaXAncyBjYXJnby4AAACguoa9PgdidXlzaGlwxgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5c2hpcApzdW1tYXJ5OiAnQnV5IGEgbmV3IHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IHNoaXCgsKZNXcO9PgxidXl3YXJlaG91c2XMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXl3YXJlaG91c2UKc3VtbWFyeTogJ0J1eSBhIG5ldyB3YXJlaG91c2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IHdhcmVob3VzZSBhdCB0aGUgbG9jYXRpb24gb2YgYW4gaWRsZSBzaGlwLiBXYXJlaG91c2VzIHByb3ZpZGUgY2FyZ28gc3RvcmFnZSB3aXRoIGxvYWRpbmcvdW5sb2FkaW5nIGNhcGFiaWxpdGllcyBidXQgY2Fubm90IG1vdmUuAAAAAESFpkEGY2FuY2VsxwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuCgotLS0AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAICNzc1cHZXh0cmFjdKADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgbWl4dHVyZSBjb21wb3NpdGlvbi4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAAA4UcqyYghnZXRnb29kc6oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGdvb2RzCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRyYWRlYWJsZSBnb29kcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIG5hbWUsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGdvb2Q6IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuAADw5xo1s2IJZ2V0bmVhcmJ53gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgZmxpZ2h0IHRpbWUsIGFuZCBtYXJrZXQgaW5mb3JtYXRpb24uAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AwFX5moyzYgpnZXRzdGFydGVyhQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RhcnRlcgpzdW1tYXJ5OiAnR2V0IHN0YXJ0ZXIgc2hpcCBhbmQgYmFsYW5jZSBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgc3RhcnRlciBzaGlwIHN0YXRzIGFuZCBpbml0aWFsIGJhbGFuY2UgYSBuZXcgcGxheWVyIHdvdWxkIHJlY2VpdmUgdXBvbiBqb2luaW5nLiBVc2VkIGZvciBvbmJvYXJkaW5nIFVJIHRvIGRpc3BsYXkgd2hhdCBwbGF5ZXJzIHdpbGwgZ2V0IGJlZm9yZSB0aGV5IHJlZ2lzdGVyLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo/QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgoKLS0tAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAAAAYBoavakHcGF5bG9hbq8BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBheWxvYW4Kc3VtbWFyeTogJ0xvYW4gUGF5bWVudCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQB8rFVjxa6uC3B1cmdlc3VwcGx56QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcHVyZ2VzdXBwbHkKc3VtbWFyeTogJ1VwZGF0ZSBHYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJnZSBvbGQgc3VwcGx5IHJlY29yZHMgYW5kIGhlbHAgY2xlYW51cCBnYW1lIHN0YXRlLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWzLAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi6QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCwAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAuGo6kydFA2k2NAAADWNvbnRhaW5lcl9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAAACTumwQjQNpNjQAAAxsb2NhdGlvbl9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAA+FirxgNpNjQAAApzdXBwbHlfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAUAAAAOFHKvD4MdGFza19yZXN1bHRzAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm8AAAA4UcqyYgpnb29kc19pbmZvACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAAPDnGjWzYgtuZWFyYnlfaW5mbwAAuMqbWLNiC3BsYXllcl9pbmZvAMBV+ZqMs2IMc3RhcnRlcl9pbmZvgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAAMCJUhajwgx0YXNrX3Jlc3VsdHMAAABXLTzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHM='
28
30
  )
29
31
  export const abi = ABI.from(abiBlob)
30
32
  export namespace Types {
@@ -35,19 +37,25 @@ export namespace Types {
35
37
  @Struct.field(Checksum256)
36
38
  declare commit: Checksum256
37
39
  }
38
- @Struct.type('arrive')
39
- export class arrive extends Struct {
40
+ @Struct.type('buycontainer')
41
+ export class buycontainer extends Struct {
42
+ @Struct.field(Name)
43
+ declare account: Name
40
44
  @Struct.field(UInt64)
41
- declare id: UInt64
45
+ declare ship_id: UInt64
46
+ @Struct.field('string')
47
+ declare name: string
42
48
  }
43
49
  @Struct.type('buygoods')
44
50
  export class buygoods extends Struct {
51
+ @Struct.field(Name)
52
+ declare entity_type: Name
45
53
  @Struct.field(UInt64)
46
- declare ship_id: UInt64
47
- @Struct.field(UInt64)
48
- declare good_id: UInt64
49
- @Struct.field(UInt64)
50
- declare quantity: UInt64
54
+ declare id: UInt64
55
+ @Struct.field(UInt16)
56
+ declare good_id: UInt16
57
+ @Struct.field(UInt32)
58
+ declare quantity: UInt32
51
59
  }
52
60
  @Struct.type('buyship')
53
61
  export class buyship extends Struct {
@@ -56,20 +64,81 @@ export namespace Types {
56
64
  @Struct.field('string')
57
65
  declare name: string
58
66
  }
67
+ @Struct.type('buywarehouse')
68
+ export class buywarehouse extends Struct {
69
+ @Struct.field(Name)
70
+ declare account: Name
71
+ @Struct.field(UInt64)
72
+ declare ship_id: UInt64
73
+ @Struct.field('string')
74
+ declare name: string
75
+ }
76
+ @Struct.type('cancel')
77
+ export class cancel extends Struct {
78
+ @Struct.field(Name)
79
+ declare entity_type: Name
80
+ @Struct.field(UInt64)
81
+ declare id: UInt64
82
+ @Struct.field(UInt64)
83
+ declare count: UInt64
84
+ }
85
+ @Struct.type('entity_ref')
86
+ export class entity_ref extends Struct {
87
+ @Struct.field(Name)
88
+ declare entity_type: Name
89
+ @Struct.field(UInt64)
90
+ declare entity_id: UInt64
91
+ }
92
+ @Struct.type('cancel_results')
93
+ export class cancel_results extends Struct {
94
+ @Struct.field(UInt64)
95
+ declare entity_id: UInt64
96
+ @Struct.field(Name)
97
+ declare entity_type: Name
98
+ @Struct.field(UInt8)
99
+ declare cancelled_count: UInt8
100
+ @Struct.field(TimePoint, {optional: true})
101
+ declare schedule_started?: TimePoint
102
+ @Struct.field(UInt64, {optional: true})
103
+ declare entitygroup?: UInt64
104
+ @Struct.field(entity_ref, {array: true, optional: true})
105
+ declare group_members?: entity_ref[]
106
+ }
107
+ @Struct.type('mixture_component')
108
+ export class mixture_component extends Struct {
109
+ @Struct.field(UInt16)
110
+ declare good_id: UInt16
111
+ @Struct.field(UInt16)
112
+ declare purity: UInt16
113
+ }
114
+ @Struct.type('mixture_info')
115
+ export class mixture_info extends Struct {
116
+ @Struct.field(mixture_component, {array: true})
117
+ declare components: mixture_component[]
118
+ }
119
+ @Struct.type('cargo_item')
120
+ export class cargo_item extends Struct {
121
+ @Struct.field(UInt16)
122
+ declare good_id: UInt16
123
+ @Struct.field(UInt32)
124
+ declare quantity: UInt32
125
+ @Struct.field(UInt64)
126
+ declare unit_cost: UInt64
127
+ @Struct.field(mixture_info, {optional: true})
128
+ declare mixture?: mixture_info
129
+ }
59
130
  @Struct.type('cargo_row')
60
131
  export class cargo_row extends Struct {
61
132
  @Struct.field(UInt64)
62
133
  declare id: UInt64
63
134
  @Struct.field(UInt64)
64
- declare ship_id: UInt64
135
+ declare entity_id: UInt64
65
136
  @Struct.field(UInt64)
66
137
  declare good_id: UInt64
67
138
  @Struct.field(UInt64)
68
- declare paid: UInt64
69
- @Struct.field(UInt32)
70
- declare owned: UInt32
71
- @Struct.field(UInt32)
72
- declare loaded: UInt32
139
+ declare quantity: UInt64
140
+ @Struct.field(UInt64)
141
+ declare unit_cost: UInt64
73
142
  }
74
143
  @Struct.type('cleartable')
75
144
  export class cleartable extends Struct {
@@ -91,20 +160,264 @@ export namespace Types {
91
160
  declare x: Int64
92
161
  @Struct.field(Int64)
93
162
  declare y: Int64
163
+ @Struct.field(UInt16, {optional: true})
164
+ declare z?: UInt16
165
+ }
166
+ @Struct.type('task')
167
+ export class task extends Struct {
168
+ @Struct.field(UInt8)
169
+ declare type: UInt8
170
+ @Struct.field(UInt32)
171
+ declare duration: UInt32
172
+ @Struct.field(UInt8)
173
+ declare cancelable: UInt8
174
+ @Struct.field(coordinates, {optional: true})
175
+ declare coordinates?: coordinates
176
+ @Struct.field(cargo_item, {array: true})
177
+ declare cargo: cargo_item[]
178
+ @Struct.field(entity_ref, {optional: true})
179
+ declare entitytarget?: entity_ref
180
+ @Struct.field(UInt64, {optional: true})
181
+ declare entitygroup?: UInt64
182
+ @Struct.field(Int64, {optional: true})
183
+ declare credits?: Int64
184
+ @Struct.field(UInt16, {optional: true})
185
+ declare energy_cost?: UInt16
186
+ }
187
+ @Struct.type('schedule')
188
+ export class schedule extends Struct {
189
+ @Struct.field(TimePoint)
190
+ declare started: TimePoint
191
+ @Struct.field(task, {array: true})
192
+ declare tasks: task[]
193
+ }
194
+ @Struct.type('container_row')
195
+ export class container_row extends Struct {
196
+ @Struct.field(UInt64)
197
+ declare id: UInt64
198
+ @Struct.field(Name)
199
+ declare owner: Name
200
+ @Struct.field('string')
201
+ declare name: string
202
+ @Struct.field(coordinates)
203
+ declare coordinates: coordinates
204
+ @Struct.field(UInt32)
205
+ declare hullmass: UInt32
206
+ @Struct.field(UInt32)
207
+ declare capacity: UInt32
208
+ @Struct.field(UInt32)
209
+ declare cargomass: UInt32
210
+ @Struct.field(schedule, {optional: true})
211
+ declare schedule?: schedule
94
212
  }
95
213
  @Struct.type('enable')
96
214
  export class enable extends Struct {
97
215
  @Struct.field('bool')
98
216
  declare enabled: boolean
99
217
  }
100
- @Struct.type('good_price')
101
- export class good_price extends Struct {
218
+ @Struct.type('energy_stats')
219
+ export class energy_stats extends Struct {
102
220
  @Struct.field(UInt16)
103
- declare id: UInt16
221
+ declare capacity: UInt16
222
+ @Struct.field(UInt16)
223
+ declare recharge: UInt16
224
+ }
225
+ @Struct.type('entity_current_state')
226
+ export class entity_current_state extends Struct {
227
+ @Struct.field(coordinates)
228
+ declare coordinates: coordinates
229
+ @Struct.field(UInt16)
230
+ declare energy: UInt16
231
+ }
232
+ @Struct.type('loader_stats')
233
+ export class loader_stats extends Struct {
234
+ @Struct.field(UInt32)
235
+ declare mass: UInt32
236
+ @Struct.field(UInt16)
237
+ declare thrust: UInt16
238
+ @Struct.field(UInt8)
239
+ declare quantity: UInt8
240
+ }
241
+ @Struct.type('movement_stats')
242
+ export class movement_stats extends Struct {
243
+ @Struct.field(UInt32)
244
+ declare thrust: UInt32
245
+ @Struct.field(UInt16)
246
+ declare drain: UInt16
247
+ }
248
+ @Struct.type('extractor_stats')
249
+ export class extractor_stats extends Struct {
250
+ @Struct.field(UInt16)
251
+ declare rate: UInt16
252
+ @Struct.field(UInt16)
253
+ declare drain: UInt16
254
+ @Struct.field(UInt16)
255
+ declare efficiency: UInt16
256
+ }
257
+ @Struct.type('entity_info')
258
+ export class entity_info extends Struct {
259
+ @Struct.field(Name)
260
+ declare type: Name
104
261
  @Struct.field(UInt64)
105
- declare price: UInt64
262
+ declare id: UInt64
263
+ @Struct.field(Name)
264
+ declare owner: Name
265
+ @Struct.field('string')
266
+ declare entity_name: string
267
+ @Struct.field(coordinates)
268
+ declare coordinates: coordinates
269
+ @Struct.field(UInt32)
270
+ declare cargomass: UInt32
271
+ @Struct.field(cargo_item, {array: true})
272
+ declare cargo: cargo_item[]
273
+ @Struct.field(loader_stats, {optional: true})
274
+ declare loaders?: loader_stats
275
+ @Struct.field(UInt16, {optional: true})
276
+ declare energy?: UInt16
277
+ @Struct.field(UInt32, {optional: true})
278
+ declare hullmass?: UInt32
279
+ @Struct.field(movement_stats, {optional: true})
280
+ declare engines?: movement_stats
281
+ @Struct.field(energy_stats, {optional: true})
282
+ declare generator?: energy_stats
283
+ @Struct.field(UInt32, {optional: true})
284
+ declare capacity?: UInt32
285
+ @Struct.field(extractor_stats, {optional: true})
286
+ declare extractor?: extractor_stats
287
+ @Struct.field('bool')
288
+ declare is_idle: boolean
289
+ @Struct.field(task, {optional: true})
290
+ declare current_task?: task
291
+ @Struct.field(UInt32)
292
+ declare current_task_elapsed: UInt32
293
+ @Struct.field(UInt32)
294
+ declare current_task_remaining: UInt32
295
+ @Struct.field(task, {array: true})
296
+ declare pending_tasks: task[]
297
+ @Struct.field(TimePoint, {optional: true})
298
+ declare idle_at?: TimePoint
299
+ @Struct.field(schedule, {optional: true})
300
+ declare schedule?: schedule
301
+ }
302
+ @Struct.type('entity_summary')
303
+ export class entity_summary extends Struct {
304
+ @Struct.field(Name)
305
+ declare type: Name
106
306
  @Struct.field(UInt64)
107
- declare supply: UInt64
307
+ declare id: UInt64
308
+ @Struct.field(Name)
309
+ declare owner: Name
310
+ @Struct.field('string')
311
+ declare entity_name: string
312
+ @Struct.field(coordinates)
313
+ declare coordinates: coordinates
314
+ @Struct.field('bool')
315
+ declare is_idle: boolean
316
+ @Struct.field(UInt32)
317
+ declare resolved_count: UInt32
318
+ @Struct.field(UInt32)
319
+ declare pending_count: UInt32
320
+ }
321
+ @Struct.type('entity_task_info')
322
+ export class entity_task_info extends Struct {
323
+ @Struct.field(UInt64)
324
+ declare entity_id: UInt64
325
+ @Struct.field(Name)
326
+ declare entity_type: Name
327
+ @Struct.field(UInt8)
328
+ declare task_count: UInt8
329
+ @Struct.field(TimePoint)
330
+ declare schedule_started: TimePoint
331
+ }
332
+ @Struct.type('entitygroup_row')
333
+ export class entitygroup_row extends Struct {
334
+ @Struct.field(UInt64)
335
+ declare id: UInt64
336
+ @Struct.field(entity_ref, {array: true})
337
+ declare participants: entity_ref[]
338
+ }
339
+ @Struct.type('extract')
340
+ export class extract extends Struct {
341
+ @Struct.field(UInt64)
342
+ declare ship_id: UInt64
343
+ }
344
+ @Struct.type('getentities')
345
+ export class getentities extends Struct {
346
+ @Struct.field(Name)
347
+ declare owner: Name
348
+ @Struct.field(Name, {optional: true})
349
+ declare entity_type?: Name
350
+ }
351
+ @Struct.type('getentity')
352
+ export class getentity extends Struct {
353
+ @Struct.field(Name)
354
+ declare entity_type: Name
355
+ @Struct.field(UInt64)
356
+ declare entity_id: UInt64
357
+ }
358
+ @Struct.type('getgoods')
359
+ export class getgoods extends Struct {}
360
+ @Struct.type('getlocation')
361
+ export class getlocation extends Struct {
362
+ @Struct.field(Int64)
363
+ declare x: Int64
364
+ @Struct.field(Int64)
365
+ declare y: Int64
366
+ }
367
+ @Struct.type('getlocdata')
368
+ export class getlocdata extends Struct {
369
+ @Struct.field(Int64)
370
+ declare x: Int64
371
+ @Struct.field(Int64)
372
+ declare y: Int64
373
+ }
374
+ @Struct.type('getnearby')
375
+ export class getnearby extends Struct {
376
+ @Struct.field(Name)
377
+ declare entity_type: Name
378
+ @Struct.field(UInt64)
379
+ declare entity_id: UInt64
380
+ @Struct.field('bool')
381
+ declare recharge: boolean
382
+ }
383
+ @Struct.type('getplayer')
384
+ export class getplayer extends Struct {
385
+ @Struct.field(Name)
386
+ declare account: Name
387
+ }
388
+ @Struct.type('getstarter')
389
+ export class getstarter extends Struct {}
390
+ @Struct.type('getsummaries')
391
+ export class getsummaries extends Struct {
392
+ @Struct.field(Name)
393
+ declare owner: Name
394
+ @Struct.field(Name, {optional: true})
395
+ declare entity_type?: Name
396
+ }
397
+ @Struct.type('good')
398
+ export class good extends Struct {
399
+ @Struct.field(UInt16)
400
+ declare id: UInt16
401
+ @Struct.field(UInt32)
402
+ declare base_price: UInt32
403
+ @Struct.field(UInt32)
404
+ declare mass: UInt32
405
+ }
406
+ @Struct.type('goods_info')
407
+ export class goods_info extends Struct {
408
+ @Struct.field(good, {array: true})
409
+ declare goods: good[]
410
+ }
411
+ @Struct.type('grouptravel')
412
+ export class grouptravel extends Struct {
413
+ @Struct.field(entity_ref, {array: true})
414
+ declare entities: entity_ref[]
415
+ @Struct.field(Int64)
416
+ declare x: Int64
417
+ @Struct.field(Int64)
418
+ declare y: Int64
419
+ @Struct.field('bool')
420
+ declare recharge: boolean
108
421
  }
109
422
  @Struct.type('hash')
110
423
  export class hash extends Struct {
@@ -121,53 +434,136 @@ export namespace Types {
121
434
  @Struct.field(Checksum256)
122
435
  declare seed: Checksum256
123
436
  }
124
- @Struct.type('jettison')
125
- export class jettison extends Struct {
126
- @Struct.field(UInt64)
127
- declare ship_id: UInt64
128
- @Struct.field(UInt16)
129
- declare good_id: UInt16
130
- @Struct.field(UInt64)
131
- declare quantity: UInt64
132
- }
133
437
  @Struct.type('join')
134
438
  export class join extends Struct {
135
439
  @Struct.field(Name)
136
440
  declare account: Name
137
441
  }
138
- @Struct.type('loader_stats')
139
- export class loader_stats extends Struct {
442
+ @Struct.type('location_static')
443
+ export class location_static extends Struct {
444
+ @Struct.field(coordinates)
445
+ declare coords: coordinates
446
+ @Struct.field(UInt8)
447
+ declare type: UInt8
448
+ @Struct.field(UInt8)
449
+ declare subtype: UInt8
450
+ @Struct.field(UInt8)
451
+ declare seed0: UInt8
452
+ @Struct.field(UInt8)
453
+ declare seed1: UInt8
454
+ }
455
+ @Struct.type('location_epoch')
456
+ export class location_epoch extends Struct {
457
+ @Struct.field('bool')
458
+ declare active: boolean
459
+ @Struct.field(UInt8)
460
+ declare seed0: UInt8
461
+ @Struct.field(UInt8)
462
+ declare seed1: UInt8
463
+ }
464
+ @Struct.type('location_derived')
465
+ export class location_derived extends Struct {
466
+ @Struct.field(location_static)
467
+ declare static_props: location_static
468
+ @Struct.field(location_epoch)
469
+ declare epoch_props: location_epoch
470
+ }
471
+ @Struct.type('location_good')
472
+ export class location_good extends Struct {
473
+ @Struct.field(UInt16)
474
+ declare id: UInt16
140
475
  @Struct.field(UInt32)
141
- declare mass: UInt32
476
+ declare price: UInt32
142
477
  @Struct.field(UInt16)
143
- declare quantity: UInt16
478
+ declare supply: UInt16
144
479
  @Struct.field(UInt32)
145
- declare thrust: UInt32
480
+ declare rarity_multiplier: UInt32
481
+ @Struct.field(UInt32)
482
+ declare location_multiplier: UInt32
483
+ }
484
+ @Struct.type('location_info')
485
+ export class location_info extends Struct {
486
+ @Struct.field(coordinates)
487
+ declare coords: coordinates
488
+ @Struct.field('bool')
489
+ declare is_system: boolean
490
+ @Struct.field(location_good, {array: true})
491
+ declare goods: location_good[]
146
492
  }
147
493
  @Struct.type('location_row')
148
494
  export class location_row extends Struct {
149
495
  @Struct.field(UInt64)
150
496
  declare id: UInt64
497
+ @Struct.field(Name)
498
+ declare owner: Name
151
499
  @Struct.field(coordinates)
152
500
  declare coordinates: coordinates
501
+ @Struct.field(UInt32)
502
+ declare cargomass: UInt32
503
+ @Struct.field(cargo_item, {array: true})
504
+ declare cargo: cargo_item[]
505
+ @Struct.field(schedule, {optional: true})
506
+ declare schedule?: schedule
507
+ }
508
+ @Struct.type('nearby_system')
509
+ export class nearby_system extends Struct {
153
510
  @Struct.field(UInt64)
154
- declare epoch: UInt64
155
- @Struct.field(UInt16)
156
- declare good_id: UInt16
157
- @Struct.field(UInt16)
158
- declare supply: UInt16
511
+ declare distance: UInt64
512
+ @Struct.field(UInt64)
513
+ declare energy_cost: UInt64
514
+ @Struct.field(UInt32)
515
+ declare flight_time: UInt32
516
+ @Struct.field(location_info)
517
+ declare location: location_info
159
518
  }
160
- @Struct.type('marketprice')
161
- export class marketprice extends Struct {
162
- @Struct.field(coordinates)
163
- declare location: coordinates
519
+ @Struct.type('nearby_info')
520
+ export class nearby_info extends Struct {
521
+ @Struct.field('bool')
522
+ declare can_travel: boolean
523
+ @Struct.field(entity_current_state)
524
+ declare current: entity_current_state
525
+ @Struct.field(entity_current_state)
526
+ declare projected: entity_current_state
164
527
  @Struct.field(UInt16)
165
- declare good_id: UInt16
528
+ declare max_energy: UInt16
529
+ @Struct.field(nearby_system, {array: true})
530
+ declare systems: nearby_system[]
166
531
  }
167
- @Struct.type('marketprices')
168
- export class marketprices extends Struct {
169
- @Struct.field(coordinates)
170
- declare location: coordinates
532
+ @Struct.type('task_event')
533
+ export class task_event extends Struct {
534
+ @Struct.field(UInt8)
535
+ declare event_type: UInt8
536
+ @Struct.field(Name)
537
+ declare owner: Name
538
+ @Struct.field(Name)
539
+ declare entity_type: Name
540
+ @Struct.field(UInt64)
541
+ declare entity_id: UInt64
542
+ @Struct.field(UInt8)
543
+ declare task_index: UInt8
544
+ @Struct.field(task)
545
+ declare task: task
546
+ @Struct.field(TimePoint)
547
+ declare starts_at: TimePoint
548
+ @Struct.field(TimePoint)
549
+ declare completes_at: TimePoint
550
+ @Struct.field(UInt16, {optional: true})
551
+ declare new_energy?: UInt16
552
+ @Struct.field(coordinates, {optional: true})
553
+ declare new_coordinates?: coordinates
554
+ @Struct.field(Int64)
555
+ declare cargomass_delta: Int64
556
+ @Struct.field(cargo_item, {array: true})
557
+ declare cargo_added: cargo_item[]
558
+ @Struct.field(cargo_item, {array: true})
559
+ declare cargo_removed: cargo_item[]
560
+ @Struct.field(Int64, {optional: true})
561
+ declare credits?: Int64
562
+ }
563
+ @Struct.type('notify')
564
+ export class notify extends Struct {
565
+ @Struct.field(task_event)
566
+ declare event: task_event
171
567
  }
172
568
  @Struct.type('payloan')
173
569
  export class payloan extends Struct {
@@ -176,17 +572,82 @@ export namespace Types {
176
572
  @Struct.field(UInt64)
177
573
  declare amount: UInt64
178
574
  }
575
+ @Struct.type('player_info')
576
+ export class player_info extends Struct {
577
+ @Struct.field(Name)
578
+ declare owner: Name
579
+ @Struct.field('bool')
580
+ declare is_player: boolean
581
+ @Struct.field('string')
582
+ declare company_name: string
583
+ @Struct.field(UInt64)
584
+ declare balance: UInt64
585
+ @Struct.field(UInt32)
586
+ declare debt: UInt32
587
+ @Struct.field(Int64)
588
+ declare networth: Int64
589
+ @Struct.field(UInt64)
590
+ declare available_loan: UInt64
591
+ @Struct.field(UInt64)
592
+ declare next_ship_price: UInt64
593
+ @Struct.field(UInt64)
594
+ declare next_warehouse_price: UInt64
595
+ @Struct.field(UInt64)
596
+ declare next_container_price: UInt64
597
+ @Struct.field(UInt64)
598
+ declare ship_count: UInt64
599
+ @Struct.field(UInt64)
600
+ declare warehouse_count: UInt64
601
+ @Struct.field(UInt64)
602
+ declare container_count: UInt64
603
+ }
179
604
  @Struct.type('player_row')
180
605
  export class player_row extends Struct {
181
606
  @Struct.field(Name)
182
607
  declare owner: Name
183
608
  @Struct.field(UInt64)
184
609
  declare balance: UInt64
185
- @Struct.field(UInt64)
186
- declare debt: UInt64
610
+ @Struct.field(UInt32)
611
+ declare debt: UInt32
187
612
  @Struct.field(Int64)
188
613
  declare networth: Int64
189
614
  }
615
+ @Struct.type('purgesupply')
616
+ export class purgesupply extends Struct {
617
+ @Struct.field(UInt64, {optional: true})
618
+ declare max_rows?: UInt64
619
+ }
620
+ @Struct.type('recharge')
621
+ export class recharge extends Struct {
622
+ @Struct.field(Name)
623
+ declare entity_type: Name
624
+ @Struct.field(UInt64)
625
+ declare id: UInt64
626
+ }
627
+ @Struct.type('resolve')
628
+ export class resolve extends Struct {
629
+ @Struct.field(Name)
630
+ declare entity_type: Name
631
+ @Struct.field(UInt64)
632
+ declare id: UInt64
633
+ @Struct.field(UInt64, {optional: true})
634
+ declare count?: UInt64
635
+ }
636
+ @Struct.type('resolve_results')
637
+ export class resolve_results extends Struct {
638
+ @Struct.field(UInt64)
639
+ declare entity_id: UInt64
640
+ @Struct.field(Name)
641
+ declare entity_type: Name
642
+ @Struct.field(UInt8)
643
+ declare resolved_count: UInt8
644
+ @Struct.field(TimePoint, {optional: true})
645
+ declare new_schedule_started?: TimePoint
646
+ @Struct.field(UInt64, {optional: true})
647
+ declare entitygroup?: UInt64
648
+ @Struct.field(entity_ref, {array: true, optional: true})
649
+ declare group_members?: entity_ref[]
650
+ }
190
651
  @Struct.type('salt')
191
652
  export class salt extends Struct {
192
653
  @Struct.field(UInt64)
@@ -194,12 +655,14 @@ export namespace Types {
194
655
  }
195
656
  @Struct.type('sellgoods')
196
657
  export class sellgoods extends Struct {
658
+ @Struct.field(Name)
659
+ declare entity_type: Name
197
660
  @Struct.field(UInt64)
198
- declare ship_id: UInt64
199
- @Struct.field(UInt64)
200
- declare good_id: UInt64
201
- @Struct.field(UInt64)
202
- declare quantity: UInt64
661
+ declare id: UInt64
662
+ @Struct.field(UInt16)
663
+ declare good_id: UInt16
664
+ @Struct.field(UInt32)
665
+ declare quantity: UInt32
203
666
  }
204
667
  @Struct.type('sequence_row')
205
668
  export class sequence_row extends Struct {
@@ -208,48 +671,10 @@ export namespace Types {
208
671
  @Struct.field(UInt64)
209
672
  declare value: UInt64
210
673
  }
211
- @Struct.type('ship_state')
212
- export class ship_state extends Struct {
213
- @Struct.field(UInt32)
214
- declare energy: UInt32
215
- }
216
- @Struct.type('ship_stats')
217
- export class ship_stats extends Struct {
218
- @Struct.field(UInt32)
219
- declare capacity: UInt32
220
- @Struct.field(UInt32)
221
- declare drain: UInt32
222
- @Struct.field(UInt64)
223
- declare mass: UInt64
224
- @Struct.field(UInt64)
225
- declare maxmass: UInt64
674
+ @Struct.type('trade_stats')
675
+ export class trade_stats extends Struct {
226
676
  @Struct.field(UInt16)
227
- declare orbit: UInt16
228
- @Struct.field(UInt32)
229
- declare recharge: UInt32
230
- @Struct.field(UInt64)
231
- declare thrust: UInt64
232
- }
233
- @Struct.type('travel_plan')
234
- export class travel_plan extends Struct {
235
- @Struct.field(TimePoint)
236
- declare departure: TimePoint
237
- @Struct.field(coordinates)
238
- declare destination: coordinates
239
- @Struct.field(UInt64)
240
- declare distance: UInt64
241
- @Struct.field(UInt32)
242
- declare flighttime: UInt32
243
- @Struct.field(UInt32)
244
- declare loadtime: UInt32
245
- @Struct.field(UInt32)
246
- declare rechargetime: UInt32
247
- @Struct.field(UInt32)
248
- declare masspenalty: UInt32
249
- @Struct.field(UInt64)
250
- declare mass: UInt64
251
- @Struct.field(UInt32)
252
- declare energyusage: UInt32
677
+ declare margin: UInt16
253
678
  }
254
679
  @Struct.type('ship_row')
255
680
  export class ship_row extends Struct {
@@ -260,26 +685,43 @@ export namespace Types {
260
685
  @Struct.field('string')
261
686
  declare name: string
262
687
  @Struct.field(coordinates)
263
- declare location: coordinates
264
- @Struct.field(UInt8)
265
- declare skin: UInt8
266
- @Struct.field(UInt8)
267
- declare tier: UInt8
268
- @Struct.field(ship_state)
269
- declare state: ship_state
270
- @Struct.field(ship_stats)
271
- declare stats: ship_stats
688
+ declare coordinates: coordinates
689
+ @Struct.field(UInt32)
690
+ declare hullmass: UInt32
691
+ @Struct.field(UInt32)
692
+ declare capacity: UInt32
693
+ @Struct.field(UInt16)
694
+ declare energy: UInt16
695
+ @Struct.field(UInt32)
696
+ declare cargomass: UInt32
697
+ @Struct.field(movement_stats)
698
+ declare engines: movement_stats
699
+ @Struct.field(energy_stats)
700
+ declare generator: energy_stats
272
701
  @Struct.field(loader_stats)
273
702
  declare loaders: loader_stats
274
- @Struct.field(travel_plan, {optional: true})
275
- declare travelplan?: travel_plan
703
+ @Struct.field(trade_stats, {optional: true})
704
+ declare trade?: trade_stats
705
+ @Struct.field(extractor_stats, {optional: true})
706
+ declare extractor?: extractor_stats
707
+ @Struct.field(schedule, {optional: true})
708
+ declare schedule?: schedule
709
+ }
710
+ @Struct.type('starter_info')
711
+ export class starter_info extends Struct {
712
+ @Struct.field(UInt64)
713
+ declare balance: UInt64
714
+ @Struct.field(UInt64)
715
+ declare debt: UInt64
716
+ @Struct.field(entity_info)
717
+ declare ship: entity_info
276
718
  }
277
719
  @Struct.type('state_row')
278
720
  export class state_row extends Struct {
279
721
  @Struct.field('bool')
280
722
  declare enabled: boolean
281
- @Struct.field(UInt64)
282
- declare epoch: UInt64
723
+ @Struct.field(UInt32)
724
+ declare epoch: UInt32
283
725
  @Struct.field(UInt64)
284
726
  declare salt: UInt64
285
727
  @Struct.field(UInt32)
@@ -289,6 +731,19 @@ export namespace Types {
289
731
  @Struct.field(Checksum256)
290
732
  declare commit: Checksum256
291
733
  }
734
+ @Struct.type('supply_row')
735
+ export class supply_row extends Struct {
736
+ @Struct.field(UInt64)
737
+ declare id: UInt64
738
+ @Struct.field(coordinates)
739
+ declare coordinates: coordinates
740
+ @Struct.field(UInt64)
741
+ declare epoch: UInt64
742
+ @Struct.field(UInt16)
743
+ declare good_id: UInt16
744
+ @Struct.field(UInt16)
745
+ declare supply: UInt16
746
+ }
292
747
  @Struct.type('takeloan')
293
748
  export class takeloan extends Struct {
294
749
  @Struct.field(Name)
@@ -296,61 +751,47 @@ export namespace Types {
296
751
  @Struct.field(UInt64)
297
752
  declare amount: UInt64
298
753
  }
299
- @Struct.type('travel')
300
- export class travel extends Struct {
301
- @Struct.field(UInt64)
302
- declare id: UInt64
303
- @Struct.field(coordinates)
304
- declare destination: coordinates
305
- @Struct.field('bool')
306
- declare recharge: boolean
754
+ @Struct.type('task_results')
755
+ export class task_results extends Struct {
756
+ @Struct.field(entity_task_info, {array: true})
757
+ declare entities: entity_task_info[]
307
758
  }
308
- @Struct.type('travel_summary')
309
- export class travel_summary extends Struct {
310
- @Struct.field(ship_stats)
311
- declare stats: ship_stats
312
- @Struct.field(loader_stats)
313
- declare loaders: loader_stats
314
- @Struct.field(coordinates)
315
- declare origin: coordinates
316
- @Struct.field(coordinates)
317
- declare destination: coordinates
759
+ @Struct.type('transfer')
760
+ export class transfer extends Struct {
761
+ @Struct.field(Name)
762
+ declare source_type: Name
318
763
  @Struct.field(UInt64)
319
- declare distance: UInt64
764
+ declare source_id: UInt64
765
+ @Struct.field(Name)
766
+ declare dest_type: Name
320
767
  @Struct.field(UInt64)
321
- declare totalmass: UInt64
322
- @Struct.field(Float64)
323
- declare acceleration: Float64
324
- @Struct.field(UInt32)
325
- declare flighttime: UInt32
326
- @Struct.field(UInt32)
327
- declare energyusage: UInt32
328
- @Struct.field(UInt32)
329
- declare rechargetime: UInt32
768
+ declare dest_id: UInt64
769
+ @Struct.field(UInt16)
770
+ declare good_id: UInt16
330
771
  @Struct.field(UInt32)
331
- declare masspenalty: UInt32
332
- @Struct.field(UInt64)
333
- declare loadtime: UInt64
334
- @Struct.field(UInt64)
335
- declare time: UInt64
772
+ declare quantity: UInt32
336
773
  }
337
- @Struct.type('travelplan')
338
- export class travelplan extends Struct {
774
+ @Struct.type('travel')
775
+ export class travel extends Struct {
776
+ @Struct.field(Name)
777
+ declare entity_type: Name
339
778
  @Struct.field(UInt64)
340
779
  declare id: UInt64
341
- @Struct.field(coordinates)
342
- declare origin: coordinates
343
- @Struct.field(coordinates)
344
- declare destination: coordinates
780
+ @Struct.field(Int64)
781
+ declare x: Int64
782
+ @Struct.field(Int64)
783
+ declare y: Int64
345
784
  @Struct.field('bool')
346
785
  declare recharge: boolean
347
786
  }
348
- @Struct.type('traveltime')
349
- export class traveltime extends Struct {
787
+ @Struct.type('types_row')
788
+ export class types_row extends Struct {
350
789
  @Struct.field(UInt64)
351
790
  declare id: UInt64
352
- @Struct.field(coordinates)
353
- declare destination: coordinates
791
+ @Struct.field(entity_summary)
792
+ declare entity_summary_type: entity_summary
793
+ @Struct.field(starter_info)
794
+ declare starter_info_type: starter_info
354
795
  }
355
796
  @Struct.type('updatecredit')
356
797
  export class updatecredit extends Struct {
@@ -366,12 +807,24 @@ export namespace Types {
366
807
  @Struct.field(Int64)
367
808
  declare amount: Int64
368
809
  }
369
- @Struct.type('upgradeship')
370
- export class upgradeship extends Struct {
371
- @Struct.field(Name)
372
- declare account: Name
810
+ @Struct.type('warehouse_row')
811
+ export class warehouse_row extends Struct {
373
812
  @Struct.field(UInt64)
374
813
  declare id: UInt64
814
+ @Struct.field(Name)
815
+ declare owner: Name
816
+ @Struct.field('string')
817
+ declare name: string
818
+ @Struct.field(coordinates)
819
+ declare coordinates: coordinates
820
+ @Struct.field(UInt32)
821
+ declare capacity: UInt32
822
+ @Struct.field(UInt32)
823
+ declare cargomass: UInt32
824
+ @Struct.field(loader_stats)
825
+ declare loaders: loader_stats
826
+ @Struct.field(schedule, {optional: true})
827
+ declare schedule?: schedule
375
828
  }
376
829
  @Struct.type('wipe')
377
830
  export class wipe extends Struct {}
@@ -380,45 +833,113 @@ export namespace Types {
380
833
  }
381
834
  export const TableMap = {
382
835
  cargo: Types.cargo_row,
836
+ container: Types.container_row,
837
+ entitygroup: Types.entitygroup_row,
383
838
  location: Types.location_row,
384
839
  player: Types.player_row,
385
840
  sequence: Types.sequence_row,
386
841
  ship: Types.ship_row,
387
842
  state: Types.state_row,
843
+ supply: Types.supply_row,
844
+ types: Types.types_row,
845
+ warehouse: Types.warehouse_row,
388
846
  }
389
847
  export interface TableTypes {
390
848
  cargo: Types.cargo_row
849
+ container: Types.container_row
850
+ entitygroup: Types.entitygroup_row
391
851
  location: Types.location_row
392
852
  player: Types.player_row
393
853
  sequence: Types.sequence_row
394
854
  ship: Types.ship_row
395
855
  state: Types.state_row
856
+ supply: Types.supply_row
857
+ types: Types.types_row
858
+ warehouse: Types.warehouse_row
396
859
  }
397
860
  export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
398
861
  export type TableNames = keyof TableTypes
399
862
  export namespace ActionParams {
400
863
  export namespace Type {
864
+ export interface entity_ref {
865
+ entity_type: NameType
866
+ entity_id: UInt64Type
867
+ }
868
+ export interface task_event {
869
+ event_type: UInt8Type
870
+ owner: NameType
871
+ entity_type: NameType
872
+ entity_id: UInt64Type
873
+ task_index: UInt8Type
874
+ task: Type.task
875
+ starts_at: TimePointType
876
+ completes_at: TimePointType
877
+ new_energy?: UInt16Type
878
+ new_coordinates?: Type.coordinates
879
+ cargomass_delta: Int64Type
880
+ cargo_added: Type.cargo_item[]
881
+ cargo_removed: Type.cargo_item[]
882
+ credits?: Int64Type
883
+ }
884
+ export interface task {
885
+ type: UInt8Type
886
+ duration: UInt32Type
887
+ cancelable: UInt8Type
888
+ coordinates?: Type.coordinates
889
+ cargo: Type.cargo_item[]
890
+ entitytarget?: Type.entity_ref
891
+ entitygroup?: UInt64Type
892
+ credits?: Int64Type
893
+ energy_cost?: UInt16Type
894
+ }
401
895
  export interface coordinates {
402
896
  x: Int64Type
403
897
  y: Int64Type
898
+ z?: UInt16Type
899
+ }
900
+ export interface cargo_item {
901
+ good_id: UInt16Type
902
+ quantity: UInt32Type
903
+ unit_cost: UInt64Type
904
+ mixture?: Type.mixture_info
905
+ }
906
+ export interface mixture_info {
907
+ components: Type.mixture_component[]
908
+ }
909
+ export interface mixture_component {
910
+ good_id: UInt16Type
911
+ purity: UInt16Type
404
912
  }
405
913
  }
406
914
  export interface advance {
407
915
  reveal: string
408
916
  commit: Checksum256Type
409
917
  }
410
- export interface arrive {
411
- id: UInt64Type
918
+ export interface buycontainer {
919
+ account: NameType
920
+ ship_id: UInt64Type
921
+ name: string
412
922
  }
413
923
  export interface buygoods {
414
- ship_id: UInt64Type
415
- good_id: UInt64Type
416
- quantity: UInt64Type
924
+ entity_type: NameType
925
+ id: UInt64Type
926
+ good_id: UInt16Type
927
+ quantity: UInt32Type
417
928
  }
418
929
  export interface buyship {
419
930
  account: NameType
420
931
  name: string
421
932
  }
933
+ export interface buywarehouse {
934
+ account: NameType
935
+ ship_id: UInt64Type
936
+ name: string
937
+ }
938
+ export interface cancel {
939
+ entity_type: NameType
940
+ id: UInt64Type
941
+ count: UInt64Type
942
+ }
422
943
  export interface cleartable {
423
944
  table_name: NameType
424
945
  scope?: NameType
@@ -430,6 +951,45 @@ export namespace ActionParams {
430
951
  export interface enable {
431
952
  enabled: boolean
432
953
  }
954
+ export interface extract {
955
+ ship_id: UInt64Type
956
+ }
957
+ export interface getentities {
958
+ owner: NameType
959
+ entity_type?: NameType
960
+ }
961
+ export interface getentity {
962
+ entity_type: NameType
963
+ entity_id: UInt64Type
964
+ }
965
+ export interface getgoods {}
966
+ export interface getlocation {
967
+ x: Int64Type
968
+ y: Int64Type
969
+ }
970
+ export interface getlocdata {
971
+ x: Int64Type
972
+ y: Int64Type
973
+ }
974
+ export interface getnearby {
975
+ entity_type: NameType
976
+ entity_id: UInt64Type
977
+ recharge: boolean
978
+ }
979
+ export interface getplayer {
980
+ account: NameType
981
+ }
982
+ export interface getstarter {}
983
+ export interface getsummaries {
984
+ owner: NameType
985
+ entity_type?: NameType
986
+ }
987
+ export interface grouptravel {
988
+ entities: Type.entity_ref[]
989
+ x: Int64Type
990
+ y: Int64Type
991
+ recharge: boolean
992
+ }
433
993
  export interface hash {
434
994
  value: string
435
995
  }
@@ -439,52 +999,56 @@ export namespace ActionParams {
439
999
  export interface init {
440
1000
  seed: Checksum256Type
441
1001
  }
442
- export interface jettison {
443
- ship_id: UInt64Type
444
- good_id: UInt16Type
445
- quantity: UInt64Type
446
- }
447
1002
  export interface join {
448
1003
  account: NameType
449
1004
  }
450
- export interface marketprice {
451
- location: Type.coordinates
452
- good_id: UInt16Type
453
- }
454
- export interface marketprices {
455
- location: Type.coordinates
1005
+ export interface notify {
1006
+ event: Type.task_event
456
1007
  }
457
1008
  export interface payloan {
458
1009
  account: NameType
459
1010
  amount: UInt64Type
460
1011
  }
1012
+ export interface purgesupply {
1013
+ max_rows?: UInt64Type
1014
+ }
1015
+ export interface recharge {
1016
+ entity_type: NameType
1017
+ id: UInt64Type
1018
+ }
1019
+ export interface resolve {
1020
+ entity_type: NameType
1021
+ id: UInt64Type
1022
+ count?: UInt64Type
1023
+ }
461
1024
  export interface salt {
462
1025
  salt: UInt64Type
463
1026
  }
464
1027
  export interface sellgoods {
465
- ship_id: UInt64Type
466
- good_id: UInt64Type
467
- quantity: UInt64Type
1028
+ entity_type: NameType
1029
+ id: UInt64Type
1030
+ good_id: UInt16Type
1031
+ quantity: UInt32Type
468
1032
  }
469
1033
  export interface takeloan {
470
1034
  account: NameType
471
1035
  amount: UInt64Type
472
1036
  }
473
- export interface travel {
474
- id: UInt64Type
475
- destination: Type.coordinates
476
- recharge: boolean
1037
+ export interface transfer {
1038
+ source_type: NameType
1039
+ source_id: UInt64Type
1040
+ dest_type: NameType
1041
+ dest_id: UInt64Type
1042
+ good_id: UInt16Type
1043
+ quantity: UInt32Type
477
1044
  }
478
- export interface travelplan {
1045
+ export interface travel {
1046
+ entity_type: NameType
479
1047
  id: UInt64Type
480
- origin: Type.coordinates
481
- destination: Type.coordinates
1048
+ x: Int64Type
1049
+ y: Int64Type
482
1050
  recharge: boolean
483
1051
  }
484
- export interface traveltime {
485
- id: UInt64Type
486
- destination: Type.coordinates
487
- }
488
1052
  export interface updatecredit {
489
1053
  account: NameType
490
1054
  amount: Int64Type
@@ -493,49 +1057,71 @@ export namespace ActionParams {
493
1057
  account: NameType
494
1058
  amount: Int64Type
495
1059
  }
496
- export interface upgradeship {
497
- account: NameType
498
- id: UInt64Type
499
- }
500
1060
  export interface wipe {}
501
1061
  export interface wipesequence {}
502
1062
  }
503
1063
  export interface ActionNameParams {
504
1064
  advance: ActionParams.advance
505
- arrive: ActionParams.arrive
1065
+ buycontainer: ActionParams.buycontainer
506
1066
  buygoods: ActionParams.buygoods
507
1067
  buyship: ActionParams.buyship
1068
+ buywarehouse: ActionParams.buywarehouse
1069
+ cancel: ActionParams.cancel
508
1070
  cleartable: ActionParams.cleartable
509
1071
  commit: ActionParams.commit
510
1072
  enable: ActionParams.enable
1073
+ extract: ActionParams.extract
1074
+ getentities: ActionParams.getentities
1075
+ getentity: ActionParams.getentity
1076
+ getgoods: ActionParams.getgoods
1077
+ getlocation: ActionParams.getlocation
1078
+ getlocdata: ActionParams.getlocdata
1079
+ getnearby: ActionParams.getnearby
1080
+ getplayer: ActionParams.getplayer
1081
+ getstarter: ActionParams.getstarter
1082
+ getsummaries: ActionParams.getsummaries
1083
+ grouptravel: ActionParams.grouptravel
511
1084
  hash: ActionParams.hash
512
1085
  hash512: ActionParams.hash512
513
1086
  init: ActionParams.init
514
- jettison: ActionParams.jettison
515
1087
  join: ActionParams.join
516
- marketprice: ActionParams.marketprice
517
- marketprices: ActionParams.marketprices
1088
+ notify: ActionParams.notify
518
1089
  payloan: ActionParams.payloan
1090
+ purgesupply: ActionParams.purgesupply
1091
+ recharge: ActionParams.recharge
1092
+ resolve: ActionParams.resolve
519
1093
  salt: ActionParams.salt
520
1094
  sellgoods: ActionParams.sellgoods
521
1095
  takeloan: ActionParams.takeloan
1096
+ transfer: ActionParams.transfer
522
1097
  travel: ActionParams.travel
523
- travelplan: ActionParams.travelplan
524
- traveltime: ActionParams.traveltime
525
1098
  updatecredit: ActionParams.updatecredit
526
1099
  updatedebt: ActionParams.updatedebt
527
- upgradeship: ActionParams.upgradeship
528
1100
  wipe: ActionParams.wipe
529
1101
  wipesequence: ActionParams.wipesequence
530
1102
  }
531
1103
  export type ActionNames = keyof ActionNameParams
532
1104
  export interface ActionReturnValues {
1105
+ buygoods: Types.task_results
1106
+ cancel: Types.cancel_results
1107
+ extract: Types.task_results
1108
+ getentities: Types.entity_info[]
1109
+ getentity: Types.entity_info
1110
+ getgoods: Types.goods_info
1111
+ getlocation: Types.location_info
1112
+ getlocdata: Types.location_derived
1113
+ getnearby: Types.nearby_info
1114
+ getplayer: Types.player_info
1115
+ getstarter: Types.starter_info
1116
+ getsummaries: Types.entity_summary[]
1117
+ grouptravel: Types.task_results
533
1118
  hash: Checksum256
534
1119
  hash512: Checksum512
535
- marketprice: Types.good_price
536
- marketprices: Types.good_price[]
537
- travelplan: Types.travel_plan
538
- traveltime: Types.travel_summary
1120
+ recharge: Types.task_results
1121
+ resolve: Types.resolve_results
1122
+ sellgoods: Types.task_results
1123
+ transfer: Types.task_results
1124
+ travel: Types.task_results
539
1125
  }
540
1126
  export type ActionReturnNames = keyof ActionReturnValues
541
1127
  export class Contract extends BaseContract {