@shipload/sdk 0.7.0 → 1.0.0-beta1

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 (95) hide show
  1. package/lib/shipload.d.ts +2730 -287
  2. package/lib/shipload.js +10862 -2228
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +10434 -2170
  5. package/lib/shipload.m.js.map +1 -1
  6. package/package.json +11 -20
  7. package/src/capabilities/crafting.ts +22 -0
  8. package/src/capabilities/gathering.ts +36 -0
  9. package/src/capabilities/guards.ts +38 -0
  10. package/src/capabilities/hauling.ts +22 -0
  11. package/src/capabilities/index.ts +8 -0
  12. package/src/capabilities/loading.ts +8 -0
  13. package/src/capabilities/modules.ts +86 -0
  14. package/src/capabilities/movement.ts +29 -0
  15. package/src/capabilities/storage.ts +159 -0
  16. package/src/contracts/platform.ts +30 -30
  17. package/src/contracts/server.ts +1387 -283
  18. package/src/data/capabilities.ts +408 -0
  19. package/src/data/catalog.ts +135 -0
  20. package/src/data/categories.ts +55 -0
  21. package/src/data/colors.ts +84 -0
  22. package/src/data/entities.json +50 -0
  23. package/src/data/item-ids.ts +75 -0
  24. package/src/data/items.json +252 -0
  25. package/src/data/locations.ts +53 -0
  26. package/src/data/metadata.ts +208 -0
  27. package/src/data/nebula-adjectives.json +211 -0
  28. package/src/data/nebula-nouns.json +151 -0
  29. package/src/data/recipes-runtime.ts +65 -0
  30. package/src/data/recipes.json +878 -0
  31. package/src/data/syllables.json +1790 -0
  32. package/src/data/tiers.ts +45 -0
  33. package/src/derivation/crafting.ts +350 -0
  34. package/src/derivation/index.ts +32 -0
  35. package/src/derivation/location-size.ts +15 -0
  36. package/src/derivation/resources.ts +112 -0
  37. package/src/derivation/stats.ts +146 -0
  38. package/src/derivation/strata.ts +43 -0
  39. package/src/derivation/stratum.ts +134 -0
  40. package/src/derivation/tiers.ts +54 -0
  41. package/src/entities/cargo-utils.ts +84 -0
  42. package/src/entities/container.ts +108 -0
  43. package/src/entities/entity-inventory.ts +39 -0
  44. package/src/entities/gamestate.ts +152 -0
  45. package/src/entities/inventory-accessor.ts +42 -0
  46. package/src/entities/location.ts +60 -0
  47. package/src/entities/makers.ts +196 -0
  48. package/src/entities/player.ts +15 -0
  49. package/src/entities/ship-deploy.ts +258 -0
  50. package/src/entities/ship.ts +204 -0
  51. package/src/entities/warehouse.ts +119 -0
  52. package/src/errors.ts +100 -9
  53. package/src/format.ts +12 -0
  54. package/src/index-module.ts +317 -7
  55. package/src/managers/actions.ts +250 -0
  56. package/src/managers/base.ts +25 -0
  57. package/src/managers/context.ts +114 -0
  58. package/src/managers/entities.ts +103 -0
  59. package/src/managers/epochs.ts +47 -0
  60. package/src/managers/index.ts +9 -0
  61. package/src/managers/locations.ts +68 -0
  62. package/src/managers/players.ts +13 -0
  63. package/src/nft/description.ts +176 -0
  64. package/src/nft/deserializers.ts +83 -0
  65. package/src/nft/index.ts +2 -0
  66. package/src/resolution/describe-module.ts +166 -0
  67. package/src/resolution/display-name.ts +39 -0
  68. package/src/resolution/resolve-item.ts +358 -0
  69. package/src/scheduling/accessor.ts +82 -0
  70. package/src/{epoch.ts → scheduling/epoch.ts} +1 -1
  71. package/src/scheduling/projection.ts +463 -0
  72. package/src/scheduling/schedule.ts +179 -0
  73. package/src/shipload.ts +47 -160
  74. package/src/subscriptions/connection.ts +154 -0
  75. package/src/subscriptions/debug.ts +17 -0
  76. package/src/subscriptions/index.ts +5 -0
  77. package/src/subscriptions/manager.ts +240 -0
  78. package/src/subscriptions/mappers.ts +28 -0
  79. package/src/subscriptions/types.ts +143 -0
  80. package/src/travel/travel.ts +500 -0
  81. package/src/types/capabilities.ts +76 -0
  82. package/src/types/entity-traits.ts +69 -0
  83. package/src/types/entity.ts +39 -0
  84. package/src/types/index.ts +3 -0
  85. package/src/types.ts +140 -35
  86. package/src/{hash.ts → utils/hash.ts} +2 -2
  87. package/src/utils/system.ts +168 -0
  88. package/src/goods.ts +0 -124
  89. package/src/market.ts +0 -214
  90. package/src/rolls.ts +0 -8
  91. package/src/ship.ts +0 -36
  92. package/src/state.ts +0 -0
  93. package/src/syllables.ts +0 -1184
  94. package/src/system.ts +0 -36
  95. package/src/travel.ts +0 -259
@@ -1,17 +1,22 @@
1
1
  import type {
2
2
  Action,
3
3
  Checksum256Type,
4
+ Int32Type,
4
5
  Int64Type,
5
6
  NameType,
7
+ TimePointType,
6
8
  UInt16Type,
9
+ UInt32Type,
7
10
  UInt64Type,
11
+ UInt8Type,
8
12
  } from '@wharfkit/antelope'
