@shipload/sdk 1.0.0-next.0 → 1.0.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/shipload.d.ts +512 -320
- package/lib/shipload.js +1960 -1060
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +1920 -1056
- package/lib/shipload.m.js.map +1 -1
- package/package.json +8 -3
- package/src/capabilities/modules.ts +3 -0
- package/src/capabilities/storage.ts +1 -1
- package/src/contracts/platform.ts +13 -1
- package/src/contracts/server.ts +227 -282
- package/src/data/capabilities.ts +5 -330
- package/src/data/capability-formulas.ts +70 -0
- package/src/data/catalog.ts +0 -5
- package/src/data/colors.ts +2 -16
- package/src/data/entities.json +33 -10
- package/src/data/item-ids.ts +3 -1
- package/src/data/items.json +258 -0
- package/src/data/metadata.ts +57 -1
- package/src/data/recipes-runtime.ts +1 -0
- package/src/data/recipes.json +82 -11
- package/src/derivation/capability-mappings.ts +122 -0
- package/src/derivation/index.ts +1 -0
- package/src/derivation/resources.ts +116 -37
- package/src/derivation/stats.ts +1 -2
- package/src/entities/container.ts +25 -10
- package/src/entities/extractor.ts +144 -0
- package/src/entities/gamestate.ts +0 -9
- package/src/entities/makers.ts +71 -20
- package/src/entities/ship-deploy.ts +114 -56
- package/src/entities/ship.ts +17 -0
- package/src/entities/slot-multiplier.ts +21 -0
- package/src/entities/warehouse.ts +20 -3
- package/src/index-module.ts +67 -26
- package/src/managers/actions.ts +53 -80
- package/src/managers/entities.ts +31 -17
- package/src/managers/locations.ts +2 -20
- package/src/nft/atomicdata.ts +125 -0
- package/src/nft/description.ts +41 -7
- package/src/nft/index.ts +1 -0
- package/src/resolution/resolve-item.ts +17 -9
- package/src/scheduling/accessor.ts +4 -0
- package/src/scheduling/projection.ts +8 -0
- package/src/scheduling/schedule.ts +15 -1
- package/src/scheduling/task-cargo.ts +47 -0
- package/src/subscriptions/connection.ts +50 -2
- package/src/subscriptions/manager.ts +81 -2
- package/src/travel/travel.ts +61 -2
- package/src/types/entity-traits.ts +64 -1
- package/src/types.ts +11 -1
- package/src/utils/cargo.ts +27 -0
- package/src/utils/system.ts +25 -24
package/lib/shipload.js
CHANGED
|
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
10
10
|
|
|
11
11
|
var ContractKit__default = /*#__PURE__*/_interopDefaultLegacy(ContractKit);
|
|
12
12
|
|
|
13
|
-
const abiBlob$1 = antelope.Blob.from('
|
|
13
|
+
const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAA4KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAQEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlnYW1lX21ldGEABARuYW1lBnN0cmluZwtkZXNjcmlwdGlvbgZzdHJpbmcDdXJsBnN0cmluZwd2ZXJzaW9uBnN0cmluZwhnYW1lX3JvdwAECGNvbnRyYWN0BG5hbWUGY29uZmlnC2dhbWVfY29uZmlnBG1ldGEJZ2FtZV9tZXRhBXN0YXRlCmdhbWVfc3RhdGUKZ2FtZV9zdGF0ZQABB2VuYWJsZWQEYm9vbAxzZXRlcG9jaHRpbWUAAghjb250cmFjdARuYW1lCWVwb2NodGltZQZ1aW50MzIJc3RhcnRnYW1lAAQIY29udHJhY3QEbmFtZQZjb25maWcLZ2FtZV9jb25maWcEbWV0YQlnYW1lX21ldGEFc3RhdGUKZ2FtZV9zdGF0ZQlzdGF0ZV9yb3cAAQdlbmFibGVkBGJvb2wKdXBkYXRlZ2FtZQACCGNvbnRyYWN0BG5hbWUEbWV0YQlnYW1lX21ldGEEd2lwZQAACACAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LgCAkoapeMxUCmVuYWJsZWdhbWX8AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGVnYW1lCnN1bW1hcnk6ICdFbmFibGUvZGlzYmFibGUgYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LqCkyw3RqrLCDHNldGVwb2NodGltZQAAAFDSsHxNxglzdGFydGdhbWX/AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdGFydGdhbWUKc3VtbWFyeTogJ1N0YXJ0IGEgbmV3IGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpTdGFydCBhIG5ldyBnYW1lIG9mIFNoaXBsb2FkIGRlcGxveWVkIHRvIGEgbmV3IGNvbnRyYWN0LgCAkoapbFLVCnVwZGF0ZWdhbWWNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVnYW1lCnN1bW1hcnk6ICdVcGRhdGUgZ2FtZSBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KClVwZGF0ZSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LgoKLS0tAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQMAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAAAAArKRhA2k2NAAACGdhbWVfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93ARNTaGlwbG9hZCAoUGxhdGZvcm0pE1NoaXBsb2FkIChQbGF0Zm9ybSkAAAAA');
|
|
14
14
|
const abi$1 = antelope.ABI.from(abiBlob$1);
|
|
15
15
|
exports.PlatformTypes = void 0;
|
|
16
16
|
(function (Types) {
|
|
@@ -137,6 +137,18 @@ exports.PlatformTypes = void 0;
|
|
|
137
137
|
antelope.Struct.type('game_row')
|
|
138
138
|
], game_row);
|
|
139
139
|
Types.game_row = game_row;
|
|
140
|
+
let setepochtime = class setepochtime extends antelope.Struct {
|
|
141
|
+
};
|
|
142
|
+
tslib.__decorate([
|
|
143
|
+
antelope.Struct.field(antelope.Name)
|
|
144
|
+
], setepochtime.prototype, "contract", void 0);
|
|
145
|
+
tslib.__decorate([
|
|
146
|
+
antelope.Struct.field(antelope.UInt32)
|
|
147
|
+
], setepochtime.prototype, "epochtime", void 0);
|
|
148
|
+
setepochtime = tslib.__decorate([
|
|
149
|
+
antelope.Struct.type('setepochtime')
|
|
150
|
+
], setepochtime);
|
|
151
|
+
Types.setepochtime = setepochtime;
|
|
140
152
|
let startgame = class startgame extends antelope.Struct {
|
|
141
153
|
};
|
|
142
154
|
tslib.__decorate([
|
|
@@ -213,27 +225,63 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
213
225
|
Contract: Contract$1
|
|
214
226
|
});
|
|
215
227
|
|
|
216
|
-
const abiBlob = antelope.Blob.from('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==');
|
|
228
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiFAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BWJsZW5kAAICaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10GY2FuY2VsAAICaWQGdWludDY0BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpjYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyCWNhcmdvX3JlZgADB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQpjYXJnb192aWV3AAUHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyAmlkBnVpbnQ2NAxjbGFpbXN0YXJ0ZXIAAwdhY2NvdW50BG5hbWUBeAVpbnQ2NAF5BWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAQCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYMY3JlYXRlZW50aXR5AAUFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQACAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmCmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABkEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDE2PwhodWxsbWFzcwd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGNhcGFjaXR5B3VpbnQzMj8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAUAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/BmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIHZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8HaXRlbV9pZAZ1aW50MTYOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdDGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQLZ2FtZV9jb25maWcAAwd2ZXJzaW9uBnVpbnQzMghkZWZhdWx0cw9lbnRpdHlfZGVmYXVsdHMFaXRlbXMKaXRlbV9kZWZbXQZnYXRoZXIABAlzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIOZ2F0aGVyZXJfc3RhdHMABAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVzcGVlZAZ1aW50MTYJZ2V0Y29uZmlnAAALZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYLZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAxnZXRpdGVtdHlwZXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRpbmZvAAAJZ2V0cGxheWVyAAEHYWNjb3VudARuYW1lCWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAMIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDE2CmluaXRpYWxpemUAAQRzZWVkC2NoZWNrc3VtMjU2CGl0ZW1fZGVmAAUCaWQGdWludDE2BG1hc3MGdWludDMyBHR5cGUFdWludDgHc3VidHlwZQV1aW50OAR0aWVyBXVpbnQ4DGl0ZW1faWRfcGFpcgACAmlkBnVpbnQxNgRuYW1lBnN0cmluZw9pdGVtX2lkc19yZXN1bHQAAQVpdGVtcw5pdGVtX2lkX3BhaXJbXQ9pdGVtZGF0YV9yZXN1bHQAAgVpdGVtcwppdGVtX2RlZltdB3JlY2lwZXMOcmVjaXBlc19yZXN1bHQKaXRlbXNfaW5mbwABBWl0ZW1zCml0ZW1fZGVmW10Eam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMgZ0aHJ1c3QGdWludDE2CHF1YW50aXR5BXVpbnQ4EGxvY2F0aW9uX2Rlcml2ZWQAAgxzdGF0aWNfcHJvcHMPbG9jYXRpb25fc3RhdGljBHNpemUGdWludDE2DWxvY2F0aW9uX2luZm8AAgZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAgdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudA1wYWNrZWRfbW9kdWxlAAIHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lCHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAAEB2l0ZW1faWQGdWludDE2CGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAcOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdDnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0C3Jlc2VydmVfcm93AAQCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQFdWludDgUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10Icm1tb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAp0YXJnZXRfcmVmCmNhcmdvX3JlZj8Icm1uZnRjZmcAAQdpdGVtX2lkBnVpbnQxNgRzYWx0AAEEc2FsdAZ1aW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUKc2tpcHJldmVhbAABBmNvbW1pdAtjaGVja3N1bTI1NghzbG90X2RlZgACBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYKc3Bhd25jYXJnbwADCWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0C3NwYXducGFja2VkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAlpbnN0YWxsZWQPcGFja2VkX21vZHVsZVtdC3NwYXduc2VlZGVkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAUHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAIHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgR0YXNrAAgEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAJCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXQh0cmFuc2ZlcgADCXNvdXJjZV9pZAZ1aW50NjQHZGVzdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdBnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABAJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAABHdyYXAABAVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQp3cmFwZW50aXR5AAIJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjRBAABQUScqUzIJYWRkbW9kdWxlxwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbW9kdWxlCnN1bW1hcnk6ICdJbnN0YWxsIGEgbW9kdWxlIGludG8gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YWxsIGEgbW9kdWxlIGZyb20gY2FyZ28gaW50byBhIG1vZHVsZSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSB0eXBlIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSB0YXJnZXQgc2xvdCB0eXBlLiBUaGUgbW9kdWxlIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIGNhcmdvIHVwb24gaW5zdGFsbGF0aW9uLgAAAFh3NVMyCGFkZG5leHVzpwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbmV4dXMKc3VtbWFyeTogJ0FkZCBhIG5leHVzIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDcmVhdGUgYSBuZXcgbmV4dXMgZW50aXR5IGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcy4gTmV4dXNlcyBhcmUgb3duZWQgYnkgdGhlIGNvbnRyYWN0IGFuZCBzZXJ2ZSBhcyBmaXhlZCBnYXRoZXJpbmcgcG9pbnRzIHdoZXJlIHBsYXllcnMgY2FuIHdyYXAsIHVud3JhcCwgZGVwbG95LCBhbmQgb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggTkZULWJhY2tlZCBhc3NldHMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAIA0VTwFYmxlbmT8Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIG5ldyBibGVuZGVkIHN0YXRzLiBBbGwgaW5wdXQgc3RhY2tzIG11c3Qgc2hhcmUgdGhlIHNhbWUgaXRlbSBpZC4gVGhlIG91dHB1dCBzdGFjayBoYXMgdGhlIGNvbWJpbmVkIHF1YW50aXR5IG9mIGFsbCBpbnB1dHMuAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQucFW+JmPpTEQMY2xhaW1zdGFydGVyhQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xhaW1zdGFydGVyCnN1bW1hcnk6ICdERUJVRzogY2xhaW0gYSBzdGFydGVyIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNwYXduIGEgcHJlLWtpdHRlZCBUMSBzdGFydGVyIHNoaXAgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGZvciBhIHJlZ2lzdGVyZWQgcGxheWVyLiBBdmFpbGFibGUgb25seSBvbiB0ZXN0IGRlcGxveW1lbnRzIHdoZXJlIG5vIGluLWdhbWUgc2hpcCBlY29ub215IHlldCBleGlzdHMuIFJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gYmUgYSBqb2luZWQgcGxheWVyIHdpdGggbm8gZXhpc3Rpbmcgc2hpcHM7IHRoZSByZXN1bHRpbmcgc2hpcCBpcyBmaXR0ZWQgd2l0aCBhIGdlbmVyYXRvciwgZW5naW5lLCBnYXRoZXJlciwgY3JhZnRlciwgYW5kIGhhdWxlciBtb2R1bGUuAACoG99pVEQJY2xlYW5yc3Zw7AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYW5yc3ZwCnN1bW1hcnk6ICdDbGVhbiB1cCBwYXN0IGVwb2NoIHJlc2VydmVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFcmFzZSByZXNlcnZlIHRhYmxlIHJvd3MgZnJvbSBhIHBhc3QgZXBvY2guIENhbm5vdCBjbGVhbiB0aGUgY3VycmVudCBvciBmdXR1cmUgZXBvY2hzLiBUaGUgbWF4X3Jvd3MgcGFyYW1ldGVyIGNhcHMgdGhlIG51bWJlciBvZiByb3dzIGVyYXNlZCBwZXIgY2FsbCB0byBsaW1pdCBDUFUgdXNhZ2UuAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdOwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4AAGA0MrcmRQljb25maWdsb2fdAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb25maWdsb2cKc3VtbWFyeTogJ0xvZyBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IGxvZ3MgdGhlIGN1cnJlbnQgZ2FtZSBjb25maWd1cmF0aW9uLiBDYWxsZWQgaW5saW5lIGFmdGVyIGluaXRpYWxpemF0aW9uIHRvIGJyb2FkY2FzdCBjb25maWcgdmlhIGFjdGlvbiB0cmFjZXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAgLzMRQVjcmFmdMgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyYWZ0CnN1bW1hcnk6ICdDcmFmdCBpdGVtcyBmcm9tIGEgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2Zvcm0gY2FyZ28gaXRlbXMgaW50byBhIG5ldyBpdGVtIHVzaW5nIGEgcmVjaXBlLiBUaGUgZW50aXR5IG11c3QgaGF2ZSBhIGNyYWZ0ZXIgbW9kdWxlIGluc3RhbGxlZC4gQ29uc3VtZXMgZW5lcmd5IGFuZCBzY2hlZHVsZXMgYSBjcmFmdGluZyB0YXNrIHdpdGggZHVyYXRpb24gYmFzZWQgb24gdG90YWwgaW5wdXQgbWFzcyBhbmQgY3JhZnRlciBzcGVlZC4gSW5wdXQgcXVhbnRpdGllcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIHJlY2lwZSByZXF1aXJlbWVudHMu4LPLU6ls1EUMY3JlYXRlZW50aXR5vwEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JlYXRlZW50aXR5CnN1bW1hcnk6ICdERUJVRzogY3JlYXRlIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzAAAAAABc1bJhBmdhdGhlcpcDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdhdGhlcgpzdW1tYXJ5OiAnR2F0aGVyIHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKR2F0aGVyIHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZ2F0aGVyYWJsZSBsb2NhdGlvbiB0eXBlcy4gU2NoZWR1bGVzIGEgZ2F0aGVyIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGdhdGhlcmVyIHN0YXRzIGFuZCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBjb21wb3NpdGlvbi4AAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLgBUPI65qLJiC2dldGVsaWdpYmxlyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZWxpZ2libGUKc3VtbWFyeTogJ0dldCBlbGlnaWJsZSByZXNvdXJjZSBpdGVtIElEcyBhdCBhIGxvY2F0aW9uIGFuZCBzdHJhdHVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbGlzdCBvZiByZXNvdXJjZSBpdGVtIElEcyBlbGlnaWJsZSB0byBiZSBnYXRoZXJlZCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgYW5kIHN0cmF0dW0gZGVwdGguIEl0ZW1zIGFyZSBnYXRlZCBieSBib3RoIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIHByb2ZpbGUgYW5kIHRoZSBkZXB0aCB0aHJlc2hvbGQgZm9yIGVhY2ggdGllci4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy6AVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgAAADjTiLNiCGdldHNsb3RzuwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c2xvdHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc2xvdCBsYXlvdXRzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbW9kdWxlIHNsb3QgbGF5b3V0IGZvciBldmVyeSBlbnRpdHkgaXRlbSB0eXBlLCBsaXN0aW5nIHRoZSBvcmRlcmVkIHNsb3QgdHlwZXMgYXZhaWxhYmxlIGZvciBtb2R1bGUgaW5zdGFsbGF0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRldGVybWluZSB3aGljaCBtb2R1bGUgdHlwZXMgYXJlIGNvbXBhdGlibGUgd2l0aCBhIGdpdmVuIGVudGl0eSBodWxsLgCA1NncjLNiCmdldHN0cmF0dW3SAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdHJhdHVtCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHJlc291cmNlIHN0cmF0dW0gZGF0YSBmb3IgYSBzcGVjaWZpYyBkZXB0aCBsYXllciBhdCBhIGNvb3JkaW5hdGUsIGluY2x1ZGluZyB0aGUgc3RyYXR1bSBzZWVkIGluZm8gYW5kIGRlcml2ZWQgcmVzb3VyY2Ugc3RhdHMugJW7RkqNs2IMZ2V0c3VtbWFyaWVz6AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3VtbWFyaWVzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHN1bW1hcmllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgbGlnaHR3ZWlnaHQgc3VtbWFyaWVzIG9mIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllciBpbmNsdWRpbmcgdHlwZSwgaWQsIG93bmVyLCBuYW1lLCBsb2NhdGlvbiwgYW5kIGlkbGUgc3RhdHVzLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4Aotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AgPouGpfddAppbml0aWFsaXplgAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdGlhbGl6ZQpzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHkAAAAAQO1IsboHcmVzb2x2ZdADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlc29sdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVzb2x2ZSBjb21wbGV0ZWQgdGFza3MgaW4gYW4gZW50aXR5J3Mgc2NoZWR1bGUsIGFwcGx5aW5nIHRoZWlyIGVmZmVjdHMgKHJlY2hhcmdlIGVuZXJneSwgdXBkYXRlIGxvY2F0aW9uLCBsb2FkL3VubG9hZCBjYXJnbykuIElmIGNvdW50IGlzIHNwZWNpZmllZCwgcmVzb2x2ZSBleGFjdGx5IHRoYXQgbWFueSB0YXNrczsgb3RoZXJ3aXNlIHJlc29sdmUgYWxsIGNvbXBsZXRlZCB0YXNrcy4gRmFpbHMgaWYgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlZCB0YXNrcy4AAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAAAAkKPBBHNhbHTYAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AQDRqq1sdxApza2lwcmV2ZWFsAAAAZdegyU3FCnNwYXduY2FyZ2/FAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bmNhcmdvCnN1bW1hcnk6ICdERUJVRzogc3Bhd24gY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAJKCyNTJTcULc3Bhd25wYWNrZWTnAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bnBhY2tlZApzdW1tYXJ5OiAnREVCVUc6IHNwYXduIGEgcGFja2VkIGVudGl0eSB3aXRoIGluc3RhbGxlZCBtb2R1bGVzIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCSSkrhyU3FC3NwYXduc2VlZGVkzQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25zZWVkZWQKc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBzZWVkZWQgY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AAACexqrS1Ah1bmRlcGxveecELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVuZGVwbG95CnN1bW1hcnk6ICdQYWNrIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYSBob3N0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQYWNrIGFuIGVudGl0eSBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnbyBhcyBhIHBhY2tlZC1lbnRpdHkgaXRlbS4gSG9zdCBhbmQgdGFyZ2V0IG11c3Qgc2hhcmUgdGhlIHNhbWUgb3duZXIgYW5kIGNvb3JkaW5hdGVzLCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycyBhbmQgZW5vdWdoIGNhcGFjaXR5IGZvciB0aGUgcGFja2VkIG1hc3MsIGFuZCB0aGUgdGFyZ2V0IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGFuZCBzY2hlZHVsZXMgdW5kZXBsb3kgdGFza3Mgb24gYm90aCBlbnRpdGllczsgb24gcmVzb2x1dGlvbiB0aGUgdGFyZ2V0IGlzIGVyYXNlZCBhbmQgdGhlIHBhY2tlZCBlbnRpdHkgaXMgYWRkZWQgdG8gdGhlIGhvc3QncyBjYXJnby4gSW52ZXJzZSBvZiBkZXBsb3kuAAAAAABQr+EEd2FycJ8DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdhcnAKc3VtbWFyeTogJ1dhcnAgdG8gYSBkZXN0aW5hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFudGx5IHRlbGVwb3J0IGFuIGVudGl0eSB0byBhIGRlc3RpbmF0aW9uIHN5c3RlbS4gUmVxdWlyZXMgd2FycCBjYXBhYmlsaXR5LCBmdWxsIGVuZXJneSwgZW1wdHkgY2FyZ28sIGFuZCBhbiBlbXB0eSBzY2hlZHVsZS4gVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgYSB2YWxpZCBzeXN0ZW0gd2l0aGluIHdhcnAgcmFuZ2UuIFJlc29sdmVzIGltbWVkaWF0ZWx5IGFzIGEgemVyby1kdXJhdGlvbiB0YXNrLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFDN5QR3cmFw/gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcApzdW1tYXJ5OiAnV3JhcCBjYXJnbyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhIHF1YW50aXR5IG9mIGNhcmdvIGZyb20gYW4gZW50aXR5IGludG8gYW4gQXRvbWljQXNzZXRzIE5GVCBtaW50ZWQgdG8gdGhlIHNwZWNpZmllZCBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGhhdmUgbG9hZGVycywgYW5kIGNvbnRhaW4gZW5vdWdoIG9mIHRoZSByZXF1ZXN0ZWQgY2FyZ28uIFNjaGVkdWxlcyBhIHdyYXAgdGFzayB0aGF0LCBvbiByZXNvbHV0aW9uLCByZW1vdmVzIHRoZSBjYXJnbyBmcm9tIHRoZSBlbnRpdHkgYW5kIG1pbnRzIHRoZSBORlQgdXNpbmcgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyZWQgZm9yIHRoYXQgaXRlbSBpZC4AgM8uT1XN5Qp3cmFwZW50aXR55gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcGVudGl0eQpzdW1tYXJ5OiAnV3JhcCBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhbiBlbnRpdHkgaW50byBhbiBBdG9taWNBc3NldHMgTkZUIG1pbnRlZCB0byBpdHMgb3duZXIuIFRoZSBlbnRpdHkgbXVzdCBiZSBhdCBhIG5leHVzLCBpZGxlIHdpdGggZW1wdHkgY2FyZ28sIGFuZCBoYXZlIGFuIG5mdGNvbmZpZyBtYXBwaW5nIGZvciBpdHMgaXRlbSBpZC4gU2NoZWR1bGVzIGEgd3JhcCB0YXNrIHRoYXQsIG9uIHJlc29sdXRpb24sIGVyYXNlcyB0aGUgZW50aXR5IGFuZCBtaW50cyB0aGUgTkZUIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlcy4IAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAPjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAKAAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAADbtIpUoMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAABgbk2KsmILZ2FtZV9jb25maWcAVDyOuaiyYgh1aW50MTZbXQCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwBMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm+AVfVZquyyYgtlbnVtX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkALCqPicqs2ILZW51bV9yZXN1bHQAAFZRJyqzYg5tb2R1bGVzX3Jlc3VsdAAA8OcaNbNiC25lYXJieV9pbmZvAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mbwAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAAABXLTzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHMAAAAAAFDN5Qx0YXNrX3Jlc3VsdHMAgM8uT1XN5Qx0YXNrX3Jlc3VsdHM=');
|
|
217
229
|
const abi = antelope.ABI.from(abiBlob);
|
|
218
230
|
exports.ServerTypes = void 0;
|
|
219
231
|
(function (Types) {
|
|
220
|
-
let
|
|
232
|
+
let packed_module = class packed_module extends antelope.Struct {
|
|
221
233
|
};
|
|
222
234
|
tslib.__decorate([
|
|
223
|
-
antelope.Struct.field(antelope.
|
|
224
|
-
],
|
|
235
|
+
antelope.Struct.field(antelope.UInt16)
|
|
236
|
+
], packed_module.prototype, "item_id", void 0);
|
|
225
237
|
tslib.__decorate([
|
|
226
238
|
antelope.Struct.field(antelope.UInt64)
|
|
227
|
-
],
|
|
239
|
+
], packed_module.prototype, "stats", void 0);
|
|
240
|
+
packed_module = tslib.__decorate([
|
|
241
|
+
antelope.Struct.type('packed_module')
|
|
242
|
+
], packed_module);
|
|
243
|
+
Types.packed_module = packed_module;
|
|
244
|
+
let module_entry = class module_entry extends antelope.Struct {
|
|
245
|
+
};
|
|
228
246
|
tslib.__decorate([
|
|
229
247
|
antelope.Struct.field(antelope.UInt8)
|
|
230
|
-
],
|
|
248
|
+
], module_entry.prototype, "type", void 0);
|
|
249
|
+
tslib.__decorate([
|
|
250
|
+
antelope.Struct.field(packed_module, { optional: true })
|
|
251
|
+
], module_entry.prototype, "installed", void 0);
|
|
252
|
+
module_entry = tslib.__decorate([
|
|
253
|
+
antelope.Struct.type('module_entry')
|
|
254
|
+
], module_entry);
|
|
255
|
+
Types.module_entry = module_entry;
|
|
256
|
+
let cargo_ref = class cargo_ref extends antelope.Struct {
|
|
257
|
+
};
|
|
258
|
+
tslib.__decorate([
|
|
259
|
+
antelope.Struct.field(antelope.UInt16)
|
|
260
|
+
], cargo_ref.prototype, "item_id", void 0);
|
|
231
261
|
tslib.__decorate([
|
|
232
262
|
antelope.Struct.field(antelope.UInt64)
|
|
233
|
-
],
|
|
263
|
+
], cargo_ref.prototype, "stats", void 0);
|
|
264
|
+
tslib.__decorate([
|
|
265
|
+
antelope.Struct.field(module_entry, { array: true })
|
|
266
|
+
], cargo_ref.prototype, "modules", void 0);
|
|
267
|
+
cargo_ref = tslib.__decorate([
|
|
268
|
+
antelope.Struct.type('cargo_ref')
|
|
269
|
+
], cargo_ref);
|
|
270
|
+
Types.cargo_ref = cargo_ref;
|
|
271
|
+
let addmodule = class addmodule extends antelope.Struct {
|
|
272
|
+
};
|
|
234
273
|
tslib.__decorate([
|
|
235
274
|
antelope.Struct.field(antelope.UInt64)
|
|
236
|
-
], addmodule.prototype, "
|
|
275
|
+
], addmodule.prototype, "entity_id", void 0);
|
|
276
|
+
tslib.__decorate([
|
|
277
|
+
antelope.Struct.field(antelope.UInt8)
|
|
278
|
+
], addmodule.prototype, "module_index", void 0);
|
|
279
|
+
tslib.__decorate([
|
|
280
|
+
antelope.Struct.field(cargo_ref)
|
|
281
|
+
], addmodule.prototype, "module_ref", void 0);
|
|
282
|
+
tslib.__decorate([
|
|
283
|
+
antelope.Struct.field(cargo_ref, { optional: true })
|
|
284
|
+
], addmodule.prototype, "target_ref", void 0);
|
|
237
285
|
addmodule = tslib.__decorate([
|
|
238
286
|
antelope.Struct.type('addmodule')
|
|
239
287
|
], addmodule);
|
|
@@ -265,53 +313,26 @@ exports.ServerTypes = void 0;
|
|
|
265
313
|
antelope.Struct.type('advance')
|
|
266
314
|
], advance);
|
|
267
315
|
Types.advance = advance;
|
|
268
|
-
let packed_module = class packed_module extends antelope.Struct {
|
|
269
|
-
};
|
|
270
|
-
tslib.__decorate([
|
|
271
|
-
antelope.Struct.field(antelope.UInt16)
|
|
272
|
-
], packed_module.prototype, "item_id", void 0);
|
|
273
|
-
tslib.__decorate([
|
|
274
|
-
antelope.Struct.field(antelope.UInt64)
|
|
275
|
-
], packed_module.prototype, "stats", void 0);
|
|
276
|
-
packed_module = tslib.__decorate([
|
|
277
|
-
antelope.Struct.type('packed_module')
|
|
278
|
-
], packed_module);
|
|
279
|
-
Types.packed_module = packed_module;
|
|
280
|
-
let module_entry = class module_entry extends antelope.Struct {
|
|
281
|
-
};
|
|
282
|
-
tslib.__decorate([
|
|
283
|
-
antelope.Struct.field(antelope.UInt8)
|
|
284
|
-
], module_entry.prototype, "type", void 0);
|
|
285
|
-
tslib.__decorate([
|
|
286
|
-
antelope.Struct.field(packed_module, { optional: true })
|
|
287
|
-
], module_entry.prototype, "installed", void 0);
|
|
288
|
-
module_entry = tslib.__decorate([
|
|
289
|
-
antelope.Struct.type('module_entry')
|
|
290
|
-
], module_entry);
|
|
291
|
-
Types.module_entry = module_entry;
|
|
292
316
|
let cargo_item = class cargo_item extends antelope.Struct {
|
|
293
317
|
};
|
|
294
318
|
tslib.__decorate([
|
|
295
319
|
antelope.Struct.field(antelope.UInt16)
|
|
296
320
|
], cargo_item.prototype, "item_id", void 0);
|
|
297
|
-
tslib.__decorate([
|
|
298
|
-
antelope.Struct.field(antelope.UInt32)
|
|
299
|
-
], cargo_item.prototype, "quantity", void 0);
|
|
300
321
|
tslib.__decorate([
|
|
301
322
|
antelope.Struct.field(antelope.UInt64)
|
|
302
323
|
], cargo_item.prototype, "stats", void 0);
|
|
303
324
|
tslib.__decorate([
|
|
304
325
|
antelope.Struct.field(module_entry, { array: true })
|
|
305
326
|
], cargo_item.prototype, "modules", void 0);
|
|
327
|
+
tslib.__decorate([
|
|
328
|
+
antelope.Struct.field(antelope.UInt32)
|
|
329
|
+
], cargo_item.prototype, "quantity", void 0);
|
|
306
330
|
cargo_item = tslib.__decorate([
|
|
307
331
|
antelope.Struct.type('cargo_item')
|
|
308
332
|
], cargo_item);
|
|
309
333
|
Types.cargo_item = cargo_item;
|
|
310
334
|
let blend = class blend extends antelope.Struct {
|
|
311
335
|
};
|
|
312
|
-
tslib.__decorate([
|
|
313
|
-
antelope.Struct.field(antelope.Name)
|
|
314
|
-
], blend.prototype, "entity_type", void 0);
|
|
315
336
|
tslib.__decorate([
|
|
316
337
|
antelope.Struct.field(antelope.UInt64)
|
|
317
338
|
], blend.prototype, "id", void 0);
|
|
@@ -324,9 +345,6 @@ exports.ServerTypes = void 0;
|
|
|
324
345
|
Types.blend = blend;
|
|
325
346
|
let cancel = class cancel extends antelope.Struct {
|
|
326
347
|
};
|
|
327
|
-
tslib.__decorate([
|
|
328
|
-
antelope.Struct.field(antelope.Name)
|
|
329
|
-
], cancel.prototype, "entity_type", void 0);
|
|
330
348
|
tslib.__decorate([
|
|
331
349
|
antelope.Struct.field(antelope.UInt64)
|
|
332
350
|
], cancel.prototype, "id", void 0);
|
|
@@ -397,6 +415,27 @@ exports.ServerTypes = void 0;
|
|
|
397
415
|
antelope.Struct.type('cargo_row')
|
|
398
416
|
], cargo_row);
|
|
399
417
|
Types.cargo_row = cargo_row;
|
|
418
|
+
let cargo_view = class cargo_view extends antelope.Struct {
|
|
419
|
+
};
|
|
420
|
+
tslib.__decorate([
|
|
421
|
+
antelope.Struct.field(antelope.UInt16)
|
|
422
|
+
], cargo_view.prototype, "item_id", void 0);
|
|
423
|
+
tslib.__decorate([
|
|
424
|
+
antelope.Struct.field(antelope.UInt64)
|
|
425
|
+
], cargo_view.prototype, "stats", void 0);
|
|
426
|
+
tslib.__decorate([
|
|
427
|
+
antelope.Struct.field(module_entry, { array: true })
|
|
428
|
+
], cargo_view.prototype, "modules", void 0);
|
|
429
|
+
tslib.__decorate([
|
|
430
|
+
antelope.Struct.field(antelope.UInt32)
|
|
431
|
+
], cargo_view.prototype, "quantity", void 0);
|
|
432
|
+
tslib.__decorate([
|
|
433
|
+
antelope.Struct.field(antelope.UInt64)
|
|
434
|
+
], cargo_view.prototype, "id", void 0);
|
|
435
|
+
cargo_view = tslib.__decorate([
|
|
436
|
+
antelope.Struct.type('cargo_view')
|
|
437
|
+
], cargo_view);
|
|
438
|
+
Types.cargo_view = cargo_view;
|
|
400
439
|
let claimstarter = class claimstarter extends antelope.Struct {
|
|
401
440
|
};
|
|
402
441
|
tslib.__decorate([
|
|
@@ -520,83 +559,8 @@ exports.ServerTypes = void 0;
|
|
|
520
559
|
antelope.Struct.type('coordinates')
|
|
521
560
|
], coordinates);
|
|
522
561
|
Types.coordinates = coordinates;
|
|
523
|
-
let task = class task extends antelope.Struct {
|
|
524
|
-
};
|
|
525
|
-
tslib.__decorate([
|
|
526
|
-
antelope.Struct.field(antelope.UInt8)
|
|
527
|
-
], task.prototype, "type", void 0);
|
|
528
|
-
tslib.__decorate([
|
|
529
|
-
antelope.Struct.field(antelope.UInt32)
|
|
530
|
-
], task.prototype, "duration", void 0);
|
|
531
|
-
tslib.__decorate([
|
|
532
|
-
antelope.Struct.field(antelope.UInt8)
|
|
533
|
-
], task.prototype, "cancelable", void 0);
|
|
534
|
-
tslib.__decorate([
|
|
535
|
-
antelope.Struct.field(coordinates, { optional: true })
|
|
536
|
-
], task.prototype, "coordinates", void 0);
|
|
537
|
-
tslib.__decorate([
|
|
538
|
-
antelope.Struct.field(cargo_item, { array: true })
|
|
539
|
-
], task.prototype, "cargo", void 0);
|
|
540
|
-
tslib.__decorate([
|
|
541
|
-
antelope.Struct.field(entity_ref, { optional: true })
|
|
542
|
-
], task.prototype, "entitytarget", void 0);
|
|
543
|
-
tslib.__decorate([
|
|
544
|
-
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
545
|
-
], task.prototype, "entitygroup", void 0);
|
|
546
|
-
tslib.__decorate([
|
|
547
|
-
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
548
|
-
], task.prototype, "energy_cost", void 0);
|
|
549
|
-
task = tslib.__decorate([
|
|
550
|
-
antelope.Struct.type('task')
|
|
551
|
-
], task);
|
|
552
|
-
Types.task = task;
|
|
553
|
-
let schedule = class schedule extends antelope.Struct {
|
|
554
|
-
};
|
|
555
|
-
tslib.__decorate([
|
|
556
|
-
antelope.Struct.field(antelope.TimePoint)
|
|
557
|
-
], schedule.prototype, "started", void 0);
|
|
558
|
-
tslib.__decorate([
|
|
559
|
-
antelope.Struct.field(task, { array: true })
|
|
560
|
-
], schedule.prototype, "tasks", void 0);
|
|
561
|
-
schedule = tslib.__decorate([
|
|
562
|
-
antelope.Struct.type('schedule')
|
|
563
|
-
], schedule);
|
|
564
|
-
Types.schedule = schedule;
|
|
565
|
-
let container_row = class container_row extends antelope.Struct {
|
|
566
|
-
};
|
|
567
|
-
tslib.__decorate([
|
|
568
|
-
antelope.Struct.field(antelope.UInt64)
|
|
569
|
-
], container_row.prototype, "id", void 0);
|
|
570
|
-
tslib.__decorate([
|
|
571
|
-
antelope.Struct.field(antelope.Name)
|
|
572
|
-
], container_row.prototype, "owner", void 0);
|
|
573
|
-
tslib.__decorate([
|
|
574
|
-
antelope.Struct.field('string')
|
|
575
|
-
], container_row.prototype, "name", void 0);
|
|
576
|
-
tslib.__decorate([
|
|
577
|
-
antelope.Struct.field(coordinates)
|
|
578
|
-
], container_row.prototype, "coordinates", void 0);
|
|
579
|
-
tslib.__decorate([
|
|
580
|
-
antelope.Struct.field(antelope.UInt32)
|
|
581
|
-
], container_row.prototype, "hullmass", void 0);
|
|
582
|
-
tslib.__decorate([
|
|
583
|
-
antelope.Struct.field(antelope.UInt32)
|
|
584
|
-
], container_row.prototype, "capacity", void 0);
|
|
585
|
-
tslib.__decorate([
|
|
586
|
-
antelope.Struct.field(antelope.UInt32)
|
|
587
|
-
], container_row.prototype, "cargomass", void 0);
|
|
588
|
-
tslib.__decorate([
|
|
589
|
-
antelope.Struct.field(schedule, { optional: true })
|
|
590
|
-
], container_row.prototype, "schedule", void 0);
|
|
591
|
-
container_row = tslib.__decorate([
|
|
592
|
-
antelope.Struct.type('container_row')
|
|
593
|
-
], container_row);
|
|
594
|
-
Types.container_row = container_row;
|
|
595
562
|
let craft = class craft extends antelope.Struct {
|
|
596
563
|
};
|
|
597
|
-
tslib.__decorate([
|
|
598
|
-
antelope.Struct.field(antelope.Name)
|
|
599
|
-
], craft.prototype, "entity_type", void 0);
|
|
600
564
|
tslib.__decorate([
|
|
601
565
|
antelope.Struct.field(antelope.UInt64)
|
|
602
566
|
], craft.prototype, "id", void 0);
|
|
@@ -646,20 +610,23 @@ exports.ServerTypes = void 0;
|
|
|
646
610
|
antelope.Struct.type('createentity')
|
|
647
611
|
], createentity);
|
|
648
612
|
Types.createentity = createentity;
|
|
649
|
-
let
|
|
613
|
+
let demolish = class demolish extends antelope.Struct {
|
|
650
614
|
};
|
|
651
615
|
tslib.__decorate([
|
|
652
|
-
antelope.Struct.field(antelope.
|
|
653
|
-
],
|
|
616
|
+
antelope.Struct.field(antelope.UInt64)
|
|
617
|
+
], demolish.prototype, "entity_id", void 0);
|
|
618
|
+
demolish = tslib.__decorate([
|
|
619
|
+
antelope.Struct.type('demolish')
|
|
620
|
+
], demolish);
|
|
621
|
+
Types.demolish = demolish;
|
|
622
|
+
let deploy = class deploy extends antelope.Struct {
|
|
623
|
+
};
|
|
654
624
|
tslib.__decorate([
|
|
655
625
|
antelope.Struct.field(antelope.UInt64)
|
|
656
626
|
], deploy.prototype, "id", void 0);
|
|
657
627
|
tslib.__decorate([
|
|
658
|
-
antelope.Struct.field(
|
|
659
|
-
], deploy.prototype, "
|
|
660
|
-
tslib.__decorate([
|
|
661
|
-
antelope.Struct.field(antelope.UInt64)
|
|
662
|
-
], deploy.prototype, "stats", void 0);
|
|
628
|
+
antelope.Struct.field(cargo_ref)
|
|
629
|
+
], deploy.prototype, "ref", void 0);
|
|
663
630
|
deploy = tslib.__decorate([
|
|
664
631
|
antelope.Struct.type('deploy')
|
|
665
632
|
], deploy);
|
|
@@ -784,6 +751,48 @@ exports.ServerTypes = void 0;
|
|
|
784
751
|
antelope.Struct.type('warp_stats')
|
|
785
752
|
], warp_stats);
|
|
786
753
|
Types.warp_stats = warp_stats;
|
|
754
|
+
let task = class task extends antelope.Struct {
|
|
755
|
+
};
|
|
756
|
+
tslib.__decorate([
|
|
757
|
+
antelope.Struct.field(antelope.UInt8)
|
|
758
|
+
], task.prototype, "type", void 0);
|
|
759
|
+
tslib.__decorate([
|
|
760
|
+
antelope.Struct.field(antelope.UInt32)
|
|
761
|
+
], task.prototype, "duration", void 0);
|
|
762
|
+
tslib.__decorate([
|
|
763
|
+
antelope.Struct.field(antelope.UInt8)
|
|
764
|
+
], task.prototype, "cancelable", void 0);
|
|
765
|
+
tslib.__decorate([
|
|
766
|
+
antelope.Struct.field(coordinates, { optional: true })
|
|
767
|
+
], task.prototype, "coordinates", void 0);
|
|
768
|
+
tslib.__decorate([
|
|
769
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
770
|
+
], task.prototype, "cargo", void 0);
|
|
771
|
+
tslib.__decorate([
|
|
772
|
+
antelope.Struct.field(entity_ref, { optional: true })
|
|
773
|
+
], task.prototype, "entitytarget", void 0);
|
|
774
|
+
tslib.__decorate([
|
|
775
|
+
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
776
|
+
], task.prototype, "entitygroup", void 0);
|
|
777
|
+
tslib.__decorate([
|
|
778
|
+
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
779
|
+
], task.prototype, "energy_cost", void 0);
|
|
780
|
+
task = tslib.__decorate([
|
|
781
|
+
antelope.Struct.type('task')
|
|
782
|
+
], task);
|
|
783
|
+
Types.task = task;
|
|
784
|
+
let schedule = class schedule extends antelope.Struct {
|
|
785
|
+
};
|
|
786
|
+
tslib.__decorate([
|
|
787
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
788
|
+
], schedule.prototype, "started", void 0);
|
|
789
|
+
tslib.__decorate([
|
|
790
|
+
antelope.Struct.field(task, { array: true })
|
|
791
|
+
], schedule.prototype, "tasks", void 0);
|
|
792
|
+
schedule = tslib.__decorate([
|
|
793
|
+
antelope.Struct.type('schedule')
|
|
794
|
+
], schedule);
|
|
795
|
+
Types.schedule = schedule;
|
|
787
796
|
let entity_info = class entity_info extends antelope.Struct {
|
|
788
797
|
};
|
|
789
798
|
tslib.__decorate([
|
|
@@ -805,7 +814,7 @@ exports.ServerTypes = void 0;
|
|
|
805
814
|
antelope.Struct.field(antelope.UInt32)
|
|
806
815
|
], entity_info.prototype, "cargomass", void 0);
|
|
807
816
|
tslib.__decorate([
|
|
808
|
-
antelope.Struct.field(
|
|
817
|
+
antelope.Struct.field(cargo_view, { array: true })
|
|
809
818
|
], entity_info.prototype, "cargo", void 0);
|
|
810
819
|
tslib.__decorate([
|
|
811
820
|
antelope.Struct.field(loader_stats, { optional: true })
|
|
@@ -870,6 +879,9 @@ exports.ServerTypes = void 0;
|
|
|
870
879
|
tslib.__decorate([
|
|
871
880
|
antelope.Struct.field(antelope.UInt8)
|
|
872
881
|
], slot_def.prototype, "type", void 0);
|
|
882
|
+
tslib.__decorate([
|
|
883
|
+
antelope.Struct.field(antelope.UInt16)
|
|
884
|
+
], slot_def.prototype, "output_pct", void 0);
|
|
873
885
|
slot_def = tslib.__decorate([
|
|
874
886
|
antelope.Struct.type('slot_def')
|
|
875
887
|
], slot_def);
|
|
@@ -895,6 +907,72 @@ exports.ServerTypes = void 0;
|
|
|
895
907
|
antelope.Struct.type('entity_layouts_result')
|
|
896
908
|
], entity_layouts_result);
|
|
897
909
|
Types.entity_layouts_result = entity_layouts_result;
|
|
910
|
+
let entity_row = class entity_row extends antelope.Struct {
|
|
911
|
+
};
|
|
912
|
+
tslib.__decorate([
|
|
913
|
+
antelope.Struct.field(antelope.UInt64)
|
|
914
|
+
], entity_row.prototype, "id", void 0);
|
|
915
|
+
tslib.__decorate([
|
|
916
|
+
antelope.Struct.field(antelope.Name)
|
|
917
|
+
], entity_row.prototype, "owner", void 0);
|
|
918
|
+
tslib.__decorate([
|
|
919
|
+
antelope.Struct.field(antelope.Name)
|
|
920
|
+
], entity_row.prototype, "kind", void 0);
|
|
921
|
+
tslib.__decorate([
|
|
922
|
+
antelope.Struct.field('string')
|
|
923
|
+
], entity_row.prototype, "name", void 0);
|
|
924
|
+
tslib.__decorate([
|
|
925
|
+
antelope.Struct.field(antelope.UInt64)
|
|
926
|
+
], entity_row.prototype, "stats", void 0);
|
|
927
|
+
tslib.__decorate([
|
|
928
|
+
antelope.Struct.field(coordinates)
|
|
929
|
+
], entity_row.prototype, "coordinates", void 0);
|
|
930
|
+
tslib.__decorate([
|
|
931
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
932
|
+
], entity_row.prototype, "hullmass", void 0);
|
|
933
|
+
tslib.__decorate([
|
|
934
|
+
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
935
|
+
], entity_row.prototype, "capacity", void 0);
|
|
936
|
+
tslib.__decorate([
|
|
937
|
+
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
938
|
+
], entity_row.prototype, "energy", void 0);
|
|
939
|
+
tslib.__decorate([
|
|
940
|
+
antelope.Struct.field(antelope.UInt32)
|
|
941
|
+
], entity_row.prototype, "cargomass", void 0);
|
|
942
|
+
tslib.__decorate([
|
|
943
|
+
antelope.Struct.field(movement_stats, { optional: true })
|
|
944
|
+
], entity_row.prototype, "engines", void 0);
|
|
945
|
+
tslib.__decorate([
|
|
946
|
+
antelope.Struct.field(energy_stats, { optional: true })
|
|
947
|
+
], entity_row.prototype, "generator", void 0);
|
|
948
|
+
tslib.__decorate([
|
|
949
|
+
antelope.Struct.field(loader_stats, { optional: true })
|
|
950
|
+
], entity_row.prototype, "loaders", void 0);
|
|
951
|
+
tslib.__decorate([
|
|
952
|
+
antelope.Struct.field(gatherer_stats, { optional: true })
|
|
953
|
+
], entity_row.prototype, "gatherer", void 0);
|
|
954
|
+
tslib.__decorate([
|
|
955
|
+
antelope.Struct.field(warp_stats, { optional: true })
|
|
956
|
+
], entity_row.prototype, "warp", void 0);
|
|
957
|
+
tslib.__decorate([
|
|
958
|
+
antelope.Struct.field(crafter_stats, { optional: true })
|
|
959
|
+
], entity_row.prototype, "crafter", void 0);
|
|
960
|
+
tslib.__decorate([
|
|
961
|
+
antelope.Struct.field(hauler_stats, { optional: true })
|
|
962
|
+
], entity_row.prototype, "hauler", void 0);
|
|
963
|
+
tslib.__decorate([
|
|
964
|
+
antelope.Struct.field(module_entry, { array: true })
|
|
965
|
+
], entity_row.prototype, "modules", void 0);
|
|
966
|
+
tslib.__decorate([
|
|
967
|
+
antelope.Struct.field(schedule, { optional: true })
|
|
968
|
+
], entity_row.prototype, "schedule", void 0);
|
|
969
|
+
tslib.__decorate([
|
|
970
|
+
antelope.Struct.field(antelope.UInt16)
|
|
971
|
+
], entity_row.prototype, "item_id", void 0);
|
|
972
|
+
entity_row = tslib.__decorate([
|
|
973
|
+
antelope.Struct.type('entity_row')
|
|
974
|
+
], entity_row);
|
|
975
|
+
Types.entity_row = entity_row;
|
|
898
976
|
let entity_summary = class entity_summary extends antelope.Struct {
|
|
899
977
|
};
|
|
900
978
|
tslib.__decorate([
|
|
@@ -976,14 +1054,23 @@ exports.ServerTypes = void 0;
|
|
|
976
1054
|
antelope.Struct.type('enum_result')
|
|
977
1055
|
], enum_result);
|
|
978
1056
|
Types.enum_result = enum_result;
|
|
1057
|
+
let fixcargomass = class fixcargomass extends antelope.Struct {
|
|
1058
|
+
};
|
|
1059
|
+
tslib.__decorate([
|
|
1060
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1061
|
+
], fixcargomass.prototype, "entity_id", void 0);
|
|
1062
|
+
fixcargomass = tslib.__decorate([
|
|
1063
|
+
antelope.Struct.type('fixcargomass')
|
|
1064
|
+
], fixcargomass);
|
|
1065
|
+
Types.fixcargomass = fixcargomass;
|
|
979
1066
|
let gather = class gather extends antelope.Struct {
|
|
980
1067
|
};
|
|
981
1068
|
tslib.__decorate([
|
|
982
|
-
antelope.Struct.field(
|
|
983
|
-
], gather.prototype, "
|
|
1069
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1070
|
+
], gather.prototype, "source_id", void 0);
|
|
984
1071
|
tslib.__decorate([
|
|
985
|
-
antelope.Struct.field(
|
|
986
|
-
], gather.prototype, "
|
|
1072
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1073
|
+
], gather.prototype, "destination_id", void 0);
|
|
987
1074
|
tslib.__decorate([
|
|
988
1075
|
antelope.Struct.field(antelope.UInt16)
|
|
989
1076
|
], gather.prototype, "stratum", void 0);
|
|
@@ -1000,6 +1087,18 @@ exports.ServerTypes = void 0;
|
|
|
1000
1087
|
antelope.Struct.type('getconfig')
|
|
1001
1088
|
], getconfig);
|
|
1002
1089
|
Types.getconfig = getconfig;
|
|
1090
|
+
let geteligible = class geteligible extends antelope.Struct {
|
|
1091
|
+
};
|
|
1092
|
+
tslib.__decorate([
|
|
1093
|
+
antelope.Struct.field(coordinates)
|
|
1094
|
+
], geteligible.prototype, "coords", void 0);
|
|
1095
|
+
tslib.__decorate([
|
|
1096
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1097
|
+
], geteligible.prototype, "stratum", void 0);
|
|
1098
|
+
geteligible = tslib.__decorate([
|
|
1099
|
+
antelope.Struct.type('geteligible')
|
|
1100
|
+
], geteligible);
|
|
1101
|
+
Types.geteligible = geteligible;
|
|
1003
1102
|
let getentities = class getentities extends antelope.Struct {
|
|
1004
1103
|
};
|
|
1005
1104
|
tslib.__decorate([
|
|
@@ -1014,9 +1113,6 @@ exports.ServerTypes = void 0;
|
|
|
1014
1113
|
Types.getentities = getentities;
|
|
1015
1114
|
let getentity = class getentity extends antelope.Struct {
|
|
1016
1115
|
};
|
|
1017
|
-
tslib.__decorate([
|
|
1018
|
-
antelope.Struct.field(antelope.Name)
|
|
1019
|
-
], getentity.prototype, "entity_type", void 0);
|
|
1020
1116
|
tslib.__decorate([
|
|
1021
1117
|
antelope.Struct.field(antelope.UInt64)
|
|
1022
1118
|
], getentity.prototype, "entity_id", void 0);
|
|
@@ -1086,9 +1182,6 @@ exports.ServerTypes = void 0;
|
|
|
1086
1182
|
Types.getmodules = getmodules;
|
|
1087
1183
|
let getnearby = class getnearby extends antelope.Struct {
|
|
1088
1184
|
};
|
|
1089
|
-
tslib.__decorate([
|
|
1090
|
-
antelope.Struct.field(antelope.Name)
|
|
1091
|
-
], getnearby.prototype, "entity_type", void 0);
|
|
1092
1185
|
tslib.__decorate([
|
|
1093
1186
|
antelope.Struct.field(antelope.UInt64)
|
|
1094
1187
|
], getnearby.prototype, "entity_id", void 0);
|
|
@@ -1228,15 +1321,15 @@ exports.ServerTypes = void 0;
|
|
|
1228
1321
|
antelope.Struct.type('hash512')
|
|
1229
1322
|
], hash512);
|
|
1230
1323
|
Types.hash512 = hash512;
|
|
1231
|
-
let
|
|
1324
|
+
let initialize = class initialize extends antelope.Struct {
|
|
1232
1325
|
};
|
|
1233
1326
|
tslib.__decorate([
|
|
1234
1327
|
antelope.Struct.field(antelope.Checksum256)
|
|
1235
|
-
],
|
|
1236
|
-
|
|
1237
|
-
antelope.Struct.type('
|
|
1238
|
-
],
|
|
1239
|
-
Types.
|
|
1328
|
+
], initialize.prototype, "seed", void 0);
|
|
1329
|
+
initialize = tslib.__decorate([
|
|
1330
|
+
antelope.Struct.type('initialize')
|
|
1331
|
+
], initialize);
|
|
1332
|
+
Types.initialize = initialize;
|
|
1240
1333
|
let item_id_pair = class item_id_pair extends antelope.Struct {
|
|
1241
1334
|
};
|
|
1242
1335
|
tslib.__decorate([
|
|
@@ -1396,29 +1489,11 @@ exports.ServerTypes = void 0;
|
|
|
1396
1489
|
antelope.Struct.type('location_static')
|
|
1397
1490
|
], location_static);
|
|
1398
1491
|
Types.location_static = location_static;
|
|
1399
|
-
let
|
|
1400
|
-
};
|
|
1401
|
-
tslib.__decorate([
|
|
1402
|
-
antelope.Struct.field('bool')
|
|
1403
|
-
], location_epoch.prototype, "active", void 0);
|
|
1404
|
-
tslib.__decorate([
|
|
1405
|
-
antelope.Struct.field(antelope.UInt8)
|
|
1406
|
-
], location_epoch.prototype, "seed0", void 0);
|
|
1407
|
-
tslib.__decorate([
|
|
1408
|
-
antelope.Struct.field(antelope.UInt8)
|
|
1409
|
-
], location_epoch.prototype, "seed1", void 0);
|
|
1410
|
-
location_epoch = tslib.__decorate([
|
|
1411
|
-
antelope.Struct.type('location_epoch')
|
|
1412
|
-
], location_epoch);
|
|
1413
|
-
Types.location_epoch = location_epoch;
|
|
1414
|
-
let location_derived = class location_derived extends antelope.Struct {
|
|
1492
|
+
let location_derived = class location_derived extends antelope.Struct {
|
|
1415
1493
|
};
|
|
1416
1494
|
tslib.__decorate([
|
|
1417
1495
|
antelope.Struct.field(location_static)
|
|
1418
1496
|
], location_derived.prototype, "static_props", void 0);
|
|
1419
|
-
tslib.__decorate([
|
|
1420
|
-
antelope.Struct.field(location_epoch)
|
|
1421
|
-
], location_derived.prototype, "epoch_props", void 0);
|
|
1422
1497
|
tslib.__decorate([
|
|
1423
1498
|
antelope.Struct.field(antelope.UInt16)
|
|
1424
1499
|
], location_derived.prototype, "size", void 0);
|
|
@@ -1438,30 +1513,6 @@ exports.ServerTypes = void 0;
|
|
|
1438
1513
|
antelope.Struct.type('location_info')
|
|
1439
1514
|
], location_info);
|
|
1440
1515
|
Types.location_info = location_info;
|
|
1441
|
-
let location_row = class location_row extends antelope.Struct {
|
|
1442
|
-
};
|
|
1443
|
-
tslib.__decorate([
|
|
1444
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1445
|
-
], location_row.prototype, "id", void 0);
|
|
1446
|
-
tslib.__decorate([
|
|
1447
|
-
antelope.Struct.field(antelope.Name)
|
|
1448
|
-
], location_row.prototype, "owner", void 0);
|
|
1449
|
-
tslib.__decorate([
|
|
1450
|
-
antelope.Struct.field(coordinates)
|
|
1451
|
-
], location_row.prototype, "coordinates", void 0);
|
|
1452
|
-
tslib.__decorate([
|
|
1453
|
-
antelope.Struct.field(antelope.UInt32)
|
|
1454
|
-
], location_row.prototype, "cargomass", void 0);
|
|
1455
|
-
tslib.__decorate([
|
|
1456
|
-
antelope.Struct.field(cargo_item, { array: true })
|
|
1457
|
-
], location_row.prototype, "cargo", void 0);
|
|
1458
|
-
tslib.__decorate([
|
|
1459
|
-
antelope.Struct.field(schedule, { optional: true })
|
|
1460
|
-
], location_row.prototype, "schedule", void 0);
|
|
1461
|
-
location_row = tslib.__decorate([
|
|
1462
|
-
antelope.Struct.type('location_row')
|
|
1463
|
-
], location_row);
|
|
1464
|
-
Types.location_row = location_row;
|
|
1465
1516
|
let module_info = class module_info extends antelope.Struct {
|
|
1466
1517
|
};
|
|
1467
1518
|
tslib.__decorate([
|
|
@@ -1528,24 +1579,6 @@ exports.ServerTypes = void 0;
|
|
|
1528
1579
|
antelope.Struct.type('nearby_info')
|
|
1529
1580
|
], nearby_info);
|
|
1530
1581
|
Types.nearby_info = nearby_info;
|
|
1531
|
-
let nexus_row = class nexus_row extends antelope.Struct {
|
|
1532
|
-
};
|
|
1533
|
-
tslib.__decorate([
|
|
1534
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1535
|
-
], nexus_row.prototype, "id", void 0);
|
|
1536
|
-
tslib.__decorate([
|
|
1537
|
-
antelope.Struct.field(antelope.Name)
|
|
1538
|
-
], nexus_row.prototype, "owner", void 0);
|
|
1539
|
-
tslib.__decorate([
|
|
1540
|
-
antelope.Struct.field('string')
|
|
1541
|
-
], nexus_row.prototype, "name", void 0);
|
|
1542
|
-
tslib.__decorate([
|
|
1543
|
-
antelope.Struct.field(coordinates)
|
|
1544
|
-
], nexus_row.prototype, "coordinates", void 0);
|
|
1545
|
-
nexus_row = tslib.__decorate([
|
|
1546
|
-
antelope.Struct.type('nexus_row')
|
|
1547
|
-
], nexus_row);
|
|
1548
|
-
Types.nexus_row = nexus_row;
|
|
1549
1582
|
let schema_field = class schema_field extends antelope.Struct {
|
|
1550
1583
|
};
|
|
1551
1584
|
tslib.__decorate([
|
|
@@ -1662,15 +1695,6 @@ exports.ServerTypes = void 0;
|
|
|
1662
1695
|
tslib.__decorate([
|
|
1663
1696
|
antelope.Struct.field('string')
|
|
1664
1697
|
], player_info.prototype, "company_name", void 0);
|
|
1665
|
-
tslib.__decorate([
|
|
1666
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1667
|
-
], player_info.prototype, "ship_count", void 0);
|
|
1668
|
-
tslib.__decorate([
|
|
1669
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1670
|
-
], player_info.prototype, "warehouse_count", void 0);
|
|
1671
|
-
tslib.__decorate([
|
|
1672
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1673
|
-
], player_info.prototype, "container_count", void 0);
|
|
1674
1698
|
player_info = tslib.__decorate([
|
|
1675
1699
|
antelope.Struct.type('player_info')
|
|
1676
1700
|
], player_info);
|
|
@@ -1686,9 +1710,6 @@ exports.ServerTypes = void 0;
|
|
|
1686
1710
|
Types.player_row = player_row;
|
|
1687
1711
|
let recharge = class recharge extends antelope.Struct {
|
|
1688
1712
|
};
|
|
1689
|
-
tslib.__decorate([
|
|
1690
|
-
antelope.Struct.field(antelope.Name)
|
|
1691
|
-
], recharge.prototype, "entity_type", void 0);
|
|
1692
1713
|
tslib.__decorate([
|
|
1693
1714
|
antelope.Struct.field(antelope.UInt64)
|
|
1694
1715
|
], recharge.prototype, "id", void 0);
|
|
@@ -1696,6 +1717,15 @@ exports.ServerTypes = void 0;
|
|
|
1696
1717
|
antelope.Struct.type('recharge')
|
|
1697
1718
|
], recharge);
|
|
1698
1719
|
Types.recharge = recharge;
|
|
1720
|
+
let refrshentity = class refrshentity extends antelope.Struct {
|
|
1721
|
+
};
|
|
1722
|
+
tslib.__decorate([
|
|
1723
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1724
|
+
], refrshentity.prototype, "entity_id", void 0);
|
|
1725
|
+
refrshentity = tslib.__decorate([
|
|
1726
|
+
antelope.Struct.type('refrshentity')
|
|
1727
|
+
], refrshentity);
|
|
1728
|
+
Types.refrshentity = refrshentity;
|
|
1699
1729
|
let reserve_row = class reserve_row extends antelope.Struct {
|
|
1700
1730
|
};
|
|
1701
1731
|
tslib.__decorate([
|
|
@@ -1716,9 +1746,6 @@ exports.ServerTypes = void 0;
|
|
|
1716
1746
|
Types.reserve_row = reserve_row;
|
|
1717
1747
|
let resolve = class resolve extends antelope.Struct {
|
|
1718
1748
|
};
|
|
1719
|
-
tslib.__decorate([
|
|
1720
|
-
antelope.Struct.field(antelope.Name)
|
|
1721
|
-
], resolve.prototype, "entity_type", void 0);
|
|
1722
1749
|
tslib.__decorate([
|
|
1723
1750
|
antelope.Struct.field(antelope.UInt64)
|
|
1724
1751
|
], resolve.prototype, "id", void 0);
|
|
@@ -1797,9 +1824,6 @@ exports.ServerTypes = void 0;
|
|
|
1797
1824
|
Types.resources_result = resources_result;
|
|
1798
1825
|
let rmmodule = class rmmodule extends antelope.Struct {
|
|
1799
1826
|
};
|
|
1800
|
-
tslib.__decorate([
|
|
1801
|
-
antelope.Struct.field(antelope.Name)
|
|
1802
|
-
], rmmodule.prototype, "entity_type", void 0);
|
|
1803
1827
|
tslib.__decorate([
|
|
1804
1828
|
antelope.Struct.field(antelope.UInt64)
|
|
1805
1829
|
], rmmodule.prototype, "entity_id", void 0);
|
|
@@ -1807,8 +1831,8 @@ exports.ServerTypes = void 0;
|
|
|
1807
1831
|
antelope.Struct.field(antelope.UInt8)
|
|
1808
1832
|
], rmmodule.prototype, "module_index", void 0);
|
|
1809
1833
|
tslib.__decorate([
|
|
1810
|
-
antelope.Struct.field(
|
|
1811
|
-
], rmmodule.prototype, "
|
|
1834
|
+
antelope.Struct.field(cargo_ref, { optional: true })
|
|
1835
|
+
], rmmodule.prototype, "target_ref", void 0);
|
|
1812
1836
|
rmmodule = tslib.__decorate([
|
|
1813
1837
|
antelope.Struct.type('rmmodule')
|
|
1814
1838
|
], rmmodule);
|
|
@@ -1831,18 +1855,6 @@ exports.ServerTypes = void 0;
|
|
|
1831
1855
|
antelope.Struct.type('salt')
|
|
1832
1856
|
], salt);
|
|
1833
1857
|
Types.salt = salt;
|
|
1834
|
-
let sequence_row = class sequence_row extends antelope.Struct {
|
|
1835
|
-
};
|
|
1836
|
-
tslib.__decorate([
|
|
1837
|
-
antelope.Struct.field(antelope.Name)
|
|
1838
|
-
], sequence_row.prototype, "key", void 0);
|
|
1839
|
-
tslib.__decorate([
|
|
1840
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1841
|
-
], sequence_row.prototype, "value", void 0);
|
|
1842
|
-
sequence_row = tslib.__decorate([
|
|
1843
|
-
antelope.Struct.type('sequence_row')
|
|
1844
|
-
], sequence_row);
|
|
1845
|
-
Types.sequence_row = sequence_row;
|
|
1846
1858
|
let setnftcfg = class setnftcfg extends antelope.Struct {
|
|
1847
1859
|
};
|
|
1848
1860
|
tslib.__decorate([
|
|
@@ -1858,66 +1870,15 @@ exports.ServerTypes = void 0;
|
|
|
1858
1870
|
antelope.Struct.type('setnftcfg')
|
|
1859
1871
|
], setnftcfg);
|
|
1860
1872
|
Types.setnftcfg = setnftcfg;
|
|
1861
|
-
let
|
|
1873
|
+
let skipreveal = class skipreveal extends antelope.Struct {
|
|
1862
1874
|
};
|
|
1863
1875
|
tslib.__decorate([
|
|
1864
|
-
antelope.Struct.field(antelope.
|
|
1865
|
-
],
|
|
1866
|
-
tslib.__decorate([
|
|
1867
|
-
antelope.Struct.
|
|
1868
|
-
],
|
|
1869
|
-
|
|
1870
|
-
antelope.Struct.field('string')
|
|
1871
|
-
], ship_row.prototype, "name", void 0);
|
|
1872
|
-
tslib.__decorate([
|
|
1873
|
-
antelope.Struct.field(antelope.UInt64)
|
|
1874
|
-
], ship_row.prototype, "stats", void 0);
|
|
1875
|
-
tslib.__decorate([
|
|
1876
|
-
antelope.Struct.field(coordinates)
|
|
1877
|
-
], ship_row.prototype, "coordinates", void 0);
|
|
1878
|
-
tslib.__decorate([
|
|
1879
|
-
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1880
|
-
], ship_row.prototype, "hullmass", void 0);
|
|
1881
|
-
tslib.__decorate([
|
|
1882
|
-
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1883
|
-
], ship_row.prototype, "capacity", void 0);
|
|
1884
|
-
tslib.__decorate([
|
|
1885
|
-
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
1886
|
-
], ship_row.prototype, "energy", void 0);
|
|
1887
|
-
tslib.__decorate([
|
|
1888
|
-
antelope.Struct.field(antelope.UInt32)
|
|
1889
|
-
], ship_row.prototype, "cargomass", void 0);
|
|
1890
|
-
tslib.__decorate([
|
|
1891
|
-
antelope.Struct.field(movement_stats, { optional: true })
|
|
1892
|
-
], ship_row.prototype, "engines", void 0);
|
|
1893
|
-
tslib.__decorate([
|
|
1894
|
-
antelope.Struct.field(energy_stats, { optional: true })
|
|
1895
|
-
], ship_row.prototype, "generator", void 0);
|
|
1896
|
-
tslib.__decorate([
|
|
1897
|
-
antelope.Struct.field(loader_stats, { optional: true })
|
|
1898
|
-
], ship_row.prototype, "loaders", void 0);
|
|
1899
|
-
tslib.__decorate([
|
|
1900
|
-
antelope.Struct.field(gatherer_stats, { optional: true })
|
|
1901
|
-
], ship_row.prototype, "gatherer", void 0);
|
|
1902
|
-
tslib.__decorate([
|
|
1903
|
-
antelope.Struct.field(warp_stats, { optional: true })
|
|
1904
|
-
], ship_row.prototype, "warp", void 0);
|
|
1905
|
-
tslib.__decorate([
|
|
1906
|
-
antelope.Struct.field(crafter_stats, { optional: true })
|
|
1907
|
-
], ship_row.prototype, "crafter", void 0);
|
|
1908
|
-
tslib.__decorate([
|
|
1909
|
-
antelope.Struct.field(hauler_stats, { optional: true })
|
|
1910
|
-
], ship_row.prototype, "hauler", void 0);
|
|
1911
|
-
tslib.__decorate([
|
|
1912
|
-
antelope.Struct.field(module_entry, { array: true })
|
|
1913
|
-
], ship_row.prototype, "modules", void 0);
|
|
1914
|
-
tslib.__decorate([
|
|
1915
|
-
antelope.Struct.field(schedule, { optional: true })
|
|
1916
|
-
], ship_row.prototype, "schedule", void 0);
|
|
1917
|
-
ship_row = tslib.__decorate([
|
|
1918
|
-
antelope.Struct.type('ship_row')
|
|
1919
|
-
], ship_row);
|
|
1920
|
-
Types.ship_row = ship_row;
|
|
1876
|
+
antelope.Struct.field(antelope.Checksum256)
|
|
1877
|
+
], skipreveal.prototype, "commit", void 0);
|
|
1878
|
+
skipreveal = tslib.__decorate([
|
|
1879
|
+
antelope.Struct.type('skipreveal')
|
|
1880
|
+
], skipreveal);
|
|
1881
|
+
Types.skipreveal = skipreveal;
|
|
1921
1882
|
let spawncargo = class spawncargo extends antelope.Struct {
|
|
1922
1883
|
};
|
|
1923
1884
|
tslib.__decorate([
|
|
@@ -1980,9 +1941,6 @@ exports.ServerTypes = void 0;
|
|
|
1980
1941
|
tslib.__decorate([
|
|
1981
1942
|
antelope.Struct.field(antelope.UInt64)
|
|
1982
1943
|
], state_row.prototype, "salt", void 0);
|
|
1983
|
-
tslib.__decorate([
|
|
1984
|
-
antelope.Struct.field(antelope.UInt32)
|
|
1985
|
-
], state_row.prototype, "ships", void 0);
|
|
1986
1944
|
tslib.__decorate([
|
|
1987
1945
|
antelope.Struct.field(antelope.Checksum256)
|
|
1988
1946
|
], state_row.prototype, "seed", void 0);
|
|
@@ -2049,36 +2007,21 @@ exports.ServerTypes = void 0;
|
|
|
2049
2007
|
Types.task_results = task_results;
|
|
2050
2008
|
let transfer = class transfer extends antelope.Struct {
|
|
2051
2009
|
};
|
|
2052
|
-
tslib.__decorate([
|
|
2053
|
-
antelope.Struct.field(antelope.Name)
|
|
2054
|
-
], transfer.prototype, "source_type", void 0);
|
|
2055
2010
|
tslib.__decorate([
|
|
2056
2011
|
antelope.Struct.field(antelope.UInt64)
|
|
2057
2012
|
], transfer.prototype, "source_id", void 0);
|
|
2058
|
-
tslib.__decorate([
|
|
2059
|
-
antelope.Struct.field(antelope.Name)
|
|
2060
|
-
], transfer.prototype, "dest_type", void 0);
|
|
2061
2013
|
tslib.__decorate([
|
|
2062
2014
|
antelope.Struct.field(antelope.UInt64)
|
|
2063
2015
|
], transfer.prototype, "dest_id", void 0);
|
|
2064
2016
|
tslib.__decorate([
|
|
2065
|
-
antelope.Struct.field(
|
|
2066
|
-
], transfer.prototype, "
|
|
2067
|
-
tslib.__decorate([
|
|
2068
|
-
antelope.Struct.field(antelope.UInt64)
|
|
2069
|
-
], transfer.prototype, "stats", void 0);
|
|
2070
|
-
tslib.__decorate([
|
|
2071
|
-
antelope.Struct.field(antelope.UInt32)
|
|
2072
|
-
], transfer.prototype, "quantity", void 0);
|
|
2017
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
2018
|
+
], transfer.prototype, "items", void 0);
|
|
2073
2019
|
transfer = tslib.__decorate([
|
|
2074
2020
|
antelope.Struct.type('transfer')
|
|
2075
2021
|
], transfer);
|
|
2076
2022
|
Types.transfer = transfer;
|
|
2077
2023
|
let travel = class travel extends antelope.Struct {
|
|
2078
2024
|
};
|
|
2079
|
-
tslib.__decorate([
|
|
2080
|
-
antelope.Struct.field(antelope.Name)
|
|
2081
|
-
], travel.prototype, "entity_type", void 0);
|
|
2082
2025
|
tslib.__decorate([
|
|
2083
2026
|
antelope.Struct.field(antelope.UInt64)
|
|
2084
2027
|
], travel.prototype, "id", void 0);
|
|
@@ -2113,50 +2056,20 @@ exports.ServerTypes = void 0;
|
|
|
2113
2056
|
antelope.Struct.type('types_row')
|
|
2114
2057
|
], types_row);
|
|
2115
2058
|
Types.types_row = types_row;
|
|
2116
|
-
let
|
|
2059
|
+
let undeploy = class undeploy extends antelope.Struct {
|
|
2117
2060
|
};
|
|
2118
2061
|
tslib.__decorate([
|
|
2119
2062
|
antelope.Struct.field(antelope.UInt64)
|
|
2120
|
-
],
|
|
2121
|
-
tslib.__decorate([
|
|
2122
|
-
antelope.Struct.field(antelope.Name)
|
|
2123
|
-
], warehouse_row.prototype, "owner", void 0);
|
|
2124
|
-
tslib.__decorate([
|
|
2125
|
-
antelope.Struct.field('string')
|
|
2126
|
-
], warehouse_row.prototype, "name", void 0);
|
|
2063
|
+
], undeploy.prototype, "host_id", void 0);
|
|
2127
2064
|
tslib.__decorate([
|
|
2128
2065
|
antelope.Struct.field(antelope.UInt64)
|
|
2129
|
-
],
|
|
2130
|
-
tslib.__decorate([
|
|
2131
|
-
antelope.Struct.
|
|
2132
|
-
],
|
|
2133
|
-
|
|
2134
|
-
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
2135
|
-
], warehouse_row.prototype, "hullmass", void 0);
|
|
2136
|
-
tslib.__decorate([
|
|
2137
|
-
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
2138
|
-
], warehouse_row.prototype, "capacity", void 0);
|
|
2139
|
-
tslib.__decorate([
|
|
2140
|
-
antelope.Struct.field(antelope.UInt32)
|
|
2141
|
-
], warehouse_row.prototype, "cargomass", void 0);
|
|
2142
|
-
tslib.__decorate([
|
|
2143
|
-
antelope.Struct.field(loader_stats, { optional: true })
|
|
2144
|
-
], warehouse_row.prototype, "loaders", void 0);
|
|
2145
|
-
tslib.__decorate([
|
|
2146
|
-
antelope.Struct.field(module_entry, { array: true })
|
|
2147
|
-
], warehouse_row.prototype, "modules", void 0);
|
|
2148
|
-
tslib.__decorate([
|
|
2149
|
-
antelope.Struct.field(schedule, { optional: true })
|
|
2150
|
-
], warehouse_row.prototype, "schedule", void 0);
|
|
2151
|
-
warehouse_row = tslib.__decorate([
|
|
2152
|
-
antelope.Struct.type('warehouse_row')
|
|
2153
|
-
], warehouse_row);
|
|
2154
|
-
Types.warehouse_row = warehouse_row;
|
|
2066
|
+
], undeploy.prototype, "target_id", void 0);
|
|
2067
|
+
undeploy = tslib.__decorate([
|
|
2068
|
+
antelope.Struct.type('undeploy')
|
|
2069
|
+
], undeploy);
|
|
2070
|
+
Types.undeploy = undeploy;
|
|
2155
2071
|
let warp = class warp extends antelope.Struct {
|
|
2156
2072
|
};
|
|
2157
|
-
tslib.__decorate([
|
|
2158
|
-
antelope.Struct.field(antelope.Name)
|
|
2159
|
-
], warp.prototype, "entity_type", void 0);
|
|
2160
2073
|
tslib.__decorate([
|
|
2161
2074
|
antelope.Struct.field(antelope.UInt64)
|
|
2162
2075
|
], warp.prototype, "id", void 0);
|
|
@@ -2176,48 +2089,46 @@ exports.ServerTypes = void 0;
|
|
|
2176
2089
|
antelope.Struct.type('wipe')
|
|
2177
2090
|
], wipe);
|
|
2178
2091
|
Types.wipe = wipe;
|
|
2179
|
-
let wipesequence = class wipesequence extends antelope.Struct {
|
|
2180
|
-
};
|
|
2181
|
-
wipesequence = tslib.__decorate([
|
|
2182
|
-
antelope.Struct.type('wipesequence')
|
|
2183
|
-
], wipesequence);
|
|
2184
|
-
Types.wipesequence = wipesequence;
|
|
2185
2092
|
let wrap = class wrap extends antelope.Struct {
|
|
2186
2093
|
};
|
|
2187
2094
|
tslib.__decorate([
|
|
2188
2095
|
antelope.Struct.field(antelope.Name)
|
|
2189
2096
|
], wrap.prototype, "owner", void 0);
|
|
2190
|
-
tslib.__decorate([
|
|
2191
|
-
antelope.Struct.field(antelope.Name)
|
|
2192
|
-
], wrap.prototype, "entity_type", void 0);
|
|
2193
2097
|
tslib.__decorate([
|
|
2194
2098
|
antelope.Struct.field(antelope.UInt64)
|
|
2195
2099
|
], wrap.prototype, "entity_id", void 0);
|
|
2196
2100
|
tslib.__decorate([
|
|
2197
2101
|
antelope.Struct.field(antelope.UInt64)
|
|
2198
|
-
], wrap.prototype, "
|
|
2102
|
+
], wrap.prototype, "nexus_id", void 0);
|
|
2199
2103
|
tslib.__decorate([
|
|
2200
|
-
antelope.Struct.field(
|
|
2201
|
-
], wrap.prototype, "
|
|
2104
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
2105
|
+
], wrap.prototype, "items", void 0);
|
|
2202
2106
|
wrap = tslib.__decorate([
|
|
2203
2107
|
antelope.Struct.type('wrap')
|
|
2204
2108
|
], wrap);
|
|
2205
2109
|
Types.wrap = wrap;
|
|
2110
|
+
let wrapentity = class wrapentity extends antelope.Struct {
|
|
2111
|
+
};
|
|
2112
|
+
tslib.__decorate([
|
|
2113
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2114
|
+
], wrapentity.prototype, "entity_id", void 0);
|
|
2115
|
+
tslib.__decorate([
|
|
2116
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2117
|
+
], wrapentity.prototype, "nexus_id", void 0);
|
|
2118
|
+
wrapentity = tslib.__decorate([
|
|
2119
|
+
antelope.Struct.type('wrapentity')
|
|
2120
|
+
], wrapentity);
|
|
2121
|
+
Types.wrapentity = wrapentity;
|
|
2206
2122
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
2207
2123
|
const TableMap = {
|
|
2208
2124
|
cargo: exports.ServerTypes.cargo_row,
|
|
2209
|
-
|
|
2125
|
+
entity: exports.ServerTypes.entity_row,
|
|
2210
2126
|
entitygroup: exports.ServerTypes.entitygroup_row,
|
|
2211
|
-
location: exports.ServerTypes.location_row,
|
|
2212
|
-
nexus: exports.ServerTypes.nexus_row,
|
|
2213
2127
|
nftconfig: exports.ServerTypes.nftconfig_row,
|
|
2214
2128
|
player: exports.ServerTypes.player_row,
|
|
2215
2129
|
reserve: exports.ServerTypes.reserve_row,
|
|
2216
|
-
sequence: exports.ServerTypes.sequence_row,
|
|
2217
|
-
ship: exports.ServerTypes.ship_row,
|
|
2218
2130
|
state: exports.ServerTypes.state_row,
|
|
2219
2131
|
types: exports.ServerTypes.types_row,
|
|
2220
|
-
warehouse: exports.ServerTypes.warehouse_row,
|
|
2221
2132
|
};
|
|
2222
2133
|
class Contract extends ContractKit.Contract {
|
|
2223
2134
|
constructor(args) {
|
|
@@ -2339,12 +2250,13 @@ const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
|
2339
2250
|
|
|
2340
2251
|
const PRECISION$1 = 10000;
|
|
2341
2252
|
const CRAFT_ENERGY_DIVISOR = 150000;
|
|
2342
|
-
const
|
|
2253
|
+
const PLANETARY_STRUCTURE_Z = 0;
|
|
2343
2254
|
const CONTAINER_Z = 300;
|
|
2344
2255
|
const TRAVEL_MAX_DURATION = 86400;
|
|
2345
2256
|
const MIN_ORBITAL_ALTITUDE = 800;
|
|
2346
2257
|
const MAX_ORBITAL_ALTITUDE = 3000;
|
|
2347
2258
|
const BASE_ORBITAL_MASS = 100000;
|
|
2259
|
+
const MIN_TRANSFER_DISTANCE = 100;
|
|
2348
2260
|
exports.TaskType = void 0;
|
|
2349
2261
|
(function (TaskType) {
|
|
2350
2262
|
TaskType[TaskType["IDLE"] = 0] = "IDLE";
|
|
@@ -2358,6 +2270,9 @@ exports.TaskType = void 0;
|
|
|
2358
2270
|
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
2359
2271
|
TaskType[TaskType["WRAP"] = 9] = "WRAP";
|
|
2360
2272
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
2273
|
+
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
2274
|
+
TaskType[TaskType["WRAP_ENTITY"] = 12] = "WRAP_ENTITY";
|
|
2275
|
+
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
2361
2276
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
2362
2277
|
exports.LocationType = void 0;
|
|
2363
2278
|
(function (LocationType) {
|
|
@@ -2365,6 +2280,7 @@ exports.LocationType = void 0;
|
|
|
2365
2280
|
LocationType[LocationType["PLANET"] = 1] = "PLANET";
|
|
2366
2281
|
LocationType[LocationType["ASTEROID"] = 2] = "ASTEROID";
|
|
2367
2282
|
LocationType[LocationType["NEBULA"] = 3] = "NEBULA";
|
|
2283
|
+
LocationType[LocationType["ICE_FIELD"] = 4] = "ICE_FIELD";
|
|
2368
2284
|
})(exports.LocationType || (exports.LocationType = {}));
|
|
2369
2285
|
exports.TaskCancelable = void 0;
|
|
2370
2286
|
(function (TaskCancelable) {
|
|
@@ -2419,6 +2335,9 @@ const CATEGORY_LABELS = {
|
|
|
2419
2335
|
function formatTier(tier) {
|
|
2420
2336
|
return 'T' + tier;
|
|
2421
2337
|
}
|
|
2338
|
+
function tierAdjective(tier) {
|
|
2339
|
+
return TIER_ADJECTIVES[tier] ?? `T${tier}`;
|
|
2340
|
+
}
|
|
2422
2341
|
|
|
2423
2342
|
const ITEM_ORE_T1 = 101;
|
|
2424
2343
|
const ITEM_ORE_T2 = 102;
|
|
@@ -2487,9 +2406,11 @@ const ITEM_LOADER_T1 = 10103;
|
|
|
2487
2406
|
const ITEM_CRAFTER_T1 = 10104;
|
|
2488
2407
|
const ITEM_STORAGE_T1 = 10105;
|
|
2489
2408
|
const ITEM_HAULER_T1 = 10106;
|
|
2409
|
+
const ITEM_WARP_T1 = 10107;
|
|
2490
2410
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
2491
2411
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
2492
2412
|
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
2413
|
+
const ITEM_EXTRACTOR_T1_PACKED = 10203;
|
|
2493
2414
|
const ITEM_HULL_PLATES_T2 = 20001;
|
|
2494
2415
|
const ITEM_CARGO_LINING_T2 = 20002;
|
|
2495
2416
|
const ITEM_CONTAINER_T2_PACKED = 20200;
|
|
@@ -2516,6 +2437,55 @@ var items = [
|
|
|
2516
2437
|
tier: 3,
|
|
2517
2438
|
category: "ore"
|
|
2518
2439
|
},
|
|
2440
|
+
{
|
|
2441
|
+
id: 104,
|
|
2442
|
+
mass: 71000,
|
|
2443
|
+
type: "resource",
|
|
2444
|
+
tier: 4,
|
|
2445
|
+
category: "ore"
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
id: 105,
|
|
2449
|
+
mass: 78000,
|
|
2450
|
+
type: "resource",
|
|
2451
|
+
tier: 5,
|
|
2452
|
+
category: "ore"
|
|
2453
|
+
},
|
|
2454
|
+
{
|
|
2455
|
+
id: 106,
|
|
2456
|
+
mass: 87000,
|
|
2457
|
+
type: "resource",
|
|
2458
|
+
tier: 6,
|
|
2459
|
+
category: "ore"
|
|
2460
|
+
},
|
|
2461
|
+
{
|
|
2462
|
+
id: 107,
|
|
2463
|
+
mass: 96000,
|
|
2464
|
+
type: "resource",
|
|
2465
|
+
tier: 7,
|
|
2466
|
+
category: "ore"
|
|
2467
|
+
},
|
|
2468
|
+
{
|
|
2469
|
+
id: 108,
|
|
2470
|
+
mass: 107000,
|
|
2471
|
+
type: "resource",
|
|
2472
|
+
tier: 8,
|
|
2473
|
+
category: "ore"
|
|
2474
|
+
},
|
|
2475
|
+
{
|
|
2476
|
+
id: 109,
|
|
2477
|
+
mass: 118000,
|
|
2478
|
+
type: "resource",
|
|
2479
|
+
tier: 9,
|
|
2480
|
+
category: "ore"
|
|
2481
|
+
},
|
|
2482
|
+
{
|
|
2483
|
+
id: 110,
|
|
2484
|
+
mass: 130000,
|
|
2485
|
+
type: "resource",
|
|
2486
|
+
tier: 10,
|
|
2487
|
+
category: "ore"
|
|
2488
|
+
},
|
|
2519
2489
|
{
|
|
2520
2490
|
id: 201,
|
|
2521
2491
|
mass: 35000,
|
|
@@ -2537,6 +2507,55 @@ var items = [
|
|
|
2537
2507
|
tier: 3,
|
|
2538
2508
|
category: "crystal"
|
|
2539
2509
|
},
|
|
2510
|
+
{
|
|
2511
|
+
id: 204,
|
|
2512
|
+
mass: 35000,
|
|
2513
|
+
type: "resource",
|
|
2514
|
+
tier: 4,
|
|
2515
|
+
category: "crystal"
|
|
2516
|
+
},
|
|
2517
|
+
{
|
|
2518
|
+
id: 205,
|
|
2519
|
+
mass: 35000,
|
|
2520
|
+
type: "resource",
|
|
2521
|
+
tier: 5,
|
|
2522
|
+
category: "crystal"
|
|
2523
|
+
},
|
|
2524
|
+
{
|
|
2525
|
+
id: 206,
|
|
2526
|
+
mass: 35000,
|
|
2527
|
+
type: "resource",
|
|
2528
|
+
tier: 6,
|
|
2529
|
+
category: "crystal"
|
|
2530
|
+
},
|
|
2531
|
+
{
|
|
2532
|
+
id: 207,
|
|
2533
|
+
mass: 35000,
|
|
2534
|
+
type: "resource",
|
|
2535
|
+
tier: 7,
|
|
2536
|
+
category: "crystal"
|
|
2537
|
+
},
|
|
2538
|
+
{
|
|
2539
|
+
id: 208,
|
|
2540
|
+
mass: 35000,
|
|
2541
|
+
type: "resource",
|
|
2542
|
+
tier: 8,
|
|
2543
|
+
category: "crystal"
|
|
2544
|
+
},
|
|
2545
|
+
{
|
|
2546
|
+
id: 209,
|
|
2547
|
+
mass: 35000,
|
|
2548
|
+
type: "resource",
|
|
2549
|
+
tier: 9,
|
|
2550
|
+
category: "crystal"
|
|
2551
|
+
},
|
|
2552
|
+
{
|
|
2553
|
+
id: 210,
|
|
2554
|
+
mass: 35000,
|
|
2555
|
+
type: "resource",
|
|
2556
|
+
tier: 10,
|
|
2557
|
+
category: "crystal"
|
|
2558
|
+
},
|
|
2540
2559
|
{
|
|
2541
2560
|
id: 301,
|
|
2542
2561
|
mass: 15000,
|
|
@@ -2558,6 +2577,55 @@ var items = [
|
|
|
2558
2577
|
tier: 3,
|
|
2559
2578
|
category: "gas"
|
|
2560
2579
|
},
|
|
2580
|
+
{
|
|
2581
|
+
id: 304,
|
|
2582
|
+
mass: 11000,
|
|
2583
|
+
type: "resource",
|
|
2584
|
+
tier: 4,
|
|
2585
|
+
category: "gas"
|
|
2586
|
+
},
|
|
2587
|
+
{
|
|
2588
|
+
id: 305,
|
|
2589
|
+
mass: 10000,
|
|
2590
|
+
type: "resource",
|
|
2591
|
+
tier: 5,
|
|
2592
|
+
category: "gas"
|
|
2593
|
+
},
|
|
2594
|
+
{
|
|
2595
|
+
id: 306,
|
|
2596
|
+
mass: 9000,
|
|
2597
|
+
type: "resource",
|
|
2598
|
+
tier: 6,
|
|
2599
|
+
category: "gas"
|
|
2600
|
+
},
|
|
2601
|
+
{
|
|
2602
|
+
id: 307,
|
|
2603
|
+
mass: 8000,
|
|
2604
|
+
type: "resource",
|
|
2605
|
+
tier: 7,
|
|
2606
|
+
category: "gas"
|
|
2607
|
+
},
|
|
2608
|
+
{
|
|
2609
|
+
id: 308,
|
|
2610
|
+
mass: 7500,
|
|
2611
|
+
type: "resource",
|
|
2612
|
+
tier: 8,
|
|
2613
|
+
category: "gas"
|
|
2614
|
+
},
|
|
2615
|
+
{
|
|
2616
|
+
id: 309,
|
|
2617
|
+
mass: 6500,
|
|
2618
|
+
type: "resource",
|
|
2619
|
+
tier: 9,
|
|
2620
|
+
category: "gas"
|
|
2621
|
+
},
|
|
2622
|
+
{
|
|
2623
|
+
id: 310,
|
|
2624
|
+
mass: 6000,
|
|
2625
|
+
type: "resource",
|
|
2626
|
+
tier: 10,
|
|
2627
|
+
category: "gas"
|
|
2628
|
+
},
|
|
2561
2629
|
{
|
|
2562
2630
|
id: 401,
|
|
2563
2631
|
mass: 22000,
|
|
@@ -2579,6 +2647,55 @@ var items = [
|
|
|
2579
2647
|
tier: 3,
|
|
2580
2648
|
category: "regolith"
|
|
2581
2649
|
},
|
|
2650
|
+
{
|
|
2651
|
+
id: 404,
|
|
2652
|
+
mass: 32000,
|
|
2653
|
+
type: "resource",
|
|
2654
|
+
tier: 4,
|
|
2655
|
+
category: "regolith"
|
|
2656
|
+
},
|
|
2657
|
+
{
|
|
2658
|
+
id: 405,
|
|
2659
|
+
mass: 36000,
|
|
2660
|
+
type: "resource",
|
|
2661
|
+
tier: 5,
|
|
2662
|
+
category: "regolith"
|
|
2663
|
+
},
|
|
2664
|
+
{
|
|
2665
|
+
id: 406,
|
|
2666
|
+
mass: 40500,
|
|
2667
|
+
type: "resource",
|
|
2668
|
+
tier: 6,
|
|
2669
|
+
category: "regolith"
|
|
2670
|
+
},
|
|
2671
|
+
{
|
|
2672
|
+
id: 407,
|
|
2673
|
+
mass: 46000,
|
|
2674
|
+
type: "resource",
|
|
2675
|
+
tier: 7,
|
|
2676
|
+
category: "regolith"
|
|
2677
|
+
},
|
|
2678
|
+
{
|
|
2679
|
+
id: 408,
|
|
2680
|
+
mass: 52000,
|
|
2681
|
+
type: "resource",
|
|
2682
|
+
tier: 8,
|
|
2683
|
+
category: "regolith"
|
|
2684
|
+
},
|
|
2685
|
+
{
|
|
2686
|
+
id: 409,
|
|
2687
|
+
mass: 58500,
|
|
2688
|
+
type: "resource",
|
|
2689
|
+
tier: 9,
|
|
2690
|
+
category: "regolith"
|
|
2691
|
+
},
|
|
2692
|
+
{
|
|
2693
|
+
id: 410,
|
|
2694
|
+
mass: 66000,
|
|
2695
|
+
type: "resource",
|
|
2696
|
+
tier: 10,
|
|
2697
|
+
category: "regolith"
|
|
2698
|
+
},
|
|
2582
2699
|
{
|
|
2583
2700
|
id: 501,
|
|
2584
2701
|
mass: 42000,
|
|
@@ -2601,10 +2718,59 @@ var items = [
|
|
|
2601
2718
|
category: "biomass"
|
|
2602
2719
|
},
|
|
2603
2720
|
{
|
|
2604
|
-
id:
|
|
2605
|
-
mass:
|
|
2606
|
-
type: "
|
|
2607
|
-
tier:
|
|
2721
|
+
id: 504,
|
|
2722
|
+
mass: 29000,
|
|
2723
|
+
type: "resource",
|
|
2724
|
+
tier: 4,
|
|
2725
|
+
category: "biomass"
|
|
2726
|
+
},
|
|
2727
|
+
{
|
|
2728
|
+
id: 505,
|
|
2729
|
+
mass: 26000,
|
|
2730
|
+
type: "resource",
|
|
2731
|
+
tier: 5,
|
|
2732
|
+
category: "biomass"
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
id: 506,
|
|
2736
|
+
mass: 23000,
|
|
2737
|
+
type: "resource",
|
|
2738
|
+
tier: 6,
|
|
2739
|
+
category: "biomass"
|
|
2740
|
+
},
|
|
2741
|
+
{
|
|
2742
|
+
id: 507,
|
|
2743
|
+
mass: 20000,
|
|
2744
|
+
type: "resource",
|
|
2745
|
+
tier: 7,
|
|
2746
|
+
category: "biomass"
|
|
2747
|
+
},
|
|
2748
|
+
{
|
|
2749
|
+
id: 508,
|
|
2750
|
+
mass: 18000,
|
|
2751
|
+
type: "resource",
|
|
2752
|
+
tier: 8,
|
|
2753
|
+
category: "biomass"
|
|
2754
|
+
},
|
|
2755
|
+
{
|
|
2756
|
+
id: 509,
|
|
2757
|
+
mass: 16000,
|
|
2758
|
+
type: "resource",
|
|
2759
|
+
tier: 9,
|
|
2760
|
+
category: "biomass"
|
|
2761
|
+
},
|
|
2762
|
+
{
|
|
2763
|
+
id: 510,
|
|
2764
|
+
mass: 14000,
|
|
2765
|
+
type: "resource",
|
|
2766
|
+
tier: 10,
|
|
2767
|
+
category: "biomass"
|
|
2768
|
+
},
|
|
2769
|
+
{
|
|
2770
|
+
id: 10001,
|
|
2771
|
+
mass: 50000,
|
|
2772
|
+
type: "component",
|
|
2773
|
+
tier: 1
|
|
2608
2774
|
},
|
|
2609
2775
|
{
|
|
2610
2776
|
id: 10002,
|
|
@@ -2709,6 +2875,13 @@ var items = [
|
|
|
2709
2875
|
tier: 1,
|
|
2710
2876
|
subtype: "hauler"
|
|
2711
2877
|
},
|
|
2878
|
+
{
|
|
2879
|
+
id: 10107,
|
|
2880
|
+
mass: 180000,
|
|
2881
|
+
type: "module",
|
|
2882
|
+
tier: 1,
|
|
2883
|
+
subtype: "warp"
|
|
2884
|
+
},
|
|
2712
2885
|
{
|
|
2713
2886
|
id: 10200,
|
|
2714
2887
|
mass: 80000,
|
|
@@ -2727,6 +2900,12 @@ var items = [
|
|
|
2727
2900
|
type: "entity",
|
|
2728
2901
|
tier: 1
|
|
2729
2902
|
},
|
|
2903
|
+
{
|
|
2904
|
+
id: 10203,
|
|
2905
|
+
mass: 800000,
|
|
2906
|
+
type: "entity",
|
|
2907
|
+
tier: 1
|
|
2908
|
+
},
|
|
2730
2909
|
{
|
|
2731
2910
|
id: 20001,
|
|
2732
2911
|
mass: 50000,
|
|
@@ -3155,10 +3334,6 @@ var recipes = [
|
|
|
3155
3334
|
},
|
|
3156
3335
|
{
|
|
3157
3336
|
sources: [
|
|
3158
|
-
{
|
|
3159
|
-
inputIndex: 1,
|
|
3160
|
-
statIndex: 1
|
|
3161
|
-
}
|
|
3162
3337
|
]
|
|
3163
3338
|
},
|
|
3164
3339
|
{
|
|
@@ -3198,8 +3373,8 @@ var recipes = [
|
|
|
3198
3373
|
{
|
|
3199
3374
|
sources: [
|
|
3200
3375
|
{
|
|
3201
|
-
inputIndex:
|
|
3202
|
-
statIndex:
|
|
3376
|
+
inputIndex: 1,
|
|
3377
|
+
statIndex: 1
|
|
3203
3378
|
}
|
|
3204
3379
|
]
|
|
3205
3380
|
},
|
|
@@ -3317,7 +3492,7 @@ var recipes = [
|
|
|
3317
3492
|
sources: [
|
|
3318
3493
|
{
|
|
3319
3494
|
inputIndex: 0,
|
|
3320
|
-
statIndex:
|
|
3495
|
+
statIndex: 1
|
|
3321
3496
|
}
|
|
3322
3497
|
]
|
|
3323
3498
|
},
|
|
@@ -3333,12 +3508,38 @@ var recipes = [
|
|
|
3333
3508
|
sources: [
|
|
3334
3509
|
{
|
|
3335
3510
|
inputIndex: 0,
|
|
3336
|
-
statIndex:
|
|
3511
|
+
statIndex: 0
|
|
3337
3512
|
}
|
|
3338
3513
|
]
|
|
3339
3514
|
},
|
|
3515
|
+
{
|
|
3516
|
+
sources: [
|
|
3517
|
+
]
|
|
3518
|
+
}
|
|
3519
|
+
],
|
|
3520
|
+
blendWeights: [
|
|
3521
|
+
]
|
|
3522
|
+
},
|
|
3523
|
+
{
|
|
3524
|
+
outputItemId: 10107,
|
|
3525
|
+
outputMass: 180000,
|
|
3526
|
+
inputs: [
|
|
3527
|
+
{
|
|
3528
|
+
itemId: 10010,
|
|
3529
|
+
quantity: 6
|
|
3530
|
+
},
|
|
3531
|
+
{
|
|
3532
|
+
itemId: 10009,
|
|
3533
|
+
quantity: 4
|
|
3534
|
+
}
|
|
3535
|
+
],
|
|
3536
|
+
statSlots: [
|
|
3340
3537
|
{
|
|
3341
3538
|
sources: [
|
|
3539
|
+
{
|
|
3540
|
+
inputIndex: 0,
|
|
3541
|
+
statIndex: 1
|
|
3542
|
+
},
|
|
3342
3543
|
{
|
|
3343
3544
|
inputIndex: 1,
|
|
3344
3545
|
statIndex: 1
|
|
@@ -3347,6 +3548,8 @@ var recipes = [
|
|
|
3347
3548
|
}
|
|
3348
3549
|
],
|
|
3349
3550
|
blendWeights: [
|
|
3551
|
+
1,
|
|
3552
|
+
1
|
|
3350
3553
|
]
|
|
3351
3554
|
},
|
|
3352
3555
|
{
|
|
@@ -3499,6 +3702,56 @@ var recipes = [
|
|
|
3499
3702
|
blendWeights: [
|
|
3500
3703
|
]
|
|
3501
3704
|
},
|
|
3705
|
+
{
|
|
3706
|
+
outputItemId: 10203,
|
|
3707
|
+
outputMass: 800000,
|
|
3708
|
+
inputs: [
|
|
3709
|
+
{
|
|
3710
|
+
itemId: 10001,
|
|
3711
|
+
quantity: 15
|
|
3712
|
+
},
|
|
3713
|
+
{
|
|
3714
|
+
itemId: 10002,
|
|
3715
|
+
quantity: 8
|
|
3716
|
+
}
|
|
3717
|
+
],
|
|
3718
|
+
statSlots: [
|
|
3719
|
+
{
|
|
3720
|
+
sources: [
|
|
3721
|
+
{
|
|
3722
|
+
inputIndex: 0,
|
|
3723
|
+
statIndex: 0
|
|
3724
|
+
}
|
|
3725
|
+
]
|
|
3726
|
+
},
|
|
3727
|
+
{
|
|
3728
|
+
sources: [
|
|
3729
|
+
{
|
|
3730
|
+
inputIndex: 0,
|
|
3731
|
+
statIndex: 1
|
|
3732
|
+
}
|
|
3733
|
+
]
|
|
3734
|
+
},
|
|
3735
|
+
{
|
|
3736
|
+
sources: [
|
|
3737
|
+
{
|
|
3738
|
+
inputIndex: 1,
|
|
3739
|
+
statIndex: 0
|
|
3740
|
+
}
|
|
3741
|
+
]
|
|
3742
|
+
},
|
|
3743
|
+
{
|
|
3744
|
+
sources: [
|
|
3745
|
+
{
|
|
3746
|
+
inputIndex: 1,
|
|
3747
|
+
statIndex: 1
|
|
3748
|
+
}
|
|
3749
|
+
]
|
|
3750
|
+
}
|
|
3751
|
+
],
|
|
3752
|
+
blendWeights: [
|
|
3753
|
+
]
|
|
3754
|
+
},
|
|
3502
3755
|
{
|
|
3503
3756
|
outputItemId: 20001,
|
|
3504
3757
|
outputMass: 50000,
|
|
@@ -3657,19 +3910,24 @@ var entities = [
|
|
|
3657
3910
|
entityItemId: 10201,
|
|
3658
3911
|
slots: [
|
|
3659
3912
|
{
|
|
3660
|
-
type: "any"
|
|
3913
|
+
type: "any",
|
|
3914
|
+
outputPct: 100
|
|
3661
3915
|
},
|
|
3662
3916
|
{
|
|
3663
|
-
type: "any"
|
|
3917
|
+
type: "any",
|
|
3918
|
+
outputPct: 100
|
|
3664
3919
|
},
|
|
3665
3920
|
{
|
|
3666
|
-
type: "any"
|
|
3921
|
+
type: "any",
|
|
3922
|
+
outputPct: 100
|
|
3667
3923
|
},
|
|
3668
3924
|
{
|
|
3669
|
-
type: "any"
|
|
3925
|
+
type: "any",
|
|
3926
|
+
outputPct: 100
|
|
3670
3927
|
},
|
|
3671
3928
|
{
|
|
3672
|
-
type: "any"
|
|
3929
|
+
type: "any",
|
|
3930
|
+
outputPct: 100
|
|
3673
3931
|
}
|
|
3674
3932
|
]
|
|
3675
3933
|
},
|
|
@@ -3677,19 +3935,37 @@ var entities = [
|
|
|
3677
3935
|
entityItemId: 10202,
|
|
3678
3936
|
slots: [
|
|
3679
3937
|
{
|
|
3680
|
-
type: "loader"
|
|
3938
|
+
type: "loader",
|
|
3939
|
+
outputPct: 100
|
|
3940
|
+
},
|
|
3941
|
+
{
|
|
3942
|
+
type: "storage",
|
|
3943
|
+
outputPct: 100
|
|
3681
3944
|
},
|
|
3682
3945
|
{
|
|
3683
|
-
type: "storage"
|
|
3946
|
+
type: "storage",
|
|
3947
|
+
outputPct: 100
|
|
3684
3948
|
},
|
|
3685
3949
|
{
|
|
3686
|
-
type: "storage"
|
|
3950
|
+
type: "storage",
|
|
3951
|
+
outputPct: 100
|
|
3687
3952
|
},
|
|
3688
3953
|
{
|
|
3689
|
-
type: "storage"
|
|
3954
|
+
type: "storage",
|
|
3955
|
+
outputPct: 100
|
|
3956
|
+
}
|
|
3957
|
+
]
|
|
3958
|
+
},
|
|
3959
|
+
{
|
|
3960
|
+
entityItemId: 10203,
|
|
3961
|
+
slots: [
|
|
3962
|
+
{
|
|
3963
|
+
type: "generator",
|
|
3964
|
+
outputPct: 100
|
|
3690
3965
|
},
|
|
3691
3966
|
{
|
|
3692
|
-
type: "
|
|
3967
|
+
type: "gatherer",
|
|
3968
|
+
outputPct: 100
|
|
3693
3969
|
}
|
|
3694
3970
|
]
|
|
3695
3971
|
},
|
|
@@ -3700,78 +3976,6 @@ var entities = [
|
|
|
3700
3976
|
}
|
|
3701
3977
|
];
|
|
3702
3978
|
|
|
3703
|
-
const categoryColors = {
|
|
3704
|
-
ore: '#C26D3F',
|
|
3705
|
-
crystal: '#4ADBFF',
|
|
3706
|
-
gas: '#B8E4A0',
|
|
3707
|
-
regolith: '#C4A57B',
|
|
3708
|
-
biomass: '#5A8B3E',
|
|
3709
|
-
};
|
|
3710
|
-
const tierColors = {
|
|
3711
|
-
1: '#8b8b8b',
|
|
3712
|
-
2: '#4ade80',
|
|
3713
|
-
3: '#818cf8',
|
|
3714
|
-
4: '#c084fc',
|
|
3715
|
-
5: '#fbbf24',
|
|
3716
|
-
6: '#f97316',
|
|
3717
|
-
7: '#ef4444',
|
|
3718
|
-
8: '#ec4899',
|
|
3719
|
-
9: '#06b6d4',
|
|
3720
|
-
10: '#ffffff',
|
|
3721
|
-
};
|
|
3722
|
-
const tierLabels = {
|
|
3723
|
-
1: 'Common',
|
|
3724
|
-
2: 'Uncommon',
|
|
3725
|
-
3: 'Rare',
|
|
3726
|
-
4: 'Epic',
|
|
3727
|
-
5: 'Legendary',
|
|
3728
|
-
6: 'Mythic',
|
|
3729
|
-
7: 'Divine',
|
|
3730
|
-
8: 'Celestial',
|
|
3731
|
-
9: 'Eternal',
|
|
3732
|
-
10: 'Transcendent',
|
|
3733
|
-
};
|
|
3734
|
-
const categoryIcons = {
|
|
3735
|
-
ore: '⬡',
|
|
3736
|
-
crystal: '◈',
|
|
3737
|
-
gas: '◎',
|
|
3738
|
-
regolith: '■',
|
|
3739
|
-
biomass: '❋',
|
|
3740
|
-
};
|
|
3741
|
-
const categoryIconShapes = {
|
|
3742
|
-
ore: 'hex',
|
|
3743
|
-
crystal: 'diamond',
|
|
3744
|
-
gas: 'circle',
|
|
3745
|
-
regolith: 'square',
|
|
3746
|
-
biomass: 'star',
|
|
3747
|
-
};
|
|
3748
|
-
const componentIcon = '▣';
|
|
3749
|
-
const moduleIcon = '⬢';
|
|
3750
|
-
const itemAbbreviations = {
|
|
3751
|
-
10001: 'HP',
|
|
3752
|
-
10002: 'CL',
|
|
3753
|
-
10003: 'TC',
|
|
3754
|
-
10004: 'PC',
|
|
3755
|
-
10005: 'DS',
|
|
3756
|
-
10006: 'EP',
|
|
3757
|
-
10007: 'CA',
|
|
3758
|
-
10008: 'TB',
|
|
3759
|
-
10009: 'RC',
|
|
3760
|
-
10010: 'FA',
|
|
3761
|
-
10100: 'EN',
|
|
3762
|
-
10101: 'GN',
|
|
3763
|
-
10102: 'EX',
|
|
3764
|
-
10103: 'LD',
|
|
3765
|
-
10104: 'MF',
|
|
3766
|
-
10105: 'ST',
|
|
3767
|
-
10200: 'CT',
|
|
3768
|
-
10201: 'SH',
|
|
3769
|
-
10202: 'WH',
|
|
3770
|
-
20001: 'HP',
|
|
3771
|
-
20002: 'CL',
|
|
3772
|
-
20200: 'CT',
|
|
3773
|
-
};
|
|
3774
|
-
|
|
3775
3979
|
const itemMetadata = {
|
|
3776
3980
|
101: { name: 'Ore', description: 'Crude metallic ore.', color: '#C26D3F' },
|
|
3777
3981
|
102: { name: 'Ore', description: 'Refined metallic ore with improved purity.', color: '#C26D3F' },
|
|
@@ -3780,6 +3984,13 @@ const itemMetadata = {
|
|
|
3780
3984
|
description: 'High-grade metallic ore with exceptional density.',
|
|
3781
3985
|
color: '#C26D3F',
|
|
3782
3986
|
},
|
|
3987
|
+
104: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3988
|
+
105: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3989
|
+
106: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3990
|
+
107: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3991
|
+
108: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3992
|
+
109: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3993
|
+
110: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3783
3994
|
201: { name: 'Crystal', description: 'Raw resonant crystal.', color: '#4ADBFF' },
|
|
3784
3995
|
202: {
|
|
3785
3996
|
name: 'Crystal',
|
|
@@ -3791,6 +4002,13 @@ const itemMetadata = {
|
|
|
3791
4002
|
description: 'High-grade resonant crystal with exceptional purity.',
|
|
3792
4003
|
color: '#4ADBFF',
|
|
3793
4004
|
},
|
|
4005
|
+
204: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4006
|
+
205: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4007
|
+
206: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4008
|
+
207: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4009
|
+
208: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4010
|
+
209: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4011
|
+
210: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
3794
4012
|
301: { name: 'Gas', description: 'Raw volatile gas.', color: '#B8E4A0' },
|
|
3795
4013
|
302: {
|
|
3796
4014
|
name: 'Gas',
|
|
@@ -3802,6 +4020,13 @@ const itemMetadata = {
|
|
|
3802
4020
|
description: 'High-grade volatile gas with exceptional energy density.',
|
|
3803
4021
|
color: '#B8E4A0',
|
|
3804
4022
|
},
|
|
4023
|
+
304: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4024
|
+
305: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4025
|
+
306: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4026
|
+
307: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4027
|
+
308: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4028
|
+
309: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4029
|
+
310: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
3805
4030
|
401: { name: 'Regolith', description: 'Crude regolith dust.', color: '#C4A57B' },
|
|
3806
4031
|
402: {
|
|
3807
4032
|
name: 'Regolith',
|
|
@@ -3813,6 +4038,13 @@ const itemMetadata = {
|
|
|
3813
4038
|
description: 'High-grade regolith with exceptional uniformity.',
|
|
3814
4039
|
color: '#C4A57B',
|
|
3815
4040
|
},
|
|
4041
|
+
404: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4042
|
+
405: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4043
|
+
406: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4044
|
+
407: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4045
|
+
408: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4046
|
+
409: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4047
|
+
410: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
3816
4048
|
501: { name: 'Biomass', description: 'Crude organic biomass.', color: '#5A8B3E' },
|
|
3817
4049
|
502: {
|
|
3818
4050
|
name: 'Biomass',
|
|
@@ -3824,6 +4056,13 @@ const itemMetadata = {
|
|
|
3824
4056
|
description: 'High-grade biomass with exceptional saturation.',
|
|
3825
4057
|
color: '#5A8B3E',
|
|
3826
4058
|
},
|
|
4059
|
+
504: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4060
|
+
505: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4061
|
+
506: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4062
|
+
507: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4063
|
+
508: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4064
|
+
509: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4065
|
+
510: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
3827
4066
|
10001: {
|
|
3828
4067
|
name: 'Hull Plates',
|
|
3829
4068
|
description: 'Structural plating formed from ore. Used in hulls, containers, and frames.',
|
|
@@ -3909,6 +4148,11 @@ const itemMetadata = {
|
|
|
3909
4148
|
description: 'Projects a haul beam to lock onto and transport containers or warehouses through group travel.',
|
|
3910
4149
|
color: '#4ADBFF',
|
|
3911
4150
|
},
|
|
4151
|
+
10107: {
|
|
4152
|
+
name: 'Warp',
|
|
4153
|
+
description: 'Folds local space-time around the hull, projecting the ship across vast distances in a single discharge of the entire energy reserve.',
|
|
4154
|
+
color: '#9be4ff',
|
|
4155
|
+
},
|
|
3912
4156
|
10200: {
|
|
3913
4157
|
name: 'Container',
|
|
3914
4158
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
@@ -3924,6 +4168,11 @@ const itemMetadata = {
|
|
|
3924
4168
|
description: 'Massive stationary storage facility with a single loader module slot.',
|
|
3925
4169
|
color: '#EAB308',
|
|
3926
4170
|
},
|
|
4171
|
+
10203: {
|
|
4172
|
+
name: 'Extractor',
|
|
4173
|
+
description: 'Planetary resource extraction facility with generator and gatherer module slots.',
|
|
4174
|
+
color: '#D4726F',
|
|
4175
|
+
},
|
|
3927
4176
|
20001: {
|
|
3928
4177
|
name: 'Hull Plates',
|
|
3929
4178
|
description: 'Advanced structural plating reinforced with tier 2 ore.',
|
|
@@ -3943,6 +4192,7 @@ const itemMetadata = {
|
|
|
3943
4192
|
const entityMetadata = {
|
|
3944
4193
|
10201: { moduleSlotLabels: ['Engine', 'Generator', 'Gatherer', 'Loader', 'Storage'] },
|
|
3945
4194
|
10202: { moduleSlotLabels: ['Loader', 'Storage', 'Storage', 'Storage', 'Storage'] },
|
|
4195
|
+
10203: { moduleSlotLabels: ['Generator', 'Gatherer'] },
|
|
3946
4196
|
};
|
|
3947
4197
|
for (const item of items) {
|
|
3948
4198
|
if (!itemMetadata[item.id]) {
|
|
@@ -4048,9 +4298,6 @@ function typeLabel(type) {
|
|
|
4048
4298
|
function categoryLabel(cat) {
|
|
4049
4299
|
return CATEGORY_LABELS[cat];
|
|
4050
4300
|
}
|
|
4051
|
-
function tierLabel(tier) {
|
|
4052
|
-
return tierLabels[tier] ?? `T${tier}`;
|
|
4053
|
-
}
|
|
4054
4301
|
const CATEGORY_BY_INDEX = ['ore', 'gas', 'regolith', 'biomass', 'crystal'];
|
|
4055
4302
|
function categoryFromIndex(i) {
|
|
4056
4303
|
return CATEGORY_BY_INDEX[i];
|
|
@@ -4113,10 +4360,15 @@ function hash512(seed, string) {
|
|
|
4113
4360
|
}
|
|
4114
4361
|
|
|
4115
4362
|
const DEPTH_THRESHOLD_T1 = 0;
|
|
4116
|
-
const DEPTH_THRESHOLD_T2 =
|
|
4117
|
-
const DEPTH_THRESHOLD_T3 =
|
|
4118
|
-
const DEPTH_THRESHOLD_T4 =
|
|
4119
|
-
const DEPTH_THRESHOLD_T5 =
|
|
4363
|
+
const DEPTH_THRESHOLD_T2 = 1500;
|
|
4364
|
+
const DEPTH_THRESHOLD_T3 = 5000;
|
|
4365
|
+
const DEPTH_THRESHOLD_T4 = 12000;
|
|
4366
|
+
const DEPTH_THRESHOLD_T5 = 22000;
|
|
4367
|
+
const DEPTH_THRESHOLD_T6 = 32000;
|
|
4368
|
+
const DEPTH_THRESHOLD_T7 = 42000;
|
|
4369
|
+
const DEPTH_THRESHOLD_T8 = 50000;
|
|
4370
|
+
const DEPTH_THRESHOLD_T9 = 57000;
|
|
4371
|
+
const DEPTH_THRESHOLD_T10 = 63000;
|
|
4120
4372
|
const LOCATION_MIN_DEPTH = 500;
|
|
4121
4373
|
const LOCATION_MAX_DEPTH = 65535;
|
|
4122
4374
|
const YIELD_THRESHOLD = Math.floor(0.001 * 0xffffffff);
|
|
@@ -4126,19 +4378,22 @@ const PLANET_SUBTYPE_TERRESTRIAL = 2;
|
|
|
4126
4378
|
const PLANET_SUBTYPE_ICY = 3;
|
|
4127
4379
|
const PLANET_SUBTYPE_OCEAN = 4;
|
|
4128
4380
|
const PLANET_SUBTYPE_INDUSTRIAL = 5;
|
|
4381
|
+
const DEPTH_THRESHOLD_TABLE = [
|
|
4382
|
+
DEPTH_THRESHOLD_T1,
|
|
4383
|
+
DEPTH_THRESHOLD_T2,
|
|
4384
|
+
DEPTH_THRESHOLD_T3,
|
|
4385
|
+
DEPTH_THRESHOLD_T4,
|
|
4386
|
+
DEPTH_THRESHOLD_T5,
|
|
4387
|
+
DEPTH_THRESHOLD_T6,
|
|
4388
|
+
DEPTH_THRESHOLD_T7,
|
|
4389
|
+
DEPTH_THRESHOLD_T8,
|
|
4390
|
+
DEPTH_THRESHOLD_T9,
|
|
4391
|
+
DEPTH_THRESHOLD_T10,
|
|
4392
|
+
];
|
|
4129
4393
|
function getDepthThreshold(tier) {
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
case 2:
|
|
4134
|
-
return DEPTH_THRESHOLD_T2;
|
|
4135
|
-
case 3:
|
|
4136
|
-
return DEPTH_THRESHOLD_T3;
|
|
4137
|
-
case 4:
|
|
4138
|
-
return DEPTH_THRESHOLD_T4;
|
|
4139
|
-
default:
|
|
4140
|
-
return DEPTH_THRESHOLD_T5;
|
|
4141
|
-
}
|
|
4394
|
+
if (tier < 1 || tier > 10)
|
|
4395
|
+
return 65535;
|
|
4396
|
+
return DEPTH_THRESHOLD_TABLE[tier - 1];
|
|
4142
4397
|
}
|
|
4143
4398
|
function getResourceTier(itemId) {
|
|
4144
4399
|
return getItem(itemId).tier;
|
|
@@ -4151,11 +4406,11 @@ function getResourceWeight(itemId, stratum) {
|
|
|
4151
4406
|
const depthAbove = stratum - threshold;
|
|
4152
4407
|
switch (tier) {
|
|
4153
4408
|
case 1:
|
|
4154
|
-
if (stratum <
|
|
4409
|
+
if (stratum < DEPTH_THRESHOLD_T2)
|
|
4155
4410
|
return 100;
|
|
4156
|
-
if (stratum <
|
|
4411
|
+
if (stratum < DEPTH_THRESHOLD_T3)
|
|
4157
4412
|
return 80;
|
|
4158
|
-
if (stratum <
|
|
4413
|
+
if (stratum < DEPTH_THRESHOLD_T4)
|
|
4159
4414
|
return 50;
|
|
4160
4415
|
return 30;
|
|
4161
4416
|
case 2:
|
|
@@ -4180,37 +4435,97 @@ function getResourceWeight(itemId, stratum) {
|
|
|
4180
4435
|
return 10;
|
|
4181
4436
|
}
|
|
4182
4437
|
}
|
|
4183
|
-
const
|
|
4184
|
-
const
|
|
4185
|
-
const
|
|
4186
|
-
const
|
|
4187
|
-
const
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4438
|
+
const RESOURCE_ORE = 0;
|
|
4439
|
+
const RESOURCE_GAS = 1;
|
|
4440
|
+
const RESOURCE_REGOLITH = 2;
|
|
4441
|
+
const RESOURCE_BIOMASS = 3;
|
|
4442
|
+
const RESOURCE_CRYSTAL = 4;
|
|
4443
|
+
function categoryBaseId(category) {
|
|
4444
|
+
switch (category) {
|
|
4445
|
+
case RESOURCE_ORE:
|
|
4446
|
+
return 100;
|
|
4447
|
+
case RESOURCE_CRYSTAL:
|
|
4448
|
+
return 200;
|
|
4449
|
+
case RESOURCE_GAS:
|
|
4450
|
+
return 300;
|
|
4451
|
+
case RESOURCE_REGOLITH:
|
|
4452
|
+
return 400;
|
|
4453
|
+
case RESOURCE_BIOMASS:
|
|
4454
|
+
return 500;
|
|
4455
|
+
default:
|
|
4456
|
+
return 0;
|
|
4457
|
+
}
|
|
4458
|
+
}
|
|
4459
|
+
function resourceId(category, tier) {
|
|
4460
|
+
return categoryBaseId(category) + tier;
|
|
4461
|
+
}
|
|
4462
|
+
function getLocationProfile(locationType, subtype) {
|
|
4463
|
+
if (locationType === exports.LocationType.ASTEROID) {
|
|
4464
|
+
return [
|
|
4465
|
+
{ category: RESOURCE_ORE, maxTier: 5 },
|
|
4466
|
+
{ category: RESOURCE_CRYSTAL, maxTier: 5 },
|
|
4467
|
+
];
|
|
4468
|
+
}
|
|
4469
|
+
if (locationType === exports.LocationType.NEBULA) {
|
|
4470
|
+
return [
|
|
4471
|
+
{ category: RESOURCE_GAS, maxTier: 5 },
|
|
4472
|
+
{ category: RESOURCE_REGOLITH, maxTier: 5 },
|
|
4473
|
+
];
|
|
4474
|
+
}
|
|
4475
|
+
if (locationType === exports.LocationType.ICE_FIELD) {
|
|
4476
|
+
return [
|
|
4477
|
+
{ category: RESOURCE_GAS, maxTier: 5 },
|
|
4478
|
+
{ category: RESOURCE_BIOMASS, maxTier: 5 },
|
|
4479
|
+
];
|
|
4480
|
+
}
|
|
4481
|
+
if (locationType === exports.LocationType.PLANET) {
|
|
4197
4482
|
switch (subtype) {
|
|
4198
4483
|
case PLANET_SUBTYPE_GAS_GIANT:
|
|
4199
|
-
return
|
|
4484
|
+
return [
|
|
4485
|
+
{ category: RESOURCE_GAS, maxTier: 10 },
|
|
4486
|
+
{ category: RESOURCE_CRYSTAL, maxTier: 3 },
|
|
4487
|
+
];
|
|
4200
4488
|
case PLANET_SUBTYPE_ROCKY:
|
|
4201
|
-
return
|
|
4489
|
+
return [
|
|
4490
|
+
{ category: RESOURCE_REGOLITH, maxTier: 10 },
|
|
4491
|
+
{ category: RESOURCE_ORE, maxTier: 3 },
|
|
4492
|
+
];
|
|
4202
4493
|
case PLANET_SUBTYPE_TERRESTRIAL:
|
|
4203
|
-
return
|
|
4494
|
+
return [
|
|
4495
|
+
{ category: RESOURCE_ORE, maxTier: 10 },
|
|
4496
|
+
{ category: RESOURCE_BIOMASS, maxTier: 3 },
|
|
4497
|
+
];
|
|
4204
4498
|
case PLANET_SUBTYPE_ICY:
|
|
4205
|
-
return
|
|
4499
|
+
return [
|
|
4500
|
+
{ category: RESOURCE_CRYSTAL, maxTier: 10 },
|
|
4501
|
+
{ category: RESOURCE_REGOLITH, maxTier: 3 },
|
|
4502
|
+
];
|
|
4206
4503
|
case PLANET_SUBTYPE_OCEAN:
|
|
4207
|
-
return
|
|
4504
|
+
return [
|
|
4505
|
+
{ category: RESOURCE_BIOMASS, maxTier: 10 },
|
|
4506
|
+
{ category: RESOURCE_GAS, maxTier: 3 },
|
|
4507
|
+
];
|
|
4208
4508
|
case PLANET_SUBTYPE_INDUSTRIAL:
|
|
4209
|
-
return
|
|
4509
|
+
return [
|
|
4510
|
+
{ category: RESOURCE_ORE, maxTier: 3 },
|
|
4511
|
+
{ category: RESOURCE_CRYSTAL, maxTier: 3 },
|
|
4512
|
+
{ category: RESOURCE_REGOLITH, maxTier: 3 },
|
|
4513
|
+
{ category: RESOURCE_BIOMASS, maxTier: 3 },
|
|
4514
|
+
];
|
|
4210
4515
|
}
|
|
4211
4516
|
}
|
|
4212
4517
|
return [];
|
|
4213
4518
|
}
|
|
4519
|
+
function getLocationCandidates(locationType, subtype) {
|
|
4520
|
+
const profile = getLocationProfile(locationType, subtype);
|
|
4521
|
+
const ids = [];
|
|
4522
|
+
for (const { category, maxTier } of profile) {
|
|
4523
|
+
for (let tier = 1; tier <= maxTier; tier++) {
|
|
4524
|
+
ids.push(resourceId(category, tier));
|
|
4525
|
+
}
|
|
4526
|
+
}
|
|
4527
|
+
return ids;
|
|
4528
|
+
}
|
|
4214
4529
|
function getEligibleResources(locationType, subtype, stratum) {
|
|
4215
4530
|
const candidates = getLocationCandidates(locationType, subtype);
|
|
4216
4531
|
return candidates.filter((itemId) => {
|
|
@@ -6386,7 +6701,6 @@ var nebulaNouns = [
|
|
|
6386
6701
|
];
|
|
6387
6702
|
|
|
6388
6703
|
const LOCATION_EXISTS_THRESHOLD = 0x10;
|
|
6389
|
-
const LOCATION_ACTIVE_THRESHOLD = 0x80;
|
|
6390
6704
|
function getLocationType(gameSeed, coordinates) {
|
|
6391
6705
|
const seed = antelope.Checksum256.from(gameSeed);
|
|
6392
6706
|
const str = ['system', coordinates.x, coordinates.y].join('-');
|
|
@@ -6394,13 +6708,13 @@ function getLocationType(gameSeed, coordinates) {
|
|
|
6394
6708
|
if (hashResult.array[0] >= LOCATION_EXISTS_THRESHOLD) {
|
|
6395
6709
|
return exports.LocationType.EMPTY;
|
|
6396
6710
|
}
|
|
6397
|
-
if (hashResult.array[1] < 96)
|
|
6711
|
+
if (hashResult.array[1] < 96)
|
|
6398
6712
|
return exports.LocationType.PLANET;
|
|
6399
|
-
|
|
6400
|
-
else if (hashResult.array[1] < 176) {
|
|
6713
|
+
if (hashResult.array[1] < 149)
|
|
6401
6714
|
return exports.LocationType.ASTEROID;
|
|
6402
|
-
|
|
6403
|
-
|
|
6715
|
+
if (hashResult.array[1] < 202)
|
|
6716
|
+
return exports.LocationType.NEBULA;
|
|
6717
|
+
return exports.LocationType.ICE_FIELD;
|
|
6404
6718
|
}
|
|
6405
6719
|
function isGatherableLocation(locationType) {
|
|
6406
6720
|
return locationType !== exports.LocationType.EMPTY;
|
|
@@ -6415,6 +6729,8 @@ function getLocationTypeName(type) {
|
|
|
6415
6729
|
return 'Asteroid';
|
|
6416
6730
|
case exports.LocationType.NEBULA:
|
|
6417
6731
|
return 'Nebula';
|
|
6732
|
+
case exports.LocationType.ICE_FIELD:
|
|
6733
|
+
return 'Ice Field';
|
|
6418
6734
|
}
|
|
6419
6735
|
}
|
|
6420
6736
|
function uint16(hash, offset) {
|
|
@@ -6442,6 +6758,14 @@ function generateNebulaName(hashResult) {
|
|
|
6442
6758
|
const nounIdx = uint16(hashResult, 2) % nebulaNouns.length;
|
|
6443
6759
|
return `${nebulaAdjectives[adjIdx]} ${nebulaNouns[nounIdx]}`;
|
|
6444
6760
|
}
|
|
6761
|
+
function generateIceFieldName(hashResult) {
|
|
6762
|
+
const A = 65;
|
|
6763
|
+
const letter1 = String.fromCharCode(A + (hashResult.array[0] % 26));
|
|
6764
|
+
const letter2 = String.fromCharCode(A + (hashResult.array[1] % 26));
|
|
6765
|
+
const subId = (hashResult.array[2] % 9) + 1;
|
|
6766
|
+
const num = (uint16(hashResult, 3) % 9000) + 1000;
|
|
6767
|
+
return `${letter1}${letter2}-${subId}/${num}`;
|
|
6768
|
+
}
|
|
6445
6769
|
function getSystemName(gameSeed, location) {
|
|
6446
6770
|
const seed = antelope.Checksum256.from(gameSeed);
|
|
6447
6771
|
const locationType = getLocationType(seed, location);
|
|
@@ -6457,6 +6781,8 @@ function getSystemName(gameSeed, location) {
|
|
|
6457
6781
|
return generateAsteroidName(hashResult);
|
|
6458
6782
|
case exports.LocationType.NEBULA:
|
|
6459
6783
|
return generateNebulaName(hashResult);
|
|
6784
|
+
case exports.LocationType.ICE_FIELD:
|
|
6785
|
+
return generateIceFieldName(hashResult);
|
|
6460
6786
|
default:
|
|
6461
6787
|
return generatePlanetName(hashResult);
|
|
6462
6788
|
}
|
|
@@ -6482,33 +6808,27 @@ function deriveLocationStatic(gameSeed, coordinates) {
|
|
|
6482
6808
|
if (hashResult.array[1] < 96) {
|
|
6483
6809
|
loc.type = antelope.UInt8.from(exports.LocationType.PLANET);
|
|
6484
6810
|
}
|
|
6485
|
-
else if (hashResult.array[1] <
|
|
6811
|
+
else if (hashResult.array[1] < 149) {
|
|
6486
6812
|
loc.type = antelope.UInt8.from(exports.LocationType.ASTEROID);
|
|
6487
6813
|
}
|
|
6488
|
-
else {
|
|
6814
|
+
else if (hashResult.array[1] < 202) {
|
|
6489
6815
|
loc.type = antelope.UInt8.from(exports.LocationType.NEBULA);
|
|
6490
6816
|
}
|
|
6817
|
+
else {
|
|
6818
|
+
loc.type = antelope.UInt8.from(exports.LocationType.ICE_FIELD);
|
|
6819
|
+
}
|
|
6491
6820
|
loc.subtype = antelope.UInt8.from(Number(loc.type) === exports.LocationType.PLANET ? hashResult.array[2] % 6 : hashResult.array[2]);
|
|
6492
6821
|
loc.seed0 = antelope.UInt8.from(hashResult.array[3]);
|
|
6493
6822
|
loc.seed1 = antelope.UInt8.from(hashResult.array[4]);
|
|
6494
6823
|
return loc;
|
|
6495
6824
|
}
|
|
6496
|
-
function
|
|
6497
|
-
|
|
6498
|
-
const coords = Coordinates.from(coordinates);
|
|
6499
|
-
const str = `system-epoch-${coords.x}-${coords.y}`;
|
|
6500
|
-
const hashResult = hash512(seed, str);
|
|
6501
|
-
return exports.ServerTypes.location_epoch.from({
|
|
6502
|
-
active: hashResult.array[0] < LOCATION_ACTIVE_THRESHOLD,
|
|
6503
|
-
seed0: hashResult.array[1],
|
|
6504
|
-
seed1: hashResult.array[2],
|
|
6505
|
-
});
|
|
6825
|
+
function isLocationBuildable(gameSeed, coordinates) {
|
|
6826
|
+
return getLocationType(gameSeed, coordinates) === exports.LocationType.PLANET;
|
|
6506
6827
|
}
|
|
6507
|
-
function deriveLocation(gameSeed,
|
|
6828
|
+
function deriveLocation(gameSeed, coordinates) {
|
|
6508
6829
|
const staticProps = deriveLocationStatic(gameSeed, coordinates);
|
|
6509
6830
|
return exports.ServerTypes.location_derived.from({
|
|
6510
6831
|
static_props: staticProps,
|
|
6511
|
-
epoch_props: deriveLocationEpoch(epochSeed, coordinates),
|
|
6512
6832
|
size: deriveLocationSize(staticProps),
|
|
6513
6833
|
});
|
|
6514
6834
|
}
|
|
@@ -6535,9 +6855,6 @@ class GameState extends exports.ServerTypes.state_row {
|
|
|
6535
6855
|
get isEnabled() {
|
|
6536
6856
|
return this.enabled;
|
|
6537
6857
|
}
|
|
6538
|
-
get shipCount() {
|
|
6539
|
-
return Number(this.ships);
|
|
6540
|
-
}
|
|
6541
6858
|
get currentSalt() {
|
|
6542
6859
|
return this.salt;
|
|
6543
6860
|
}
|
|
@@ -6578,7 +6895,6 @@ class GameState extends exports.ServerTypes.state_row {
|
|
|
6578
6895
|
return {
|
|
6579
6896
|
enabled: this.enabled,
|
|
6580
6897
|
epoch: this.epoch.toString(),
|
|
6581
|
-
ships: this.shipCount,
|
|
6582
6898
|
hasSeed: !this.seed.equals(antelope.Checksum256.from('0'.repeat(64))),
|
|
6583
6899
|
hasCommit: !this.commit.equals(antelope.Checksum256.from('0'.repeat(64))),
|
|
6584
6900
|
};
|
|
@@ -6630,6 +6946,40 @@ function lerp$1(origin, destination, time) {
|
|
|
6630
6946
|
y: (1 - time) * Number(origin.y) + time * Number(destination.y),
|
|
6631
6947
|
};
|
|
6632
6948
|
}
|
|
6949
|
+
function easeFlightProgress(t) {
|
|
6950
|
+
if (t <= 0)
|
|
6951
|
+
return 0;
|
|
6952
|
+
if (t >= 1)
|
|
6953
|
+
return 1;
|
|
6954
|
+
return t < 0.5 ? 2 * t * t : 1 - 2 * (1 - t) * (1 - t);
|
|
6955
|
+
}
|
|
6956
|
+
function flightSpeedFactor(t) {
|
|
6957
|
+
if (t <= 0 || t >= 1)
|
|
6958
|
+
return 0;
|
|
6959
|
+
return t < 0.5 ? 4 * t : 4 * (1 - t);
|
|
6960
|
+
}
|
|
6961
|
+
function interpolateFlightPosition(origin, destination, taskProgress, options) {
|
|
6962
|
+
const t = options?.easing === 'linear' ? taskProgress : easeFlightProgress(taskProgress);
|
|
6963
|
+
return {
|
|
6964
|
+
x: (1 - t) * Number(origin.x) + t * Number(destination.x),
|
|
6965
|
+
y: (1 - t) * Number(origin.y) + t * Number(destination.y),
|
|
6966
|
+
};
|
|
6967
|
+
}
|
|
6968
|
+
function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
6969
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0) {
|
|
6970
|
+
return { x: Number(entity.coordinates.x), y: Number(entity.coordinates.y) };
|
|
6971
|
+
}
|
|
6972
|
+
if (taskIndex < 0) {
|
|
6973
|
+
const settled = getFlightOrigin(entity, entity.schedule.tasks.length);
|
|
6974
|
+
return { x: Number(settled.x), y: Number(settled.y) };
|
|
6975
|
+
}
|
|
6976
|
+
const task = entity.schedule.tasks[taskIndex];
|
|
6977
|
+
if (!task.type.equals(exports.TaskType.TRAVEL) || !task.coordinates) {
|
|
6978
|
+
const origin = getFlightOrigin(entity, taskIndex);
|
|
6979
|
+
return { x: Number(origin.x), y: Number(origin.y) };
|
|
6980
|
+
}
|
|
6981
|
+
return interpolateFlightPosition(getFlightOrigin(entity, taskIndex), task.coordinates, taskProgress);
|
|
6982
|
+
}
|
|
6633
6983
|
function rotation(origin, destination) {
|
|
6634
6984
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
6635
6985
|
}
|
|
@@ -6839,9 +7189,12 @@ function getDestinationLocation(entity) {
|
|
|
6839
7189
|
return undefined;
|
|
6840
7190
|
}
|
|
6841
7191
|
function getPositionAt(entity, taskIndex, taskProgress) {
|
|
6842
|
-
if (!entity.schedule || entity.schedule.tasks.length === 0
|
|
7192
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0) {
|
|
6843
7193
|
return entity.coordinates;
|
|
6844
7194
|
}
|
|
7195
|
+
if (taskIndex < 0) {
|
|
7196
|
+
return getFlightOrigin(entity, entity.schedule.tasks.length);
|
|
7197
|
+
}
|
|
6845
7198
|
const task = entity.schedule.tasks[taskIndex];
|
|
6846
7199
|
if (!task.type.equals(exports.TaskType.TRAVEL) || !task.coordinates) {
|
|
6847
7200
|
return getFlightOrigin(entity, taskIndex);
|
|
@@ -6894,7 +7247,8 @@ function calc_transfer_duration(source, dest, cargoMass) {
|
|
|
6894
7247
|
? source.location.z
|
|
6895
7248
|
: (source.location.z?.toNumber() ?? 0);
|
|
6896
7249
|
const destZ = typeof dest.location.z === 'number' ? dest.location.z : (dest.location.z?.toNumber() ?? 0);
|
|
6897
|
-
const
|
|
7250
|
+
const rawDistance = Math.abs(sourceZ - destZ);
|
|
7251
|
+
const distance = rawDistance < MIN_TRANSFER_DISTANCE ? MIN_TRANSFER_DISTANCE : rawDistance;
|
|
6898
7252
|
const totalMass = cargoMass + totalLoaderMass;
|
|
6899
7253
|
const acceleration = calc_acceleration(totalThrust, totalMass);
|
|
6900
7254
|
const flightTime = 2 * Math.sqrt(distance / acceleration);
|
|
@@ -6973,7 +7327,7 @@ function cargoItemToStack(item) {
|
|
|
6973
7327
|
return {
|
|
6974
7328
|
item_id: antelope.UInt16.from(item.item_id),
|
|
6975
7329
|
quantity: antelope.UInt32.from(item.quantity),
|
|
6976
|
-
stats: item.stats,
|
|
7330
|
+
stats: antelope.UInt64.from(item.stats),
|
|
6977
7331
|
modules: item.modules ?? [],
|
|
6978
7332
|
};
|
|
6979
7333
|
}
|
|
@@ -7070,7 +7424,7 @@ function currentTaskIndex(entity, now) {
|
|
|
7070
7424
|
}
|
|
7071
7425
|
timeAccum += taskDuration;
|
|
7072
7426
|
}
|
|
7073
|
-
return
|
|
7427
|
+
return -1;
|
|
7074
7428
|
}
|
|
7075
7429
|
function currentTask(entity, now) {
|
|
7076
7430
|
const index = currentTaskIndex(entity, now);
|
|
@@ -7136,8 +7490,25 @@ function currentTaskProgress(entity, now) {
|
|
|
7136
7490
|
return 1;
|
|
7137
7491
|
return Math.min(1, elapsed / duration);
|
|
7138
7492
|
}
|
|
7139
|
-
function
|
|
7140
|
-
|
|
7493
|
+
function currentTaskProgressFloat(entity, now) {
|
|
7494
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0)
|
|
7495
|
+
return 0;
|
|
7496
|
+
const index = currentTaskIndex(entity, now);
|
|
7497
|
+
if (index < 0)
|
|
7498
|
+
return 0;
|
|
7499
|
+
const task = entity.schedule.tasks[index];
|
|
7500
|
+
const durationMs = task.duration.toNumber() * 1000;
|
|
7501
|
+
if (durationMs === 0)
|
|
7502
|
+
return 1;
|
|
7503
|
+
const startedMs = entity.schedule.started.toDate().getTime();
|
|
7504
|
+
const taskStartMs = startedMs + getTaskStartTime(entity, index) * 1000;
|
|
7505
|
+
const elapsedMs = now.getTime() - taskStartMs;
|
|
7506
|
+
if (elapsedMs <= 0)
|
|
7507
|
+
return 0;
|
|
7508
|
+
return Math.min(1, elapsedMs / durationMs);
|
|
7509
|
+
}
|
|
7510
|
+
function scheduleProgress(entity, now) {
|
|
7511
|
+
const duration = scheduleDuration(entity);
|
|
7141
7512
|
if (duration === 0)
|
|
7142
7513
|
return hasSchedule$1(entity) ? 1 : 0;
|
|
7143
7514
|
const elapsed = scheduleElapsed(entity, now);
|
|
@@ -7180,6 +7551,7 @@ var schedule = /*#__PURE__*/Object.freeze({
|
|
|
7180
7551
|
isTaskComplete: isTaskComplete,
|
|
7181
7552
|
isTaskInProgress: isTaskInProgress,
|
|
7182
7553
|
currentTaskProgress: currentTaskProgress,
|
|
7554
|
+
currentTaskProgressFloat: currentTaskProgressFloat,
|
|
7183
7555
|
scheduleProgress: scheduleProgress,
|
|
7184
7556
|
isTaskType: isTaskType,
|
|
7185
7557
|
isInFlight: isInFlight,
|
|
@@ -7360,6 +7732,10 @@ function applyTask(projected, task) {
|
|
|
7360
7732
|
case exports.TaskType.DEPLOY:
|
|
7361
7733
|
applyDeployTask(projected, task);
|
|
7362
7734
|
break;
|
|
7735
|
+
case exports.TaskType.UNDEPLOY:
|
|
7736
|
+
case exports.TaskType.WRAP_ENTITY:
|
|
7737
|
+
case exports.TaskType.DEMOLISH:
|
|
7738
|
+
break;
|
|
7363
7739
|
}
|
|
7364
7740
|
}
|
|
7365
7741
|
function projectEntity(entity, options) {
|
|
@@ -7525,6 +7901,10 @@ function projectEntityAt(entity, now) {
|
|
|
7525
7901
|
if (taskComplete)
|
|
7526
7902
|
applyDeployTask(projected, task);
|
|
7527
7903
|
break;
|
|
7904
|
+
case exports.TaskType.UNDEPLOY:
|
|
7905
|
+
case exports.TaskType.WRAP_ENTITY:
|
|
7906
|
+
case exports.TaskType.DEMOLISH:
|
|
7907
|
+
break;
|
|
7528
7908
|
}
|
|
7529
7909
|
}
|
|
7530
7910
|
return projected;
|
|
@@ -7628,6 +8008,9 @@ class ScheduleAccessor {
|
|
|
7628
8008
|
currentTaskProgress(now) {
|
|
7629
8009
|
return currentTaskProgress(this.entity, now);
|
|
7630
8010
|
}
|
|
8011
|
+
currentTaskProgressFloat(now) {
|
|
8012
|
+
return currentTaskProgressFloat(this.entity, now);
|
|
8013
|
+
}
|
|
7631
8014
|
progress(now) {
|
|
7632
8015
|
return scheduleProgress(this.entity, now);
|
|
7633
8016
|
}
|
|
@@ -7716,6 +8099,12 @@ class Ship extends exports.ServerTypes.entity_info {
|
|
|
7716
8099
|
get name() {
|
|
7717
8100
|
return this.entity_name;
|
|
7718
8101
|
}
|
|
8102
|
+
get entityClass() {
|
|
8103
|
+
return 'mobile';
|
|
8104
|
+
}
|
|
8105
|
+
get canUndeploy() {
|
|
8106
|
+
return true;
|
|
8107
|
+
}
|
|
7719
8108
|
get inv() {
|
|
7720
8109
|
this._inv ?? (this._inv = new InventoryAccessor(this));
|
|
7721
8110
|
return this._inv;
|
|
@@ -7747,6 +8136,11 @@ class Ship extends exports.ServerTypes.entity_info {
|
|
|
7747
8136
|
const progress = this.sched.currentTaskProgress(now);
|
|
7748
8137
|
return Coordinates.from(getPositionAt(this, taskIndex, progress));
|
|
7749
8138
|
}
|
|
8139
|
+
interpolatedPositionAt(now) {
|
|
8140
|
+
const taskIndex = this.sched.currentTaskIndex(now);
|
|
8141
|
+
const progress = this.sched.currentTaskProgressFloat(now);
|
|
8142
|
+
return getInterpolatedPosition(this, taskIndex, progress);
|
|
8143
|
+
}
|
|
7750
8144
|
isInFlight(now) {
|
|
7751
8145
|
return isInFlight(this, now);
|
|
7752
8146
|
}
|
|
@@ -7853,8 +8247,7 @@ const ORE_STATS = [
|
|
|
7853
8247
|
key: 'density',
|
|
7854
8248
|
label: 'Density',
|
|
7855
8249
|
abbreviation: 'DEN',
|
|
7856
|
-
purpose: '
|
|
7857
|
-
inverted: true,
|
|
8250
|
+
purpose: 'Structural integrity — higher rolls produce lighter hulls',
|
|
7858
8251
|
},
|
|
7859
8252
|
];
|
|
7860
8253
|
const CRYSTAL_STATS = [
|
|
@@ -8395,6 +8788,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
8395
8788
|
return MODULE_STORAGE;
|
|
8396
8789
|
case ITEM_HAULER_T1:
|
|
8397
8790
|
return MODULE_HAULER;
|
|
8791
|
+
case ITEM_WARP_T1:
|
|
8792
|
+
return MODULE_WARP;
|
|
8398
8793
|
default:
|
|
8399
8794
|
return 0xff;
|
|
8400
8795
|
}
|
|
@@ -8429,92 +8824,124 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
8429
8824
|
}
|
|
8430
8825
|
}
|
|
8431
8826
|
|
|
8827
|
+
const U16_MAX = 65535;
|
|
8828
|
+
function clampUint16(value) {
|
|
8829
|
+
return Math.min(value, U16_MAX);
|
|
8830
|
+
}
|
|
8831
|
+
function applySlotMultiplier(value, outputPct) {
|
|
8832
|
+
return clampUint16(Math.floor((value * outputPct) / 100));
|
|
8833
|
+
}
|
|
8834
|
+
function getSlotAmp(layout, slotIndex) {
|
|
8835
|
+
return layout[slotIndex]?.outputPct ?? 100;
|
|
8836
|
+
}
|
|
8837
|
+
|
|
8432
8838
|
function computeShipHullCapabilities(stats) {
|
|
8433
|
-
const density = stats.density
|
|
8434
|
-
const strength = stats.strength
|
|
8435
|
-
const hardness = stats.hardness
|
|
8436
|
-
const saturation = stats.saturation
|
|
8437
|
-
const hullmass =
|
|
8839
|
+
const density = stats.density;
|
|
8840
|
+
const strength = stats.strength;
|
|
8841
|
+
const hardness = stats.hardness;
|
|
8842
|
+
const saturation = stats.saturation;
|
|
8843
|
+
const hullmass = 100000 - 75 * density;
|
|
8438
8844
|
const statSum = strength + hardness + saturation;
|
|
8439
8845
|
const exponent = statSum / 2997.0;
|
|
8440
8846
|
const capacity = Math.floor(1000000 * 10 ** exponent);
|
|
8441
8847
|
return { hullmass, capacity };
|
|
8442
8848
|
}
|
|
8443
8849
|
function computeEngineCapabilities(stats) {
|
|
8444
|
-
const vol = stats.volatility
|
|
8445
|
-
const thm = stats.thermal
|
|
8850
|
+
const vol = stats.volatility;
|
|
8851
|
+
const thm = stats.thermal;
|
|
8446
8852
|
return {
|
|
8447
8853
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
8448
8854
|
drain: Math.max(30, 50 - Math.floor(thm / 70)),
|
|
8449
8855
|
};
|
|
8450
8856
|
}
|
|
8451
8857
|
function computeGeneratorCapabilities(stats) {
|
|
8452
|
-
const
|
|
8453
|
-
const
|
|
8858
|
+
const com = stats.composition;
|
|
8859
|
+
const fin = stats.fineness;
|
|
8454
8860
|
return {
|
|
8455
|
-
capacity: 300 + Math.floor(
|
|
8456
|
-
recharge: 1 + Math.floor((
|
|
8457
|
-
};
|
|
8458
|
-
}
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
|
|
8861
|
+
capacity: 300 + Math.floor(com / 6),
|
|
8862
|
+
recharge: 1 + Math.floor((fin * 3) / 1000),
|
|
8863
|
+
};
|
|
8864
|
+
}
|
|
8865
|
+
const GATHERER_DEPTH_TABLE = [
|
|
8866
|
+
{ floor: 500, slope: 5 },
|
|
8867
|
+
{ floor: 2000, slope: 11 },
|
|
8868
|
+
{ floor: 7000, slope: 16 },
|
|
8869
|
+
{ floor: 15000, slope: 18 },
|
|
8870
|
+
{ floor: 25000, slope: 19 },
|
|
8871
|
+
{ floor: 35000, slope: 16 },
|
|
8872
|
+
{ floor: 46000, slope: 12 },
|
|
8873
|
+
{ floor: 53500, slope: 10 },
|
|
8874
|
+
{ floor: 60000, slope: 5 },
|
|
8875
|
+
{ floor: 63500, slope: 2 },
|
|
8876
|
+
];
|
|
8877
|
+
const GATHERER_DEPTH_MAX_TIER = 10;
|
|
8878
|
+
function gathererDepthForTier(tol, tier) {
|
|
8879
|
+
if (tier < 1 || tier > GATHERER_DEPTH_MAX_TIER) {
|
|
8880
|
+
throw new Error(`gatherer tier out of range: ${tier}`);
|
|
8881
|
+
}
|
|
8882
|
+
const p = GATHERER_DEPTH_TABLE[tier - 1];
|
|
8883
|
+
return p.floor + tol * p.slope;
|
|
8884
|
+
}
|
|
8885
|
+
function computeGathererCapabilities(stats, tier) {
|
|
8886
|
+
const str = stats.strength;
|
|
8887
|
+
const con = stats.conductivity;
|
|
8888
|
+
const ref = stats.reflectivity;
|
|
8889
|
+
const tol = stats.tolerance;
|
|
8464
8890
|
return {
|
|
8465
8891
|
yield: 200 + str,
|
|
8466
8892
|
drain: Math.max(250, 1250 - Math.floor((con * 25) / 20)),
|
|
8467
|
-
depth:
|
|
8893
|
+
depth: gathererDepthForTier(tol, tier),
|
|
8468
8894
|
speed: 100 + Math.floor((ref * 4) / 5),
|
|
8469
8895
|
};
|
|
8470
8896
|
}
|
|
8471
8897
|
function computeLoaderCapabilities(stats) {
|
|
8472
|
-
const
|
|
8473
|
-
const
|
|
8898
|
+
const insulation = stats.insulation;
|
|
8899
|
+
const plasticity = stats.plasticity;
|
|
8474
8900
|
return {
|
|
8475
|
-
mass: Math.max(200, 2000 - Math.floor(
|
|
8476
|
-
thrust: 1 + Math.floor(
|
|
8901
|
+
mass: Math.max(200, 2000 - Math.floor(insulation * 2)),
|
|
8902
|
+
thrust: 1 + Math.floor(plasticity / 500),
|
|
8477
8903
|
quantity: 1,
|
|
8478
8904
|
};
|
|
8479
8905
|
}
|
|
8480
8906
|
function computeCrafterCapabilities(stats) {
|
|
8481
|
-
const rea = stats.reactivity
|
|
8482
|
-
const
|
|
8907
|
+
const rea = stats.reactivity;
|
|
8908
|
+
const fin = stats.fineness;
|
|
8483
8909
|
return {
|
|
8484
8910
|
speed: 100 + Math.floor((rea * 4) / 5),
|
|
8485
|
-
drain: Math.max(5, 30 - Math.floor(
|
|
8911
|
+
drain: Math.max(5, 30 - Math.floor(fin / 33)),
|
|
8486
8912
|
};
|
|
8487
8913
|
}
|
|
8488
8914
|
function computeHaulerCapabilities(stats) {
|
|
8489
|
-
const
|
|
8490
|
-
const
|
|
8491
|
-
const
|
|
8915
|
+
const fineness = stats.fineness;
|
|
8916
|
+
const conductivity = stats.conductivity;
|
|
8917
|
+
const composition = stats.composition;
|
|
8492
8918
|
return {
|
|
8493
|
-
capacity: Math.max(1, 1 + Math.floor(
|
|
8494
|
-
efficiency: 2000 +
|
|
8495
|
-
drain: Math.max(3, 15 - Math.floor(
|
|
8919
|
+
capacity: Math.max(1, 1 + Math.floor(fineness / 400)),
|
|
8920
|
+
efficiency: 2000 + conductivity * 6,
|
|
8921
|
+
drain: Math.max(3, 15 - Math.floor(composition / 80)),
|
|
8496
8922
|
};
|
|
8497
8923
|
}
|
|
8498
8924
|
function computeStorageCapabilities(stats, baseCapacity) {
|
|
8499
|
-
const strength = stats.strength
|
|
8500
|
-
const
|
|
8501
|
-
const
|
|
8502
|
-
const
|
|
8925
|
+
const strength = stats.strength;
|
|
8926
|
+
const density = stats.density;
|
|
8927
|
+
const hardness = stats.hardness;
|
|
8928
|
+
const saturation = stats.saturation;
|
|
8929
|
+
const statSum = strength + density + hardness + saturation;
|
|
8503
8930
|
const capacityBonus = Math.floor((baseCapacity * (10 + Math.floor((statSum * 10) / 2997))) / 100);
|
|
8504
8931
|
return { capacityBonus };
|
|
8505
8932
|
}
|
|
8506
8933
|
function computeWarehouseHullCapabilities(stats) {
|
|
8507
|
-
const density = stats.density
|
|
8508
|
-
const strength = stats.strength
|
|
8509
|
-
const hardness = stats.hardness
|
|
8510
|
-
const saturation = stats.saturation
|
|
8511
|
-
const hullmass =
|
|
8934
|
+
const density = stats.density;
|
|
8935
|
+
const strength = stats.strength;
|
|
8936
|
+
const hardness = stats.hardness;
|
|
8937
|
+
const saturation = stats.saturation;
|
|
8938
|
+
const hullmass = 100000 - 75 * density;
|
|
8512
8939
|
const statSum = strength + hardness + saturation;
|
|
8513
8940
|
const exponent = statSum / 2997.0;
|
|
8514
8941
|
const capacity = Math.floor(20000000 * 10 ** exponent);
|
|
8515
8942
|
return { hullmass, capacity };
|
|
8516
8943
|
}
|
|
8517
|
-
function computeShipCapabilities(modules) {
|
|
8944
|
+
function computeShipCapabilities(modules, layout) {
|
|
8518
8945
|
const ship = {};
|
|
8519
8946
|
const engineModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_ENGINE);
|
|
8520
8947
|
if (engineModules.length > 0) {
|
|
@@ -8522,7 +8949,7 @@ function computeShipCapabilities(modules) {
|
|
|
8522
8949
|
let totalDrain = 0;
|
|
8523
8950
|
for (const m of engineModules) {
|
|
8524
8951
|
const caps = computeEngineCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
8525
|
-
totalThrust += caps.thrust;
|
|
8952
|
+
totalThrust += applySlotMultiplier(caps.thrust, getSlotAmp(layout, m.slotIndex));
|
|
8526
8953
|
totalDrain += caps.drain;
|
|
8527
8954
|
}
|
|
8528
8955
|
ship.engines = { thrust: totalThrust, drain: totalDrain };
|
|
@@ -8533,25 +8960,37 @@ function computeShipCapabilities(modules) {
|
|
|
8533
8960
|
let totalRecharge = 0;
|
|
8534
8961
|
for (const m of generatorModules) {
|
|
8535
8962
|
const caps = computeGeneratorCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
8536
|
-
|
|
8537
|
-
|
|
8963
|
+
const amp = getSlotAmp(layout, m.slotIndex);
|
|
8964
|
+
totalCapacity += applySlotMultiplier(caps.capacity, amp);
|
|
8965
|
+
totalRecharge += applySlotMultiplier(caps.recharge, amp);
|
|
8538
8966
|
}
|
|
8539
|
-
ship.generator = {
|
|
8967
|
+
ship.generator = {
|
|
8968
|
+
capacity: clampUint16(totalCapacity),
|
|
8969
|
+
recharge: clampUint16(totalRecharge),
|
|
8970
|
+
};
|
|
8540
8971
|
}
|
|
8541
8972
|
const gathererModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_GATHERER);
|
|
8542
8973
|
if (gathererModules.length > 0) {
|
|
8543
8974
|
let totalYield = 0;
|
|
8544
8975
|
let totalDrain = 0;
|
|
8545
|
-
let
|
|
8976
|
+
let maxDepth = 0;
|
|
8546
8977
|
let totalSpeed = 0;
|
|
8547
8978
|
for (const m of gathererModules) {
|
|
8548
|
-
const
|
|
8549
|
-
|
|
8979
|
+
const tier = getItem(m.itemId).tier;
|
|
8980
|
+
const caps = computeGathererCapabilities(decodeCraftedItemStats(m.itemId, m.stats), tier);
|
|
8981
|
+
const amp = getSlotAmp(layout, m.slotIndex);
|
|
8982
|
+
totalYield += applySlotMultiplier(caps.yield, amp);
|
|
8550
8983
|
totalDrain += caps.drain;
|
|
8551
|
-
|
|
8552
|
-
|
|
8984
|
+
if (caps.depth > maxDepth)
|
|
8985
|
+
maxDepth = caps.depth;
|
|
8986
|
+
totalSpeed += applySlotMultiplier(caps.speed, amp);
|
|
8553
8987
|
}
|
|
8554
|
-
ship.gatherer = {
|
|
8988
|
+
ship.gatherer = {
|
|
8989
|
+
yield: clampUint16(totalYield),
|
|
8990
|
+
drain: totalDrain,
|
|
8991
|
+
depth: maxDepth,
|
|
8992
|
+
speed: clampUint16(totalSpeed),
|
|
8993
|
+
};
|
|
8555
8994
|
}
|
|
8556
8995
|
const haulerModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_HAULER);
|
|
8557
8996
|
if (haulerModules.length > 0) {
|
|
@@ -8560,13 +8999,15 @@ function computeShipCapabilities(modules) {
|
|
|
8560
8999
|
let totalDrain = 0;
|
|
8561
9000
|
for (const m of haulerModules) {
|
|
8562
9001
|
const caps = computeHaulerCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
9002
|
+
const eff = applySlotMultiplier(caps.efficiency, getSlotAmp(layout, m.slotIndex));
|
|
8563
9003
|
totalCapacity += caps.capacity;
|
|
8564
|
-
weightedEffNum +=
|
|
9004
|
+
weightedEffNum += eff * caps.capacity;
|
|
8565
9005
|
totalDrain += caps.drain;
|
|
8566
9006
|
}
|
|
9007
|
+
const efficiency = totalCapacity > 0 ? Math.floor(weightedEffNum / totalCapacity) : 0;
|
|
8567
9008
|
ship.hauler = {
|
|
8568
9009
|
capacity: totalCapacity,
|
|
8569
|
-
efficiency:
|
|
9010
|
+
efficiency: clampUint16(efficiency),
|
|
8570
9011
|
drain: totalDrain,
|
|
8571
9012
|
};
|
|
8572
9013
|
}
|
|
@@ -8578,10 +9019,14 @@ function computeShipCapabilities(modules) {
|
|
|
8578
9019
|
for (const m of loaderModules) {
|
|
8579
9020
|
const caps = computeLoaderCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
8580
9021
|
totalMass += caps.mass;
|
|
8581
|
-
totalThrust += caps.thrust;
|
|
9022
|
+
totalThrust += applySlotMultiplier(caps.thrust, getSlotAmp(layout, m.slotIndex));
|
|
8582
9023
|
totalQuantity += caps.quantity;
|
|
8583
9024
|
}
|
|
8584
|
-
ship.loaders = {
|
|
9025
|
+
ship.loaders = {
|
|
9026
|
+
mass: totalMass,
|
|
9027
|
+
thrust: clampUint16(totalThrust),
|
|
9028
|
+
quantity: totalQuantity,
|
|
9029
|
+
};
|
|
8585
9030
|
}
|
|
8586
9031
|
const crafterModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_CRAFTER);
|
|
8587
9032
|
if (crafterModules.length > 0) {
|
|
@@ -8589,10 +9034,10 @@ function computeShipCapabilities(modules) {
|
|
|
8589
9034
|
let totalDrain = 0;
|
|
8590
9035
|
for (const m of crafterModules) {
|
|
8591
9036
|
const caps = computeCrafterCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
8592
|
-
totalSpeed += caps.speed;
|
|
9037
|
+
totalSpeed += applySlotMultiplier(caps.speed, getSlotAmp(layout, m.slotIndex));
|
|
8593
9038
|
totalDrain += caps.drain;
|
|
8594
9039
|
}
|
|
8595
|
-
ship.crafter = { speed: totalSpeed, drain: totalDrain };
|
|
9040
|
+
ship.crafter = { speed: clampUint16(totalSpeed), drain: totalDrain };
|
|
8596
9041
|
}
|
|
8597
9042
|
return ship;
|
|
8598
9043
|
}
|
|
@@ -8601,6 +9046,12 @@ class Warehouse extends exports.ServerTypes.entity_info {
|
|
|
8601
9046
|
get name() {
|
|
8602
9047
|
return this.entity_name;
|
|
8603
9048
|
}
|
|
9049
|
+
get entityClass() {
|
|
9050
|
+
return 'building';
|
|
9051
|
+
}
|
|
9052
|
+
get canDemolish() {
|
|
9053
|
+
return true;
|
|
9054
|
+
}
|
|
8604
9055
|
get inv() {
|
|
8605
9056
|
this._inv ?? (this._inv = new InventoryAccessor(this));
|
|
8606
9057
|
return this._inv;
|
|
@@ -8651,7 +9102,7 @@ class Warehouse extends exports.ServerTypes.entity_info {
|
|
|
8651
9102
|
return hull.adding(this.totalCargoMass);
|
|
8652
9103
|
}
|
|
8653
9104
|
}
|
|
8654
|
-
function computeWarehouseCapabilities(modules) {
|
|
9105
|
+
function computeWarehouseCapabilities(modules, layout) {
|
|
8655
9106
|
const warehouse = {};
|
|
8656
9107
|
const loaderModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_LOADER);
|
|
8657
9108
|
if (loaderModules.length > 0) {
|
|
@@ -8661,10 +9112,14 @@ function computeWarehouseCapabilities(modules) {
|
|
|
8661
9112
|
for (const m of loaderModules) {
|
|
8662
9113
|
const caps = computeLoaderCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
8663
9114
|
totalMass += caps.mass;
|
|
8664
|
-
totalThrust += caps.thrust;
|
|
9115
|
+
totalThrust += applySlotMultiplier(caps.thrust, getSlotAmp(layout, m.slotIndex));
|
|
8665
9116
|
totalQuantity += caps.quantity;
|
|
8666
9117
|
}
|
|
8667
|
-
warehouse.loaders = {
|
|
9118
|
+
warehouse.loaders = {
|
|
9119
|
+
mass: totalMass,
|
|
9120
|
+
thrust: clampUint16(totalThrust),
|
|
9121
|
+
quantity: totalQuantity,
|
|
9122
|
+
};
|
|
8668
9123
|
}
|
|
8669
9124
|
return warehouse;
|
|
8670
9125
|
}
|
|
@@ -8673,6 +9128,12 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8673
9128
|
get name() {
|
|
8674
9129
|
return this.entity_name;
|
|
8675
9130
|
}
|
|
9131
|
+
get entityClass() {
|
|
9132
|
+
return 'mobile';
|
|
9133
|
+
}
|
|
9134
|
+
get canUndeploy() {
|
|
9135
|
+
return true;
|
|
9136
|
+
}
|
|
8676
9137
|
get sched() {
|
|
8677
9138
|
this._sched ?? (this._sched = new ScheduleAccessor(this));
|
|
8678
9139
|
return this._sched;
|
|
@@ -8680,6 +9141,11 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8680
9141
|
get isIdle() {
|
|
8681
9142
|
return this.is_idle;
|
|
8682
9143
|
}
|
|
9144
|
+
interpolatedPositionAt(now) {
|
|
9145
|
+
const taskIndex = this.sched.currentTaskIndex(now);
|
|
9146
|
+
const progress = this.sched.currentTaskProgressFloat(now);
|
|
9147
|
+
return getInterpolatedPosition(this, taskIndex, progress);
|
|
9148
|
+
}
|
|
8683
9149
|
isLoading(now) {
|
|
8684
9150
|
return isLoading(this, now);
|
|
8685
9151
|
}
|
|
@@ -8710,32 +9176,119 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8710
9176
|
}
|
|
8711
9177
|
}
|
|
8712
9178
|
function computeContainerCapabilities(stats) {
|
|
8713
|
-
const density = stats
|
|
8714
|
-
const strength = stats
|
|
8715
|
-
const hardness = stats
|
|
8716
|
-
const saturation = stats
|
|
8717
|
-
const hullmass =
|
|
9179
|
+
const density = stats.density;
|
|
9180
|
+
const strength = stats.strength;
|
|
9181
|
+
const hardness = stats.hardness;
|
|
9182
|
+
const saturation = stats.saturation;
|
|
9183
|
+
const hullmass = 100000 - 75 * density;
|
|
8718
9184
|
const statSum = strength + hardness + saturation;
|
|
8719
9185
|
const exponent = statSum / 2997;
|
|
8720
9186
|
const capacity = Math.floor(1000000 * 10 ** exponent);
|
|
8721
9187
|
return { hullmass, capacity };
|
|
8722
9188
|
}
|
|
8723
9189
|
function computeContainerT2Capabilities(stats) {
|
|
8724
|
-
const strength = stats
|
|
8725
|
-
const density = stats
|
|
8726
|
-
const hardness = stats
|
|
8727
|
-
const saturation = stats
|
|
8728
|
-
const hullmass =
|
|
9190
|
+
const strength = stats.strength;
|
|
9191
|
+
const density = stats.density;
|
|
9192
|
+
const hardness = stats.hardness;
|
|
9193
|
+
const saturation = stats.saturation;
|
|
9194
|
+
const hullmass = 70000 - 50 * density;
|
|
8729
9195
|
const statSum = strength + hardness + saturation;
|
|
8730
9196
|
const exponent = statSum / 2500;
|
|
8731
9197
|
const capacity = Math.floor(1500000 * 10 ** exponent);
|
|
8732
9198
|
return { hullmass, capacity };
|
|
8733
9199
|
}
|
|
8734
9200
|
|
|
9201
|
+
class Extractor extends exports.ServerTypes.entity_info {
|
|
9202
|
+
get name() {
|
|
9203
|
+
return this.entity_name;
|
|
9204
|
+
}
|
|
9205
|
+
get entityClass() {
|
|
9206
|
+
return 'building';
|
|
9207
|
+
}
|
|
9208
|
+
get canDemolish() {
|
|
9209
|
+
return true;
|
|
9210
|
+
}
|
|
9211
|
+
get inv() {
|
|
9212
|
+
this._inv ?? (this._inv = new InventoryAccessor(this));
|
|
9213
|
+
return this._inv;
|
|
9214
|
+
}
|
|
9215
|
+
get inventory() {
|
|
9216
|
+
return this.inv.items;
|
|
9217
|
+
}
|
|
9218
|
+
get sched() {
|
|
9219
|
+
this._sched ?? (this._sched = new ScheduleAccessor(this));
|
|
9220
|
+
return this._sched;
|
|
9221
|
+
}
|
|
9222
|
+
get isIdle() {
|
|
9223
|
+
return this.is_idle;
|
|
9224
|
+
}
|
|
9225
|
+
get location() {
|
|
9226
|
+
return Location.from(this.coordinates);
|
|
9227
|
+
}
|
|
9228
|
+
get totalCargoMass() {
|
|
9229
|
+
return this.inv.totalMass;
|
|
9230
|
+
}
|
|
9231
|
+
get maxCapacity() {
|
|
9232
|
+
return antelope.UInt64.from(this.capacity);
|
|
9233
|
+
}
|
|
9234
|
+
get availableCapacity() {
|
|
9235
|
+
const cargo = this.totalCargoMass;
|
|
9236
|
+
return cargo.gte(this.maxCapacity) ? antelope.UInt64.from(0) : this.maxCapacity.subtracting(cargo);
|
|
9237
|
+
}
|
|
9238
|
+
get isFull() {
|
|
9239
|
+
return this.totalCargoMass.gte(this.maxCapacity);
|
|
9240
|
+
}
|
|
9241
|
+
get totalMass() {
|
|
9242
|
+
const hull = this.hullmass ? antelope.UInt64.from(this.hullmass) : antelope.UInt64.from(0);
|
|
9243
|
+
return hull.adding(this.totalCargoMass);
|
|
9244
|
+
}
|
|
9245
|
+
}
|
|
9246
|
+
function computeExtractorCapabilities(modules, layout) {
|
|
9247
|
+
const out = {};
|
|
9248
|
+
const genModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_GENERATOR);
|
|
9249
|
+
if (genModules.length > 0) {
|
|
9250
|
+
let totalCapacity = 0;
|
|
9251
|
+
let totalRecharge = 0;
|
|
9252
|
+
for (const m of genModules) {
|
|
9253
|
+
const caps = computeGeneratorCapabilities(decodeCraftedItemStats(m.itemId, m.stats));
|
|
9254
|
+
const amp = getSlotAmp(layout, m.slotIndex);
|
|
9255
|
+
totalCapacity += applySlotMultiplier(caps.capacity, amp);
|
|
9256
|
+
totalRecharge += applySlotMultiplier(caps.recharge, amp);
|
|
9257
|
+
}
|
|
9258
|
+
out.generator = {
|
|
9259
|
+
capacity: clampUint16(totalCapacity),
|
|
9260
|
+
recharge: clampUint16(totalRecharge),
|
|
9261
|
+
};
|
|
9262
|
+
}
|
|
9263
|
+
const gathModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_GATHERER);
|
|
9264
|
+
if (gathModules.length > 0) {
|
|
9265
|
+
let totalYield = 0;
|
|
9266
|
+
let totalDrain = 0;
|
|
9267
|
+
let maxDepth = 0;
|
|
9268
|
+
let totalSpeed = 0;
|
|
9269
|
+
for (const m of gathModules) {
|
|
9270
|
+
const tier = getItem(m.itemId).tier;
|
|
9271
|
+
const caps = computeGathererCapabilities(decodeCraftedItemStats(m.itemId, m.stats), tier);
|
|
9272
|
+
const amp = getSlotAmp(layout, m.slotIndex);
|
|
9273
|
+
totalYield += applySlotMultiplier(caps.yield, amp);
|
|
9274
|
+
totalDrain += caps.drain;
|
|
9275
|
+
if (caps.depth > maxDepth)
|
|
9276
|
+
maxDepth = caps.depth;
|
|
9277
|
+
totalSpeed += applySlotMultiplier(caps.speed, amp);
|
|
9278
|
+
}
|
|
9279
|
+
out.gatherer = {
|
|
9280
|
+
yield: clampUint16(totalYield),
|
|
9281
|
+
drain: totalDrain,
|
|
9282
|
+
depth: maxDepth,
|
|
9283
|
+
speed: clampUint16(totalSpeed),
|
|
9284
|
+
};
|
|
9285
|
+
}
|
|
9286
|
+
return out;
|
|
9287
|
+
}
|
|
9288
|
+
|
|
8735
9289
|
class EntitiesManager extends BaseManager {
|
|
8736
|
-
async getEntity(
|
|
9290
|
+
async getEntity(id) {
|
|
8737
9291
|
const result = await this.server.readonly('getentity', {
|
|
8738
|
-
entity_type: antelope.Name.from(type),
|
|
8739
9292
|
entity_id: id,
|
|
8740
9293
|
});
|
|
8741
9294
|
const entityInfo = result;
|
|
@@ -8745,7 +9298,7 @@ class EntitiesManager extends BaseManager {
|
|
|
8745
9298
|
const ownerName = this.resolveOwner(owner);
|
|
8746
9299
|
const result = await this.server.readonly('getentities', {
|
|
8747
9300
|
owner: ownerName,
|
|
8748
|
-
entity_type: type
|
|
9301
|
+
entity_type: type,
|
|
8749
9302
|
});
|
|
8750
9303
|
const entities = result;
|
|
8751
9304
|
return entities.map((entity) => this.wrapEntity(entity));
|
|
@@ -8754,18 +9307,21 @@ class EntitiesManager extends BaseManager {
|
|
|
8754
9307
|
const ownerName = this.resolveOwner(owner);
|
|
8755
9308
|
const result = await this.server.readonly('getsummaries', {
|
|
8756
9309
|
owner: ownerName,
|
|
8757
|
-
entity_type: type
|
|
9310
|
+
entity_type: type,
|
|
8758
9311
|
});
|
|
8759
9312
|
return result;
|
|
8760
9313
|
}
|
|
8761
9314
|
async getShip(id) {
|
|
8762
|
-
return (await this.getEntity(
|
|
9315
|
+
return (await this.getEntity(id));
|
|
8763
9316
|
}
|
|
8764
9317
|
async getWarehouse(id) {
|
|
8765
|
-
return (await this.getEntity(
|
|
9318
|
+
return (await this.getEntity(id));
|
|
8766
9319
|
}
|
|
8767
9320
|
async getContainer(id) {
|
|
8768
|
-
return (await this.getEntity(
|
|
9321
|
+
return (await this.getEntity(id));
|
|
9322
|
+
}
|
|
9323
|
+
async getExtractor(id) {
|
|
9324
|
+
return (await this.getEntity(id));
|
|
8769
9325
|
}
|
|
8770
9326
|
async getShips(owner) {
|
|
8771
9327
|
return (await this.getEntities(owner, 'ship'));
|
|
@@ -8776,6 +9332,9 @@ class EntitiesManager extends BaseManager {
|
|
|
8776
9332
|
async getContainers(owner) {
|
|
8777
9333
|
return (await this.getEntities(owner, 'container'));
|
|
8778
9334
|
}
|
|
9335
|
+
async getExtractors(owner) {
|
|
9336
|
+
return (await this.getEntities(owner, 'extractor'));
|
|
9337
|
+
}
|
|
8779
9338
|
async getShipSummaries(owner) {
|
|
8780
9339
|
return this.getSummaries(owner, 'ship');
|
|
8781
9340
|
}
|
|
@@ -8785,16 +9344,19 @@ class EntitiesManager extends BaseManager {
|
|
|
8785
9344
|
async getContainerSummaries(owner) {
|
|
8786
9345
|
return this.getSummaries(owner, 'container');
|
|
8787
9346
|
}
|
|
9347
|
+
async getExtractorSummaries(owner) {
|
|
9348
|
+
return this.getSummaries(owner, 'extractor');
|
|
9349
|
+
}
|
|
8788
9350
|
wrapEntity(entity) {
|
|
8789
|
-
if (entity.type.equals('ship'))
|
|
9351
|
+
if (entity.type.equals('ship'))
|
|
8790
9352
|
return new Ship(entity);
|
|
8791
|
-
|
|
8792
|
-
else if (entity.type.equals('warehouse')) {
|
|
9353
|
+
if (entity.type.equals('warehouse'))
|
|
8793
9354
|
return new Warehouse(entity);
|
|
8794
|
-
|
|
8795
|
-
|
|
9355
|
+
if (entity.type.equals('extractor'))
|
|
9356
|
+
return new Extractor(entity);
|
|
9357
|
+
if (entity.type.equals('container'))
|
|
8796
9358
|
return new Container(entity);
|
|
8797
|
-
}
|
|
9359
|
+
throw new Error(`unknown entity type: ${entity.type}`);
|
|
8798
9360
|
}
|
|
8799
9361
|
resolveOwner(owner) {
|
|
8800
9362
|
if (typeof owner === 'object' && owner !== null && 'owner' in owner) {
|
|
@@ -8878,17 +9440,6 @@ class LocationsManager extends BaseManager {
|
|
|
8878
9440
|
reserve: overrideMap.get(s.index) ?? s.reserve,
|
|
8879
9441
|
}));
|
|
8880
9442
|
}
|
|
8881
|
-
async getLocationEntity(id) {
|
|
8882
|
-
const row = await this.server.table('location').get(antelope.UInt64.from(id));
|
|
8883
|
-
return row ?? undefined;
|
|
8884
|
-
}
|
|
8885
|
-
async getLocationEntityAt(coords) {
|
|
8886
|
-
const id = coordsToLocationId(coords);
|
|
8887
|
-
return this.getLocationEntity(id);
|
|
8888
|
-
}
|
|
8889
|
-
async getAllLocationEntities() {
|
|
8890
|
-
return this.server.table('location').all();
|
|
8891
|
-
}
|
|
8892
9443
|
}
|
|
8893
9444
|
|
|
8894
9445
|
class EpochsManager extends BaseManager {
|
|
@@ -8935,7 +9486,6 @@ class ActionsManager extends BaseManager {
|
|
|
8935
9486
|
const x = antelope.Int64.from(destination.x);
|
|
8936
9487
|
const y = antelope.Int64.from(destination.y);
|
|
8937
9488
|
return this.server.action('travel', {
|
|
8938
|
-
entity_type: EntityType.SHIP,
|
|
8939
9489
|
id: antelope.UInt64.from(shipId),
|
|
8940
9490
|
x,
|
|
8941
9491
|
y,
|
|
@@ -8956,9 +9506,8 @@ class ActionsManager extends BaseManager {
|
|
|
8956
9506
|
recharge,
|
|
8957
9507
|
});
|
|
8958
9508
|
}
|
|
8959
|
-
resolve(entityId,
|
|
9509
|
+
resolve(entityId, count) {
|
|
8960
9510
|
const params = {
|
|
8961
|
-
entity_type: entityType,
|
|
8962
9511
|
id: antelope.UInt64.from(entityId),
|
|
8963
9512
|
};
|
|
8964
9513
|
if (count !== undefined) {
|
|
@@ -8966,28 +9515,27 @@ class ActionsManager extends BaseManager {
|
|
|
8966
9515
|
}
|
|
8967
9516
|
return this.server.action('resolve', params);
|
|
8968
9517
|
}
|
|
8969
|
-
cancel(entityId, count
|
|
9518
|
+
cancel(entityId, count) {
|
|
8970
9519
|
return this.server.action('cancel', {
|
|
8971
|
-
entity_type: entityType,
|
|
8972
9520
|
id: antelope.UInt64.from(entityId),
|
|
8973
9521
|
count: antelope.UInt64.from(count),
|
|
8974
9522
|
});
|
|
8975
9523
|
}
|
|
8976
|
-
recharge(entityId
|
|
9524
|
+
recharge(entityId) {
|
|
8977
9525
|
return this.server.action('recharge', {
|
|
8978
|
-
entity_type: entityType,
|
|
8979
9526
|
id: antelope.UInt64.from(entityId),
|
|
8980
9527
|
});
|
|
8981
9528
|
}
|
|
8982
|
-
|
|
9529
|
+
refrshentity(entityId) {
|
|
9530
|
+
return this.server.action('refrshentity', {
|
|
9531
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
9532
|
+
});
|
|
9533
|
+
}
|
|
9534
|
+
transfer(sourceId, destId, items) {
|
|
8983
9535
|
return this.server.action('transfer', {
|
|
8984
|
-
source_type: sourceType,
|
|
8985
9536
|
source_id: antelope.UInt64.from(sourceId),
|
|
8986
|
-
dest_type: destType,
|
|
8987
9537
|
dest_id: antelope.UInt64.from(destId),
|
|
8988
|
-
|
|
8989
|
-
stats: antelope.UInt64.from(stats),
|
|
8990
|
-
quantity: antelope.UInt32.from(quantity),
|
|
9538
|
+
items,
|
|
8991
9539
|
});
|
|
8992
9540
|
}
|
|
8993
9541
|
foundCompany(account, name) {
|
|
@@ -9001,80 +9549,81 @@ class ActionsManager extends BaseManager {
|
|
|
9001
9549
|
account: antelope.Name.from(account),
|
|
9002
9550
|
});
|
|
9003
9551
|
}
|
|
9004
|
-
gather(
|
|
9552
|
+
gather(sourceId, destinationId, stratum, quantity) {
|
|
9005
9553
|
return this.server.action('gather', {
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
entity_id: antelope.UInt64.from(source.entityId),
|
|
9009
|
-
}),
|
|
9010
|
-
destination: exports.ServerTypes.entity_ref.from({
|
|
9011
|
-
entity_type: destination.entityType,
|
|
9012
|
-
entity_id: antelope.UInt64.from(destination.entityId),
|
|
9013
|
-
}),
|
|
9554
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
9555
|
+
destination_id: antelope.UInt64.from(destinationId),
|
|
9014
9556
|
stratum: antelope.UInt16.from(stratum),
|
|
9015
9557
|
quantity: antelope.UInt32.from(quantity),
|
|
9016
9558
|
});
|
|
9017
9559
|
}
|
|
9018
|
-
warp(entityId, destination
|
|
9560
|
+
warp(entityId, destination) {
|
|
9019
9561
|
const x = antelope.Int64.from(destination.x);
|
|
9020
9562
|
const y = antelope.Int64.from(destination.y);
|
|
9021
9563
|
return this.server.action('warp', {
|
|
9022
|
-
entity_type: entityType,
|
|
9023
9564
|
id: antelope.UInt64.from(entityId),
|
|
9024
9565
|
x,
|
|
9025
9566
|
y,
|
|
9026
9567
|
});
|
|
9027
9568
|
}
|
|
9028
|
-
craft(
|
|
9029
|
-
const cargoInputs = inputs.map((i) => exports.ServerTypes.cargo_item.from(i));
|
|
9569
|
+
craft(entityId, recipeId, quantity, inputs) {
|
|
9030
9570
|
return this.server.action('craft', {
|
|
9031
|
-
entity_type: entityType,
|
|
9032
9571
|
id: antelope.UInt64.from(entityId),
|
|
9033
9572
|
recipe_id: antelope.UInt16.from(recipeId),
|
|
9034
9573
|
quantity: antelope.UInt32.from(quantity),
|
|
9035
|
-
inputs
|
|
9574
|
+
inputs,
|
|
9036
9575
|
});
|
|
9037
9576
|
}
|
|
9038
|
-
blend(
|
|
9039
|
-
const cargoInputs = inputs.map((i) => exports.ServerTypes.cargo_item.from(i));
|
|
9577
|
+
blend(entityId, inputs) {
|
|
9040
9578
|
return this.server.action('blend', {
|
|
9041
|
-
entity_type: entityType,
|
|
9042
9579
|
id: antelope.UInt64.from(entityId),
|
|
9043
|
-
inputs
|
|
9580
|
+
inputs,
|
|
9044
9581
|
});
|
|
9045
9582
|
}
|
|
9046
|
-
deploy(
|
|
9583
|
+
deploy(entityId, ref) {
|
|
9047
9584
|
return this.server.action('deploy', {
|
|
9048
|
-
entity_type: entityType,
|
|
9049
9585
|
id: antelope.UInt64.from(entityId),
|
|
9050
|
-
|
|
9051
|
-
stats: antelope.UInt64.from(stats),
|
|
9586
|
+
ref,
|
|
9052
9587
|
});
|
|
9053
9588
|
}
|
|
9054
|
-
addmodule(
|
|
9589
|
+
addmodule(entityId, moduleIndex, moduleRef, targetRef = null) {
|
|
9055
9590
|
return this.server.action('addmodule', {
|
|
9056
|
-
entity_type: entityType,
|
|
9057
9591
|
entity_id: antelope.UInt64.from(entityId),
|
|
9058
9592
|
module_index: moduleIndex,
|
|
9059
|
-
|
|
9060
|
-
|
|
9593
|
+
module_ref: moduleRef,
|
|
9594
|
+
target_ref: targetRef ?? undefined,
|
|
9061
9595
|
});
|
|
9062
9596
|
}
|
|
9063
|
-
rmmodule(
|
|
9597
|
+
rmmodule(entityId, moduleIndex, targetRef = null) {
|
|
9064
9598
|
return this.server.action('rmmodule', {
|
|
9065
|
-
entity_type: entityType,
|
|
9066
9599
|
entity_id: antelope.UInt64.from(entityId),
|
|
9067
9600
|
module_index: moduleIndex,
|
|
9068
|
-
|
|
9601
|
+
target_ref: targetRef ?? undefined,
|
|
9069
9602
|
});
|
|
9070
9603
|
}
|
|
9071
|
-
wrap(owner,
|
|
9604
|
+
wrap(owner, entityId, nexusId, items) {
|
|
9072
9605
|
return this.server.action('wrap', {
|
|
9073
9606
|
owner: antelope.Name.from(owner),
|
|
9074
|
-
entity_type: entityType,
|
|
9075
9607
|
entity_id: antelope.UInt64.from(entityId),
|
|
9076
|
-
|
|
9077
|
-
|
|
9608
|
+
nexus_id: antelope.UInt64.from(nexusId),
|
|
9609
|
+
items,
|
|
9610
|
+
});
|
|
9611
|
+
}
|
|
9612
|
+
undeploy(hostId, targetId) {
|
|
9613
|
+
return this.server.action('undeploy', {
|
|
9614
|
+
host_id: antelope.UInt64.from(hostId),
|
|
9615
|
+
target_id: antelope.UInt64.from(targetId),
|
|
9616
|
+
});
|
|
9617
|
+
}
|
|
9618
|
+
wrapEntity(entityId, nexusId) {
|
|
9619
|
+
return this.server.action('wrapentity', {
|
|
9620
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
9621
|
+
nexus_id: antelope.UInt64.from(nexusId),
|
|
9622
|
+
});
|
|
9623
|
+
}
|
|
9624
|
+
demolish(entityId) {
|
|
9625
|
+
return this.server.action('demolish', {
|
|
9626
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
9078
9627
|
});
|
|
9079
9628
|
}
|
|
9080
9629
|
joinGame(account, companyName) {
|
|
@@ -9103,9 +9652,15 @@ class WebSocketConnection {
|
|
|
9103
9652
|
this._state = 'disconnected';
|
|
9104
9653
|
this.shouldReconnect = true;
|
|
9105
9654
|
this.sendQueue = [];
|
|
9655
|
+
this.pingTimer = null;
|
|
9656
|
+
this.staleTimer = null;
|
|
9106
9657
|
this.url = options.url;
|
|
9107
9658
|
this.onMessage = options.onMessage;
|
|
9108
9659
|
this.onStateChange = options.onStateChange;
|
|
9660
|
+
this.minReconnectDelay =
|
|
9661
|
+
options.minReconnectDelay ?? WebSocketConnection.DEFAULT_MIN_RECONNECT_DELAY;
|
|
9662
|
+
this.pingIntervalMs = options.pingIntervalMs ?? WebSocketConnection.DEFAULT_PING_INTERVAL_MS;
|
|
9663
|
+
this.pongTimeoutMs = options.pongTimeoutMs ?? WebSocketConnection.DEFAULT_PONG_TIMEOUT_MS;
|
|
9109
9664
|
}
|
|
9110
9665
|
get state() {
|
|
9111
9666
|
return this._state;
|
|
@@ -9134,8 +9689,10 @@ class WebSocketConnection {
|
|
|
9134
9689
|
this.ws.readyState === WebSocket.OPEN) {
|
|
9135
9690
|
this.ws.send(this.sendQueue.shift());
|
|
9136
9691
|
}
|
|
9692
|
+
this.startHeartbeat();
|
|
9137
9693
|
};
|
|
9138
9694
|
this.ws.onmessage = (event) => {
|
|
9695
|
+
this.resetStaleTimer();
|
|
9139
9696
|
try {
|
|
9140
9697
|
const message = JSON.parse(event.data);
|
|
9141
9698
|
this.onMessage(message);
|
|
@@ -9145,6 +9702,7 @@ class WebSocketConnection {
|
|
|
9145
9702
|
}
|
|
9146
9703
|
};
|
|
9147
9704
|
this.ws.onclose = () => {
|
|
9705
|
+
this.stopHeartbeat();
|
|
9148
9706
|
this.ws = null;
|
|
9149
9707
|
this.sendQueue.length = 0;
|
|
9150
9708
|
if (this.shouldReconnect) {
|
|
@@ -9169,7 +9727,7 @@ class WebSocketConnection {
|
|
|
9169
9727
|
if (this.reconnectTimeout) {
|
|
9170
9728
|
return;
|
|
9171
9729
|
}
|
|
9172
|
-
const delay = Math.min(
|
|
9730
|
+
const delay = Math.min(this.minReconnectDelay *
|
|
9173
9731
|
WebSocketConnection.RECONNECT_MULTIPLIER ** this.reconnectAttempts, WebSocketConnection.MAX_RECONNECT_DELAY);
|
|
9174
9732
|
debug(`Reconnecting in ${delay}ms (attempt ${this.reconnectAttempts + 1})`);
|
|
9175
9733
|
this.reconnectTimeout = setTimeout(() => {
|
|
@@ -9184,6 +9742,7 @@ class WebSocketConnection {
|
|
|
9184
9742
|
clearTimeout(this.reconnectTimeout);
|
|
9185
9743
|
this.reconnectTimeout = null;
|
|
9186
9744
|
}
|
|
9745
|
+
this.stopHeartbeat();
|
|
9187
9746
|
if (this.ws) {
|
|
9188
9747
|
this.ws.close();
|
|
9189
9748
|
this.ws = null;
|
|
@@ -9191,6 +9750,34 @@ class WebSocketConnection {
|
|
|
9191
9750
|
this.sendQueue.length = 0;
|
|
9192
9751
|
this.setState('disconnected');
|
|
9193
9752
|
}
|
|
9753
|
+
startHeartbeat() {
|
|
9754
|
+
this.stopHeartbeat();
|
|
9755
|
+
this.resetStaleTimer();
|
|
9756
|
+
this.pingTimer = setInterval(() => {
|
|
9757
|
+
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
9758
|
+
this.ws.send(JSON.stringify({ type: 'ping' }));
|
|
9759
|
+
}
|
|
9760
|
+
}, this.pingIntervalMs);
|
|
9761
|
+
}
|
|
9762
|
+
stopHeartbeat() {
|
|
9763
|
+
if (this.pingTimer) {
|
|
9764
|
+
clearInterval(this.pingTimer);
|
|
9765
|
+
this.pingTimer = null;
|
|
9766
|
+
}
|
|
9767
|
+
if (this.staleTimer) {
|
|
9768
|
+
clearTimeout(this.staleTimer);
|
|
9769
|
+
this.staleTimer = null;
|
|
9770
|
+
}
|
|
9771
|
+
}
|
|
9772
|
+
resetStaleTimer() {
|
|
9773
|
+
if (this.staleTimer)
|
|
9774
|
+
clearTimeout(this.staleTimer);
|
|
9775
|
+
this.staleTimer = setTimeout(() => {
|
|
9776
|
+
debug('No frames within ping interval + pong timeout — forcing reconnect');
|
|
9777
|
+
if (this.ws)
|
|
9778
|
+
this.ws.close();
|
|
9779
|
+
}, this.pingIntervalMs + this.pongTimeoutMs);
|
|
9780
|
+
}
|
|
9194
9781
|
close() {
|
|
9195
9782
|
this.disconnect();
|
|
9196
9783
|
}
|
|
@@ -9206,9 +9793,11 @@ class WebSocketConnection {
|
|
|
9206
9793
|
return this._state === 'connected';
|
|
9207
9794
|
}
|
|
9208
9795
|
}
|
|
9209
|
-
WebSocketConnection.
|
|
9796
|
+
WebSocketConnection.DEFAULT_MIN_RECONNECT_DELAY = 1000;
|
|
9210
9797
|
WebSocketConnection.MAX_RECONNECT_DELAY = 30000;
|
|
9211
9798
|
WebSocketConnection.RECONNECT_MULTIPLIER = 2;
|
|
9799
|
+
WebSocketConnection.DEFAULT_PING_INTERVAL_MS = 25000;
|
|
9800
|
+
WebSocketConnection.DEFAULT_PONG_TIMEOUT_MS = 10000;
|
|
9212
9801
|
|
|
9213
9802
|
function mapEntity(ei) {
|
|
9214
9803
|
if (ei.type.equals('ship'))
|
|
@@ -9237,9 +9826,14 @@ class SubscriptionsManager {
|
|
|
9237
9826
|
this.entitySubs = new Map();
|
|
9238
9827
|
this.boundsSubs = new Map();
|
|
9239
9828
|
this.subCounter = 0;
|
|
9829
|
+
this.hasConnected = false;
|
|
9240
9830
|
this.conn = new WebSocketConnection({
|
|
9241
9831
|
url: opts.url,
|
|
9242
9832
|
onMessage: (m) => this.onMessage(m),
|
|
9833
|
+
onStateChange: (s) => this.onStateChange(s),
|
|
9834
|
+
minReconnectDelay: opts.minReconnectDelay,
|
|
9835
|
+
pingIntervalMs: opts.pingIntervalMs,
|
|
9836
|
+
pongTimeoutMs: opts.pongTimeoutMs,
|
|
9243
9837
|
});
|
|
9244
9838
|
this.conn.connect();
|
|
9245
9839
|
}
|
|
@@ -9296,6 +9890,9 @@ class SubscriptionsManager {
|
|
|
9296
9890
|
current: new Map(),
|
|
9297
9891
|
};
|
|
9298
9892
|
this.boundsSubs.set(subId, {
|
|
9893
|
+
bounds,
|
|
9894
|
+
owner: handlers.owner,
|
|
9895
|
+
prioritizeOwner: handlers.prioritizeOwner,
|
|
9299
9896
|
onSnapshot: handlers.onSnapshot,
|
|
9300
9897
|
onUpdate: handlers.onUpdate,
|
|
9301
9898
|
onBoundsDelta: handlers.onBoundsDelta,
|
|
@@ -9304,14 +9901,67 @@ class SubscriptionsManager {
|
|
|
9304
9901
|
this.sendMessage(msg);
|
|
9305
9902
|
return handle;
|
|
9306
9903
|
}
|
|
9904
|
+
subscribeOwner(owner, handlers = {}) {
|
|
9905
|
+
const subId = this.generateSubID('own');
|
|
9906
|
+
const msg = {
|
|
9907
|
+
type: 'subscribe',
|
|
9908
|
+
sub_id: subId,
|
|
9909
|
+
owner,
|
|
9910
|
+
};
|
|
9911
|
+
const handle = {
|
|
9912
|
+
subId,
|
|
9913
|
+
unsubscribe: () => this.unsubscribeBounds(subId),
|
|
9914
|
+
current: new Map(),
|
|
9915
|
+
};
|
|
9916
|
+
this.boundsSubs.set(subId, {
|
|
9917
|
+
bounds: undefined,
|
|
9918
|
+
owner,
|
|
9919
|
+
prioritizeOwner: undefined,
|
|
9920
|
+
onSnapshot: handlers.onSnapshot,
|
|
9921
|
+
onUpdate: handlers.onUpdate,
|
|
9922
|
+
handle,
|
|
9923
|
+
});
|
|
9924
|
+
this.sendMessage(msg);
|
|
9925
|
+
return handle;
|
|
9926
|
+
}
|
|
9307
9927
|
unsubscribeBounds(subId) {
|
|
9308
9928
|
this.boundsSubs.delete(subId);
|
|
9309
9929
|
this.sendMessage({ type: 'unsubscribe', sub_id: subId });
|
|
9310
9930
|
}
|
|
9311
9931
|
updateBounds(subId, bounds) {
|
|
9932
|
+
const entry = this.boundsSubs.get(subId);
|
|
9933
|
+
if (entry)
|
|
9934
|
+
entry.bounds = bounds;
|
|
9312
9935
|
const msg = { type: 'update_bounds', sub_id: subId, bounds };
|
|
9313
9936
|
this.sendMessage(msg);
|
|
9314
9937
|
}
|
|
9938
|
+
onStateChange(state) {
|
|
9939
|
+
if (state !== 'connected')
|
|
9940
|
+
return;
|
|
9941
|
+
if (!this.hasConnected) {
|
|
9942
|
+
this.hasConnected = true;
|
|
9943
|
+
return;
|
|
9944
|
+
}
|
|
9945
|
+
for (const [subId, entry] of this.entitySubs) {
|
|
9946
|
+
const msg = {
|
|
9947
|
+
type: 'subscribe_entity',
|
|
9948
|
+
sub_id: subId,
|
|
9949
|
+
entity_type: entry.type,
|
|
9950
|
+
entity_id: entry.id,
|
|
9951
|
+
};
|
|
9952
|
+
this.sendMessage(msg);
|
|
9953
|
+
}
|
|
9954
|
+
for (const [subId, entry] of this.boundsSubs) {
|
|
9955
|
+
const msg = {
|
|
9956
|
+
type: 'subscribe',
|
|
9957
|
+
sub_id: subId,
|
|
9958
|
+
bounds: entry.bounds,
|
|
9959
|
+
owner: entry.owner,
|
|
9960
|
+
prioritize_owner: entry.prioritizeOwner,
|
|
9961
|
+
};
|
|
9962
|
+
this.sendMessage(msg);
|
|
9963
|
+
}
|
|
9964
|
+
}
|
|
9315
9965
|
onMessage(msg) {
|
|
9316
9966
|
switch (msg.type) {
|
|
9317
9967
|
case 'snapshot':
|
|
@@ -9573,15 +10223,22 @@ function assignModulesToSlots(packedEntityItemId, modules, entityLabel) {
|
|
|
9573
10223
|
installed: r.installed,
|
|
9574
10224
|
}));
|
|
9575
10225
|
}
|
|
9576
|
-
function
|
|
9577
|
-
|
|
9578
|
-
|
|
9579
|
-
|
|
9580
|
-
|
|
10226
|
+
function toInstalledModules(entries) {
|
|
10227
|
+
const installed = [];
|
|
10228
|
+
entries.forEach((entry, slotIndex) => {
|
|
10229
|
+
if (!entry.installed)
|
|
10230
|
+
return;
|
|
10231
|
+
installed.push({
|
|
10232
|
+
slotIndex,
|
|
10233
|
+
itemId: Number(antelope.UInt16.from(entry.installed.item_id).value.toString()),
|
|
10234
|
+
stats: BigInt(antelope.UInt64.from(entry.installed.stats).toString()),
|
|
10235
|
+
});
|
|
10236
|
+
});
|
|
10237
|
+
return installed;
|
|
9581
10238
|
}
|
|
9582
|
-
function computeStorageBonus(
|
|
10239
|
+
function computeStorageBonus(modules, baseCapacity) {
|
|
9583
10240
|
let totalBonus = 0;
|
|
9584
|
-
for (const m of
|
|
10241
|
+
for (const m of modules) {
|
|
9585
10242
|
if (getModuleCapabilityType(m.itemId) !== MODULE_STORAGE)
|
|
9586
10243
|
continue;
|
|
9587
10244
|
const stats = decodeCraftedItemStats(m.itemId, m.stats);
|
|
@@ -9590,10 +10247,10 @@ function computeStorageBonus(decoded, baseCapacity) {
|
|
|
9590
10247
|
}
|
|
9591
10248
|
return totalBonus;
|
|
9592
10249
|
}
|
|
9593
|
-
function deriveShipFromModules(
|
|
9594
|
-
const
|
|
9595
|
-
const capabilities = computeShipCapabilities(
|
|
9596
|
-
const totalBonus = computeStorageBonus(
|
|
10250
|
+
function deriveShipFromModules(moduleEntries, layout, baseCapacity) {
|
|
10251
|
+
const installed = toInstalledModules(moduleEntries);
|
|
10252
|
+
const capabilities = computeShipCapabilities(installed, layout);
|
|
10253
|
+
const totalBonus = computeStorageBonus(installed, baseCapacity);
|
|
9597
10254
|
return { capabilities, finalCapacity: baseCapacity + totalBonus };
|
|
9598
10255
|
}
|
|
9599
10256
|
function makeShip(state) {
|
|
@@ -9617,9 +10274,10 @@ function makeShip(state) {
|
|
|
9617
10274
|
if (state.schedule)
|
|
9618
10275
|
info.schedule = state.schedule;
|
|
9619
10276
|
let moduleEntries = [];
|
|
10277
|
+
const shipLayout = getEntityLayout(ITEM_SHIP_T1_PACKED)?.slots ?? [];
|
|
9620
10278
|
if (state.modules && state.modules.length > 0) {
|
|
9621
10279
|
moduleEntries = assignModulesToSlots(ITEM_SHIP_T1_PACKED, state.modules, 'Ship T1');
|
|
9622
|
-
const { capabilities, finalCapacity } = deriveShipFromModules(
|
|
10280
|
+
const { capabilities, finalCapacity } = deriveShipFromModules(moduleEntries, shipLayout, state.capacity ?? 0);
|
|
9623
10281
|
if (capabilities.engines)
|
|
9624
10282
|
info.engines = capabilities.engines;
|
|
9625
10283
|
if (capabilities.generator)
|
|
@@ -9664,13 +10322,14 @@ function makeWarehouse(state) {
|
|
|
9664
10322
|
if (state.schedule)
|
|
9665
10323
|
info.schedule = state.schedule;
|
|
9666
10324
|
let moduleEntries = [];
|
|
10325
|
+
const warehouseLayout = getEntityLayout(ITEM_WAREHOUSE_T1_PACKED)?.slots ?? [];
|
|
9667
10326
|
if (state.modules && state.modules.length > 0) {
|
|
9668
10327
|
moduleEntries = assignModulesToSlots(ITEM_WAREHOUSE_T1_PACKED, state.modules, 'Warehouse T1');
|
|
9669
|
-
const
|
|
9670
|
-
const capabilities = computeWarehouseCapabilities(
|
|
10328
|
+
const installed = toInstalledModules(moduleEntries);
|
|
10329
|
+
const capabilities = computeWarehouseCapabilities(installed, warehouseLayout);
|
|
9671
10330
|
if (capabilities.loaders)
|
|
9672
10331
|
info.loaders = capabilities.loaders;
|
|
9673
|
-
const totalBonus = computeStorageBonus(
|
|
10332
|
+
const totalBonus = computeStorageBonus(installed, state.capacity);
|
|
9674
10333
|
info.capacity = antelope.UInt32.from(state.capacity + totalBonus);
|
|
9675
10334
|
}
|
|
9676
10335
|
else {
|
|
@@ -9680,6 +10339,42 @@ function makeWarehouse(state) {
|
|
|
9680
10339
|
const entityInfo = exports.ServerTypes.entity_info.from(info);
|
|
9681
10340
|
return new Warehouse(entityInfo);
|
|
9682
10341
|
}
|
|
10342
|
+
function makeExtractor(state) {
|
|
10343
|
+
const info = {
|
|
10344
|
+
type: antelope.Name.from('extractor'),
|
|
10345
|
+
id: antelope.UInt64.from(state.id),
|
|
10346
|
+
owner: antelope.Name.from(state.owner),
|
|
10347
|
+
entity_name: state.name,
|
|
10348
|
+
coordinates: exports.ServerTypes.coordinates.from(state.coordinates),
|
|
10349
|
+
cargomass: antelope.UInt32.from(0),
|
|
10350
|
+
cargo: state.cargo || [],
|
|
10351
|
+
is_idle: !state.schedule,
|
|
10352
|
+
current_task_elapsed: antelope.UInt32.from(0),
|
|
10353
|
+
current_task_remaining: antelope.UInt32.from(0),
|
|
10354
|
+
pending_tasks: [],
|
|
10355
|
+
};
|
|
10356
|
+
if (state.hullmass !== undefined)
|
|
10357
|
+
info.hullmass = antelope.UInt32.from(state.hullmass);
|
|
10358
|
+
if (state.energy !== undefined)
|
|
10359
|
+
info.energy = antelope.UInt16.from(state.energy);
|
|
10360
|
+
if (state.schedule)
|
|
10361
|
+
info.schedule = state.schedule;
|
|
10362
|
+
if (state.capacity !== undefined)
|
|
10363
|
+
info.capacity = antelope.UInt32.from(state.capacity);
|
|
10364
|
+
const moduleEntries = assignModulesToSlots(ITEM_EXTRACTOR_T1_PACKED, state.modules ?? [], 'Extractor T1');
|
|
10365
|
+
if (state.modules && state.modules.length > 0) {
|
|
10366
|
+
const layout = getEntityLayout(ITEM_EXTRACTOR_T1_PACKED)?.slots ?? [];
|
|
10367
|
+
const installed = toInstalledModules(moduleEntries);
|
|
10368
|
+
const capabilities = computeExtractorCapabilities(installed, layout);
|
|
10369
|
+
if (capabilities.generator)
|
|
10370
|
+
info.generator = capabilities.generator;
|
|
10371
|
+
if (capabilities.gatherer)
|
|
10372
|
+
info.gatherer = capabilities.gatherer;
|
|
10373
|
+
}
|
|
10374
|
+
info.modules = moduleEntries;
|
|
10375
|
+
const entityInfo = exports.ServerTypes.entity_info.from(info);
|
|
10376
|
+
return new Extractor(entityInfo);
|
|
10377
|
+
}
|
|
9683
10378
|
function makeContainer(state) {
|
|
9684
10379
|
const entityInfo = exports.ServerTypes.entity_info.from({
|
|
9685
10380
|
type: antelope.Name.from('container'),
|
|
@@ -9761,6 +10456,149 @@ var cargoUtils = /*#__PURE__*/Object.freeze({
|
|
|
9761
10456
|
afterRemoveAllItems: afterRemoveAllItems
|
|
9762
10457
|
});
|
|
9763
10458
|
|
|
10459
|
+
function cargoRef(src) {
|
|
10460
|
+
return {
|
|
10461
|
+
item_id: src.item_id,
|
|
10462
|
+
stats: src.stats,
|
|
10463
|
+
modules: src.modules ?? [],
|
|
10464
|
+
};
|
|
10465
|
+
}
|
|
10466
|
+
function cargoItem(src, quantity) {
|
|
10467
|
+
return {
|
|
10468
|
+
...cargoRef(src),
|
|
10469
|
+
quantity,
|
|
10470
|
+
};
|
|
10471
|
+
}
|
|
10472
|
+
|
|
10473
|
+
function toChange(item, direction) {
|
|
10474
|
+
return {
|
|
10475
|
+
direction,
|
|
10476
|
+
item_id: Number(item.item_id),
|
|
10477
|
+
stats: BigInt(item.stats.toString()),
|
|
10478
|
+
modules: item.modules ?? [],
|
|
10479
|
+
quantity: Number(item.quantity),
|
|
10480
|
+
};
|
|
10481
|
+
}
|
|
10482
|
+
function taskCargoChanges(task) {
|
|
10483
|
+
const items = task.cargo ?? [];
|
|
10484
|
+
if (items.length === 0)
|
|
10485
|
+
return [];
|
|
10486
|
+
switch (Number(task.type)) {
|
|
10487
|
+
case exports.TaskType.LOAD:
|
|
10488
|
+
case exports.TaskType.UNWRAP:
|
|
10489
|
+
return items.map((i) => toChange(i, 'in'));
|
|
10490
|
+
case exports.TaskType.GATHER:
|
|
10491
|
+
return task.entitytarget ? [] : items.map((i) => toChange(i, 'in'));
|
|
10492
|
+
case exports.TaskType.UNLOAD:
|
|
10493
|
+
case exports.TaskType.WRAP:
|
|
10494
|
+
return items.map((i) => toChange(i, 'out'));
|
|
10495
|
+
case exports.TaskType.CRAFT:
|
|
10496
|
+
return [
|
|
10497
|
+
...items.slice(0, -1).map((i) => toChange(i, 'out')),
|
|
10498
|
+
toChange(items[items.length - 1], 'in'),
|
|
10499
|
+
];
|
|
10500
|
+
default:
|
|
10501
|
+
return [];
|
|
10502
|
+
}
|
|
10503
|
+
}
|
|
10504
|
+
|
|
10505
|
+
const ENTITY_SHIP = antelope.Name.from('ship');
|
|
10506
|
+
const ENTITY_WAREHOUSE = antelope.Name.from('warehouse');
|
|
10507
|
+
const ENTITY_EXTRACTOR = antelope.Name.from('extractor');
|
|
10508
|
+
const ENTITY_CONTAINER = antelope.Name.from('container');
|
|
10509
|
+
exports.EntityClass = void 0;
|
|
10510
|
+
(function (EntityClass) {
|
|
10511
|
+
EntityClass[EntityClass["OrbitalVessel"] = 0] = "OrbitalVessel";
|
|
10512
|
+
EntityClass[EntityClass["PlanetaryStructure"] = 1] = "PlanetaryStructure";
|
|
10513
|
+
})(exports.EntityClass || (exports.EntityClass = {}));
|
|
10514
|
+
function getEntityClass(entityType) {
|
|
10515
|
+
const typeName = typeof entityType === 'string' ? entityType : entityType.toString();
|
|
10516
|
+
switch (typeName) {
|
|
10517
|
+
case 'ship':
|
|
10518
|
+
case 'container':
|
|
10519
|
+
return exports.EntityClass.OrbitalVessel;
|
|
10520
|
+
case 'warehouse':
|
|
10521
|
+
case 'extractor':
|
|
10522
|
+
return exports.EntityClass.PlanetaryStructure;
|
|
10523
|
+
default:
|
|
10524
|
+
throw new Error(`Entity type has no class: ${typeName}`);
|
|
10525
|
+
}
|
|
10526
|
+
}
|
|
10527
|
+
function getPackedEntityType(itemId) {
|
|
10528
|
+
switch (itemId) {
|
|
10529
|
+
case ITEM_SHIP_T1_PACKED:
|
|
10530
|
+
return ENTITY_SHIP;
|
|
10531
|
+
case ITEM_CONTAINER_T1_PACKED:
|
|
10532
|
+
case ITEM_CONTAINER_T2_PACKED:
|
|
10533
|
+
return ENTITY_CONTAINER;
|
|
10534
|
+
case ITEM_WAREHOUSE_T1_PACKED:
|
|
10535
|
+
return ENTITY_WAREHOUSE;
|
|
10536
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
10537
|
+
return ENTITY_EXTRACTOR;
|
|
10538
|
+
default:
|
|
10539
|
+
return null;
|
|
10540
|
+
}
|
|
10541
|
+
}
|
|
10542
|
+
const shipTraits = {
|
|
10543
|
+
typeName: ENTITY_SHIP,
|
|
10544
|
+
isMovable: true,
|
|
10545
|
+
hasEnergy: true,
|
|
10546
|
+
hasLoaders: true,
|
|
10547
|
+
hasModules: true,
|
|
10548
|
+
notFoundError: 'ship not found',
|
|
10549
|
+
};
|
|
10550
|
+
const warehouseTraits = {
|
|
10551
|
+
typeName: ENTITY_WAREHOUSE,
|
|
10552
|
+
isMovable: false,
|
|
10553
|
+
hasEnergy: false,
|
|
10554
|
+
hasLoaders: true,
|
|
10555
|
+
hasModules: true,
|
|
10556
|
+
notFoundError: 'warehouse not found',
|
|
10557
|
+
};
|
|
10558
|
+
const extractorTraits = {
|
|
10559
|
+
typeName: ENTITY_EXTRACTOR,
|
|
10560
|
+
isMovable: false,
|
|
10561
|
+
hasEnergy: true,
|
|
10562
|
+
hasLoaders: false,
|
|
10563
|
+
hasModules: true,
|
|
10564
|
+
notFoundError: 'extractor not found',
|
|
10565
|
+
};
|
|
10566
|
+
const containerTraits = {
|
|
10567
|
+
typeName: ENTITY_CONTAINER,
|
|
10568
|
+
isMovable: true,
|
|
10569
|
+
hasEnergy: false,
|
|
10570
|
+
hasLoaders: false,
|
|
10571
|
+
hasModules: false,
|
|
10572
|
+
notFoundError: 'container not found',
|
|
10573
|
+
};
|
|
10574
|
+
function getEntityTraits(entityType) {
|
|
10575
|
+
const typeName = typeof entityType === 'string' ? entityType : entityType.toString();
|
|
10576
|
+
switch (typeName) {
|
|
10577
|
+
case 'ship':
|
|
10578
|
+
return shipTraits;
|
|
10579
|
+
case 'warehouse':
|
|
10580
|
+
return warehouseTraits;
|
|
10581
|
+
case 'extractor':
|
|
10582
|
+
return extractorTraits;
|
|
10583
|
+
case 'container':
|
|
10584
|
+
return containerTraits;
|
|
10585
|
+
default:
|
|
10586
|
+
throw new Error(`Unknown entity type: ${typeName}`);
|
|
10587
|
+
}
|
|
10588
|
+
}
|
|
10589
|
+
function isShip(entity) {
|
|
10590
|
+
return entity.type?.equals(ENTITY_SHIP) ?? false;
|
|
10591
|
+
}
|
|
10592
|
+
function isWarehouse(entity) {
|
|
10593
|
+
return entity.type?.equals(ENTITY_WAREHOUSE) ?? false;
|
|
10594
|
+
}
|
|
10595
|
+
function isExtractor(entity) {
|
|
10596
|
+
return entity.type?.equals(ENTITY_EXTRACTOR) ?? false;
|
|
10597
|
+
}
|
|
10598
|
+
function isContainer(entity) {
|
|
10599
|
+
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
10600
|
+
}
|
|
10601
|
+
|
|
9764
10602
|
function canMove(e) {
|
|
9765
10603
|
return 'engines' in e && 'generator' in e && 'energy' in e;
|
|
9766
10604
|
}
|
|
@@ -9833,34 +10671,96 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
9833
10671
|
HAULER_EFFICIENCY_DENOM);
|
|
9834
10672
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
9835
10673
|
}
|
|
9836
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
10674
|
+
function computeHaulerDrain$1(distance, drain, haulCount) {
|
|
9837
10675
|
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
9838
10676
|
}
|
|
9839
10677
|
|
|
9840
|
-
const
|
|
9841
|
-
|
|
9842
|
-
|
|
9843
|
-
|
|
9844
|
-
|
|
9845
|
-
|
|
9846
|
-
|
|
9847
|
-
|
|
9848
|
-
|
|
9849
|
-
|
|
9850
|
-
|
|
9851
|
-
|
|
9852
|
-
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9857
|
-
|
|
9858
|
-
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
10678
|
+
const categoryColors = {
|
|
10679
|
+
ore: '#C26D3F',
|
|
10680
|
+
crystal: '#4ADBFF',
|
|
10681
|
+
gas: '#B8E4A0',
|
|
10682
|
+
regolith: '#C4A57B',
|
|
10683
|
+
biomass: '#5A8B3E',
|
|
10684
|
+
};
|
|
10685
|
+
const tierColors = {
|
|
10686
|
+
1: '#8b8b8b',
|
|
10687
|
+
2: '#4ade80',
|
|
10688
|
+
3: '#818cf8',
|
|
10689
|
+
4: '#c084fc',
|
|
10690
|
+
5: '#fbbf24',
|
|
10691
|
+
6: '#f97316',
|
|
10692
|
+
7: '#ef4444',
|
|
10693
|
+
8: '#ec4899',
|
|
10694
|
+
9: '#06b6d4',
|
|
10695
|
+
10: '#ffffff',
|
|
10696
|
+
};
|
|
10697
|
+
const categoryIcons = {
|
|
10698
|
+
ore: '⬡',
|
|
10699
|
+
crystal: '◈',
|
|
10700
|
+
gas: '◎',
|
|
10701
|
+
regolith: '■',
|
|
10702
|
+
biomass: '❋',
|
|
10703
|
+
};
|
|
10704
|
+
const categoryIconShapes = {
|
|
10705
|
+
ore: 'hex',
|
|
10706
|
+
crystal: 'diamond',
|
|
10707
|
+
gas: 'circle',
|
|
10708
|
+
regolith: 'square',
|
|
10709
|
+
biomass: 'star',
|
|
10710
|
+
};
|
|
10711
|
+
const componentIcon = '▣';
|
|
10712
|
+
const moduleIcon = '⬢';
|
|
10713
|
+
const itemAbbreviations = {
|
|
10714
|
+
10001: 'HP',
|
|
10715
|
+
10002: 'CL',
|
|
10716
|
+
10003: 'TC',
|
|
10717
|
+
10004: 'PC',
|
|
10718
|
+
10005: 'DS',
|
|
10719
|
+
10006: 'EP',
|
|
10720
|
+
10007: 'CA',
|
|
10721
|
+
10008: 'TB',
|
|
10722
|
+
10009: 'RC',
|
|
10723
|
+
10010: 'FA',
|
|
10724
|
+
10100: 'EN',
|
|
10725
|
+
10101: 'GN',
|
|
10726
|
+
10102: 'EX',
|
|
10727
|
+
10103: 'LD',
|
|
10728
|
+
10104: 'MF',
|
|
10729
|
+
10105: 'ST',
|
|
10730
|
+
10106: 'HL',
|
|
10731
|
+
10107: 'WP',
|
|
10732
|
+
10200: 'CT',
|
|
10733
|
+
10201: 'SH',
|
|
10734
|
+
10202: 'WH',
|
|
10735
|
+
20001: 'HP',
|
|
10736
|
+
20002: 'CL',
|
|
10737
|
+
20200: 'CT',
|
|
10738
|
+
};
|
|
10739
|
+
|
|
10740
|
+
const ITEM_TYPE_RESOURCE = 0;
|
|
10741
|
+
const ITEM_TYPE_COMPONENT = 1;
|
|
10742
|
+
const ITEM_TYPE_MODULE = 2;
|
|
10743
|
+
const ITEM_TYPE_ENTITY = 3;
|
|
10744
|
+
function itemTypeCode(id) {
|
|
10745
|
+
switch (itemCategory(id)) {
|
|
10746
|
+
case 'resource':
|
|
10747
|
+
return ITEM_TYPE_RESOURCE;
|
|
10748
|
+
case 'component':
|
|
10749
|
+
return ITEM_TYPE_COMPONENT;
|
|
10750
|
+
case 'module':
|
|
10751
|
+
return ITEM_TYPE_MODULE;
|
|
10752
|
+
case 'entity':
|
|
10753
|
+
return ITEM_TYPE_ENTITY;
|
|
10754
|
+
}
|
|
10755
|
+
}
|
|
10756
|
+
function itemTier(id) {
|
|
10757
|
+
if (id < 10000)
|
|
10758
|
+
return 0;
|
|
10759
|
+
return Math.floor(id / 10000);
|
|
10760
|
+
}
|
|
10761
|
+
function itemOffset(id) {
|
|
10762
|
+
return id % 10000;
|
|
10763
|
+
}
|
|
9864
10764
|
function itemCategory(id) {
|
|
9865
10765
|
if (id < 10000)
|
|
9866
10766
|
return 'resource';
|
|
@@ -9983,6 +10883,11 @@ const capabilityNames = [
|
|
|
9983
10883
|
const capabilityAttributes = [
|
|
9984
10884
|
{ capability: 'Hull', attribute: 'mass', description: 'Total mass of the hull' },
|
|
9985
10885
|
{ capability: 'Storage', attribute: 'capacity', description: 'Maximum mass that can be stored' },
|
|
10886
|
+
{
|
|
10887
|
+
capability: 'Storage',
|
|
10888
|
+
attribute: 'bonus',
|
|
10889
|
+
description: 'Capacity bonus added by an installed Storage module',
|
|
10890
|
+
},
|
|
9986
10891
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
9987
10892
|
{ capability: 'Movement', attribute: 'drain', description: 'Energy consumed per movement' },
|
|
9988
10893
|
{ capability: 'Energy', attribute: 'capacity', description: 'Maximum energy storage' },
|
|
@@ -10020,338 +10925,151 @@ const capabilityAttributes = [
|
|
|
10020
10925
|
description: 'Energy consumed per target during haul-beam operation',
|
|
10021
10926
|
},
|
|
10022
10927
|
];
|
|
10023
|
-
const
|
|
10024
|
-
|
|
10025
|
-
|
|
10026
|
-
|
|
10027
|
-
|
|
10028
|
-
|
|
10029
|
-
|
|
10030
|
-
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10034
|
-
|
|
10035
|
-
},
|
|
10036
|
-
{
|
|
10037
|
-
|
|
10038
|
-
|
|
10039
|
-
|
|
10040
|
-
|
|
10041
|
-
|
|
10042
|
-
|
|
10043
|
-
|
|
10044
|
-
capability: 'Movement',
|
|
10045
|
-
attribute: 'thrust',
|
|
10046
|
-
rationale: 'Engine components that tolerate more can push harder',
|
|
10047
|
-
},
|
|
10048
|
-
{
|
|
10049
|
-
stat: 'Tolerance',
|
|
10050
|
-
capability: 'Energy',
|
|
10051
|
-
attribute: 'recharge',
|
|
10052
|
-
rationale: 'Generator housing withstands stress for faster recharge',
|
|
10053
|
-
},
|
|
10054
|
-
{
|
|
10055
|
-
stat: 'Tolerance',
|
|
10056
|
-
capability: 'Gathering',
|
|
10057
|
-
attribute: 'depth',
|
|
10058
|
-
rationale: 'Housing withstands pressure/heat at extreme depths',
|
|
10059
|
-
},
|
|
10060
|
-
{
|
|
10061
|
-
stat: 'Tolerance',
|
|
10062
|
-
capability: 'Warp',
|
|
10063
|
-
attribute: 'range',
|
|
10064
|
-
rationale: 'Warp drive housing withstands extreme forces',
|
|
10065
|
-
},
|
|
10066
|
-
{
|
|
10067
|
-
stat: 'Density',
|
|
10068
|
-
capability: 'Hull',
|
|
10069
|
-
attribute: 'mass',
|
|
10070
|
-
rationale: 'Lighter metal = lighter hull',
|
|
10071
|
-
},
|
|
10072
|
-
{
|
|
10073
|
-
stat: 'Density',
|
|
10074
|
-
capability: 'Loader',
|
|
10075
|
-
attribute: 'mass',
|
|
10076
|
-
rationale: 'Lighter metal = lighter loader units',
|
|
10077
|
-
},
|
|
10078
|
-
{
|
|
10079
|
-
stat: 'Density',
|
|
10080
|
-
capability: 'Movement',
|
|
10081
|
-
attribute: 'drain',
|
|
10082
|
-
rationale: 'Lighter components require less energy to move',
|
|
10083
|
-
},
|
|
10084
|
-
{
|
|
10085
|
-
stat: 'Conductivity',
|
|
10086
|
-
capability: 'Movement',
|
|
10087
|
-
attribute: 'drain',
|
|
10088
|
-
rationale: 'Efficient energy transfer reduces movement energy cost',
|
|
10089
|
-
},
|
|
10090
|
-
{
|
|
10091
|
-
stat: 'Conductivity',
|
|
10092
|
-
capability: 'Gathering',
|
|
10093
|
-
attribute: 'drain',
|
|
10094
|
-
rationale: 'Efficient energy transfer reduces gathering energy cost',
|
|
10095
|
-
},
|
|
10096
|
-
{
|
|
10097
|
-
stat: 'Conductivity',
|
|
10098
|
-
capability: 'Crafter',
|
|
10099
|
-
attribute: 'drain',
|
|
10100
|
-
rationale: 'Efficient energy transfer reduces crafting energy cost',
|
|
10101
|
-
},
|
|
10102
|
-
{
|
|
10103
|
-
stat: 'Conductivity',
|
|
10104
|
-
capability: 'Energy',
|
|
10105
|
-
attribute: 'recharge',
|
|
10106
|
-
rationale: 'Better conductivity speeds energy flow during recharge',
|
|
10107
|
-
},
|
|
10108
|
-
{
|
|
10109
|
-
stat: 'Ductility',
|
|
10110
|
-
capability: 'Crafter',
|
|
10111
|
-
attribute: 'quality',
|
|
10112
|
-
rationale: 'Precise shaping enables tighter crafting tolerances',
|
|
10113
|
-
},
|
|
10114
|
-
{
|
|
10115
|
-
stat: 'Ductility',
|
|
10116
|
-
capability: 'Gathering',
|
|
10117
|
-
attribute: 'yield',
|
|
10118
|
-
rationale: 'Precisely shaped conduit components gather faster',
|
|
10119
|
-
},
|
|
10120
|
-
{
|
|
10121
|
-
stat: 'Ductility',
|
|
10122
|
-
capability: 'Storage',
|
|
10123
|
-
attribute: 'capacity',
|
|
10124
|
-
rationale: 'Precision-formed container walls maximize volume',
|
|
10125
|
-
},
|
|
10126
|
-
{
|
|
10127
|
-
stat: 'Ductility',
|
|
10128
|
-
capability: 'Loader',
|
|
10129
|
-
attribute: 'mass',
|
|
10130
|
-
rationale: 'Precision-formed precious metal reduces loader unit mass',
|
|
10131
|
-
},
|
|
10132
|
-
{
|
|
10133
|
-
stat: 'Reflectivity',
|
|
10134
|
-
capability: 'Gathering',
|
|
10135
|
-
attribute: 'depth',
|
|
10136
|
-
rationale: 'Reflective heat shielding protects equipment at depth',
|
|
10137
|
-
},
|
|
10138
|
-
{
|
|
10139
|
-
stat: 'Reflectivity',
|
|
10140
|
-
capability: 'Launch',
|
|
10141
|
-
attribute: 'range',
|
|
10142
|
-
rationale: 'Reflective surfaces focus electromagnetic launch energy',
|
|
10143
|
-
},
|
|
10144
|
-
{
|
|
10145
|
-
stat: 'Volatility',
|
|
10146
|
-
capability: 'Gathering',
|
|
10147
|
-
attribute: 'yield',
|
|
10148
|
-
rationale: 'Energy release powers faster gathering',
|
|
10149
|
-
},
|
|
10150
|
-
{
|
|
10151
|
-
stat: 'Volatility',
|
|
10152
|
-
capability: 'Movement',
|
|
10153
|
-
attribute: 'thrust',
|
|
10154
|
-
rationale: 'Energy release drives propulsion force',
|
|
10155
|
-
},
|
|
10156
|
-
{
|
|
10157
|
-
stat: 'Volatility',
|
|
10158
|
-
capability: 'Loader',
|
|
10159
|
-
attribute: 'thrust',
|
|
10160
|
-
rationale: 'Energy release powers loader motors',
|
|
10161
|
-
},
|
|
10162
|
-
{
|
|
10163
|
-
stat: 'Volatility',
|
|
10164
|
-
capability: 'Launch',
|
|
10165
|
-
attribute: 'capacity',
|
|
10166
|
-
rationale: 'Energy release enables launching heavier payloads',
|
|
10167
|
-
},
|
|
10168
|
-
{
|
|
10169
|
-
stat: 'Reactivity',
|
|
10170
|
-
capability: 'Crafter',
|
|
10171
|
-
attribute: 'speed',
|
|
10172
|
-
rationale: 'Reactive gases accelerate chemical/thermal processing',
|
|
10173
|
-
},
|
|
10174
|
-
{
|
|
10175
|
-
stat: 'Reactivity',
|
|
10176
|
-
capability: 'Gathering',
|
|
10177
|
-
attribute: 'speed',
|
|
10178
|
-
rationale: 'Reactive gases manage heat/friction during gathering',
|
|
10179
|
-
},
|
|
10180
|
-
{
|
|
10181
|
-
stat: 'Reactivity',
|
|
10182
|
-
capability: 'Launch',
|
|
10183
|
-
attribute: 'drain',
|
|
10184
|
-
rationale: 'Reactive gas medium reduces electromagnetic resistance',
|
|
10185
|
-
},
|
|
10186
|
-
{
|
|
10187
|
-
stat: 'Thermal',
|
|
10188
|
-
capability: 'Crafter',
|
|
10189
|
-
attribute: 'quality',
|
|
10190
|
-
rationale: 'Precise thermal control during fabrication',
|
|
10191
|
-
},
|
|
10192
|
-
{
|
|
10193
|
-
stat: 'Thermal',
|
|
10194
|
-
capability: 'Gathering',
|
|
10195
|
-
attribute: 'drain',
|
|
10196
|
-
rationale: 'Thermal management reduces energy waste during gathering',
|
|
10197
|
-
},
|
|
10198
|
-
{
|
|
10199
|
-
stat: 'Thermal',
|
|
10200
|
-
capability: 'Energy',
|
|
10201
|
-
attribute: 'capacity',
|
|
10202
|
-
rationale: 'Thermal management enables denser energy storage',
|
|
10203
|
-
},
|
|
10204
|
-
{
|
|
10205
|
-
stat: 'Resonance',
|
|
10206
|
-
capability: 'Energy',
|
|
10207
|
-
attribute: 'capacity',
|
|
10208
|
-
rationale: 'Resonating crystals store energy in fields',
|
|
10209
|
-
},
|
|
10210
|
-
{
|
|
10211
|
-
stat: 'Resonance',
|
|
10212
|
-
capability: 'Warp',
|
|
10213
|
-
attribute: 'range',
|
|
10214
|
-
rationale: 'Resonant crystals amplify warp field projection',
|
|
10215
|
-
},
|
|
10216
|
-
{
|
|
10217
|
-
stat: 'Resonance',
|
|
10218
|
-
capability: 'Launch',
|
|
10219
|
-
attribute: 'range',
|
|
10220
|
-
rationale: 'Resonant crystals focus electromagnetic launch field',
|
|
10221
|
-
},
|
|
10222
|
-
{
|
|
10223
|
-
stat: 'Resonance',
|
|
10224
|
-
capability: 'Launch',
|
|
10225
|
-
attribute: 'capacity',
|
|
10226
|
-
rationale: 'Stronger resonant field launches heavier payloads',
|
|
10227
|
-
},
|
|
10228
|
-
{
|
|
10229
|
-
stat: 'Hardness',
|
|
10230
|
-
capability: 'Crafter',
|
|
10231
|
-
attribute: 'speed',
|
|
10232
|
-
rationale: 'Hard tooling surfaces cut and shape materials faster',
|
|
10233
|
-
},
|
|
10234
|
-
{
|
|
10235
|
-
stat: 'Hardness',
|
|
10236
|
-
capability: 'Launch',
|
|
10237
|
-
attribute: 'drain',
|
|
10238
|
-
rationale: 'Hard rail surfaces reduce friction, less energy wasted',
|
|
10239
|
-
},
|
|
10240
|
-
{
|
|
10241
|
-
stat: 'Clarity',
|
|
10242
|
-
capability: 'Energy',
|
|
10243
|
-
attribute: 'recharge',
|
|
10244
|
-
rationale: 'Flawless crystals enable smoother energy flow during recharge',
|
|
10245
|
-
},
|
|
10246
|
-
{
|
|
10247
|
-
stat: 'Clarity',
|
|
10248
|
-
capability: 'Crafter',
|
|
10249
|
-
attribute: 'quality',
|
|
10250
|
-
rationale: 'Precision optics for calibration during fabrication',
|
|
10251
|
-
},
|
|
10252
|
-
{
|
|
10253
|
-
stat: 'Clarity',
|
|
10254
|
-
capability: 'Crafter',
|
|
10255
|
-
attribute: 'drain',
|
|
10256
|
-
rationale: 'Precision computing optimizes energy routing in factory',
|
|
10257
|
-
},
|
|
10258
|
-
{
|
|
10259
|
-
stat: 'Plasticity',
|
|
10260
|
-
capability: 'Crafter',
|
|
10261
|
-
attribute: 'speed',
|
|
10262
|
-
rationale: 'Easily reshaped materials speed up processing',
|
|
10263
|
-
},
|
|
10264
|
-
{
|
|
10265
|
-
stat: 'Plasticity',
|
|
10266
|
-
capability: 'Movement',
|
|
10267
|
-
attribute: 'thrust',
|
|
10268
|
-
rationale: 'Flexible polymer seals reduce friction in propulsion',
|
|
10269
|
-
},
|
|
10270
|
-
{
|
|
10271
|
-
stat: 'Plasticity',
|
|
10272
|
-
capability: 'Loader',
|
|
10273
|
-
attribute: 'thrust',
|
|
10274
|
-
rationale: 'Flexible joints improve loader force transfer',
|
|
10275
|
-
},
|
|
10276
|
-
{
|
|
10277
|
-
stat: 'Insulation',
|
|
10278
|
-
capability: 'Movement',
|
|
10279
|
-
attribute: 'drain',
|
|
10280
|
-
rationale: 'Better insulation reduces energy loss during movement',
|
|
10281
|
-
},
|
|
10282
|
-
{
|
|
10283
|
-
stat: 'Insulation',
|
|
10284
|
-
capability: 'Gathering',
|
|
10285
|
-
attribute: 'drain',
|
|
10286
|
-
rationale: 'Better insulation reduces energy loss during gathering',
|
|
10287
|
-
},
|
|
10288
|
-
{
|
|
10289
|
-
stat: 'Insulation',
|
|
10290
|
-
capability: 'Crafter',
|
|
10291
|
-
attribute: 'drain',
|
|
10292
|
-
rationale: 'Better insulation reduces energy loss during crafting',
|
|
10928
|
+
const invertedAttributes = new Set(['drain', 'mass']);
|
|
10929
|
+
function isInvertedAttribute(attribute) {
|
|
10930
|
+
return invertedAttributes.has(attribute);
|
|
10931
|
+
}
|
|
10932
|
+
function getCapabilityAttributes(capability) {
|
|
10933
|
+
if (capability) {
|
|
10934
|
+
return capabilityAttributes.filter((a) => a.capability === capability);
|
|
10935
|
+
}
|
|
10936
|
+
return capabilityAttributes;
|
|
10937
|
+
}
|
|
10938
|
+
|
|
10939
|
+
const ENTITY_HULL_SLOTS = {
|
|
10940
|
+
0: { capability: 'Storage', attribute: 'capacity' },
|
|
10941
|
+
1: { capability: 'Hull', attribute: 'mass' },
|
|
10942
|
+
2: { capability: 'Storage', attribute: 'capacity' },
|
|
10943
|
+
3: { capability: 'Storage', attribute: 'capacity' },
|
|
10944
|
+
};
|
|
10945
|
+
const SLOT_FORMULAS = {
|
|
10946
|
+
engine: {
|
|
10947
|
+
0: { capability: 'Movement', attribute: 'thrust' },
|
|
10948
|
+
1: { capability: 'Movement', attribute: 'drain' },
|
|
10293
10949
|
},
|
|
10294
|
-
{
|
|
10295
|
-
|
|
10296
|
-
capability: '
|
|
10297
|
-
attribute: 'drain',
|
|
10298
|
-
rationale: 'Better insulation reduces energy loss during launch',
|
|
10950
|
+
generator: {
|
|
10951
|
+
0: { capability: 'Energy', attribute: 'capacity' },
|
|
10952
|
+
1: { capability: 'Energy', attribute: 'recharge' },
|
|
10299
10953
|
},
|
|
10300
|
-
{
|
|
10301
|
-
|
|
10302
|
-
capability: '
|
|
10303
|
-
attribute: '
|
|
10304
|
-
|
|
10954
|
+
gatherer: {
|
|
10955
|
+
0: { capability: 'Gathering', attribute: 'yield' },
|
|
10956
|
+
1: { capability: 'Gathering', attribute: 'depth' },
|
|
10957
|
+
3: { capability: 'Gathering', attribute: 'drain' },
|
|
10958
|
+
4: { capability: 'Gathering', attribute: 'speed' },
|
|
10305
10959
|
},
|
|
10306
|
-
{
|
|
10307
|
-
|
|
10308
|
-
capability: '
|
|
10309
|
-
attribute: 'speed',
|
|
10310
|
-
rationale: 'Purer bio-lubricants reduce friction during gathering',
|
|
10960
|
+
loader: {
|
|
10961
|
+
0: { capability: 'Loader', attribute: 'mass' },
|
|
10962
|
+
1: { capability: 'Loader', attribute: 'thrust' },
|
|
10311
10963
|
},
|
|
10312
|
-
{
|
|
10313
|
-
|
|
10314
|
-
capability: '
|
|
10315
|
-
attribute: 'capacity',
|
|
10316
|
-
rationale: 'Purer organic electrolytes store more charge',
|
|
10964
|
+
crafter: {
|
|
10965
|
+
0: { capability: 'Crafter', attribute: 'speed' },
|
|
10966
|
+
1: { capability: 'Crafter', attribute: 'drain' },
|
|
10317
10967
|
},
|
|
10318
|
-
{
|
|
10319
|
-
|
|
10320
|
-
capability: '
|
|
10321
|
-
attribute: '
|
|
10322
|
-
|
|
10968
|
+
storage: {
|
|
10969
|
+
0: { capability: 'Storage', attribute: 'bonus' },
|
|
10970
|
+
1: { capability: 'Storage', attribute: 'bonus' },
|
|
10971
|
+
2: { capability: 'Storage', attribute: 'bonus' },
|
|
10972
|
+
3: { capability: 'Storage', attribute: 'bonus' },
|
|
10323
10973
|
},
|
|
10324
|
-
{
|
|
10325
|
-
|
|
10326
|
-
capability: 'Hauler',
|
|
10327
|
-
attribute: '
|
|
10328
|
-
rationale: 'Energy-transfer efficiency reduces the thrust penalty from each hauled target.',
|
|
10974
|
+
hauler: {
|
|
10975
|
+
0: { capability: 'Hauler', attribute: 'capacity' },
|
|
10976
|
+
1: { capability: 'Hauler', attribute: 'efficiency' },
|
|
10977
|
+
2: { capability: 'Hauler', attribute: 'drain' },
|
|
10329
10978
|
},
|
|
10330
|
-
{
|
|
10331
|
-
|
|
10332
|
-
capability: 'Hauler',
|
|
10333
|
-
attribute: 'drain',
|
|
10334
|
-
rationale: 'Clarity-focused energy routing reduces per-target drain during haul-beam operation.',
|
|
10979
|
+
warp: {
|
|
10980
|
+
0: { capability: 'Warp', attribute: 'range' },
|
|
10335
10981
|
},
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10982
|
+
'ship-t1': ENTITY_HULL_SLOTS,
|
|
10983
|
+
'container-t1': ENTITY_HULL_SLOTS,
|
|
10984
|
+
'warehouse-t1': ENTITY_HULL_SLOTS,
|
|
10985
|
+
'extractor-t1': ENTITY_HULL_SLOTS,
|
|
10986
|
+
'container-t2': ENTITY_HULL_SLOTS,
|
|
10987
|
+
};
|
|
10988
|
+
|
|
10989
|
+
const KIND_TO_ITEM_ID = {
|
|
10990
|
+
engine: ITEM_ENGINE_T1,
|
|
10991
|
+
generator: ITEM_GENERATOR_T1,
|
|
10992
|
+
gatherer: ITEM_GATHERER_T1,
|
|
10993
|
+
loader: ITEM_LOADER_T1,
|
|
10994
|
+
crafter: ITEM_CRAFTER_T1,
|
|
10995
|
+
storage: ITEM_STORAGE_T1,
|
|
10996
|
+
hauler: ITEM_HAULER_T1,
|
|
10997
|
+
warp: ITEM_WARP_T1,
|
|
10998
|
+
'ship-t1': ITEM_SHIP_T1_PACKED,
|
|
10999
|
+
'container-t1': ITEM_CONTAINER_T1_PACKED,
|
|
11000
|
+
'warehouse-t1': ITEM_WAREHOUSE_T1_PACKED,
|
|
11001
|
+
'extractor-t1': ITEM_EXTRACTOR_T1_PACKED,
|
|
11002
|
+
'container-t2': ITEM_CONTAINER_T2_PACKED,
|
|
11003
|
+
};
|
|
11004
|
+
function isCategoryInput(input) {
|
|
11005
|
+
return 'category' in input;
|
|
10340
11006
|
}
|
|
10341
|
-
function
|
|
10342
|
-
|
|
10343
|
-
|
|
11007
|
+
function traceToRawCategoryStat(recipe, source, visited = new Set()) {
|
|
11008
|
+
const input = recipe.inputs[source.inputIndex];
|
|
11009
|
+
if (!input)
|
|
11010
|
+
return undefined;
|
|
11011
|
+
if (isCategoryInput(input)) {
|
|
11012
|
+
const defs = getStatDefinitions(input.category);
|
|
11013
|
+
return defs[source.statIndex];
|
|
10344
11014
|
}
|
|
10345
|
-
|
|
11015
|
+
if (visited.has(input.itemId))
|
|
11016
|
+
return undefined;
|
|
11017
|
+
const subRecipe = getRecipe(input.itemId);
|
|
11018
|
+
if (!subRecipe)
|
|
11019
|
+
return undefined;
|
|
11020
|
+
const subSlot = subRecipe.statSlots[source.statIndex];
|
|
11021
|
+
if (!subSlot)
|
|
11022
|
+
return undefined;
|
|
11023
|
+
const subSource = subSlot.sources[0];
|
|
11024
|
+
if (!subSource)
|
|
11025
|
+
return undefined;
|
|
11026
|
+
const nextVisited = new Set(visited);
|
|
11027
|
+
nextVisited.add(input.itemId);
|
|
11028
|
+
return traceToRawCategoryStat(subRecipe, subSource, nextVisited);
|
|
11029
|
+
}
|
|
11030
|
+
let cached;
|
|
11031
|
+
function deriveStatMappings() {
|
|
11032
|
+
if (cached)
|
|
11033
|
+
return cached;
|
|
11034
|
+
const out = [];
|
|
11035
|
+
const seen = new Set();
|
|
11036
|
+
for (const [kind, slots] of Object.entries(SLOT_FORMULAS)) {
|
|
11037
|
+
const itemId = KIND_TO_ITEM_ID[kind];
|
|
11038
|
+
const recipe = getRecipe(itemId);
|
|
11039
|
+
if (!recipe)
|
|
11040
|
+
continue;
|
|
11041
|
+
for (const [slotIdxStr, consumer] of Object.entries(slots)) {
|
|
11042
|
+
const slotIdx = Number(slotIdxStr);
|
|
11043
|
+
const slot = recipe.statSlots[slotIdx];
|
|
11044
|
+
if (!slot)
|
|
11045
|
+
continue;
|
|
11046
|
+
for (const source of slot.sources) {
|
|
11047
|
+
const stat = traceToRawCategoryStat(recipe, source);
|
|
11048
|
+
if (!stat)
|
|
11049
|
+
continue;
|
|
11050
|
+
const key = `${stat.label}|${consumer.capability}|${consumer.attribute}`;
|
|
11051
|
+
if (seen.has(key))
|
|
11052
|
+
continue;
|
|
11053
|
+
seen.add(key);
|
|
11054
|
+
out.push({
|
|
11055
|
+
stat: stat.label,
|
|
11056
|
+
capability: consumer.capability,
|
|
11057
|
+
attribute: consumer.attribute,
|
|
11058
|
+
});
|
|
11059
|
+
}
|
|
11060
|
+
}
|
|
11061
|
+
}
|
|
11062
|
+
cached = out;
|
|
11063
|
+
return out;
|
|
10346
11064
|
}
|
|
10347
11065
|
function getStatMappings() {
|
|
10348
|
-
return
|
|
11066
|
+
return deriveStatMappings();
|
|
10349
11067
|
}
|
|
10350
11068
|
function getStatMappingsForStat(stat) {
|
|
10351
|
-
return
|
|
11069
|
+
return deriveStatMappings().filter((m) => m.stat === stat);
|
|
10352
11070
|
}
|
|
10353
11071
|
function getStatMappingsForCapability(capability) {
|
|
10354
|
-
return
|
|
11072
|
+
return deriveStatMappings().filter((m) => m.capability === capability);
|
|
10355
11073
|
}
|
|
10356
11074
|
|
|
10357
11075
|
function toNum(v) {
|
|
@@ -10423,7 +11141,7 @@ function resolveComponent(id, stats) {
|
|
|
10423
11141
|
stats: resolvedStats,
|
|
10424
11142
|
};
|
|
10425
11143
|
}
|
|
10426
|
-
function computeCapabilityGroup(moduleType, stats) {
|
|
11144
|
+
function computeCapabilityGroup(moduleType, stats, tier) {
|
|
10427
11145
|
switch (moduleType) {
|
|
10428
11146
|
case MODULE_ENGINE: {
|
|
10429
11147
|
const caps = computeEngineCapabilities(stats);
|
|
@@ -10446,7 +11164,7 @@ function computeCapabilityGroup(moduleType, stats) {
|
|
|
10446
11164
|
};
|
|
10447
11165
|
}
|
|
10448
11166
|
case MODULE_GATHERER: {
|
|
10449
|
-
const caps = computeGathererCapabilities(stats);
|
|
11167
|
+
const caps = computeGathererCapabilities(stats, tier);
|
|
10450
11168
|
return {
|
|
10451
11169
|
capability: 'Gatherer',
|
|
10452
11170
|
attributes: [
|
|
@@ -10490,10 +11208,11 @@ function computeCapabilityGroup(moduleType, stats) {
|
|
|
10490
11208
|
};
|
|
10491
11209
|
}
|
|
10492
11210
|
case MODULE_STORAGE: {
|
|
10493
|
-
const str = stats.strength
|
|
10494
|
-
const
|
|
10495
|
-
const
|
|
10496
|
-
const
|
|
11211
|
+
const str = stats.strength;
|
|
11212
|
+
const den = stats.density;
|
|
11213
|
+
const hrd = stats.hardness;
|
|
11214
|
+
const sat = stats.saturation;
|
|
11215
|
+
const statSum = str + den + hrd + sat;
|
|
10497
11216
|
const pct = 10 + Math.floor((statSum * 10) / 2997);
|
|
10498
11217
|
return { capability: 'Storage', attributes: [{ label: 'Capacity Bonus', value: pct }] };
|
|
10499
11218
|
}
|
|
@@ -10507,7 +11226,7 @@ function resolveModule(id, stats) {
|
|
|
10507
11226
|
if (stats !== undefined) {
|
|
10508
11227
|
const decoded = decodeCraftedItemStats(id, toBigStats(stats));
|
|
10509
11228
|
const modType = getModuleCapabilityType(id);
|
|
10510
|
-
const group = computeCapabilityGroup(modType, decoded);
|
|
11229
|
+
const group = computeCapabilityGroup(modType, decoded, item.tier);
|
|
10511
11230
|
if (group)
|
|
10512
11231
|
attributes = [group];
|
|
10513
11232
|
}
|
|
@@ -10528,6 +11247,8 @@ function hullCapsForEntity(itemId, decoded) {
|
|
|
10528
11247
|
return computeShipHullCapabilities(decoded);
|
|
10529
11248
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
10530
11249
|
return computeWarehouseHullCapabilities(decoded);
|
|
11250
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
11251
|
+
return computeShipHullCapabilities(decoded);
|
|
10531
11252
|
case ITEM_CONTAINER_T1_PACKED:
|
|
10532
11253
|
return computeContainerCapabilities(decoded);
|
|
10533
11254
|
case ITEM_CONTAINER_T2_PACKED:
|
|
@@ -10563,14 +11284,17 @@ function resolveEntity(id, stats, modules) {
|
|
|
10563
11284
|
const modStats = BigInt(mod.installed.stats.toString());
|
|
10564
11285
|
const decodedStats = decodeCraftedItemStats(modItemId, modStats);
|
|
10565
11286
|
const modType = getModuleCapabilityType(modItemId);
|
|
10566
|
-
const group = computeCapabilityGroup(modType, decodedStats);
|
|
10567
11287
|
let modName = 'Module';
|
|
11288
|
+
let modTier = 1;
|
|
10568
11289
|
try {
|
|
10569
|
-
|
|
11290
|
+
const modItem = getItem(modItemId);
|
|
11291
|
+
modName = modItem.name;
|
|
11292
|
+
modTier = modItem.tier;
|
|
10570
11293
|
}
|
|
10571
11294
|
catch {
|
|
10572
11295
|
modName = itemMetadata[modItemId]?.name ?? 'Module';
|
|
10573
11296
|
}
|
|
11297
|
+
const group = computeCapabilityGroup(modType, decodedStats, modTier);
|
|
10574
11298
|
return {
|
|
10575
11299
|
name: modName,
|
|
10576
11300
|
installed: true,
|
|
@@ -10786,7 +11510,7 @@ function idiv(a, b) {
|
|
|
10786
11510
|
}
|
|
10787
11511
|
function computeBaseHullmass(stats) {
|
|
10788
11512
|
const density = decodeStat(stats, 1);
|
|
10789
|
-
return
|
|
11513
|
+
return 100000 - 75 * density;
|
|
10790
11514
|
}
|
|
10791
11515
|
function computeBaseCapacityShip(stats) {
|
|
10792
11516
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2) + decodeStat(stats, 3);
|
|
@@ -10798,22 +11522,28 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
10798
11522
|
}
|
|
10799
11523
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
10800
11524
|
const computeEngineDrain = (thm) => Math.max(30, 50 - idiv(thm, 70));
|
|
10801
|
-
const computeGeneratorCap = (
|
|
10802
|
-
const computeGeneratorRech = (
|
|
11525
|
+
const computeGeneratorCap = (com) => 300 + idiv(com, 6);
|
|
11526
|
+
const computeGeneratorRech = (fin) => 1 + idiv(fin * 3, 1000);
|
|
10803
11527
|
const computeGathererYield = (str) => 200 + str;
|
|
10804
11528
|
const computeGathererDrain = (con) => Math.max(250, 1250 - idiv(con * 25, 20));
|
|
10805
|
-
const computeGathererDepth = (tol) =>
|
|
11529
|
+
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
10806
11530
|
const computeGathererSpeed = (ref) => 100 + idiv(ref * 4, 5);
|
|
10807
|
-
const computeLoaderMass = (
|
|
11531
|
+
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
10808
11532
|
const computeLoaderThrust = (pla) => 1 + idiv(pla, 500);
|
|
10809
11533
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
10810
|
-
const computeCrafterDrain = (
|
|
11534
|
+
const computeCrafterDrain = (fin) => Math.max(5, 30 - idiv(fin, 33));
|
|
11535
|
+
const computeHaulerCapacity = (fin) => Math.max(1, 1 + idiv(fin, 400));
|
|
11536
|
+
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
11537
|
+
const computeHaulerDrain = (com) => Math.max(3, 15 - idiv(com, 80));
|
|
11538
|
+
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
10811
11539
|
function entityDisplayName(itemId) {
|
|
10812
11540
|
switch (itemId) {
|
|
10813
11541
|
case ITEM_SHIP_T1_PACKED:
|
|
10814
11542
|
return 'Ship';
|
|
10815
11543
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
10816
11544
|
return 'Warehouse';
|
|
11545
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
11546
|
+
return 'Extractor';
|
|
10817
11547
|
case ITEM_CONTAINER_T1_PACKED:
|
|
10818
11548
|
return 'Container';
|
|
10819
11549
|
case ITEM_CONTAINER_T2_PACKED:
|
|
@@ -10836,6 +11566,10 @@ function moduleDisplayName(itemId) {
|
|
|
10836
11566
|
return 'Crafter';
|
|
10837
11567
|
case ITEM_STORAGE_T1:
|
|
10838
11568
|
return 'Storage';
|
|
11569
|
+
case ITEM_HAULER_T1:
|
|
11570
|
+
return 'Hauler';
|
|
11571
|
+
case ITEM_WARP_T1:
|
|
11572
|
+
return 'Warp';
|
|
10839
11573
|
default:
|
|
10840
11574
|
return 'Module';
|
|
10841
11575
|
}
|
|
@@ -10866,7 +11600,8 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
10866
11600
|
const tol = decodeStat(stats, 1);
|
|
10867
11601
|
const con = decodeStat(stats, 3);
|
|
10868
11602
|
const ref = decodeStat(stats, 4);
|
|
10869
|
-
|
|
11603
|
+
const tier = getItem(itemId).tier;
|
|
11604
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Speed ${computeGathererSpeed(ref)} Drain ${computeGathererDrain(con)}`;
|
|
10870
11605
|
break;
|
|
10871
11606
|
}
|
|
10872
11607
|
case MODULE_LOADER: {
|
|
@@ -10890,6 +11625,18 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
10890
11625
|
out += ` +${pct}% capacity`;
|
|
10891
11626
|
break;
|
|
10892
11627
|
}
|
|
11628
|
+
case MODULE_HAULER: {
|
|
11629
|
+
const fin = decodeStat(stats, 0);
|
|
11630
|
+
const con = decodeStat(stats, 1);
|
|
11631
|
+
const com = decodeStat(stats, 2);
|
|
11632
|
+
out += ` Capacity ${computeHaulerCapacity(fin)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(com)}`;
|
|
11633
|
+
break;
|
|
11634
|
+
}
|
|
11635
|
+
case MODULE_WARP: {
|
|
11636
|
+
const stat = decodeStat(stats, 0);
|
|
11637
|
+
out += ` Range ${computeWarpRange(stat)}`;
|
|
11638
|
+
break;
|
|
11639
|
+
}
|
|
10893
11640
|
}
|
|
10894
11641
|
return out;
|
|
10895
11642
|
}
|
|
@@ -10902,6 +11649,9 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
10902
11649
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
10903
11650
|
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
10904
11651
|
}
|
|
11652
|
+
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
11653
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
11654
|
+
}
|
|
10905
11655
|
let out = entityDisplayName(itemId);
|
|
10906
11656
|
out += ` - Hull ${hullMass} mass`;
|
|
10907
11657
|
if (baseCapacity > 0) {
|
|
@@ -10915,6 +11665,115 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
10915
11665
|
return out;
|
|
10916
11666
|
}
|
|
10917
11667
|
|
|
11668
|
+
function deserializeAtomicData(data, schema) {
|
|
11669
|
+
let rawData;
|
|
11670
|
+
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
11671
|
+
rawData = data
|
|
11672
|
+
.immutable_serialized_data;
|
|
11673
|
+
}
|
|
11674
|
+
else {
|
|
11675
|
+
rawData = data;
|
|
11676
|
+
}
|
|
11677
|
+
let bytes;
|
|
11678
|
+
if (typeof rawData === 'string') {
|
|
11679
|
+
const hex = rawData;
|
|
11680
|
+
bytes = new Uint8Array(hex.length / 2);
|
|
11681
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
11682
|
+
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
11683
|
+
}
|
|
11684
|
+
}
|
|
11685
|
+
else if (Array.isArray(rawData)) {
|
|
11686
|
+
bytes = new Uint8Array(rawData);
|
|
11687
|
+
}
|
|
11688
|
+
else {
|
|
11689
|
+
bytes = rawData;
|
|
11690
|
+
}
|
|
11691
|
+
let offset = 0;
|
|
11692
|
+
function readVarint() {
|
|
11693
|
+
let result = 0;
|
|
11694
|
+
let multiplier = 1;
|
|
11695
|
+
while (bytes[offset] >= 128) {
|
|
11696
|
+
result += (bytes[offset] - 128) * multiplier;
|
|
11697
|
+
offset++;
|
|
11698
|
+
multiplier *= 128;
|
|
11699
|
+
}
|
|
11700
|
+
result += bytes[offset] * multiplier;
|
|
11701
|
+
offset++;
|
|
11702
|
+
return result;
|
|
11703
|
+
}
|
|
11704
|
+
function readVarint64() {
|
|
11705
|
+
let result = 0n;
|
|
11706
|
+
let multiplier = 1n;
|
|
11707
|
+
while (bytes[offset] >= 128) {
|
|
11708
|
+
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
11709
|
+
offset++;
|
|
11710
|
+
multiplier *= 128n;
|
|
11711
|
+
}
|
|
11712
|
+
result += BigInt(bytes[offset]) * multiplier;
|
|
11713
|
+
offset++;
|
|
11714
|
+
return result;
|
|
11715
|
+
}
|
|
11716
|
+
function readZigzagInt64() {
|
|
11717
|
+
const unsigned = readVarint64();
|
|
11718
|
+
if (unsigned % 2n === 0n) {
|
|
11719
|
+
return unsigned / 2n;
|
|
11720
|
+
}
|
|
11721
|
+
else {
|
|
11722
|
+
return -(unsigned / 2n) - 1n;
|
|
11723
|
+
}
|
|
11724
|
+
}
|
|
11725
|
+
function readString() {
|
|
11726
|
+
const length = readVarint();
|
|
11727
|
+
const str = new TextDecoder().decode(bytes.slice(offset, offset + length));
|
|
11728
|
+
offset += length;
|
|
11729
|
+
return str;
|
|
11730
|
+
}
|
|
11731
|
+
const RESERVED = 4;
|
|
11732
|
+
const result = {};
|
|
11733
|
+
while (offset < bytes.length) {
|
|
11734
|
+
const fieldIndex = readVarint() - RESERVED;
|
|
11735
|
+
const field = schema[fieldIndex];
|
|
11736
|
+
if (!field)
|
|
11737
|
+
break;
|
|
11738
|
+
switch (field.type) {
|
|
11739
|
+
case 'uint16':
|
|
11740
|
+
result[field.name] = readVarint();
|
|
11741
|
+
break;
|
|
11742
|
+
case 'uint32':
|
|
11743
|
+
result[field.name] = readVarint();
|
|
11744
|
+
break;
|
|
11745
|
+
case 'uint64':
|
|
11746
|
+
result[field.name] = readVarint64();
|
|
11747
|
+
break;
|
|
11748
|
+
case 'int64':
|
|
11749
|
+
result[field.name] = readZigzagInt64();
|
|
11750
|
+
break;
|
|
11751
|
+
case 'string':
|
|
11752
|
+
result[field.name] = readString();
|
|
11753
|
+
break;
|
|
11754
|
+
case 'uint16[]': {
|
|
11755
|
+
const len = readVarint();
|
|
11756
|
+
const arr = [];
|
|
11757
|
+
for (let i = 0; i < len; i++)
|
|
11758
|
+
arr.push(readVarint());
|
|
11759
|
+
result[field.name] = arr;
|
|
11760
|
+
break;
|
|
11761
|
+
}
|
|
11762
|
+
case 'uint64[]': {
|
|
11763
|
+
const len = readVarint();
|
|
11764
|
+
const arr = [];
|
|
11765
|
+
for (let i = 0; i < len; i++)
|
|
11766
|
+
arr.push(readVarint64());
|
|
11767
|
+
result[field.name] = arr;
|
|
11768
|
+
break;
|
|
11769
|
+
}
|
|
11770
|
+
default:
|
|
11771
|
+
throw new Error(`Unknown type: ${field.type}`);
|
|
11772
|
+
}
|
|
11773
|
+
}
|
|
11774
|
+
return result;
|
|
11775
|
+
}
|
|
11776
|
+
|
|
10918
11777
|
var index = /*#__PURE__*/Object.freeze({
|
|
10919
11778
|
__proto__: null,
|
|
10920
11779
|
readCommonBase: readCommonBase,
|
|
@@ -10939,10 +11798,15 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
10939
11798
|
computeLoaderThrust: computeLoaderThrust,
|
|
10940
11799
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
10941
11800
|
computeCrafterDrain: computeCrafterDrain,
|
|
11801
|
+
computeHaulerCapacity: computeHaulerCapacity,
|
|
11802
|
+
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
11803
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
11804
|
+
computeWarpRange: computeWarpRange,
|
|
10942
11805
|
entityDisplayName: entityDisplayName,
|
|
10943
11806
|
moduleDisplayName: moduleDisplayName,
|
|
10944
11807
|
formatModuleLine: formatModuleLine,
|
|
10945
|
-
buildEntityDescription: buildEntityDescription
|
|
11808
|
+
buildEntityDescription: buildEntityDescription,
|
|
11809
|
+
deserializeAtomicData: deserializeAtomicData
|
|
10946
11810
|
});
|
|
10947
11811
|
|
|
10948
11812
|
function formatMass(kg) {
|
|
@@ -11007,7 +11871,11 @@ exports.DEPTH_THRESHOLD_T4 = DEPTH_THRESHOLD_T4;
|
|
|
11007
11871
|
exports.DEPTH_THRESHOLD_T5 = DEPTH_THRESHOLD_T5;
|
|
11008
11872
|
exports.DESTINATION_CAPACITY_EXCEEDED = DESTINATION_CAPACITY_EXCEEDED;
|
|
11009
11873
|
exports.ENTITY_CAPACITY_EXCEEDED = ENTITY_CAPACITY_EXCEEDED;
|
|
11874
|
+
exports.ENTITY_CONTAINER = ENTITY_CONTAINER;
|
|
11875
|
+
exports.ENTITY_EXTRACTOR = ENTITY_EXTRACTOR;
|
|
11010
11876
|
exports.ENTITY_NO_CRAFTER = ENTITY_NO_CRAFTER;
|
|
11877
|
+
exports.ENTITY_SHIP = ENTITY_SHIP;
|
|
11878
|
+
exports.ENTITY_WAREHOUSE = ENTITY_WAREHOUSE;
|
|
11011
11879
|
exports.EPOCH_NON_ZERO = EPOCH_NON_ZERO;
|
|
11012
11880
|
exports.EPOCH_NOT_READY = EPOCH_NOT_READY;
|
|
11013
11881
|
exports.ERROR_SYSTEM_ALREADY_INITIALIZED = ERROR_SYSTEM_ALREADY_INITIALIZED;
|
|
@@ -11017,8 +11885,11 @@ exports.EntitiesManager = EntitiesManager;
|
|
|
11017
11885
|
exports.EntityInventory = EntityInventory;
|
|
11018
11886
|
exports.EntityType = EntityType;
|
|
11019
11887
|
exports.EpochsManager = EpochsManager;
|
|
11888
|
+
exports.Extractor = Extractor;
|
|
11020
11889
|
exports.GAME_NOT_FOUND = GAME_NOT_FOUND;
|
|
11021
11890
|
exports.GAME_SEED_NOT_SET = GAME_SEED_NOT_SET;
|
|
11891
|
+
exports.GATHERER_DEPTH_MAX_TIER = GATHERER_DEPTH_MAX_TIER;
|
|
11892
|
+
exports.GATHERER_DEPTH_TABLE = GATHERER_DEPTH_TABLE;
|
|
11022
11893
|
exports.GATHER_EXCEEDS_ENERGY_CAPACITY = GATHER_EXCEEDS_ENERGY_CAPACITY;
|
|
11023
11894
|
exports.GATHER_NOT_ENOUGH_ENERGY = GATHER_NOT_ENOUGH_ENERGY;
|
|
11024
11895
|
exports.GROUP_DUPLICATE_ENTITY = GROUP_DUPLICATE_ENTITY;
|
|
@@ -11062,6 +11933,7 @@ exports.ITEM_CRYSTAL_T8 = ITEM_CRYSTAL_T8;
|
|
|
11062
11933
|
exports.ITEM_CRYSTAL_T9 = ITEM_CRYSTAL_T9;
|
|
11063
11934
|
exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
|
|
11064
11935
|
exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
|
|
11936
|
+
exports.ITEM_EXTRACTOR_T1_PACKED = ITEM_EXTRACTOR_T1_PACKED;
|
|
11065
11937
|
exports.ITEM_FOCUSING_ARRAY = ITEM_FOCUSING_ARRAY;
|
|
11066
11938
|
exports.ITEM_GAS_T1 = ITEM_GAS_T1;
|
|
11067
11939
|
exports.ITEM_GAS_T10 = ITEM_GAS_T10;
|
|
@@ -11115,6 +11987,7 @@ exports.ITEM_TYPE_ENTITY = ITEM_TYPE_ENTITY;
|
|
|
11115
11987
|
exports.ITEM_TYPE_MODULE = ITEM_TYPE_MODULE;
|
|
11116
11988
|
exports.ITEM_TYPE_RESOURCE = ITEM_TYPE_RESOURCE;
|
|
11117
11989
|
exports.ITEM_WAREHOUSE_T1_PACKED = ITEM_WAREHOUSE_T1_PACKED;
|
|
11990
|
+
exports.ITEM_WARP_T1 = ITEM_WARP_T1;
|
|
11118
11991
|
exports.InventoryAccessor = InventoryAccessor;
|
|
11119
11992
|
exports.LOCATION_MAX_DEPTH = LOCATION_MAX_DEPTH;
|
|
11120
11993
|
exports.LOCATION_MIN_DEPTH = LOCATION_MIN_DEPTH;
|
|
@@ -11122,6 +11995,7 @@ exports.Location = Location;
|
|
|
11122
11995
|
exports.LocationsManager = LocationsManager;
|
|
11123
11996
|
exports.MAX_ORBITAL_ALTITUDE = MAX_ORBITAL_ALTITUDE;
|
|
11124
11997
|
exports.MIN_ORBITAL_ALTITUDE = MIN_ORBITAL_ALTITUDE;
|
|
11998
|
+
exports.MIN_TRANSFER_DISTANCE = MIN_TRANSFER_DISTANCE;
|
|
11125
11999
|
exports.MODULE_ANY = MODULE_ANY;
|
|
11126
12000
|
exports.MODULE_CARGO_NOT_FOUND = MODULE_CARGO_NOT_FOUND;
|
|
11127
12001
|
exports.MODULE_CRAFTER = MODULE_CRAFTER;
|
|
@@ -11141,6 +12015,7 @@ exports.MODULE_TYPE_MISMATCH = MODULE_TYPE_MISMATCH;
|
|
|
11141
12015
|
exports.MODULE_WARP = MODULE_WARP;
|
|
11142
12016
|
exports.NFT = index;
|
|
11143
12017
|
exports.NO_SCHEDULE = NO_SCHEDULE;
|
|
12018
|
+
exports.PLANETARY_STRUCTURE_Z = PLANETARY_STRUCTURE_Z;
|
|
11144
12019
|
exports.PLANET_SUBTYPE_GAS_GIANT = PLANET_SUBTYPE_GAS_GIANT;
|
|
11145
12020
|
exports.PLANET_SUBTYPE_ICY = PLANET_SUBTYPE_ICY;
|
|
11146
12021
|
exports.PLANET_SUBTYPE_INDUSTRIAL = PLANET_SUBTYPE_INDUSTRIAL;
|
|
@@ -11182,6 +12057,7 @@ exports.SHIP_NOT_IDLE = SHIP_NOT_IDLE;
|
|
|
11182
12057
|
exports.SHIP_NOT_OWNED = SHIP_NOT_OWNED;
|
|
11183
12058
|
exports.SHIP_NO_COMPLETED_TASKS = SHIP_NO_COMPLETED_TASKS;
|
|
11184
12059
|
exports.SHIP_NO_TASKS_TO_CANCEL = SHIP_NO_TASKS_TO_CANCEL;
|
|
12060
|
+
exports.SLOT_FORMULAS = SLOT_FORMULAS;
|
|
11185
12061
|
exports.STARTER_ALREADY_CLAIMED = STARTER_ALREADY_CLAIMED;
|
|
11186
12062
|
exports.ScheduleAccessor = ScheduleAccessor;
|
|
11187
12063
|
exports.ServerContract = server;
|
|
@@ -11194,7 +12070,6 @@ exports.TRAVEL_MAX_DURATION = TRAVEL_MAX_DURATION;
|
|
|
11194
12070
|
exports.WAREHOUSE_ALREADY_AT_LOCATION = WAREHOUSE_ALREADY_AT_LOCATION;
|
|
11195
12071
|
exports.WAREHOUSE_CAPACITY_EXCEEDED = WAREHOUSE_CAPACITY_EXCEEDED;
|
|
11196
12072
|
exports.WAREHOUSE_NOT_FOUND = WAREHOUSE_NOT_FOUND;
|
|
11197
|
-
exports.WAREHOUSE_Z = WAREHOUSE_Z;
|
|
11198
12073
|
exports.WARP_HAS_CARGO = WARP_HAS_CARGO;
|
|
11199
12074
|
exports.WARP_HAS_SCHEDULE = WARP_HAS_SCHEDULE;
|
|
11200
12075
|
exports.WARP_NOT_FULL_ENERGY = WARP_NOT_FULL_ENERGY;
|
|
@@ -11244,7 +12119,9 @@ exports.capsHasLoaders = capsHasLoaders;
|
|
|
11244
12119
|
exports.capsHasMass = capsHasMass;
|
|
11245
12120
|
exports.capsHasMovement = capsHasMovement;
|
|
11246
12121
|
exports.capsHasStorage = capsHasStorage;
|
|
12122
|
+
exports.cargoItem = cargoItem;
|
|
11247
12123
|
exports.cargoItemToStack = cargoItemToStack;
|
|
12124
|
+
exports.cargoRef = cargoRef;
|
|
11248
12125
|
exports.cargoUtils = cargoUtils;
|
|
11249
12126
|
exports.categoryColors = categoryColors;
|
|
11250
12127
|
exports.categoryFromIndex = categoryFromIndex;
|
|
@@ -11267,6 +12144,7 @@ exports.computeEngineCapabilities = computeEngineCapabilities;
|
|
|
11267
12144
|
exports.computeEngineDrain = computeEngineDrain;
|
|
11268
12145
|
exports.computeEngineThrust = computeEngineThrust;
|
|
11269
12146
|
exports.computeEntityStats = computeEntityStats;
|
|
12147
|
+
exports.computeExtractorCapabilities = computeExtractorCapabilities;
|
|
11270
12148
|
exports.computeGathererCapabilities = computeGathererCapabilities;
|
|
11271
12149
|
exports.computeGathererDepth = computeGathererDepth;
|
|
11272
12150
|
exports.computeGathererDrain = computeGathererDrain;
|
|
@@ -11277,7 +12155,9 @@ exports.computeGeneratorCapabilities = computeGeneratorCapabilities;
|
|
|
11277
12155
|
exports.computeGeneratorRech = computeGeneratorRech;
|
|
11278
12156
|
exports.computeHaulPenalty = computeHaulPenalty;
|
|
11279
12157
|
exports.computeHaulerCapabilities = computeHaulerCapabilities;
|
|
11280
|
-
exports.
|
|
12158
|
+
exports.computeHaulerCapacity = computeHaulerCapacity;
|
|
12159
|
+
exports.computeHaulerDrain = computeHaulerDrain$1;
|
|
12160
|
+
exports.computeHaulerEfficiency = computeHaulerEfficiency;
|
|
11281
12161
|
exports.computeInputMass = computeInputMass;
|
|
11282
12162
|
exports.computeLoaderCapabilities = computeLoaderCapabilities;
|
|
11283
12163
|
exports.computeLoaderMass = computeLoaderMass;
|
|
@@ -11287,6 +12167,8 @@ exports.computeShipHullCapabilities = computeShipHullCapabilities;
|
|
|
11287
12167
|
exports.computeStorageCapabilities = computeStorageCapabilities;
|
|
11288
12168
|
exports.computeWarehouseCapabilities = computeWarehouseCapabilities;
|
|
11289
12169
|
exports.computeWarehouseHullCapabilities = computeWarehouseHullCapabilities;
|
|
12170
|
+
exports.computeWarpRange = computeWarpRange;
|
|
12171
|
+
exports.containerTraits = containerTraits;
|
|
11290
12172
|
exports.coordsToLocationId = coordsToLocationId;
|
|
11291
12173
|
exports.createInventoryAccessor = createInventoryAccessor;
|
|
11292
12174
|
exports.createProjectedEntity = createProjectedEntity;
|
|
@@ -11296,10 +12178,10 @@ exports.decodeStat = decodeStat;
|
|
|
11296
12178
|
exports.decodeStats = decodeStats;
|
|
11297
12179
|
exports["default"] = Shipload;
|
|
11298
12180
|
exports.deriveLocation = deriveLocation;
|
|
11299
|
-
exports.deriveLocationEpoch = deriveLocationEpoch;
|
|
11300
12181
|
exports.deriveLocationSize = deriveLocationSize;
|
|
11301
12182
|
exports.deriveLocationStatic = deriveLocationStatic;
|
|
11302
12183
|
exports.deriveResourceStats = deriveResourceStats;
|
|
12184
|
+
exports.deriveStatMappings = deriveStatMappings;
|
|
11303
12185
|
exports.deriveStrata = deriveStrata;
|
|
11304
12186
|
exports.deriveStratum = deriveStratum;
|
|
11305
12187
|
exports.describeItem = describeItem;
|
|
@@ -11307,6 +12189,7 @@ exports.describeModule = describeModule;
|
|
|
11307
12189
|
exports.describeModuleForItem = describeModuleForItem;
|
|
11308
12190
|
exports.describeModuleForSlot = describeModuleForSlot;
|
|
11309
12191
|
exports.deserializeAsset = deserializeAsset;
|
|
12192
|
+
exports.deserializeAtomicData = deserializeAtomicData;
|
|
11310
12193
|
exports.deserializeComponent = deserializeComponent;
|
|
11311
12194
|
exports.deserializeEntity = deserializeEntity;
|
|
11312
12195
|
exports.deserializeModule = deserializeModule;
|
|
@@ -11314,18 +12197,22 @@ exports.deserializeResource = deserializeResource;
|
|
|
11314
12197
|
exports.displayName = displayName;
|
|
11315
12198
|
exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
|
|
11316
12199
|
exports.distanceBetweenPoints = distanceBetweenPoints;
|
|
12200
|
+
exports.easeFlightProgress = easeFlightProgress;
|
|
11317
12201
|
exports.encodeGatheredCargoStats = encodeGatheredCargoStats;
|
|
11318
12202
|
exports.encodeStats = encodeStats;
|
|
11319
12203
|
exports.energyPercent = energyPercent;
|
|
11320
12204
|
exports.entityDisplayName = entityDisplayName;
|
|
11321
12205
|
exports.estimateDealTravelTime = estimateDealTravelTime;
|
|
11322
12206
|
exports.estimateTravelTime = estimateTravelTime;
|
|
12207
|
+
exports.extractorTraits = extractorTraits;
|
|
11323
12208
|
exports.findItemByCategoryAndTier = findItemByCategoryAndTier;
|
|
11324
12209
|
exports.findNearbyPlanets = findNearbyPlanets;
|
|
12210
|
+
exports.flightSpeedFactor = flightSpeedFactor;
|
|
11325
12211
|
exports.formatMass = formatMass;
|
|
11326
12212
|
exports.formatMassDelta = formatMassDelta;
|
|
11327
12213
|
exports.formatModuleLine = formatModuleLine;
|
|
11328
12214
|
exports.formatTier = formatTier;
|
|
12215
|
+
exports.gathererDepthForTier = gathererDepthForTier;
|
|
11329
12216
|
exports.getCapabilityAttributes = getCapabilityAttributes;
|
|
11330
12217
|
exports.getCategoryInfo = getCategoryInfo;
|
|
11331
12218
|
exports.getComponents = getComponents;
|
|
@@ -11333,17 +12220,22 @@ exports.getCurrentEpoch = getCurrentEpoch;
|
|
|
11333
12220
|
exports.getDepthThreshold = getDepthThreshold;
|
|
11334
12221
|
exports.getDestinationLocation = getDestinationLocation;
|
|
11335
12222
|
exports.getEligibleResources = getEligibleResources;
|
|
12223
|
+
exports.getEntityClass = getEntityClass;
|
|
11336
12224
|
exports.getEntityItems = getEntityItems;
|
|
11337
12225
|
exports.getEntityLayout = getEntityLayout;
|
|
12226
|
+
exports.getEntityTraits = getEntityTraits;
|
|
11338
12227
|
exports.getEpochInfo = getEpochInfo;
|
|
11339
12228
|
exports.getFlightOrigin = getFlightOrigin;
|
|
12229
|
+
exports.getInterpolatedPosition = getInterpolatedPosition;
|
|
11340
12230
|
exports.getItem = getItem;
|
|
11341
12231
|
exports.getItems = getItems;
|
|
11342
12232
|
exports.getLocationCandidates = getLocationCandidates;
|
|
12233
|
+
exports.getLocationProfile = getLocationProfile;
|
|
11343
12234
|
exports.getLocationType = getLocationType;
|
|
11344
12235
|
exports.getLocationTypeName = getLocationTypeName;
|
|
11345
12236
|
exports.getModuleCapabilityType = getModuleCapabilityType;
|
|
11346
12237
|
exports.getModules = getModules;
|
|
12238
|
+
exports.getPackedEntityType = getPackedEntityType;
|
|
11347
12239
|
exports.getPlanetSubtype = getPlanetSubtype;
|
|
11348
12240
|
exports.getPlanetSubtypes = getPlanetSubtypes;
|
|
11349
12241
|
exports.getPositionAt = getPositionAt;
|
|
@@ -11369,14 +12261,20 @@ exports.hasStorage = hasStorage;
|
|
|
11369
12261
|
exports.hasSystem = hasSystem;
|
|
11370
12262
|
exports.hash = hash;
|
|
11371
12263
|
exports.hash512 = hash512;
|
|
12264
|
+
exports.interpolateFlightPosition = interpolateFlightPosition;
|
|
12265
|
+
exports.isContainer = isContainer;
|
|
11372
12266
|
exports.isCraftedItem = isCraftedItem;
|
|
12267
|
+
exports.isExtractor = isExtractor;
|
|
11373
12268
|
exports.isFull = isFull$1;
|
|
11374
12269
|
exports.isFullFromMass = isFullFromMass;
|
|
11375
12270
|
exports.isGatherableLocation = isGatherableLocation;
|
|
11376
12271
|
exports.isInvertedAttribute = isInvertedAttribute;
|
|
12272
|
+
exports.isLocationBuildable = isLocationBuildable;
|
|
11377
12273
|
exports.isModuleItem = isModuleItem;
|
|
11378
12274
|
exports.isRelatedItem = isRelatedItem;
|
|
12275
|
+
exports.isShip = isShip;
|
|
11379
12276
|
exports.isSubscriptionsDebugEnabled = isSubscriptionsDebugEnabled;
|
|
12277
|
+
exports.isWarehouse = isWarehouse;
|
|
11380
12278
|
exports.itemAbbreviations = itemAbbreviations;
|
|
11381
12279
|
exports.itemCategory = itemCategory;
|
|
11382
12280
|
exports.itemIds = itemIds;
|
|
@@ -11385,6 +12283,7 @@ exports.itemTier = itemTier;
|
|
|
11385
12283
|
exports.itemTypeCode = itemTypeCode;
|
|
11386
12284
|
exports.lerp = lerp$1;
|
|
11387
12285
|
exports.makeContainer = makeContainer;
|
|
12286
|
+
exports.makeExtractor = makeExtractor;
|
|
11388
12287
|
exports.makeShip = makeShip;
|
|
11389
12288
|
exports.makeWarehouse = makeWarehouse;
|
|
11390
12289
|
exports.mapEntity = mapEntity;
|
|
@@ -11411,14 +12310,15 @@ exports.rollWithinTier = rollWithinTier;
|
|
|
11411
12310
|
exports.rotation = rotation;
|
|
11412
12311
|
exports.schedule = schedule;
|
|
11413
12312
|
exports.setSubscriptionsDebug = setSubscriptionsDebug;
|
|
12313
|
+
exports.shipTraits = shipTraits;
|
|
11414
12314
|
exports.stackKey = stackKey;
|
|
11415
12315
|
exports.stackToCargoItem = stackToCargoItem;
|
|
11416
12316
|
exports.stacksEqual = stacksEqual;
|
|
11417
|
-
exports.
|
|
12317
|
+
exports.taskCargoChanges = taskCargoChanges;
|
|
12318
|
+
exports.tierAdjective = tierAdjective;
|
|
11418
12319
|
exports.tierColors = tierColors;
|
|
11419
|
-
exports.tierLabel = tierLabel;
|
|
11420
|
-
exports.tierLabels = tierLabels;
|
|
11421
12320
|
exports.toLocation = toLocation;
|
|
11422
12321
|
exports.typeLabel = typeLabel;
|
|
11423
12322
|
exports.validateSchedule = validateSchedule;
|
|
12323
|
+
exports.warehouseTraits = warehouseTraits;
|
|
11424
12324
|
//# sourceMappingURL=shipload.js.map
|