@shipload/sdk 1.0.0-next.51 → 1.0.0-next.53
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 +471 -158
- package/lib/shipload.js +2320 -485
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2290 -484
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +123 -8
- package/lib/testing.js +450 -19
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +451 -20
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/crafting.ts +10 -1
- package/src/capabilities/gathering.ts +1 -1
- package/src/capabilities/hauling.ts +0 -5
- package/src/capabilities/modules.ts +6 -0
- package/src/capabilities/movement.ts +1 -1
- package/src/contracts/server.ts +293 -13
- package/src/data/capabilities.ts +18 -2
- package/src/data/capability-formulas.ts +5 -0
- package/src/data/entities.json +235 -20
- package/src/data/item-ids.ts +10 -0
- package/src/data/items.json +61 -0
- package/src/data/kind-registry.json +53 -1
- package/src/data/kind-registry.ts +5 -0
- package/src/data/metadata.ts +74 -5
- package/src/data/recipes-runtime.ts +1 -0
- package/src/data/recipes.json +895 -119
- package/src/derivation/capabilities.test.ts +105 -4
- package/src/derivation/capabilities.ts +162 -57
- package/src/derivation/capability-mappings.ts +2 -0
- package/src/derivation/crafting.ts +2 -0
- package/src/derivation/recipe-usage.test.ts +10 -7
- package/src/derivation/rollups.ts +16 -0
- package/src/derivation/stat-scaling.ts +12 -0
- package/src/entities/makers.ts +10 -1
- package/src/index-module.ts +29 -3
- package/src/managers/actions.ts +77 -46
- package/src/managers/construction-types.ts +2 -2
- package/src/managers/construction.ts +15 -15
- package/src/managers/plot.ts +1 -1
- package/src/nft/buildImmutableData.ts +55 -9
- package/src/nft/description.ts +99 -36
- package/src/planner/planner.test.ts +50 -41
- package/src/resolution/resolve-item.test.ts +1 -1
- package/src/resolution/resolve-item.ts +26 -11
- package/src/scheduling/availability.ts +7 -6
- package/src/scheduling/cancel.test.ts +40 -6
- package/src/scheduling/cancel.ts +21 -29
- package/src/scheduling/jobs.ts +71 -0
- package/src/scheduling/lanes.ts +29 -0
- package/src/scheduling/projection.ts +42 -25
- package/src/scheduling/task-cargo.ts +1 -1
- package/src/testing/projection-parity.ts +2 -2
- package/src/travel/reach.ts +4 -6
- package/src/travel/route-planner.ts +60 -49
- package/src/travel/route-simulator.ts +3 -7
- package/src/travel/travel.ts +14 -5
- package/src/types/capabilities.ts +9 -3
- package/src/types.ts +5 -3
- package/src/managers/flatten-gather-plan.test.ts +0 -80
package/lib/shipload.m.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, UInt16, UInt8, Int64, TimePoint, Int8,
|
|
2
|
+
import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, UInt16, UInt8, Int64, TimePoint, Int8, Bytes, BlockTimestamp, Int32, Checksum512, PermissionLevel, Action, APIClient, Serializer } from '@wharfkit/antelope';
|
|
3
3
|
import ContractKit, { Contract as Contract$2 } from '@wharfkit/contract';
|
|
4
4
|
|
|
5
5
|
const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAB0LYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHJlbGdhdGVhc3NldAABCGFzc2V0X2lkBnVpbnQ2NAxyZWxnYXRlb3duZXIAAQVvd25lcgRuYW1lDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwADBW93bmVyBG5hbWUEZ2FtZQRuYW1lDWxhc3RfYXNzZXRfaWQGdWludDY0EwCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAIVpRAVjbG9zZeICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsb3NlCnN1bW1hcnk6ICdDbG9zZSBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpDbG9zZSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2Ugcm93IGZvciB0aGUgZ2l2ZW4gdG9rZW4gYW5kIGZyZWUgaXRzIFJBTS4gVGhlIGJhbGFuY2UgbXVzdCBiZSB6ZXJvIGJlZm9yZSBjbG9zaW5nLiBSZXF1aXJlcyB0aGUgb3duZXIncyBhdXRob3JpdHkukB2mVaXsjkoMZGViaXRkZXBvc2l0nQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGViaXRkZXBvc2l0CnN1bW1hcnk6ICdEZWJpdCBhIGRlcG9zaXQgYmFsYW5jZSBmb3IgYSB3cmFwIG9wZXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IGEgcmVnaXN0ZXJlZCwgZW5hYmxlZCBnYW1lIGNvbnRyYWN0IG9ubHkuIERlYml0cyB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UgYnkgdGhlIGxvY2tlZCBhbW91bnQgcGx1cyB0aGUgZmVlLCBhbmQgY3JlZGl0cyB0aGUgZmVlIHRvIHRoZSBjb25maWd1cmVkIGZlZSBhY2NvdW50LiBVc2VkIGJ5IGEgZ2FtZSdzIHdyYXAgZmxvdyB0byBjb2xsZWN0IHRoZSB3cmFwIGNvc3QuIENhbm5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgcGxheWVycyBvciB1bnJlZ2lzdGVyZWQgYWNjb3VudHMuAAAAAKh4zFQGZW5hYmxl8wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdFbmFibGUvZGlzYWJsZSBwbGF0Zm9ybScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBwbGF0Zm9ybSBjb250cmFjdC4AgJKGqXjMVAplbmFibGVnYW1l/AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlZ2FtZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2JhYmxlIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC7gp6mSojQ1XQxmb3VuZGNvbXBhbnmDAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3VuZGNvbXBhbnkKc3VtbWFyeTogJ0ZvdW5kIGEgbmV3IGNvbXBhbnknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpGb3VuZCBhIG5ldyBjb21wYW55IGluIHRoZSBTaGlwbG9hZCBwbGF0Zm9ybSBjb250cmFjdC4AAAAAADBVpQRvcGVumwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogb3BlbgpzdW1tYXJ5OiAnT3BlbiBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpPcGVuIGEgemVyby1iYWxhbmNlIGRlcG9zaXQgcm93IGZvciB0aGUgZ2l2ZW4gb3duZXIgYW5kIHRva2VuLCB3aXRoIFJBTSBwYWlkIGJ5IHRoZSBvd25lci4gSGFzIG5vIGVmZmVjdCBpZiB0aGUgcm93IGFscmVhZHkgZXhpc3RzLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIG93bmVyIGNhbiByZWNlaXZlIHRva2VuIGRlcG9zaXRzIG9yIHdyYXAgcmVmdW5kcy6QFcZGZcOiugxyZWxnYXRlYXNzZXQAcNXkVGXDoroMcmVsZ2F0ZW93bmVyAKCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
|
|
@@ -440,7 +440,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
440
440
|
Contract: Contract$1
|
|
441
441
|
});
|
|
442
442
|
|
|
443
|
-
const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjBAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8FY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAWBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2DGdlbmVzaXNmbGVldAABCGVudGl0aWVzDGVudGl0eV9yb3dbXQpnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQLZ2V0ZGlzdGFuY2UABAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAxnZXRmb290cHJpbnQAAQdpdGVtX2lkBnVpbnQxNgtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQAQBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10MbG9hZGVyX2xhbmVzDWxvYWRlcl9sYW5lW10IbGF1bmNoZXIPbGF1bmNoZXJfc3RhdHM/BHRpZXIFdWludDgIcmVjaGFyZ2UAAQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAIHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAgOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdD3NvdXJjZV9zdWJjbGFzcwd1aW50MTY/DnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZwtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQGdWludDMyFG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CnJlc29sdmVhbGwAAQVvd25lcgRuYW1lEnJlc29sdmVhbGxfcmVzdWx0cwACB3NjYW5uZWQGdWludDMyCHJlc29sdmVkBnVpbnQzMg1yZXNvdXJjZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgOcmVzb3VyY2Vfc3RhdHMAAwVzdGF0MQZ1aW50MTYFc3RhdDIGdWludDE2BXN0YXQzBnVpbnQxNhByZXNvdXJjZXNfcmVzdWx0AAEJcmVzb3VyY2VzD3Jlc291cmNlX2luZm9bXQZyZXZlYWwAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGcmV2ZWFsC2NoZWNrc3VtMjU2CnJldmVhbF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBnJldmVhbAtjaGVja3N1bTI1NghybW1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2DnJvdXRlX3dheXBvaW50AAIBeAVpbnQ2NAF5BWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAlzZXRuZnRjZmcAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDHNldHRocmVzaG9sZAABCXRocmVzaG9sZAV1aW50OAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUIc2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAMHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sACgR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPwRob2xkB3VpbnQ2ND8OdGFyZ2V0X2l0ZW1faWQHdWludDE2Pwp0YXNrX2V2ZW50AAoKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BnVpbnQzMgR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MzI/CGxhbmVfa2V5BXVpbnQ4DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXRF0ZW1wbGF0ZV9tZXRhX3JvdwADB2l0ZW1faWQGdWludDE2BGtpbmQEbmFtZQ1kaXNwbGF5X2xhYmVsBnN0cmluZwd0cmFuc2l0AAUCaWQGdWludDY0AmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0BnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxyb3V0ZQADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAFAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZAh1bmRlcGxveQACB2hvc3RfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQGdW5sb2FkAAMCaWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10HdXBncmFkZQAFCmJ1aWxkZXJfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmlucHV0cwxjYXJnb19pdGVtW10Ec2xvdAZ1aW50OD8Ed2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAANd29ybWhvbGVfaW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwtpc193b3JtaG9sZQRib29sC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDndyYXBjb25maWdfcm93AAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQx3cmFwY29zdF9yb3cAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0YgAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1c6cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG5leHVzCnN1bW1hcnk6ICdBZGQgYSBuZXh1cyBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ3JlYXRlIGEgbmV3IG5leHVzIGVudGl0eSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuIE5leHVzZXMgYXJlIG93bmVkIGJ5IHRoZSBjb250cmFjdCBhbmQgc2VydmUgYXMgZml4ZWQgZ2F0aGVyaW5nIHBvaW50cyB3aGVyZSBwbGF5ZXJzIGNhbiB3cmFwLCB1bndyYXAsIGRlcGxveSwgYW5kIG90aGVyd2lzZSBpbnRlcmFjdCB3aXRoIE5GVC1iYWNrZWQgYXNzZXRzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABQEZlLUzIJYWRkb3JhY2xlAAAAAACANFU8BWJsZW5k/AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYmxlbmQKc3VtbWFyeTogJ0JsZW5kIGNhcmdvIHN0YWNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tYmluZSBtdWx0aXBsZSBjYXJnbyBzdGFja3Mgb2YgdGhlIHNhbWUgaXRlbSB0eXBlIGludG8gYSBzaW5nbGUgc3RhY2sgd2l0aCBuZXcgYmxlbmRlZCBzdGF0cy4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgAAyDTWFJ0+CWJ1aWxkcGxvdAAAAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4AAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24ukJWKCzuspmIMZ2VuZXNpc2ZsZWV0qQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2VuZXNpc2ZsZWV0CnN1bW1hcnk6ICdNaW50IHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbXBsYWNlIHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0OiBhIGNhbGxlci1zdXBwbGllZCBzZXQgb2YgZW50aXRpZXMgKHNoaXBzLCBzdHJ1Y3R1cmVzLCBhbmQgY29udGFpbmVycykgd3JpdHRlbiB0byB0aGUgd29ybGQgYXMtaXMuIFZhbGlkIG9ubHkgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZC4gVGhlIHN1cHBsaWVkIGVudGl0eSBpZHMgYXJlIGhvbm9yZWQgYW5kIHRoZSBpZCBzZXF1ZW5jZSBpcyBhZHZhbmNlZCBwYXN0IHRoZW07IGlkIDAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBHZW5lc2lzIE5leHVzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAMBVGeuIsmIKZ2V0Y2x1c3RlcgAAAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLgBAdphWlbJiCmdldGRlcG9zaXQAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AABMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnnKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBhbmQgZmxpZ2h0IHRpbWUuAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS6gssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwDgs8tT5UurdAxpbXBvcnRlbnRpdHkAAKqml+VLq3QLaW1wb3J0Z3JvdXAAcJU3seZLq3QMaW1wb3J0cGxheWVyALqvwurmS6t0DWltcG9ydHJlc2VydmUAAFQ2GedLq3QLaW1wb3J0c3RhdGUAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAAAAACq6rDaVCG1vdmV0aWxlAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbAAAAAAARKO2ugZyZXZlYWwAAAAAKupEpbwIcm1tb2R1bGW8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW1vZHVsZQpzdW1tYXJ5OiAnUmVtb3ZlIGEgbW9kdWxlIGZyb20gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgYW4gaW5zdGFsbGVkIG1vZHVsZSBmcm9tIGEgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgaXMgcmV0dXJuZWQgdG8gY2FyZ28uIEZhaWxzIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FyZ28gY2FwYWNpdHkgdG8gaG9sZCB0aGUgcmV0dXJuZWQgbW9kdWxlLgAAAGyhvKa8CHJtbmZ0Y2ZnoQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1uZnRjZmcKc3VtbWFyeTogJ1JlbW92ZSBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIHRoZSBBdG9taWNBc3NldHMgdGVtcGxhdGUgbWFwcGluZyBmb3IgdGhlIHNwZWNpZmllZCBpdGVtIGlkIGZyb20gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBBZnRlciByZW1vdmFsIHRoZSBpdGVtIGNhbiBubyBsb25nZXIgYmUgd3JhcHBlZCBvciB1bndyYXBwZWQgdW50aWwgYSBuZXcgbWFwcGluZyBpcyBzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAMDpUoqywglzZXRjb29yZHMAAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAijpRWQ3HCnN3YXBtb2R1bGUAAAAAKrpcDccIc3dhcHRpbGUAAAAAIDs8zc0HdHJhbnNpdAAAAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAFTW9Ea1zc0LdHJhdmVscm91dGUAAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAkQ+PUBnVubG9hZAAAAABAJXNZ1Qd1cGdyYWRlAAAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABg6UxEA2k2NAAACWNsYWltX3JvdwAAAOCqjHVEA2k2NAAAC2NsdXN0ZXJfcm93AAAAAGQnJUUDaTY0AAAKY29tbWl0X3JvdwAAAAD47PJUA2k2NAAACmVudGl0eV9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAALAK++zyVANpNjQAAA5lbnRpdHlfc2VxX3JvdwAAAACAhmhVA2k2NAAACWVwb2NoX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABza1JUzeUDaTY0AAAOd3JhcGNvbmZpZ19yb3cAAAAZU1TN5QNpNjQAAAx3cmFwY29zdF9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAQAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAADINFbpTEQMdGFza19yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAADbtIpUoMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZwBAdphWlbJiDmV4dGVuZGVkX2Fzc2V0ABSaJmOXsmIGdWludDY0AFQ8jrmosmIIdWludDE2W10AAMAR5amyYgtlbnVtX3Jlc3VsdACwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mb5CnuzVTurJiEGZvb3RwcmludF9yZXN1bHQATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvAFT1WarssmIFdWludDiAVfVZquyyYgtlbnVtX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQBUpE1eyrNiDXdvcm1ob2xlX2luZm+QHZ7m5qrpZQx0YXNrX3Jlc3VsdHMAotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAADQ0tYkMdGFza19yZXN1bHRzAAAAAACQDI0MdGFza19yZXN1bHRzAAAAKrqsNpUMdGFza19yZXN1bHRzAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAECMRu1IsboScmVzb2x2ZWFsbF9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAKrpcDccMdGFza19yZXN1bHRzAAAAIDs8zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAFTW9Ea1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAACRD49QMdGFza19yZXN1bHRzAAAAQCVzWdUMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
443
|
+
const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjWAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQxidWlsZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYJYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwljYW5jZWxqb2IAAgZqb2JfaWQGdWludDY0B3NoaXBfaWQGdWludDY0CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8PY2l2aWNjb25maWdfcm93AAELY2l2aWNfb3duZXIEbmFtZQljbGFpbV9yb3cAAQVvd25lcgRuYW1lCGNsYWltam9iAAIGam9iX2lkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8IY291cGxpbmcAAwtjb3VudGVycGFydAplbnRpdHlfcmVmBGhvbGQGdWludDY0BGtpbmQFdWludDgFY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIY3JhZnRqb2IABgdzaGlwX2lkBnVpbnQ2NAt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdCWRlbGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDWVudGl0eV9sYXlvdXQAAw5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXQ1iYXNlX2h1bGxtYXNzBnVpbnQzMhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAwCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAZ1aW50MzIQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2CmdhdGhlcnBsYW4ABglzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIIcmVjaGFyZ2UEYm9vbAVzbG90cwVieXRlcwxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10KZ2V0Y2x1c3RlcgABBmh1Yl9pZAZ1aW50NjQJZ2V0Y29uZmlnAAAKZ2V0ZGVwb3NpdAACBW93bmVyBG5hbWUIYXNzZXRfaWQGdWludDY0C2dldGRpc3RhbmNlAAQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYJZ2V0ZW50Y2xzAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMZ2V0Zm9vdHByaW50AAEHaXRlbV9pZAZ1aW50MTYLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAtnZXRpdGVtdHlwZQABB2l0ZW1faWQGdWludDE2DGdldGl0ZW10eXBlcwAAB2dldGpvYnMAAQt3b3Jrc2hvcF9pZAZ1aW50NjQLZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAApnZXRzZXJ2aWNlAAELd29ya3Nob3BfaWQGdWludDY0CGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dldHdvcm1ob2xlAAIBeAVpbnQ2NAF5BWludDY0CWdyaWRfY2VsbAACAmd4BGludDgCZ3kEaW50OAxncm91cHRyYW5zaXQABQhlbnRpdGllcwxlbnRpdHlfcmVmW10CYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwAECGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQzMhBjYXBhY2l0eV9ieV90aWVyEWhhdWxlcl90aWVyX2NhcFtdD2hhdWxlcl90aWVyX2NhcAACBHRpZXIFdWludDgIY2FwYWNpdHkFdWludDgEaG9sZAAFAmlkBnVpbnQ2NARraW5kBXVpbnQ4C2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYFdW50aWwKdGltZV9wb2ludA1pbmNvbWluZ19tYXNzBnVpbnQzMgtpbXBvcnRjYXJnbwABA3JvdwljYXJnb19yb3cKaW1wb3J0Y2VsbAAEBHJvb3QGdWludDY0Amd4BGludDgCZ3kEaW50OAllbnRpdHlfaWQGdWludDY0DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdC2pvYl9yZWNlaXB0AAMGam9iX2lkBnVpbnQ2NAlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludAdqb2Jfcm93AAwCaWQGdWludDY0CHdvcmtzaG9wBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQtqb2JzX3Jlc3VsdAABBGpvYnMJam9iX3Jvd1tdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1pZ3JhdGV0YXNrcwABBWJhdGNoBnVpbnQzMgdtaWdzd2FwAAEFYmF0Y2gGdWludDMyDG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQARBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8EdGllcgV1aW50OAhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UACA5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10Pc291cmNlX3N1YmNsYXNzB3VpbnQxNj8OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nC3NlcnZpY2Vfcm93AAIGZW50aXR5BnVpbnQ2NAdzb2NrZXRzEHNlcnZpY2Vfc29ja2V0W10Oc2VydmljZV9zb2NrZXQAAQRvcGVuBGJvb2wIc2V0Y2l2aWMAAQdhY2NvdW50BG5hbWUJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQlzZXRzb2NrZXQAAwt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OARvcGVuBGJvb2wMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQdzaHV0dGxlAAQHY2FycmllcgZ1aW50NjQHZnJvbV9pZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQhzbG90X2RlZgADBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYIbWF4X3RpZXIFdWludDgSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUKc3dhcG1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCHN3YXB0aWxlAAUGaHViX2lkBnVpbnQ2NARhX2d4BGludDgEYV9neQRpbnQ4BGJfZ3gEaW50OARiX2d5BGludDgEdGFzawAKBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQljb3VwbGluZ3MKY291cGxpbmdbXQdzdWJqZWN0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPw50YXJnZXRfaXRlbV9pZAd1aW50MTY/CnRhc2tfZXZlbnQACgpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgGdWludDMyBHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQzMj8IbGFuZV9rZXkFdWludDgMdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdEXRlbXBsYXRlX21ldGFfcm93AAMHaXRlbV9pZAZ1aW50MTYEa2luZARuYW1lDWRpc3BsYXlfbGFiZWwGc3RyaW5nB3RyYW5zaXQABQJpZAZ1aW50NjQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQGdHJhdmVsAAQCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCnRyYXZlbHBsYW4AAwhlbnRpdGllcwxlbnRpdHlfcmVmW10Jd2F5cG9pbnRzEHJvdXRlX3dheXBvaW50W10IcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABQJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BnVubG9hZAADAmlkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdB3VwZ3JhZGUABQpidWlsZGVyX2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdBHNsb3QGdWludDg/BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADXdvcm1ob2xlX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMLaXNfd29ybWhvbGUEYm9vbAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcw53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NG8AAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAAA49EWFpkEJY2FuY2Vsam9iAAAAAIc+6UxECGNsYWltam9iAAAAyDRW6UxECWNsYWltcGxvdABwVb4mY+lMRAxjbGFpbXN0YXJ0ZXIAAACoG99pVEQJY2xlYW5yc3Zw7AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYW5yc3ZwCnN1bW1hcnk6ICdDbGVhbiB1cCBwYXN0IGVwb2NoIHJlc2VydmVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFcmFzZSByZXNlcnZlIHRhYmxlIHJvd3MgZnJvbSBhIHBhc3QgZXBvY2guIENhbm5vdCBjbGVhbiB0aGUgY3VycmVudCBvciBmdXR1cmUgZXBvY2hzLiBUaGUgbWF4X3Jvd3MgcGFyYW1ldGVyIGNhcHMgdGhlIG51bWJlciBvZiByb3dzIGVyYXNlZCBwZXIgY2FsbCB0byBsaW1pdCBDUFUgdXNhZ2UuAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdOwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4AAGA0MrcmRQljb25maWdsb2fdAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb25maWdsb2cKc3VtbWFyeTogJ0xvZyBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IGxvZ3MgdGhlIGN1cnJlbnQgZ2FtZSBjb25maWd1cmF0aW9uLiBDYWxsZWQgaW5saW5lIGFmdGVyIGluaXRpYWxpemF0aW9uIHRvIGJyb2FkY2FzdCBjb25maWcgdmlhIGFjdGlvbiB0cmFjZXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAgLzMRQVjcmFmdMgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyYWZ0CnN1bW1hcnk6ICdDcmFmdCBpdGVtcyBmcm9tIGEgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2Zvcm0gY2FyZ28gaXRlbXMgaW50byBhIG5ldyBpdGVtIHVzaW5nIGEgcmVjaXBlLiBUaGUgZW50aXR5IG11c3QgaGF2ZSBhIGNyYWZ0ZXIgbW9kdWxlIGluc3RhbGxlZC4gQ29uc3VtZXMgZW5lcmd5IGFuZCBzY2hlZHVsZXMgYSBjcmFmdGluZyB0YXNrIHdpdGggZHVyYXRpb24gYmFzZWQgb24gdG90YWwgaW5wdXQgbWFzcyBhbmQgY3JhZnRlciBzcGVlZC4gSW5wdXQgcXVhbnRpdGllcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIHJlY2lwZSByZXF1aXJlbWVudHMuAAAAh768zEUIY3JhZnRqb2IAAADw2eWpokoJZGVsZW50aXR5AAAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAFJomY5eyYgtnZXRkaXN0YW5jZQAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy6Qp7s1U7qyYgxnZXRmb290cHJpbnQAAEw2SarssmILZ2V0aXRlbWRhdGGoAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtZGF0YQpzdW1tYXJ5OiAnR2V0IGZ1bGwgaXRlbSBjYXRhbG9nJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgY29tcGxldGUgaXRlbSBjYXRhbG9nIGFzIHRoZSBjb250cmFjdCBzZWVzIGl0LCBpbmNsdWRpbmcgdHlwZSwgc3VidHlwZSwgdGllciwgbWFzcywgYW5kIG90aGVyIHN0YXRpYyBtZXRhZGF0YS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgY2xpZW50cyB0byBtaXJyb3IgdGhlIGNvbnRyYWN0J3MgaXRlbSBkZWZpbml0aW9ucy4AAE5OquyyYgpnZXRpdGVtaWRzhgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWlkcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gaWQgdG8gbmFtZSBtYXBwaW5ncycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgbWFwcGluZyBvZiBpdGVtIGlkIGNvbnN0YW50cyB0byB0aGVpciBjYW5vbmljYWwgc3RyaW5nIG5hbWVzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHJlc29sdmUgbnVtZXJpYyBpdGVtIGlkcyB0byBodW1hbi1yZWFkYWJsZSBpZGVudGlmaWVycy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuAFT1WarssmILZ2V0aXRlbXR5cGUAgFX1WarssmIMZ2V0aXRlbXR5cGVziAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXR5cGVzCnN1bW1hcnk6ICdHZXQgaXRlbSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgaXRlbSB0eXBlIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKHJlc291cmNlLCBjb21wb25lbnQsIG1vZHVsZSwgZW50aXR5KS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgaXRlbSB0eXBlIGlkZW50aWZpZXJzLgAAAAAf+rJiB2dldGpvYnMAAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuoLLJ+NFbs2IMZ2V0cHJvanN0YXRlywMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cHJvanN0YXRlCnN1bW1hcnk6ICdHZXQgcHJvamVjdGVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHByb2plY3RlZCBzdGF0ZSBvZiBhbiBlbnRpdHkgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5leHQgdGFza19jb3VudCBzY2hlZHVsZWQgdGFza3MgKG9yIGFsbCB0YXNrcyBpZiB0YXNrX2NvdW50IGlzIG9taXR0ZWQpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHByZXZpZXcgdGhlIHJlc3VsdCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZSB3aXRob3V0IHJlc29sdmluZyBvbi1jaGFpbi4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgCAQm5fhbNiCmdldHNlcnZpY2UAAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAqqaX5UurdAtpbXBvcnRncm91cABwlTex5kurdAxpbXBvcnRwbGF5ZXIAuq/C6uZLq3QNaW1wb3J0cmVzZXJ2ZQAAVDYZ50urdAtpbXBvcnRzdGF0ZQAAAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAAAAADQ0tYkGbGF1bmNoAAAAAAAAkAyNBGxvYWQAgCE2WWVzmZMMbWlncmF0ZXRhc2tzAAAAAKAajpmTB21pZ3N3YXAAAAAAKrqsNpUIbW92ZXRpbGUAAACIVzPp8poJbmZ0aW1ndXJssgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbmZ0aW1ndXJsCnN1bW1hcnk6ICdHZXQgTkZUIGltYWdlIFVSTCBmb3IgYSBjYXJnbyBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgaW1hZ2UgVVJMIHRoZSBjb250cmFjdCBlbWl0cyBmb3IgYSBnaXZlbiBjYXJnbyBpdGVtLCBvcHRpb25hbGx5IHNjb3BlZCB0byBhIGxvY2F0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGZldGNoIHRoZSBjYW5vbmljYWwgYXJ0d29yayBmb3IgYW4gaXRlbSBvciBwYWNrZWQgZW50aXR5LgAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAZdcghUysCnBsYWNlY2FyZ2/JBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWNhcmdvCnN1bW1hcnk6ICdSZXN0b3JlIE5GVCBjYXJnbyBvbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXN0b3JlcyB0aGUgY2FyZ28gcmVjb3JkZWQgaW4gYW4gdW53cmFwcGVkIE5GVCBvbnRvIGEgaG9zdCBlbnRpdHkuIFZhbGlkYXRlcyBob3N0IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHJlbWFpbmluZyBjYXBhY2l0eSwgZGVzZXJpYWxpemVzIHRoZSBORlQncyBpdGVtIGRhdGEsIGFuZCBhcHBlbmRzIGFuIHVud3JhcCB0YXNrIHRvIGRlbGl2ZXIgdGhlIGNhcmdvIHRvIHRoZSBob3N0LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgB8dnkqhUysC3BsYWNlZW50aXR5wAQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VlbnRpdHkKc3VtbWFyeTogJ01hdGVyaWFsaXplIGEgcGFja2VkLWVudGl0eSBORlQgYXMgYSBsaXZlIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIEVtcGxhY2VzIGEgbGl2ZSBvcmJpdGFsIHZlc3NlbCAoc2hpcCBvciBjb250YWluZXIpIGZyb20gaXRzIHBhY2tlZC1lbnRpdHkgTkZUIGRhdGEgYXQgdGhlIHJlY29yZGVkIHdyYXAgb3JpZ2luLCB0aGVuIHF1ZXVlcyB0cmF2ZWwgYW5kIHJlY2hhcmdlIHRhc2tzIHRvIGRlbGl2ZXIgaXQgdG8gdGhlIHRhcmdldCBuZXh1cyBhdCBmdWxsIGVuZXJneS4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUu4LPLUzV8l7oMcmVmcnNoZW50aXR5uAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVmcnNoZW50aXR5CnN1bW1hcnk6ICdSZWZyZXNoIGRlcml2ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgZGVyaXZlZCBmaWVsZHMgb24gYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgY2FyZ28gYW5kIG1vZHVsZXMsIHJlZnJlc2hpbmcgY2FwYWJpbGl0eSBzdGF0cyBhbmQgY2FyZ28gbWFzcy4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFVzZWQgdG8gcmVjb25jaWxlIGRlcml2ZWQgc3RhdGUgYWZ0ZXIgZGF0YSBtaWdyYXRpb25zIG9yIGNvbnRyYWN0IHVwZ3JhZGVzLqAiMpeqTaW6DHJlbW92ZW9yYWNsZQAAAAAAKGmmugZyZW5hbWUAAAAAQO1IsboHcmVzb2x2ZdADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlc29sdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVzb2x2ZSBjb21wbGV0ZWQgdGFza3MgaW4gYW4gZW50aXR5J3Mgc2NoZWR1bGUsIGFwcGx5aW5nIHRoZWlyIGVmZmVjdHMgKHJlY2hhcmdlIGVuZXJneSwgdXBkYXRlIGxvY2F0aW9uLCBsb2FkL3VubG9hZCBjYXJnbykuIElmIGNvdW50IGlzIHNwZWNpZmllZCwgcmVzb2x2ZSBleGFjdGx5IHRoYXQgbWFueSB0YXNrczsgb3RoZXJ3aXNlIHJlc29sdmUgYWxsIGNvbXBsZXRlZCB0YXNrcy4gRmFpbHMgaWYgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlZCB0YXNrcy4AQIxG7UixugpyZXNvbHZlYWxsAAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAMhth7LCCHNldGNpdmljAAAAwOlSirLCCXNldGNvb3JkcwAAAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAADICiKKs8IJc2V0c29ja2V0AJAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLRYAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAmFuTIuS2QwNpNjQAAA9jaXZpY2NvbmZpZ19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AABzEvjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAAACAD30DaTY0AAAHam9iX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAQCG3r8IDaTY0AAALc2VydmljZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAHNrUlTN5QNpNjQAAA53cmFwY29uZmlnX3JvdwAAABlTVM3lA2k2NAAADHdyYXBjb3N0X3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAABFAADINNYUnT4MdGFza19yZXN1bHRzAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQtqb2JfcmVjZWlwdAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0cwDAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWcAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0AEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQAAAAAH/qyYgtqb2JzX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AIBCbl+Fs2ILc2VydmljZV9yb3cAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAFSkTV7Ks2INd29ybWhvbGVfaW5mb5AdnubmqullDHRhc2tfcmVzdWx0cwCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAAAANDS1iQx0YXNrX3Jlc3VsdHMAAAAAAJAMjQx0YXNrX3Jlc3VsdHMAAAAquqw2lQx0YXNrX3Jlc3VsdHMAAIhXM+nymgZzdHJpbmcAAGXXIIVMrAx0YXNrX3Jlc3VsdHMAfHZ5KoVMrAx0YXNrX3Jlc3VsdHMAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAQIxG7UixuhJyZXNvbHZlYWxsX3Jlc3VsdHMAAABAxZx1wwx0YXNrX3Jlc3VsdHMAAKDsGsRpxgx0YXNrX3Jlc3VsdHMAgM8uT8Vpxgx0YXNrX3Jlc3VsdHMAAAAqulwNxwx0YXNrX3Jlc3VsdHMAAAAgOzzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAwDSxRrXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAJEPj1Ax0YXNrX3Jlc3VsdHMAAABAJXNZ1Qx0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHM=');
|
|
444
444
|
const abi = ABI.from(abiBlob);
|
|
445
445
|
var Types;
|
|
446
446
|
(function (Types) {
|
|
@@ -561,6 +561,24 @@ var Types;
|
|
|
561
561
|
Struct.type('blend')
|
|
562
562
|
], blend);
|
|
563
563
|
Types.blend = blend;
|
|
564
|
+
let builder_lane = class builder_lane extends Struct {
|
|
565
|
+
};
|
|
566
|
+
__decorate([
|
|
567
|
+
Struct.field(UInt8)
|
|
568
|
+
], builder_lane.prototype, "slot_index", void 0);
|
|
569
|
+
__decorate([
|
|
570
|
+
Struct.field(UInt16)
|
|
571
|
+
], builder_lane.prototype, "speed", void 0);
|
|
572
|
+
__decorate([
|
|
573
|
+
Struct.field(UInt32)
|
|
574
|
+
], builder_lane.prototype, "drain", void 0);
|
|
575
|
+
__decorate([
|
|
576
|
+
Struct.field(UInt16)
|
|
577
|
+
], builder_lane.prototype, "output_pct", void 0);
|
|
578
|
+
builder_lane = __decorate([
|
|
579
|
+
Struct.type('builder_lane')
|
|
580
|
+
], builder_lane);
|
|
581
|
+
Types.builder_lane = builder_lane;
|
|
564
582
|
let buildplot = class buildplot extends Struct {
|
|
565
583
|
};
|
|
566
584
|
__decorate([
|
|
@@ -624,6 +642,18 @@ var Types;
|
|
|
624
642
|
Struct.type('cancel_results')
|
|
625
643
|
], cancel_results);
|
|
626
644
|
Types.cancel_results = cancel_results;
|
|
645
|
+
let canceljob = class canceljob extends Struct {
|
|
646
|
+
};
|
|
647
|
+
__decorate([
|
|
648
|
+
Struct.field(UInt64)
|
|
649
|
+
], canceljob.prototype, "job_id", void 0);
|
|
650
|
+
__decorate([
|
|
651
|
+
Struct.field(UInt64)
|
|
652
|
+
], canceljob.prototype, "ship_id", void 0);
|
|
653
|
+
canceljob = __decorate([
|
|
654
|
+
Struct.type('canceljob')
|
|
655
|
+
], canceljob);
|
|
656
|
+
Types.canceljob = canceljob;
|
|
627
657
|
let cargo_row = class cargo_row extends Struct {
|
|
628
658
|
};
|
|
629
659
|
__decorate([
|
|
@@ -675,6 +705,15 @@ var Types;
|
|
|
675
705
|
Struct.type('cargo_view')
|
|
676
706
|
], cargo_view);
|
|
677
707
|
Types.cargo_view = cargo_view;
|
|
708
|
+
let civicconfig_row = class civicconfig_row extends Struct {
|
|
709
|
+
};
|
|
710
|
+
__decorate([
|
|
711
|
+
Struct.field(Name)
|
|
712
|
+
], civicconfig_row.prototype, "civic_owner", void 0);
|
|
713
|
+
civicconfig_row = __decorate([
|
|
714
|
+
Struct.type('civicconfig_row')
|
|
715
|
+
], civicconfig_row);
|
|
716
|
+
Types.civicconfig_row = civicconfig_row;
|
|
678
717
|
let claim_row = class claim_row extends Struct {
|
|
679
718
|
};
|
|
680
719
|
__decorate([
|
|
@@ -684,6 +723,18 @@ var Types;
|
|
|
684
723
|
Struct.type('claim_row')
|
|
685
724
|
], claim_row);
|
|
686
725
|
Types.claim_row = claim_row;
|
|
726
|
+
let claimjob = class claimjob extends Struct {
|
|
727
|
+
};
|
|
728
|
+
__decorate([
|
|
729
|
+
Struct.field(UInt64)
|
|
730
|
+
], claimjob.prototype, "job_id", void 0);
|
|
731
|
+
__decorate([
|
|
732
|
+
Struct.field(UInt64)
|
|
733
|
+
], claimjob.prototype, "ship_id", void 0);
|
|
734
|
+
claimjob = __decorate([
|
|
735
|
+
Struct.type('claimjob')
|
|
736
|
+
], claimjob);
|
|
737
|
+
Types.claimjob = claimjob;
|
|
687
738
|
let cluster_slot = class cluster_slot extends Struct {
|
|
688
739
|
};
|
|
689
740
|
__decorate([
|
|
@@ -882,6 +933,21 @@ var Types;
|
|
|
882
933
|
Struct.type('coordinates')
|
|
883
934
|
], coordinates);
|
|
884
935
|
Types.coordinates = coordinates;
|
|
936
|
+
let coupling = class coupling extends Struct {
|
|
937
|
+
};
|
|
938
|
+
__decorate([
|
|
939
|
+
Struct.field(entity_ref)
|
|
940
|
+
], coupling.prototype, "counterpart", void 0);
|
|
941
|
+
__decorate([
|
|
942
|
+
Struct.field(UInt64)
|
|
943
|
+
], coupling.prototype, "hold", void 0);
|
|
944
|
+
__decorate([
|
|
945
|
+
Struct.field(UInt8)
|
|
946
|
+
], coupling.prototype, "kind", void 0);
|
|
947
|
+
coupling = __decorate([
|
|
948
|
+
Struct.type('coupling')
|
|
949
|
+
], coupling);
|
|
950
|
+
Types.coupling = coupling;
|
|
885
951
|
let craft = class craft extends Struct {
|
|
886
952
|
};
|
|
887
953
|
__decorate([
|
|
@@ -924,6 +990,39 @@ var Types;
|
|
|
924
990
|
Struct.type('crafter_lane')
|
|
925
991
|
], crafter_lane);
|
|
926
992
|
Types.crafter_lane = crafter_lane;
|
|
993
|
+
let craftjob = class craftjob extends Struct {
|
|
994
|
+
};
|
|
995
|
+
__decorate([
|
|
996
|
+
Struct.field(UInt64)
|
|
997
|
+
], craftjob.prototype, "ship_id", void 0);
|
|
998
|
+
__decorate([
|
|
999
|
+
Struct.field(UInt64)
|
|
1000
|
+
], craftjob.prototype, "workshop_id", void 0);
|
|
1001
|
+
__decorate([
|
|
1002
|
+
Struct.field(UInt8)
|
|
1003
|
+
], craftjob.prototype, "slot", void 0);
|
|
1004
|
+
__decorate([
|
|
1005
|
+
Struct.field(UInt16)
|
|
1006
|
+
], craftjob.prototype, "recipe_id", void 0);
|
|
1007
|
+
__decorate([
|
|
1008
|
+
Struct.field(UInt32)
|
|
1009
|
+
], craftjob.prototype, "quantity", void 0);
|
|
1010
|
+
__decorate([
|
|
1011
|
+
Struct.field(cargo_item, { array: true })
|
|
1012
|
+
], craftjob.prototype, "inputs", void 0);
|
|
1013
|
+
craftjob = __decorate([
|
|
1014
|
+
Struct.type('craftjob')
|
|
1015
|
+
], craftjob);
|
|
1016
|
+
Types.craftjob = craftjob;
|
|
1017
|
+
let delentity = class delentity extends Struct {
|
|
1018
|
+
};
|
|
1019
|
+
__decorate([
|
|
1020
|
+
Struct.field(UInt64)
|
|
1021
|
+
], delentity.prototype, "entity_id", void 0);
|
|
1022
|
+
delentity = __decorate([
|
|
1023
|
+
Struct.type('delentity')
|
|
1024
|
+
], delentity);
|
|
1025
|
+
Types.delentity = delentity;
|
|
927
1026
|
let demolish = class demolish extends Struct {
|
|
928
1027
|
};
|
|
929
1028
|
__decorate([
|
|
@@ -1121,18 +1220,18 @@ var Types;
|
|
|
1121
1220
|
__decorate([
|
|
1122
1221
|
Struct.field(cargo_item, { array: true })
|
|
1123
1222
|
], task.prototype, "cargo", void 0);
|
|
1223
|
+
__decorate([
|
|
1224
|
+
Struct.field(coupling, { array: true })
|
|
1225
|
+
], task.prototype, "couplings", void 0);
|
|
1124
1226
|
__decorate([
|
|
1125
1227
|
Struct.field(entity_ref, { optional: true })
|
|
1126
|
-
], task.prototype, "
|
|
1228
|
+
], task.prototype, "subject", void 0);
|
|
1127
1229
|
__decorate([
|
|
1128
1230
|
Struct.field(UInt64, { optional: true })
|
|
1129
1231
|
], task.prototype, "entitygroup", void 0);
|
|
1130
1232
|
__decorate([
|
|
1131
1233
|
Struct.field(UInt32, { optional: true })
|
|
1132
1234
|
], task.prototype, "energy_cost", void 0);
|
|
1133
|
-
__decorate([
|
|
1134
|
-
Struct.field(UInt64, { optional: true })
|
|
1135
|
-
], task.prototype, "hold", void 0);
|
|
1136
1235
|
__decorate([
|
|
1137
1236
|
Struct.field(UInt16, { optional: true })
|
|
1138
1237
|
], task.prototype, "target_item_id", void 0);
|
|
@@ -1241,6 +1340,9 @@ var Types;
|
|
|
1241
1340
|
__decorate([
|
|
1242
1341
|
Struct.field(crafter_lane, { array: true })
|
|
1243
1342
|
], entity_info.prototype, "crafter_lanes", void 0);
|
|
1343
|
+
__decorate([
|
|
1344
|
+
Struct.field(builder_lane, { array: true })
|
|
1345
|
+
], entity_info.prototype, "builder_lanes", void 0);
|
|
1244
1346
|
__decorate([
|
|
1245
1347
|
Struct.field(loader_lane, { array: true })
|
|
1246
1348
|
], entity_info.prototype, "loader_lanes", void 0);
|
|
@@ -1280,6 +1382,9 @@ var Types;
|
|
|
1280
1382
|
__decorate([
|
|
1281
1383
|
Struct.field(slot_def, { array: true })
|
|
1282
1384
|
], entity_layout.prototype, "slots", void 0);
|
|
1385
|
+
__decorate([
|
|
1386
|
+
Struct.field(UInt32)
|
|
1387
|
+
], entity_layout.prototype, "base_hullmass", void 0);
|
|
1283
1388
|
entity_layout = __decorate([
|
|
1284
1389
|
Struct.type('entity_layout')
|
|
1285
1390
|
], entity_layout);
|
|
@@ -1383,7 +1488,7 @@ var Types;
|
|
|
1383
1488
|
Struct.field(Name)
|
|
1384
1489
|
], entity_task_info.prototype, "entity_type", void 0);
|
|
1385
1490
|
__decorate([
|
|
1386
|
-
Struct.field(
|
|
1491
|
+
Struct.field(UInt32)
|
|
1387
1492
|
], entity_task_info.prototype, "task_count", void 0);
|
|
1388
1493
|
__decorate([
|
|
1389
1494
|
Struct.field(TimePoint)
|
|
@@ -1503,6 +1608,30 @@ var Types;
|
|
|
1503
1608
|
Struct.type('gather')
|
|
1504
1609
|
], gather);
|
|
1505
1610
|
Types.gather = gather;
|
|
1611
|
+
let gatherplan = class gatherplan extends Struct {
|
|
1612
|
+
};
|
|
1613
|
+
__decorate([
|
|
1614
|
+
Struct.field(UInt64)
|
|
1615
|
+
], gatherplan.prototype, "source_id", void 0);
|
|
1616
|
+
__decorate([
|
|
1617
|
+
Struct.field(UInt64)
|
|
1618
|
+
], gatherplan.prototype, "destination_id", void 0);
|
|
1619
|
+
__decorate([
|
|
1620
|
+
Struct.field(UInt16)
|
|
1621
|
+
], gatherplan.prototype, "stratum", void 0);
|
|
1622
|
+
__decorate([
|
|
1623
|
+
Struct.field(UInt32)
|
|
1624
|
+
], gatherplan.prototype, "quantity", void 0);
|
|
1625
|
+
__decorate([
|
|
1626
|
+
Struct.field('bool')
|
|
1627
|
+
], gatherplan.prototype, "recharge", void 0);
|
|
1628
|
+
__decorate([
|
|
1629
|
+
Struct.field(Bytes)
|
|
1630
|
+
], gatherplan.prototype, "slots", void 0);
|
|
1631
|
+
gatherplan = __decorate([
|
|
1632
|
+
Struct.type('gatherplan')
|
|
1633
|
+
], gatherplan);
|
|
1634
|
+
Types.gatherplan = gatherplan;
|
|
1506
1635
|
let genesisfleet = class genesisfleet extends Struct {
|
|
1507
1636
|
};
|
|
1508
1637
|
__decorate([
|
|
@@ -1638,6 +1767,15 @@ var Types;
|
|
|
1638
1767
|
Struct.type('getitemtypes')
|
|
1639
1768
|
], getitemtypes);
|
|
1640
1769
|
Types.getitemtypes = getitemtypes;
|
|
1770
|
+
let getjobs = class getjobs extends Struct {
|
|
1771
|
+
};
|
|
1772
|
+
__decorate([
|
|
1773
|
+
Struct.field(UInt64)
|
|
1774
|
+
], getjobs.prototype, "workshop_id", void 0);
|
|
1775
|
+
getjobs = __decorate([
|
|
1776
|
+
Struct.type('getjobs')
|
|
1777
|
+
], getjobs);
|
|
1778
|
+
Types.getjobs = getjobs;
|
|
1641
1779
|
let getkindmeta = class getkindmeta extends Struct {
|
|
1642
1780
|
};
|
|
1643
1781
|
getkindmeta = __decorate([
|
|
@@ -1770,6 +1908,15 @@ var Types;
|
|
|
1770
1908
|
Struct.type('getresources')
|
|
1771
1909
|
], getresources);
|
|
1772
1910
|
Types.getresources = getresources;
|
|
1911
|
+
let getservice = class getservice extends Struct {
|
|
1912
|
+
};
|
|
1913
|
+
__decorate([
|
|
1914
|
+
Struct.field(UInt64)
|
|
1915
|
+
], getservice.prototype, "workshop_id", void 0);
|
|
1916
|
+
getservice = __decorate([
|
|
1917
|
+
Struct.type('getservice')
|
|
1918
|
+
], getservice);
|
|
1919
|
+
Types.getservice = getservice;
|
|
1773
1920
|
let getslots = class getslots extends Struct {
|
|
1774
1921
|
};
|
|
1775
1922
|
getslots = __decorate([
|
|
@@ -1881,6 +2028,24 @@ var Types;
|
|
|
1881
2028
|
Struct.type('importcargo')
|
|
1882
2029
|
], importcargo);
|
|
1883
2030
|
Types.importcargo = importcargo;
|
|
2031
|
+
let importcell = class importcell extends Struct {
|
|
2032
|
+
};
|
|
2033
|
+
__decorate([
|
|
2034
|
+
Struct.field(UInt64)
|
|
2035
|
+
], importcell.prototype, "root", void 0);
|
|
2036
|
+
__decorate([
|
|
2037
|
+
Struct.field(Int8)
|
|
2038
|
+
], importcell.prototype, "gx", void 0);
|
|
2039
|
+
__decorate([
|
|
2040
|
+
Struct.field(Int8)
|
|
2041
|
+
], importcell.prototype, "gy", void 0);
|
|
2042
|
+
__decorate([
|
|
2043
|
+
Struct.field(UInt64)
|
|
2044
|
+
], importcell.prototype, "entity_id", void 0);
|
|
2045
|
+
importcell = __decorate([
|
|
2046
|
+
Struct.type('importcell')
|
|
2047
|
+
], importcell);
|
|
2048
|
+
Types.importcell = importcell;
|
|
1884
2049
|
let importentity = class importentity extends Struct {
|
|
1885
2050
|
};
|
|
1886
2051
|
__decorate([
|
|
@@ -2091,6 +2256,72 @@ var Types;
|
|
|
2091
2256
|
Struct.type('items_info')
|
|
2092
2257
|
], items_info);
|
|
2093
2258
|
Types.items_info = items_info;
|
|
2259
|
+
let job_receipt = class job_receipt extends Struct {
|
|
2260
|
+
};
|
|
2261
|
+
__decorate([
|
|
2262
|
+
Struct.field(UInt64)
|
|
2263
|
+
], job_receipt.prototype, "job_id", void 0);
|
|
2264
|
+
__decorate([
|
|
2265
|
+
Struct.field(TimePoint)
|
|
2266
|
+
], job_receipt.prototype, "starts_at", void 0);
|
|
2267
|
+
__decorate([
|
|
2268
|
+
Struct.field(TimePoint)
|
|
2269
|
+
], job_receipt.prototype, "completes_at", void 0);
|
|
2270
|
+
job_receipt = __decorate([
|
|
2271
|
+
Struct.type('job_receipt')
|
|
2272
|
+
], job_receipt);
|
|
2273
|
+
Types.job_receipt = job_receipt;
|
|
2274
|
+
let job_row = class job_row extends Struct {
|
|
2275
|
+
};
|
|
2276
|
+
__decorate([
|
|
2277
|
+
Struct.field(UInt64)
|
|
2278
|
+
], job_row.prototype, "id", void 0);
|
|
2279
|
+
__decorate([
|
|
2280
|
+
Struct.field(UInt64)
|
|
2281
|
+
], job_row.prototype, "workshop", void 0);
|
|
2282
|
+
__decorate([
|
|
2283
|
+
Struct.field(UInt8)
|
|
2284
|
+
], job_row.prototype, "socket", void 0);
|
|
2285
|
+
__decorate([
|
|
2286
|
+
Struct.field(Name)
|
|
2287
|
+
], job_row.prototype, "owner", void 0);
|
|
2288
|
+
__decorate([
|
|
2289
|
+
Struct.field(UInt64)
|
|
2290
|
+
], job_row.prototype, "ship_id", void 0);
|
|
2291
|
+
__decorate([
|
|
2292
|
+
Struct.field(coordinates)
|
|
2293
|
+
], job_row.prototype, "coords", void 0);
|
|
2294
|
+
__decorate([
|
|
2295
|
+
Struct.field(TimePoint)
|
|
2296
|
+
], job_row.prototype, "starts_at", void 0);
|
|
2297
|
+
__decorate([
|
|
2298
|
+
Struct.field(TimePoint)
|
|
2299
|
+
], job_row.prototype, "completes_at", void 0);
|
|
2300
|
+
__decorate([
|
|
2301
|
+
Struct.field(UInt16)
|
|
2302
|
+
], job_row.prototype, "recipe_id", void 0);
|
|
2303
|
+
__decorate([
|
|
2304
|
+
Struct.field(UInt32)
|
|
2305
|
+
], job_row.prototype, "quantity", void 0);
|
|
2306
|
+
__decorate([
|
|
2307
|
+
Struct.field(UInt32)
|
|
2308
|
+
], job_row.prototype, "energy_paid", void 0);
|
|
2309
|
+
__decorate([
|
|
2310
|
+
Struct.field(cargo_item, { array: true })
|
|
2311
|
+
], job_row.prototype, "cargo", void 0);
|
|
2312
|
+
job_row = __decorate([
|
|
2313
|
+
Struct.type('job_row')
|
|
2314
|
+
], job_row);
|
|
2315
|
+
Types.job_row = job_row;
|
|
2316
|
+
let jobs_result = class jobs_result extends Struct {
|
|
2317
|
+
};
|
|
2318
|
+
__decorate([
|
|
2319
|
+
Struct.field(job_row, { array: true })
|
|
2320
|
+
], jobs_result.prototype, "jobs", void 0);
|
|
2321
|
+
jobs_result = __decorate([
|
|
2322
|
+
Struct.type('jobs_result')
|
|
2323
|
+
], jobs_result);
|
|
2324
|
+
Types.jobs_result = jobs_result;
|
|
2094
2325
|
let join = class join extends Struct {
|
|
2095
2326
|
};
|
|
2096
2327
|
__decorate([
|
|
@@ -2226,6 +2457,24 @@ var Types;
|
|
|
2226
2457
|
Struct.type('location_info')
|
|
2227
2458
|
], location_info);
|
|
2228
2459
|
Types.location_info = location_info;
|
|
2460
|
+
let migratetasks = class migratetasks extends Struct {
|
|
2461
|
+
};
|
|
2462
|
+
__decorate([
|
|
2463
|
+
Struct.field(UInt32)
|
|
2464
|
+
], migratetasks.prototype, "batch", void 0);
|
|
2465
|
+
migratetasks = __decorate([
|
|
2466
|
+
Struct.type('migratetasks')
|
|
2467
|
+
], migratetasks);
|
|
2468
|
+
Types.migratetasks = migratetasks;
|
|
2469
|
+
let migswap = class migswap extends Struct {
|
|
2470
|
+
};
|
|
2471
|
+
__decorate([
|
|
2472
|
+
Struct.field(UInt32)
|
|
2473
|
+
], migswap.prototype, "batch", void 0);
|
|
2474
|
+
migswap = __decorate([
|
|
2475
|
+
Struct.type('migswap')
|
|
2476
|
+
], migswap);
|
|
2477
|
+
Types.migswap = migswap;
|
|
2229
2478
|
let module_info = class module_info extends Struct {
|
|
2230
2479
|
};
|
|
2231
2480
|
__decorate([
|
|
@@ -2579,6 +2828,9 @@ var Types;
|
|
|
2579
2828
|
__decorate([
|
|
2580
2829
|
Struct.field(crafter_lane, { array: true })
|
|
2581
2830
|
], projected_state.prototype, "crafter_lanes", void 0);
|
|
2831
|
+
__decorate([
|
|
2832
|
+
Struct.field(builder_lane, { array: true })
|
|
2833
|
+
], projected_state.prototype, "builder_lanes", void 0);
|
|
2582
2834
|
__decorate([
|
|
2583
2835
|
Struct.field(loader_lane, { array: true })
|
|
2584
2836
|
], projected_state.prototype, "loader_lanes", void 0);
|
|
@@ -2799,6 +3051,36 @@ var Types;
|
|
|
2799
3051
|
Struct.type('route_waypoint')
|
|
2800
3052
|
], route_waypoint);
|
|
2801
3053
|
Types.route_waypoint = route_waypoint;
|
|
3054
|
+
let service_socket = class service_socket extends Struct {
|
|
3055
|
+
};
|
|
3056
|
+
__decorate([
|
|
3057
|
+
Struct.field('bool')
|
|
3058
|
+
], service_socket.prototype, "open", void 0);
|
|
3059
|
+
service_socket = __decorate([
|
|
3060
|
+
Struct.type('service_socket')
|
|
3061
|
+
], service_socket);
|
|
3062
|
+
Types.service_socket = service_socket;
|
|
3063
|
+
let service_row = class service_row extends Struct {
|
|
3064
|
+
};
|
|
3065
|
+
__decorate([
|
|
3066
|
+
Struct.field(UInt64)
|
|
3067
|
+
], service_row.prototype, "entity", void 0);
|
|
3068
|
+
__decorate([
|
|
3069
|
+
Struct.field(service_socket, { array: true })
|
|
3070
|
+
], service_row.prototype, "sockets", void 0);
|
|
3071
|
+
service_row = __decorate([
|
|
3072
|
+
Struct.type('service_row')
|
|
3073
|
+
], service_row);
|
|
3074
|
+
Types.service_row = service_row;
|
|
3075
|
+
let setcivic = class setcivic extends Struct {
|
|
3076
|
+
};
|
|
3077
|
+
__decorate([
|
|
3078
|
+
Struct.field(Name)
|
|
3079
|
+
], setcivic.prototype, "account", void 0);
|
|
3080
|
+
setcivic = __decorate([
|
|
3081
|
+
Struct.type('setcivic')
|
|
3082
|
+
], setcivic);
|
|
3083
|
+
Types.setcivic = setcivic;
|
|
2802
3084
|
let setcoords = class setcoords extends Struct {
|
|
2803
3085
|
};
|
|
2804
3086
|
__decorate([
|
|
@@ -2829,6 +3111,21 @@ var Types;
|
|
|
2829
3111
|
Struct.type('setnftcfg')
|
|
2830
3112
|
], setnftcfg);
|
|
2831
3113
|
Types.setnftcfg = setnftcfg;
|
|
3114
|
+
let setsocket = class setsocket extends Struct {
|
|
3115
|
+
};
|
|
3116
|
+
__decorate([
|
|
3117
|
+
Struct.field(UInt64)
|
|
3118
|
+
], setsocket.prototype, "workshop_id", void 0);
|
|
3119
|
+
__decorate([
|
|
3120
|
+
Struct.field(UInt8)
|
|
3121
|
+
], setsocket.prototype, "slot", void 0);
|
|
3122
|
+
__decorate([
|
|
3123
|
+
Struct.field('bool')
|
|
3124
|
+
], setsocket.prototype, "open", void 0);
|
|
3125
|
+
setsocket = __decorate([
|
|
3126
|
+
Struct.type('setsocket')
|
|
3127
|
+
], setsocket);
|
|
3128
|
+
Types.setsocket = setsocket;
|
|
2832
3129
|
let setthreshold = class setthreshold extends Struct {
|
|
2833
3130
|
};
|
|
2834
3131
|
__decorate([
|
|
@@ -2865,6 +3162,24 @@ var Types;
|
|
|
2865
3162
|
Struct.type('setwrapfee')
|
|
2866
3163
|
], setwrapfee);
|
|
2867
3164
|
Types.setwrapfee = setwrapfee;
|
|
3165
|
+
let shuttle = class shuttle extends Struct {
|
|
3166
|
+
};
|
|
3167
|
+
__decorate([
|
|
3168
|
+
Struct.field(UInt64)
|
|
3169
|
+
], shuttle.prototype, "carrier", void 0);
|
|
3170
|
+
__decorate([
|
|
3171
|
+
Struct.field(UInt64)
|
|
3172
|
+
], shuttle.prototype, "from_id", void 0);
|
|
3173
|
+
__decorate([
|
|
3174
|
+
Struct.field(UInt64)
|
|
3175
|
+
], shuttle.prototype, "to_id", void 0);
|
|
3176
|
+
__decorate([
|
|
3177
|
+
Struct.field(cargo_item, { array: true })
|
|
3178
|
+
], shuttle.prototype, "items", void 0);
|
|
3179
|
+
shuttle = __decorate([
|
|
3180
|
+
Struct.type('shuttle')
|
|
3181
|
+
], shuttle);
|
|
3182
|
+
Types.shuttle = shuttle;
|
|
2868
3183
|
let stowcargo = class stowcargo extends Struct {
|
|
2869
3184
|
};
|
|
2870
3185
|
__decorate([
|
|
@@ -3033,21 +3348,21 @@ var Types;
|
|
|
3033
3348
|
Struct.type('travel')
|
|
3034
3349
|
], travel);
|
|
3035
3350
|
Types.travel = travel;
|
|
3036
|
-
let
|
|
3351
|
+
let travelplan = class travelplan extends Struct {
|
|
3037
3352
|
};
|
|
3038
3353
|
__decorate([
|
|
3039
3354
|
Struct.field(entity_ref, { array: true })
|
|
3040
|
-
],
|
|
3355
|
+
], travelplan.prototype, "entities", void 0);
|
|
3041
3356
|
__decorate([
|
|
3042
3357
|
Struct.field(route_waypoint, { array: true })
|
|
3043
|
-
],
|
|
3358
|
+
], travelplan.prototype, "waypoints", void 0);
|
|
3044
3359
|
__decorate([
|
|
3045
3360
|
Struct.field('bool')
|
|
3046
|
-
],
|
|
3047
|
-
|
|
3048
|
-
Struct.type('
|
|
3049
|
-
],
|
|
3050
|
-
Types.
|
|
3361
|
+
], travelplan.prototype, "recharge", void 0);
|
|
3362
|
+
travelplan = __decorate([
|
|
3363
|
+
Struct.type('travelplan')
|
|
3364
|
+
], travelplan);
|
|
3365
|
+
Types.travelplan = travelplan;
|
|
3051
3366
|
let types_row = class types_row extends Struct {
|
|
3052
3367
|
};
|
|
3053
3368
|
__decorate([
|
|
@@ -3183,19 +3498,23 @@ var Types;
|
|
|
3183
3498
|
})(Types || (Types = {}));
|
|
3184
3499
|
const TableMap = {
|
|
3185
3500
|
cargo: Types.cargo_row,
|
|
3501
|
+
civicconfig: Types.civicconfig_row,
|
|
3186
3502
|
claims: Types.claim_row,
|
|
3187
3503
|
cluster: Types.cluster_row,
|
|
3188
3504
|
commit: Types.commit_row,
|
|
3189
3505
|
entity: Types.entity_row,
|
|
3506
|
+
'entity.mig': Types.entity_row,
|
|
3190
3507
|
entitygroup: Types.entitygroup_row,
|
|
3191
3508
|
entityseq: Types.entity_seq_row,
|
|
3192
3509
|
epoch: Types.epoch_row,
|
|
3510
|
+
jobs: Types.job_row,
|
|
3193
3511
|
nftconfig: Types.nftconfig_row,
|
|
3194
3512
|
oraclecfg: Types.oracle_config_row,
|
|
3195
3513
|
oracles: Types.oracle_row,
|
|
3196
3514
|
player: Types.player_row,
|
|
3197
3515
|
reserve: Types.reserve_row,
|
|
3198
3516
|
reveal: Types.reveal_row,
|
|
3517
|
+
service: Types.service_row,
|
|
3199
3518
|
state: Types.state_row,
|
|
3200
3519
|
types: Types.types_row,
|
|
3201
3520
|
wrapconfig: Types.wrapconfig_row,
|
|
@@ -3316,7 +3635,7 @@ const INSUFFICIENT_BALANCE = 'Insufficient balance.';
|
|
|
3316
3635
|
const INSUFFICIENT_ITEM_QUANTITY = 'Insufficient quantity in cargo.';
|
|
3317
3636
|
const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
3318
3637
|
|
|
3319
|
-
const PRECISION
|
|
3638
|
+
const PRECISION = 10000;
|
|
3320
3639
|
const CRAFT_ENERGY_DIVISOR = 150000;
|
|
3321
3640
|
const PLANETARY_STRUCTURE_Z = 0;
|
|
3322
3641
|
const CONTAINER_Z = 300;
|
|
@@ -3338,15 +3657,15 @@ var TaskType;
|
|
|
3338
3657
|
TaskType[TaskType["GATHER"] = 5] = "GATHER";
|
|
3339
3658
|
TaskType[TaskType["WARP"] = 6] = "WARP";
|
|
3340
3659
|
TaskType[TaskType["CRAFT"] = 7] = "CRAFT";
|
|
3341
|
-
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
3342
3660
|
TaskType[TaskType["TRANSIT"] = 9] = "TRANSIT";
|
|
3343
3661
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
3344
3662
|
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
3663
|
+
TaskType[TaskType["LAUNCH"] = 12] = "LAUNCH";
|
|
3345
3664
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
3346
|
-
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
3347
3665
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
3348
3666
|
TaskType[TaskType["CHARGE"] = 16] = "CHARGE";
|
|
3349
3667
|
TaskType[TaskType["UPGRADE"] = 17] = "UPGRADE";
|
|
3668
|
+
TaskType[TaskType["SHUTTLE"] = 18] = "SHUTTLE";
|
|
3350
3669
|
})(TaskType || (TaskType = {}));
|
|
3351
3670
|
var HoldKind;
|
|
3352
3671
|
(function (HoldKind) {
|
|
@@ -3354,6 +3673,7 @@ var HoldKind;
|
|
|
3354
3673
|
HoldKind[HoldKind["PUSH"] = 2] = "PUSH";
|
|
3355
3674
|
HoldKind[HoldKind["GATHER"] = 3] = "GATHER";
|
|
3356
3675
|
HoldKind[HoldKind["BUILD"] = 4] = "BUILD";
|
|
3676
|
+
HoldKind[HoldKind["FLIGHT"] = 5] = "FLIGHT";
|
|
3357
3677
|
HoldKind[HoldKind["UPGRADE"] = 6] = "UPGRADE";
|
|
3358
3678
|
})(HoldKind || (HoldKind = {}));
|
|
3359
3679
|
var LocationType;
|
|
@@ -3488,6 +3808,7 @@ const ITEM_HAULER_T1 = 10106;
|
|
|
3488
3808
|
const ITEM_WARP_T1 = 10107;
|
|
3489
3809
|
const ITEM_BATTERY_T1 = 10108;
|
|
3490
3810
|
const ITEM_LAUNCHER_T1 = 10109;
|
|
3811
|
+
const ITEM_BUILDER_T1 = 10110;
|
|
3491
3812
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
3492
3813
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
3493
3814
|
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
@@ -3496,6 +3817,15 @@ const ITEM_FACTORY_T1_PACKED = 10204;
|
|
|
3496
3817
|
const ITEM_MASS_DRIVER_T1_PACKED = 10205;
|
|
3497
3818
|
const ITEM_MASS_CATCHER_T1_PACKED = 10206;
|
|
3498
3819
|
const ITEM_HUB_T1_PACKED = 10207;
|
|
3820
|
+
const ITEM_WORKSHOP_T1_PACKED = 10208;
|
|
3821
|
+
const ITEM_ROUSTABOUT_T1_PACKED = 10210;
|
|
3822
|
+
const ITEM_PROSPECTOR_T1_PACKED = 10211;
|
|
3823
|
+
const ITEM_TENDER_T1_PACKED = 10212;
|
|
3824
|
+
const ITEM_WRIGHT_T1_PACKED = 10213;
|
|
3825
|
+
const ITEM_TUG_T1_PACKED = 10214;
|
|
3826
|
+
const ITEM_PORTER_T1_PACKED = 10215;
|
|
3827
|
+
const ITEM_WRANGLER_T1_PACKED = 10216;
|
|
3828
|
+
const ITEM_DREDGER_T1_PACKED = 10217;
|
|
3499
3829
|
const ITEM_PLATE_T2 = 20001;
|
|
3500
3830
|
const ITEM_FRAME_T2 = 20002;
|
|
3501
3831
|
const ITEM_PLASMA_CELL_T2 = 20003;
|
|
@@ -4299,16 +4629,16 @@ var recipes = [
|
|
|
4299
4629
|
]
|
|
4300
4630
|
},
|
|
4301
4631
|
{
|
|
4302
|
-
outputItemId:
|
|
4303
|
-
outputMass:
|
|
4632
|
+
outputItemId: 10110,
|
|
4633
|
+
outputMass: 960000,
|
|
4304
4634
|
inputs: [
|
|
4305
4635
|
{
|
|
4306
|
-
itemId:
|
|
4307
|
-
quantity:
|
|
4636
|
+
itemId: 10006,
|
|
4637
|
+
quantity: 300
|
|
4308
4638
|
},
|
|
4309
4639
|
{
|
|
4310
4640
|
itemId: 10008,
|
|
4311
|
-
quantity:
|
|
4641
|
+
quantity: 300
|
|
4312
4642
|
}
|
|
4313
4643
|
],
|
|
4314
4644
|
statSlots: [
|
|
@@ -4316,20 +4646,8 @@ var recipes = [
|
|
|
4316
4646
|
sources: [
|
|
4317
4647
|
{
|
|
4318
4648
|
inputIndex: 0,
|
|
4319
|
-
statIndex:
|
|
4320
|
-
}
|
|
4321
|
-
]
|
|
4322
|
-
},
|
|
4323
|
-
{
|
|
4324
|
-
sources: [
|
|
4325
|
-
{
|
|
4326
|
-
inputIndex: 0,
|
|
4327
|
-
statIndex: 1
|
|
4328
|
-
}
|
|
4329
|
-
]
|
|
4330
|
-
},
|
|
4331
|
-
{
|
|
4332
|
-
sources: [
|
|
4649
|
+
statIndex: 2
|
|
4650
|
+
},
|
|
4333
4651
|
{
|
|
4334
4652
|
inputIndex: 1,
|
|
4335
4653
|
statIndex: 0
|
|
@@ -4346,31 +4664,21 @@ var recipes = [
|
|
|
4346
4664
|
}
|
|
4347
4665
|
],
|
|
4348
4666
|
blendWeights: [
|
|
4667
|
+
1,
|
|
4668
|
+
1
|
|
4349
4669
|
]
|
|
4350
4670
|
},
|
|
4351
4671
|
{
|
|
4352
|
-
outputItemId:
|
|
4353
|
-
outputMass:
|
|
4672
|
+
outputItemId: 10200,
|
|
4673
|
+
outputMass: 1900000,
|
|
4354
4674
|
inputs: [
|
|
4355
4675
|
{
|
|
4356
4676
|
itemId: 10001,
|
|
4357
|
-
quantity:
|
|
4677
|
+
quantity: 600
|
|
4358
4678
|
},
|
|
4359
4679
|
{
|
|
4360
4680
|
itemId: 10008,
|
|
4361
|
-
quantity:
|
|
4362
|
-
},
|
|
4363
|
-
{
|
|
4364
|
-
itemId: 10007,
|
|
4365
|
-
quantity: 300
|
|
4366
|
-
},
|
|
4367
|
-
{
|
|
4368
|
-
itemId: 10003,
|
|
4369
|
-
quantity: 300
|
|
4370
|
-
},
|
|
4371
|
-
{
|
|
4372
|
-
itemId: 10006,
|
|
4373
|
-
quantity: 300
|
|
4681
|
+
quantity: 600
|
|
4374
4682
|
}
|
|
4375
4683
|
],
|
|
4376
4684
|
statSlots: [
|
|
@@ -4392,10 +4700,18 @@ var recipes = [
|
|
|
4392
4700
|
},
|
|
4393
4701
|
{
|
|
4394
4702
|
sources: [
|
|
4703
|
+
{
|
|
4704
|
+
inputIndex: 1,
|
|
4705
|
+
statIndex: 0
|
|
4706
|
+
}
|
|
4395
4707
|
]
|
|
4396
4708
|
},
|
|
4397
4709
|
{
|
|
4398
4710
|
sources: [
|
|
4711
|
+
{
|
|
4712
|
+
inputIndex: 1,
|
|
4713
|
+
statIndex: 1
|
|
4714
|
+
}
|
|
4399
4715
|
]
|
|
4400
4716
|
}
|
|
4401
4717
|
],
|
|
@@ -4567,12 +4883,28 @@ var recipes = [
|
|
|
4567
4883
|
]
|
|
4568
4884
|
},
|
|
4569
4885
|
{
|
|
4570
|
-
outputItemId:
|
|
4571
|
-
outputMass:
|
|
4886
|
+
outputItemId: 10210,
|
|
4887
|
+
outputMass: 1600000,
|
|
4572
4888
|
inputs: [
|
|
4573
4889
|
{
|
|
4574
|
-
itemId:
|
|
4575
|
-
quantity:
|
|
4890
|
+
itemId: 10001,
|
|
4891
|
+
quantity: 200
|
|
4892
|
+
},
|
|
4893
|
+
{
|
|
4894
|
+
itemId: 10008,
|
|
4895
|
+
quantity: 200
|
|
4896
|
+
},
|
|
4897
|
+
{
|
|
4898
|
+
itemId: 10007,
|
|
4899
|
+
quantity: 200
|
|
4900
|
+
},
|
|
4901
|
+
{
|
|
4902
|
+
itemId: 10003,
|
|
4903
|
+
quantity: 200
|
|
4904
|
+
},
|
|
4905
|
+
{
|
|
4906
|
+
itemId: 10006,
|
|
4907
|
+
quantity: 200
|
|
4576
4908
|
}
|
|
4577
4909
|
],
|
|
4578
4910
|
statSlots: [
|
|
@@ -4587,55 +4919,774 @@ var recipes = [
|
|
|
4587
4919
|
{
|
|
4588
4920
|
sources: [
|
|
4589
4921
|
{
|
|
4590
|
-
inputIndex:
|
|
4591
|
-
statIndex:
|
|
4922
|
+
inputIndex: 1,
|
|
4923
|
+
statIndex: 0
|
|
4592
4924
|
}
|
|
4593
4925
|
]
|
|
4594
4926
|
},
|
|
4595
4927
|
{
|
|
4596
4928
|
sources: [
|
|
4597
4929
|
{
|
|
4598
|
-
inputIndex:
|
|
4599
|
-
statIndex:
|
|
4930
|
+
inputIndex: 2,
|
|
4931
|
+
statIndex: 0
|
|
4600
4932
|
}
|
|
4601
4933
|
]
|
|
4602
|
-
}
|
|
4603
|
-
],
|
|
4604
|
-
blendWeights: [
|
|
4605
|
-
]
|
|
4606
|
-
},
|
|
4607
|
-
{
|
|
4608
|
-
outputItemId: 20002,
|
|
4609
|
-
outputMass: 4800,
|
|
4610
|
-
inputs: [
|
|
4611
|
-
{
|
|
4612
|
-
itemId: 402,
|
|
4613
|
-
quantity: 6
|
|
4614
4934
|
},
|
|
4615
|
-
{
|
|
4616
|
-
itemId: 502,
|
|
4617
|
-
quantity: 6
|
|
4618
|
-
}
|
|
4619
|
-
],
|
|
4620
|
-
statSlots: [
|
|
4621
4935
|
{
|
|
4622
4936
|
sources: [
|
|
4623
4937
|
{
|
|
4624
|
-
inputIndex:
|
|
4625
|
-
statIndex:
|
|
4938
|
+
inputIndex: 3,
|
|
4939
|
+
statIndex: 0
|
|
4626
4940
|
}
|
|
4627
4941
|
]
|
|
4628
4942
|
},
|
|
4629
4943
|
{
|
|
4630
4944
|
sources: [
|
|
4631
4945
|
{
|
|
4632
|
-
inputIndex:
|
|
4946
|
+
inputIndex: 4,
|
|
4633
4947
|
statIndex: 0
|
|
4634
4948
|
}
|
|
4635
4949
|
]
|
|
4636
|
-
}
|
|
4637
|
-
|
|
4638
|
-
|
|
4950
|
+
}
|
|
4951
|
+
],
|
|
4952
|
+
blendWeights: [
|
|
4953
|
+
]
|
|
4954
|
+
},
|
|
4955
|
+
{
|
|
4956
|
+
outputItemId: 10211,
|
|
4957
|
+
outputMass: 2400000,
|
|
4958
|
+
inputs: [
|
|
4959
|
+
{
|
|
4960
|
+
itemId: 10005,
|
|
4961
|
+
quantity: 100
|
|
4962
|
+
},
|
|
4963
|
+
{
|
|
4964
|
+
itemId: 10002,
|
|
4965
|
+
quantity: 100
|
|
4966
|
+
},
|
|
4967
|
+
{
|
|
4968
|
+
itemId: 10010,
|
|
4969
|
+
quantity: 100
|
|
4970
|
+
},
|
|
4971
|
+
{
|
|
4972
|
+
itemId: 10009,
|
|
4973
|
+
quantity: 100
|
|
4974
|
+
},
|
|
4975
|
+
{
|
|
4976
|
+
itemId: 10004,
|
|
4977
|
+
quantity: 100
|
|
4978
|
+
},
|
|
4979
|
+
{
|
|
4980
|
+
itemId: 10210,
|
|
4981
|
+
quantity: 1
|
|
4982
|
+
}
|
|
4983
|
+
],
|
|
4984
|
+
statSlots: [
|
|
4985
|
+
{
|
|
4986
|
+
sources: [
|
|
4987
|
+
{
|
|
4988
|
+
inputIndex: 0,
|
|
4989
|
+
statIndex: 0
|
|
4990
|
+
},
|
|
4991
|
+
{
|
|
4992
|
+
inputIndex: 5,
|
|
4993
|
+
statIndex: 0
|
|
4994
|
+
}
|
|
4995
|
+
]
|
|
4996
|
+
},
|
|
4997
|
+
{
|
|
4998
|
+
sources: [
|
|
4999
|
+
{
|
|
5000
|
+
inputIndex: 1,
|
|
5001
|
+
statIndex: 0
|
|
5002
|
+
},
|
|
5003
|
+
{
|
|
5004
|
+
inputIndex: 5,
|
|
5005
|
+
statIndex: 1
|
|
5006
|
+
}
|
|
5007
|
+
]
|
|
5008
|
+
},
|
|
5009
|
+
{
|
|
5010
|
+
sources: [
|
|
5011
|
+
{
|
|
5012
|
+
inputIndex: 2,
|
|
5013
|
+
statIndex: 0
|
|
5014
|
+
},
|
|
5015
|
+
{
|
|
5016
|
+
inputIndex: 5,
|
|
5017
|
+
statIndex: 2
|
|
5018
|
+
}
|
|
5019
|
+
]
|
|
5020
|
+
},
|
|
5021
|
+
{
|
|
5022
|
+
sources: [
|
|
5023
|
+
{
|
|
5024
|
+
inputIndex: 3,
|
|
5025
|
+
statIndex: 0
|
|
5026
|
+
},
|
|
5027
|
+
{
|
|
5028
|
+
inputIndex: 5,
|
|
5029
|
+
statIndex: 3
|
|
5030
|
+
}
|
|
5031
|
+
]
|
|
5032
|
+
},
|
|
5033
|
+
{
|
|
5034
|
+
sources: [
|
|
5035
|
+
{
|
|
5036
|
+
inputIndex: 4,
|
|
5037
|
+
statIndex: 0
|
|
5038
|
+
},
|
|
5039
|
+
{
|
|
5040
|
+
inputIndex: 5,
|
|
5041
|
+
statIndex: 4
|
|
5042
|
+
}
|
|
5043
|
+
]
|
|
5044
|
+
}
|
|
5045
|
+
],
|
|
5046
|
+
blendWeights: [
|
|
5047
|
+
],
|
|
5048
|
+
sourceSubclass: 10210
|
|
5049
|
+
},
|
|
5050
|
+
{
|
|
5051
|
+
outputItemId: 10212,
|
|
5052
|
+
outputMass: 2400000,
|
|
5053
|
+
inputs: [
|
|
5054
|
+
{
|
|
5055
|
+
itemId: 10005,
|
|
5056
|
+
quantity: 100
|
|
5057
|
+
},
|
|
5058
|
+
{
|
|
5059
|
+
itemId: 10002,
|
|
5060
|
+
quantity: 100
|
|
5061
|
+
},
|
|
5062
|
+
{
|
|
5063
|
+
itemId: 10010,
|
|
5064
|
+
quantity: 100
|
|
5065
|
+
},
|
|
5066
|
+
{
|
|
5067
|
+
itemId: 10009,
|
|
5068
|
+
quantity: 100
|
|
5069
|
+
},
|
|
5070
|
+
{
|
|
5071
|
+
itemId: 10004,
|
|
5072
|
+
quantity: 100
|
|
5073
|
+
},
|
|
5074
|
+
{
|
|
5075
|
+
itemId: 10210,
|
|
5076
|
+
quantity: 1
|
|
5077
|
+
}
|
|
5078
|
+
],
|
|
5079
|
+
statSlots: [
|
|
5080
|
+
{
|
|
5081
|
+
sources: [
|
|
5082
|
+
{
|
|
5083
|
+
inputIndex: 0,
|
|
5084
|
+
statIndex: 0
|
|
5085
|
+
},
|
|
5086
|
+
{
|
|
5087
|
+
inputIndex: 5,
|
|
5088
|
+
statIndex: 0
|
|
5089
|
+
}
|
|
5090
|
+
]
|
|
5091
|
+
},
|
|
5092
|
+
{
|
|
5093
|
+
sources: [
|
|
5094
|
+
{
|
|
5095
|
+
inputIndex: 1,
|
|
5096
|
+
statIndex: 0
|
|
5097
|
+
},
|
|
5098
|
+
{
|
|
5099
|
+
inputIndex: 5,
|
|
5100
|
+
statIndex: 1
|
|
5101
|
+
}
|
|
5102
|
+
]
|
|
5103
|
+
},
|
|
5104
|
+
{
|
|
5105
|
+
sources: [
|
|
5106
|
+
{
|
|
5107
|
+
inputIndex: 2,
|
|
5108
|
+
statIndex: 0
|
|
5109
|
+
},
|
|
5110
|
+
{
|
|
5111
|
+
inputIndex: 5,
|
|
5112
|
+
statIndex: 2
|
|
5113
|
+
}
|
|
5114
|
+
]
|
|
5115
|
+
},
|
|
5116
|
+
{
|
|
5117
|
+
sources: [
|
|
5118
|
+
{
|
|
5119
|
+
inputIndex: 3,
|
|
5120
|
+
statIndex: 0
|
|
5121
|
+
},
|
|
5122
|
+
{
|
|
5123
|
+
inputIndex: 5,
|
|
5124
|
+
statIndex: 3
|
|
5125
|
+
}
|
|
5126
|
+
]
|
|
5127
|
+
},
|
|
5128
|
+
{
|
|
5129
|
+
sources: [
|
|
5130
|
+
{
|
|
5131
|
+
inputIndex: 4,
|
|
5132
|
+
statIndex: 0
|
|
5133
|
+
},
|
|
5134
|
+
{
|
|
5135
|
+
inputIndex: 5,
|
|
5136
|
+
statIndex: 4
|
|
5137
|
+
}
|
|
5138
|
+
]
|
|
5139
|
+
}
|
|
5140
|
+
],
|
|
5141
|
+
blendWeights: [
|
|
5142
|
+
],
|
|
5143
|
+
sourceSubclass: 10210
|
|
5144
|
+
},
|
|
5145
|
+
{
|
|
5146
|
+
outputItemId: 10213,
|
|
5147
|
+
outputMass: 2400000,
|
|
5148
|
+
inputs: [
|
|
5149
|
+
{
|
|
5150
|
+
itemId: 10005,
|
|
5151
|
+
quantity: 100
|
|
5152
|
+
},
|
|
5153
|
+
{
|
|
5154
|
+
itemId: 10002,
|
|
5155
|
+
quantity: 100
|
|
5156
|
+
},
|
|
5157
|
+
{
|
|
5158
|
+
itemId: 10010,
|
|
5159
|
+
quantity: 100
|
|
5160
|
+
},
|
|
5161
|
+
{
|
|
5162
|
+
itemId: 10009,
|
|
5163
|
+
quantity: 100
|
|
5164
|
+
},
|
|
5165
|
+
{
|
|
5166
|
+
itemId: 10004,
|
|
5167
|
+
quantity: 100
|
|
5168
|
+
},
|
|
5169
|
+
{
|
|
5170
|
+
itemId: 10210,
|
|
5171
|
+
quantity: 1
|
|
5172
|
+
}
|
|
5173
|
+
],
|
|
5174
|
+
statSlots: [
|
|
5175
|
+
{
|
|
5176
|
+
sources: [
|
|
5177
|
+
{
|
|
5178
|
+
inputIndex: 0,
|
|
5179
|
+
statIndex: 0
|
|
5180
|
+
},
|
|
5181
|
+
{
|
|
5182
|
+
inputIndex: 5,
|
|
5183
|
+
statIndex: 0
|
|
5184
|
+
}
|
|
5185
|
+
]
|
|
5186
|
+
},
|
|
5187
|
+
{
|
|
5188
|
+
sources: [
|
|
5189
|
+
{
|
|
5190
|
+
inputIndex: 1,
|
|
5191
|
+
statIndex: 0
|
|
5192
|
+
},
|
|
5193
|
+
{
|
|
5194
|
+
inputIndex: 5,
|
|
5195
|
+
statIndex: 1
|
|
5196
|
+
}
|
|
5197
|
+
]
|
|
5198
|
+
},
|
|
5199
|
+
{
|
|
5200
|
+
sources: [
|
|
5201
|
+
{
|
|
5202
|
+
inputIndex: 2,
|
|
5203
|
+
statIndex: 0
|
|
5204
|
+
},
|
|
5205
|
+
{
|
|
5206
|
+
inputIndex: 5,
|
|
5207
|
+
statIndex: 2
|
|
5208
|
+
}
|
|
5209
|
+
]
|
|
5210
|
+
},
|
|
5211
|
+
{
|
|
5212
|
+
sources: [
|
|
5213
|
+
{
|
|
5214
|
+
inputIndex: 3,
|
|
5215
|
+
statIndex: 0
|
|
5216
|
+
},
|
|
5217
|
+
{
|
|
5218
|
+
inputIndex: 5,
|
|
5219
|
+
statIndex: 3
|
|
5220
|
+
}
|
|
5221
|
+
]
|
|
5222
|
+
},
|
|
5223
|
+
{
|
|
5224
|
+
sources: [
|
|
5225
|
+
{
|
|
5226
|
+
inputIndex: 4,
|
|
5227
|
+
statIndex: 0
|
|
5228
|
+
},
|
|
5229
|
+
{
|
|
5230
|
+
inputIndex: 5,
|
|
5231
|
+
statIndex: 4
|
|
5232
|
+
}
|
|
5233
|
+
]
|
|
5234
|
+
}
|
|
5235
|
+
],
|
|
5236
|
+
blendWeights: [
|
|
5237
|
+
],
|
|
5238
|
+
sourceSubclass: 10210
|
|
5239
|
+
},
|
|
5240
|
+
{
|
|
5241
|
+
outputItemId: 10214,
|
|
5242
|
+
outputMass: 2400000,
|
|
5243
|
+
inputs: [
|
|
5244
|
+
{
|
|
5245
|
+
itemId: 10005,
|
|
5246
|
+
quantity: 100
|
|
5247
|
+
},
|
|
5248
|
+
{
|
|
5249
|
+
itemId: 10002,
|
|
5250
|
+
quantity: 100
|
|
5251
|
+
},
|
|
5252
|
+
{
|
|
5253
|
+
itemId: 10010,
|
|
5254
|
+
quantity: 100
|
|
5255
|
+
},
|
|
5256
|
+
{
|
|
5257
|
+
itemId: 10009,
|
|
5258
|
+
quantity: 100
|
|
5259
|
+
},
|
|
5260
|
+
{
|
|
5261
|
+
itemId: 10004,
|
|
5262
|
+
quantity: 100
|
|
5263
|
+
},
|
|
5264
|
+
{
|
|
5265
|
+
itemId: 10210,
|
|
5266
|
+
quantity: 1
|
|
5267
|
+
}
|
|
5268
|
+
],
|
|
5269
|
+
statSlots: [
|
|
5270
|
+
{
|
|
5271
|
+
sources: [
|
|
5272
|
+
{
|
|
5273
|
+
inputIndex: 0,
|
|
5274
|
+
statIndex: 0
|
|
5275
|
+
},
|
|
5276
|
+
{
|
|
5277
|
+
inputIndex: 5,
|
|
5278
|
+
statIndex: 0
|
|
5279
|
+
}
|
|
5280
|
+
]
|
|
5281
|
+
},
|
|
5282
|
+
{
|
|
5283
|
+
sources: [
|
|
5284
|
+
{
|
|
5285
|
+
inputIndex: 1,
|
|
5286
|
+
statIndex: 0
|
|
5287
|
+
},
|
|
5288
|
+
{
|
|
5289
|
+
inputIndex: 5,
|
|
5290
|
+
statIndex: 1
|
|
5291
|
+
}
|
|
5292
|
+
]
|
|
5293
|
+
},
|
|
5294
|
+
{
|
|
5295
|
+
sources: [
|
|
5296
|
+
{
|
|
5297
|
+
inputIndex: 2,
|
|
5298
|
+
statIndex: 0
|
|
5299
|
+
},
|
|
5300
|
+
{
|
|
5301
|
+
inputIndex: 5,
|
|
5302
|
+
statIndex: 2
|
|
5303
|
+
}
|
|
5304
|
+
]
|
|
5305
|
+
},
|
|
5306
|
+
{
|
|
5307
|
+
sources: [
|
|
5308
|
+
{
|
|
5309
|
+
inputIndex: 3,
|
|
5310
|
+
statIndex: 0
|
|
5311
|
+
},
|
|
5312
|
+
{
|
|
5313
|
+
inputIndex: 5,
|
|
5314
|
+
statIndex: 3
|
|
5315
|
+
}
|
|
5316
|
+
]
|
|
5317
|
+
},
|
|
5318
|
+
{
|
|
5319
|
+
sources: [
|
|
5320
|
+
{
|
|
5321
|
+
inputIndex: 4,
|
|
5322
|
+
statIndex: 0
|
|
5323
|
+
},
|
|
5324
|
+
{
|
|
5325
|
+
inputIndex: 5,
|
|
5326
|
+
statIndex: 4
|
|
5327
|
+
}
|
|
5328
|
+
]
|
|
5329
|
+
}
|
|
5330
|
+
],
|
|
5331
|
+
blendWeights: [
|
|
5332
|
+
],
|
|
5333
|
+
sourceSubclass: 10210
|
|
5334
|
+
},
|
|
5335
|
+
{
|
|
5336
|
+
outputItemId: 10215,
|
|
5337
|
+
outputMass: 2400000,
|
|
5338
|
+
inputs: [
|
|
5339
|
+
{
|
|
5340
|
+
itemId: 10005,
|
|
5341
|
+
quantity: 100
|
|
5342
|
+
},
|
|
5343
|
+
{
|
|
5344
|
+
itemId: 10002,
|
|
5345
|
+
quantity: 100
|
|
5346
|
+
},
|
|
5347
|
+
{
|
|
5348
|
+
itemId: 10010,
|
|
5349
|
+
quantity: 100
|
|
5350
|
+
},
|
|
5351
|
+
{
|
|
5352
|
+
itemId: 10009,
|
|
5353
|
+
quantity: 100
|
|
5354
|
+
},
|
|
5355
|
+
{
|
|
5356
|
+
itemId: 10004,
|
|
5357
|
+
quantity: 100
|
|
5358
|
+
},
|
|
5359
|
+
{
|
|
5360
|
+
itemId: 10210,
|
|
5361
|
+
quantity: 1
|
|
5362
|
+
}
|
|
5363
|
+
],
|
|
5364
|
+
statSlots: [
|
|
5365
|
+
{
|
|
5366
|
+
sources: [
|
|
5367
|
+
{
|
|
5368
|
+
inputIndex: 0,
|
|
5369
|
+
statIndex: 0
|
|
5370
|
+
},
|
|
5371
|
+
{
|
|
5372
|
+
inputIndex: 5,
|
|
5373
|
+
statIndex: 0
|
|
5374
|
+
}
|
|
5375
|
+
]
|
|
5376
|
+
},
|
|
5377
|
+
{
|
|
5378
|
+
sources: [
|
|
5379
|
+
{
|
|
5380
|
+
inputIndex: 1,
|
|
5381
|
+
statIndex: 0
|
|
5382
|
+
},
|
|
5383
|
+
{
|
|
5384
|
+
inputIndex: 5,
|
|
5385
|
+
statIndex: 1
|
|
5386
|
+
}
|
|
5387
|
+
]
|
|
5388
|
+
},
|
|
5389
|
+
{
|
|
5390
|
+
sources: [
|
|
5391
|
+
{
|
|
5392
|
+
inputIndex: 2,
|
|
5393
|
+
statIndex: 0
|
|
5394
|
+
},
|
|
5395
|
+
{
|
|
5396
|
+
inputIndex: 5,
|
|
5397
|
+
statIndex: 2
|
|
5398
|
+
}
|
|
5399
|
+
]
|
|
5400
|
+
},
|
|
5401
|
+
{
|
|
5402
|
+
sources: [
|
|
5403
|
+
{
|
|
5404
|
+
inputIndex: 3,
|
|
5405
|
+
statIndex: 0
|
|
5406
|
+
},
|
|
5407
|
+
{
|
|
5408
|
+
inputIndex: 5,
|
|
5409
|
+
statIndex: 3
|
|
5410
|
+
}
|
|
5411
|
+
]
|
|
5412
|
+
},
|
|
5413
|
+
{
|
|
5414
|
+
sources: [
|
|
5415
|
+
{
|
|
5416
|
+
inputIndex: 4,
|
|
5417
|
+
statIndex: 0
|
|
5418
|
+
},
|
|
5419
|
+
{
|
|
5420
|
+
inputIndex: 5,
|
|
5421
|
+
statIndex: 4
|
|
5422
|
+
}
|
|
5423
|
+
]
|
|
5424
|
+
}
|
|
5425
|
+
],
|
|
5426
|
+
blendWeights: [
|
|
5427
|
+
],
|
|
5428
|
+
sourceSubclass: 10210
|
|
5429
|
+
},
|
|
5430
|
+
{
|
|
5431
|
+
outputItemId: 10216,
|
|
5432
|
+
outputMass: 3600000,
|
|
5433
|
+
inputs: [
|
|
5434
|
+
{
|
|
5435
|
+
itemId: 10005,
|
|
5436
|
+
quantity: 150
|
|
5437
|
+
},
|
|
5438
|
+
{
|
|
5439
|
+
itemId: 10002,
|
|
5440
|
+
quantity: 150
|
|
5441
|
+
},
|
|
5442
|
+
{
|
|
5443
|
+
itemId: 10010,
|
|
5444
|
+
quantity: 150
|
|
5445
|
+
},
|
|
5446
|
+
{
|
|
5447
|
+
itemId: 10009,
|
|
5448
|
+
quantity: 150
|
|
5449
|
+
},
|
|
5450
|
+
{
|
|
5451
|
+
itemId: 10004,
|
|
5452
|
+
quantity: 150
|
|
5453
|
+
},
|
|
5454
|
+
{
|
|
5455
|
+
itemId: 10211,
|
|
5456
|
+
quantity: 1
|
|
5457
|
+
}
|
|
5458
|
+
],
|
|
5459
|
+
statSlots: [
|
|
5460
|
+
{
|
|
5461
|
+
sources: [
|
|
5462
|
+
{
|
|
5463
|
+
inputIndex: 0,
|
|
5464
|
+
statIndex: 0
|
|
5465
|
+
},
|
|
5466
|
+
{
|
|
5467
|
+
inputIndex: 5,
|
|
5468
|
+
statIndex: 0
|
|
5469
|
+
}
|
|
5470
|
+
]
|
|
5471
|
+
},
|
|
5472
|
+
{
|
|
5473
|
+
sources: [
|
|
5474
|
+
{
|
|
5475
|
+
inputIndex: 1,
|
|
5476
|
+
statIndex: 0
|
|
5477
|
+
},
|
|
5478
|
+
{
|
|
5479
|
+
inputIndex: 5,
|
|
5480
|
+
statIndex: 1
|
|
5481
|
+
}
|
|
5482
|
+
]
|
|
5483
|
+
},
|
|
5484
|
+
{
|
|
5485
|
+
sources: [
|
|
5486
|
+
{
|
|
5487
|
+
inputIndex: 2,
|
|
5488
|
+
statIndex: 0
|
|
5489
|
+
},
|
|
5490
|
+
{
|
|
5491
|
+
inputIndex: 5,
|
|
5492
|
+
statIndex: 2
|
|
5493
|
+
}
|
|
5494
|
+
]
|
|
5495
|
+
},
|
|
5496
|
+
{
|
|
5497
|
+
sources: [
|
|
5498
|
+
{
|
|
5499
|
+
inputIndex: 3,
|
|
5500
|
+
statIndex: 0
|
|
5501
|
+
},
|
|
5502
|
+
{
|
|
5503
|
+
inputIndex: 5,
|
|
5504
|
+
statIndex: 3
|
|
5505
|
+
}
|
|
5506
|
+
]
|
|
5507
|
+
},
|
|
5508
|
+
{
|
|
5509
|
+
sources: [
|
|
5510
|
+
{
|
|
5511
|
+
inputIndex: 4,
|
|
5512
|
+
statIndex: 0
|
|
5513
|
+
},
|
|
5514
|
+
{
|
|
5515
|
+
inputIndex: 5,
|
|
5516
|
+
statIndex: 4
|
|
5517
|
+
}
|
|
5518
|
+
]
|
|
5519
|
+
}
|
|
5520
|
+
],
|
|
5521
|
+
blendWeights: [
|
|
5522
|
+
],
|
|
5523
|
+
sourceSubclass: 10211
|
|
5524
|
+
},
|
|
5525
|
+
{
|
|
5526
|
+
outputItemId: 10217,
|
|
5527
|
+
outputMass: 3600000,
|
|
5528
|
+
inputs: [
|
|
5529
|
+
{
|
|
5530
|
+
itemId: 10005,
|
|
5531
|
+
quantity: 150
|
|
5532
|
+
},
|
|
5533
|
+
{
|
|
5534
|
+
itemId: 10002,
|
|
5535
|
+
quantity: 150
|
|
5536
|
+
},
|
|
5537
|
+
{
|
|
5538
|
+
itemId: 10010,
|
|
5539
|
+
quantity: 150
|
|
5540
|
+
},
|
|
5541
|
+
{
|
|
5542
|
+
itemId: 10009,
|
|
5543
|
+
quantity: 150
|
|
5544
|
+
},
|
|
5545
|
+
{
|
|
5546
|
+
itemId: 10004,
|
|
5547
|
+
quantity: 150
|
|
5548
|
+
},
|
|
5549
|
+
{
|
|
5550
|
+
itemId: 10211,
|
|
5551
|
+
quantity: 1
|
|
5552
|
+
}
|
|
5553
|
+
],
|
|
5554
|
+
statSlots: [
|
|
5555
|
+
{
|
|
5556
|
+
sources: [
|
|
5557
|
+
{
|
|
5558
|
+
inputIndex: 0,
|
|
5559
|
+
statIndex: 0
|
|
5560
|
+
},
|
|
5561
|
+
{
|
|
5562
|
+
inputIndex: 5,
|
|
5563
|
+
statIndex: 0
|
|
5564
|
+
}
|
|
5565
|
+
]
|
|
5566
|
+
},
|
|
5567
|
+
{
|
|
5568
|
+
sources: [
|
|
5569
|
+
{
|
|
5570
|
+
inputIndex: 1,
|
|
5571
|
+
statIndex: 0
|
|
5572
|
+
},
|
|
5573
|
+
{
|
|
5574
|
+
inputIndex: 5,
|
|
5575
|
+
statIndex: 1
|
|
5576
|
+
}
|
|
5577
|
+
]
|
|
5578
|
+
},
|
|
5579
|
+
{
|
|
5580
|
+
sources: [
|
|
5581
|
+
{
|
|
5582
|
+
inputIndex: 2,
|
|
5583
|
+
statIndex: 0
|
|
5584
|
+
},
|
|
5585
|
+
{
|
|
5586
|
+
inputIndex: 5,
|
|
5587
|
+
statIndex: 2
|
|
5588
|
+
}
|
|
5589
|
+
]
|
|
5590
|
+
},
|
|
5591
|
+
{
|
|
5592
|
+
sources: [
|
|
5593
|
+
{
|
|
5594
|
+
inputIndex: 3,
|
|
5595
|
+
statIndex: 0
|
|
5596
|
+
},
|
|
5597
|
+
{
|
|
5598
|
+
inputIndex: 5,
|
|
5599
|
+
statIndex: 3
|
|
5600
|
+
}
|
|
5601
|
+
]
|
|
5602
|
+
},
|
|
5603
|
+
{
|
|
5604
|
+
sources: [
|
|
5605
|
+
{
|
|
5606
|
+
inputIndex: 4,
|
|
5607
|
+
statIndex: 0
|
|
5608
|
+
},
|
|
5609
|
+
{
|
|
5610
|
+
inputIndex: 5,
|
|
5611
|
+
statIndex: 4
|
|
5612
|
+
}
|
|
5613
|
+
]
|
|
5614
|
+
}
|
|
5615
|
+
],
|
|
5616
|
+
blendWeights: [
|
|
5617
|
+
],
|
|
5618
|
+
sourceSubclass: 10211
|
|
5619
|
+
},
|
|
5620
|
+
{
|
|
5621
|
+
outputItemId: 20001,
|
|
5622
|
+
outputMass: 4800,
|
|
5623
|
+
inputs: [
|
|
5624
|
+
{
|
|
5625
|
+
itemId: 102,
|
|
5626
|
+
quantity: 12
|
|
5627
|
+
}
|
|
5628
|
+
],
|
|
5629
|
+
statSlots: [
|
|
5630
|
+
{
|
|
5631
|
+
sources: [
|
|
5632
|
+
{
|
|
5633
|
+
inputIndex: 0,
|
|
5634
|
+
statIndex: 0
|
|
5635
|
+
}
|
|
5636
|
+
]
|
|
5637
|
+
},
|
|
5638
|
+
{
|
|
5639
|
+
sources: [
|
|
5640
|
+
{
|
|
5641
|
+
inputIndex: 0,
|
|
5642
|
+
statIndex: 2
|
|
5643
|
+
}
|
|
5644
|
+
]
|
|
5645
|
+
},
|
|
5646
|
+
{
|
|
5647
|
+
sources: [
|
|
5648
|
+
{
|
|
5649
|
+
inputIndex: 0,
|
|
5650
|
+
statIndex: 1
|
|
5651
|
+
}
|
|
5652
|
+
]
|
|
5653
|
+
}
|
|
5654
|
+
],
|
|
5655
|
+
blendWeights: [
|
|
5656
|
+
]
|
|
5657
|
+
},
|
|
5658
|
+
{
|
|
5659
|
+
outputItemId: 20002,
|
|
5660
|
+
outputMass: 4800,
|
|
5661
|
+
inputs: [
|
|
5662
|
+
{
|
|
5663
|
+
itemId: 402,
|
|
5664
|
+
quantity: 6
|
|
5665
|
+
},
|
|
5666
|
+
{
|
|
5667
|
+
itemId: 502,
|
|
5668
|
+
quantity: 6
|
|
5669
|
+
}
|
|
5670
|
+
],
|
|
5671
|
+
statSlots: [
|
|
5672
|
+
{
|
|
5673
|
+
sources: [
|
|
5674
|
+
{
|
|
5675
|
+
inputIndex: 0,
|
|
5676
|
+
statIndex: 1
|
|
5677
|
+
}
|
|
5678
|
+
]
|
|
5679
|
+
},
|
|
5680
|
+
{
|
|
5681
|
+
sources: [
|
|
5682
|
+
{
|
|
5683
|
+
inputIndex: 0,
|
|
5684
|
+
statIndex: 0
|
|
5685
|
+
}
|
|
5686
|
+
]
|
|
5687
|
+
},
|
|
5688
|
+
{
|
|
5689
|
+
sources: [
|
|
4639
5690
|
{
|
|
4640
5691
|
inputIndex: 0,
|
|
4641
5692
|
statIndex: 2
|
|
@@ -5166,27 +6217,27 @@ var recipes = [
|
|
|
5166
6217
|
outputMass: 3840000,
|
|
5167
6218
|
inputs: [
|
|
5168
6219
|
{
|
|
5169
|
-
itemId:
|
|
5170
|
-
quantity:
|
|
6220
|
+
itemId: 20005,
|
|
6221
|
+
quantity: 150
|
|
5171
6222
|
},
|
|
5172
6223
|
{
|
|
5173
|
-
itemId:
|
|
5174
|
-
quantity:
|
|
6224
|
+
itemId: 20002,
|
|
6225
|
+
quantity: 150
|
|
5175
6226
|
},
|
|
5176
6227
|
{
|
|
5177
|
-
itemId:
|
|
5178
|
-
quantity:
|
|
6228
|
+
itemId: 20010,
|
|
6229
|
+
quantity: 150
|
|
5179
6230
|
},
|
|
5180
6231
|
{
|
|
5181
|
-
itemId:
|
|
5182
|
-
quantity:
|
|
6232
|
+
itemId: 20009,
|
|
6233
|
+
quantity: 150
|
|
5183
6234
|
},
|
|
5184
6235
|
{
|
|
5185
|
-
itemId:
|
|
5186
|
-
quantity:
|
|
6236
|
+
itemId: 20004,
|
|
6237
|
+
quantity: 150
|
|
5187
6238
|
},
|
|
5188
6239
|
{
|
|
5189
|
-
itemId:
|
|
6240
|
+
itemId: 10211,
|
|
5190
6241
|
quantity: 1
|
|
5191
6242
|
}
|
|
5192
6243
|
],
|
|
@@ -5206,8 +6257,8 @@ var recipes = [
|
|
|
5206
6257
|
{
|
|
5207
6258
|
sources: [
|
|
5208
6259
|
{
|
|
5209
|
-
inputIndex:
|
|
5210
|
-
statIndex:
|
|
6260
|
+
inputIndex: 1,
|
|
6261
|
+
statIndex: 0
|
|
5211
6262
|
},
|
|
5212
6263
|
{
|
|
5213
6264
|
inputIndex: 5,
|
|
@@ -5217,207 +6268,484 @@ var recipes = [
|
|
|
5217
6268
|
},
|
|
5218
6269
|
{
|
|
5219
6270
|
sources: [
|
|
6271
|
+
{
|
|
6272
|
+
inputIndex: 2,
|
|
6273
|
+
statIndex: 0
|
|
6274
|
+
},
|
|
6275
|
+
{
|
|
6276
|
+
inputIndex: 5,
|
|
6277
|
+
statIndex: 2
|
|
6278
|
+
}
|
|
6279
|
+
]
|
|
6280
|
+
},
|
|
6281
|
+
{
|
|
6282
|
+
sources: [
|
|
6283
|
+
{
|
|
6284
|
+
inputIndex: 3,
|
|
6285
|
+
statIndex: 0
|
|
6286
|
+
},
|
|
6287
|
+
{
|
|
6288
|
+
inputIndex: 5,
|
|
6289
|
+
statIndex: 3
|
|
6290
|
+
}
|
|
5220
6291
|
]
|
|
5221
6292
|
},
|
|
5222
6293
|
{
|
|
5223
6294
|
sources: [
|
|
6295
|
+
{
|
|
6296
|
+
inputIndex: 4,
|
|
6297
|
+
statIndex: 0
|
|
6298
|
+
},
|
|
6299
|
+
{
|
|
6300
|
+
inputIndex: 5,
|
|
6301
|
+
statIndex: 4
|
|
6302
|
+
}
|
|
5224
6303
|
]
|
|
5225
6304
|
}
|
|
5226
6305
|
],
|
|
5227
6306
|
blendWeights: [
|
|
5228
6307
|
],
|
|
5229
|
-
sourceSubclass:
|
|
6308
|
+
sourceSubclass: 10211
|
|
5230
6309
|
},
|
|
5231
6310
|
{
|
|
5232
6311
|
outputItemId: 20211,
|
|
5233
6312
|
outputMass: 3840000,
|
|
5234
6313
|
inputs: [
|
|
5235
6314
|
{
|
|
5236
|
-
itemId:
|
|
5237
|
-
quantity:
|
|
6315
|
+
itemId: 20005,
|
|
6316
|
+
quantity: 150
|
|
5238
6317
|
},
|
|
5239
6318
|
{
|
|
5240
6319
|
itemId: 20002,
|
|
5241
|
-
quantity:
|
|
6320
|
+
quantity: 150
|
|
5242
6321
|
},
|
|
5243
6322
|
{
|
|
5244
|
-
itemId:
|
|
5245
|
-
quantity:
|
|
6323
|
+
itemId: 20010,
|
|
6324
|
+
quantity: 150
|
|
5246
6325
|
},
|
|
5247
6326
|
{
|
|
5248
|
-
itemId:
|
|
5249
|
-
quantity:
|
|
6327
|
+
itemId: 20009,
|
|
6328
|
+
quantity: 150
|
|
6329
|
+
},
|
|
6330
|
+
{
|
|
6331
|
+
itemId: 20004,
|
|
6332
|
+
quantity: 150
|
|
6333
|
+
},
|
|
6334
|
+
{
|
|
6335
|
+
itemId: 10214,
|
|
6336
|
+
quantity: 1
|
|
6337
|
+
}
|
|
6338
|
+
],
|
|
6339
|
+
statSlots: [
|
|
6340
|
+
{
|
|
6341
|
+
sources: [
|
|
6342
|
+
{
|
|
6343
|
+
inputIndex: 0,
|
|
6344
|
+
statIndex: 0
|
|
6345
|
+
},
|
|
6346
|
+
{
|
|
6347
|
+
inputIndex: 5,
|
|
6348
|
+
statIndex: 0
|
|
6349
|
+
}
|
|
6350
|
+
]
|
|
6351
|
+
},
|
|
6352
|
+
{
|
|
6353
|
+
sources: [
|
|
6354
|
+
{
|
|
6355
|
+
inputIndex: 1,
|
|
6356
|
+
statIndex: 0
|
|
6357
|
+
},
|
|
6358
|
+
{
|
|
6359
|
+
inputIndex: 5,
|
|
6360
|
+
statIndex: 1
|
|
6361
|
+
}
|
|
6362
|
+
]
|
|
6363
|
+
},
|
|
6364
|
+
{
|
|
6365
|
+
sources: [
|
|
6366
|
+
{
|
|
6367
|
+
inputIndex: 2,
|
|
6368
|
+
statIndex: 0
|
|
6369
|
+
},
|
|
6370
|
+
{
|
|
6371
|
+
inputIndex: 5,
|
|
6372
|
+
statIndex: 2
|
|
6373
|
+
}
|
|
6374
|
+
]
|
|
6375
|
+
},
|
|
6376
|
+
{
|
|
6377
|
+
sources: [
|
|
6378
|
+
{
|
|
6379
|
+
inputIndex: 3,
|
|
6380
|
+
statIndex: 0
|
|
6381
|
+
},
|
|
6382
|
+
{
|
|
6383
|
+
inputIndex: 5,
|
|
6384
|
+
statIndex: 3
|
|
6385
|
+
}
|
|
6386
|
+
]
|
|
6387
|
+
},
|
|
6388
|
+
{
|
|
6389
|
+
sources: [
|
|
6390
|
+
{
|
|
6391
|
+
inputIndex: 4,
|
|
6392
|
+
statIndex: 0
|
|
6393
|
+
},
|
|
6394
|
+
{
|
|
6395
|
+
inputIndex: 5,
|
|
6396
|
+
statIndex: 4
|
|
6397
|
+
}
|
|
6398
|
+
]
|
|
6399
|
+
}
|
|
6400
|
+
],
|
|
6401
|
+
blendWeights: [
|
|
6402
|
+
],
|
|
6403
|
+
sourceSubclass: 10214
|
|
6404
|
+
}
|
|
6405
|
+
];
|
|
6406
|
+
|
|
6407
|
+
var entities = [
|
|
6408
|
+
{
|
|
6409
|
+
entityItemId: 10200,
|
|
6410
|
+
slots: [
|
|
6411
|
+
],
|
|
6412
|
+
baseHullmass: 100000
|
|
6413
|
+
},
|
|
6414
|
+
{
|
|
6415
|
+
entityItemId: 10201,
|
|
6416
|
+
slots: [
|
|
6417
|
+
{
|
|
6418
|
+
type: "any",
|
|
6419
|
+
outputPct: 80,
|
|
6420
|
+
maxTier: 1
|
|
6421
|
+
},
|
|
6422
|
+
{
|
|
6423
|
+
type: "any",
|
|
6424
|
+
outputPct: 80,
|
|
6425
|
+
maxTier: 1
|
|
6426
|
+
},
|
|
6427
|
+
{
|
|
6428
|
+
type: "any",
|
|
6429
|
+
outputPct: 80,
|
|
6430
|
+
maxTier: 1
|
|
6431
|
+
},
|
|
6432
|
+
{
|
|
6433
|
+
type: "any",
|
|
6434
|
+
outputPct: 80,
|
|
6435
|
+
maxTier: 1
|
|
6436
|
+
},
|
|
6437
|
+
{
|
|
6438
|
+
type: "any",
|
|
6439
|
+
outputPct: 80,
|
|
6440
|
+
maxTier: 1
|
|
6441
|
+
}
|
|
6442
|
+
],
|
|
6443
|
+
baseHullmass: 4000000
|
|
6444
|
+
},
|
|
6445
|
+
{
|
|
6446
|
+
entityItemId: 10202,
|
|
6447
|
+
slots: [
|
|
6448
|
+
{
|
|
6449
|
+
type: "loader",
|
|
6450
|
+
outputPct: 100,
|
|
6451
|
+
maxTier: 1
|
|
6452
|
+
},
|
|
6453
|
+
{
|
|
6454
|
+
type: "storage",
|
|
6455
|
+
outputPct: 100,
|
|
6456
|
+
maxTier: 1
|
|
6457
|
+
},
|
|
6458
|
+
{
|
|
6459
|
+
type: "storage",
|
|
6460
|
+
outputPct: 100,
|
|
6461
|
+
maxTier: 1
|
|
6462
|
+
},
|
|
6463
|
+
{
|
|
6464
|
+
type: "storage",
|
|
6465
|
+
outputPct: 100,
|
|
6466
|
+
maxTier: 1
|
|
6467
|
+
},
|
|
6468
|
+
{
|
|
6469
|
+
type: "storage",
|
|
6470
|
+
outputPct: 100,
|
|
6471
|
+
maxTier: 1
|
|
6472
|
+
}
|
|
6473
|
+
],
|
|
6474
|
+
baseHullmass: 100000
|
|
6475
|
+
},
|
|
6476
|
+
{
|
|
6477
|
+
entityItemId: 10203,
|
|
6478
|
+
slots: [
|
|
6479
|
+
{
|
|
6480
|
+
type: "generator",
|
|
6481
|
+
outputPct: 200,
|
|
6482
|
+
maxTier: 1
|
|
6483
|
+
},
|
|
6484
|
+
{
|
|
6485
|
+
type: "gatherer",
|
|
6486
|
+
outputPct: 200,
|
|
6487
|
+
maxTier: 1
|
|
6488
|
+
}
|
|
6489
|
+
],
|
|
6490
|
+
baseHullmass: 100000
|
|
6491
|
+
},
|
|
6492
|
+
{
|
|
6493
|
+
entityItemId: 10204,
|
|
6494
|
+
slots: [
|
|
6495
|
+
{
|
|
6496
|
+
type: "generator",
|
|
6497
|
+
outputPct: 200,
|
|
6498
|
+
maxTier: 1
|
|
6499
|
+
},
|
|
6500
|
+
{
|
|
6501
|
+
type: "crafter",
|
|
6502
|
+
outputPct: 200,
|
|
6503
|
+
maxTier: 1
|
|
6504
|
+
}
|
|
6505
|
+
],
|
|
6506
|
+
baseHullmass: 100000
|
|
6507
|
+
},
|
|
6508
|
+
{
|
|
6509
|
+
entityItemId: 10205,
|
|
6510
|
+
slots: [
|
|
6511
|
+
{
|
|
6512
|
+
type: "generator",
|
|
6513
|
+
outputPct: 200,
|
|
6514
|
+
maxTier: 1
|
|
6515
|
+
},
|
|
6516
|
+
{
|
|
6517
|
+
type: "launcher",
|
|
6518
|
+
outputPct: 200,
|
|
6519
|
+
maxTier: 1
|
|
6520
|
+
}
|
|
6521
|
+
],
|
|
6522
|
+
baseHullmass: 100000
|
|
6523
|
+
},
|
|
6524
|
+
{
|
|
6525
|
+
entityItemId: 10206,
|
|
6526
|
+
slots: [
|
|
6527
|
+
{
|
|
6528
|
+
type: "storage",
|
|
6529
|
+
outputPct: 100,
|
|
6530
|
+
maxTier: 1
|
|
5250
6531
|
},
|
|
5251
6532
|
{
|
|
5252
|
-
|
|
5253
|
-
|
|
6533
|
+
type: "storage",
|
|
6534
|
+
outputPct: 100,
|
|
6535
|
+
maxTier: 1
|
|
5254
6536
|
},
|
|
5255
6537
|
{
|
|
5256
|
-
|
|
5257
|
-
|
|
6538
|
+
type: "storage",
|
|
6539
|
+
outputPct: 100,
|
|
6540
|
+
maxTier: 1
|
|
5258
6541
|
}
|
|
5259
6542
|
],
|
|
5260
|
-
|
|
6543
|
+
baseHullmass: 100000
|
|
6544
|
+
},
|
|
6545
|
+
{
|
|
6546
|
+
entityItemId: 10207,
|
|
6547
|
+
slots: [
|
|
6548
|
+
],
|
|
6549
|
+
baseHullmass: 100000
|
|
6550
|
+
},
|
|
6551
|
+
{
|
|
6552
|
+
entityItemId: 10208,
|
|
6553
|
+
slots: [
|
|
5261
6554
|
{
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
statIndex: 0
|
|
5266
|
-
},
|
|
5267
|
-
{
|
|
5268
|
-
inputIndex: 5,
|
|
5269
|
-
statIndex: 0
|
|
5270
|
-
}
|
|
5271
|
-
]
|
|
6555
|
+
type: "crafter",
|
|
6556
|
+
outputPct: 75,
|
|
6557
|
+
maxTier: 1
|
|
5272
6558
|
},
|
|
5273
6559
|
{
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
statIndex: 1
|
|
5278
|
-
},
|
|
5279
|
-
{
|
|
5280
|
-
inputIndex: 5,
|
|
5281
|
-
statIndex: 1
|
|
5282
|
-
}
|
|
5283
|
-
]
|
|
6560
|
+
type: "crafter",
|
|
6561
|
+
outputPct: 75,
|
|
6562
|
+
maxTier: 1
|
|
5284
6563
|
},
|
|
5285
6564
|
{
|
|
5286
|
-
|
|
5287
|
-
|
|
6565
|
+
type: "crafter",
|
|
6566
|
+
outputPct: 75,
|
|
6567
|
+
maxTier: 1
|
|
5288
6568
|
},
|
|
5289
6569
|
{
|
|
5290
|
-
|
|
5291
|
-
|
|
6570
|
+
type: "crafter",
|
|
6571
|
+
outputPct: 75,
|
|
6572
|
+
maxTier: 1
|
|
6573
|
+
},
|
|
6574
|
+
{
|
|
6575
|
+
type: "crafter",
|
|
6576
|
+
outputPct: 75,
|
|
6577
|
+
maxTier: 1
|
|
5292
6578
|
}
|
|
5293
6579
|
],
|
|
5294
|
-
|
|
5295
|
-
],
|
|
5296
|
-
sourceSubclass: 10201
|
|
5297
|
-
}
|
|
5298
|
-
];
|
|
5299
|
-
|
|
5300
|
-
var entities = [
|
|
5301
|
-
{
|
|
5302
|
-
entityItemId: 10200,
|
|
5303
|
-
slots: [
|
|
5304
|
-
]
|
|
6580
|
+
baseHullmass: 100000
|
|
5305
6581
|
},
|
|
5306
6582
|
{
|
|
5307
|
-
entityItemId:
|
|
6583
|
+
entityItemId: 10210,
|
|
5308
6584
|
slots: [
|
|
5309
6585
|
{
|
|
5310
|
-
type: "
|
|
6586
|
+
type: "generator",
|
|
5311
6587
|
outputPct: 80,
|
|
5312
6588
|
maxTier: 1
|
|
5313
6589
|
},
|
|
5314
6590
|
{
|
|
5315
|
-
type: "
|
|
6591
|
+
type: "engine",
|
|
5316
6592
|
outputPct: 80,
|
|
5317
6593
|
maxTier: 1
|
|
5318
6594
|
},
|
|
5319
6595
|
{
|
|
5320
6596
|
type: "any",
|
|
5321
|
-
outputPct:
|
|
6597
|
+
outputPct: 60,
|
|
6598
|
+
maxTier: 1
|
|
6599
|
+
}
|
|
6600
|
+
],
|
|
6601
|
+
baseHullmass: 3200000
|
|
6602
|
+
},
|
|
6603
|
+
{
|
|
6604
|
+
entityItemId: 10211,
|
|
6605
|
+
slots: [
|
|
6606
|
+
{
|
|
6607
|
+
type: "generator",
|
|
6608
|
+
outputPct: 85,
|
|
5322
6609
|
maxTier: 1
|
|
5323
6610
|
},
|
|
5324
6611
|
{
|
|
5325
|
-
type: "
|
|
5326
|
-
outputPct:
|
|
6612
|
+
type: "engine",
|
|
6613
|
+
outputPct: 85,
|
|
5327
6614
|
maxTier: 1
|
|
5328
6615
|
},
|
|
5329
6616
|
{
|
|
5330
|
-
type: "
|
|
5331
|
-
outputPct:
|
|
6617
|
+
type: "gatherer",
|
|
6618
|
+
outputPct: 100,
|
|
5332
6619
|
maxTier: 1
|
|
5333
6620
|
}
|
|
5334
|
-
]
|
|
6621
|
+
],
|
|
6622
|
+
baseHullmass: 3600000
|
|
5335
6623
|
},
|
|
5336
6624
|
{
|
|
5337
|
-
entityItemId:
|
|
6625
|
+
entityItemId: 10212,
|
|
5338
6626
|
slots: [
|
|
5339
6627
|
{
|
|
5340
|
-
type: "
|
|
5341
|
-
outputPct:
|
|
6628
|
+
type: "generator",
|
|
6629
|
+
outputPct: 85,
|
|
5342
6630
|
maxTier: 1
|
|
5343
6631
|
},
|
|
5344
6632
|
{
|
|
5345
|
-
type: "
|
|
5346
|
-
outputPct:
|
|
6633
|
+
type: "engine",
|
|
6634
|
+
outputPct: 85,
|
|
5347
6635
|
maxTier: 1
|
|
5348
6636
|
},
|
|
5349
6637
|
{
|
|
5350
|
-
type: "
|
|
6638
|
+
type: "loader",
|
|
5351
6639
|
outputPct: 100,
|
|
5352
6640
|
maxTier: 1
|
|
6641
|
+
}
|
|
6642
|
+
],
|
|
6643
|
+
baseHullmass: 3600000
|
|
6644
|
+
},
|
|
6645
|
+
{
|
|
6646
|
+
entityItemId: 10213,
|
|
6647
|
+
slots: [
|
|
6648
|
+
{
|
|
6649
|
+
type: "generator",
|
|
6650
|
+
outputPct: 85,
|
|
6651
|
+
maxTier: 1
|
|
5353
6652
|
},
|
|
5354
6653
|
{
|
|
5355
|
-
type: "
|
|
5356
|
-
outputPct:
|
|
6654
|
+
type: "engine",
|
|
6655
|
+
outputPct: 85,
|
|
5357
6656
|
maxTier: 1
|
|
5358
6657
|
},
|
|
5359
6658
|
{
|
|
5360
|
-
type: "
|
|
6659
|
+
type: "builder",
|
|
5361
6660
|
outputPct: 100,
|
|
5362
6661
|
maxTier: 1
|
|
5363
6662
|
}
|
|
5364
|
-
]
|
|
6663
|
+
],
|
|
6664
|
+
baseHullmass: 4400000
|
|
5365
6665
|
},
|
|
5366
6666
|
{
|
|
5367
|
-
entityItemId:
|
|
6667
|
+
entityItemId: 10214,
|
|
5368
6668
|
slots: [
|
|
5369
6669
|
{
|
|
5370
6670
|
type: "generator",
|
|
5371
|
-
outputPct:
|
|
6671
|
+
outputPct: 85,
|
|
5372
6672
|
maxTier: 1
|
|
5373
6673
|
},
|
|
5374
6674
|
{
|
|
5375
|
-
type: "
|
|
5376
|
-
outputPct:
|
|
6675
|
+
type: "engine",
|
|
6676
|
+
outputPct: 85,
|
|
6677
|
+
maxTier: 1
|
|
6678
|
+
},
|
|
6679
|
+
{
|
|
6680
|
+
type: "hauler",
|
|
6681
|
+
outputPct: 100,
|
|
5377
6682
|
maxTier: 1
|
|
5378
6683
|
}
|
|
5379
|
-
]
|
|
6684
|
+
],
|
|
6685
|
+
baseHullmass: 4400000
|
|
5380
6686
|
},
|
|
5381
6687
|
{
|
|
5382
|
-
entityItemId:
|
|
6688
|
+
entityItemId: 10215,
|
|
5383
6689
|
slots: [
|
|
5384
6690
|
{
|
|
5385
6691
|
type: "generator",
|
|
5386
|
-
outputPct:
|
|
6692
|
+
outputPct: 85,
|
|
5387
6693
|
maxTier: 1
|
|
5388
6694
|
},
|
|
5389
6695
|
{
|
|
5390
|
-
type: "
|
|
5391
|
-
outputPct:
|
|
6696
|
+
type: "engine",
|
|
6697
|
+
outputPct: 85,
|
|
6698
|
+
maxTier: 1
|
|
6699
|
+
},
|
|
6700
|
+
{
|
|
6701
|
+
type: "storage",
|
|
6702
|
+
outputPct: 100,
|
|
5392
6703
|
maxTier: 1
|
|
5393
6704
|
}
|
|
5394
|
-
]
|
|
6705
|
+
],
|
|
6706
|
+
baseHullmass: 5000000
|
|
5395
6707
|
},
|
|
5396
6708
|
{
|
|
5397
|
-
entityItemId:
|
|
6709
|
+
entityItemId: 10216,
|
|
5398
6710
|
slots: [
|
|
5399
6711
|
{
|
|
5400
6712
|
type: "generator",
|
|
5401
|
-
outputPct:
|
|
6713
|
+
outputPct: 90,
|
|
5402
6714
|
maxTier: 1
|
|
5403
6715
|
},
|
|
5404
6716
|
{
|
|
5405
|
-
type: "
|
|
5406
|
-
outputPct:
|
|
6717
|
+
type: "engine",
|
|
6718
|
+
outputPct: 90,
|
|
6719
|
+
maxTier: 1
|
|
6720
|
+
},
|
|
6721
|
+
{
|
|
6722
|
+
type: "gatherer",
|
|
6723
|
+
outputPct: 100,
|
|
6724
|
+
maxTier: 1
|
|
6725
|
+
},
|
|
6726
|
+
{
|
|
6727
|
+
type: "gatherer",
|
|
6728
|
+
outputPct: 100,
|
|
5407
6729
|
maxTier: 1
|
|
5408
6730
|
}
|
|
5409
|
-
]
|
|
6731
|
+
],
|
|
6732
|
+
baseHullmass: 4000000
|
|
5410
6733
|
},
|
|
5411
6734
|
{
|
|
5412
|
-
entityItemId:
|
|
6735
|
+
entityItemId: 10217,
|
|
5413
6736
|
slots: [
|
|
5414
6737
|
{
|
|
5415
|
-
type: "
|
|
5416
|
-
outputPct:
|
|
6738
|
+
type: "generator",
|
|
6739
|
+
outputPct: 90,
|
|
5417
6740
|
maxTier: 1
|
|
5418
6741
|
},
|
|
5419
6742
|
{
|
|
5420
|
-
type: "
|
|
6743
|
+
type: "engine",
|
|
6744
|
+
outputPct: 90,
|
|
6745
|
+
maxTier: 1
|
|
6746
|
+
},
|
|
6747
|
+
{
|
|
6748
|
+
type: "gatherer",
|
|
5421
6749
|
outputPct: 100,
|
|
5422
6750
|
maxTier: 1
|
|
5423
6751
|
},
|
|
@@ -5426,23 +6754,20 @@ var entities = [
|
|
|
5426
6754
|
outputPct: 100,
|
|
5427
6755
|
maxTier: 1
|
|
5428
6756
|
}
|
|
5429
|
-
]
|
|
5430
|
-
|
|
5431
|
-
{
|
|
5432
|
-
entityItemId: 10207,
|
|
5433
|
-
slots: [
|
|
5434
|
-
]
|
|
6757
|
+
],
|
|
6758
|
+
baseHullmass: 4800000
|
|
5435
6759
|
},
|
|
5436
6760
|
{
|
|
5437
6761
|
entityItemId: 20200,
|
|
5438
6762
|
slots: [
|
|
5439
|
-
]
|
|
6763
|
+
],
|
|
6764
|
+
baseHullmass: 100000
|
|
5440
6765
|
},
|
|
5441
6766
|
{
|
|
5442
6767
|
entityItemId: 20210,
|
|
5443
6768
|
slots: [
|
|
5444
6769
|
{
|
|
5445
|
-
type: "
|
|
6770
|
+
type: "generator",
|
|
5446
6771
|
outputPct: 100,
|
|
5447
6772
|
maxTier: 2
|
|
5448
6773
|
},
|
|
@@ -5452,7 +6777,7 @@ var entities = [
|
|
|
5452
6777
|
maxTier: 2
|
|
5453
6778
|
},
|
|
5454
6779
|
{
|
|
5455
|
-
type: "
|
|
6780
|
+
type: "engine",
|
|
5456
6781
|
outputPct: 100,
|
|
5457
6782
|
maxTier: 2
|
|
5458
6783
|
},
|
|
@@ -5460,24 +6785,20 @@ var entities = [
|
|
|
5460
6785
|
type: "gatherer",
|
|
5461
6786
|
outputPct: 100,
|
|
5462
6787
|
maxTier: 2
|
|
5463
|
-
},
|
|
5464
|
-
{
|
|
5465
|
-
type: "any",
|
|
5466
|
-
outputPct: 80,
|
|
5467
|
-
maxTier: 1
|
|
5468
6788
|
}
|
|
5469
|
-
]
|
|
6789
|
+
],
|
|
6790
|
+
baseHullmass: 5760000
|
|
5470
6791
|
},
|
|
5471
6792
|
{
|
|
5472
6793
|
entityItemId: 20211,
|
|
5473
6794
|
slots: [
|
|
5474
6795
|
{
|
|
5475
|
-
type: "
|
|
6796
|
+
type: "generator",
|
|
5476
6797
|
outputPct: 100,
|
|
5477
6798
|
maxTier: 2
|
|
5478
6799
|
},
|
|
5479
6800
|
{
|
|
5480
|
-
type: "
|
|
6801
|
+
type: "engine",
|
|
5481
6802
|
outputPct: 100,
|
|
5482
6803
|
maxTier: 2
|
|
5483
6804
|
},
|
|
@@ -5491,7 +6812,8 @@ var entities = [
|
|
|
5491
6812
|
outputPct: 100,
|
|
5492
6813
|
maxTier: 2
|
|
5493
6814
|
}
|
|
5494
|
-
]
|
|
6815
|
+
],
|
|
6816
|
+
baseHullmass: 7040000
|
|
5495
6817
|
}
|
|
5496
6818
|
];
|
|
5497
6819
|
|
|
@@ -6016,6 +7338,13 @@ var items = [
|
|
|
6016
7338
|
tier: 1,
|
|
6017
7339
|
subtype: "launcher"
|
|
6018
7340
|
},
|
|
7341
|
+
{
|
|
7342
|
+
id: 10110,
|
|
7343
|
+
mass: 960000,
|
|
7344
|
+
type: "module",
|
|
7345
|
+
tier: 1,
|
|
7346
|
+
subtype: "builder"
|
|
7347
|
+
},
|
|
6019
7348
|
{
|
|
6020
7349
|
id: 10200,
|
|
6021
7350
|
mass: 1900000,
|
|
@@ -6064,6 +7393,60 @@ var items = [
|
|
|
6064
7393
|
type: "entity",
|
|
6065
7394
|
tier: 1
|
|
6066
7395
|
},
|
|
7396
|
+
{
|
|
7397
|
+
id: 10208,
|
|
7398
|
+
mass: 1900000,
|
|
7399
|
+
type: "entity",
|
|
7400
|
+
tier: 1
|
|
7401
|
+
},
|
|
7402
|
+
{
|
|
7403
|
+
id: 10210,
|
|
7404
|
+
mass: 1600000,
|
|
7405
|
+
type: "entity",
|
|
7406
|
+
tier: 1
|
|
7407
|
+
},
|
|
7408
|
+
{
|
|
7409
|
+
id: 10211,
|
|
7410
|
+
mass: 2400000,
|
|
7411
|
+
type: "entity",
|
|
7412
|
+
tier: 1
|
|
7413
|
+
},
|
|
7414
|
+
{
|
|
7415
|
+
id: 10212,
|
|
7416
|
+
mass: 2400000,
|
|
7417
|
+
type: "entity",
|
|
7418
|
+
tier: 1
|
|
7419
|
+
},
|
|
7420
|
+
{
|
|
7421
|
+
id: 10213,
|
|
7422
|
+
mass: 2400000,
|
|
7423
|
+
type: "entity",
|
|
7424
|
+
tier: 1
|
|
7425
|
+
},
|
|
7426
|
+
{
|
|
7427
|
+
id: 10214,
|
|
7428
|
+
mass: 2400000,
|
|
7429
|
+
type: "entity",
|
|
7430
|
+
tier: 1
|
|
7431
|
+
},
|
|
7432
|
+
{
|
|
7433
|
+
id: 10215,
|
|
7434
|
+
mass: 2400000,
|
|
7435
|
+
type: "entity",
|
|
7436
|
+
tier: 1
|
|
7437
|
+
},
|
|
7438
|
+
{
|
|
7439
|
+
id: 10216,
|
|
7440
|
+
mass: 3600000,
|
|
7441
|
+
type: "entity",
|
|
7442
|
+
tier: 1
|
|
7443
|
+
},
|
|
7444
|
+
{
|
|
7445
|
+
id: 10217,
|
|
7446
|
+
mass: 3600000,
|
|
7447
|
+
type: "entity",
|
|
7448
|
+
tier: 1
|
|
7449
|
+
},
|
|
6067
7450
|
{
|
|
6068
7451
|
id: 20001,
|
|
6069
7452
|
mass: 4800,
|
|
@@ -6327,7 +7710,7 @@ const itemMetadata = {
|
|
|
6327
7710
|
},
|
|
6328
7711
|
10106: {
|
|
6329
7712
|
name: 'Tractor Beam',
|
|
6330
|
-
description: 'Projects a haul beam to lock onto and transport containers
|
|
7713
|
+
description: 'Projects a haul beam to lock onto and transport containers through group travel.',
|
|
6331
7714
|
color: '#4ADBFF',
|
|
6332
7715
|
},
|
|
6333
7716
|
10107: {
|
|
@@ -6345,13 +7728,18 @@ const itemMetadata = {
|
|
|
6345
7728
|
description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
|
|
6346
7729
|
color: '#E86344',
|
|
6347
7730
|
},
|
|
7731
|
+
10110: {
|
|
7732
|
+
name: 'Assembly Arm',
|
|
7733
|
+
description: 'Heavy manipulator arms for on-site construction work. Claims build sites, builds them out, and upgrades ships in place.',
|
|
7734
|
+
color: '#FFB347',
|
|
7735
|
+
},
|
|
6348
7736
|
10200: {
|
|
6349
7737
|
name: 'Container',
|
|
6350
7738
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
6351
7739
|
color: '#7B8D9E',
|
|
6352
7740
|
},
|
|
6353
7741
|
10201: {
|
|
6354
|
-
name: '
|
|
7742
|
+
name: 'Ship',
|
|
6355
7743
|
description: 'General-purpose vessel with 5 module slots.',
|
|
6356
7744
|
color: '#4AE898',
|
|
6357
7745
|
},
|
|
@@ -6385,6 +7773,51 @@ const itemMetadata = {
|
|
|
6385
7773
|
description: 'Orbital command structure. Anchors a player station cluster.',
|
|
6386
7774
|
color: '#A0B8D0',
|
|
6387
7775
|
},
|
|
7776
|
+
10208: {
|
|
7777
|
+
name: 'Workshop',
|
|
7778
|
+
description: 'A station workshop with five independent workers. Visiting ships bring materials and power, and the workshop does the crafting.',
|
|
7779
|
+
color: '#B877FF',
|
|
7780
|
+
},
|
|
7781
|
+
10210: {
|
|
7782
|
+
name: 'Roustabout',
|
|
7783
|
+
description: 'A basic starter ship. One engine, one power core, and one open slot to fit as you like.',
|
|
7784
|
+
color: '#4AE898',
|
|
7785
|
+
},
|
|
7786
|
+
10211: {
|
|
7787
|
+
name: 'Prospector',
|
|
7788
|
+
description: 'A light gathering ship. One engine, one power core, one gathering rig.',
|
|
7789
|
+
color: '#4AE898',
|
|
7790
|
+
},
|
|
7791
|
+
10212: {
|
|
7792
|
+
name: 'Tender',
|
|
7793
|
+
description: 'A logistics ship with a shuttle bay for moving cargo between ships and stations.',
|
|
7794
|
+
color: '#4AE898',
|
|
7795
|
+
},
|
|
7796
|
+
10213: {
|
|
7797
|
+
name: 'Wright',
|
|
7798
|
+
description: 'A construction ship with an assembly arm for building structures and upgrading ships.',
|
|
7799
|
+
color: '#4AE898',
|
|
7800
|
+
},
|
|
7801
|
+
10214: {
|
|
7802
|
+
name: 'Tug',
|
|
7803
|
+
description: 'A logistics ship with a tractor beam for towing containers from place to place.',
|
|
7804
|
+
color: '#4AE898',
|
|
7805
|
+
},
|
|
7806
|
+
10215: {
|
|
7807
|
+
name: 'Porter',
|
|
7808
|
+
description: 'A cargo ship built around a large storage hold. The extra mass makes it slower than a Roustabout.',
|
|
7809
|
+
color: '#4AE898',
|
|
7810
|
+
},
|
|
7811
|
+
10216: {
|
|
7812
|
+
name: 'Wrangler',
|
|
7813
|
+
description: 'A heavy gathering ship with two gathering rigs, so it mines faster.',
|
|
7814
|
+
color: '#4AE898',
|
|
7815
|
+
},
|
|
7816
|
+
10217: {
|
|
7817
|
+
name: 'Dredger',
|
|
7818
|
+
description: 'A gathering ship with its own storage hold, so it can keep mining before it has to offload.',
|
|
7819
|
+
color: '#4AE898',
|
|
7820
|
+
},
|
|
6388
7821
|
20001: {
|
|
6389
7822
|
name: 'Plate',
|
|
6390
7823
|
description: 'Advanced structural plating reinforced with tier 2 ore.',
|
|
@@ -6456,13 +7889,21 @@ const itemMetadata = {
|
|
|
6456
7889
|
color: '#4AE898',
|
|
6457
7890
|
},
|
|
6458
7891
|
20211: {
|
|
6459
|
-
name: '
|
|
7892
|
+
name: 'Tug',
|
|
6460
7893
|
description: 'Advanced towing vessel with tiered engine, generator, and tractor beam slots.',
|
|
6461
7894
|
color: '#4AE898',
|
|
6462
7895
|
},
|
|
6463
7896
|
};
|
|
6464
7897
|
const entityMetadata = {
|
|
6465
7898
|
10201: { moduleSlotLabels: ['Engine', 'Power Core', 'Limpet Bay', 'Shuttle Bay', 'Cargo Hold'] },
|
|
7899
|
+
10210: { moduleSlotLabels: ['Power Core', 'Engine', 'Utility Bay'] },
|
|
7900
|
+
10211: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
|
|
7901
|
+
10212: { moduleSlotLabels: ['Power Core', 'Engine', 'Shuttle Bay'] },
|
|
7902
|
+
10213: { moduleSlotLabels: ['Power Core', 'Engine', 'Assembly Arm'] },
|
|
7903
|
+
10214: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam'] },
|
|
7904
|
+
10215: { moduleSlotLabels: ['Power Core', 'Engine', 'Cargo Hold'] },
|
|
7905
|
+
10216: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Limpet Bay'] },
|
|
7906
|
+
10217: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
|
|
6466
7907
|
10202: {
|
|
6467
7908
|
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
6468
7909
|
},
|
|
@@ -6470,8 +7911,11 @@ const entityMetadata = {
|
|
|
6470
7911
|
10204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
6471
7912
|
10205: { moduleSlotLabels: ['Power Core', 'Drive Coil'] },
|
|
6472
7913
|
10206: { moduleSlotLabels: ['Cargo Hold', 'Cargo Hold', 'Cargo Hold'] },
|
|
6473
|
-
|
|
6474
|
-
|
|
7914
|
+
10208: {
|
|
7915
|
+
moduleSlotLabels: ['Fabricator', 'Fabricator', 'Fabricator', 'Fabricator', 'Fabricator'],
|
|
7916
|
+
},
|
|
7917
|
+
20210: { moduleSlotLabels: ['Power Core', 'Power Core', 'Engine', 'Limpet Bay'] },
|
|
7918
|
+
20211: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam', 'Tractor Beam'] },
|
|
6475
7919
|
};
|
|
6476
7920
|
for (const item of items) {
|
|
6477
7921
|
if (!itemMetadata[item.id]) {
|
|
@@ -9362,14 +10806,61 @@ var kinds = [
|
|
|
9362
10806
|
capabilityFlags: 4,
|
|
9363
10807
|
zCoord: 0,
|
|
9364
10808
|
defaultLabel: "Station Hub"
|
|
10809
|
+
},
|
|
10810
|
+
{
|
|
10811
|
+
kind: "workshop",
|
|
10812
|
+
classification: "OrbitalStructure",
|
|
10813
|
+
capabilityFlags: 20,
|
|
10814
|
+
zCoord: 0,
|
|
10815
|
+
defaultLabel: "Workshop"
|
|
9365
10816
|
}
|
|
9366
10817
|
];
|
|
9367
10818
|
var templates = [
|
|
9368
10819
|
{
|
|
9369
10820
|
itemId: 10201,
|
|
9370
10821
|
kind: "ship",
|
|
10822
|
+
displayLabel: "Ship"
|
|
10823
|
+
},
|
|
10824
|
+
{
|
|
10825
|
+
itemId: 10210,
|
|
10826
|
+
kind: "ship",
|
|
9371
10827
|
displayLabel: "Roustabout"
|
|
9372
10828
|
},
|
|
10829
|
+
{
|
|
10830
|
+
itemId: 10211,
|
|
10831
|
+
kind: "ship",
|
|
10832
|
+
displayLabel: "Prospector"
|
|
10833
|
+
},
|
|
10834
|
+
{
|
|
10835
|
+
itemId: 10212,
|
|
10836
|
+
kind: "ship",
|
|
10837
|
+
displayLabel: "Tender"
|
|
10838
|
+
},
|
|
10839
|
+
{
|
|
10840
|
+
itemId: 10213,
|
|
10841
|
+
kind: "ship",
|
|
10842
|
+
displayLabel: "Wright"
|
|
10843
|
+
},
|
|
10844
|
+
{
|
|
10845
|
+
itemId: 10214,
|
|
10846
|
+
kind: "ship",
|
|
10847
|
+
displayLabel: "Tug"
|
|
10848
|
+
},
|
|
10849
|
+
{
|
|
10850
|
+
itemId: 10215,
|
|
10851
|
+
kind: "ship",
|
|
10852
|
+
displayLabel: "Porter"
|
|
10853
|
+
},
|
|
10854
|
+
{
|
|
10855
|
+
itemId: 10216,
|
|
10856
|
+
kind: "ship",
|
|
10857
|
+
displayLabel: "Wrangler"
|
|
10858
|
+
},
|
|
10859
|
+
{
|
|
10860
|
+
itemId: 10217,
|
|
10861
|
+
kind: "ship",
|
|
10862
|
+
displayLabel: "Dredger"
|
|
10863
|
+
},
|
|
9373
10864
|
{
|
|
9374
10865
|
itemId: 10202,
|
|
9375
10866
|
kind: "warehouse",
|
|
@@ -9410,6 +10901,11 @@ var templates = [
|
|
|
9410
10901
|
kind: "hub",
|
|
9411
10902
|
displayLabel: ""
|
|
9412
10903
|
},
|
|
10904
|
+
{
|
|
10905
|
+
itemId: 10208,
|
|
10906
|
+
kind: "workshop",
|
|
10907
|
+
displayLabel: ""
|
|
10908
|
+
},
|
|
9413
10909
|
{
|
|
9414
10910
|
itemId: 20210,
|
|
9415
10911
|
kind: "ship",
|
|
@@ -9418,7 +10914,7 @@ var templates = [
|
|
|
9418
10914
|
{
|
|
9419
10915
|
itemId: 20211,
|
|
9420
10916
|
kind: "ship",
|
|
9421
|
-
displayLabel: "
|
|
10917
|
+
displayLabel: "Tug"
|
|
9422
10918
|
}
|
|
9423
10919
|
];
|
|
9424
10920
|
var kindRegistryJson = {
|
|
@@ -9502,6 +10998,7 @@ const ENTITY_SHIP = Name.from('ship');
|
|
|
9502
10998
|
const ENTITY_WAREHOUSE = Name.from('warehouse');
|
|
9503
10999
|
const ENTITY_EXTRACTOR = Name.from('extractor');
|
|
9504
11000
|
const ENTITY_FACTORY = Name.from('factory');
|
|
11001
|
+
const ENTITY_WORKSHOP = Name.from('workshop');
|
|
9505
11002
|
const ENTITY_CONTAINER = Name.from('container');
|
|
9506
11003
|
const ENTITY_NEXUS = Name.from('nexus');
|
|
9507
11004
|
const ENTITY_PLOT = Name.from('plot');
|
|
@@ -9520,6 +11017,9 @@ function isExtractor(entity) {
|
|
|
9520
11017
|
function isFactory(entity) {
|
|
9521
11018
|
return entity.type?.equals(ENTITY_FACTORY) ?? false;
|
|
9522
11019
|
}
|
|
11020
|
+
function isWorkshop(entity) {
|
|
11021
|
+
return entity.type?.equals(ENTITY_WORKSHOP) ?? false;
|
|
11022
|
+
}
|
|
9523
11023
|
function isContainer(entity) {
|
|
9524
11024
|
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
9525
11025
|
}
|
|
@@ -10001,7 +11501,7 @@ function distanceBetweenCoordinates(origin, destination) {
|
|
|
10001
11501
|
function distanceBetweenPoints(x1, y1, x2, y2) {
|
|
10002
11502
|
const x = (x1 - x2) ** 2;
|
|
10003
11503
|
const y = (y1 - y2) ** 2;
|
|
10004
|
-
return UInt64.from(Math.sqrt(x + y) * PRECISION
|
|
11504
|
+
return UInt64.from(Math.sqrt(x + y) * PRECISION);
|
|
10005
11505
|
}
|
|
10006
11506
|
function lerp$1(origin, destination, time) {
|
|
10007
11507
|
return {
|
|
@@ -10047,9 +11547,9 @@ function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
|
10047
11547
|
function rotation(origin, destination) {
|
|
10048
11548
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
10049
11549
|
}
|
|
10050
|
-
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION
|
|
11550
|
+
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
|
|
10051
11551
|
const nearbySystems = [];
|
|
10052
|
-
const max = UInt64.from(maxDistance / PRECISION
|
|
11552
|
+
const max = UInt64.from(maxDistance / PRECISION);
|
|
10053
11553
|
const xMin = Int64.from(origin.x).subtracting(max);
|
|
10054
11554
|
const xMax = Int64.from(origin.x).adding(max);
|
|
10055
11555
|
const yMin = Int64.from(origin.y).subtracting(max);
|
|
@@ -10081,14 +11581,22 @@ function calc_rechargetime(capacity, energy, recharge) {
|
|
|
10081
11581
|
function calc_ship_rechargetime(ship) {
|
|
10082
11582
|
if (!ship.generator)
|
|
10083
11583
|
return UInt32.from(0);
|
|
10084
|
-
return calc_rechargetime(ship.generator.capacity, ship.energy ??
|
|
11584
|
+
return calc_rechargetime(ship.generator.capacity, ship.energy ?? UInt32.from(0), ship.generator.recharge);
|
|
10085
11585
|
}
|
|
10086
11586
|
function calc_flighttime(distance, acceleration) {
|
|
10087
11587
|
return UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
|
|
10088
11588
|
}
|
|
11589
|
+
function calc_travel_flighttime(distance, acceleration) {
|
|
11590
|
+
const cruiseTransitionDistance = 2 * PRECISION;
|
|
11591
|
+
if (Number(distance) <= cruiseTransitionDistance) {
|
|
11592
|
+
return calc_flighttime(distance, acceleration);
|
|
11593
|
+
}
|
|
11594
|
+
const cruiseVelocity = Math.sqrt(acceleration * cruiseTransitionDistance);
|
|
11595
|
+
return UInt32.from(Number(distance) / cruiseVelocity + cruiseVelocity / acceleration);
|
|
11596
|
+
}
|
|
10089
11597
|
function calc_transit_duration(ax, ay, bx, by) {
|
|
10090
11598
|
const distance = distanceBetweenPoints(ax, ay, bx, by);
|
|
10091
|
-
return UInt32.from(Math.floor(distance.toNumber() / (PRECISION
|
|
11599
|
+
return UInt32.from(Math.floor(distance.toNumber() / (PRECISION * WH.TRANSIT_SPEED)));
|
|
10092
11600
|
}
|
|
10093
11601
|
function shipLoaderLane(ship) {
|
|
10094
11602
|
const lanes = ship.loader_lanes ?? [];
|
|
@@ -10112,14 +11620,14 @@ function calc_loader_acceleration(ship, mass) {
|
|
|
10112
11620
|
}
|
|
10113
11621
|
function calc_ship_flighttime(ship, mass, distance) {
|
|
10114
11622
|
const acceleration = calc_ship_acceleration(ship, mass);
|
|
10115
|
-
return
|
|
11623
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10116
11624
|
}
|
|
10117
11625
|
function calc_ship_acceleration(ship, mass) {
|
|
10118
11626
|
const thrust = ship.engines ? Number(ship.engines.thrust) : 0;
|
|
10119
11627
|
return calc_acceleration(thrust, Number(mass));
|
|
10120
11628
|
}
|
|
10121
11629
|
function calc_acceleration(thrust, mass) {
|
|
10122
|
-
return (thrust / mass) * PRECISION
|
|
11630
|
+
return (thrust / mass) * PRECISION;
|
|
10123
11631
|
}
|
|
10124
11632
|
function calc_ship_mass(ship, cargos) {
|
|
10125
11633
|
const mass = UInt64.from(0);
|
|
@@ -10145,10 +11653,10 @@ function calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHa
|
|
|
10145
11653
|
effectiveThrust = Math.trunc((totalThrust * 1000) / penaltyMilli);
|
|
10146
11654
|
}
|
|
10147
11655
|
const acceleration = calc_acceleration(effectiveThrust, totalMass);
|
|
10148
|
-
return
|
|
11656
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10149
11657
|
}
|
|
10150
11658
|
function calc_energyusage(distance, drain) {
|
|
10151
|
-
return UInt64.from(distance).
|
|
11659
|
+
return UInt64.from(distance).multiplying(drain).dividing(PRECISION);
|
|
10152
11660
|
}
|
|
10153
11661
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
10154
11662
|
let mass = UInt64.from(0);
|
|
@@ -10248,7 +11756,7 @@ function estimateDealTravelTime(ship, shipMass, distance, loadMass) {
|
|
|
10248
11756
|
function hasEnergyForDistance(ship, distance) {
|
|
10249
11757
|
if (!ship.engines)
|
|
10250
11758
|
return false;
|
|
10251
|
-
const energyNeeded = UInt64.from(distance).dividing(PRECISION
|
|
11759
|
+
const energyNeeded = UInt64.from(distance).dividing(PRECISION).multiplying(ship.engines.drain);
|
|
10252
11760
|
return UInt64.from(ship.energy ?? 0).gte(energyNeeded);
|
|
10253
11761
|
}
|
|
10254
11762
|
function toNum$1(v) {
|
|
@@ -10955,6 +12463,8 @@ function getItemStatKeys(itemId) {
|
|
|
10955
12463
|
return [];
|
|
10956
12464
|
return getStatDefinitions(item.category).map((d) => d.key);
|
|
10957
12465
|
}
|
|
12466
|
+
if (itemId === ITEM_SHIP_T1_PACKED)
|
|
12467
|
+
return ['strength', 'density', '', ''];
|
|
10958
12468
|
const recipe = getRecipe(itemId);
|
|
10959
12469
|
if (!recipe)
|
|
10960
12470
|
return [];
|
|
@@ -11765,6 +13275,7 @@ const MODULE_LAUNCHER = 7;
|
|
|
11765
13275
|
const MODULE_STORAGE = 8;
|
|
11766
13276
|
const MODULE_HAULER = 9;
|
|
11767
13277
|
const MODULE_BATTERY = 10;
|
|
13278
|
+
const MODULE_BUILDER = 12;
|
|
11768
13279
|
function moduleAccepts(slotType, moduleType) {
|
|
11769
13280
|
return slotType === MODULE_ANY || slotType === moduleType;
|
|
11770
13281
|
}
|
|
@@ -11781,6 +13292,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
11781
13292
|
return MODULE_LOADER;
|
|
11782
13293
|
case ITEM_CRAFTER_T1:
|
|
11783
13294
|
return MODULE_CRAFTER;
|
|
13295
|
+
case ITEM_BUILDER_T1:
|
|
13296
|
+
return MODULE_BUILDER;
|
|
11784
13297
|
case ITEM_STORAGE_T1:
|
|
11785
13298
|
return MODULE_STORAGE;
|
|
11786
13299
|
case ITEM_HAULER_T1:
|
|
@@ -11815,6 +13328,8 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
11815
13328
|
return MODULE_WARP;
|
|
11816
13329
|
case 'crafter':
|
|
11817
13330
|
return MODULE_CRAFTER;
|
|
13331
|
+
case 'builder':
|
|
13332
|
+
return MODULE_BUILDER;
|
|
11818
13333
|
case 'launcher':
|
|
11819
13334
|
return MODULE_LAUNCHER;
|
|
11820
13335
|
case 'storage':
|
|
@@ -13458,7 +14973,7 @@ const UINT32_MAX = 4294967295;
|
|
|
13458
14973
|
const UINT32_MAX_BIGINT = 4294967295n;
|
|
13459
14974
|
const UINT32_MOD = 4294967296n;
|
|
13460
14975
|
const UINT64_MAX = 18446744073709551615n;
|
|
13461
|
-
const PRECISION_BIGINT = BigInt(PRECISION
|
|
14976
|
+
const PRECISION_BIGINT = BigInt(PRECISION);
|
|
13462
14977
|
function toNumber(value) {
|
|
13463
14978
|
if (typeof value === 'number')
|
|
13464
14979
|
return Math.trunc(value);
|
|
@@ -13507,7 +15022,7 @@ function calcDistance(origin, destination) {
|
|
|
13507
15022
|
const b = Coordinates.from(destination);
|
|
13508
15023
|
const dx = toNumber(a.x) - toNumber(b.x);
|
|
13509
15024
|
const dy = toNumber(a.y) - toNumber(b.y);
|
|
13510
|
-
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
15025
|
+
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION));
|
|
13511
15026
|
}
|
|
13512
15027
|
function calcCargoItemMassUint32(item) {
|
|
13513
15028
|
let mass = toUint32(BigInt(getItem(item.item_id).mass) * toUint32(toBigInt(item.quantity)));
|
|
@@ -13577,10 +15092,10 @@ class ActionsManager extends BaseManager {
|
|
|
13577
15092
|
recharge,
|
|
13578
15093
|
});
|
|
13579
15094
|
}
|
|
13580
|
-
|
|
15095
|
+
travelplan(entities, waypoints, recharge = true) {
|
|
13581
15096
|
const entityRefs = this.entityRefs(entities);
|
|
13582
15097
|
const wps = waypoints.map((w) => Types.route_waypoint.from({ x: Int64.from(w.x), y: Int64.from(w.y) }));
|
|
13583
|
-
return this.server.action('
|
|
15098
|
+
return this.server.action('travelplan', {
|
|
13584
15099
|
entities: entityRefs,
|
|
13585
15100
|
waypoints: wps,
|
|
13586
15101
|
recharge,
|
|
@@ -13667,6 +15182,14 @@ class ActionsManager extends BaseManager {
|
|
|
13667
15182
|
items,
|
|
13668
15183
|
});
|
|
13669
15184
|
}
|
|
15185
|
+
shuttle(carrierId, fromId, toId, items) {
|
|
15186
|
+
return this.server.action('shuttle', {
|
|
15187
|
+
carrier: UInt64.from(carrierId),
|
|
15188
|
+
from_id: UInt64.from(fromId),
|
|
15189
|
+
to_id: UInt64.from(toId),
|
|
15190
|
+
items,
|
|
15191
|
+
});
|
|
15192
|
+
}
|
|
13670
15193
|
launch(launcherId, catcherId, items) {
|
|
13671
15194
|
return this.server.action('launch', {
|
|
13672
15195
|
launcher_id: UInt64.from(launcherId),
|
|
@@ -13715,26 +15238,16 @@ class ActionsManager extends BaseManager {
|
|
|
13715
15238
|
}
|
|
13716
15239
|
return this.server.action('gather', params);
|
|
13717
15240
|
}
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
|
|
13721
|
-
|
|
13722
|
-
|
|
13723
|
-
|
|
13724
|
-
|
|
15241
|
+
gatherplan(sourceId, destinationId, stratum, quantity, recharge = true, slots = []) {
|
|
15242
|
+
return this.server.action('gatherplan', {
|
|
15243
|
+
source_id: UInt64.from(sourceId),
|
|
15244
|
+
destination_id: UInt64.from(destinationId),
|
|
15245
|
+
stratum: UInt16.from(stratum),
|
|
15246
|
+
quantity: UInt32.from(quantity),
|
|
15247
|
+
recharge,
|
|
15248
|
+
slots: Bytes.from(slots),
|
|
13725
15249
|
});
|
|
13726
15250
|
}
|
|
13727
|
-
flattenGatherPlan(plan, ctx) {
|
|
13728
|
-
const actions = [];
|
|
13729
|
-
for (const cycle of plan.cycles) {
|
|
13730
|
-
if (cycle.rechargeBefore)
|
|
13731
|
-
actions.push(this.recharge(ctx.sourceId));
|
|
13732
|
-
for (const limpet of cycle.limpets) {
|
|
13733
|
-
actions.push(this.gather(ctx.sourceId, ctx.destinationId, ctx.stratum, limpet.quantity, limpet.slot));
|
|
13734
|
-
}
|
|
13735
|
-
}
|
|
13736
|
-
return actions;
|
|
13737
|
-
}
|
|
13738
15251
|
warp(entityId, destination) {
|
|
13739
15252
|
const x = Int64.from(destination.x);
|
|
13740
15253
|
const y = Int64.from(destination.y);
|
|
@@ -13759,6 +15272,39 @@ class ActionsManager extends BaseManager {
|
|
|
13759
15272
|
}
|
|
13760
15273
|
return this.server.action('craft', params);
|
|
13761
15274
|
}
|
|
15275
|
+
craftjob(shipId, workshopId, slot, recipeId, quantity, inputs) {
|
|
15276
|
+
const params = {
|
|
15277
|
+
ship_id: UInt64.from(shipId),
|
|
15278
|
+
workshop_id: UInt64.from(workshopId),
|
|
15279
|
+
slot: UInt8.from(slot),
|
|
15280
|
+
recipe_id: UInt16.from(recipeId),
|
|
15281
|
+
quantity: UInt32.from(quantity),
|
|
15282
|
+
inputs,
|
|
15283
|
+
};
|
|
15284
|
+
return this.server.action('craftjob', params);
|
|
15285
|
+
}
|
|
15286
|
+
claimjob(jobId, shipId) {
|
|
15287
|
+
const params = {
|
|
15288
|
+
job_id: UInt64.from(jobId),
|
|
15289
|
+
ship_id: UInt64.from(shipId),
|
|
15290
|
+
};
|
|
15291
|
+
return this.server.action('claimjob', params);
|
|
15292
|
+
}
|
|
15293
|
+
canceljob(jobId, shipId) {
|
|
15294
|
+
const params = {
|
|
15295
|
+
job_id: UInt64.from(jobId),
|
|
15296
|
+
ship_id: UInt64.from(shipId),
|
|
15297
|
+
};
|
|
15298
|
+
return this.server.action('canceljob', params);
|
|
15299
|
+
}
|
|
15300
|
+
setsocket(workshopId, slot, open) {
|
|
15301
|
+
const params = {
|
|
15302
|
+
workshop_id: UInt64.from(workshopId),
|
|
15303
|
+
slot: UInt8.from(slot),
|
|
15304
|
+
open,
|
|
15305
|
+
};
|
|
15306
|
+
return this.server.action('setsocket', params);
|
|
15307
|
+
}
|
|
13762
15308
|
blend(entityId, inputs) {
|
|
13763
15309
|
return this.server.action('blend', {
|
|
13764
15310
|
id: UInt64.from(entityId),
|
|
@@ -14673,6 +16219,15 @@ class Shipload {
|
|
|
14673
16219
|
}
|
|
14674
16220
|
}
|
|
14675
16221
|
|
|
16222
|
+
const MODULE_STAT_SCALING_ANCHOR = 213;
|
|
16223
|
+
const MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = 40;
|
|
16224
|
+
function computeEffectiveModuleStat(stat) {
|
|
16225
|
+
if (stat <= MODULE_STAT_SCALING_ANCHOR)
|
|
16226
|
+
return stat;
|
|
16227
|
+
return (MODULE_STAT_SCALING_ANCHOR +
|
|
16228
|
+
Math.floor(((stat - MODULE_STAT_SCALING_ANCHOR) * MODULE_STAT_SCALING_POST_ANCHOR_PERCENT) / 100));
|
|
16229
|
+
}
|
|
16230
|
+
|
|
14676
16231
|
const U16_MAX = 65535;
|
|
14677
16232
|
function packedModulesToInstalled(entries) {
|
|
14678
16233
|
const installed = [];
|
|
@@ -14704,13 +16259,27 @@ function getSlotAmp(layout, slotIndex) {
|
|
|
14704
16259
|
function idiv(a, b) {
|
|
14705
16260
|
return Math.floor(a / b);
|
|
14706
16261
|
}
|
|
14707
|
-
function
|
|
16262
|
+
function toWholeEnergy$1(milli) {
|
|
16263
|
+
return idiv(milli + 500, 1000);
|
|
16264
|
+
}
|
|
16265
|
+
function isShipHull$1(itemId) {
|
|
16266
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16267
|
+
}
|
|
16268
|
+
function sumPackedShipChannels(stats) {
|
|
16269
|
+
let sum = 0;
|
|
16270
|
+
for (let slot = 0; slot < 5; slot++)
|
|
16271
|
+
sum += decodeStat(stats, slot);
|
|
16272
|
+
return sum;
|
|
16273
|
+
}
|
|
16274
|
+
function computeBaseHullmass$1(itemId, stats) {
|
|
16275
|
+
if (isShipHull$1(itemId)) {
|
|
16276
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumPackedShipChannels(stats))) / 10000);
|
|
16277
|
+
}
|
|
14708
16278
|
const density = decodeStat(stats, 1);
|
|
14709
|
-
return
|
|
16279
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - density)) / 2000);
|
|
14710
16280
|
}
|
|
14711
16281
|
function computeBaseCapacityShip(stats) {
|
|
14712
|
-
|
|
14713
|
-
return Math.floor(5000000 * 6 ** (s / 1998));
|
|
16282
|
+
return Math.floor(5000000 * 6 ** (sumPackedShipChannels(stats) / 4995));
|
|
14714
16283
|
}
|
|
14715
16284
|
function computeBaseCapacityContainer(stats) {
|
|
14716
16285
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
@@ -14722,35 +16291,57 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
14722
16291
|
}
|
|
14723
16292
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
14724
16293
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
14725
|
-
const ENGINE_DRAIN_BASE =
|
|
16294
|
+
const ENGINE_DRAIN_BASE = 156;
|
|
14726
16295
|
const ENGINE_DRAIN_REF_THRUST = 775;
|
|
14727
16296
|
const ENGINE_DRAIN_REF_THM = 500;
|
|
14728
16297
|
const computeTravelDrain = (totalThrust, avgThm) => {
|
|
14729
16298
|
if (totalThrust <= 0)
|
|
14730
16299
|
return 0;
|
|
14731
|
-
const
|
|
14732
|
-
const
|
|
14733
|
-
return
|
|
16300
|
+
const thermalFactor = computeEngineDrain(avgThm) / computeEngineDrain(ENGINE_DRAIN_REF_THM);
|
|
16301
|
+
const thrustFactor = Math.sqrt(ENGINE_DRAIN_REF_THRUST / totalThrust);
|
|
16302
|
+
return Math.floor(ENGINE_DRAIN_BASE * 1000 * thermalFactor * thrustFactor);
|
|
14734
16303
|
};
|
|
14735
|
-
const computeGeneratorCap = (com) =>
|
|
14736
|
-
const computeGeneratorRech = (fin) =>
|
|
16304
|
+
const computeGeneratorCap = (com) => 1300000 + com * 500;
|
|
16305
|
+
const computeGeneratorRech = (fin) => 2000 + fin * 6;
|
|
14737
16306
|
const computeGathererYield = (str) => 200 + str;
|
|
14738
|
-
const computeGathererDrain = (con) => 2 * Math.max(
|
|
16307
|
+
const computeGathererDrain = (con) => 2 * Math.max(250000, 1250000 - con * 1250);
|
|
14739
16308
|
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
14740
16309
|
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
14741
16310
|
const computeLoaderThrust = (pla) => 1 + idiv(pla * pla, 10000);
|
|
14742
16311
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
14743
|
-
const computeCrafterDrain = (fin) => Math.max(
|
|
16312
|
+
const computeCrafterDrain = (fin) => Math.max(5000, 30000 - idiv(fin * 1000, 33));
|
|
16313
|
+
const computeBuilderSpeed = (resonance) => 100 + idiv(resonance * 4, 5);
|
|
16314
|
+
const computeBuilderDrain = (fineness) => Math.max(5000, 30000 - idiv(fineness * 1000, 33));
|
|
14744
16315
|
const computeHaulerCapacity = (fin, tier) => Math.max(tier, tier + idiv(fin, 400));
|
|
14745
16316
|
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
14746
|
-
const
|
|
16317
|
+
const supportDrainTierPercent = (tier) => {
|
|
16318
|
+
const clampedTier = Math.min(10, Math.max(1, Math.trunc(tier)));
|
|
16319
|
+
return Math.max(50, 110 - clampedTier * 10);
|
|
16320
|
+
};
|
|
16321
|
+
const computeT1LogisticsDrain = (stat) => Math.max(3000, 15000 - Math.min(12000, idiv(stat * 1000, 80)));
|
|
16322
|
+
const computeHaulerDrain = (conductivity, tier) => idiv(computeT1LogisticsDrain(conductivity) * supportDrainTierPercent(tier), 100);
|
|
16323
|
+
const computeCargoBayDrain = (cohesion, tier) => idiv(computeT1LogisticsDrain(cohesion) * 3 * supportDrainTierPercent(tier), 400);
|
|
14747
16324
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
14748
|
-
const computeCargoBayCapacity = (strength, density, hardness
|
|
14749
|
-
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) =>
|
|
16325
|
+
const computeCargoBayCapacity = (strength, density, hardness) => 10000000 + idiv((strength + density + hardness) * 50000000, 2997);
|
|
16326
|
+
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996);
|
|
14750
16327
|
function entityDisplayName(itemId) {
|
|
14751
16328
|
switch (itemId) {
|
|
14752
16329
|
case ITEM_SHIP_T1_PACKED:
|
|
16330
|
+
return 'Ship';
|
|
16331
|
+
case ITEM_ROUSTABOUT_T1_PACKED:
|
|
14753
16332
|
return 'Roustabout';
|
|
16333
|
+
case ITEM_PROSPECTOR_T1_PACKED:
|
|
16334
|
+
return 'Prospector';
|
|
16335
|
+
case ITEM_TENDER_T1_PACKED:
|
|
16336
|
+
return 'Tender';
|
|
16337
|
+
case ITEM_TUG_T1_PACKED:
|
|
16338
|
+
return 'Tug';
|
|
16339
|
+
case ITEM_PORTER_T1_PACKED:
|
|
16340
|
+
return 'Porter';
|
|
16341
|
+
case ITEM_WRANGLER_T1_PACKED:
|
|
16342
|
+
return 'Wrangler';
|
|
16343
|
+
case ITEM_DREDGER_T1_PACKED:
|
|
16344
|
+
return 'Dredger';
|
|
14754
16345
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
14755
16346
|
return 'Warehouse';
|
|
14756
16347
|
case ITEM_EXTRACTOR_T1_PACKED:
|
|
@@ -14764,7 +16355,7 @@ function entityDisplayName(itemId) {
|
|
|
14764
16355
|
case ITEM_PROSPECTOR_T2_PACKED:
|
|
14765
16356
|
return 'Prospector';
|
|
14766
16357
|
case ITEM_HAULER_SHIP_T2_PACKED:
|
|
14767
|
-
return '
|
|
16358
|
+
return 'Tug';
|
|
14768
16359
|
default:
|
|
14769
16360
|
return 'Entity';
|
|
14770
16361
|
}
|
|
@@ -14782,6 +16373,8 @@ function moduleDisplayName(itemId) {
|
|
|
14782
16373
|
return 'Shuttle Bay';
|
|
14783
16374
|
case ITEM_CRAFTER_T1:
|
|
14784
16375
|
return 'Fabricator';
|
|
16376
|
+
case ITEM_BUILDER_T1:
|
|
16377
|
+
return 'Assembly Arm';
|
|
14785
16378
|
case ITEM_STORAGE_T1:
|
|
14786
16379
|
return 'Cargo Hold';
|
|
14787
16380
|
case ITEM_HAULER_T1:
|
|
@@ -14807,15 +16400,15 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14807
16400
|
const subtype = getModuleCapabilityType(itemId);
|
|
14808
16401
|
switch (subtype) {
|
|
14809
16402
|
case MODULE_ENGINE: {
|
|
14810
|
-
const vol = decodeStat(stats, 0);
|
|
14811
|
-
const thm = decodeStat(stats, 1);
|
|
16403
|
+
const vol = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16404
|
+
const thm = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
14812
16405
|
out += ` Thrust ${computeEngineThrust(vol)} Drain ${computeEngineDrain(thm)}`;
|
|
14813
16406
|
break;
|
|
14814
16407
|
}
|
|
14815
16408
|
case MODULE_GENERATOR: {
|
|
14816
|
-
const res = decodeStat(stats, 0);
|
|
14817
|
-
const ref = decodeStat(stats, 1);
|
|
14818
|
-
out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(ref)}`;
|
|
16409
|
+
const res = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16410
|
+
const ref = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
16411
|
+
out += ` Capacity ${toWholeEnergy$1(computeGeneratorCap(res))} Recharge ${toWholeEnergy$1(computeGeneratorRech(ref))}`;
|
|
14819
16412
|
break;
|
|
14820
16413
|
}
|
|
14821
16414
|
case MODULE_GATHERER: {
|
|
@@ -14823,7 +16416,7 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14823
16416
|
const tol = decodeStat(stats, 1);
|
|
14824
16417
|
const con = decodeStat(stats, 2);
|
|
14825
16418
|
const tier = getItem(itemId).tier;
|
|
14826
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
16419
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${toWholeEnergy$1(computeGathererDrain(con))}`;
|
|
14827
16420
|
break;
|
|
14828
16421
|
}
|
|
14829
16422
|
case MODULE_LOADER: {
|
|
@@ -14835,23 +16428,30 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14835
16428
|
case MODULE_CRAFTER: {
|
|
14836
16429
|
const rea = decodeStat(stats, 0);
|
|
14837
16430
|
const con = decodeStat(stats, 1);
|
|
14838
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(con)}`;
|
|
16431
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${toWholeEnergy$1(computeCrafterDrain(con))}`;
|
|
16432
|
+
break;
|
|
16433
|
+
}
|
|
16434
|
+
case MODULE_BUILDER: {
|
|
16435
|
+
const res = decodeStat(stats, 0);
|
|
16436
|
+
const fin = decodeStat(stats, 1);
|
|
16437
|
+
out += ` Speed ${computeBuilderSpeed(res)} Drain ${toWholeEnergy$1(computeBuilderDrain(fin))}`;
|
|
14839
16438
|
break;
|
|
14840
16439
|
}
|
|
14841
16440
|
case MODULE_STORAGE: {
|
|
14842
16441
|
const str = decodeStat(stats, 0);
|
|
14843
16442
|
const den = decodeStat(stats, 1);
|
|
14844
16443
|
const hrd = decodeStat(stats, 2);
|
|
14845
|
-
const
|
|
14846
|
-
|
|
16444
|
+
const coh = decodeStat(stats, 3);
|
|
16445
|
+
const tier = getItem(itemId).tier;
|
|
16446
|
+
out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd)} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
|
|
14847
16447
|
break;
|
|
14848
16448
|
}
|
|
14849
16449
|
case MODULE_HAULER: {
|
|
14850
16450
|
const res = decodeStat(stats, 0);
|
|
14851
16451
|
const pla = decodeStat(stats, 1);
|
|
14852
|
-
const
|
|
16452
|
+
const con = decodeStat(stats, 2);
|
|
14853
16453
|
const tier = getItem(itemId).tier;
|
|
14854
|
-
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${
|
|
16454
|
+
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${toWholeEnergy$1(computeHaulerDrain(con, tier))}`;
|
|
14855
16455
|
break;
|
|
14856
16456
|
}
|
|
14857
16457
|
case MODULE_WARP: {
|
|
@@ -14864,18 +16464,16 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14864
16464
|
const thm = decodeStat(stats, 1);
|
|
14865
16465
|
const pla = decodeStat(stats, 2);
|
|
14866
16466
|
const ins = decodeStat(stats, 3);
|
|
14867
|
-
out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
|
|
16467
|
+
out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
|
|
14868
16468
|
break;
|
|
14869
16469
|
}
|
|
14870
16470
|
}
|
|
14871
16471
|
return out;
|
|
14872
16472
|
}
|
|
14873
16473
|
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14874
|
-
const hullMass = computeBaseHullmass$1(hullStats);
|
|
16474
|
+
const hullMass = computeBaseHullmass$1(itemId, hullStats);
|
|
14875
16475
|
let baseCapacity = 0;
|
|
14876
|
-
if (itemId
|
|
14877
|
-
itemId === ITEM_PROSPECTOR_T2_PACKED ||
|
|
14878
|
-
itemId === ITEM_HAULER_SHIP_T2_PACKED) {
|
|
16476
|
+
if (isShipHull$1(itemId)) {
|
|
14879
16477
|
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14880
16478
|
}
|
|
14881
16479
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
@@ -14900,31 +16498,45 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
14900
16498
|
return out;
|
|
14901
16499
|
}
|
|
14902
16500
|
|
|
14903
|
-
|
|
14904
|
-
|
|
16501
|
+
const DEFAULT_BASE_HULLMASS = 100000;
|
|
16502
|
+
function getBaseHullmassFor(itemId) {
|
|
16503
|
+
return getEntityLayout(itemId)?.baseHullmass ?? DEFAULT_BASE_HULLMASS;
|
|
14905
16504
|
}
|
|
14906
|
-
function
|
|
14907
|
-
|
|
14908
|
-
|
|
16505
|
+
function isShipHull(itemId) {
|
|
16506
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16507
|
+
}
|
|
16508
|
+
function sumHullStats(stats) {
|
|
16509
|
+
return Object.values(stats).reduce((sum, value) => sum + value, 0);
|
|
16510
|
+
}
|
|
16511
|
+
function computeBaseHullmass(itemId, stats) {
|
|
16512
|
+
if (isShipHull(itemId)) {
|
|
16513
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumHullStats(stats))) / 10000);
|
|
16514
|
+
}
|
|
16515
|
+
const lightness = stats.density ?? stats.hardness ?? 0;
|
|
16516
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - lightness)) / 2000);
|
|
16517
|
+
}
|
|
16518
|
+
function computeShipHullCapabilities(stats, itemId = ITEM_SHIP_T1_PACKED) {
|
|
16519
|
+
const statSum = sumHullStats(stats);
|
|
16520
|
+
const exponent = statSum / 4995.0;
|
|
14909
16521
|
return {
|
|
14910
|
-
hullmass: computeBaseHullmass(stats),
|
|
16522
|
+
hullmass: computeBaseHullmass(itemId, stats),
|
|
14911
16523
|
capacity: Math.floor(5000000 * 6 ** exponent),
|
|
14912
16524
|
};
|
|
14913
16525
|
}
|
|
14914
16526
|
function computeEngineCapabilities(stats) {
|
|
14915
|
-
const vol = stats.volatility;
|
|
14916
|
-
const thm = stats.thermal;
|
|
16527
|
+
const vol = computeEffectiveModuleStat(stats.volatility);
|
|
16528
|
+
const thm = computeEffectiveModuleStat(stats.thermal);
|
|
14917
16529
|
return {
|
|
14918
16530
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
14919
16531
|
drain: 2 * Math.max(30, 50 - Math.floor(thm / 70)),
|
|
14920
16532
|
};
|
|
14921
16533
|
}
|
|
14922
16534
|
function computeGeneratorCapabilities(stats) {
|
|
14923
|
-
const res = stats.resonance;
|
|
14924
|
-
const ref = stats.reflectivity;
|
|
16535
|
+
const res = computeEffectiveModuleStat(stats.resonance);
|
|
16536
|
+
const ref = computeEffectiveModuleStat(stats.reflectivity);
|
|
14925
16537
|
return {
|
|
14926
|
-
capacity:
|
|
14927
|
-
recharge:
|
|
16538
|
+
capacity: 1300000 + res * 500,
|
|
16539
|
+
recharge: 2000 + ref * 6,
|
|
14928
16540
|
};
|
|
14929
16541
|
}
|
|
14930
16542
|
const GATHERER_DEPTH_TABLE = [
|
|
@@ -14950,11 +16562,11 @@ function gathererDepthForTier(tol, tier) {
|
|
|
14950
16562
|
function computeGathererCapabilities(stats, tier) {
|
|
14951
16563
|
const str = stats.strength;
|
|
14952
16564
|
const con = stats.saturation;
|
|
14953
|
-
const
|
|
16565
|
+
const tol = stats.tolerance ?? stats.hardness;
|
|
14954
16566
|
return {
|
|
14955
16567
|
yield: 200 + str,
|
|
14956
|
-
drain: 2 * Math.max(
|
|
14957
|
-
depth: gathererDepthForTier(
|
|
16568
|
+
drain: 2 * Math.max(250000, 1250000 - con * 1250),
|
|
16569
|
+
depth: gathererDepthForTier(tol, tier),
|
|
14958
16570
|
};
|
|
14959
16571
|
}
|
|
14960
16572
|
function computeLoaderCapabilities(stats) {
|
|
@@ -14971,7 +16583,15 @@ function computeCrafterCapabilities(stats) {
|
|
|
14971
16583
|
const con = stats.conductivity;
|
|
14972
16584
|
return {
|
|
14973
16585
|
speed: 100 + Math.floor((fin * 4) / 5),
|
|
14974
|
-
drain: Math.max(
|
|
16586
|
+
drain: Math.max(5000, 30000 - Math.floor((con * 1000) / 33)),
|
|
16587
|
+
};
|
|
16588
|
+
}
|
|
16589
|
+
function computeBuilderCapabilities(stats) {
|
|
16590
|
+
const resonance = stats.resonance;
|
|
16591
|
+
const fineness = stats.fineness;
|
|
16592
|
+
return {
|
|
16593
|
+
speed: 100 + Math.floor((resonance * 4) / 5),
|
|
16594
|
+
drain: Math.max(5000, 30000 - Math.floor((fineness * 1000) / 33)),
|
|
14975
16595
|
};
|
|
14976
16596
|
}
|
|
14977
16597
|
function computeHaulerCapabilities(stats, tier) {
|
|
@@ -14981,7 +16601,7 @@ function computeHaulerCapabilities(stats, tier) {
|
|
|
14981
16601
|
return {
|
|
14982
16602
|
capacity: computeHaulerCapacity(resonance, tier),
|
|
14983
16603
|
efficiency: 2000 + plasticity * 6,
|
|
14984
|
-
drain:
|
|
16604
|
+
drain: computeHaulerDrain(conductivity, tier),
|
|
14985
16605
|
};
|
|
14986
16606
|
}
|
|
14987
16607
|
function computeLauncherCapabilities(stats, amp = 100) {
|
|
@@ -14991,13 +16611,11 @@ function computeLauncherCapabilities(stats, amp = 100) {
|
|
|
14991
16611
|
drain: stats.drain,
|
|
14992
16612
|
};
|
|
14993
16613
|
}
|
|
14994
|
-
function computeStorageCapabilities(stats) {
|
|
14995
|
-
|
|
14996
|
-
|
|
14997
|
-
|
|
14998
|
-
|
|
14999
|
-
const statSum = strength + density + hardness + cohesion;
|
|
15000
|
-
return { capacity: 10000000 + Math.floor((statSum * 50000000) / 3996) };
|
|
16614
|
+
function computeStorageCapabilities(stats, tier) {
|
|
16615
|
+
return {
|
|
16616
|
+
capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0),
|
|
16617
|
+
drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
|
|
16618
|
+
};
|
|
15001
16619
|
}
|
|
15002
16620
|
function computeBatteryCapabilities(stats) {
|
|
15003
16621
|
const volatility = stats.volatility ?? 0;
|
|
@@ -15005,7 +16623,7 @@ function computeBatteryCapabilities(stats) {
|
|
|
15005
16623
|
const plasticity = stats.plasticity ?? 0;
|
|
15006
16624
|
const insulation = stats.insulation ?? 0;
|
|
15007
16625
|
const statSum = volatility + thermal + plasticity + insulation;
|
|
15008
|
-
return { capacity:
|
|
16626
|
+
return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
|
|
15009
16627
|
}
|
|
15010
16628
|
const CAPACITY_TIER_TABLE = [1.0, 1.4, 1.8, 2.2, 2.6, 3.0, 3.4, 3.8, 4.2, 4.6];
|
|
15011
16629
|
function capacityTierMultiplier(tier) {
|
|
@@ -15017,25 +16635,25 @@ function applyCapacityTier(baseCapacity, tier) {
|
|
|
15017
16635
|
}
|
|
15018
16636
|
function computeBaseCapacity(itemId, stats) {
|
|
15019
16637
|
let base;
|
|
15020
|
-
|
|
15021
|
-
|
|
15022
|
-
|
|
15023
|
-
|
|
15024
|
-
|
|
15025
|
-
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
|
|
15037
|
-
|
|
15038
|
-
|
|
16638
|
+
if (isShipHull(itemId)) {
|
|
16639
|
+
base = computeShipHullCapabilities(stats, itemId).capacity;
|
|
16640
|
+
}
|
|
16641
|
+
else {
|
|
16642
|
+
switch (itemId) {
|
|
16643
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
16644
|
+
case ITEM_FACTORY_T1_PACKED:
|
|
16645
|
+
case ITEM_MASS_DRIVER_T1_PACKED:
|
|
16646
|
+
case ITEM_MASS_CATCHER_T1_PACKED:
|
|
16647
|
+
case ITEM_CONTAINER_T1_PACKED:
|
|
16648
|
+
case ITEM_CONTAINER_T2_PACKED:
|
|
16649
|
+
base = computeContainerCapabilities(stats).capacity;
|
|
16650
|
+
break;
|
|
16651
|
+
case ITEM_WAREHOUSE_T1_PACKED:
|
|
16652
|
+
base = computeWarehouseHullCapabilities(stats).capacity;
|
|
16653
|
+
break;
|
|
16654
|
+
default:
|
|
16655
|
+
return 0;
|
|
16656
|
+
}
|
|
15039
16657
|
}
|
|
15040
16658
|
return applyCapacityTier(base, getItem(itemId).tier);
|
|
15041
16659
|
}
|
|
@@ -15047,7 +16665,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
15047
16665
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15048
16666
|
const exponent = statSum / 1998.0;
|
|
15049
16667
|
return {
|
|
15050
|
-
hullmass: computeBaseHullmass(stats),
|
|
16668
|
+
hullmass: computeBaseHullmass(ITEM_WAREHOUSE_T1_PACKED, stats),
|
|
15051
16669
|
capacity: Math.floor(100000000 * 6 ** exponent),
|
|
15052
16670
|
};
|
|
15053
16671
|
}
|
|
@@ -15068,11 +16686,15 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15068
16686
|
let maxGathDepth = 0;
|
|
15069
16687
|
let hasGatherer = false;
|
|
15070
16688
|
let totalStorageCapacity = 0;
|
|
16689
|
+
let totalCargoHoldDrain = 0;
|
|
15071
16690
|
const baseCapacity = computeBaseCapacity(itemId, stats);
|
|
15072
16691
|
let installedModuleMass = 0;
|
|
15073
16692
|
let totalCrafterSpeed = 0;
|
|
15074
16693
|
let totalCrafterDrain = 0;
|
|
15075
16694
|
let hasCrafter = false;
|
|
16695
|
+
let totalBuilderSpeed = 0;
|
|
16696
|
+
let totalBuilderDrain = 0;
|
|
16697
|
+
let hasBuilder = false;
|
|
15076
16698
|
let totalHaulerCapacity = 0;
|
|
15077
16699
|
let weightedHaulerEffNum = 0n;
|
|
15078
16700
|
let totalHaulerDrain = 0;
|
|
@@ -15087,6 +16709,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15087
16709
|
let totalBatteryCapacity = 0;
|
|
15088
16710
|
const gathererLanes = [];
|
|
15089
16711
|
const crafterLanes = [];
|
|
16712
|
+
const builderLanes = [];
|
|
15090
16713
|
const loaderLanes = [];
|
|
15091
16714
|
for (const mod of modules) {
|
|
15092
16715
|
const item = getItem(mod.itemId);
|
|
@@ -15098,19 +16721,23 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15098
16721
|
hasEngine = true;
|
|
15099
16722
|
const caps = computeEngineCapabilities(decodedStats);
|
|
15100
16723
|
totalThrust += applySlotMultiplier(caps.thrust, amp);
|
|
15101
|
-
totalEngineThm += decodedStats.thermal ?? 0;
|
|
16724
|
+
totalEngineThm += computeEffectiveModuleStat(decodedStats.thermal ?? 0);
|
|
15102
16725
|
engineCount += 1;
|
|
15103
16726
|
}
|
|
15104
16727
|
else if (modType === MODULE_GENERATOR) {
|
|
15105
16728
|
hasGenerator = true;
|
|
15106
16729
|
const caps = computeGeneratorCapabilities(decodedStats);
|
|
15107
|
-
totalGenCapacity +=
|
|
15108
|
-
totalGenRecharge +=
|
|
16730
|
+
totalGenCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16731
|
+
totalGenRecharge += applySlotMultiplierUint32(caps.recharge, amp);
|
|
15109
16732
|
}
|
|
15110
16733
|
else if (modType === MODULE_GATHERER) {
|
|
15111
16734
|
hasGatherer = true;
|
|
15112
16735
|
const tier = item.tier;
|
|
15113
|
-
const caps = computeGathererCapabilities(
|
|
16736
|
+
const caps = computeGathererCapabilities({
|
|
16737
|
+
strength: decodeStat(mod.stats, 0),
|
|
16738
|
+
tolerance: decodeStat(mod.stats, 1),
|
|
16739
|
+
saturation: decodeStat(mod.stats, 2),
|
|
16740
|
+
}, tier);
|
|
15114
16741
|
const scaledYield = applySlotMultiplier(caps.yield, amp);
|
|
15115
16742
|
totalGathYield += scaledYield;
|
|
15116
16743
|
totalGathDrain += caps.drain;
|
|
@@ -15138,8 +16765,9 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15138
16765
|
});
|
|
15139
16766
|
}
|
|
15140
16767
|
else if (modType === MODULE_STORAGE) {
|
|
15141
|
-
const caps = computeStorageCapabilities(decodedStats);
|
|
16768
|
+
const caps = computeStorageCapabilities(decodedStats, item.tier);
|
|
15142
16769
|
totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16770
|
+
totalCargoHoldDrain += caps.drain;
|
|
15143
16771
|
}
|
|
15144
16772
|
else if (modType === MODULE_CRAFTER) {
|
|
15145
16773
|
hasCrafter = true;
|
|
@@ -15154,6 +16782,19 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15154
16782
|
outputPct: amp,
|
|
15155
16783
|
});
|
|
15156
16784
|
}
|
|
16785
|
+
else if (modType === MODULE_BUILDER) {
|
|
16786
|
+
hasBuilder = true;
|
|
16787
|
+
const caps = computeBuilderCapabilities(decodedStats);
|
|
16788
|
+
const scaledSpeed = applySlotMultiplier(caps.speed, amp);
|
|
16789
|
+
totalBuilderSpeed += scaledSpeed;
|
|
16790
|
+
totalBuilderDrain += caps.drain;
|
|
16791
|
+
builderLanes.push({
|
|
16792
|
+
slotIndex: mod.slotIndex,
|
|
16793
|
+
speed: scaledSpeed,
|
|
16794
|
+
drain: caps.drain,
|
|
16795
|
+
outputPct: amp,
|
|
16796
|
+
});
|
|
16797
|
+
}
|
|
15157
16798
|
else if (modType === MODULE_HAULER) {
|
|
15158
16799
|
hasHauler = true;
|
|
15159
16800
|
const caps = computeHaulerCapabilities(decodedStats, item.tier);
|
|
@@ -15188,12 +16829,20 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15188
16829
|
totalGenCapacity += totalBatteryCapacity;
|
|
15189
16830
|
}
|
|
15190
16831
|
const result = {
|
|
15191
|
-
hullmass: computeBaseHullmass(stats) + installedModuleMass,
|
|
16832
|
+
hullmass: computeBaseHullmass(itemId, stats) + installedModuleMass,
|
|
15192
16833
|
capacity: clampUint32(baseCapacity + totalStorageCapacity),
|
|
15193
16834
|
};
|
|
15194
16835
|
if (hasEngine) {
|
|
15195
16836
|
const avgThm = engineCount > 0 ? Math.trunc(totalEngineThm / engineCount) : 0;
|
|
15196
|
-
|
|
16837
|
+
const engineDrain = computeTravelDrain(totalThrust, avgThm);
|
|
16838
|
+
const totalDrain = clampUint32(engineDrain + totalCargoHoldDrain + totalHaulerDrain);
|
|
16839
|
+
result.engines = { thrust: totalThrust, drain: totalDrain };
|
|
16840
|
+
result.travelDrain = {
|
|
16841
|
+
engine: engineDrain,
|
|
16842
|
+
cargoHolds: totalCargoHoldDrain,
|
|
16843
|
+
tractorBeams: totalHaulerDrain,
|
|
16844
|
+
total: totalDrain,
|
|
16845
|
+
};
|
|
15197
16846
|
}
|
|
15198
16847
|
if (hasGenerator) {
|
|
15199
16848
|
result.generator = {
|
|
@@ -15221,6 +16870,10 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15221
16870
|
result.crafter = { speed: clampUint16(totalCrafterSpeed), drain: totalCrafterDrain };
|
|
15222
16871
|
result.crafterLanes = crafterLanes;
|
|
15223
16872
|
}
|
|
16873
|
+
if (hasBuilder) {
|
|
16874
|
+
result.builder = { speed: clampUint16(totalBuilderSpeed), drain: totalBuilderDrain };
|
|
16875
|
+
result.builderLanes = builderLanes;
|
|
16876
|
+
}
|
|
15224
16877
|
if (hasHauler) {
|
|
15225
16878
|
const efficiency = totalHaulerCapacity > 0 ? Number(weightedHaulerEffNum / BigInt(totalHaulerCapacity)) : 0;
|
|
15226
16879
|
result.hauler = {
|
|
@@ -15248,7 +16901,7 @@ function computeContainerCapabilities(stats) {
|
|
|
15248
16901
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15249
16902
|
const exponent = statSum / 1998.0;
|
|
15250
16903
|
return {
|
|
15251
|
-
hullmass: computeBaseHullmass(stats),
|
|
16904
|
+
hullmass: computeBaseHullmass(ITEM_CONTAINER_T1_PACKED, stats),
|
|
15252
16905
|
capacity: Math.floor(22000000 * 6 ** exponent),
|
|
15253
16906
|
};
|
|
15254
16907
|
}
|
|
@@ -15314,7 +16967,7 @@ function makeEntity(packedItemId, state) {
|
|
|
15314
16967
|
holds: [],
|
|
15315
16968
|
};
|
|
15316
16969
|
if (state.energy !== undefined)
|
|
15317
|
-
info.energy =
|
|
16970
|
+
info.energy = UInt32.from(state.energy);
|
|
15318
16971
|
if (kind === 'container') {
|
|
15319
16972
|
info.modules = [];
|
|
15320
16973
|
if (state.hullmass !== undefined)
|
|
@@ -15374,6 +17027,12 @@ function makeEntity(packedItemId, state) {
|
|
|
15374
17027
|
drain: l.drain,
|
|
15375
17028
|
output_pct: l.outputPct,
|
|
15376
17029
|
}));
|
|
17030
|
+
info.builder_lanes = (caps.builderLanes ?? []).map((l) => Types.builder_lane.from({
|
|
17031
|
+
slot_index: l.slotIndex,
|
|
17032
|
+
speed: l.speed,
|
|
17033
|
+
drain: l.drain,
|
|
17034
|
+
output_pct: l.outputPct,
|
|
17035
|
+
}));
|
|
15377
17036
|
info.loader_lanes = (caps.loaderLanes ?? []).map((l) => Types.loader_lane.from({
|
|
15378
17037
|
slot_index: l.slotIndex,
|
|
15379
17038
|
mass: l.mass,
|
|
@@ -15385,6 +17044,8 @@ function makeEntity(packedItemId, state) {
|
|
|
15385
17044
|
info.gatherer_lanes = [];
|
|
15386
17045
|
if (!info.crafter_lanes)
|
|
15387
17046
|
info.crafter_lanes = [];
|
|
17047
|
+
if (!info.builder_lanes)
|
|
17048
|
+
info.builder_lanes = [];
|
|
15388
17049
|
if (!info.loader_lanes)
|
|
15389
17050
|
info.loader_lanes = [];
|
|
15390
17051
|
const entityInfo = Types.entity_info.from(info);
|
|
@@ -15400,7 +17061,13 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
15400
17061
|
}
|
|
15401
17062
|
function calc_craft_energy(drain, totalInputMass) {
|
|
15402
17063
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
15403
|
-
return UInt32.from(Math.min(Math.max(raw + 1,
|
|
17064
|
+
return UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295));
|
|
17065
|
+
}
|
|
17066
|
+
function calc_build_duration(speed, totalInputMass) {
|
|
17067
|
+
return calc_craft_duration(speed, totalInputMass);
|
|
17068
|
+
}
|
|
17069
|
+
function calc_build_energy(drain, totalInputMass) {
|
|
17070
|
+
return calc_craft_energy(drain, totalInputMass);
|
|
15404
17071
|
}
|
|
15405
17072
|
|
|
15406
17073
|
class PlotManager extends BaseManager {
|
|
@@ -15463,7 +17130,7 @@ class PlotManager extends BaseManager {
|
|
|
15463
17130
|
recipe,
|
|
15464
17131
|
progress,
|
|
15465
17132
|
finalizeAction: Name.from('buildplot'),
|
|
15466
|
-
finalizerCapability: '
|
|
17133
|
+
finalizerCapability: 'builder',
|
|
15467
17134
|
activeTask,
|
|
15468
17135
|
scheduledBuild,
|
|
15469
17136
|
};
|
|
@@ -15511,16 +17178,16 @@ class ConstructionManager extends BaseManager {
|
|
|
15511
17178
|
continue;
|
|
15512
17179
|
if (!coordsEqual(entity.coordinates, target.coordinates))
|
|
15513
17180
|
continue;
|
|
15514
|
-
const
|
|
15515
|
-
if (
|
|
17181
|
+
const builderLanes = entity.builder_lanes ?? [];
|
|
17182
|
+
if (builderLanes.length === 0)
|
|
15516
17183
|
continue;
|
|
15517
|
-
const speed =
|
|
17184
|
+
const speed = builderLanes.reduce((s, l) => s + Number(l.speed), 0);
|
|
15518
17185
|
out.push({
|
|
15519
17186
|
entityId: entity.id,
|
|
15520
17187
|
entityType: entity.type,
|
|
15521
17188
|
name: entity.entity_name,
|
|
15522
|
-
capability: '
|
|
15523
|
-
|
|
17189
|
+
capability: 'builder',
|
|
17190
|
+
builderSpeed: speed,
|
|
15524
17191
|
estimatedDuration: this.estimateFinalizeDuration(target, speed),
|
|
15525
17192
|
});
|
|
15526
17193
|
}
|
|
@@ -15542,12 +17209,12 @@ class ConstructionManager extends BaseManager {
|
|
|
15542
17209
|
cumulativeSec += task.duration.toNumber();
|
|
15543
17210
|
if (!isPushTask(task))
|
|
15544
17211
|
continue;
|
|
15545
|
-
if (
|
|
17212
|
+
if (task.couplings.length === 0)
|
|
15546
17213
|
continue;
|
|
15547
17214
|
const projectedEndMs = startedMs + cumulativeSec * 1000;
|
|
15548
17215
|
if (projectedEndMs < nowMs)
|
|
15549
17216
|
continue;
|
|
15550
|
-
const targetIdStr = task.
|
|
17217
|
+
const targetIdStr = task.couplings[0].counterpart.entity_id.toString();
|
|
15551
17218
|
const etaSeconds = Math.max(0, Math.round((projectedEndMs - nowMs) / 1000));
|
|
15552
17219
|
let perTarget = buckets.get(targetIdStr);
|
|
15553
17220
|
if (!perTarget) {
|
|
@@ -15672,8 +17339,8 @@ class ConstructionManager extends BaseManager {
|
|
|
15672
17339
|
return [];
|
|
15673
17340
|
return reservationsOf(source);
|
|
15674
17341
|
}
|
|
15675
|
-
estimateFinalizeDuration(target,
|
|
15676
|
-
return
|
|
17342
|
+
estimateFinalizeDuration(target, builderSpeed) {
|
|
17343
|
+
return calc_build_duration(builderSpeed, target.progress.massRequired);
|
|
15677
17344
|
}
|
|
15678
17345
|
static isConstructionKind(kind) {
|
|
15679
17346
|
return CONSTRUCTION_KINDS.has(kind);
|
|
@@ -15766,18 +17433,18 @@ function isPushTask(task) {
|
|
|
15766
17433
|
}
|
|
15767
17434
|
function isBuildOfPlot(task, plotId) {
|
|
15768
17435
|
return (task.type.toNumber() === TaskType.BUILDPLOT &&
|
|
15769
|
-
task.
|
|
15770
|
-
task.
|
|
17436
|
+
task.couplings.length > 0 &&
|
|
17437
|
+
task.couplings[0].counterpart.entity_id.equals(plotId));
|
|
15771
17438
|
}
|
|
15772
17439
|
function reservationsOf(source) {
|
|
15773
17440
|
const out = new Map();
|
|
15774
17441
|
for (const task of getTasks(source)) {
|
|
15775
17442
|
if (!isPushTask(task))
|
|
15776
17443
|
continue;
|
|
15777
|
-
if (
|
|
17444
|
+
if (task.couplings.length === 0)
|
|
15778
17445
|
continue;
|
|
15779
|
-
const targetType = task.
|
|
15780
|
-
const targetId = task.
|
|
17446
|
+
const targetType = task.couplings[0].counterpart.entity_type;
|
|
17447
|
+
const targetId = task.couplings[0].counterpart.entity_id;
|
|
15781
17448
|
for (const c of task.cargo) {
|
|
15782
17449
|
const itemId = c.item_id.toNumber();
|
|
15783
17450
|
const quantity = c.quantity.toNumber();
|
|
@@ -15866,11 +17533,23 @@ function planRoute(params) {
|
|
|
15866
17533
|
return { ok: false, reason: 'empty-destination' };
|
|
15867
17534
|
}
|
|
15868
17535
|
const straightLine = dist(origin, dest);
|
|
15869
|
-
|
|
17536
|
+
if (straightLine <= perLegReach) {
|
|
17537
|
+
const directCost = params.legCost?.({
|
|
17538
|
+
from: origin,
|
|
17539
|
+
to: dest,
|
|
17540
|
+
distance: straightLine,
|
|
17541
|
+
isDestination: true,
|
|
17542
|
+
});
|
|
17543
|
+
if (directCost !== null) {
|
|
17544
|
+
return { ok: true, waypoints: [dest], legs: 1, totalDistance: straightLine };
|
|
17545
|
+
}
|
|
17546
|
+
}
|
|
17547
|
+
const heuristic = (c) => params.heuristicCost?.(c, dest) ??
|
|
17548
|
+
(params.legCost ? 0 : Math.ceil(dist(c, dest) / perLegReach));
|
|
15870
17549
|
const gScore = new Map([[key(origin), 0]]);
|
|
15871
17550
|
const cameFrom = new Map();
|
|
15872
17551
|
const frontier = [
|
|
15873
|
-
{ coord: origin,
|
|
17552
|
+
{ coord: origin, legs: 0, cost: 0, f: heuristic(origin), remaining: straightLine },
|
|
15874
17553
|
];
|
|
15875
17554
|
let furthest = origin;
|
|
15876
17555
|
let furthestRemaining = dist(origin, dest);
|
|
@@ -15886,6 +17565,8 @@ function planRoute(params) {
|
|
|
15886
17565
|
}
|
|
15887
17566
|
}
|
|
15888
17567
|
const current = frontier.splice(bestIdx, 1)[0];
|
|
17568
|
+
if (current.cost !== gScore.get(key(current.coord)))
|
|
17569
|
+
continue;
|
|
15889
17570
|
if (sameCoord(current.coord, dest)) {
|
|
15890
17571
|
return reconstruct(cameFrom, origin, dest);
|
|
15891
17572
|
}
|
|
@@ -15899,20 +17580,33 @@ function planRoute(params) {
|
|
|
15899
17580
|
const inCorridor = dist(origin, n.coord) + dist(n.coord, dest) <= straightLine + corridorSlack;
|
|
15900
17581
|
if (!inCorridor)
|
|
15901
17582
|
continue;
|
|
15902
|
-
const
|
|
15903
|
-
if (
|
|
17583
|
+
const tentativeLegs = current.legs + 1;
|
|
17584
|
+
if (tentativeLegs > maxLegs) {
|
|
15904
17585
|
cappedByMaxLegs = true;
|
|
15905
17586
|
continue;
|
|
15906
17587
|
}
|
|
17588
|
+
const evaluatedCost = params.legCost?.({
|
|
17589
|
+
from: current.coord,
|
|
17590
|
+
to: n.coord,
|
|
17591
|
+
distance: n.dist,
|
|
17592
|
+
isDestination: sameCoord(n.coord, dest),
|
|
17593
|
+
});
|
|
17594
|
+
if (evaluatedCost === null)
|
|
17595
|
+
continue;
|
|
17596
|
+
const legCost = evaluatedCost ?? 1;
|
|
17597
|
+
if (!(legCost >= 0) || !Number.isFinite(legCost))
|
|
17598
|
+
continue;
|
|
15907
17599
|
const nk = key(n.coord);
|
|
15908
|
-
|
|
15909
|
-
|
|
17600
|
+
const nextCost = current.cost + legCost;
|
|
17601
|
+
if (nextCost < (gScore.get(nk) ?? Infinity)) {
|
|
17602
|
+
gScore.set(nk, nextCost);
|
|
15910
17603
|
cameFrom.set(nk, current.coord);
|
|
15911
17604
|
const remaining = dist(n.coord, dest);
|
|
15912
17605
|
frontier.push({
|
|
15913
17606
|
coord: n.coord,
|
|
15914
|
-
|
|
15915
|
-
|
|
17607
|
+
legs: tentativeLegs,
|
|
17608
|
+
cost: nextCost,
|
|
17609
|
+
f: nextCost + heuristic(n.coord),
|
|
15916
17610
|
remaining,
|
|
15917
17611
|
});
|
|
15918
17612
|
}
|
|
@@ -15962,47 +17656,22 @@ function reconstruct(cameFrom, origin, dest) {
|
|
|
15962
17656
|
const waypoints = path.slice(1);
|
|
15963
17657
|
return { ok: true, waypoints, legs: waypoints.length, totalDistance };
|
|
15964
17658
|
}
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
function setScanProvider(provider) {
|
|
15968
|
-
scanProvider = provider;
|
|
15969
|
-
graphCache.clear();
|
|
15970
|
-
}
|
|
15971
|
-
function sdkSystemGraph(seed) {
|
|
17659
|
+
const graphCache = new WeakMap();
|
|
17660
|
+
function sdkSystemGraph(seed, scan) {
|
|
15972
17661
|
const s = Checksum256.from(seed);
|
|
15973
17662
|
const seedHex = s.toString();
|
|
15974
|
-
|
|
17663
|
+
let bySeed = graphCache.get(scan);
|
|
17664
|
+
if (!bySeed) {
|
|
17665
|
+
bySeed = new Map();
|
|
17666
|
+
graphCache.set(scan, bySeed);
|
|
17667
|
+
}
|
|
17668
|
+
const cached = bySeed.get(seedHex);
|
|
15975
17669
|
if (cached)
|
|
15976
17670
|
return cached;
|
|
15977
|
-
const graph =
|
|
15978
|
-
|
|
17671
|
+
const graph = wasmSystemGraph(s, seedHex, scan);
|
|
17672
|
+
bySeed.set(seedHex, graph);
|
|
15979
17673
|
return graph;
|
|
15980
17674
|
}
|
|
15981
|
-
function jsSystemGraph(s) {
|
|
15982
|
-
return {
|
|
15983
|
-
hasSystem: (c) => hasSystem(s, { x: c.x, y: c.y }) || wormholeAt(s, c.x, c.y) !== null,
|
|
15984
|
-
nearby: (c, reachTiles) => {
|
|
15985
|
-
const seen = new Set([`${c.x},${c.y}`]);
|
|
15986
|
-
const out = [];
|
|
15987
|
-
for (const d of findNearbyPlanets(s, { x: c.x, y: c.y }, reachTiles * PRECISION$1)) {
|
|
15988
|
-
const coord = { x: Number(d.destination.x), y: Number(d.destination.y) };
|
|
15989
|
-
const k = `${coord.x},${coord.y}`;
|
|
15990
|
-
if (seen.has(k))
|
|
15991
|
-
continue;
|
|
15992
|
-
seen.add(k);
|
|
15993
|
-
out.push({ coord, dist: Number(d.distance) / PRECISION$1 });
|
|
15994
|
-
}
|
|
15995
|
-
for (const coord of nearbyWormholes(s, c.x, c.y, reachTiles)) {
|
|
15996
|
-
const k = `${coord.x},${coord.y}`;
|
|
15997
|
-
if (seen.has(k))
|
|
15998
|
-
continue;
|
|
15999
|
-
seen.add(k);
|
|
16000
|
-
out.push({ coord, dist: Math.hypot(coord.x - c.x, coord.y - c.y) });
|
|
16001
|
-
}
|
|
16002
|
-
return out;
|
|
16003
|
-
},
|
|
16004
|
-
};
|
|
16005
|
-
}
|
|
16006
17675
|
const SCAN_BUCKET = 48;
|
|
16007
17676
|
function wasmSystemGraph(s, seedHex, scan) {
|
|
16008
17677
|
const bucketCache = new Map();
|
|
@@ -16055,21 +17724,20 @@ function wasmSystemGraph(s, seedHex, scan) {
|
|
|
16055
17724
|
};
|
|
16056
17725
|
}
|
|
16057
17726
|
|
|
16058
|
-
function computePerLegReach(s
|
|
17727
|
+
function computePerLegReach(s) {
|
|
16059
17728
|
const capacity = s.generator?.capacity;
|
|
16060
17729
|
const drain = s.engines?.drain;
|
|
16061
17730
|
if (capacity === undefined || drain === undefined || drain === 0n) {
|
|
16062
17731
|
throw new Error('entity has no usable engine/generator (cannot compute per-leg reach)');
|
|
16063
17732
|
}
|
|
16064
|
-
|
|
16065
|
-
return Number(capacity) / Number(drain + haulDrain);
|
|
17733
|
+
return Number(capacity) / Number(drain);
|
|
16066
17734
|
}
|
|
16067
|
-
function computeGroupPerLegReach(participants
|
|
17735
|
+
function computeGroupPerLegReach(participants) {
|
|
16068
17736
|
const movers = participants.filter((p) => p.engines !== undefined && p.engines.drain !== 0n);
|
|
16069
17737
|
if (movers.length === 0) {
|
|
16070
17738
|
throw new Error('group has no moving entity (cannot compute per-leg reach)');
|
|
16071
17739
|
}
|
|
16072
|
-
return Math.min(...movers.map(
|
|
17740
|
+
return Math.min(...movers.map(computePerLegReach));
|
|
16073
17741
|
}
|
|
16074
17742
|
|
|
16075
17743
|
function simulateRoute(movers, waypoints, origin, recharge) {
|
|
@@ -16098,17 +17766,13 @@ function simulateRoute(movers, waypoints, origin, recharge) {
|
|
|
16098
17766
|
for (const to of waypoints) {
|
|
16099
17767
|
const distance = distanceBetweenPoints(from.x, from.y, to.x, to.y);
|
|
16100
17768
|
const distanceNum = Number(distance);
|
|
16101
|
-
const distanceCells =
|
|
17769
|
+
const distanceCells = distanceNum / PRECISION;
|
|
16102
17770
|
const energyCostByMover = {};
|
|
16103
17771
|
for (const m of movers) {
|
|
16104
17772
|
if (!m.hasMovement || !m.engines)
|
|
16105
17773
|
continue;
|
|
16106
17774
|
const key = String(m.ref.entityId);
|
|
16107
|
-
|
|
16108
|
-
if (m.hauler) {
|
|
16109
|
-
cost += Math.trunc(distanceCells) * m.hauler.drain * haulCount;
|
|
16110
|
-
}
|
|
16111
|
-
energyCostByMover[key] = cost;
|
|
17775
|
+
energyCostByMover[key] = Number(calc_energyusage(distance, m.engines.drain));
|
|
16112
17776
|
}
|
|
16113
17777
|
let rechargeBefore = false;
|
|
16114
17778
|
let rechargeSeconds = 0;
|
|
@@ -16229,6 +17893,23 @@ function resolveLaneCrafter(modules, entityItemId, laneKey) {
|
|
|
16229
17893
|
const drain = computeCrafterDrain(fin);
|
|
16230
17894
|
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
16231
17895
|
}
|
|
17896
|
+
function resolveLaneBuilder(modules, entityItemId, laneKey) {
|
|
17897
|
+
const idx = laneKey - 1;
|
|
17898
|
+
const installed = idx >= 0 && idx < modules.length ? modules[idx].installed : undefined;
|
|
17899
|
+
if (!installed)
|
|
17900
|
+
throw new Error('builder lane has no module');
|
|
17901
|
+
const item = getItem(Number(installed.item_id.value ?? installed.item_id));
|
|
17902
|
+
if (item.moduleType !== 'builder')
|
|
17903
|
+
throw new Error('lane module is not a builder');
|
|
17904
|
+
const stats = BigInt(installed.stats.toString());
|
|
17905
|
+
const res = decodeStat(stats, 0);
|
|
17906
|
+
const fin = decodeStat(stats, 1);
|
|
17907
|
+
const layout = getEntityLayout(entityItemId)?.slots ?? [];
|
|
17908
|
+
const amp = getSlotAmp(layout, idx);
|
|
17909
|
+
const speed = applySlotMultiplier(computeBuilderSpeed(res), amp);
|
|
17910
|
+
const drain = computeBuilderDrain(fin);
|
|
17911
|
+
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
17912
|
+
}
|
|
16232
17913
|
function resolveLaneLoader(modules, entityItemId, laneKey) {
|
|
16233
17914
|
if (laneKey === LANE_MOBILITY) {
|
|
16234
17915
|
return { slotIndex: -1, thrust: 0, mass: 0, outputPct: 0, valid: false };
|
|
@@ -16536,6 +18217,10 @@ function recomputeCaps(entity) {
|
|
|
16536
18217
|
hullStats.strength = decodeStat(entity.stats, 0);
|
|
16537
18218
|
if (hullStats.hardness === undefined)
|
|
16538
18219
|
hullStats.hardness = decodeStat(entity.stats, 2);
|
|
18220
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
18221
|
+
hullStats.__legacyShipChannel3 = decodeStat(entity.stats, 3);
|
|
18222
|
+
hullStats.__legacyShipChannel4 = decodeStat(entity.stats, 4);
|
|
18223
|
+
}
|
|
16539
18224
|
const layout = getEntityLayout(itemId)?.slots ?? [];
|
|
16540
18225
|
const installed = toInstalledModules(entity.modules);
|
|
16541
18226
|
const caps = computeEntityCapabilities(hullStats, itemId, installed, layout);
|
|
@@ -16558,6 +18243,12 @@ function recomputeCaps(entity) {
|
|
|
16558
18243
|
drain: l.drain,
|
|
16559
18244
|
output_pct: l.outputPct,
|
|
16560
18245
|
});
|
|
18246
|
+
const toBuilderLane = (l) => Types.builder_lane.from({
|
|
18247
|
+
slot_index: l.slotIndex,
|
|
18248
|
+
speed: l.speed,
|
|
18249
|
+
drain: l.drain,
|
|
18250
|
+
output_pct: l.outputPct,
|
|
18251
|
+
});
|
|
16561
18252
|
return {
|
|
16562
18253
|
hullmass: UInt32.from(caps.hullmass),
|
|
16563
18254
|
capacity: UInt32.from(caps.capacity),
|
|
@@ -16568,6 +18259,7 @@ function recomputeCaps(entity) {
|
|
|
16568
18259
|
loaderLanes: (caps.loaderLanes ?? []).map(toLoaderLane),
|
|
16569
18260
|
gathererLanes: (caps.gathererLanes ?? []).map(toGathererLane),
|
|
16570
18261
|
crafterLanes: (caps.crafterLanes ?? []).map(toCrafterLane),
|
|
18262
|
+
builderLanes: (caps.builderLanes ?? []).map(toBuilderLane),
|
|
16571
18263
|
hauler: caps.hauler
|
|
16572
18264
|
? Types.hauler_stats.from({
|
|
16573
18265
|
capacity: caps.hauler.capacity,
|
|
@@ -16604,6 +18296,7 @@ function createProjectedEntity(entity) {
|
|
|
16604
18296
|
const loaderLanes = entity.loader_lanes ?? caps?.loaderLanes ?? [];
|
|
16605
18297
|
const gathererLanes = entity.gatherer_lanes ?? caps?.gathererLanes ?? [];
|
|
16606
18298
|
const crafterLanes = entity.crafter_lanes ?? caps?.crafterLanes ?? [];
|
|
18299
|
+
const builderLanes = entity.builder_lanes ?? caps?.builderLanes ?? [];
|
|
16607
18300
|
const engines = entity.engines ?? caps?.engines;
|
|
16608
18301
|
const generator = entity.generator ?? caps?.generator;
|
|
16609
18302
|
const hauler = entity.hauler ?? caps?.hauler;
|
|
@@ -16612,7 +18305,7 @@ function createProjectedEntity(entity) {
|
|
|
16612
18305
|
const cargo = entity.cargo.map(cargoItemToStack);
|
|
16613
18306
|
const projected = {
|
|
16614
18307
|
location: Coordinates.from(entity.coordinates),
|
|
16615
|
-
energy:
|
|
18308
|
+
energy: UInt32.from(entity.energy ?? 0),
|
|
16616
18309
|
cargo,
|
|
16617
18310
|
shipMass,
|
|
16618
18311
|
capacity: capacity ? UInt64.from(capacity) : undefined,
|
|
@@ -16623,6 +18316,7 @@ function createProjectedEntity(entity) {
|
|
|
16623
18316
|
loaderLanes,
|
|
16624
18317
|
gathererLanes,
|
|
16625
18318
|
crafterLanes,
|
|
18319
|
+
builderLanes,
|
|
16626
18320
|
get cargoMass() {
|
|
16627
18321
|
return calcStacksMass(this.cargo);
|
|
16628
18322
|
},
|
|
@@ -16668,13 +18362,13 @@ function applyRechargeTask(projected, _task, options) {
|
|
|
16668
18362
|
if (!projected.generator)
|
|
16669
18363
|
return;
|
|
16670
18364
|
if (options.complete) {
|
|
16671
|
-
projected.energy =
|
|
18365
|
+
projected.energy = UInt32.from(projected.generator.capacity);
|
|
16672
18366
|
}
|
|
16673
18367
|
else if (options.progress !== undefined) {
|
|
16674
18368
|
const capacity = Number(projected.generator.capacity);
|
|
16675
18369
|
const currentEnergy = Number(projected.energy);
|
|
16676
18370
|
const rechargeAmount = (capacity - currentEnergy) * options.progress;
|
|
16677
|
-
projected.energy =
|
|
18371
|
+
projected.energy = UInt32.from(Math.min(capacity, currentEnergy + rechargeAmount));
|
|
16678
18372
|
}
|
|
16679
18373
|
}
|
|
16680
18374
|
function applyFlightTask(projected, task, options) {
|
|
@@ -16693,8 +18387,8 @@ function applyFlightTask(projected, task, options) {
|
|
|
16693
18387
|
});
|
|
16694
18388
|
const partialEnergy = UInt64.from(Math.floor(Number(task.energy_cost ?? 0) * options.progress));
|
|
16695
18389
|
projected.energy = projected.energy.gt(partialEnergy)
|
|
16696
|
-
?
|
|
16697
|
-
:
|
|
18390
|
+
? UInt32.from(projected.energy.subtracting(partialEnergy))
|
|
18391
|
+
: UInt32.from(0);
|
|
16698
18392
|
}
|
|
16699
18393
|
}
|
|
16700
18394
|
function addCargoItem(projected, item) {
|
|
@@ -16716,16 +18410,16 @@ function applyRemoveCargoTask(projected, task) {
|
|
|
16716
18410
|
function applyEnergyCost(projected, task) {
|
|
16717
18411
|
if (!task.energy_cost)
|
|
16718
18412
|
return;
|
|
16719
|
-
const energyCost =
|
|
18413
|
+
const energyCost = UInt32.from(task.energy_cost);
|
|
16720
18414
|
projected.energy = projected.energy.gt(energyCost)
|
|
16721
|
-
?
|
|
16722
|
-
:
|
|
18415
|
+
? UInt32.from(projected.energy.subtracting(energyCost))
|
|
18416
|
+
: UInt32.from(0);
|
|
16723
18417
|
}
|
|
16724
18418
|
function applyGatherTask(projected, task, options) {
|
|
16725
18419
|
if (!options.complete)
|
|
16726
18420
|
return;
|
|
16727
18421
|
applyEnergyCost(projected, task);
|
|
16728
|
-
if (
|
|
18422
|
+
if (task.couplings.length === 0) {
|
|
16729
18423
|
applyAddCargoTask(projected, task);
|
|
16730
18424
|
}
|
|
16731
18425
|
}
|
|
@@ -16736,12 +18430,8 @@ function applyCraftTask(projected, task) {
|
|
|
16736
18430
|
for (let i = 0; i < task.cargo.length - 1; i++) {
|
|
16737
18431
|
removeCargoItem(projected, task.cargo[i]);
|
|
16738
18432
|
}
|
|
16739
|
-
|
|
16740
|
-
|
|
16741
|
-
function applyDeployTask(projected, task) {
|
|
16742
|
-
applyEnergyCost(projected, task);
|
|
16743
|
-
if (task.cargo.length > 0) {
|
|
16744
|
-
removeCargoItem(projected, task.cargo[0]);
|
|
18433
|
+
if (task.couplings.length === 0) {
|
|
18434
|
+
addCargoItem(projected, task.cargo[task.cargo.length - 1]);
|
|
16745
18435
|
}
|
|
16746
18436
|
}
|
|
16747
18437
|
function applyTask(projected, task) {
|
|
@@ -16767,9 +18457,6 @@ function applyTask(projected, task) {
|
|
|
16767
18457
|
case TaskType.CRAFT:
|
|
16768
18458
|
applyCraftTask(projected, task);
|
|
16769
18459
|
break;
|
|
16770
|
-
case TaskType.DEPLOY:
|
|
16771
|
-
applyDeployTask(projected, task);
|
|
16772
|
-
break;
|
|
16773
18460
|
case TaskType.UNDEPLOY:
|
|
16774
18461
|
case TaskType.DEMOLISH:
|
|
16775
18462
|
break;
|
|
@@ -16907,10 +18594,6 @@ function projectEntityAt(entity, now) {
|
|
|
16907
18594
|
if (taskComplete)
|
|
16908
18595
|
applyCraftTask(projected, task);
|
|
16909
18596
|
break;
|
|
16910
|
-
case TaskType.DEPLOY:
|
|
16911
|
-
if (taskComplete)
|
|
16912
|
-
applyDeployTask(projected, task);
|
|
16913
|
-
break;
|
|
16914
18597
|
case TaskType.UNDEPLOY:
|
|
16915
18598
|
case TaskType.DEMOLISH:
|
|
16916
18599
|
break;
|
|
@@ -16937,7 +18620,7 @@ function taskCargoChanges(task) {
|
|
|
16937
18620
|
case TaskType.UNWRAP:
|
|
16938
18621
|
return items.map((i) => toChange(i, 'in'));
|
|
16939
18622
|
case TaskType.GATHER:
|
|
16940
|
-
return task.
|
|
18623
|
+
return task.couplings.length > 0 ? [] : items.map((i) => toChange(i, 'in'));
|
|
16941
18624
|
case TaskType.UNLOAD:
|
|
16942
18625
|
return items.map((i) => toChange(i, 'out'));
|
|
16943
18626
|
case TaskType.CRAFT:
|
|
@@ -16950,6 +18633,49 @@ function taskCargoChanges(task) {
|
|
|
16950
18633
|
}
|
|
16951
18634
|
}
|
|
16952
18635
|
|
|
18636
|
+
const JOB_QUEUE_CAP = 25;
|
|
18637
|
+
function activeOn(jobs, socket, now) {
|
|
18638
|
+
return jobs
|
|
18639
|
+
.filter((j) => j.socket === socket && j.completesAt > now)
|
|
18640
|
+
.sort((a, b) => a.startsAt.getTime() - b.startsAt.getTime());
|
|
18641
|
+
}
|
|
18642
|
+
function jobsToLanes(jobs, socketCount, now) {
|
|
18643
|
+
const lanes = [];
|
|
18644
|
+
for (let socket = 0; socket < socketCount; socket++) {
|
|
18645
|
+
const entries = [];
|
|
18646
|
+
let cursor = null;
|
|
18647
|
+
for (const j of activeOn(jobs, socket, now)) {
|
|
18648
|
+
if (cursor && j.startsAt > cursor) {
|
|
18649
|
+
entries.push({ kind: 'idle', startsAt: cursor, completesAt: j.startsAt });
|
|
18650
|
+
}
|
|
18651
|
+
entries.push({ kind: 'job', startsAt: j.startsAt, completesAt: j.completesAt, job: j });
|
|
18652
|
+
cursor = j.completesAt;
|
|
18653
|
+
}
|
|
18654
|
+
lanes.push({ socket, entries });
|
|
18655
|
+
}
|
|
18656
|
+
return lanes;
|
|
18657
|
+
}
|
|
18658
|
+
function socketTail(jobs, socket, now) {
|
|
18659
|
+
const active = activeOn(jobs, socket, now);
|
|
18660
|
+
const last = active[active.length - 1];
|
|
18661
|
+
return last && last.completesAt > now ? last.completesAt : now;
|
|
18662
|
+
}
|
|
18663
|
+
function pickFabricator(jobs, sockets, durationBySocketMinutes, now) {
|
|
18664
|
+
let best = null;
|
|
18665
|
+
for (let slot = 0; slot < sockets.length; slot++) {
|
|
18666
|
+
if (!sockets[slot].open)
|
|
18667
|
+
continue;
|
|
18668
|
+
if (activeOn(jobs, slot, now).length >= JOB_QUEUE_CAP)
|
|
18669
|
+
continue;
|
|
18670
|
+
const startsAt = socketTail(jobs, slot, now);
|
|
18671
|
+
const completesAt = new Date(startsAt.getTime() + durationBySocketMinutes[slot] * 60000);
|
|
18672
|
+
if (!best || completesAt < best.completesAt) {
|
|
18673
|
+
best = { slot, startsAt, completesAt };
|
|
18674
|
+
}
|
|
18675
|
+
}
|
|
18676
|
+
return best;
|
|
18677
|
+
}
|
|
18678
|
+
|
|
16953
18679
|
function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
16954
18680
|
const ids = [];
|
|
16955
18681
|
const seen = new Set();
|
|
@@ -16984,15 +18710,16 @@ function taskCargoEffect(task) {
|
|
|
16984
18710
|
case TaskType.UNLOAD:
|
|
16985
18711
|
return { added: [], removed: task.cargo };
|
|
16986
18712
|
case TaskType.GATHER:
|
|
16987
|
-
return task.
|
|
18713
|
+
return task.couplings.length > 0
|
|
18714
|
+
? { added: [], removed: [] }
|
|
18715
|
+
: { added: task.cargo, removed: [] };
|
|
16988
18716
|
case TaskType.CRAFT:
|
|
16989
18717
|
if (task.cargo.length === 0)
|
|
16990
18718
|
return { added: [], removed: [] };
|
|
16991
|
-
return {
|
|
16992
|
-
|
|
16993
|
-
|
|
16994
|
-
|
|
16995
|
-
: { added: [], removed: [] };
|
|
18719
|
+
return {
|
|
18720
|
+
added: task.couplings.length === 0 ? [task.cargo[task.cargo.length - 1]] : [],
|
|
18721
|
+
removed: task.cargo.slice(0, -1),
|
|
18722
|
+
};
|
|
16996
18723
|
default:
|
|
16997
18724
|
return { added: [], removed: [] };
|
|
16998
18725
|
}
|
|
@@ -17170,31 +18897,24 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
17170
18897
|
effects.abandonsRunning = true;
|
|
17171
18898
|
if (t.energy_cost)
|
|
17172
18899
|
energyForfeited += t.energy_cost.toNumber();
|
|
17173
|
-
if (t.type.equals(TaskType.BUILDPLOT) && t.
|
|
17174
|
-
effects.keepsPlotDeposits = { plot: t.
|
|
17175
|
-
|
|
17176
|
-
const
|
|
17177
|
-
|
|
17178
|
-
|
|
17179
|
-
|
|
17180
|
-
const
|
|
17181
|
-
|
|
17182
|
-
|
|
17183
|
-
|
|
17184
|
-
|
|
17185
|
-
|
|
17186
|
-
|
|
17187
|
-
|
|
17188
|
-
|
|
17189
|
-
:
|
|
17190
|
-
|
|
17191
|
-
return {
|
|
17192
|
-
ok: false,
|
|
17193
|
-
blockedReason: CancelBlockReason.WOULD_OVERFILL,
|
|
17194
|
-
range,
|
|
17195
|
-
effects: { ...EMPTY_EFFECTS },
|
|
17196
|
-
};
|
|
17197
|
-
}
|
|
18900
|
+
if (t.type.equals(TaskType.BUILDPLOT) && t.couplings.length > 0)
|
|
18901
|
+
effects.keepsPlotDeposits = { plot: t.couplings[0].counterpart };
|
|
18902
|
+
for (const c of t.couplings) {
|
|
18903
|
+
const kind = c.kind.toNumber();
|
|
18904
|
+
effects.releasedHolds.push({ counterpart: c.counterpart, kind });
|
|
18905
|
+
if (kind === HoldKind.PULL) {
|
|
18906
|
+
effects.refunds.push({ giver: c.counterpart, cargo: t.cargo });
|
|
18907
|
+
const giver = input.counterparts?.get(c.counterpart.entity_id.toString());
|
|
18908
|
+
if (giver) {
|
|
18909
|
+
const returned = t.cargo.reduce((s, c) => s + calcCargoItemMass(c).toNumber(), 0);
|
|
18910
|
+
const cap = giver.capacity ? giver.capacity.toNumber() : Number.MAX_SAFE_INTEGER;
|
|
18911
|
+
if (giver.cargomass.toNumber() + returned > cap) {
|
|
18912
|
+
return {
|
|
18913
|
+
ok: false,
|
|
18914
|
+
blockedReason: CancelBlockReason.WOULD_OVERFILL,
|
|
18915
|
+
range,
|
|
18916
|
+
effects: { ...EMPTY_EFFECTS },
|
|
18917
|
+
};
|
|
17198
18918
|
}
|
|
17199
18919
|
}
|
|
17200
18920
|
}
|
|
@@ -17227,7 +18947,7 @@ function derivedLoaders(lanes) {
|
|
|
17227
18947
|
function acceleration(thrust, mass) {
|
|
17228
18948
|
if (mass <= 0)
|
|
17229
18949
|
return 0;
|
|
17230
|
-
return (thrust / mass) * PRECISION
|
|
18950
|
+
return (thrust / mass) * PRECISION;
|
|
17231
18951
|
}
|
|
17232
18952
|
function flightTime(distance, accel) {
|
|
17233
18953
|
if (accel <= 0 || distance <= 0)
|
|
@@ -17237,7 +18957,7 @@ function flightTime(distance, accel) {
|
|
|
17237
18957
|
function distance2d(ax, ay, bx, by) {
|
|
17238
18958
|
const dx = ax - bx;
|
|
17239
18959
|
const dy = ay - by;
|
|
17240
|
-
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
18960
|
+
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION);
|
|
17241
18961
|
}
|
|
17242
18962
|
function unwrapTransitDuration(itemMass, origin, dest) {
|
|
17243
18963
|
if (itemMass <= 0)
|
|
@@ -17402,10 +19122,10 @@ function hasGatherer(e) {
|
|
|
17402
19122
|
function maxTravelDistance(entity) {
|
|
17403
19123
|
return UInt32.from(entity.generator.capacity)
|
|
17404
19124
|
.dividing(entity.engines.drain)
|
|
17405
|
-
.multiplying(PRECISION
|
|
19125
|
+
.multiplying(PRECISION);
|
|
17406
19126
|
}
|
|
17407
19127
|
function calcEnergyUsage(entity, distance) {
|
|
17408
|
-
return distance.
|
|
19128
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION);
|
|
17409
19129
|
}
|
|
17410
19130
|
function energyPercent(entity) {
|
|
17411
19131
|
return (Number(entity.energy) / Number(entity.generator.capacity)) * 100;
|
|
@@ -17440,13 +19160,12 @@ function calc_gather_rate(gatherer, itemMass, stratum, richness) {
|
|
|
17440
19160
|
function calc_gather_energy(gatherer, duration) {
|
|
17441
19161
|
if (duration <= 0)
|
|
17442
19162
|
return UInt32.from(0);
|
|
17443
|
-
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION
|
|
17444
|
-
return UInt32.from(Math.min(Math.max(raw,
|
|
19163
|
+
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION);
|
|
19164
|
+
return UInt32.from(Math.min(Math.max(raw, 1000), 4294967295));
|
|
17445
19165
|
}
|
|
17446
19166
|
|
|
17447
19167
|
const BASE_HAUL_PENALTY_MILLI = 300;
|
|
17448
19168
|
const HAULER_EFFICIENCY_DENOM = 10000;
|
|
17449
|
-
const PRECISION = 10000;
|
|
17450
19169
|
function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
17451
19170
|
if (haulCount === 0)
|
|
17452
19171
|
return totalThrust;
|
|
@@ -17455,9 +19174,6 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
17455
19174
|
HAULER_EFFICIENCY_DENOM);
|
|
17456
19175
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
17457
19176
|
}
|
|
17458
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
17459
|
-
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
17460
|
-
}
|
|
17461
19177
|
|
|
17462
19178
|
const categoryColors = {
|
|
17463
19179
|
ore: '#C26D3F',
|
|
@@ -17604,6 +19320,7 @@ const capabilityNames = [
|
|
|
17604
19320
|
'Gathering',
|
|
17605
19321
|
'Warp',
|
|
17606
19322
|
'Crafting',
|
|
19323
|
+
'Build',
|
|
17607
19324
|
'Launch',
|
|
17608
19325
|
'Hauling',
|
|
17609
19326
|
];
|
|
@@ -17614,8 +19331,17 @@ const capabilityAttributes = [
|
|
|
17614
19331
|
attribute: 'capacity',
|
|
17615
19332
|
description: 'Cargo capacity added by hulls and installed Cargo Hold modules',
|
|
17616
19333
|
},
|
|
19334
|
+
{
|
|
19335
|
+
capability: 'Storage',
|
|
19336
|
+
attribute: 'drain',
|
|
19337
|
+
description: 'Fixed normal-travel drain contributed by an installed Cargo Hold',
|
|
19338
|
+
},
|
|
17617
19339
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
17618
|
-
{
|
|
19340
|
+
{
|
|
19341
|
+
capability: 'Movement',
|
|
19342
|
+
attribute: 'drain',
|
|
19343
|
+
description: 'Total installed energy consumed per tile of normal travel',
|
|
19344
|
+
},
|
|
17619
19345
|
{
|
|
17620
19346
|
capability: 'Energy',
|
|
17621
19347
|
attribute: 'capacity',
|
|
@@ -17640,6 +19366,12 @@ const capabilityAttributes = [
|
|
|
17640
19366
|
description: 'Energy consumed per second while crafting',
|
|
17641
19367
|
},
|
|
17642
19368
|
{ capability: 'Crafting', attribute: 'quality', description: 'Modifier on output quality' },
|
|
19369
|
+
{ capability: 'Build', attribute: 'speed', description: 'Build progress per second' },
|
|
19370
|
+
{
|
|
19371
|
+
capability: 'Build',
|
|
19372
|
+
attribute: 'drain',
|
|
19373
|
+
description: 'Energy consumed per second while building',
|
|
19374
|
+
},
|
|
17643
19375
|
{ capability: 'Launch', attribute: 'range', description: 'Maximum launch distance' },
|
|
17644
19376
|
{ capability: 'Launch', attribute: 'capacity', description: 'Maximum mass per launch' },
|
|
17645
19377
|
{ capability: 'Launch', attribute: 'drain', description: 'Energy consumed per launch' },
|
|
@@ -17656,7 +19388,7 @@ const capabilityAttributes = [
|
|
|
17656
19388
|
{
|
|
17657
19389
|
capability: 'Hauling',
|
|
17658
19390
|
attribute: 'drain',
|
|
17659
|
-
description: '
|
|
19391
|
+
description: 'Fixed normal-travel drain contributed by an installed Tractor Beam',
|
|
17660
19392
|
},
|
|
17661
19393
|
];
|
|
17662
19394
|
const invertedAttributes = new Set(['drain', 'mass']);
|
|
@@ -17697,6 +19429,10 @@ const SLOT_FORMULAS = {
|
|
|
17697
19429
|
0: { capability: 'Crafting', attribute: 'speed' },
|
|
17698
19430
|
1: { capability: 'Crafting', attribute: 'drain' },
|
|
17699
19431
|
},
|
|
19432
|
+
builder: {
|
|
19433
|
+
0: { capability: 'Build', attribute: 'speed' },
|
|
19434
|
+
1: { capability: 'Build', attribute: 'drain' },
|
|
19435
|
+
},
|
|
17700
19436
|
storage: {
|
|
17701
19437
|
0: { capability: 'Storage', attribute: 'capacity' },
|
|
17702
19438
|
1: { capability: 'Storage', attribute: 'capacity' },
|
|
@@ -17730,6 +19466,7 @@ const KIND_TO_ITEM_ID = {
|
|
|
17730
19466
|
gatherer: ITEM_GATHERER_T1,
|
|
17731
19467
|
loader: ITEM_LOADER_T1,
|
|
17732
19468
|
crafter: ITEM_CRAFTER_T1,
|
|
19469
|
+
builder: ITEM_BUILDER_T1,
|
|
17733
19470
|
storage: ITEM_STORAGE_T1,
|
|
17734
19471
|
hauler: ITEM_HAULER_T1,
|
|
17735
19472
|
warp: ITEM_WARP_T1,
|
|
@@ -18022,6 +19759,20 @@ function rollupCrafter(lanes) {
|
|
|
18022
19759
|
drain: UInt32.from(totalDrain),
|
|
18023
19760
|
};
|
|
18024
19761
|
}
|
|
19762
|
+
function rollupBuilder(lanes) {
|
|
19763
|
+
if (lanes.length === 0)
|
|
19764
|
+
return undefined;
|
|
19765
|
+
let totalSpeed = 0;
|
|
19766
|
+
let totalDrain = 0;
|
|
19767
|
+
for (const l of lanes) {
|
|
19768
|
+
totalSpeed += Number(l.speed);
|
|
19769
|
+
totalDrain += Number(l.drain);
|
|
19770
|
+
}
|
|
19771
|
+
return {
|
|
19772
|
+
speed: UInt16.from(Math.min(totalSpeed, 65535)),
|
|
19773
|
+
drain: UInt32.from(totalDrain),
|
|
19774
|
+
};
|
|
19775
|
+
}
|
|
18025
19776
|
function rollupLoaders(lanes) {
|
|
18026
19777
|
if (lanes.length === 0)
|
|
18027
19778
|
return undefined;
|
|
@@ -18125,8 +19876,8 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18125
19876
|
return {
|
|
18126
19877
|
capability: 'Generator',
|
|
18127
19878
|
attributes: [
|
|
18128
|
-
{ label: 'Capacity', value: caps.capacity },
|
|
18129
|
-
{ label: 'Recharge', value: caps.recharge },
|
|
19879
|
+
{ label: 'Capacity', value: toWholeEnergy$1(caps.capacity) },
|
|
19880
|
+
{ label: 'Recharge', value: toWholeEnergy$1(caps.recharge) },
|
|
18130
19881
|
],
|
|
18131
19882
|
};
|
|
18132
19883
|
}
|
|
@@ -18136,7 +19887,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18136
19887
|
capability: 'Gatherer',
|
|
18137
19888
|
attributes: [
|
|
18138
19889
|
{ label: 'Yield', value: caps.yield },
|
|
18139
|
-
{ label: 'Drain', value: caps.drain },
|
|
19890
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18140
19891
|
{ label: 'Depth', value: caps.depth },
|
|
18141
19892
|
],
|
|
18142
19893
|
};
|
|
@@ -18158,7 +19909,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18158
19909
|
capability: 'Crafting',
|
|
18159
19910
|
attributes: [
|
|
18160
19911
|
{ label: 'Speed', value: caps.speed },
|
|
18161
|
-
{ label: 'Drain', value: caps.drain },
|
|
19912
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18162
19913
|
],
|
|
18163
19914
|
};
|
|
18164
19915
|
}
|
|
@@ -18169,12 +19920,12 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18169
19920
|
attributes: [
|
|
18170
19921
|
{ label: 'Capacity', value: caps.capacity },
|
|
18171
19922
|
{ label: 'Efficiency', value: caps.efficiency },
|
|
18172
|
-
{ label: 'Drain', value: caps.drain },
|
|
19923
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18173
19924
|
],
|
|
18174
19925
|
};
|
|
18175
19926
|
}
|
|
18176
19927
|
case MODULE_STORAGE: {
|
|
18177
|
-
const caps = computeStorageCapabilities(stats);
|
|
19928
|
+
const caps = computeStorageCapabilities(stats, tier);
|
|
18178
19929
|
return {
|
|
18179
19930
|
capability: 'Storage',
|
|
18180
19931
|
attributes: [
|
|
@@ -18182,6 +19933,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18182
19933
|
label: 'Cargo Capacity',
|
|
18183
19934
|
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
18184
19935
|
},
|
|
19936
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18185
19937
|
],
|
|
18186
19938
|
};
|
|
18187
19939
|
}
|
|
@@ -18192,7 +19944,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18192
19944
|
attributes: [
|
|
18193
19945
|
{
|
|
18194
19946
|
label: 'Energy Capacity',
|
|
18195
|
-
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
19947
|
+
value: toWholeEnergy$1(applySlotMultiplierUint32(caps.capacity, outputPct)),
|
|
18196
19948
|
},
|
|
18197
19949
|
],
|
|
18198
19950
|
};
|
|
@@ -18234,10 +19986,19 @@ function resolveModule(id, stats) {
|
|
|
18234
19986
|
attributes,
|
|
18235
19987
|
};
|
|
18236
19988
|
}
|
|
18237
|
-
function hullCapsForEntity(itemId, decoded) {
|
|
19989
|
+
function hullCapsForEntity(itemId, decoded, packedStats) {
|
|
19990
|
+
const hullStats = getPackedEntityType(itemId)?.equals(ENTITY_SHIP)
|
|
19991
|
+
? {
|
|
19992
|
+
strength: decodeStat(packedStats, 0),
|
|
19993
|
+
hardness: decodeStat(packedStats, 1),
|
|
19994
|
+
plasticity: decodeStat(packedStats, 2),
|
|
19995
|
+
volatility: decodeStat(packedStats, 3),
|
|
19996
|
+
conductivity: decodeStat(packedStats, 4),
|
|
19997
|
+
}
|
|
19998
|
+
: decoded;
|
|
18238
19999
|
return {
|
|
18239
|
-
hullmass: computeBaseHullmass(
|
|
18240
|
-
capacity: computeBaseCapacity(itemId,
|
|
20000
|
+
hullmass: computeBaseHullmass(itemId, hullStats),
|
|
20001
|
+
capacity: computeBaseCapacity(itemId, hullStats),
|
|
18241
20002
|
};
|
|
18242
20003
|
}
|
|
18243
20004
|
function resolveEntity(id, stats, modules) {
|
|
@@ -18254,7 +20015,7 @@ function resolveEntity(id, stats, modules) {
|
|
|
18254
20015
|
decoded.density = decodeStat(bigStats, 1);
|
|
18255
20016
|
if (decoded.hardness === undefined)
|
|
18256
20017
|
decoded.hardness = decodeStat(bigStats, 2);
|
|
18257
|
-
const hullCaps = hullCapsForEntity(id, decoded);
|
|
20018
|
+
const hullCaps = hullCapsForEntity(id, decoded, bigStats);
|
|
18258
20019
|
attributes = [
|
|
18259
20020
|
{
|
|
18260
20021
|
capability: 'Hull',
|
|
@@ -18490,6 +20251,9 @@ function moduleSlotsForImmutable(modules) {
|
|
|
18490
20251
|
}));
|
|
18491
20252
|
}
|
|
18492
20253
|
const IMAGE_HOST_URL = 'https://item.shiploadgame.com/item';
|
|
20254
|
+
function toWholeEnergy(milli) {
|
|
20255
|
+
return Math.floor((milli + 500) / 1000);
|
|
20256
|
+
}
|
|
18493
20257
|
function bytesToBase64Url(bytes) {
|
|
18494
20258
|
let binary = '';
|
|
18495
20259
|
for (let i = 0; i < bytes.byteLength; i++)
|
|
@@ -18555,8 +20319,14 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18555
20319
|
const thm = decodeStat(stats, 1);
|
|
18556
20320
|
base.push({ first: 'volatility', second: ['uint16', vol] });
|
|
18557
20321
|
base.push({ first: 'thermal', second: ['uint16', thm] });
|
|
18558
|
-
base.push({
|
|
18559
|
-
|
|
20322
|
+
base.push({
|
|
20323
|
+
first: 'thrust',
|
|
20324
|
+
second: ['uint32', computeEngineThrust(computeEffectiveModuleStat(vol))],
|
|
20325
|
+
});
|
|
20326
|
+
base.push({
|
|
20327
|
+
first: 'drain',
|
|
20328
|
+
second: ['uint16', computeEngineDrain(computeEffectiveModuleStat(thm))],
|
|
20329
|
+
});
|
|
18560
20330
|
break;
|
|
18561
20331
|
}
|
|
18562
20332
|
case MODULE_GENERATOR: {
|
|
@@ -18564,8 +20334,20 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18564
20334
|
const ref = decodeStat(stats, 1);
|
|
18565
20335
|
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
18566
20336
|
base.push({ first: 'reflectivity', second: ['uint16', ref] });
|
|
18567
|
-
base.push({
|
|
18568
|
-
|
|
20337
|
+
base.push({
|
|
20338
|
+
first: 'capacity',
|
|
20339
|
+
second: [
|
|
20340
|
+
'uint16',
|
|
20341
|
+
toWholeEnergy(computeGeneratorCap(computeEffectiveModuleStat(res))),
|
|
20342
|
+
],
|
|
20343
|
+
});
|
|
20344
|
+
base.push({
|
|
20345
|
+
first: 'recharge',
|
|
20346
|
+
second: [
|
|
20347
|
+
'uint16',
|
|
20348
|
+
toWholeEnergy(computeGeneratorRech(computeEffectiveModuleStat(ref))),
|
|
20349
|
+
],
|
|
20350
|
+
});
|
|
18569
20351
|
break;
|
|
18570
20352
|
}
|
|
18571
20353
|
case MODULE_GATHERER: {
|
|
@@ -18576,7 +20358,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18576
20358
|
base.push({ first: 'hardness', second: ['uint16', hrd] });
|
|
18577
20359
|
base.push({ first: 'saturation', second: ['uint16', sat] });
|
|
18578
20360
|
base.push({ first: 'yield', second: ['uint16', computeGathererYield(str)] });
|
|
18579
|
-
base.push({
|
|
20361
|
+
base.push({
|
|
20362
|
+
first: 'drain',
|
|
20363
|
+
second: ['uint16', toWholeEnergy(computeGathererDrain(sat))],
|
|
20364
|
+
});
|
|
18580
20365
|
base.push({ first: 'depth', second: ['uint16', computeGathererDepth(hrd, item.tier)] });
|
|
18581
20366
|
break;
|
|
18582
20367
|
}
|
|
@@ -18601,7 +20386,16 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18601
20386
|
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
18602
20387
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18603
20388
|
base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(fin)] });
|
|
18604
|
-
base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(con)] });
|
|
20389
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeCrafterDrain(con))] });
|
|
20390
|
+
break;
|
|
20391
|
+
}
|
|
20392
|
+
case MODULE_BUILDER: {
|
|
20393
|
+
const res = decodeStat(stats, 0);
|
|
20394
|
+
const fin = decodeStat(stats, 1);
|
|
20395
|
+
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
20396
|
+
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
20397
|
+
base.push({ first: 'speed', second: ['uint16', computeBuilderSpeed(res)] });
|
|
20398
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeBuilderDrain(fin))] });
|
|
18605
20399
|
break;
|
|
18606
20400
|
}
|
|
18607
20401
|
case MODULE_STORAGE: {
|
|
@@ -18615,7 +20409,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18615
20409
|
base.push({ first: 'cohesion', second: ['uint16', com] });
|
|
18616
20410
|
base.push({
|
|
18617
20411
|
first: 'capacity',
|
|
18618
|
-
second: ['uint32', computeCargoBayCapacity(str, den, hrd
|
|
20412
|
+
second: ['uint32', computeCargoBayCapacity(str, den, hrd)],
|
|
20413
|
+
});
|
|
20414
|
+
base.push({
|
|
20415
|
+
first: 'drain',
|
|
20416
|
+
second: ['uint16', toWholeEnergy(computeCargoBayDrain(com, item.tier))],
|
|
18619
20417
|
});
|
|
18620
20418
|
break;
|
|
18621
20419
|
}
|
|
@@ -18630,7 +20428,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18630
20428
|
base.push({ first: 'insulation', second: ['uint16', ins] });
|
|
18631
20429
|
base.push({
|
|
18632
20430
|
first: 'capacity',
|
|
18633
|
-
second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
|
|
20431
|
+
second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
|
|
18634
20432
|
});
|
|
18635
20433
|
break;
|
|
18636
20434
|
}
|
|
@@ -18643,7 +20441,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18643
20441
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18644
20442
|
base.push({ first: 'capacity', second: ['uint8', computeHaulerCapacity(res, item.tier)] });
|
|
18645
20443
|
base.push({ first: 'efficiency', second: ['uint16', computeHaulerEfficiency(pla)] });
|
|
18646
|
-
base.push({
|
|
20444
|
+
base.push({
|
|
20445
|
+
first: 'drain',
|
|
20446
|
+
second: ['uint16', toWholeEnergy(computeHaulerDrain(con, item.tier))],
|
|
20447
|
+
});
|
|
18647
20448
|
break;
|
|
18648
20449
|
}
|
|
18649
20450
|
}
|
|
@@ -18696,6 +20497,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18696
20497
|
deserializeModule: deserializeModule,
|
|
18697
20498
|
deserializeEntity: deserializeEntity,
|
|
18698
20499
|
deserializeAsset: deserializeAsset,
|
|
20500
|
+
toWholeEnergy: toWholeEnergy$1,
|
|
18699
20501
|
computeBaseHullmass: computeBaseHullmass$1,
|
|
18700
20502
|
computeBaseCapacityShip: computeBaseCapacityShip,
|
|
18701
20503
|
computeBaseCapacityContainer: computeBaseCapacityContainer,
|
|
@@ -18715,9 +20517,13 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18715
20517
|
computeLoaderThrust: computeLoaderThrust,
|
|
18716
20518
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
18717
20519
|
computeCrafterDrain: computeCrafterDrain,
|
|
20520
|
+
computeBuilderSpeed: computeBuilderSpeed,
|
|
20521
|
+
computeBuilderDrain: computeBuilderDrain,
|
|
18718
20522
|
computeHaulerCapacity: computeHaulerCapacity,
|
|
18719
20523
|
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
18720
|
-
|
|
20524
|
+
supportDrainTierPercent: supportDrainTierPercent,
|
|
20525
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
20526
|
+
computeCargoBayDrain: computeCargoBayDrain,
|
|
18721
20527
|
computeWarpRange: computeWarpRange,
|
|
18722
20528
|
computeCargoBayCapacity: computeCargoBayCapacity,
|
|
18723
20529
|
computeBatteryBankCapacity: computeBatteryBankCapacity,
|
|
@@ -18963,5 +20769,5 @@ function planParallelTransfer(entity, target) {
|
|
|
18963
20769
|
return allocateProportional(laneWeights, requestedQty).filter((e) => e.quantity > 0);
|
|
18964
20770
|
}
|
|
18965
20771
|
|
|
18966
|
-
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_HAUL_PENALTY_MILLI$1 as BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ClusterManager, ConstructionManager, Coordinates, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HAULER_EFFICIENCY_DENOM$1 as HAULER_EFFICIENCY_DENOM, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, InventoryAccessor, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION$1 as PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass$1 as computeBaseHullmass, computeBatteryCapabilities, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerDrain, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, incomingHoldMass, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, kindCan, laneKeyForModule, lerp$1 as lerp, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setScanProvider, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
|
|
20772
|
+
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_HAUL_PENALTY_MILLI$1 as BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ClusterManager, ConstructionManager, Coordinates, DEFAULT_BASE_HULLMASS, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HAULER_EFFICIENCY_DENOM$1 as HAULER_EFFICIENCY_DENOM, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_BUILDER_T1, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_DREDGER_T1_PACKED, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1_PACKED, ITEM_PROSPECTOR_T1_PACKED, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TENDER_T1_PACKED, ITEM_TUG_T1_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WORKSHOP_T1_PACKED, ITEM_WRANGLER_T1_PACKED, ITEM_WRIGHT_T1_PACKED, InventoryAccessor, JOB_QUEUE_CAP, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_BUILDER, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass$1 as computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, incomingHoldMass, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, jobsToLanes, kindCan, laneKeyForModule, lerp$1 as lerp, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, pickFabricator, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
|
|
18967
20773
|
//# sourceMappingURL=shipload.m.js.map
|