9
13
  import {
10
14
  ABI,
11
15
  Blob,
16
+ Bytes,
12
17
  Checksum256,
13
18
  Checksum512,
14
- Float64,
19
+ Int32,
15
20
  Int64,
16
21
  Name,
17
22
  Struct,
@@ -24,400 +29,1320 @@ import {
24
29
  import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
25
30
  import {Contract as BaseContract} from '@wharfkit/contract'
26
31
  export const abiBlob = Blob.from(
27
- 'DmVvc2lvOjphYmkvMS4yACcHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAdidXlzaGlwAAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NARwYWlkBnVpbnQ2NAVvd25lZAZ1aW50MzIGbG9hZGVkBnVpbnQzMgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAMCaWQGdWludDE2BXByaWNlBnVpbnQ2NAZzdXBwbHkGdWludDY0BGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghqZXR0aXNvbgADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQ2NARqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyCHF1YW50aXR5BnVpbnQxNgZ0aHJ1c3QGdWludDMyDGxvY2F0aW9uX3JvdwAFAmlkBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwVlcG9jaAZ1aW50NjQHZ29vZF9pZAZ1aW50MTYGc3VwcGx5BnVpbnQxNgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB3BheWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NApwbGF5ZXJfcm93AAQFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NAhuZXR3b3J0aAVpbnQ2NARzYWx0AAEEc2FsdAZ1aW50NjQJc2VsbGdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0DHNlcXVlbmNlX3JvdwACA2tleQRuYW1lBXZhbHVlBnVpbnQ2NAhzaGlwX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nCGxvY2F0aW9uC2Nvb3JkaW5hdGVzBHNraW4FdWludDgEdGllcgV1aW50OAVzdGF0ZQpzaGlwX3N0YXRlBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0ZQABBmVuZXJneQZ1aW50MzIKc2hpcF9zdGF0cwAHCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIEbWFzcwZ1aW50NjQHbWF4bWFzcwZ1aW50NjQFb3JiaXQGdWludDE2CHJlY2hhcmdlBnVpbnQzMgZ0aHJ1c3QGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50NjQEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CHRha2Vsb2FuAAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQGdHJhdmVsAAMCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4ACQlkZXBhcnR1cmUKdGltZV9wb2ludAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50MzIIbG9hZHRpbWUGdWludDMyDHJlY2hhcmdldGltZQZ1aW50MzILbWFzc3BlbmFsdHkGdWludDMyBG1hc3MGdWludDY0C2VuZXJneXVzYWdlBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQANBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgdmbG9hdDY0CmZsaWdodHRpbWUGdWludDMyC2VuZXJneXVzYWdlBnVpbnQzMgxyZWNoYXJnZXRpbWUGdWludDMyC21hc3NwZW5hbHR5BnVpbnQzMghsb2FkdGltZQZ1aW50NjQEdGltZQZ1aW50NjQKdHJhdmVscGxhbgAEAmlkBnVpbnQ2NAZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDHVwZGF0ZWNyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQKdXBkYXRlZGVidAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQLdXBncmFkZXNoaXAAAgdhY2NvdW50BG5hbWUCaWQGdWludDY0BHdpcGUAAAx3aXBlc2VxdWVuY2UAABoAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAAAAoLqGvT4HYnV5c2hpcMYBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eXNoaXAKc3VtbWFyeTogJ0J1eSBhIG5ldyBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBzaGlwAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAACTYpezeghqZXR0aXNvbvkBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpldHRpc29uCnN1bW1hcnk6ICdKZXR0aXNvbiBDYXJnbyBmcm9tIFNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpldHRpc29uIGNhcmdvIGZyb20gdGhlIGEgc2hpcCBhbmQgcmVjYWxjdWxhdGUgdHJhdmVsIHRpbWUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAABgGhq9qQdwYXlsb2Fu3gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGF5bG9hbgpzdW1tYXJ5OiAnTG9hbiBQYXltZW50JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpNYWtlIGEgcGF5bWVudCBvbiBhbiBvdXRzdGFuZGluZyBjcmVkaXQgbG9hbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAABEtc3NBnRyYXZlbMgCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgDANLFGtc3NCnRyYXZlbHBsYW6OAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWxwbGFuCnN1bW1hcnk6ICdFc3RpbWF0ZSBhIHRyYXZlbCBwbGFuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGUgd2hhdCB0aGUgdHJhdmVsIHBsYW4gaXMgZm9yIGEgc2hpcCB0cmF2ZWxpbmcgdG8gYSBnaXZlbiBsb2NhdGlvbi4KCi0tLQCAki5Htc3NCnRyYXZlbHRpbWWMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWx0aW1lCnN1bW1hcnk6ICdFc3RpbWF0ZSBUcmF2ZWwgVGltZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXN0aW1hdGUgdGhlIGR1cmF0aW9uIG9mIGEgc2hpcCB0cmF2ZWxpbmcgd2l0aG91dCBjb21taXR0aW5nIHRvIHRoZSBhY3Rpb24uCgotLS2QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCqa1glc1nVC3VwZ3JhZGVzaGlw1wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBncmFkZXNoaXAKc3VtbWFyeTogJ1VwZ3JhZGUgYSBTaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVcGdyYWRlIGEgc2hpcCB0byB0aGUgbmV4dCB0aWVyLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tBgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAGAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAUcrdmBa+RCmdvb2RfcHJpY2WAFXK3ZgWvkQxnb29kX3ByaWNlW10AwDSxRrXNzQt0cmF2ZWxfcGxhbgCAki5Htc3NDnRyYXZlbF9zdW1tYXJ5'
32
+ 'DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiDAQlhZGRtb2R1bGUABQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D21vZHVsZV9jYXJnb19pZAZ1aW50NjQPdGFyZ2V0X2NhcmdvX2lkBnVpbnQ2NAhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAdhZHZhbmNlAAIGcmV2ZWFsBnN0cmluZwZjb21taXQLY2hlY2tzdW0yNTYFYmxlbmQAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAZpbnB1dHMMY2FyZ29faXRlbVtdBmNhbmNlbAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpjYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQxjbGFpbXN0YXJ0ZXIAAwdhY2NvdW50BG5hbWUBeAVpbnQ2NAF5BWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0CmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABkEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDE2PwhodWxsbWFzcwd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGNhcGFjaXR5B3VpbnQzMj8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdC2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAQGc291cmNlCmVudGl0eV9yZWYLZGVzdGluYXRpb24KZW50aXR5X3JlZgdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIOZ2F0aGVyZXJfc3RhdHMABAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVzcGVlZAZ1aW50MTYJZ2V0Y29uZmlnAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAADGdldGl0ZW10eXBlcwAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQLZ2V0bW9kdHlwZXMAAApnZXRtb2R1bGVzAAAJZ2V0bmVhcmJ5AAMLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQlnZXRyZWNpcGUAAQ5vdXRwdXRfaXRlbV9pZAZ1aW50MTYKZ2V0cmVjaXBlcwACC2xvd2VyX2JvdW5kBnVpbnQxNgVsaW1pdAV1aW50OApnZXRyZXNjYXRzAAALZ2V0cmVzZXJ2ZXMAAgF4BWludDY0AXkFaW50NjQMZ2V0cmVzb3VyY2VzAAAIZ2V0c2xvdHMAAApnZXRzdHJhdHVtAAMBeAVpbnQ2NAF5BWludDY0B3N0cmF0dW0GdWludDE2DGdldHN1bW1hcmllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8LZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwADCGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQxNgRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAMMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwtlcG9jaF9wcm9wcw5sb2NhdGlvbl9lcG9jaARzaXplBnVpbnQxNg5sb2NhdGlvbl9lcG9jaAADBmFjdGl2ZQRib29sBXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DWxvY2F0aW9uX2luZm8AAgZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wMbG9jYXRpb25fcm93AAYCaWQGdWludDY0BW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10Ic2NoZWR1bGUJc2NoZWR1bGU/D2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OAxtb2R1bGVfZW50cnkAAgR0eXBlBXVpbnQ4CWluc3RhbGxlZA5wYWNrZWRfbW9kdWxlPwttb2R1bGVfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgttb2R1bGVfdHlwZQV1aW50OAR0aWVyBXVpbnQ4Dm1vZHVsZXNfcmVzdWx0AAEHbW9kdWxlcw1tb2R1bGVfaW5mb1tdDm1vdmVtZW50X3N0YXRzAAIGdGhydXN0BnVpbnQzMgVkcmFpbgZ1aW50MTYLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MTYHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8JbmV4dXNfcm93AAQCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAIHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQ1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQ5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAtwbGF5ZXJfaW5mbwAGBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpzaGlwX2NvdW50BnVpbnQ2NA93YXJlaG91c2VfY291bnQGdWludDY0D2NvbnRhaW5lcl9jb3VudAZ1aW50NjQKcGxheWVyX3JvdwABBW93bmVyBG5hbWUIcmVjaGFyZ2UAAgtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQABAdpdGVtX2lkBnVpbnQxNghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAHDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10LcmVzZXJ2ZV9yb3cABAJpZAZ1aW50NjQIY29vcmRfaWQGdWludDY0B3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdCHJtbW9kdWxlAAQLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OA90YXJnZXRfY2FyZ29faWQGdWludDY0CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQhzaGlwX3JvdwASAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8GZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPwdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPwhzbG90X2RlZgABBHR5cGUFdWludDgKc3Bhd25jYXJnbwADCWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0C3NwYXducGFja2VkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAlpbnN0YWxsZWQPcGFja2VkX21vZHVsZVtdC3NwYXduc2VlZGVkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzYWx0BnVpbnQ2NAVzaGlwcwZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgZjb21taXQLY2hlY2tzdW0yNTYMc3RyYXR1bV9kYXRhAAIHc3RyYXR1bQxzdHJhdHVtX2luZm8Fc3RhdHMOcmVzb3VyY2Vfc3RhdHMMc3RyYXR1bV9pbmZvAAUHaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQIcmljaG5lc3MGdWludDE2B3Jlc2VydmUGdWludDMyC3Jlc2VydmVfbWF4BnVpbnQzMhFzdHJhdHVtX3JlbWFpbmluZwACB3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABwtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0CHF1YW50aXR5BnVpbnQzMgZ0cmF2ZWwABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABAJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcNd2FyZWhvdXNlX3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8Ed2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAAAR3cmFwAAUFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NDsAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC5wVb4mY+lMRAxjbGFpbXN0YXJ0ZXKFBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGFpbXN0YXJ0ZXIKc3VtbWFyeTogJ0RFQlVHOiBjbGFpbSBhIHN0YXJ0ZXIgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU3Bhd24gYSBwcmUta2l0dGVkIFQxIHN0YXJ0ZXIgc2hpcCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgZm9yIGEgcmVnaXN0ZXJlZCBwbGF5ZXIuIEF2YWlsYWJsZSBvbmx5IG9uIHRlc3QgZGVwbG95bWVudHMgd2hlcmUgbm8gaW4tZ2FtZSBzaGlwIGVjb25vbXkgeWV0IGV4aXN0cy4gUmVxdWlyZXMgdGhlIGNhbGxlciB0byBiZSBhIGpvaW5lZCBwbGF5ZXIgd2l0aCBubyBleGlzdGluZyBzaGlwczsgdGhlIHJlc3VsdGluZyBzaGlwIGlzIGZpdHRlZCB3aXRoIGEgZ2VuZXJhdG9yLCBlbmdpbmUsIGdhdGhlcmVyLCBjcmFmdGVyLCBhbmQgaGF1bGVyIG1vZHVsZS4AAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy7gs8tTqWzURQxjcmVhdGVlbnRpdHm/AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmVhdGVlbnRpdHkKc3VtbWFyeTogJ0RFQlVHOiBjcmVhdGUgYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAHgaq0oGZGVwbG957AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVwbG95CnN1bW1hcnk6ICdEZXBsb3kgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVbnBhY2sgYSBwYWNrZWQgZW50aXR5IGl0ZW0gKHBhY2tlZCBzaGlwIG9yIHBhY2tlZCBjb250YWluZXIpIGZyb20gY2FyZ28sIHNjaGVkdWxpbmcgYSBkZXBsb3kgdGFzayB0aGF0IGNyZWF0ZXMgdGhlIG5ldyBlbnRpdHkgYXQgdGhlIGRlcGxveWluZyBlbnRpdHkncyBsb2NhdGlvbiB1cG9uIHJlc29sdXRpb24uAIDPLk+FsEoKZGVzY2VudGl0eckDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlc2NlbnRpdHkKc3VtbWFyeTogJ0Rlc2NyaWJlIGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBzdHJpbmcgZm9yIGEgcGFja2VkIGVudGl0eSwgZGVyaXZlZCBmcm9tIHRoZSBlbnRpdHkgaXRlbSBpZCwgaHVsbCBzdGF0cywgYW5kIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBtb2R1bGUgaXRlbSBpZHMgYW5kIHN0YXRzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGRpc3BsYXkgcGFja2VkIGVudGl0aWVzLgAAAACoeMxUBmVuYWJsZd0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy6AVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlcwCAFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUuAAAAQO1IsboHcmVzb2x2ZdADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlc29sdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVzb2x2ZSBjb21wbGV0ZWQgdGFza3MgaW4gYW4gZW50aXR5J3Mgc2NoZWR1bGUsIGFwcGx5aW5nIHRoZWlyIGVmZmVjdHMgKHJlY2hhcmdlIGVuZXJneSwgdXBkYXRlIGxvY2F0aW9uLCBsb2FkL3VubG9hZCBjYXJnbykuIElmIGNvdW50IGlzIHNwZWNpZmllZCwgcmVzb2x2ZSBleGFjdGx5IHRoYXQgbWFueSB0YXNrczsgb3RoZXJ3aXNlIHJlc29sdmUgYWxsIGNvbXBsZXRlZCB0YXNrcy4gRmFpbHMgaWYgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlZCB0YXNrcy4AAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAAAAkKPBBHNhbHTYAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAGXXoMlNxQpzcGF3bmNhcmdvxQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25jYXJnbwpzdW1tYXJ5OiAnREVCVUc6IHNwYXduIGNhcmdvIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCSgsjUyU3FC3NwYXducGFja2Vk5wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25wYWNrZWQKc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBhIHBhY2tlZCBlbnRpdHkgd2l0aCBpbnN0YWxsZWQgbW9kdWxlcyBvbiBhbiBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AkkpK4clNxQtzcGF3bnNlZWRlZM0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNwYXduc2VlZGVkCnN1bW1hcnk6ICdERUJVRzogc3Bhd24gc2VlZGVkIGNhcmdvIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAAABQr+EEd2FycJ8DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdhcnAKc3VtbWFyeTogJ1dhcnAgdG8gYSBkZXN0aW5hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFudGx5IHRlbGVwb3J0IGFuIGVudGl0eSB0byBhIGRlc3RpbmF0aW9uIHN5c3RlbS4gUmVxdWlyZXMgd2FycCBjYXBhYmlsaXR5LCBmdWxsIGVuZXJneSwgZW1wdHkgY2FyZ28sIGFuZCBhbiBlbXB0eSBzY2hlZHVsZS4gVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgYSB2YWxpZCBzeXN0ZW0gd2l0aGluIHdhcnAgcmFuZ2UuIFJlc29sdmVzIGltbWVkaWF0ZWx5IGFzIGEgemVyby1kdXJhdGlvbiB0YXNrLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAABQzeUEd3JhcP4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdyYXAKc3VtbWFyeTogJ1dyYXAgY2FyZ28gaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCldyYXAgYSBxdWFudGl0eSBvZiBjYXJnbyBmcm9tIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIHRoZSBzcGVjaWZpZWQgb3duZXIuIFRoZSBlbnRpdHkgbXVzdCBiZSBhdCBhIG5leHVzLCBoYXZlIGxvYWRlcnMsIGFuZCBjb250YWluIGVub3VnaCBvZiB0aGUgcmVxdWVzdGVkIGNhcmdvLiBTY2hlZHVsZXMgYSB3cmFwIHRhc2sgdGhhdCwgb24gcmVzb2x1dGlvbiwgcmVtb3ZlcyB0aGUgY2FyZ28gZnJvbSB0aGUgZW50aXR5IGFuZCBtaW50cyB0aGUgTkZUIHVzaW5nIHRoZSB0ZW1wbGF0ZSBjb25maWd1cmVkIGZvciB0aGF0IGl0ZW0gaWQuDQAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAuGo6kydFA2k2NAAADWNvbnRhaW5lcl9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAAACTumwQjQNpNjQAAAxsb2NhdGlvbl9yb3cAAAAAAKy7mgNpNjQAAAluZXh1c19yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAFBY06au4QNpNjQAAA13YXJlaG91c2Vfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAACQAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mb4BV9Vmq7LJiC2VudW1fcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AAF3T5TWzYg5uZnRpbmZvX3Jlc3VsdAAAuMqbWLNiC3BsYXllcl9pbmZvAABQ1SF1s2IOcmVjaXBlc19yZXN1bHQAAFbVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAzgZhdbNiC2VudW1fcmVzdWx0ALDaV2F1s2ITc3RyYXR1bV9yZW1haW5pbmdbXYAVuppidbNiEHJlc291cmNlc19yZXN1bHQAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cwAAAAAAUM3lDHRhc2tfcmVzdWx0cw=='
28
33
  )
29
34
  export const abi = ABI.from(abiBlob)
30
35
  export namespace Types {
36
+ @Struct.type('addmodule')
37
+ export class addmodule extends Struct {
38
+ @Struct.field(Name)
39
+ declare entity_type: Name
40
+ @Struct.field(UInt64)
41
+ declare entity_id: UInt64
42
+ @Struct.field(UInt8)
43
+ declare module_index: UInt8
44
+ @Struct.field(UInt64)
45
+ declare module_cargo_id: UInt64
46
+ @Struct.field(UInt64)
47
+ declare target_cargo_id: UInt64
48
+ }
49
+ @Struct.type('addnexus')
50
+ export class addnexus extends Struct {
51
+ @Struct.field('string')
52
+ declare nexus_name: string
53
+ @Struct.field(Int64)
54
+ declare x: Int64
55
+ @Struct.field(Int64)
56
+ declare y: Int64
57
+ }
31
58
  @Struct.type('advance')
32
59
  export class advance extends Struct {
33
60
  @Struct.field('string')
34
- reveal!: string
61
+ declare reveal: string
35
62
  @Struct.field(Checksum256)
36
- commit!: Checksum256
63
+ declare commit: Checksum256
64
+ }
65
+ @Struct.type('packed_module')
66
+ export class packed_module extends Struct {
67
+ @Struct.field(UInt16)
68
+ declare item_id: UInt16
69
+ @Struct.field(UInt64)
70
+ declare stats: UInt64
37
71
  }
38
- @Struct.type('arrive')
39
- export class arrive extends Struct {
72
+ @Struct.type('module_entry')
73
+ export class module_entry extends Struct {
74
+ @Struct.field(UInt8)
75
+ declare type: UInt8
76
+ @Struct.field(packed_module, {optional: true})
77
+ declare installed?: packed_module
78
+ }
79
+ @Struct.type('cargo_item')
80
+ export class cargo_item extends Struct {
81
+ @Struct.field(UInt16)
82
+ declare item_id: UInt16
83
+ @Struct.field(UInt32)
84
+ declare quantity: UInt32
40
85
  @Struct.field(UInt64)
41
- id!: UInt64
86
+ declare stats: UInt64
87
+ @Struct.field(module_entry, {array: true})
88
+ declare modules: module_entry[]
42
89
  }
43
- @Struct.type('buygoods')
44
- export class buygoods extends Struct {
90
+ @Struct.type('blend')
91
+ export class blend extends Struct {
92
+ @Struct.field(Name)
93
+ declare entity_type: Name
45
94
  @Struct.field(UInt64)
46
- ship_id!: UInt64
95
+ declare id: UInt64
96
+ @Struct.field(cargo_item, {array: true})
97
+ declare inputs: cargo_item[]
98
+ }
99
+ @Struct.type('cancel')
100
+ export class cancel extends Struct {
101
+ @Struct.field(Name)
102
+ declare entity_type: Name
47
103
  @Struct.field(UInt64)
48
- good_id!: UInt64
104
+ declare id: UInt64
49
105
  @Struct.field(UInt64)
50
- quantity!: UInt64
106
+ declare count: UInt64
51
107
  }
52
- @Struct.type('buyship')
53
- export class buyship extends Struct {
108
+ @Struct.type('entity_ref')
109
+ export class entity_ref extends Struct {
54
110
  @Struct.field(Name)
55
- account!: Name
56
- @Struct.field('string')
57
- name!: string
111
+ declare entity_type: Name
112
+ @Struct.field(UInt64)
113
+ declare entity_id: UInt64
114
+ }
115
+ @Struct.type('cancel_results')
116
+ export class cancel_results extends Struct {
117
+ @Struct.field(UInt64)
118
+ declare entity_id: UInt64
119
+ @Struct.field(Name)
120
+ declare entity_type: Name
121
+ @Struct.field(UInt8)
122
+ declare cancelled_count: UInt8
123
+ @Struct.field(TimePoint, {optional: true})
124
+ declare schedule_started?: TimePoint
125
+ @Struct.field(UInt64, {optional: true})
126
+ declare entitygroup?: UInt64
127
+ @Struct.field(entity_ref, {array: true, optional: true})
128
+ declare group_members?: entity_ref[]
58
129
  }
59
130
  @Struct.type('cargo_row')
60
131
  export class cargo_row extends Struct {
61
132
  @Struct.field(UInt64)
62
- id!: UInt64
133
+ declare id: UInt64
63
134
  @Struct.field(UInt64)
64
- ship_id!: UInt64
135
+ declare entity_id: UInt64
65
136
  @Struct.field(UInt64)
66
- good_id!: UInt64
137
+ declare item_id: UInt64
67
138
  @Struct.field(UInt64)
68
- paid!: UInt64
69
- @Struct.field(UInt32)
70
- owned!: UInt32
71
- @Struct.field(UInt32)
72
- loaded!: UInt32
139
+ declare quantity: UInt64
140
+ @Struct.field(UInt64)
141
+ declare stats: UInt64
142
+ @Struct.field(module_entry, {array: true})
143
+ declare modules: module_entry[]
144
+ }
145
+ @Struct.type('claimstarter')
146
+ export class claimstarter extends Struct {
147
+ @Struct.field(Name)
148
+ declare account: Name
149
+ @Struct.field(Int64)
150
+ declare x: Int64
151
+ @Struct.field(Int64)
152
+ declare y: Int64
153
+ }
154
+ @Struct.type('cleanrsvp')
155
+ export class cleanrsvp extends Struct {
156
+ @Struct.field(UInt64)
157
+ declare epoch: UInt64
158
+ @Struct.field(UInt64)
159
+ declare max_rows: UInt64
73
160
  }
74
161
  @Struct.type('cleartable')
75
162
  export class cleartable extends Struct {
76
163
  @Struct.field(Name)
77
- table_name!: Name
164
+ declare table_name: Name
78
165
  @Struct.field(Name, {optional: true})
79
- scope?: Name
166
+ declare scope?: Name
80
167
  @Struct.field(UInt64, {optional: true})
81
- max_rows?: UInt64
168
+ declare max_rows?: UInt64
82
169
  }
83
170
  @Struct.type('commit')
84
171
  export class commit extends Struct {
85
172
  @Struct.field(Checksum256)
86
- commit!: Checksum256
173
+ declare commit: Checksum256
174
+ }
175
+ @Struct.type('entity_defaults')
176
+ export class entity_defaults extends Struct {
177
+ @Struct.field(UInt16)
178
+ declare warehouse_z: UInt16
179
+ @Struct.field(UInt16)
180
+ declare container_z: UInt16
181
+ }
182
+ @Struct.type('item_def')
183
+ export class item_def extends Struct {
184
+ @Struct.field(UInt16)
185
+ declare id: UInt16
186
+ @Struct.field(UInt32)
187
+ declare mass: UInt32
188
+ @Struct.field(UInt8)
189
+ declare type: UInt8
190
+ @Struct.field(UInt8)
191
+ declare subtype: UInt8
192
+ @Struct.field(UInt8)
193
+ declare tier: UInt8
194
+ }
195
+ @Struct.type('game_config')
196
+ export class game_config extends Struct {
197
+ @Struct.field(UInt32)
198
+ declare version: UInt32
199
+ @Struct.field(entity_defaults)
200
+ declare defaults: entity_defaults
201
+ @Struct.field(item_def, {array: true})
202
+ declare items: item_def[]
203
+ }
204
+ @Struct.type('configlog')
205
+ export class configlog extends Struct {
206
+ @Struct.field(game_config)
207
+ declare config: game_config
87
208
  }
88
209
  @Struct.type('coordinates')
89
210
  export class coordinates extends Struct {
90
211
  @Struct.field(Int64)
91
- x!: Int64
212
+ declare x: Int64
213
+ @Struct.field(Int64)
214
+ declare y: Int64
215
+ @Struct.field(UInt16, {optional: true})
216
+ declare z?: UInt16
217
+ }
218
+ @Struct.type('task')
219
+ export class task extends Struct {
220
+ @Struct.field(UInt8)
221
+ declare type: UInt8
222
+ @Struct.field(UInt32)
223
+ declare duration: UInt32
224
+ @Struct.field(UInt8)
225
+ declare cancelable: UInt8
226
+ @Struct.field(coordinates, {optional: true})
227
+ declare coordinates?: coordinates
228
+ @Struct.field(cargo_item, {array: true})
229
+ declare cargo: cargo_item[]
230
+ @Struct.field(entity_ref, {optional: true})
231
+ declare entitytarget?: entity_ref
232
+ @Struct.field(UInt64, {optional: true})
233
+ declare entitygroup?: UInt64
234
+ @Struct.field(UInt16, {optional: true})
235
+ declare energy_cost?: UInt16
236
+ }
237
+ @Struct.type('schedule')
238
+ export class schedule extends Struct {
239
+ @Struct.field(TimePoint)
240
+ declare started: TimePoint
241
+ @Struct.field(task, {array: true})
242
+ declare tasks: task[]
243
+ }
244
+ @Struct.type('container_row')
245
+ export class container_row extends Struct {
246
+ @Struct.field(UInt64)
247
+ declare id: UInt64
248
+ @Struct.field(Name)
249
+ declare owner: Name
250
+ @Struct.field('string')
251
+ declare name: string
252
+ @Struct.field(coordinates)
253
+ declare coordinates: coordinates
254
+ @Struct.field(UInt32)
255
+ declare hullmass: UInt32
256
+ @Struct.field(UInt32)
257
+ declare capacity: UInt32
258
+ @Struct.field(UInt32)
259
+ declare cargomass: UInt32
260
+ @Struct.field(schedule, {optional: true})
261
+ declare schedule?: schedule
262
+ }
263
+ @Struct.type('craft')
264
+ export class craft extends Struct {
265
+ @Struct.field(Name)
266
+ declare entity_type: Name
267
+ @Struct.field(UInt64)
268
+ declare id: UInt64
269
+ @Struct.field(UInt16)
270
+ declare recipe_id: UInt16
271
+ @Struct.field(UInt32)
272
+ declare quantity: UInt32
273
+ @Struct.field(cargo_item, {array: true})
274
+ declare inputs: cargo_item[]
275
+ }
276
+ @Struct.type('crafter_stats')
277
+ export class crafter_stats extends Struct {
278
+ @Struct.field(UInt16)
279
+ declare speed: UInt16
280
+ @Struct.field(UInt16)
281
+ declare drain: UInt16
282
+ }
283
+ @Struct.type('createentity')
284
+ export class createentity extends Struct {
285
+ @Struct.field(Name)
286
+ declare owner: Name
287
+ @Struct.field(Name)
288
+ declare entity_type: Name
289
+ @Struct.field('string')
290
+ declare entity_name: string
291
+ @Struct.field(Int64)
292
+ declare x: Int64
92
293
  @Struct.field(Int64)
93
- y!: Int64
294
+ declare y: Int64
295
+ }
296
+ @Struct.type('deploy')
297
+ export class deploy extends Struct {
298
+ @Struct.field(Name)
299
+ declare entity_type: Name
300
+ @Struct.field(UInt64)
301
+ declare id: UInt64
302
+ @Struct.field(UInt16)
303
+ declare packed_item_id: UInt16
304
+ @Struct.field(UInt64)
305
+ declare stats: UInt64
306
+ }
307
+ @Struct.type('descentity')
308
+ export class descentity extends Struct {
309
+ @Struct.field(UInt16)
310
+ declare item_id: UInt16
311
+ @Struct.field(UInt64)
312
+ declare hull_stats: UInt64
313
+ @Struct.field(UInt16, {array: true})
314
+ declare module_items: UInt16[]
315
+ @Struct.field(UInt64, {array: true})
316
+ declare module_stats: UInt64[]
94
317
  }
95
318
  @Struct.type('enable')
96
319
  export class enable extends Struct {
97
320
  @Struct.field('bool')
98
- enabled!: boolean
321
+ declare enabled: boolean
322
+ }
323
+ @Struct.type('energy_stats')
324
+ export class energy_stats extends Struct {
325
+ @Struct.field(UInt16)
326
+ declare capacity: UInt16
327
+ @Struct.field(UInt16)
328
+ declare recharge: UInt16
329
+ }
330
+ @Struct.type('entity_current_state')
331
+ export class entity_current_state extends Struct {
332
+ @Struct.field(coordinates)
333
+ declare coordinates: coordinates
334
+ @Struct.field(UInt16)
335
+ declare energy: UInt16
336
+ }
337
+ @Struct.type('loader_stats')
338
+ export class loader_stats extends Struct {
339
+ @Struct.field(UInt32)
340
+ declare mass: UInt32
341
+ @Struct.field(UInt16)
342
+ declare thrust: UInt16
343
+ @Struct.field(UInt8)
344
+ declare quantity: UInt8
345
+ }
346
+ @Struct.type('movement_stats')
347
+ export class movement_stats extends Struct {
348
+ @Struct.field(UInt32)
349
+ declare thrust: UInt32
350
+ @Struct.field(UInt16)
351
+ declare drain: UInt16
352
+ }
353
+ @Struct.type('gatherer_stats')
354
+ export class gatherer_stats extends Struct {
355
+ @Struct.field(UInt16)
356
+ declare yield: UInt16
357
+ @Struct.field(UInt16)
358
+ declare drain: UInt16
359
+ @Struct.field(UInt16)
360
+ declare depth: UInt16
361
+ @Struct.field(UInt16)
362
+ declare speed: UInt16
363
+ }
364
+ @Struct.type('hauler_stats')
365
+ export class hauler_stats extends Struct {
366
+ @Struct.field(UInt8)
367
+ declare capacity: UInt8
368
+ @Struct.field(UInt16)
369
+ declare efficiency: UInt16
370
+ @Struct.field(UInt16)
371
+ declare drain: UInt16
372
+ }
373
+ @Struct.type('warp_stats')
374
+ export class warp_stats extends Struct {
375
+ @Struct.field(UInt32)
376
+ declare range: UInt32
377
+ }
378
+ @Struct.type('entity_info')
379
+ export class entity_info extends Struct {
380
+ @Struct.field(Name)
381
+ declare type: Name
382
+ @Struct.field(UInt64)
383
+ declare id: UInt64
384
+ @Struct.field(Name)
385
+ declare owner: Name
386
+ @Struct.field('string')
387
+ declare entity_name: string
388
+ @Struct.field(coordinates)
389
+ declare coordinates: coordinates
390
+ @Struct.field(UInt32)
391
+ declare cargomass: UInt32
392
+ @Struct.field(cargo_item, {array: true})
393
+ declare cargo: cargo_item[]
394
+ @Struct.field(loader_stats, {optional: true})
395
+ declare loaders?: loader_stats
396
+ @Struct.field(module_entry, {array: true})
397
+ declare modules: module_entry[]
398
+ @Struct.field(UInt16, {optional: true})
399
+ declare energy?: UInt16
400
+ @Struct.field(UInt32, {optional: true})
401
+ declare hullmass?: UInt32
402
+ @Struct.field(movement_stats, {optional: true})
403
+ declare engines?: movement_stats
404
+ @Struct.field(energy_stats, {optional: true})
405
+ declare generator?: energy_stats
406
+ @Struct.field(UInt32, {optional: true})
407
+ declare capacity?: UInt32
408
+ @Struct.field(gatherer_stats, {optional: true})
409
+ declare gatherer?: gatherer_stats
410
+ @Struct.field(hauler_stats, {optional: true})
411
+ declare hauler?: hauler_stats
412
+ @Struct.field(warp_stats, {optional: true})
413
+ declare warp?: warp_stats
414
+ @Struct.field(crafter_stats, {optional: true})
415
+ declare crafter?: crafter_stats
416
+ @Struct.field('bool')
417
+ declare is_idle: boolean
418
+ @Struct.field(task, {optional: true})
419
+ declare current_task?: task
420
+ @Struct.field(UInt32)
421
+ declare current_task_elapsed: UInt32
422
+ @Struct.field(UInt32)
423
+ declare current_task_remaining: UInt32
424
+ @Struct.field(task, {array: true})
425
+ declare pending_tasks: task[]
426
+ @Struct.field(TimePoint, {optional: true})
427
+ declare idle_at?: TimePoint
428
+ @Struct.field(schedule, {optional: true})
429
+ declare schedule?: schedule
430
+ }
431
+ @Struct.type('slot_def')
432
+ export class slot_def extends Struct {
433
+ @Struct.field(UInt8)
434
+ declare type: UInt8
435
+ }
436
+ @Struct.type('entity_layout')
437
+ export class entity_layout extends Struct {
438
+ @Struct.field(UInt16)
439
+ declare entity_item_id: UInt16
440
+ @Struct.field(slot_def, {array: true})
441
+ declare slots: slot_def[]
442
+ }
443
+ @Struct.type('entity_layouts_result')
444
+ export class entity_layouts_result extends Struct {
445
+ @Struct.field(entity_layout, {array: true})
446
+ declare entities: entity_layout[]
447
+ }
448
+ @Struct.type('entity_summary')
449
+ export class entity_summary extends Struct {
450
+ @Struct.field(Name)
451
+ declare type: Name
452
+ @Struct.field(UInt64)
453
+ declare id: UInt64
454
+ @Struct.field(Name)
455
+ declare owner: Name
456
+ @Struct.field('string')
457
+ declare entity_name: string
458
+ @Struct.field(coordinates)
459
+ declare coordinates: coordinates
460
+ @Struct.field('bool')
461
+ declare is_idle: boolean
462
+ @Struct.field(UInt32)
463
+ declare resolved_count: UInt32
464
+ @Struct.field(UInt32)
465
+ declare pending_count: UInt32
99
466
  }
100
- @Struct.type('good_price')
101
- export class good_price extends Struct {
467
+ @Struct.type('entity_task_info')
468
+ export class entity_task_info extends Struct {
469
+ @Struct.field(UInt64)
470
+ declare entity_id: UInt64
471
+ @Struct.field(Name)
472
+ declare entity_type: Name
473
+ @Struct.field(UInt8)
474
+ declare task_count: UInt8
475
+ @Struct.field(TimePoint)
476
+ declare schedule_started: TimePoint
477
+ }
478
+ @Struct.type('entitygroup_row')
479
+ export class entitygroup_row extends Struct {
480
+ @Struct.field(UInt64)
481
+ declare id: UInt64
482
+ @Struct.field(entity_ref, {array: true})
483
+ declare participants: entity_ref[]
484
+ }
485
+ @Struct.type('enum_member')
486
+ export class enum_member extends Struct {
487
+ @Struct.field(UInt8)
488
+ declare value: UInt8
489
+ @Struct.field('string')
490
+ declare name: string
491
+ }
492
+ @Struct.type('enum_result')
493
+ export class enum_result extends Struct {
494
+ @Struct.field(enum_member, {array: true})
495
+ declare members: enum_member[]
496
+ }
497
+ @Struct.type('gather')
498
+ export class gather extends Struct {
499
+ @Struct.field(entity_ref)
500
+ declare source: entity_ref
501
+ @Struct.field(entity_ref)
502
+ declare destination: entity_ref
102
503
  @Struct.field(UInt16)
103
- id!: UInt16
504
+ declare stratum: UInt16
505
+ @Struct.field(UInt32)
506
+ declare quantity: UInt32
507
+ }
508
+ @Struct.type('getconfig')
509
+ export class getconfig extends Struct {}
510
+ @Struct.type('getentities')
511
+ export class getentities extends Struct {
512
+ @Struct.field(Name)
513
+ declare owner: Name
514
+ @Struct.field(Name, {optional: true})
515
+ declare entity_type?: Name
516
+ }
517
+ @Struct.type('getentity')
518
+ export class getentity extends Struct {
519
+ @Struct.field(Name)
520
+ declare entity_type: Name
104
521
  @Struct.field(UInt64)
105
- price!: UInt64
522
+ declare entity_id: UInt64
523
+ }
524
+ @Struct.type('getitemdata')
525
+ export class getitemdata extends Struct {}
526
+ @Struct.type('getitemids')
527
+ export class getitemids extends Struct {}
528
+ @Struct.type('getitems')
529
+ export class getitems extends Struct {}
530
+ @Struct.type('getitemtypes')
531
+ export class getitemtypes extends Struct {}
532
+ @Struct.type('getlocation')
533
+ export class getlocation extends Struct {
534
+ @Struct.field(Int64)
535
+ declare x: Int64
536
+ @Struct.field(Int64)
537
+ declare y: Int64
538
+ }
539
+ @Struct.type('getlocdata')
540
+ export class getlocdata extends Struct {
541
+ @Struct.field(Int64)
542
+ declare x: Int64
543
+ @Struct.field(Int64)
544
+ declare y: Int64
545
+ }
546
+ @Struct.type('getmodtypes')
547
+ export class getmodtypes extends Struct {}
548
+ @Struct.type('getmodules')
549
+ export class getmodules extends Struct {}
550
+ @Struct.type('getnearby')
551
+ export class getnearby extends Struct {
552
+ @Struct.field(Name)
553
+ declare entity_type: Name
106
554
  @Struct.field(UInt64)
107
- supply!: UInt64
555
+ declare entity_id: UInt64
556
+ @Struct.field('bool')
557
+ declare recharge: boolean
558
+ }
559
+ @Struct.type('getnftinfo')
560
+ export class getnftinfo extends Struct {}
561
+ @Struct.type('getplayer')
562
+ export class getplayer extends Struct {
563
+ @Struct.field(Name)
564
+ declare account: Name
565
+ }
566
+ @Struct.type('getrecipe')
567
+ export class getrecipe extends Struct {
568
+ @Struct.field(UInt16)
569
+ declare output_item_id: UInt16
570
+ }
571
+ @Struct.type('getrecipes')
572
+ export class getrecipes extends Struct {
573
+ @Struct.field(UInt16)
574
+ declare lower_bound: UInt16
575
+ @Struct.field(UInt8)
576
+ declare limit: UInt8
577
+ }
578
+ @Struct.type('getrescats')
579
+ export class getrescats extends Struct {}
580
+ @Struct.type('getreserves')
581
+ export class getreserves extends Struct {
582
+ @Struct.field(Int64)
583
+ declare x: Int64
584
+ @Struct.field(Int64)
585
+ declare y: Int64
586
+ }
587
+ @Struct.type('getresources')
588
+ export class getresources extends Struct {}
589
+ @Struct.type('getslots')
590
+ export class getslots extends Struct {}
591
+ @Struct.type('getstratum')
592
+ export class getstratum extends Struct {
593
+ @Struct.field(Int64)
594
+ declare x: Int64
595
+ @Struct.field(Int64)
596
+ declare y: Int64
597
+ @Struct.field(UInt16)
598
+ declare stratum: UInt16
599
+ }
600
+ @Struct.type('getsummaries')
601
+ export class getsummaries extends Struct {
602
+ @Struct.field(Name)
603
+ declare owner: Name
604
+ @Struct.field(Name, {optional: true})
605
+ declare entity_type?: Name
606
+ }
607
+ @Struct.type('grouptravel')
608
+ export class grouptravel extends Struct {
609
+ @Struct.field(entity_ref, {array: true})
610
+ declare entities: entity_ref[]
611
+ @Struct.field(Int64)
612
+ declare x: Int64
613
+ @Struct.field(Int64)
614
+ declare y: Int64
615
+ @Struct.field('bool')
616
+ declare recharge: boolean
108
617
  }
109
618
  @Struct.type('hash')
110
619
  export class hash extends Struct {
111
620
  @Struct.field('string')
112
- value!: string
621
+ declare value: string
113
622
  }
114
623
  @Struct.type('hash512')
115
624
  export class hash512 extends Struct {
116
625
  @Struct.field('string')
117
- value!: string
626
+ declare value: string
118
627
  }
119
628
  @Struct.type('init')
120
629
  export class init extends Struct {
121
630
  @Struct.field(Checksum256)
122
- seed!: Checksum256
631
+ declare seed: Checksum256
123
632
  }
124
- @Struct.type('jettison')
125
- export class jettison extends Struct {
126
- @Struct.field(UInt64)
127
- ship_id!: UInt64
633
+ @Struct.type('item_id_pair')
634
+ export class item_id_pair extends Struct {
128
635
  @Struct.field(UInt16)
129
- good_id!: UInt16
130
- @Struct.field(UInt64)
131
- quantity!: UInt64
636
+ declare id: UInt16
637
+ @Struct.field('string')
638
+ declare name: string
639
+ }
640
+ @Struct.type('item_ids_result')
641
+ export class item_ids_result extends Struct {
642
+ @Struct.field(item_id_pair, {array: true})
643
+ declare items: item_id_pair[]
644
+ }
645
+ @Struct.type('recipe_input')
646
+ export class recipe_input extends Struct {
647
+ @Struct.field(UInt16)
648
+ declare item_id: UInt16
649
+ @Struct.field(UInt8)
650
+ declare category: UInt8
651
+ @Struct.field(UInt8)
652
+ declare tier: UInt8
653
+ @Struct.field(UInt32)
654
+ declare quantity: UInt32
655
+ }
656
+ @Struct.type('stat_source')
657
+ export class stat_source extends Struct {
658
+ @Struct.field(UInt8)
659
+ declare input_index: UInt8
660
+ @Struct.field(UInt8)
661
+ declare input_stat_index: UInt8
662
+ }
663
+ @Struct.type('stat_slot_response')
664
+ export class stat_slot_response extends Struct {
665
+ @Struct.field(stat_source, {array: true})
666
+ declare sources: stat_source[]
667
+ }
668
+ @Struct.type('recipe_item_info')
669
+ export class recipe_item_info extends Struct {
670
+ @Struct.field(UInt16)
671
+ declare id: UInt16
672
+ @Struct.field(UInt32)
673
+ declare mass: UInt32
674
+ }
675
+ @Struct.type('recipe_response')
676
+ export class recipe_response extends Struct {
677
+ @Struct.field(UInt16)
678
+ declare output_item_id: UInt16
679
+ @Struct.field(UInt32)
680
+ declare output_mass: UInt32
681
+ @Struct.field(recipe_input, {array: true})
682
+ declare inputs: recipe_input[]
683
+ @Struct.field(stat_slot_response, {array: true})
684
+ declare stat_slots: stat_slot_response[]
685
+ @Struct.field(Bytes)
686
+ declare blend_weights: Bytes
687
+ @Struct.field(recipe_item_info)
688
+ declare output_item: recipe_item_info
689
+ @Struct.field(recipe_item_info, {array: true})
690
+ declare input_items: recipe_item_info[]
691
+ }
692
+ @Struct.type('recipes_result')
693
+ export class recipes_result extends Struct {
694
+ @Struct.field(recipe_response, {array: true})
695
+ declare recipes: recipe_response[]
696
+ }
697
+ @Struct.type('itemdata_result')
698
+ export class itemdata_result extends Struct {
699
+ @Struct.field(item_def, {array: true})
700
+ declare items: item_def[]
701
+ @Struct.field(recipes_result)
702
+ declare recipes: recipes_result
703
+ }
704
+ @Struct.type('items_info')
705
+ export class items_info extends Struct {
706
+ @Struct.field(item_def, {array: true})
707
+ declare items: item_def[]
132
708
  }
133
709
  @Struct.type('join')
134
710
  export class join extends Struct {
135
711
  @Struct.field(Name)
136
- account!: Name
712
+ declare account: Name
137
713
  }
138
- @Struct.type('loader_stats')
139
- export class loader_stats extends Struct {
140
- @Struct.field(UInt32)
141
- mass!: UInt32
714
+ @Struct.type('location_static')
715
+ export class location_static extends Struct {
716
+ @Struct.field(coordinates)
717
+ declare coords: coordinates
718
+ @Struct.field(UInt8)
719
+ declare type: UInt8
720
+ @Struct.field(UInt8)
721
+ declare subtype: UInt8
722
+ @Struct.field(UInt8)
723
+ declare seed0: UInt8
724
+ @Struct.field(UInt8)
725
+ declare seed1: UInt8
726
+ }
727
+ @Struct.type('location_epoch')
728
+ export class location_epoch extends Struct {
729
+ @Struct.field('bool')
730
+ declare active: boolean
731
+ @Struct.field(UInt8)
732
+ declare seed0: UInt8
733
+ @Struct.field(UInt8)
734
+ declare seed1: UInt8
735
+ }
736
+ @Struct.type('location_derived')
737
+ export class location_derived extends Struct {
738
+ @Struct.field(location_static)
739
+ declare static_props: location_static
740
+ @Struct.field(location_epoch)
741
+ declare epoch_props: location_epoch
142
742
  @Struct.field(UInt16)
143
- quantity!: UInt16
144
- @Struct.field(UInt32)
145
- thrust!: UInt32
743
+ declare size: UInt16
744
+ }
745
+ @Struct.type('location_info')
746
+ export class location_info extends Struct {
747
+ @Struct.field(coordinates)
748
+ declare coords: coordinates
749
+ @Struct.field('bool')
750
+ declare is_system: boolean
146
751
  }
147
752
  @Struct.type('location_row')
148
753
  export class location_row extends Struct {
149
754
  @Struct.field(UInt64)
150
- id!: UInt64
755
+ declare id: UInt64
756
+ @Struct.field(Name)
757
+ declare owner: Name
151
758
  @Struct.field(coordinates)
152
- coordinates!: coordinates
153
- @Struct.field(UInt64)
154
- epoch!: UInt64
759
+ declare coordinates: coordinates
760
+ @Struct.field(UInt32)
761
+ declare cargomass: UInt32
762
+ @Struct.field(cargo_item, {array: true})
763
+ declare cargo: cargo_item[]
764
+ @Struct.field(schedule, {optional: true})
765
+ declare schedule?: schedule
766
+ }
767
+ @Struct.type('module_info')
768
+ export class module_info extends Struct {
155
769
  @Struct.field(UInt16)
156
- good_id!: UInt16
770
+ declare id: UInt16
771
+ @Struct.field(UInt32)
772
+ declare mass: UInt32
773
+ @Struct.field(UInt8)
774
+ declare module_type: UInt8
775
+ @Struct.field(UInt8)
776
+ declare tier: UInt8
777
+ }
778
+ @Struct.type('modules_result')
779
+ export class modules_result extends Struct {
780
+ @Struct.field(module_info, {array: true})
781
+ declare modules: module_info[]
782
+ }
783
+ @Struct.type('nearby_system')
784
+ export class nearby_system extends Struct {
785
+ @Struct.field(UInt64)
786
+ declare distance: UInt64
787
+ @Struct.field(UInt64)
788
+ declare energy_cost: UInt64
789
+ @Struct.field(UInt32)
790
+ declare flight_time: UInt32
791
+ @Struct.field(location_info)
792
+ declare location: location_info
793
+ }
794
+ @Struct.type('nearby_info')
795
+ export class nearby_info extends Struct {
796
+ @Struct.field('bool')
797
+ declare can_travel: boolean
798
+ @Struct.field(entity_current_state)
799
+ declare current: entity_current_state
800
+ @Struct.field(entity_current_state)
801
+ declare projected: entity_current_state
157
802
  @Struct.field(UInt16)
158
- supply!: UInt16
803
+ declare max_energy: UInt16
804
+ @Struct.field(nearby_system, {array: true})
805
+ declare systems: nearby_system[]
159
806
  }
160
- @Struct.type('marketprice')
161
- export class marketprice extends Struct {
807
+ @Struct.type('nexus_row')
808
+ export class nexus_row extends Struct {
809
+ @Struct.field(UInt64)
810
+ declare id: UInt64
811
+ @Struct.field(Name)
812
+ declare owner: Name
813
+ @Struct.field('string')
814
+ declare name: string
162
815
  @Struct.field(coordinates)
163
- location!: coordinates
816
+ declare coordinates: coordinates
817
+ }
818
+ @Struct.type('schema_field')
819
+ export class schema_field extends Struct {
820
+ @Struct.field('string')
821
+ declare name: string
822
+ @Struct.field('string')
823
+ declare field_type: string
824
+ }
825
+ @Struct.type('nft_schema_def')
826
+ export class nft_schema_def extends Struct {
827
+ @Struct.field(Name)
828
+ declare schema_name: Name
829
+ @Struct.field(schema_field, {array: true})
830
+ declare fields: schema_field[]
831
+ }
832
+ @Struct.type('nft_template_def')
833
+ export class nft_template_def extends Struct {
164
834
  @Struct.field(UInt16)
165
- good_id!: UInt16
835
+ declare item_id: UInt16
836
+ @Struct.field(Name)
837
+ declare schema_name: Name
166
838
  }
167
- @Struct.type('marketprices')
168
- export class marketprices extends Struct {
169
- @Struct.field(coordinates)
170
- location!: coordinates
839
+ @Struct.type('nftconfig_row')
840
+ export class nftconfig_row extends Struct {
841
+ @Struct.field(UInt16)
842
+ declare item_id: UInt16
843
+ @Struct.field(Int32)
844
+ declare template_id: Int32
845
+ @Struct.field(Name)
846
+ declare schema_name: Name
171
847
  }
172
- @Struct.type('payloan')
173
- export class payloan extends Struct {
848
+ @Struct.type('nftinfo_result')
849
+ export class nftinfo_result extends Struct {
850
+ @Struct.field(nft_schema_def, {array: true})
851
+ declare schemas: nft_schema_def[]
852
+ @Struct.field(nft_template_def, {array: true})
853
+ declare templates: nft_template_def[]
854
+ }
855
+ @Struct.type('task_event')
856
+ export class task_event extends Struct {
857
+ @Struct.field(UInt8)
858
+ declare event_type: UInt8
859
+ @Struct.field(Name)
860
+ declare owner: Name
174
861
  @Struct.field(Name)
175
- account!: Name
862
+ declare entity_type: Name
176
863
  @Struct.field(UInt64)
177
- amount!: UInt64
864
+ declare entity_id: UInt64
865
+ @Struct.field(UInt8)
866
+ declare task_index: UInt8
867
+ @Struct.field(task)
868
+ declare task: task
869
+ @Struct.field(TimePoint)
870
+ declare starts_at: TimePoint
871
+ @Struct.field(TimePoint)
872
+ declare completes_at: TimePoint
873
+ @Struct.field(UInt16, {optional: true})
874
+ declare new_energy?: UInt16
178
875
  }
179
- @Struct.type('player_row')
180
- export class player_row extends Struct {
876
+ @Struct.type('notify')
877
+ export class notify extends Struct {
878
+ @Struct.field(task_event)
879
+ declare event: task_event
880
+ }
881
+ @Struct.type('player_info')
882
+ export class player_info extends Struct {
181
883
  @Struct.field(Name)
182
- owner!: Name
884
+ declare owner: Name
885
+ @Struct.field('bool')
886
+ declare is_player: boolean
887
+ @Struct.field('string')
888
+ declare company_name: string
183
889
  @Struct.field(UInt64)
184
- balance!: UInt64
890
+ declare ship_count: UInt64
185
891
  @Struct.field(UInt64)
186
- debt!: UInt64
187
- @Struct.field(Int64)
188
- networth!: Int64
189
- }
190
- @Struct.type('salt')
191
- export class salt extends Struct {
892
+ declare warehouse_count: UInt64
192
893
  @Struct.field(UInt64)
193
- salt!: UInt64
894
+ declare container_count: UInt64
194
895
  }
195
- @Struct.type('sellgoods')
196
- export class sellgoods extends Struct {
896
+ @Struct.type('player_row')
897
+ export class player_row extends Struct {
898
+ @Struct.field(Name)
899
+ declare owner: Name
900
+ }
901
+ @Struct.type('recharge')
902
+ export class recharge extends Struct {
903
+ @Struct.field(Name)
904
+ declare entity_type: Name
197
905
  @Struct.field(UInt64)
198
- ship_id!: UInt64
906
+ declare id: UInt64
907
+ }
908
+ @Struct.type('reserve_row')
909
+ export class reserve_row extends Struct {
199
910
  @Struct.field(UInt64)
200
- good_id!: UInt64
911
+ declare id: UInt64
201
912
  @Struct.field(UInt64)
202
- quantity!: UInt64
913
+ declare coord_id: UInt64
914
+ @Struct.field(UInt16)
915
+ declare stratum: UInt16
916
+ @Struct.field(UInt32)
917
+ declare remaining: UInt32
203
918
  }
204
- @Struct.type('sequence_row')
205
- export class sequence_row extends Struct {
919
+ @Struct.type('resolve')
920
+ export class resolve extends Struct {
206
921
  @Struct.field(Name)
207
- key!: Name
922
+ declare entity_type: Name
208
923
  @Struct.field(UInt64)
209
- value!: UInt64
924
+ declare id: UInt64
925
+ @Struct.field(UInt64, {optional: true})
926
+ declare count?: UInt64
210
927
  }
211
- @Struct.type('ship_state')
212
- export class ship_state extends Struct {
213
- @Struct.field(UInt32)
214
- energy!: UInt32
928
+ @Struct.type('resolve_results')
929
+ export class resolve_results extends Struct {
930
+ @Struct.field(UInt64)
931
+ declare entity_id: UInt64
932
+ @Struct.field(Name)
933
+ declare entity_type: Name
934
+ @Struct.field(UInt8)
935
+ declare resolved_count: UInt8
936
+ @Struct.field(TimePoint, {optional: true})
937
+ declare new_schedule_started?: TimePoint
938
+ @Struct.field(UInt64, {optional: true})
939
+ declare entitygroup?: UInt64
940
+ @Struct.field(entity_ref, {array: true, optional: true})
941
+ declare group_members?: entity_ref[]
215
942
  }
216
- @Struct.type('ship_stats')
217
- export class ship_stats extends Struct {
218
- @Struct.field(UInt32)
219
- capacity!: UInt32
943
+ @Struct.type('resource_info')
944
+ export class resource_info extends Struct {
945
+ @Struct.field(UInt16)
946
+ declare id: UInt16
220
947
  @Struct.field(UInt32)
221
- drain!: UInt32
948
+ declare mass: UInt32
949
+ @Struct.field(UInt8)
950
+ declare category: UInt8
951
+ @Struct.field(UInt8)
952
+ declare tier: UInt8
953
+ }
954
+ @Struct.type('resource_stats')
955
+ export class resource_stats extends Struct {
956
+ @Struct.field(UInt16)
957
+ declare stat1: UInt16
958
+ @Struct.field(UInt16)
959
+ declare stat2: UInt16
960
+ @Struct.field(UInt16)
961
+ declare stat3: UInt16
962
+ }
963
+ @Struct.type('resources_result')
964
+ export class resources_result extends Struct {
965
+ @Struct.field(resource_info, {array: true})
966
+ declare resources: resource_info[]
967
+ }
968
+ @Struct.type('rmmodule')
969
+ export class rmmodule extends Struct {
970
+ @Struct.field(Name)
971
+ declare entity_type: Name
222
972
  @Struct.field(UInt64)
223
- mass!: UInt64
973
+ declare entity_id: UInt64
974
+ @Struct.field(UInt8)
975
+ declare module_index: UInt8
224
976
  @Struct.field(UInt64)
225
- maxmass!: UInt64
977
+ declare target_cargo_id: UInt64
978
+ }
979
+ @Struct.type('rmnftcfg')
980
+ export class rmnftcfg extends Struct {
226
981
  @Struct.field(UInt16)
227
- orbit!: UInt16
228
- @Struct.field(UInt32)
229
- recharge!: UInt32
230
- @Struct.field(UInt64)
231
- thrust!: UInt64
982
+ declare item_id: UInt16
232
983
  }
233
- @Struct.type('travel_plan')
234
- export class travel_plan extends Struct {
235
- @Struct.field(TimePoint)
236
- departure!: TimePoint
237
- @Struct.field(coordinates)
238
- destination!: coordinates
984
+ @Struct.type('salt')
985
+ export class salt extends Struct {
239
986
  @Struct.field(UInt64)
240
- distance!: UInt64
241
- @Struct.field(UInt32)
242
- flighttime!: UInt32
243
- @Struct.field(UInt32)
244
- loadtime!: UInt32
245
- @Struct.field(UInt32)
246
- rechargetime!: UInt32
247
- @Struct.field(UInt32)
248
- masspenalty!: UInt32
987
+ declare salt: UInt64
988
+ }
989
+ @Struct.type('sequence_row')
990
+ export class sequence_row extends Struct {
991
+ @Struct.field(Name)
992
+ declare key: Name
249
993
  @Struct.field(UInt64)
250
- mass!: UInt64
251
- @Struct.field(UInt32)
252
- energyusage!: UInt32
994
+ declare value: UInt64
995
+ }
996
+ @Struct.type('setnftcfg')
997
+ export class setnftcfg extends Struct {
998
+ @Struct.field(UInt16)
999
+ declare item_id: UInt16
1000
+ @Struct.field(Int32)
1001
+ declare template_id: Int32
1002
+ @Struct.field(Name)
1003
+ declare schema_name: Name
253
1004
  }
254
1005
  @Struct.type('ship_row')
255
1006
  export class ship_row extends Struct {
256
1007
  @Struct.field(UInt64)
257
- id!: UInt64
1008
+ declare id: UInt64
258
1009
  @Struct.field(Name)
259
- owner!: Name
1010
+ declare owner: Name
260
1011
  @Struct.field('string')
261
- name!: string
1012
+ declare name: string
1013
+ @Struct.field(UInt64)
1014
+ declare stats: UInt64
262
1015
  @Struct.field(coordinates)
263
- location!: coordinates
264
- @Struct.field(UInt8)
265
- skin!: UInt8
266
- @Struct.field(UInt8)
267
- tier!: UInt8
268
- @Struct.field(ship_state)
269
- state!: ship_state
270
- @Struct.field(ship_stats)
271
- stats!: ship_stats
272
- @Struct.field(loader_stats)
273
- loaders!: loader_stats
274
- @Struct.field(travel_plan, {optional: true})
275
- travelplan?: travel_plan
1016
+ declare coordinates: coordinates
1017
+ @Struct.field(UInt32, {optional: true})
1018
+ declare hullmass?: UInt32
1019
+ @Struct.field(UInt32, {optional: true})
1020
+ declare capacity?: UInt32
1021
+ @Struct.field(UInt16, {optional: true})
1022
+ declare energy?: UInt16
1023
+ @Struct.field(UInt32)
1024
+ declare cargomass: UInt32
1025
+ @Struct.field(movement_stats, {optional: true})
1026
+ declare engines?: movement_stats
1027
+ @Struct.field(energy_stats, {optional: true})
1028
+ declare generator?: energy_stats
1029
+ @Struct.field(loader_stats, {optional: true})
1030
+ declare loaders?: loader_stats
1031
+ @Struct.field(gatherer_stats, {optional: true})
1032
+ declare gatherer?: gatherer_stats
1033
+ @Struct.field(warp_stats, {optional: true})
1034
+ declare warp?: warp_stats
1035
+ @Struct.field(crafter_stats, {optional: true})
1036
+ declare crafter?: crafter_stats
1037
+ @Struct.field(hauler_stats, {optional: true})
1038
+ declare hauler?: hauler_stats
1039
+ @Struct.field(module_entry, {array: true})
1040
+ declare modules: module_entry[]
1041
+ @Struct.field(schedule, {optional: true})
1042
+ declare schedule?: schedule
1043
+ }
1044
+ @Struct.type('spawncargo')
1045
+ export class spawncargo extends Struct {
1046
+ @Struct.field(UInt64)
1047
+ declare entity_id: UInt64
1048
+ @Struct.field(UInt64)
1049
+ declare item_id: UInt64
1050
+ @Struct.field(UInt64)
1051
+ declare quantity: UInt64
1052
+ }
1053
+ @Struct.type('spawnpacked')
1054
+ export class spawnpacked extends Struct {
1055
+ @Struct.field(UInt64)
1056
+ declare entity_id: UInt64
1057
+ @Struct.field(UInt16)
1058
+ declare item_id: UInt16
1059
+ @Struct.field(UInt64)
1060
+ declare hull_stats: UInt64
1061
+ @Struct.field(packed_module, {array: true})
1062
+ declare installed: packed_module[]
1063
+ }
1064
+ @Struct.type('spawnseeded')
1065
+ export class spawnseeded extends Struct {
1066
+ @Struct.field(UInt64)
1067
+ declare entity_id: UInt64
1068
+ @Struct.field(UInt64)
1069
+ declare item_id: UInt64
1070
+ @Struct.field(UInt64)
1071
+ declare quantity: UInt64
1072
+ @Struct.field(UInt64)
1073
+ declare stats: UInt64
276
1074
  }
277
1075
  @Struct.type('state_row')
278
1076
  export class state_row extends Struct {
279
1077
  @Struct.field('bool')
280
- enabled!: boolean
281
- @Struct.field(UInt64)
282
- epoch!: UInt64
1078
+ declare enabled: boolean
1079
+ @Struct.field(UInt32)
1080
+ declare epoch: UInt32
283
1081
  @Struct.field(UInt64)
284
- salt!: UInt64
1082
+ declare salt: UInt64
285
1083
  @Struct.field(UInt32)
286
- ships!: UInt32
1084
+ declare ships: UInt32
287
1085
  @Struct.field(Checksum256)
288
- seed!: Checksum256
1086
+ declare seed: Checksum256
289
1087
  @Struct.field(Checksum256)
290
- commit!: Checksum256
1088
+ declare commit: Checksum256
291
1089
  }
292
- @Struct.type('takeloan')
293
- export class takeloan extends Struct {
294
- @Struct.field(Name)
295
- account!: Name
296
- @Struct.field(UInt64)
297
- amount!: UInt64
298
- }
299
- @Struct.type('travel')
300
- export class travel extends Struct {
301
- @Struct.field(UInt64)
302
- id!: UInt64
303
- @Struct.field(coordinates)
304
- destination!: coordinates
305
- @Struct.field('bool')
306
- recharge!: boolean
307
- }
308
- @Struct.type('travel_summary')
309
- export class travel_summary extends Struct {
310
- @Struct.field(ship_stats)
311
- stats!: ship_stats
312
- @Struct.field(loader_stats)
313
- loaders!: loader_stats
314
- @Struct.field(coordinates)
315
- origin!: coordinates
316
- @Struct.field(coordinates)
317
- destination!: coordinates
318
- @Struct.field(UInt64)
319
- distance!: UInt64
1090
+ @Struct.type('stratum_info')
1091
+ export class stratum_info extends Struct {
1092
+ @Struct.field(UInt16)
1093
+ declare item_id: UInt16
320
1094
  @Struct.field(UInt64)
321
- totalmass!: UInt64
322
- @Struct.field(Float64)
323
- acceleration!: Float64
324
- @Struct.field(UInt32)
325
- flighttime!: UInt32
1095
+ declare seed: UInt64
1096
+ @Struct.field(UInt16)
1097
+ declare richness: UInt16
326
1098
  @Struct.field(UInt32)
327
- energyusage!: UInt32
1099
+ declare reserve: UInt32
328
1100
  @Struct.field(UInt32)
329
- rechargetime!: UInt32
1101
+ declare reserve_max: UInt32
1102
+ }
1103
+ @Struct.type('stratum_data')
1104
+ export class stratum_data extends Struct {
1105
+ @Struct.field(stratum_info)
1106
+ declare stratum: stratum_info
1107
+ @Struct.field(resource_stats)
1108
+ declare stats: resource_stats
1109
+ }
1110
+ @Struct.type('stratum_remaining')
1111
+ export class stratum_remaining extends Struct {
1112
+ @Struct.field(UInt16)
1113
+ declare stratum: UInt16
330
1114
  @Struct.field(UInt32)
331
- masspenalty!: UInt32
1115
+ declare remaining: UInt32
1116
+ }
1117
+ @Struct.type('task_results')
1118
+ export class task_results extends Struct {
1119
+ @Struct.field(entity_task_info, {array: true})
1120
+ declare entities: entity_task_info[]
1121
+ }
1122
+ @Struct.type('transfer')
1123
+ export class transfer extends Struct {
1124
+ @Struct.field(Name)
1125
+ declare source_type: Name
332
1126
  @Struct.field(UInt64)
333
- loadtime!: UInt64
1127
+ declare source_id: UInt64
1128
+ @Struct.field(Name)
1129
+ declare dest_type: Name
1130
+ @Struct.field(UInt64)
1131
+ declare dest_id: UInt64
1132
+ @Struct.field(UInt16)
1133
+ declare item_id: UInt16
334
1134
  @Struct.field(UInt64)
335
- time!: UInt64
1135
+ declare stats: UInt64
1136
+ @Struct.field(UInt32)
1137
+ declare quantity: UInt32
336
1138
  }
337
- @Struct.type('travelplan')
338
- export class travelplan extends Struct {
1139
+ @Struct.type('travel')
1140
+ export class travel extends Struct {
1141
+ @Struct.field(Name)
1142
+ declare entity_type: Name
339
1143
  @Struct.field(UInt64)
340
- id!: UInt64
341
- @Struct.field(coordinates)
342
- origin!: coordinates
343
- @Struct.field(coordinates)
344
- destination!: coordinates
1144
+ declare id: UInt64
1145
+ @Struct.field(Int64)
1146
+ declare x: Int64
1147
+ @Struct.field(Int64)
1148
+ declare y: Int64
345
1149
  @Struct.field('bool')
346
- recharge!: boolean
1150
+ declare recharge: boolean
347
1151
  }
348
- @Struct.type('traveltime')
349
- export class traveltime extends Struct {
1152
+ @Struct.type('types_row')
1153
+ export class types_row extends Struct {
1154
+ @Struct.field(UInt64)
1155
+ declare id: UInt64
1156
+ @Struct.field(entity_summary)
1157
+ declare entity_summary_type: entity_summary
1158
+ @Struct.field(game_config)
1159
+ declare game_config_type: game_config
1160
+ @Struct.field(stratum_remaining)
1161
+ declare stratum_remaining_type: stratum_remaining
1162
+ }
1163
+ @Struct.type('warehouse_row')
1164
+ export class warehouse_row extends Struct {
1165
+ @Struct.field(UInt64)
1166
+ declare id: UInt64
1167
+ @Struct.field(Name)
1168
+ declare owner: Name
1169
+ @Struct.field('string')
1170
+ declare name: string
350
1171
  @Struct.field(UInt64)
351
- id!: UInt64
1172
+ declare stats: UInt64
352
1173
  @Struct.field(coordinates)
353
- destination!: coordinates
354
- }
355
- @Struct.type('updatecredit')
356
- export class updatecredit extends Struct {
1174
+ declare coordinates: coordinates
1175
+ @Struct.field(UInt32, {optional: true})
1176
+ declare hullmass?: UInt32
1177
+ @Struct.field(UInt32, {optional: true})
1178
+ declare capacity?: UInt32
1179
+ @Struct.field(UInt32)
1180
+ declare cargomass: UInt32
1181
+ @Struct.field(loader_stats, {optional: true})
1182
+ declare loaders?: loader_stats
1183
+ @Struct.field(module_entry, {array: true})
1184
+ declare modules: module_entry[]
1185
+ @Struct.field(schedule, {optional: true})
1186
+ declare schedule?: schedule
1187
+ }
1188
+ @Struct.type('warp')
1189
+ export class warp extends Struct {
357
1190
  @Struct.field(Name)
358
- account!: Name
1191
+ declare entity_type: Name
1192
+ @Struct.field(UInt64)
1193
+ declare id: UInt64
359
1194
  @Struct.field(Int64)
360
- amount!: Int64
361
- }
362
- @Struct.type('updatedebt')
363
- export class updatedebt extends Struct {
364
- @Struct.field(Name)
365
- account!: Name
1195
+ declare x: Int64
366
1196
  @Struct.field(Int64)
367
- amount!: Int64
368
- }
369
- @Struct.type('upgradeship')
370
- export class upgradeship extends Struct {
371
- @Struct.field(Name)
372
- account!: Name
373
- @Struct.field(UInt64)
374
- id!: UInt64
1197
+ declare y: Int64
375
1198
  }
376
1199
  @Struct.type('wipe')
377
1200
  export class wipe extends Struct {}
378
1201
  @Struct.type('wipesequence')
379
1202
  export class wipesequence extends Struct {}
1203
+ @Struct.type('wrap')
1204
+ export class wrap extends Struct {
1205
+ @Struct.field(Name)
1206
+ declare owner: Name
1207
+ @Struct.field(Name)
1208
+ declare entity_type: Name
1209
+ @Struct.field(UInt64)
1210
+ declare entity_id: UInt64
1211
+ @Struct.field(UInt64)
1212
+ declare cargo_id: UInt64
1213
+ @Struct.field(UInt64)
1214
+ declare quantity: UInt64
1215
+ }
380
1216
  }
381
1217
  export const TableMap = {
382
1218
  cargo: Types.cargo_row,
1219
+ container: Types.container_row,
1220
+ entitygroup: Types.entitygroup_row,
383
1221
  location: Types.location_row,
1222
+ nexus: Types.nexus_row,
1223
+ nftconfig: Types.nftconfig_row,
384
1224
  player: Types.player_row,
1225
+ reserve: Types.reserve_row,
385
1226
  sequence: Types.sequence_row,
386
1227
  ship: Types.ship_row,
387
1228
  state: Types.state_row,
1229
+ types: Types.types_row,
1230
+ warehouse: Types.warehouse_row,
388
1231
  }
389
1232
  export interface TableTypes {
390
1233
  cargo: Types.cargo_row
1234
+ container: Types.container_row
1235
+ entitygroup: Types.entitygroup_row
391
1236
  location: Types.location_row
1237
+ nexus: Types.nexus_row
1238
+ nftconfig: Types.nftconfig_row
392
1239
  player: Types.player_row
1240
+ reserve: Types.reserve_row
393
1241
  sequence: Types.sequence_row
394
1242
  ship: Types.ship_row
395
1243
  state: Types.state_row
1244
+ types: Types.types_row
1245
+ warehouse: Types.warehouse_row
396
1246
  }
397
1247
  export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
398
1248
  export type TableNames = keyof TableTypes
399
1249
  export namespace ActionParams {
400
1250
  export namespace Type {
1251
+ export interface cargo_item {
1252
+ item_id: UInt16Type
1253
+ quantity: UInt32Type
1254
+ stats: UInt64Type
1255
+ modules: Type.module_entry[]
1256
+ }
1257
+ export interface module_entry {
1258
+ type: UInt8Type
1259
+ installed?: Type.packed_module
1260
+ }
1261
+ export interface packed_module {
1262
+ item_id: UInt16Type
1263
+ stats: UInt64Type
1264
+ }
1265
+ export interface game_config {
1266
+ version: UInt32Type
1267
+ defaults: Type.entity_defaults
1268
+ items: Type.item_def[]
1269
+ }
1270
+ export interface entity_defaults {
1271
+ warehouse_z: UInt16Type
1272
+ container_z: UInt16Type
1273
+ }
1274
+ export interface item_def {
1275
+ id: UInt16Type
1276
+ mass: UInt32Type
1277
+ type: UInt8Type
1278
+ subtype: UInt8Type
1279
+ tier: UInt8Type
1280
+ }
1281
+ export interface entity_ref {
1282
+ entity_type: NameType
1283
+ entity_id: UInt64Type
1284
+ }
1285
+ export interface task_event {
1286
+ event_type: UInt8Type
1287
+ owner: NameType
1288
+ entity_type: NameType
1289
+ entity_id: UInt64Type
1290
+ task_index: UInt8Type
1291
+ task: Type.task
1292
+ starts_at: TimePointType
1293
+ completes_at: TimePointType
1294
+ new_energy?: UInt16Type
1295
+ }
1296
+ export interface task {
1297
+ type: UInt8Type
1298
+ duration: UInt32Type
1299
+ cancelable: UInt8Type
1300
+ coordinates?: Type.coordinates
1301
+ cargo: Type.cargo_item[]
1302
+ entitytarget?: Type.entity_ref
1303
+ entitygroup?: UInt64Type
1304
+ energy_cost?: UInt16Type
1305
+ }
401
1306
  export interface coordinates {
402
1307
  x: Int64Type
403
1308
  y: Int64Type
1309
+ z?: UInt16Type
404
1310
  }
405
1311
  }
1312
+ export interface addmodule {
1313
+ entity_type: NameType
1314
+ entity_id: UInt64Type
1315
+ module_index: UInt8Type
1316
+ module_cargo_id: UInt64Type
1317
+ target_cargo_id: UInt64Type
1318
+ }
1319
+ export interface addnexus {
1320
+ nexus_name: string
1321
+ x: Int64Type
1322
+ y: Int64Type
1323
+ }
406
1324
  export interface advance {
407
1325
  reveal: string
408
1326
  commit: Checksum256Type
409
1327
  }
410
- export interface arrive {
1328
+ export interface blend {
1329
+ entity_type: NameType
411
1330
  id: UInt64Type
1331
+ inputs: Type.cargo_item[]
412
1332
  }
413
- export interface buygoods {
414
- ship_id: UInt64Type
415
- good_id: UInt64Type
416
- quantity: UInt64Type
1333
+ export interface cancel {
1334
+ entity_type: NameType
1335
+ id: UInt64Type
1336
+ count: UInt64Type
417
1337
  }
418
- export interface buyship {
1338
+ export interface claimstarter {
419
1339
  account: NameType
420
- name: string
1340
+ x: Int64Type
1341
+ y: Int64Type
1342
+ }
1343
+ export interface cleanrsvp {
1344
+ epoch: UInt64Type
1345
+ max_rows: UInt64Type
421
1346
  }
422
1347
  export interface cleartable {
423
1348
  table_name: NameType
@@ -427,9 +1352,105 @@ export namespace ActionParams {
427
1352
  export interface commit {
428
1353
  commit: Checksum256Type
429
1354
  }
1355
+ export interface configlog {
1356
+ config: Type.game_config
1357
+ }
1358
+ export interface craft {
1359
+ entity_type: NameType
1360
+ id: UInt64Type
1361
+ recipe_id: UInt16Type
1362
+ quantity: UInt32Type
1363
+ inputs: Type.cargo_item[]
1364
+ }
1365
+ export interface createentity {
1366
+ owner: NameType
1367
+ entity_type: NameType
1368
+ entity_name: string
1369
+ x: Int64Type
1370
+ y: Int64Type
1371
+ }
1372
+ export interface deploy {
1373
+ entity_type: NameType
1374
+ id: UInt64Type
1375
+ packed_item_id: UInt16Type
1376
+ stats: UInt64Type
1377
+ }
1378
+ export interface descentity {
1379
+ item_id: UInt16Type
1380
+ hull_stats: UInt64Type
1381
+ module_items: UInt16Type[]
1382
+ module_stats: UInt64Type[]
1383
+ }
430
1384
  export interface enable {
431
1385
  enabled: boolean
432
1386
  }
1387
+ export interface gather {
1388
+ source: Type.entity_ref
1389
+ destination: Type.entity_ref
1390
+ stratum: UInt16Type
1391
+ quantity: UInt32Type
1392
+ }
1393
+ export interface getconfig {}
1394
+ export interface getentities {
1395
+ owner: NameType
1396
+ entity_type?: NameType
1397
+ }
1398
+ export interface getentity {
1399
+ entity_type: NameType
1400
+ entity_id: UInt64Type
1401
+ }
1402
+ export interface getitemdata {}
1403
+ export interface getitemids {}
1404
+ export interface getitems {}
1405
+ export interface getitemtypes {}
1406
+ export interface getlocation {
1407
+ x: Int64Type
1408
+ y: Int64Type
1409
+ }
1410
+ export interface getlocdata {
1411
+ x: Int64Type
1412
+ y: Int64Type
1413
+ }
1414
+ export interface getmodtypes {}
1415
+ export interface getmodules {}
1416
+ export interface getnearby {
1417
+ entity_type: NameType
1418
+ entity_id: UInt64Type
1419
+ recharge: boolean
1420
+ }
1421
+ export interface getnftinfo {}
1422
+ export interface getplayer {
1423
+ account: NameType
1424
+ }
1425
+ export interface getrecipe {
1426
+ output_item_id: UInt16Type
1427
+ }
1428
+ export interface getrecipes {
1429
+ lower_bound: UInt16Type
1430
+ limit: UInt8Type
1431
+ }
1432
+ export interface getrescats {}
1433
+ export interface getreserves {
1434
+ x: Int64Type
1435
+ y: Int64Type
1436
+ }
1437
+ export interface getresources {}
1438
+ export interface getslots {}
1439
+ export interface getstratum {
1440
+ x: Int64Type
1441
+ y: Int64Type
1442
+ stratum: UInt16Type
1443
+ }
1444
+ export interface getsummaries {
1445
+ owner: NameType
1446
+ entity_type?: NameType
1447
+ }
1448
+ export interface grouptravel {
1449
+ entities: Type.entity_ref[]
1450
+ x: Int64Type
1451
+ y: Int64Type
1452
+ recharge: boolean
1453
+ }
433
1454
  export interface hash {
434
1455
  value: string
435
1456
  }
@@ -439,103 +1460,186 @@ export namespace ActionParams {
439
1460
  export interface init {
440
1461
  seed: Checksum256Type
441
1462
  }
442
- export interface jettison {
443
- ship_id: UInt64Type
444
- good_id: UInt16Type
445
- quantity: UInt64Type
446
- }
447
1463
  export interface join {
448
1464
  account: NameType
449
1465
  }
450
- export interface marketprice {
451
- location: Type.coordinates
452
- good_id: UInt16Type
1466
+ export interface notify {
1467
+ event: Type.task_event
453
1468
  }
454
- export interface marketprices {
455
- location: Type.coordinates
1469
+ export interface recharge {
1470
+ entity_type: NameType
1471
+ id: UInt64Type
456
1472
  }
457
- export interface payloan {
458
- account: NameType
459
- amount: UInt64Type
1473
+ export interface resolve {
1474
+ entity_type: NameType
1475
+ id: UInt64Type
1476
+ count?: UInt64Type
1477
+ }
1478
+ export interface rmmodule {
1479
+ entity_type: NameType
1480
+ entity_id: UInt64Type
1481
+ module_index: UInt8Type
1482
+ target_cargo_id: UInt64Type
1483
+ }
1484
+ export interface rmnftcfg {
1485
+ item_id: UInt16Type
460
1486
  }
461
1487
  export interface salt {
462
1488
  salt: UInt64Type
463
1489
  }
464
- export interface sellgoods {
465
- ship_id: UInt64Type
466
- good_id: UInt64Type
1490
+ export interface setnftcfg {
1491
+ item_id: UInt16Type
1492
+ template_id: Int32Type
1493
+ schema_name: NameType
1494
+ }
1495
+ export interface spawncargo {
1496
+ entity_id: UInt64Type
1497
+ item_id: UInt64Type
467
1498
  quantity: UInt64Type
468
1499
  }
469
- export interface takeloan {
470
- account: NameType
471
- amount: UInt64Type
1500
+ export interface spawnpacked {
1501
+ entity_id: UInt64Type
1502
+ item_id: UInt16Type
1503
+ hull_stats: UInt64Type
1504
+ installed: Type.packed_module[]
472
1505
  }
473
- export interface travel {
474
- id: UInt64Type
475
- destination: Type.coordinates
476
- recharge: boolean
1506
+ export interface spawnseeded {
1507
+ entity_id: UInt64Type
1508
+ item_id: UInt64Type
1509
+ quantity: UInt64Type
1510
+ stats: UInt64Type
477
1511
  }
478
- export interface travelplan {
479
- id: UInt64Type
480
- origin: Type.coordinates
481
- destination: Type.coordinates
482
- recharge: boolean
1512
+ export interface transfer {
1513
+ source_type: NameType
1514
+ source_id: UInt64Type
1515
+ dest_type: NameType
1516
+ dest_id: UInt64Type
1517
+ item_id: UInt16Type
1518
+ stats: UInt64Type
1519
+ quantity: UInt32Type
483
1520
  }
484
- export interface traveltime {
1521
+ export interface travel {
1522
+ entity_type: NameType
485
1523
  id: UInt64Type
486
- destination: Type.coordinates
487
- }
488
- export interface updatecredit {
489
- account: NameType
490
- amount: Int64Type
491
- }
492
- export interface updatedebt {
493
- account: NameType
494
- amount: Int64Type
1524
+ x: Int64Type
1525
+ y: Int64Type
1526
+ recharge: boolean
495
1527
  }
496
- export interface upgradeship {
497
- account: NameType
1528
+ export interface warp {
1529
+ entity_type: NameType
498
1530
  id: UInt64Type
1531
+ x: Int64Type
1532
+ y: Int64Type
499
1533
  }
500
1534
  export interface wipe {}
501
1535
  export interface wipesequence {}
1536
+ export interface wrap {
1537
+ owner: NameType
1538
+ entity_type: NameType
1539
+ entity_id: UInt64Type
1540
+ cargo_id: UInt64Type
1541
+ quantity: UInt64Type
1542
+ }
502
1543
  }
503
1544
  export interface ActionNameParams {
1545
+ addmodule: ActionParams.addmodule
1546
+ addnexus: ActionParams.addnexus
504
1547
  advance: ActionParams.advance
505
- arrive: ActionParams.arrive
506
- buygoods: ActionParams.buygoods
507
- buyship: ActionParams.buyship
1548
+ blend: ActionParams.blend
1549
+ cancel: ActionParams.cancel
1550
+ claimstarter: ActionParams.claimstarter
1551
+ cleanrsvp: ActionParams.cleanrsvp
508
1552
  cleartable: ActionParams.cleartable
509
1553
  commit: ActionParams.commit
1554
+ configlog: ActionParams.configlog
1555
+ craft: ActionParams.craft
1556
+ createentity: ActionParams.createentity
1557
+ deploy: ActionParams.deploy
1558
+ descentity: ActionParams.descentity
510
1559
  enable: ActionParams.enable
1560
+ gather: ActionParams.gather
1561
+ getconfig: ActionParams.getconfig
1562
+ getentities: ActionParams.getentities
1563
+ getentity: ActionParams.getentity
1564
+ getitemdata: ActionParams.getitemdata
1565
+ getitemids: ActionParams.getitemids
1566
+ getitems: ActionParams.getitems
1567
+ getitemtypes: ActionParams.getitemtypes
1568
+ getlocation: ActionParams.getlocation
1569
+ getlocdata: ActionParams.getlocdata
1570
+ getmodtypes: ActionParams.getmodtypes
1571
+ getmodules: ActionParams.getmodules
1572
+ getnearby: ActionParams.getnearby
1573
+ getnftinfo: ActionParams.getnftinfo
1574
+ getplayer: ActionParams.getplayer
1575
+ getrecipe: ActionParams.getrecipe
1576
+ getrecipes: ActionParams.getrecipes
1577
+ getrescats: ActionParams.getrescats
1578
+ getreserves: ActionParams.getreserves
1579
+ getresources: ActionParams.getresources
1580
+ getslots: ActionParams.getslots
1581
+ getstratum: ActionParams.getstratum
1582
+ getsummaries: ActionParams.getsummaries
1583
+ grouptravel: ActionParams.grouptravel
511
1584
  hash: ActionParams.hash
512
1585
  hash512: ActionParams.hash512
513
1586
  init: ActionParams.init
514
- jettison: ActionParams.jettison
515
1587
  join: ActionParams.join
516
- marketprice: ActionParams.marketprice
517
- marketprices: ActionParams.marketprices
518
- payloan: ActionParams.payloan
1588
+ notify: ActionParams.notify
1589
+ recharge: ActionParams.recharge
1590
+ resolve: ActionParams.resolve
1591
+ rmmodule: ActionParams.rmmodule
1592
+ rmnftcfg: ActionParams.rmnftcfg
519
1593
  salt: ActionParams.salt
520
- sellgoods: ActionParams.sellgoods
521
- takeloan: ActionParams.takeloan
1594
+ setnftcfg: ActionParams.setnftcfg
1595
+ spawncargo: ActionParams.spawncargo
1596
+ spawnpacked: ActionParams.spawnpacked
1597
+ spawnseeded: ActionParams.spawnseeded
1598
+ transfer: ActionParams.transfer
522
1599
  travel: ActionParams.travel
523
- travelplan: ActionParams.travelplan
524
- traveltime: ActionParams.traveltime
525
- updatecredit: ActionParams.updatecredit
526
- updatedebt: ActionParams.updatedebt
527
- upgradeship: ActionParams.upgradeship
1600
+ warp: ActionParams.warp
528
1601
  wipe: ActionParams.wipe
529
1602
  wipesequence: ActionParams.wipesequence
1603
+ wrap: ActionParams.wrap
530
1604
  }
531
1605
  export type ActionNames = keyof ActionNameParams
532
1606
  export interface ActionReturnValues {
1607
+ cancel: Types.cancel_results
1608
+ craft: Types.task_results
1609
+ deploy: Types.task_results
1610
+ descentity: string
1611
+ gather: Types.task_results
1612
+ getconfig: Types.game_config
1613
+ getentities: Types.entity_info[]
1614
+ getentity: Types.entity_info
1615
+ getitemdata: Types.itemdata_result
1616
+ getitemids: Types.item_ids_result
1617
+ getitems: Types.items_info
1618
+ getitemtypes: Types.enum_result
1619
+ getlocation: Types.location_info
1620
+ getlocdata: Types.location_derived
1621
+ getmodtypes: Types.enum_result
1622
+ getmodules: Types.modules_result
1623
+ getnearby: Types.nearby_info
1624
+ getnftinfo: Types.nftinfo_result
1625
+ getplayer: Types.player_info
1626
+ getrecipe: Types.recipes_result
1627
+ getrecipes: Types.recipes_result
1628
+ getrescats: Types.enum_result
1629
+ getreserves: Types.stratum_remaining[]
1630
+ getresources: Types.resources_result
1631
+ getslots: Types.entity_layouts_result
1632
+ getstratum: Types.stratum_data
1633
+ getsummaries: Types.entity_summary[]
1634
+ grouptravel: Types.task_results
533
1635
  hash: Checksum256
534
1636
  hash512: Checksum512
535
- marketprice: Types.good_price
536
- marketprices: Types.good_price[]
537
- travelplan: Types.travel_plan
538
- traveltime: Types.travel_summary
1637
+ recharge: Types.task_results
1638
+ resolve: Types.resolve_results
1639
+ transfer: Types.task_results
1640
+ travel: Types.task_results
1641
+ warp: Types.task_results
1642
+ wrap: Types.task_results
539
1643
  }
540
1644
  export type ActionReturnNames = keyof ActionReturnValues
541
1645
  export class Contract extends BaseContract {