@shipload/sdk 1.0.0-next.51 → 1.0.0-next.52
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 +470 -157
- package/lib/shipload.js +2309 -492
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2279 -491
- 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 +11 -2
- 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 +887 -118
- package/src/derivation/capabilities.test.ts +81 -4
- package/src/derivation/capabilities.ts +162 -57
- 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,47 +4629,31 @@ 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: 10005,
|
|
4637
|
+
quantity: 300
|
|
4308
4638
|
},
|
|
4309
4639
|
{
|
|
4310
|
-
itemId:
|
|
4311
|
-
quantity:
|
|
4640
|
+
itemId: 10002,
|
|
4641
|
+
quantity: 300
|
|
4312
4642
|
}
|
|
4313
4643
|
],
|
|
4314
4644
|
statSlots: [
|
|
4315
|
-
{
|
|
4316
|
-
sources: [
|
|
4317
|
-
{
|
|
4318
|
-
inputIndex: 0,
|
|
4319
|
-
statIndex: 0
|
|
4320
|
-
}
|
|
4321
|
-
]
|
|
4322
|
-
},
|
|
4323
|
-
{
|
|
4324
|
-
sources: [
|
|
4325
|
-
{
|
|
4326
|
-
inputIndex: 0,
|
|
4327
|
-
statIndex: 1
|
|
4328
|
-
}
|
|
4329
|
-
]
|
|
4330
|
-
},
|
|
4331
4645
|
{
|
|
4332
4646
|
sources: [
|
|
4333
4647
|
{
|
|
4334
4648
|
inputIndex: 1,
|
|
4335
|
-
statIndex:
|
|
4649
|
+
statIndex: 1
|
|
4336
4650
|
}
|
|
4337
4651
|
]
|
|
4338
4652
|
},
|
|
4339
4653
|
{
|
|
4340
4654
|
sources: [
|
|
4341
4655
|
{
|
|
4342
|
-
inputIndex:
|
|
4656
|
+
inputIndex: 0,
|
|
4343
4657
|
statIndex: 1
|
|
4344
4658
|
}
|
|
4345
4659
|
]
|
|
@@ -4349,28 +4663,16 @@ var recipes = [
|
|
|
4349
4663
|
]
|
|
4350
4664
|
},
|
|
4351
4665
|
{
|
|
4352
|
-
outputItemId:
|
|
4353
|
-
outputMass:
|
|
4666
|
+
outputItemId: 10200,
|
|
4667
|
+
outputMass: 1900000,
|
|
4354
4668
|
inputs: [
|
|
4355
4669
|
{
|
|
4356
4670
|
itemId: 10001,
|
|
4357
|
-
quantity:
|
|
4671
|
+
quantity: 600
|
|
4358
4672
|
},
|
|
4359
4673
|
{
|
|
4360
4674
|
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
|
|
4675
|
+
quantity: 600
|
|
4374
4676
|
}
|
|
4375
4677
|
],
|
|
4376
4678
|
statSlots: [
|
|
@@ -4392,10 +4694,18 @@ var recipes = [
|
|
|
4392
4694
|
},
|
|
4393
4695
|
{
|
|
4394
4696
|
sources: [
|
|
4697
|
+
{
|
|
4698
|
+
inputIndex: 1,
|
|
4699
|
+
statIndex: 0
|
|
4700
|
+
}
|
|
4395
4701
|
]
|
|
4396
4702
|
},
|
|
4397
4703
|
{
|
|
4398
4704
|
sources: [
|
|
4705
|
+
{
|
|
4706
|
+
inputIndex: 1,
|
|
4707
|
+
statIndex: 1
|
|
4708
|
+
}
|
|
4399
4709
|
]
|
|
4400
4710
|
}
|
|
4401
4711
|
],
|
|
@@ -4567,12 +4877,28 @@ var recipes = [
|
|
|
4567
4877
|
]
|
|
4568
4878
|
},
|
|
4569
4879
|
{
|
|
4570
|
-
outputItemId:
|
|
4571
|
-
outputMass:
|
|
4880
|
+
outputItemId: 10210,
|
|
4881
|
+
outputMass: 1600000,
|
|
4572
4882
|
inputs: [
|
|
4573
4883
|
{
|
|
4574
|
-
itemId:
|
|
4575
|
-
quantity:
|
|
4884
|
+
itemId: 10001,
|
|
4885
|
+
quantity: 200
|
|
4886
|
+
},
|
|
4887
|
+
{
|
|
4888
|
+
itemId: 10008,
|
|
4889
|
+
quantity: 200
|
|
4890
|
+
},
|
|
4891
|
+
{
|
|
4892
|
+
itemId: 10007,
|
|
4893
|
+
quantity: 200
|
|
4894
|
+
},
|
|
4895
|
+
{
|
|
4896
|
+
itemId: 10003,
|
|
4897
|
+
quantity: 200
|
|
4898
|
+
},
|
|
4899
|
+
{
|
|
4900
|
+
itemId: 10006,
|
|
4901
|
+
quantity: 200
|
|
4576
4902
|
}
|
|
4577
4903
|
],
|
|
4578
4904
|
statSlots: [
|
|
@@ -4587,42 +4913,761 @@ var recipes = [
|
|
|
4587
4913
|
{
|
|
4588
4914
|
sources: [
|
|
4589
4915
|
{
|
|
4590
|
-
inputIndex:
|
|
4591
|
-
statIndex:
|
|
4916
|
+
inputIndex: 1,
|
|
4917
|
+
statIndex: 0
|
|
4592
4918
|
}
|
|
4593
4919
|
]
|
|
4594
4920
|
},
|
|
4595
4921
|
{
|
|
4596
4922
|
sources: [
|
|
4597
4923
|
{
|
|
4598
|
-
inputIndex:
|
|
4599
|
-
statIndex:
|
|
4924
|
+
inputIndex: 2,
|
|
4925
|
+
statIndex: 0
|
|
4600
4926
|
}
|
|
4601
4927
|
]
|
|
4602
|
-
}
|
|
4603
|
-
],
|
|
4604
|
-
blendWeights: [
|
|
4605
|
-
]
|
|
4606
|
-
},
|
|
4607
|
-
{
|
|
4608
|
-
outputItemId: 20002,
|
|
4609
|
-
outputMass: 4800,
|
|
4610
|
-
inputs: [
|
|
4611
|
-
{
|
|
4612
|
-
itemId: 402,
|
|
4613
|
-
quantity: 6
|
|
4614
4928
|
},
|
|
4615
|
-
{
|
|
4616
|
-
itemId: 502,
|
|
4617
|
-
quantity: 6
|
|
4618
|
-
}
|
|
4619
|
-
],
|
|
4620
|
-
statSlots: [
|
|
4621
4929
|
{
|
|
4622
4930
|
sources: [
|
|
4623
4931
|
{
|
|
4624
|
-
inputIndex:
|
|
4625
|
-
statIndex:
|
|
4932
|
+
inputIndex: 3,
|
|
4933
|
+
statIndex: 0
|
|
4934
|
+
}
|
|
4935
|
+
]
|
|
4936
|
+
},
|
|
4937
|
+
{
|
|
4938
|
+
sources: [
|
|
4939
|
+
{
|
|
4940
|
+
inputIndex: 4,
|
|
4941
|
+
statIndex: 0
|
|
4942
|
+
}
|
|
4943
|
+
]
|
|
4944
|
+
}
|
|
4945
|
+
],
|
|
4946
|
+
blendWeights: [
|
|
4947
|
+
]
|
|
4948
|
+
},
|
|
4949
|
+
{
|
|
4950
|
+
outputItemId: 10211,
|
|
4951
|
+
outputMass: 2400000,
|
|
4952
|
+
inputs: [
|
|
4953
|
+
{
|
|
4954
|
+
itemId: 10005,
|
|
4955
|
+
quantity: 100
|
|
4956
|
+
},
|
|
4957
|
+
{
|
|
4958
|
+
itemId: 10002,
|
|
4959
|
+
quantity: 100
|
|
4960
|
+
},
|
|
4961
|
+
{
|
|
4962
|
+
itemId: 10010,
|
|
4963
|
+
quantity: 100
|
|
4964
|
+
},
|
|
4965
|
+
{
|
|
4966
|
+
itemId: 10009,
|
|
4967
|
+
quantity: 100
|
|
4968
|
+
},
|
|
4969
|
+
{
|
|
4970
|
+
itemId: 10004,
|
|
4971
|
+
quantity: 100
|
|
4972
|
+
},
|
|
4973
|
+
{
|
|
4974
|
+
itemId: 10210,
|
|
4975
|
+
quantity: 1
|
|
4976
|
+
}
|
|
4977
|
+
],
|
|
4978
|
+
statSlots: [
|
|
4979
|
+
{
|
|
4980
|
+
sources: [
|
|
4981
|
+
{
|
|
4982
|
+
inputIndex: 0,
|
|
4983
|
+
statIndex: 0
|
|
4984
|
+
},
|
|
4985
|
+
{
|
|
4986
|
+
inputIndex: 5,
|
|
4987
|
+
statIndex: 0
|
|
4988
|
+
}
|
|
4989
|
+
]
|
|
4990
|
+
},
|
|
4991
|
+
{
|
|
4992
|
+
sources: [
|
|
4993
|
+
{
|
|
4994
|
+
inputIndex: 1,
|
|
4995
|
+
statIndex: 0
|
|
4996
|
+
},
|
|
4997
|
+
{
|
|
4998
|
+
inputIndex: 5,
|
|
4999
|
+
statIndex: 1
|
|
5000
|
+
}
|
|
5001
|
+
]
|
|
5002
|
+
},
|
|
5003
|
+
{
|
|
5004
|
+
sources: [
|
|
5005
|
+
{
|
|
5006
|
+
inputIndex: 2,
|
|
5007
|
+
statIndex: 0
|
|
5008
|
+
},
|
|
5009
|
+
{
|
|
5010
|
+
inputIndex: 5,
|
|
5011
|
+
statIndex: 2
|
|
5012
|
+
}
|
|
5013
|
+
]
|
|
5014
|
+
},
|
|
5015
|
+
{
|
|
5016
|
+
sources: [
|
|
5017
|
+
{
|
|
5018
|
+
inputIndex: 3,
|
|
5019
|
+
statIndex: 0
|
|
5020
|
+
},
|
|
5021
|
+
{
|
|
5022
|
+
inputIndex: 5,
|
|
5023
|
+
statIndex: 3
|
|
5024
|
+
}
|
|
5025
|
+
]
|
|
5026
|
+
},
|
|
5027
|
+
{
|
|
5028
|
+
sources: [
|
|
5029
|
+
{
|
|
5030
|
+
inputIndex: 4,
|
|
5031
|
+
statIndex: 0
|
|
5032
|
+
},
|
|
5033
|
+
{
|
|
5034
|
+
inputIndex: 5,
|
|
5035
|
+
statIndex: 4
|
|
5036
|
+
}
|
|
5037
|
+
]
|
|
5038
|
+
}
|
|
5039
|
+
],
|
|
5040
|
+
blendWeights: [
|
|
5041
|
+
],
|
|
5042
|
+
sourceSubclass: 10210
|
|
5043
|
+
},
|
|
5044
|
+
{
|
|
5045
|
+
outputItemId: 10212,
|
|
5046
|
+
outputMass: 2400000,
|
|
5047
|
+
inputs: [
|
|
5048
|
+
{
|
|
5049
|
+
itemId: 10005,
|
|
5050
|
+
quantity: 100
|
|
5051
|
+
},
|
|
5052
|
+
{
|
|
5053
|
+
itemId: 10002,
|
|
5054
|
+
quantity: 100
|
|
5055
|
+
},
|
|
5056
|
+
{
|
|
5057
|
+
itemId: 10010,
|
|
5058
|
+
quantity: 100
|
|
5059
|
+
},
|
|
5060
|
+
{
|
|
5061
|
+
itemId: 10009,
|
|
5062
|
+
quantity: 100
|
|
5063
|
+
},
|
|
5064
|
+
{
|
|
5065
|
+
itemId: 10004,
|
|
5066
|
+
quantity: 100
|
|
5067
|
+
},
|
|
5068
|
+
{
|
|
5069
|
+
itemId: 10210,
|
|
5070
|
+
quantity: 1
|
|
5071
|
+
}
|
|
5072
|
+
],
|
|
5073
|
+
statSlots: [
|
|
5074
|
+
{
|
|
5075
|
+
sources: [
|
|
5076
|
+
{
|
|
5077
|
+
inputIndex: 0,
|
|
5078
|
+
statIndex: 0
|
|
5079
|
+
},
|
|
5080
|
+
{
|
|
5081
|
+
inputIndex: 5,
|
|
5082
|
+
statIndex: 0
|
|
5083
|
+
}
|
|
5084
|
+
]
|
|
5085
|
+
},
|
|
5086
|
+
{
|
|
5087
|
+
sources: [
|
|
5088
|
+
{
|
|
5089
|
+
inputIndex: 1,
|
|
5090
|
+
statIndex: 0
|
|
5091
|
+
},
|
|
5092
|
+
{
|
|
5093
|
+
inputIndex: 5,
|
|
5094
|
+
statIndex: 1
|
|
5095
|
+
}
|
|
5096
|
+
]
|
|
5097
|
+
},
|
|
5098
|
+
{
|
|
5099
|
+
sources: [
|
|
5100
|
+
{
|
|
5101
|
+
inputIndex: 2,
|
|
5102
|
+
statIndex: 0
|
|
5103
|
+
},
|
|
5104
|
+
{
|
|
5105
|
+
inputIndex: 5,
|
|
5106
|
+
statIndex: 2
|
|
5107
|
+
}
|
|
5108
|
+
]
|
|
5109
|
+
},
|
|
5110
|
+
{
|
|
5111
|
+
sources: [
|
|
5112
|
+
{
|
|
5113
|
+
inputIndex: 3,
|
|
5114
|
+
statIndex: 0
|
|
5115
|
+
},
|
|
5116
|
+
{
|
|
5117
|
+
inputIndex: 5,
|
|
5118
|
+
statIndex: 3
|
|
5119
|
+
}
|
|
5120
|
+
]
|
|
5121
|
+
},
|
|
5122
|
+
{
|
|
5123
|
+
sources: [
|
|
5124
|
+
{
|
|
5125
|
+
inputIndex: 4,
|
|
5126
|
+
statIndex: 0
|
|
5127
|
+
},
|
|
5128
|
+
{
|
|
5129
|
+
inputIndex: 5,
|
|
5130
|
+
statIndex: 4
|
|
5131
|
+
}
|
|
5132
|
+
]
|
|
5133
|
+
}
|
|
5134
|
+
],
|
|
5135
|
+
blendWeights: [
|
|
5136
|
+
],
|
|
5137
|
+
sourceSubclass: 10210
|
|
5138
|
+
},
|
|
5139
|
+
{
|
|
5140
|
+
outputItemId: 10213,
|
|
5141
|
+
outputMass: 2400000,
|
|
5142
|
+
inputs: [
|
|
5143
|
+
{
|
|
5144
|
+
itemId: 10005,
|
|
5145
|
+
quantity: 100
|
|
5146
|
+
},
|
|
5147
|
+
{
|
|
5148
|
+
itemId: 10002,
|
|
5149
|
+
quantity: 100
|
|
5150
|
+
},
|
|
5151
|
+
{
|
|
5152
|
+
itemId: 10010,
|
|
5153
|
+
quantity: 100
|
|
5154
|
+
},
|
|
5155
|
+
{
|
|
5156
|
+
itemId: 10009,
|
|
5157
|
+
quantity: 100
|
|
5158
|
+
},
|
|
5159
|
+
{
|
|
5160
|
+
itemId: 10004,
|
|
5161
|
+
quantity: 100
|
|
5162
|
+
},
|
|
5163
|
+
{
|
|
5164
|
+
itemId: 10210,
|
|
5165
|
+
quantity: 1
|
|
5166
|
+
}
|
|
5167
|
+
],
|
|
5168
|
+
statSlots: [
|
|
5169
|
+
{
|
|
5170
|
+
sources: [
|
|
5171
|
+
{
|
|
5172
|
+
inputIndex: 0,
|
|
5173
|
+
statIndex: 0
|
|
5174
|
+
},
|
|
5175
|
+
{
|
|
5176
|
+
inputIndex: 5,
|
|
5177
|
+
statIndex: 0
|
|
5178
|
+
}
|
|
5179
|
+
]
|
|
5180
|
+
},
|
|
5181
|
+
{
|
|
5182
|
+
sources: [
|
|
5183
|
+
{
|
|
5184
|
+
inputIndex: 1,
|
|
5185
|
+
statIndex: 0
|
|
5186
|
+
},
|
|
5187
|
+
{
|
|
5188
|
+
inputIndex: 5,
|
|
5189
|
+
statIndex: 1
|
|
5190
|
+
}
|
|
5191
|
+
]
|
|
5192
|
+
},
|
|
5193
|
+
{
|
|
5194
|
+
sources: [
|
|
5195
|
+
{
|
|
5196
|
+
inputIndex: 2,
|
|
5197
|
+
statIndex: 0
|
|
5198
|
+
},
|
|
5199
|
+
{
|
|
5200
|
+
inputIndex: 5,
|
|
5201
|
+
statIndex: 2
|
|
5202
|
+
}
|
|
5203
|
+
]
|
|
5204
|
+
},
|
|
5205
|
+
{
|
|
5206
|
+
sources: [
|
|
5207
|
+
{
|
|
5208
|
+
inputIndex: 3,
|
|
5209
|
+
statIndex: 0
|
|
5210
|
+
},
|
|
5211
|
+
{
|
|
5212
|
+
inputIndex: 5,
|
|
5213
|
+
statIndex: 3
|
|
5214
|
+
}
|
|
5215
|
+
]
|
|
5216
|
+
},
|
|
5217
|
+
{
|
|
5218
|
+
sources: [
|
|
5219
|
+
{
|
|
5220
|
+
inputIndex: 4,
|
|
5221
|
+
statIndex: 0
|
|
5222
|
+
},
|
|
5223
|
+
{
|
|
5224
|
+
inputIndex: 5,
|
|
5225
|
+
statIndex: 4
|
|
5226
|
+
}
|
|
5227
|
+
]
|
|
5228
|
+
}
|
|
5229
|
+
],
|
|
5230
|
+
blendWeights: [
|
|
5231
|
+
],
|
|
5232
|
+
sourceSubclass: 10210
|
|
5233
|
+
},
|
|
5234
|
+
{
|
|
5235
|
+
outputItemId: 10214,
|
|
5236
|
+
outputMass: 2400000,
|
|
5237
|
+
inputs: [
|
|
5238
|
+
{
|
|
5239
|
+
itemId: 10005,
|
|
5240
|
+
quantity: 100
|
|
5241
|
+
},
|
|
5242
|
+
{
|
|
5243
|
+
itemId: 10002,
|
|
5244
|
+
quantity: 100
|
|
5245
|
+
},
|
|
5246
|
+
{
|
|
5247
|
+
itemId: 10010,
|
|
5248
|
+
quantity: 100
|
|
5249
|
+
},
|
|
5250
|
+
{
|
|
5251
|
+
itemId: 10009,
|
|
5252
|
+
quantity: 100
|
|
5253
|
+
},
|
|
5254
|
+
{
|
|
5255
|
+
itemId: 10004,
|
|
5256
|
+
quantity: 100
|
|
5257
|
+
},
|
|
5258
|
+
{
|
|
5259
|
+
itemId: 10210,
|
|
5260
|
+
quantity: 1
|
|
5261
|
+
}
|
|
5262
|
+
],
|
|
5263
|
+
statSlots: [
|
|
5264
|
+
{
|
|
5265
|
+
sources: [
|
|
5266
|
+
{
|
|
5267
|
+
inputIndex: 0,
|
|
5268
|
+
statIndex: 0
|
|
5269
|
+
},
|
|
5270
|
+
{
|
|
5271
|
+
inputIndex: 5,
|
|
5272
|
+
statIndex: 0
|
|
5273
|
+
}
|
|
5274
|
+
]
|
|
5275
|
+
},
|
|
5276
|
+
{
|
|
5277
|
+
sources: [
|
|
5278
|
+
{
|
|
5279
|
+
inputIndex: 1,
|
|
5280
|
+
statIndex: 0
|
|
5281
|
+
},
|
|
5282
|
+
{
|
|
5283
|
+
inputIndex: 5,
|
|
5284
|
+
statIndex: 1
|
|
5285
|
+
}
|
|
5286
|
+
]
|
|
5287
|
+
},
|
|
5288
|
+
{
|
|
5289
|
+
sources: [
|
|
5290
|
+
{
|
|
5291
|
+
inputIndex: 2,
|
|
5292
|
+
statIndex: 0
|
|
5293
|
+
},
|
|
5294
|
+
{
|
|
5295
|
+
inputIndex: 5,
|
|
5296
|
+
statIndex: 2
|
|
5297
|
+
}
|
|
5298
|
+
]
|
|
5299
|
+
},
|
|
5300
|
+
{
|
|
5301
|
+
sources: [
|
|
5302
|
+
{
|
|
5303
|
+
inputIndex: 3,
|
|
5304
|
+
statIndex: 0
|
|
5305
|
+
},
|
|
5306
|
+
{
|
|
5307
|
+
inputIndex: 5,
|
|
5308
|
+
statIndex: 3
|
|
5309
|
+
}
|
|
5310
|
+
]
|
|
5311
|
+
},
|
|
5312
|
+
{
|
|
5313
|
+
sources: [
|
|
5314
|
+
{
|
|
5315
|
+
inputIndex: 4,
|
|
5316
|
+
statIndex: 0
|
|
5317
|
+
},
|
|
5318
|
+
{
|
|
5319
|
+
inputIndex: 5,
|
|
5320
|
+
statIndex: 4
|
|
5321
|
+
}
|
|
5322
|
+
]
|
|
5323
|
+
}
|
|
5324
|
+
],
|
|
5325
|
+
blendWeights: [
|
|
5326
|
+
],
|
|
5327
|
+
sourceSubclass: 10210
|
|
5328
|
+
},
|
|
5329
|
+
{
|
|
5330
|
+
outputItemId: 10215,
|
|
5331
|
+
outputMass: 2400000,
|
|
5332
|
+
inputs: [
|
|
5333
|
+
{
|
|
5334
|
+
itemId: 10005,
|
|
5335
|
+
quantity: 100
|
|
5336
|
+
},
|
|
5337
|
+
{
|
|
5338
|
+
itemId: 10002,
|
|
5339
|
+
quantity: 100
|
|
5340
|
+
},
|
|
5341
|
+
{
|
|
5342
|
+
itemId: 10010,
|
|
5343
|
+
quantity: 100
|
|
5344
|
+
},
|
|
5345
|
+
{
|
|
5346
|
+
itemId: 10009,
|
|
5347
|
+
quantity: 100
|
|
5348
|
+
},
|
|
5349
|
+
{
|
|
5350
|
+
itemId: 10004,
|
|
5351
|
+
quantity: 100
|
|
5352
|
+
},
|
|
5353
|
+
{
|
|
5354
|
+
itemId: 10210,
|
|
5355
|
+
quantity: 1
|
|
5356
|
+
}
|
|
5357
|
+
],
|
|
5358
|
+
statSlots: [
|
|
5359
|
+
{
|
|
5360
|
+
sources: [
|
|
5361
|
+
{
|
|
5362
|
+
inputIndex: 0,
|
|
5363
|
+
statIndex: 0
|
|
5364
|
+
},
|
|
5365
|
+
{
|
|
5366
|
+
inputIndex: 5,
|
|
5367
|
+
statIndex: 0
|
|
5368
|
+
}
|
|
5369
|
+
]
|
|
5370
|
+
},
|
|
5371
|
+
{
|
|
5372
|
+
sources: [
|
|
5373
|
+
{
|
|
5374
|
+
inputIndex: 1,
|
|
5375
|
+
statIndex: 0
|
|
5376
|
+
},
|
|
5377
|
+
{
|
|
5378
|
+
inputIndex: 5,
|
|
5379
|
+
statIndex: 1
|
|
5380
|
+
}
|
|
5381
|
+
]
|
|
5382
|
+
},
|
|
5383
|
+
{
|
|
5384
|
+
sources: [
|
|
5385
|
+
{
|
|
5386
|
+
inputIndex: 2,
|
|
5387
|
+
statIndex: 0
|
|
5388
|
+
},
|
|
5389
|
+
{
|
|
5390
|
+
inputIndex: 5,
|
|
5391
|
+
statIndex: 2
|
|
5392
|
+
}
|
|
5393
|
+
]
|
|
5394
|
+
},
|
|
5395
|
+
{
|
|
5396
|
+
sources: [
|
|
5397
|
+
{
|
|
5398
|
+
inputIndex: 3,
|
|
5399
|
+
statIndex: 0
|
|
5400
|
+
},
|
|
5401
|
+
{
|
|
5402
|
+
inputIndex: 5,
|
|
5403
|
+
statIndex: 3
|
|
5404
|
+
}
|
|
5405
|
+
]
|
|
5406
|
+
},
|
|
5407
|
+
{
|
|
5408
|
+
sources: [
|
|
5409
|
+
{
|
|
5410
|
+
inputIndex: 4,
|
|
5411
|
+
statIndex: 0
|
|
5412
|
+
},
|
|
5413
|
+
{
|
|
5414
|
+
inputIndex: 5,
|
|
5415
|
+
statIndex: 4
|
|
5416
|
+
}
|
|
5417
|
+
]
|
|
5418
|
+
}
|
|
5419
|
+
],
|
|
5420
|
+
blendWeights: [
|
|
5421
|
+
],
|
|
5422
|
+
sourceSubclass: 10210
|
|
5423
|
+
},
|
|
5424
|
+
{
|
|
5425
|
+
outputItemId: 10216,
|
|
5426
|
+
outputMass: 3600000,
|
|
5427
|
+
inputs: [
|
|
5428
|
+
{
|
|
5429
|
+
itemId: 10005,
|
|
5430
|
+
quantity: 150
|
|
5431
|
+
},
|
|
5432
|
+
{
|
|
5433
|
+
itemId: 10002,
|
|
5434
|
+
quantity: 150
|
|
5435
|
+
},
|
|
5436
|
+
{
|
|
5437
|
+
itemId: 10010,
|
|
5438
|
+
quantity: 150
|
|
5439
|
+
},
|
|
5440
|
+
{
|
|
5441
|
+
itemId: 10009,
|
|
5442
|
+
quantity: 150
|
|
5443
|
+
},
|
|
5444
|
+
{
|
|
5445
|
+
itemId: 10004,
|
|
5446
|
+
quantity: 150
|
|
5447
|
+
},
|
|
5448
|
+
{
|
|
5449
|
+
itemId: 10211,
|
|
5450
|
+
quantity: 1
|
|
5451
|
+
}
|
|
5452
|
+
],
|
|
5453
|
+
statSlots: [
|
|
5454
|
+
{
|
|
5455
|
+
sources: [
|
|
5456
|
+
{
|
|
5457
|
+
inputIndex: 0,
|
|
5458
|
+
statIndex: 0
|
|
5459
|
+
},
|
|
5460
|
+
{
|
|
5461
|
+
inputIndex: 5,
|
|
5462
|
+
statIndex: 0
|
|
5463
|
+
}
|
|
5464
|
+
]
|
|
5465
|
+
},
|
|
5466
|
+
{
|
|
5467
|
+
sources: [
|
|
5468
|
+
{
|
|
5469
|
+
inputIndex: 1,
|
|
5470
|
+
statIndex: 0
|
|
5471
|
+
},
|
|
5472
|
+
{
|
|
5473
|
+
inputIndex: 5,
|
|
5474
|
+
statIndex: 1
|
|
5475
|
+
}
|
|
5476
|
+
]
|
|
5477
|
+
},
|
|
5478
|
+
{
|
|
5479
|
+
sources: [
|
|
5480
|
+
{
|
|
5481
|
+
inputIndex: 2,
|
|
5482
|
+
statIndex: 0
|
|
5483
|
+
},
|
|
5484
|
+
{
|
|
5485
|
+
inputIndex: 5,
|
|
5486
|
+
statIndex: 2
|
|
5487
|
+
}
|
|
5488
|
+
]
|
|
5489
|
+
},
|
|
5490
|
+
{
|
|
5491
|
+
sources: [
|
|
5492
|
+
{
|
|
5493
|
+
inputIndex: 3,
|
|
5494
|
+
statIndex: 0
|
|
5495
|
+
},
|
|
5496
|
+
{
|
|
5497
|
+
inputIndex: 5,
|
|
5498
|
+
statIndex: 3
|
|
5499
|
+
}
|
|
5500
|
+
]
|
|
5501
|
+
},
|
|
5502
|
+
{
|
|
5503
|
+
sources: [
|
|
5504
|
+
{
|
|
5505
|
+
inputIndex: 4,
|
|
5506
|
+
statIndex: 0
|
|
5507
|
+
},
|
|
5508
|
+
{
|
|
5509
|
+
inputIndex: 5,
|
|
5510
|
+
statIndex: 4
|
|
5511
|
+
}
|
|
5512
|
+
]
|
|
5513
|
+
}
|
|
5514
|
+
],
|
|
5515
|
+
blendWeights: [
|
|
5516
|
+
],
|
|
5517
|
+
sourceSubclass: 10211
|
|
5518
|
+
},
|
|
5519
|
+
{
|
|
5520
|
+
outputItemId: 10217,
|
|
5521
|
+
outputMass: 3600000,
|
|
5522
|
+
inputs: [
|
|
5523
|
+
{
|
|
5524
|
+
itemId: 10005,
|
|
5525
|
+
quantity: 150
|
|
5526
|
+
},
|
|
5527
|
+
{
|
|
5528
|
+
itemId: 10002,
|
|
5529
|
+
quantity: 150
|
|
5530
|
+
},
|
|
5531
|
+
{
|
|
5532
|
+
itemId: 10010,
|
|
5533
|
+
quantity: 150
|
|
5534
|
+
},
|
|
5535
|
+
{
|
|
5536
|
+
itemId: 10009,
|
|
5537
|
+
quantity: 150
|
|
5538
|
+
},
|
|
5539
|
+
{
|
|
5540
|
+
itemId: 10004,
|
|
5541
|
+
quantity: 150
|
|
5542
|
+
},
|
|
5543
|
+
{
|
|
5544
|
+
itemId: 10211,
|
|
5545
|
+
quantity: 1
|
|
5546
|
+
}
|
|
5547
|
+
],
|
|
5548
|
+
statSlots: [
|
|
5549
|
+
{
|
|
5550
|
+
sources: [
|
|
5551
|
+
{
|
|
5552
|
+
inputIndex: 0,
|
|
5553
|
+
statIndex: 0
|
|
5554
|
+
},
|
|
5555
|
+
{
|
|
5556
|
+
inputIndex: 5,
|
|
5557
|
+
statIndex: 0
|
|
5558
|
+
}
|
|
5559
|
+
]
|
|
5560
|
+
},
|
|
5561
|
+
{
|
|
5562
|
+
sources: [
|
|
5563
|
+
{
|
|
5564
|
+
inputIndex: 1,
|
|
5565
|
+
statIndex: 0
|
|
5566
|
+
},
|
|
5567
|
+
{
|
|
5568
|
+
inputIndex: 5,
|
|
5569
|
+
statIndex: 1
|
|
5570
|
+
}
|
|
5571
|
+
]
|
|
5572
|
+
},
|
|
5573
|
+
{
|
|
5574
|
+
sources: [
|
|
5575
|
+
{
|
|
5576
|
+
inputIndex: 2,
|
|
5577
|
+
statIndex: 0
|
|
5578
|
+
},
|
|
5579
|
+
{
|
|
5580
|
+
inputIndex: 5,
|
|
5581
|
+
statIndex: 2
|
|
5582
|
+
}
|
|
5583
|
+
]
|
|
5584
|
+
},
|
|
5585
|
+
{
|
|
5586
|
+
sources: [
|
|
5587
|
+
{
|
|
5588
|
+
inputIndex: 3,
|
|
5589
|
+
statIndex: 0
|
|
5590
|
+
},
|
|
5591
|
+
{
|
|
5592
|
+
inputIndex: 5,
|
|
5593
|
+
statIndex: 3
|
|
5594
|
+
}
|
|
5595
|
+
]
|
|
5596
|
+
},
|
|
5597
|
+
{
|
|
5598
|
+
sources: [
|
|
5599
|
+
{
|
|
5600
|
+
inputIndex: 4,
|
|
5601
|
+
statIndex: 0
|
|
5602
|
+
},
|
|
5603
|
+
{
|
|
5604
|
+
inputIndex: 5,
|
|
5605
|
+
statIndex: 4
|
|
5606
|
+
}
|
|
5607
|
+
]
|
|
5608
|
+
}
|
|
5609
|
+
],
|
|
5610
|
+
blendWeights: [
|
|
5611
|
+
],
|
|
5612
|
+
sourceSubclass: 10211
|
|
5613
|
+
},
|
|
5614
|
+
{
|
|
5615
|
+
outputItemId: 20001,
|
|
5616
|
+
outputMass: 4800,
|
|
5617
|
+
inputs: [
|
|
5618
|
+
{
|
|
5619
|
+
itemId: 102,
|
|
5620
|
+
quantity: 12
|
|
5621
|
+
}
|
|
5622
|
+
],
|
|
5623
|
+
statSlots: [
|
|
5624
|
+
{
|
|
5625
|
+
sources: [
|
|
5626
|
+
{
|
|
5627
|
+
inputIndex: 0,
|
|
5628
|
+
statIndex: 0
|
|
5629
|
+
}
|
|
5630
|
+
]
|
|
5631
|
+
},
|
|
5632
|
+
{
|
|
5633
|
+
sources: [
|
|
5634
|
+
{
|
|
5635
|
+
inputIndex: 0,
|
|
5636
|
+
statIndex: 2
|
|
5637
|
+
}
|
|
5638
|
+
]
|
|
5639
|
+
},
|
|
5640
|
+
{
|
|
5641
|
+
sources: [
|
|
5642
|
+
{
|
|
5643
|
+
inputIndex: 0,
|
|
5644
|
+
statIndex: 1
|
|
5645
|
+
}
|
|
5646
|
+
]
|
|
5647
|
+
}
|
|
5648
|
+
],
|
|
5649
|
+
blendWeights: [
|
|
5650
|
+
]
|
|
5651
|
+
},
|
|
5652
|
+
{
|
|
5653
|
+
outputItemId: 20002,
|
|
5654
|
+
outputMass: 4800,
|
|
5655
|
+
inputs: [
|
|
5656
|
+
{
|
|
5657
|
+
itemId: 402,
|
|
5658
|
+
quantity: 6
|
|
5659
|
+
},
|
|
5660
|
+
{
|
|
5661
|
+
itemId: 502,
|
|
5662
|
+
quantity: 6
|
|
5663
|
+
}
|
|
5664
|
+
],
|
|
5665
|
+
statSlots: [
|
|
5666
|
+
{
|
|
5667
|
+
sources: [
|
|
5668
|
+
{
|
|
5669
|
+
inputIndex: 0,
|
|
5670
|
+
statIndex: 1
|
|
4626
5671
|
}
|
|
4627
5672
|
]
|
|
4628
5673
|
},
|
|
@@ -5166,27 +6211,27 @@ var recipes = [
|
|
|
5166
6211
|
outputMass: 3840000,
|
|
5167
6212
|
inputs: [
|
|
5168
6213
|
{
|
|
5169
|
-
itemId:
|
|
5170
|
-
quantity:
|
|
6214
|
+
itemId: 20005,
|
|
6215
|
+
quantity: 150
|
|
5171
6216
|
},
|
|
5172
6217
|
{
|
|
5173
|
-
itemId:
|
|
5174
|
-
quantity:
|
|
6218
|
+
itemId: 20002,
|
|
6219
|
+
quantity: 150
|
|
5175
6220
|
},
|
|
5176
6221
|
{
|
|
5177
|
-
itemId:
|
|
5178
|
-
quantity:
|
|
6222
|
+
itemId: 20010,
|
|
6223
|
+
quantity: 150
|
|
5179
6224
|
},
|
|
5180
6225
|
{
|
|
5181
|
-
itemId:
|
|
5182
|
-
quantity:
|
|
6226
|
+
itemId: 20009,
|
|
6227
|
+
quantity: 150
|
|
5183
6228
|
},
|
|
5184
6229
|
{
|
|
5185
|
-
itemId:
|
|
5186
|
-
quantity:
|
|
6230
|
+
itemId: 20004,
|
|
6231
|
+
quantity: 150
|
|
5187
6232
|
},
|
|
5188
6233
|
{
|
|
5189
|
-
itemId:
|
|
6234
|
+
itemId: 10211,
|
|
5190
6235
|
quantity: 1
|
|
5191
6236
|
}
|
|
5192
6237
|
],
|
|
@@ -5206,8 +6251,8 @@ var recipes = [
|
|
|
5206
6251
|
{
|
|
5207
6252
|
sources: [
|
|
5208
6253
|
{
|
|
5209
|
-
inputIndex:
|
|
5210
|
-
statIndex:
|
|
6254
|
+
inputIndex: 1,
|
|
6255
|
+
statIndex: 0
|
|
5211
6256
|
},
|
|
5212
6257
|
{
|
|
5213
6258
|
inputIndex: 5,
|
|
@@ -5217,207 +6262,484 @@ var recipes = [
|
|
|
5217
6262
|
},
|
|
5218
6263
|
{
|
|
5219
6264
|
sources: [
|
|
6265
|
+
{
|
|
6266
|
+
inputIndex: 2,
|
|
6267
|
+
statIndex: 0
|
|
6268
|
+
},
|
|
6269
|
+
{
|
|
6270
|
+
inputIndex: 5,
|
|
6271
|
+
statIndex: 2
|
|
6272
|
+
}
|
|
6273
|
+
]
|
|
6274
|
+
},
|
|
6275
|
+
{
|
|
6276
|
+
sources: [
|
|
6277
|
+
{
|
|
6278
|
+
inputIndex: 3,
|
|
6279
|
+
statIndex: 0
|
|
6280
|
+
},
|
|
6281
|
+
{
|
|
6282
|
+
inputIndex: 5,
|
|
6283
|
+
statIndex: 3
|
|
6284
|
+
}
|
|
5220
6285
|
]
|
|
5221
6286
|
},
|
|
5222
6287
|
{
|
|
5223
6288
|
sources: [
|
|
6289
|
+
{
|
|
6290
|
+
inputIndex: 4,
|
|
6291
|
+
statIndex: 0
|
|
6292
|
+
},
|
|
6293
|
+
{
|
|
6294
|
+
inputIndex: 5,
|
|
6295
|
+
statIndex: 4
|
|
6296
|
+
}
|
|
5224
6297
|
]
|
|
5225
6298
|
}
|
|
5226
6299
|
],
|
|
5227
6300
|
blendWeights: [
|
|
5228
6301
|
],
|
|
5229
|
-
sourceSubclass:
|
|
6302
|
+
sourceSubclass: 10211
|
|
5230
6303
|
},
|
|
5231
6304
|
{
|
|
5232
6305
|
outputItemId: 20211,
|
|
5233
6306
|
outputMass: 3840000,
|
|
5234
6307
|
inputs: [
|
|
5235
6308
|
{
|
|
5236
|
-
itemId:
|
|
5237
|
-
quantity:
|
|
6309
|
+
itemId: 20005,
|
|
6310
|
+
quantity: 150
|
|
5238
6311
|
},
|
|
5239
6312
|
{
|
|
5240
6313
|
itemId: 20002,
|
|
5241
|
-
quantity:
|
|
6314
|
+
quantity: 150
|
|
5242
6315
|
},
|
|
5243
6316
|
{
|
|
5244
|
-
itemId:
|
|
5245
|
-
quantity:
|
|
6317
|
+
itemId: 20010,
|
|
6318
|
+
quantity: 150
|
|
5246
6319
|
},
|
|
5247
6320
|
{
|
|
5248
|
-
itemId:
|
|
5249
|
-
quantity:
|
|
6321
|
+
itemId: 20009,
|
|
6322
|
+
quantity: 150
|
|
5250
6323
|
},
|
|
5251
6324
|
{
|
|
5252
6325
|
itemId: 20004,
|
|
5253
|
-
quantity:
|
|
6326
|
+
quantity: 150
|
|
6327
|
+
},
|
|
6328
|
+
{
|
|
6329
|
+
itemId: 10214,
|
|
6330
|
+
quantity: 1
|
|
6331
|
+
}
|
|
6332
|
+
],
|
|
6333
|
+
statSlots: [
|
|
6334
|
+
{
|
|
6335
|
+
sources: [
|
|
6336
|
+
{
|
|
6337
|
+
inputIndex: 0,
|
|
6338
|
+
statIndex: 0
|
|
6339
|
+
},
|
|
6340
|
+
{
|
|
6341
|
+
inputIndex: 5,
|
|
6342
|
+
statIndex: 0
|
|
6343
|
+
}
|
|
6344
|
+
]
|
|
6345
|
+
},
|
|
6346
|
+
{
|
|
6347
|
+
sources: [
|
|
6348
|
+
{
|
|
6349
|
+
inputIndex: 1,
|
|
6350
|
+
statIndex: 0
|
|
6351
|
+
},
|
|
6352
|
+
{
|
|
6353
|
+
inputIndex: 5,
|
|
6354
|
+
statIndex: 1
|
|
6355
|
+
}
|
|
6356
|
+
]
|
|
6357
|
+
},
|
|
6358
|
+
{
|
|
6359
|
+
sources: [
|
|
6360
|
+
{
|
|
6361
|
+
inputIndex: 2,
|
|
6362
|
+
statIndex: 0
|
|
6363
|
+
},
|
|
6364
|
+
{
|
|
6365
|
+
inputIndex: 5,
|
|
6366
|
+
statIndex: 2
|
|
6367
|
+
}
|
|
6368
|
+
]
|
|
6369
|
+
},
|
|
6370
|
+
{
|
|
6371
|
+
sources: [
|
|
6372
|
+
{
|
|
6373
|
+
inputIndex: 3,
|
|
6374
|
+
statIndex: 0
|
|
6375
|
+
},
|
|
6376
|
+
{
|
|
6377
|
+
inputIndex: 5,
|
|
6378
|
+
statIndex: 3
|
|
6379
|
+
}
|
|
6380
|
+
]
|
|
6381
|
+
},
|
|
6382
|
+
{
|
|
6383
|
+
sources: [
|
|
6384
|
+
{
|
|
6385
|
+
inputIndex: 4,
|
|
6386
|
+
statIndex: 0
|
|
6387
|
+
},
|
|
6388
|
+
{
|
|
6389
|
+
inputIndex: 5,
|
|
6390
|
+
statIndex: 4
|
|
6391
|
+
}
|
|
6392
|
+
]
|
|
6393
|
+
}
|
|
6394
|
+
],
|
|
6395
|
+
blendWeights: [
|
|
6396
|
+
],
|
|
6397
|
+
sourceSubclass: 10214
|
|
6398
|
+
}
|
|
6399
|
+
];
|
|
6400
|
+
|
|
6401
|
+
var entities = [
|
|
6402
|
+
{
|
|
6403
|
+
entityItemId: 10200,
|
|
6404
|
+
slots: [
|
|
6405
|
+
],
|
|
6406
|
+
baseHullmass: 100000
|
|
6407
|
+
},
|
|
6408
|
+
{
|
|
6409
|
+
entityItemId: 10201,
|
|
6410
|
+
slots: [
|
|
6411
|
+
{
|
|
6412
|
+
type: "any",
|
|
6413
|
+
outputPct: 80,
|
|
6414
|
+
maxTier: 1
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
type: "any",
|
|
6418
|
+
outputPct: 80,
|
|
6419
|
+
maxTier: 1
|
|
6420
|
+
},
|
|
6421
|
+
{
|
|
6422
|
+
type: "any",
|
|
6423
|
+
outputPct: 80,
|
|
6424
|
+
maxTier: 1
|
|
6425
|
+
},
|
|
6426
|
+
{
|
|
6427
|
+
type: "any",
|
|
6428
|
+
outputPct: 80,
|
|
6429
|
+
maxTier: 1
|
|
6430
|
+
},
|
|
6431
|
+
{
|
|
6432
|
+
type: "any",
|
|
6433
|
+
outputPct: 80,
|
|
6434
|
+
maxTier: 1
|
|
6435
|
+
}
|
|
6436
|
+
],
|
|
6437
|
+
baseHullmass: 4000000
|
|
6438
|
+
},
|
|
6439
|
+
{
|
|
6440
|
+
entityItemId: 10202,
|
|
6441
|
+
slots: [
|
|
6442
|
+
{
|
|
6443
|
+
type: "loader",
|
|
6444
|
+
outputPct: 100,
|
|
6445
|
+
maxTier: 1
|
|
6446
|
+
},
|
|
6447
|
+
{
|
|
6448
|
+
type: "storage",
|
|
6449
|
+
outputPct: 100,
|
|
6450
|
+
maxTier: 1
|
|
6451
|
+
},
|
|
6452
|
+
{
|
|
6453
|
+
type: "storage",
|
|
6454
|
+
outputPct: 100,
|
|
6455
|
+
maxTier: 1
|
|
6456
|
+
},
|
|
6457
|
+
{
|
|
6458
|
+
type: "storage",
|
|
6459
|
+
outputPct: 100,
|
|
6460
|
+
maxTier: 1
|
|
6461
|
+
},
|
|
6462
|
+
{
|
|
6463
|
+
type: "storage",
|
|
6464
|
+
outputPct: 100,
|
|
6465
|
+
maxTier: 1
|
|
6466
|
+
}
|
|
6467
|
+
],
|
|
6468
|
+
baseHullmass: 100000
|
|
6469
|
+
},
|
|
6470
|
+
{
|
|
6471
|
+
entityItemId: 10203,
|
|
6472
|
+
slots: [
|
|
6473
|
+
{
|
|
6474
|
+
type: "generator",
|
|
6475
|
+
outputPct: 200,
|
|
6476
|
+
maxTier: 1
|
|
6477
|
+
},
|
|
6478
|
+
{
|
|
6479
|
+
type: "gatherer",
|
|
6480
|
+
outputPct: 200,
|
|
6481
|
+
maxTier: 1
|
|
6482
|
+
}
|
|
6483
|
+
],
|
|
6484
|
+
baseHullmass: 100000
|
|
6485
|
+
},
|
|
6486
|
+
{
|
|
6487
|
+
entityItemId: 10204,
|
|
6488
|
+
slots: [
|
|
6489
|
+
{
|
|
6490
|
+
type: "generator",
|
|
6491
|
+
outputPct: 200,
|
|
6492
|
+
maxTier: 1
|
|
6493
|
+
},
|
|
6494
|
+
{
|
|
6495
|
+
type: "crafter",
|
|
6496
|
+
outputPct: 200,
|
|
6497
|
+
maxTier: 1
|
|
6498
|
+
}
|
|
6499
|
+
],
|
|
6500
|
+
baseHullmass: 100000
|
|
6501
|
+
},
|
|
6502
|
+
{
|
|
6503
|
+
entityItemId: 10205,
|
|
6504
|
+
slots: [
|
|
6505
|
+
{
|
|
6506
|
+
type: "generator",
|
|
6507
|
+
outputPct: 200,
|
|
6508
|
+
maxTier: 1
|
|
6509
|
+
},
|
|
6510
|
+
{
|
|
6511
|
+
type: "launcher",
|
|
6512
|
+
outputPct: 200,
|
|
6513
|
+
maxTier: 1
|
|
6514
|
+
}
|
|
6515
|
+
],
|
|
6516
|
+
baseHullmass: 100000
|
|
6517
|
+
},
|
|
6518
|
+
{
|
|
6519
|
+
entityItemId: 10206,
|
|
6520
|
+
slots: [
|
|
6521
|
+
{
|
|
6522
|
+
type: "storage",
|
|
6523
|
+
outputPct: 100,
|
|
6524
|
+
maxTier: 1
|
|
6525
|
+
},
|
|
6526
|
+
{
|
|
6527
|
+
type: "storage",
|
|
6528
|
+
outputPct: 100,
|
|
6529
|
+
maxTier: 1
|
|
5254
6530
|
},
|
|
5255
6531
|
{
|
|
5256
|
-
|
|
5257
|
-
|
|
6532
|
+
type: "storage",
|
|
6533
|
+
outputPct: 100,
|
|
6534
|
+
maxTier: 1
|
|
5258
6535
|
}
|
|
5259
6536
|
],
|
|
5260
|
-
|
|
6537
|
+
baseHullmass: 100000
|
|
6538
|
+
},
|
|
6539
|
+
{
|
|
6540
|
+
entityItemId: 10207,
|
|
6541
|
+
slots: [
|
|
6542
|
+
],
|
|
6543
|
+
baseHullmass: 100000
|
|
6544
|
+
},
|
|
6545
|
+
{
|
|
6546
|
+
entityItemId: 10208,
|
|
6547
|
+
slots: [
|
|
5261
6548
|
{
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
statIndex: 0
|
|
5266
|
-
},
|
|
5267
|
-
{
|
|
5268
|
-
inputIndex: 5,
|
|
5269
|
-
statIndex: 0
|
|
5270
|
-
}
|
|
5271
|
-
]
|
|
6549
|
+
type: "crafter",
|
|
6550
|
+
outputPct: 75,
|
|
6551
|
+
maxTier: 1
|
|
5272
6552
|
},
|
|
5273
6553
|
{
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
statIndex: 1
|
|
5278
|
-
},
|
|
5279
|
-
{
|
|
5280
|
-
inputIndex: 5,
|
|
5281
|
-
statIndex: 1
|
|
5282
|
-
}
|
|
5283
|
-
]
|
|
6554
|
+
type: "crafter",
|
|
6555
|
+
outputPct: 75,
|
|
6556
|
+
maxTier: 1
|
|
5284
6557
|
},
|
|
5285
6558
|
{
|
|
5286
|
-
|
|
5287
|
-
|
|
6559
|
+
type: "crafter",
|
|
6560
|
+
outputPct: 75,
|
|
6561
|
+
maxTier: 1
|
|
5288
6562
|
},
|
|
5289
6563
|
{
|
|
5290
|
-
|
|
5291
|
-
|
|
6564
|
+
type: "crafter",
|
|
6565
|
+
outputPct: 75,
|
|
6566
|
+
maxTier: 1
|
|
6567
|
+
},
|
|
6568
|
+
{
|
|
6569
|
+
type: "crafter",
|
|
6570
|
+
outputPct: 75,
|
|
6571
|
+
maxTier: 1
|
|
5292
6572
|
}
|
|
5293
6573
|
],
|
|
5294
|
-
|
|
5295
|
-
],
|
|
5296
|
-
sourceSubclass: 10201
|
|
5297
|
-
}
|
|
5298
|
-
];
|
|
5299
|
-
|
|
5300
|
-
var entities = [
|
|
5301
|
-
{
|
|
5302
|
-
entityItemId: 10200,
|
|
5303
|
-
slots: [
|
|
5304
|
-
]
|
|
6574
|
+
baseHullmass: 100000
|
|
5305
6575
|
},
|
|
5306
6576
|
{
|
|
5307
|
-
entityItemId:
|
|
6577
|
+
entityItemId: 10210,
|
|
5308
6578
|
slots: [
|
|
5309
6579
|
{
|
|
5310
|
-
type: "
|
|
6580
|
+
type: "generator",
|
|
5311
6581
|
outputPct: 80,
|
|
5312
6582
|
maxTier: 1
|
|
5313
6583
|
},
|
|
5314
6584
|
{
|
|
5315
|
-
type: "
|
|
6585
|
+
type: "engine",
|
|
5316
6586
|
outputPct: 80,
|
|
5317
6587
|
maxTier: 1
|
|
5318
6588
|
},
|
|
5319
6589
|
{
|
|
5320
6590
|
type: "any",
|
|
5321
|
-
outputPct:
|
|
6591
|
+
outputPct: 60,
|
|
6592
|
+
maxTier: 1
|
|
6593
|
+
}
|
|
6594
|
+
],
|
|
6595
|
+
baseHullmass: 3200000
|
|
6596
|
+
},
|
|
6597
|
+
{
|
|
6598
|
+
entityItemId: 10211,
|
|
6599
|
+
slots: [
|
|
6600
|
+
{
|
|
6601
|
+
type: "generator",
|
|
6602
|
+
outputPct: 85,
|
|
5322
6603
|
maxTier: 1
|
|
5323
6604
|
},
|
|
5324
6605
|
{
|
|
5325
|
-
type: "
|
|
5326
|
-
outputPct:
|
|
6606
|
+
type: "engine",
|
|
6607
|
+
outputPct: 85,
|
|
5327
6608
|
maxTier: 1
|
|
5328
6609
|
},
|
|
5329
6610
|
{
|
|
5330
|
-
type: "
|
|
5331
|
-
outputPct:
|
|
6611
|
+
type: "gatherer",
|
|
6612
|
+
outputPct: 100,
|
|
5332
6613
|
maxTier: 1
|
|
5333
6614
|
}
|
|
5334
|
-
]
|
|
6615
|
+
],
|
|
6616
|
+
baseHullmass: 3600000
|
|
5335
6617
|
},
|
|
5336
6618
|
{
|
|
5337
|
-
entityItemId:
|
|
6619
|
+
entityItemId: 10212,
|
|
5338
6620
|
slots: [
|
|
5339
6621
|
{
|
|
5340
|
-
type: "
|
|
5341
|
-
outputPct:
|
|
6622
|
+
type: "generator",
|
|
6623
|
+
outputPct: 85,
|
|
5342
6624
|
maxTier: 1
|
|
5343
6625
|
},
|
|
5344
6626
|
{
|
|
5345
|
-
type: "
|
|
5346
|
-
outputPct:
|
|
6627
|
+
type: "engine",
|
|
6628
|
+
outputPct: 85,
|
|
5347
6629
|
maxTier: 1
|
|
5348
6630
|
},
|
|
5349
6631
|
{
|
|
5350
|
-
type: "
|
|
6632
|
+
type: "loader",
|
|
5351
6633
|
outputPct: 100,
|
|
5352
6634
|
maxTier: 1
|
|
6635
|
+
}
|
|
6636
|
+
],
|
|
6637
|
+
baseHullmass: 3600000
|
|
6638
|
+
},
|
|
6639
|
+
{
|
|
6640
|
+
entityItemId: 10213,
|
|
6641
|
+
slots: [
|
|
6642
|
+
{
|
|
6643
|
+
type: "generator",
|
|
6644
|
+
outputPct: 85,
|
|
6645
|
+
maxTier: 1
|
|
5353
6646
|
},
|
|
5354
6647
|
{
|
|
5355
|
-
type: "
|
|
5356
|
-
outputPct:
|
|
6648
|
+
type: "engine",
|
|
6649
|
+
outputPct: 85,
|
|
5357
6650
|
maxTier: 1
|
|
5358
6651
|
},
|
|
5359
6652
|
{
|
|
5360
|
-
type: "
|
|
6653
|
+
type: "builder",
|
|
5361
6654
|
outputPct: 100,
|
|
5362
6655
|
maxTier: 1
|
|
5363
6656
|
}
|
|
5364
|
-
]
|
|
6657
|
+
],
|
|
6658
|
+
baseHullmass: 4400000
|
|
5365
6659
|
},
|
|
5366
6660
|
{
|
|
5367
|
-
entityItemId:
|
|
6661
|
+
entityItemId: 10214,
|
|
5368
6662
|
slots: [
|
|
5369
6663
|
{
|
|
5370
6664
|
type: "generator",
|
|
5371
|
-
outputPct:
|
|
6665
|
+
outputPct: 85,
|
|
5372
6666
|
maxTier: 1
|
|
5373
6667
|
},
|
|
5374
6668
|
{
|
|
5375
|
-
type: "
|
|
5376
|
-
outputPct:
|
|
6669
|
+
type: "engine",
|
|
6670
|
+
outputPct: 85,
|
|
6671
|
+
maxTier: 1
|
|
6672
|
+
},
|
|
6673
|
+
{
|
|
6674
|
+
type: "hauler",
|
|
6675
|
+
outputPct: 100,
|
|
5377
6676
|
maxTier: 1
|
|
5378
6677
|
}
|
|
5379
|
-
]
|
|
6678
|
+
],
|
|
6679
|
+
baseHullmass: 4400000
|
|
5380
6680
|
},
|
|
5381
6681
|
{
|
|
5382
|
-
entityItemId:
|
|
6682
|
+
entityItemId: 10215,
|
|
5383
6683
|
slots: [
|
|
5384
6684
|
{
|
|
5385
6685
|
type: "generator",
|
|
5386
|
-
outputPct:
|
|
6686
|
+
outputPct: 85,
|
|
5387
6687
|
maxTier: 1
|
|
5388
6688
|
},
|
|
5389
6689
|
{
|
|
5390
|
-
type: "
|
|
5391
|
-
outputPct:
|
|
6690
|
+
type: "engine",
|
|
6691
|
+
outputPct: 85,
|
|
6692
|
+
maxTier: 1
|
|
6693
|
+
},
|
|
6694
|
+
{
|
|
6695
|
+
type: "storage",
|
|
6696
|
+
outputPct: 100,
|
|
5392
6697
|
maxTier: 1
|
|
5393
6698
|
}
|
|
5394
|
-
]
|
|
6699
|
+
],
|
|
6700
|
+
baseHullmass: 5000000
|
|
5395
6701
|
},
|
|
5396
6702
|
{
|
|
5397
|
-
entityItemId:
|
|
6703
|
+
entityItemId: 10216,
|
|
5398
6704
|
slots: [
|
|
5399
6705
|
{
|
|
5400
6706
|
type: "generator",
|
|
5401
|
-
outputPct:
|
|
6707
|
+
outputPct: 90,
|
|
5402
6708
|
maxTier: 1
|
|
5403
6709
|
},
|
|
5404
6710
|
{
|
|
5405
|
-
type: "
|
|
5406
|
-
outputPct:
|
|
6711
|
+
type: "engine",
|
|
6712
|
+
outputPct: 90,
|
|
6713
|
+
maxTier: 1
|
|
6714
|
+
},
|
|
6715
|
+
{
|
|
6716
|
+
type: "gatherer",
|
|
6717
|
+
outputPct: 100,
|
|
6718
|
+
maxTier: 1
|
|
6719
|
+
},
|
|
6720
|
+
{
|
|
6721
|
+
type: "gatherer",
|
|
6722
|
+
outputPct: 100,
|
|
5407
6723
|
maxTier: 1
|
|
5408
6724
|
}
|
|
5409
|
-
]
|
|
6725
|
+
],
|
|
6726
|
+
baseHullmass: 4000000
|
|
5410
6727
|
},
|
|
5411
6728
|
{
|
|
5412
|
-
entityItemId:
|
|
6729
|
+
entityItemId: 10217,
|
|
5413
6730
|
slots: [
|
|
5414
6731
|
{
|
|
5415
|
-
type: "
|
|
5416
|
-
outputPct:
|
|
6732
|
+
type: "generator",
|
|
6733
|
+
outputPct: 90,
|
|
5417
6734
|
maxTier: 1
|
|
5418
6735
|
},
|
|
5419
6736
|
{
|
|
5420
|
-
type: "
|
|
6737
|
+
type: "engine",
|
|
6738
|
+
outputPct: 90,
|
|
6739
|
+
maxTier: 1
|
|
6740
|
+
},
|
|
6741
|
+
{
|
|
6742
|
+
type: "gatherer",
|
|
5421
6743
|
outputPct: 100,
|
|
5422
6744
|
maxTier: 1
|
|
5423
6745
|
},
|
|
@@ -5426,23 +6748,20 @@ var entities = [
|
|
|
5426
6748
|
outputPct: 100,
|
|
5427
6749
|
maxTier: 1
|
|
5428
6750
|
}
|
|
5429
|
-
]
|
|
5430
|
-
|
|
5431
|
-
{
|
|
5432
|
-
entityItemId: 10207,
|
|
5433
|
-
slots: [
|
|
5434
|
-
]
|
|
6751
|
+
],
|
|
6752
|
+
baseHullmass: 4800000
|
|
5435
6753
|
},
|
|
5436
6754
|
{
|
|
5437
6755
|
entityItemId: 20200,
|
|
5438
6756
|
slots: [
|
|
5439
|
-
]
|
|
6757
|
+
],
|
|
6758
|
+
baseHullmass: 100000
|
|
5440
6759
|
},
|
|
5441
6760
|
{
|
|
5442
6761
|
entityItemId: 20210,
|
|
5443
6762
|
slots: [
|
|
5444
6763
|
{
|
|
5445
|
-
type: "
|
|
6764
|
+
type: "generator",
|
|
5446
6765
|
outputPct: 100,
|
|
5447
6766
|
maxTier: 2
|
|
5448
6767
|
},
|
|
@@ -5452,7 +6771,7 @@ var entities = [
|
|
|
5452
6771
|
maxTier: 2
|
|
5453
6772
|
},
|
|
5454
6773
|
{
|
|
5455
|
-
type: "
|
|
6774
|
+
type: "engine",
|
|
5456
6775
|
outputPct: 100,
|
|
5457
6776
|
maxTier: 2
|
|
5458
6777
|
},
|
|
@@ -5460,24 +6779,20 @@ var entities = [
|
|
|
5460
6779
|
type: "gatherer",
|
|
5461
6780
|
outputPct: 100,
|
|
5462
6781
|
maxTier: 2
|
|
5463
|
-
},
|
|
5464
|
-
{
|
|
5465
|
-
type: "any",
|
|
5466
|
-
outputPct: 80,
|
|
5467
|
-
maxTier: 1
|
|
5468
6782
|
}
|
|
5469
|
-
]
|
|
6783
|
+
],
|
|
6784
|
+
baseHullmass: 5760000
|
|
5470
6785
|
},
|
|
5471
6786
|
{
|
|
5472
6787
|
entityItemId: 20211,
|
|
5473
6788
|
slots: [
|
|
5474
6789
|
{
|
|
5475
|
-
type: "
|
|
6790
|
+
type: "generator",
|
|
5476
6791
|
outputPct: 100,
|
|
5477
6792
|
maxTier: 2
|
|
5478
6793
|
},
|
|
5479
6794
|
{
|
|
5480
|
-
type: "
|
|
6795
|
+
type: "engine",
|
|
5481
6796
|
outputPct: 100,
|
|
5482
6797
|
maxTier: 2
|
|
5483
6798
|
},
|
|
@@ -5491,7 +6806,8 @@ var entities = [
|
|
|
5491
6806
|
outputPct: 100,
|
|
5492
6807
|
maxTier: 2
|
|
5493
6808
|
}
|
|
5494
|
-
]
|
|
6809
|
+
],
|
|
6810
|
+
baseHullmass: 7040000
|
|
5495
6811
|
}
|
|
5496
6812
|
];
|
|
5497
6813
|
|
|
@@ -6016,6 +7332,13 @@ var items = [
|
|
|
6016
7332
|
tier: 1,
|
|
6017
7333
|
subtype: "launcher"
|
|
6018
7334
|
},
|
|
7335
|
+
{
|
|
7336
|
+
id: 10110,
|
|
7337
|
+
mass: 960000,
|
|
7338
|
+
type: "module",
|
|
7339
|
+
tier: 1,
|
|
7340
|
+
subtype: "builder"
|
|
7341
|
+
},
|
|
6019
7342
|
{
|
|
6020
7343
|
id: 10200,
|
|
6021
7344
|
mass: 1900000,
|
|
@@ -6064,6 +7387,60 @@ var items = [
|
|
|
6064
7387
|
type: "entity",
|
|
6065
7388
|
tier: 1
|
|
6066
7389
|
},
|
|
7390
|
+
{
|
|
7391
|
+
id: 10208,
|
|
7392
|
+
mass: 1900000,
|
|
7393
|
+
type: "entity",
|
|
7394
|
+
tier: 1
|
|
7395
|
+
},
|
|
7396
|
+
{
|
|
7397
|
+
id: 10210,
|
|
7398
|
+
mass: 1600000,
|
|
7399
|
+
type: "entity",
|
|
7400
|
+
tier: 1
|
|
7401
|
+
},
|
|
7402
|
+
{
|
|
7403
|
+
id: 10211,
|
|
7404
|
+
mass: 2400000,
|
|
7405
|
+
type: "entity",
|
|
7406
|
+
tier: 1
|
|
7407
|
+
},
|
|
7408
|
+
{
|
|
7409
|
+
id: 10212,
|
|
7410
|
+
mass: 2400000,
|
|
7411
|
+
type: "entity",
|
|
7412
|
+
tier: 1
|
|
7413
|
+
},
|
|
7414
|
+
{
|
|
7415
|
+
id: 10213,
|
|
7416
|
+
mass: 2400000,
|
|
7417
|
+
type: "entity",
|
|
7418
|
+
tier: 1
|
|
7419
|
+
},
|
|
7420
|
+
{
|
|
7421
|
+
id: 10214,
|
|
7422
|
+
mass: 2400000,
|
|
7423
|
+
type: "entity",
|
|
7424
|
+
tier: 1
|
|
7425
|
+
},
|
|
7426
|
+
{
|
|
7427
|
+
id: 10215,
|
|
7428
|
+
mass: 2400000,
|
|
7429
|
+
type: "entity",
|
|
7430
|
+
tier: 1
|
|
7431
|
+
},
|
|
7432
|
+
{
|
|
7433
|
+
id: 10216,
|
|
7434
|
+
mass: 3600000,
|
|
7435
|
+
type: "entity",
|
|
7436
|
+
tier: 1
|
|
7437
|
+
},
|
|
7438
|
+
{
|
|
7439
|
+
id: 10217,
|
|
7440
|
+
mass: 3600000,
|
|
7441
|
+
type: "entity",
|
|
7442
|
+
tier: 1
|
|
7443
|
+
},
|
|
6067
7444
|
{
|
|
6068
7445
|
id: 20001,
|
|
6069
7446
|
mass: 4800,
|
|
@@ -6327,7 +7704,7 @@ const itemMetadata = {
|
|
|
6327
7704
|
},
|
|
6328
7705
|
10106: {
|
|
6329
7706
|
name: 'Tractor Beam',
|
|
6330
|
-
description: 'Projects a haul beam to lock onto and transport containers
|
|
7707
|
+
description: 'Projects a haul beam to lock onto and transport containers through group travel.',
|
|
6331
7708
|
color: '#4ADBFF',
|
|
6332
7709
|
},
|
|
6333
7710
|
10107: {
|
|
@@ -6345,13 +7722,18 @@ const itemMetadata = {
|
|
|
6345
7722
|
description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
|
|
6346
7723
|
color: '#E86344',
|
|
6347
7724
|
},
|
|
7725
|
+
10110: {
|
|
7726
|
+
name: 'Assembly Arm',
|
|
7727
|
+
description: 'Heavy manipulator arms for on-site construction work. Claims build sites, builds them out, and upgrades ships in place.',
|
|
7728
|
+
color: '#FFB347',
|
|
7729
|
+
},
|
|
6348
7730
|
10200: {
|
|
6349
7731
|
name: 'Container',
|
|
6350
7732
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
6351
7733
|
color: '#7B8D9E',
|
|
6352
7734
|
},
|
|
6353
7735
|
10201: {
|
|
6354
|
-
name: '
|
|
7736
|
+
name: 'Ship',
|
|
6355
7737
|
description: 'General-purpose vessel with 5 module slots.',
|
|
6356
7738
|
color: '#4AE898',
|
|
6357
7739
|
},
|
|
@@ -6375,15 +7757,60 @@ const itemMetadata = {
|
|
|
6375
7757
|
description: 'Planetary launch platform with power core and drive coil module slots.',
|
|
6376
7758
|
color: '#E86344',
|
|
6377
7759
|
},
|
|
6378
|
-
10206: {
|
|
6379
|
-
name: 'Mass Catcher',
|
|
6380
|
-
description: 'Planetary receiving platform with storage module slots; catches launched payloads.',
|
|
7760
|
+
10206: {
|
|
7761
|
+
name: 'Mass Catcher',
|
|
7762
|
+
description: 'Planetary receiving platform with storage module slots; catches launched payloads.',
|
|
7763
|
+
color: '#4AE898',
|
|
7764
|
+
},
|
|
7765
|
+
10207: {
|
|
7766
|
+
name: 'Station Hub',
|
|
7767
|
+
description: 'Orbital command structure. Anchors a player station cluster.',
|
|
7768
|
+
color: '#A0B8D0',
|
|
7769
|
+
},
|
|
7770
|
+
10208: {
|
|
7771
|
+
name: 'Workshop',
|
|
7772
|
+
description: 'A station workshop with five independent workers. Visiting ships bring materials and power, and the workshop does the crafting.',
|
|
7773
|
+
color: '#B877FF',
|
|
7774
|
+
},
|
|
7775
|
+
10210: {
|
|
7776
|
+
name: 'Roustabout',
|
|
7777
|
+
description: 'A basic starter ship. One engine, one power core, and one open slot to fit as you like.',
|
|
7778
|
+
color: '#4AE898',
|
|
7779
|
+
},
|
|
7780
|
+
10211: {
|
|
7781
|
+
name: 'Prospector',
|
|
7782
|
+
description: 'A light gathering ship. One engine, one power core, one gathering rig.',
|
|
7783
|
+
color: '#4AE898',
|
|
7784
|
+
},
|
|
7785
|
+
10212: {
|
|
7786
|
+
name: 'Tender',
|
|
7787
|
+
description: 'A logistics ship with a shuttle bay for moving cargo between ships and stations.',
|
|
7788
|
+
color: '#4AE898',
|
|
7789
|
+
},
|
|
7790
|
+
10213: {
|
|
7791
|
+
name: 'Wright',
|
|
7792
|
+
description: 'A construction ship with an assembly arm for building structures and upgrading ships.',
|
|
7793
|
+
color: '#4AE898',
|
|
7794
|
+
},
|
|
7795
|
+
10214: {
|
|
7796
|
+
name: 'Tug',
|
|
7797
|
+
description: 'A logistics ship with a tractor beam for towing containers from place to place.',
|
|
7798
|
+
color: '#4AE898',
|
|
7799
|
+
},
|
|
7800
|
+
10215: {
|
|
7801
|
+
name: 'Porter',
|
|
7802
|
+
description: 'A cargo ship built around a large storage hold. The extra mass makes it slower than a Roustabout.',
|
|
6381
7803
|
color: '#4AE898',
|
|
6382
7804
|
},
|
|
6383
|
-
|
|
6384
|
-
name: '
|
|
6385
|
-
description: '
|
|
6386
|
-
color: '#
|
|
7805
|
+
10216: {
|
|
7806
|
+
name: 'Wrangler',
|
|
7807
|
+
description: 'A heavy gathering ship with two gathering rigs, so it mines faster.',
|
|
7808
|
+
color: '#4AE898',
|
|
7809
|
+
},
|
|
7810
|
+
10217: {
|
|
7811
|
+
name: 'Dredger',
|
|
7812
|
+
description: 'A gathering ship with its own storage hold, so it can keep mining before it has to offload.',
|
|
7813
|
+
color: '#4AE898',
|
|
6387
7814
|
},
|
|
6388
7815
|
20001: {
|
|
6389
7816
|
name: 'Plate',
|
|
@@ -6456,13 +7883,21 @@ const itemMetadata = {
|
|
|
6456
7883
|
color: '#4AE898',
|
|
6457
7884
|
},
|
|
6458
7885
|
20211: {
|
|
6459
|
-
name: '
|
|
7886
|
+
name: 'Tug',
|
|
6460
7887
|
description: 'Advanced towing vessel with tiered engine, generator, and tractor beam slots.',
|
|
6461
7888
|
color: '#4AE898',
|
|
6462
7889
|
},
|
|
6463
7890
|
};
|
|
6464
7891
|
const entityMetadata = {
|
|
6465
7892
|
10201: { moduleSlotLabels: ['Engine', 'Power Core', 'Limpet Bay', 'Shuttle Bay', 'Cargo Hold'] },
|
|
7893
|
+
10210: { moduleSlotLabels: ['Power Core', 'Engine', 'Utility Bay'] },
|
|
7894
|
+
10211: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
|
|
7895
|
+
10212: { moduleSlotLabels: ['Power Core', 'Engine', 'Shuttle Bay'] },
|
|
7896
|
+
10213: { moduleSlotLabels: ['Power Core', 'Engine', 'Assembly Arm'] },
|
|
7897
|
+
10214: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam'] },
|
|
7898
|
+
10215: { moduleSlotLabels: ['Power Core', 'Engine', 'Cargo Hold'] },
|
|
7899
|
+
10216: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Limpet Bay'] },
|
|
7900
|
+
10217: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
|
|
6466
7901
|
10202: {
|
|
6467
7902
|
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
6468
7903
|
},
|
|
@@ -6470,8 +7905,11 @@ const entityMetadata = {
|
|
|
6470
7905
|
10204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
6471
7906
|
10205: { moduleSlotLabels: ['Power Core', 'Drive Coil'] },
|
|
6472
7907
|
10206: { moduleSlotLabels: ['Cargo Hold', 'Cargo Hold', 'Cargo Hold'] },
|
|
6473
|
-
|
|
6474
|
-
|
|
7908
|
+
10208: {
|
|
7909
|
+
moduleSlotLabels: ['Fabricator', 'Fabricator', 'Fabricator', 'Fabricator', 'Fabricator'],
|
|
7910
|
+
},
|
|
7911
|
+
20210: { moduleSlotLabels: ['Power Core', 'Power Core', 'Engine', 'Limpet Bay'] },
|
|
7912
|
+
20211: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam', 'Tractor Beam'] },
|
|
6475
7913
|
};
|
|
6476
7914
|
for (const item of items) {
|
|
6477
7915
|
if (!itemMetadata[item.id]) {
|
|
@@ -9362,14 +10800,61 @@ var kinds = [
|
|
|
9362
10800
|
capabilityFlags: 4,
|
|
9363
10801
|
zCoord: 0,
|
|
9364
10802
|
defaultLabel: "Station Hub"
|
|
10803
|
+
},
|
|
10804
|
+
{
|
|
10805
|
+
kind: "workshop",
|
|
10806
|
+
classification: "OrbitalStructure",
|
|
10807
|
+
capabilityFlags: 20,
|
|
10808
|
+
zCoord: 0,
|
|
10809
|
+
defaultLabel: "Workshop"
|
|
9365
10810
|
}
|
|
9366
10811
|
];
|
|
9367
10812
|
var templates = [
|
|
9368
10813
|
{
|
|
9369
10814
|
itemId: 10201,
|
|
9370
10815
|
kind: "ship",
|
|
10816
|
+
displayLabel: "Ship"
|
|
10817
|
+
},
|
|
10818
|
+
{
|
|
10819
|
+
itemId: 10210,
|
|
10820
|
+
kind: "ship",
|
|
9371
10821
|
displayLabel: "Roustabout"
|
|
9372
10822
|
},
|
|
10823
|
+
{
|
|
10824
|
+
itemId: 10211,
|
|
10825
|
+
kind: "ship",
|
|
10826
|
+
displayLabel: "Prospector"
|
|
10827
|
+
},
|
|
10828
|
+
{
|
|
10829
|
+
itemId: 10212,
|
|
10830
|
+
kind: "ship",
|
|
10831
|
+
displayLabel: "Tender"
|
|
10832
|
+
},
|
|
10833
|
+
{
|
|
10834
|
+
itemId: 10213,
|
|
10835
|
+
kind: "ship",
|
|
10836
|
+
displayLabel: "Wright"
|
|
10837
|
+
},
|
|
10838
|
+
{
|
|
10839
|
+
itemId: 10214,
|
|
10840
|
+
kind: "ship",
|
|
10841
|
+
displayLabel: "Tug"
|
|
10842
|
+
},
|
|
10843
|
+
{
|
|
10844
|
+
itemId: 10215,
|
|
10845
|
+
kind: "ship",
|
|
10846
|
+
displayLabel: "Porter"
|
|
10847
|
+
},
|
|
10848
|
+
{
|
|
10849
|
+
itemId: 10216,
|
|
10850
|
+
kind: "ship",
|
|
10851
|
+
displayLabel: "Wrangler"
|
|
10852
|
+
},
|
|
10853
|
+
{
|
|
10854
|
+
itemId: 10217,
|
|
10855
|
+
kind: "ship",
|
|
10856
|
+
displayLabel: "Dredger"
|
|
10857
|
+
},
|
|
9373
10858
|
{
|
|
9374
10859
|
itemId: 10202,
|
|
9375
10860
|
kind: "warehouse",
|
|
@@ -9410,6 +10895,11 @@ var templates = [
|
|
|
9410
10895
|
kind: "hub",
|
|
9411
10896
|
displayLabel: ""
|
|
9412
10897
|
},
|
|
10898
|
+
{
|
|
10899
|
+
itemId: 10208,
|
|
10900
|
+
kind: "workshop",
|
|
10901
|
+
displayLabel: ""
|
|
10902
|
+
},
|
|
9413
10903
|
{
|
|
9414
10904
|
itemId: 20210,
|
|
9415
10905
|
kind: "ship",
|
|
@@ -9418,7 +10908,7 @@ var templates = [
|
|
|
9418
10908
|
{
|
|
9419
10909
|
itemId: 20211,
|
|
9420
10910
|
kind: "ship",
|
|
9421
|
-
displayLabel: "
|
|
10911
|
+
displayLabel: "Tug"
|
|
9422
10912
|
}
|
|
9423
10913
|
];
|
|
9424
10914
|
var kindRegistryJson = {
|
|
@@ -9502,6 +10992,7 @@ const ENTITY_SHIP = Name.from('ship');
|
|
|
9502
10992
|
const ENTITY_WAREHOUSE = Name.from('warehouse');
|
|
9503
10993
|
const ENTITY_EXTRACTOR = Name.from('extractor');
|
|
9504
10994
|
const ENTITY_FACTORY = Name.from('factory');
|
|
10995
|
+
const ENTITY_WORKSHOP = Name.from('workshop');
|
|
9505
10996
|
const ENTITY_CONTAINER = Name.from('container');
|
|
9506
10997
|
const ENTITY_NEXUS = Name.from('nexus');
|
|
9507
10998
|
const ENTITY_PLOT = Name.from('plot');
|
|
@@ -9520,6 +11011,9 @@ function isExtractor(entity) {
|
|
|
9520
11011
|
function isFactory(entity) {
|
|
9521
11012
|
return entity.type?.equals(ENTITY_FACTORY) ?? false;
|
|
9522
11013
|
}
|
|
11014
|
+
function isWorkshop(entity) {
|
|
11015
|
+
return entity.type?.equals(ENTITY_WORKSHOP) ?? false;
|
|
11016
|
+
}
|
|
9523
11017
|
function isContainer(entity) {
|
|
9524
11018
|
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
9525
11019
|
}
|
|
@@ -10001,7 +11495,7 @@ function distanceBetweenCoordinates(origin, destination) {
|
|
|
10001
11495
|
function distanceBetweenPoints(x1, y1, x2, y2) {
|
|
10002
11496
|
const x = (x1 - x2) ** 2;
|
|
10003
11497
|
const y = (y1 - y2) ** 2;
|
|
10004
|
-
return UInt64.from(Math.sqrt(x + y) * PRECISION
|
|
11498
|
+
return UInt64.from(Math.sqrt(x + y) * PRECISION);
|
|
10005
11499
|
}
|
|
10006
11500
|
function lerp$1(origin, destination, time) {
|
|
10007
11501
|
return {
|
|
@@ -10047,9 +11541,9 @@ function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
|
10047
11541
|
function rotation(origin, destination) {
|
|
10048
11542
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
10049
11543
|
}
|
|
10050
|
-
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION
|
|
11544
|
+
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
|
|
10051
11545
|
const nearbySystems = [];
|
|
10052
|
-
const max = UInt64.from(maxDistance / PRECISION
|
|
11546
|
+
const max = UInt64.from(maxDistance / PRECISION);
|
|
10053
11547
|
const xMin = Int64.from(origin.x).subtracting(max);
|
|
10054
11548
|
const xMax = Int64.from(origin.x).adding(max);
|
|
10055
11549
|
const yMin = Int64.from(origin.y).subtracting(max);
|
|
@@ -10081,14 +11575,22 @@ function calc_rechargetime(capacity, energy, recharge) {
|
|
|
10081
11575
|
function calc_ship_rechargetime(ship) {
|
|
10082
11576
|
if (!ship.generator)
|
|
10083
11577
|
return UInt32.from(0);
|
|
10084
|
-
return calc_rechargetime(ship.generator.capacity, ship.energy ??
|
|
11578
|
+
return calc_rechargetime(ship.generator.capacity, ship.energy ?? UInt32.from(0), ship.generator.recharge);
|
|
10085
11579
|
}
|
|
10086
11580
|
function calc_flighttime(distance, acceleration) {
|
|
10087
11581
|
return UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
|
|
10088
11582
|
}
|
|
11583
|
+
function calc_travel_flighttime(distance, acceleration) {
|
|
11584
|
+
const cruiseTransitionDistance = 2 * PRECISION;
|
|
11585
|
+
if (Number(distance) <= cruiseTransitionDistance) {
|
|
11586
|
+
return calc_flighttime(distance, acceleration);
|
|
11587
|
+
}
|
|
11588
|
+
const cruiseVelocity = Math.sqrt(acceleration * cruiseTransitionDistance);
|
|
11589
|
+
return UInt32.from(Number(distance) / cruiseVelocity + cruiseVelocity / acceleration);
|
|
11590
|
+
}
|
|
10089
11591
|
function calc_transit_duration(ax, ay, bx, by) {
|
|
10090
11592
|
const distance = distanceBetweenPoints(ax, ay, bx, by);
|
|
10091
|
-
return UInt32.from(Math.floor(distance.toNumber() / (PRECISION
|
|
11593
|
+
return UInt32.from(Math.floor(distance.toNumber() / (PRECISION * WH.TRANSIT_SPEED)));
|
|
10092
11594
|
}
|
|
10093
11595
|
function shipLoaderLane(ship) {
|
|
10094
11596
|
const lanes = ship.loader_lanes ?? [];
|
|
@@ -10112,14 +11614,14 @@ function calc_loader_acceleration(ship, mass) {
|
|
|
10112
11614
|
}
|
|
10113
11615
|
function calc_ship_flighttime(ship, mass, distance) {
|
|
10114
11616
|
const acceleration = calc_ship_acceleration(ship, mass);
|
|
10115
|
-
return
|
|
11617
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10116
11618
|
}
|
|
10117
11619
|
function calc_ship_acceleration(ship, mass) {
|
|
10118
11620
|
const thrust = ship.engines ? Number(ship.engines.thrust) : 0;
|
|
10119
11621
|
return calc_acceleration(thrust, Number(mass));
|
|
10120
11622
|
}
|
|
10121
11623
|
function calc_acceleration(thrust, mass) {
|
|
10122
|
-
return (thrust / mass) * PRECISION
|
|
11624
|
+
return (thrust / mass) * PRECISION;
|
|
10123
11625
|
}
|
|
10124
11626
|
function calc_ship_mass(ship, cargos) {
|
|
10125
11627
|
const mass = UInt64.from(0);
|
|
@@ -10145,10 +11647,10 @@ function calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHa
|
|
|
10145
11647
|
effectiveThrust = Math.trunc((totalThrust * 1000) / penaltyMilli);
|
|
10146
11648
|
}
|
|
10147
11649
|
const acceleration = calc_acceleration(effectiveThrust, totalMass);
|
|
10148
|
-
return
|
|
11650
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10149
11651
|
}
|
|
10150
11652
|
function calc_energyusage(distance, drain) {
|
|
10151
|
-
return UInt64.from(distance).
|
|
11653
|
+
return UInt64.from(distance).multiplying(drain).dividing(PRECISION);
|
|
10152
11654
|
}
|
|
10153
11655
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
10154
11656
|
let mass = UInt64.from(0);
|
|
@@ -10248,7 +11750,7 @@ function estimateDealTravelTime(ship, shipMass, distance, loadMass) {
|
|
|
10248
11750
|
function hasEnergyForDistance(ship, distance) {
|
|
10249
11751
|
if (!ship.engines)
|
|
10250
11752
|
return false;
|
|
10251
|
-
const energyNeeded = UInt64.from(distance).dividing(PRECISION
|
|
11753
|
+
const energyNeeded = UInt64.from(distance).dividing(PRECISION).multiplying(ship.engines.drain);
|
|
10252
11754
|
return UInt64.from(ship.energy ?? 0).gte(energyNeeded);
|
|
10253
11755
|
}
|
|
10254
11756
|
function toNum$1(v) {
|
|
@@ -10955,6 +12457,8 @@ function getItemStatKeys(itemId) {
|
|
|
10955
12457
|
return [];
|
|
10956
12458
|
return getStatDefinitions(item.category).map((d) => d.key);
|
|
10957
12459
|
}
|
|
12460
|
+
if (itemId === ITEM_SHIP_T1_PACKED)
|
|
12461
|
+
return ['strength', 'density', '', ''];
|
|
10958
12462
|
const recipe = getRecipe(itemId);
|
|
10959
12463
|
if (!recipe)
|
|
10960
12464
|
return [];
|
|
@@ -11765,6 +13269,7 @@ const MODULE_LAUNCHER = 7;
|
|
|
11765
13269
|
const MODULE_STORAGE = 8;
|
|
11766
13270
|
const MODULE_HAULER = 9;
|
|
11767
13271
|
const MODULE_BATTERY = 10;
|
|
13272
|
+
const MODULE_BUILDER = 12;
|
|
11768
13273
|
function moduleAccepts(slotType, moduleType) {
|
|
11769
13274
|
return slotType === MODULE_ANY || slotType === moduleType;
|
|
11770
13275
|
}
|
|
@@ -11781,6 +13286,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
11781
13286
|
return MODULE_LOADER;
|
|
11782
13287
|
case ITEM_CRAFTER_T1:
|
|
11783
13288
|
return MODULE_CRAFTER;
|
|
13289
|
+
case ITEM_BUILDER_T1:
|
|
13290
|
+
return MODULE_BUILDER;
|
|
11784
13291
|
case ITEM_STORAGE_T1:
|
|
11785
13292
|
return MODULE_STORAGE;
|
|
11786
13293
|
case ITEM_HAULER_T1:
|
|
@@ -11815,6 +13322,8 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
11815
13322
|
return MODULE_WARP;
|
|
11816
13323
|
case 'crafter':
|
|
11817
13324
|
return MODULE_CRAFTER;
|
|
13325
|
+
case 'builder':
|
|
13326
|
+
return MODULE_BUILDER;
|
|
11818
13327
|
case 'launcher':
|
|
11819
13328
|
return MODULE_LAUNCHER;
|
|
11820
13329
|
case 'storage':
|
|
@@ -13458,7 +14967,7 @@ const UINT32_MAX = 4294967295;
|
|
|
13458
14967
|
const UINT32_MAX_BIGINT = 4294967295n;
|
|
13459
14968
|
const UINT32_MOD = 4294967296n;
|
|
13460
14969
|
const UINT64_MAX = 18446744073709551615n;
|
|
13461
|
-
const PRECISION_BIGINT = BigInt(PRECISION
|
|
14970
|
+
const PRECISION_BIGINT = BigInt(PRECISION);
|
|
13462
14971
|
function toNumber(value) {
|
|
13463
14972
|
if (typeof value === 'number')
|
|
13464
14973
|
return Math.trunc(value);
|
|
@@ -13507,7 +15016,7 @@ function calcDistance(origin, destination) {
|
|
|
13507
15016
|
const b = Coordinates.from(destination);
|
|
13508
15017
|
const dx = toNumber(a.x) - toNumber(b.x);
|
|
13509
15018
|
const dy = toNumber(a.y) - toNumber(b.y);
|
|
13510
|
-
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
15019
|
+
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION));
|
|
13511
15020
|
}
|
|
13512
15021
|
function calcCargoItemMassUint32(item) {
|
|
13513
15022
|
let mass = toUint32(BigInt(getItem(item.item_id).mass) * toUint32(toBigInt(item.quantity)));
|
|
@@ -13577,10 +15086,10 @@ class ActionsManager extends BaseManager {
|
|
|
13577
15086
|
recharge,
|
|
13578
15087
|
});
|
|
13579
15088
|
}
|
|
13580
|
-
|
|
15089
|
+
travelplan(entities, waypoints, recharge = true) {
|
|
13581
15090
|
const entityRefs = this.entityRefs(entities);
|
|
13582
15091
|
const wps = waypoints.map((w) => Types.route_waypoint.from({ x: Int64.from(w.x), y: Int64.from(w.y) }));
|
|
13583
|
-
return this.server.action('
|
|
15092
|
+
return this.server.action('travelplan', {
|
|
13584
15093
|
entities: entityRefs,
|
|
13585
15094
|
waypoints: wps,
|
|
13586
15095
|
recharge,
|
|
@@ -13667,6 +15176,14 @@ class ActionsManager extends BaseManager {
|
|
|
13667
15176
|
items,
|
|
13668
15177
|
});
|
|
13669
15178
|
}
|
|
15179
|
+
shuttle(carrierId, fromId, toId, items) {
|
|
15180
|
+
return this.server.action('shuttle', {
|
|
15181
|
+
carrier: UInt64.from(carrierId),
|
|
15182
|
+
from_id: UInt64.from(fromId),
|
|
15183
|
+
to_id: UInt64.from(toId),
|
|
15184
|
+
items,
|
|
15185
|
+
});
|
|
15186
|
+
}
|
|
13670
15187
|
launch(launcherId, catcherId, items) {
|
|
13671
15188
|
return this.server.action('launch', {
|
|
13672
15189
|
launcher_id: UInt64.from(launcherId),
|
|
@@ -13715,26 +15232,16 @@ class ActionsManager extends BaseManager {
|
|
|
13715
15232
|
}
|
|
13716
15233
|
return this.server.action('gather', params);
|
|
13717
15234
|
}
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
|
|
13721
|
-
|
|
13722
|
-
|
|
13723
|
-
|
|
13724
|
-
|
|
15235
|
+
gatherplan(sourceId, destinationId, stratum, quantity, recharge = true, slots = []) {
|
|
15236
|
+
return this.server.action('gatherplan', {
|
|
15237
|
+
source_id: UInt64.from(sourceId),
|
|
15238
|
+
destination_id: UInt64.from(destinationId),
|
|
15239
|
+
stratum: UInt16.from(stratum),
|
|
15240
|
+
quantity: UInt32.from(quantity),
|
|
15241
|
+
recharge,
|
|
15242
|
+
slots: Bytes.from(slots),
|
|
13725
15243
|
});
|
|
13726
15244
|
}
|
|
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
15245
|
warp(entityId, destination) {
|
|
13739
15246
|
const x = Int64.from(destination.x);
|
|
13740
15247
|
const y = Int64.from(destination.y);
|
|
@@ -13759,6 +15266,39 @@ class ActionsManager extends BaseManager {
|
|
|
13759
15266
|
}
|
|
13760
15267
|
return this.server.action('craft', params);
|
|
13761
15268
|
}
|
|
15269
|
+
craftjob(shipId, workshopId, slot, recipeId, quantity, inputs) {
|
|
15270
|
+
const params = {
|
|
15271
|
+
ship_id: UInt64.from(shipId),
|
|
15272
|
+
workshop_id: UInt64.from(workshopId),
|
|
15273
|
+
slot: UInt8.from(slot),
|
|
15274
|
+
recipe_id: UInt16.from(recipeId),
|
|
15275
|
+
quantity: UInt32.from(quantity),
|
|
15276
|
+
inputs,
|
|
15277
|
+
};
|
|
15278
|
+
return this.server.action('craftjob', params);
|
|
15279
|
+
}
|
|
15280
|
+
claimjob(jobId, shipId) {
|
|
15281
|
+
const params = {
|
|
15282
|
+
job_id: UInt64.from(jobId),
|
|
15283
|
+
ship_id: UInt64.from(shipId),
|
|
15284
|
+
};
|
|
15285
|
+
return this.server.action('claimjob', params);
|
|
15286
|
+
}
|
|
15287
|
+
canceljob(jobId, shipId) {
|
|
15288
|
+
const params = {
|
|
15289
|
+
job_id: UInt64.from(jobId),
|
|
15290
|
+
ship_id: UInt64.from(shipId),
|
|
15291
|
+
};
|
|
15292
|
+
return this.server.action('canceljob', params);
|
|
15293
|
+
}
|
|
15294
|
+
setsocket(workshopId, slot, open) {
|
|
15295
|
+
const params = {
|
|
15296
|
+
workshop_id: UInt64.from(workshopId),
|
|
15297
|
+
slot: UInt8.from(slot),
|
|
15298
|
+
open,
|
|
15299
|
+
};
|
|
15300
|
+
return this.server.action('setsocket', params);
|
|
15301
|
+
}
|
|
13762
15302
|
blend(entityId, inputs) {
|
|
13763
15303
|
return this.server.action('blend', {
|
|
13764
15304
|
id: UInt64.from(entityId),
|
|
@@ -14673,6 +16213,15 @@ class Shipload {
|
|
|
14673
16213
|
}
|
|
14674
16214
|
}
|
|
14675
16215
|
|
|
16216
|
+
const MODULE_STAT_SCALING_ANCHOR = 213;
|
|
16217
|
+
const MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = 40;
|
|
16218
|
+
function computeEffectiveModuleStat(stat) {
|
|
16219
|
+
if (stat <= MODULE_STAT_SCALING_ANCHOR)
|
|
16220
|
+
return stat;
|
|
16221
|
+
return (MODULE_STAT_SCALING_ANCHOR +
|
|
16222
|
+
Math.floor(((stat - MODULE_STAT_SCALING_ANCHOR) * MODULE_STAT_SCALING_POST_ANCHOR_PERCENT) / 100));
|
|
16223
|
+
}
|
|
16224
|
+
|
|
14676
16225
|
const U16_MAX = 65535;
|
|
14677
16226
|
function packedModulesToInstalled(entries) {
|
|
14678
16227
|
const installed = [];
|
|
@@ -14704,13 +16253,27 @@ function getSlotAmp(layout, slotIndex) {
|
|
|
14704
16253
|
function idiv(a, b) {
|
|
14705
16254
|
return Math.floor(a / b);
|
|
14706
16255
|
}
|
|
14707
|
-
function
|
|
16256
|
+
function toWholeEnergy$1(milli) {
|
|
16257
|
+
return idiv(milli + 500, 1000);
|
|
16258
|
+
}
|
|
16259
|
+
function isShipHull$1(itemId) {
|
|
16260
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16261
|
+
}
|
|
16262
|
+
function sumPackedShipChannels(stats) {
|
|
16263
|
+
let sum = 0;
|
|
16264
|
+
for (let slot = 0; slot < 5; slot++)
|
|
16265
|
+
sum += decodeStat(stats, slot);
|
|
16266
|
+
return sum;
|
|
16267
|
+
}
|
|
16268
|
+
function computeBaseHullmass$1(itemId, stats) {
|
|
16269
|
+
if (isShipHull$1(itemId)) {
|
|
16270
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumPackedShipChannels(stats))) / 10000);
|
|
16271
|
+
}
|
|
14708
16272
|
const density = decodeStat(stats, 1);
|
|
14709
|
-
return
|
|
16273
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - density)) / 2000);
|
|
14710
16274
|
}
|
|
14711
16275
|
function computeBaseCapacityShip(stats) {
|
|
14712
|
-
|
|
14713
|
-
return Math.floor(5000000 * 6 ** (s / 1998));
|
|
16276
|
+
return Math.floor(5000000 * 6 ** (sumPackedShipChannels(stats) / 4995));
|
|
14714
16277
|
}
|
|
14715
16278
|
function computeBaseCapacityContainer(stats) {
|
|
14716
16279
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
@@ -14722,35 +16285,57 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
14722
16285
|
}
|
|
14723
16286
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
14724
16287
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
14725
|
-
const ENGINE_DRAIN_BASE =
|
|
16288
|
+
const ENGINE_DRAIN_BASE = 156;
|
|
14726
16289
|
const ENGINE_DRAIN_REF_THRUST = 775;
|
|
14727
16290
|
const ENGINE_DRAIN_REF_THM = 500;
|
|
14728
16291
|
const computeTravelDrain = (totalThrust, avgThm) => {
|
|
14729
16292
|
if (totalThrust <= 0)
|
|
14730
16293
|
return 0;
|
|
14731
|
-
const
|
|
14732
|
-
const
|
|
14733
|
-
return
|
|
16294
|
+
const thermalFactor = computeEngineDrain(avgThm) / computeEngineDrain(ENGINE_DRAIN_REF_THM);
|
|
16295
|
+
const thrustFactor = Math.sqrt(ENGINE_DRAIN_REF_THRUST / totalThrust);
|
|
16296
|
+
return Math.floor(ENGINE_DRAIN_BASE * 1000 * thermalFactor * thrustFactor);
|
|
14734
16297
|
};
|
|
14735
|
-
const computeGeneratorCap = (com) =>
|
|
14736
|
-
const computeGeneratorRech = (fin) =>
|
|
16298
|
+
const computeGeneratorCap = (com) => 1300000 + com * 500;
|
|
16299
|
+
const computeGeneratorRech = (fin) => 2000 + fin * 6;
|
|
14737
16300
|
const computeGathererYield = (str) => 200 + str;
|
|
14738
|
-
const computeGathererDrain = (con) => 2 * Math.max(
|
|
16301
|
+
const computeGathererDrain = (con) => 2 * Math.max(250000, 1250000 - con * 1250);
|
|
14739
16302
|
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
14740
16303
|
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
14741
16304
|
const computeLoaderThrust = (pla) => 1 + idiv(pla * pla, 10000);
|
|
14742
16305
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
14743
|
-
const computeCrafterDrain = (fin) => Math.max(
|
|
16306
|
+
const computeCrafterDrain = (fin) => Math.max(5000, 30000 - idiv(fin * 1000, 33));
|
|
16307
|
+
const computeBuilderSpeed = (coh) => 100 + idiv(coh * 4, 5);
|
|
16308
|
+
const computeBuilderDrain = (tol) => Math.max(5000, 30000 - idiv(tol * 1000, 33));
|
|
14744
16309
|
const computeHaulerCapacity = (fin, tier) => Math.max(tier, tier + idiv(fin, 400));
|
|
14745
16310
|
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
14746
|
-
const
|
|
16311
|
+
const supportDrainTierPercent = (tier) => {
|
|
16312
|
+
const clampedTier = Math.min(10, Math.max(1, Math.trunc(tier)));
|
|
16313
|
+
return Math.max(50, 110 - clampedTier * 10);
|
|
16314
|
+
};
|
|
16315
|
+
const computeT1LogisticsDrain = (stat) => Math.max(3000, 15000 - Math.min(12000, idiv(stat * 1000, 80)));
|
|
16316
|
+
const computeHaulerDrain = (conductivity, tier) => idiv(computeT1LogisticsDrain(conductivity) * supportDrainTierPercent(tier), 100);
|
|
16317
|
+
const computeCargoBayDrain = (cohesion, tier) => idiv(computeT1LogisticsDrain(cohesion) * 3 * supportDrainTierPercent(tier), 400);
|
|
14747
16318
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
14748
|
-
const computeCargoBayCapacity = (strength, density, hardness
|
|
14749
|
-
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) =>
|
|
16319
|
+
const computeCargoBayCapacity = (strength, density, hardness) => 10000000 + idiv((strength + density + hardness) * 50000000, 2997);
|
|
16320
|
+
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996);
|
|
14750
16321
|
function entityDisplayName(itemId) {
|
|
14751
16322
|
switch (itemId) {
|
|
14752
16323
|
case ITEM_SHIP_T1_PACKED:
|
|
16324
|
+
return 'Ship';
|
|
16325
|
+
case ITEM_ROUSTABOUT_T1_PACKED:
|
|
14753
16326
|
return 'Roustabout';
|
|
16327
|
+
case ITEM_PROSPECTOR_T1_PACKED:
|
|
16328
|
+
return 'Prospector';
|
|
16329
|
+
case ITEM_TENDER_T1_PACKED:
|
|
16330
|
+
return 'Tender';
|
|
16331
|
+
case ITEM_TUG_T1_PACKED:
|
|
16332
|
+
return 'Tug';
|
|
16333
|
+
case ITEM_PORTER_T1_PACKED:
|
|
16334
|
+
return 'Porter';
|
|
16335
|
+
case ITEM_WRANGLER_T1_PACKED:
|
|
16336
|
+
return 'Wrangler';
|
|
16337
|
+
case ITEM_DREDGER_T1_PACKED:
|
|
16338
|
+
return 'Dredger';
|
|
14754
16339
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
14755
16340
|
return 'Warehouse';
|
|
14756
16341
|
case ITEM_EXTRACTOR_T1_PACKED:
|
|
@@ -14764,7 +16349,7 @@ function entityDisplayName(itemId) {
|
|
|
14764
16349
|
case ITEM_PROSPECTOR_T2_PACKED:
|
|
14765
16350
|
return 'Prospector';
|
|
14766
16351
|
case ITEM_HAULER_SHIP_T2_PACKED:
|
|
14767
|
-
return '
|
|
16352
|
+
return 'Tug';
|
|
14768
16353
|
default:
|
|
14769
16354
|
return 'Entity';
|
|
14770
16355
|
}
|
|
@@ -14782,6 +16367,8 @@ function moduleDisplayName(itemId) {
|
|
|
14782
16367
|
return 'Shuttle Bay';
|
|
14783
16368
|
case ITEM_CRAFTER_T1:
|
|
14784
16369
|
return 'Fabricator';
|
|
16370
|
+
case ITEM_BUILDER_T1:
|
|
16371
|
+
return 'Assembly Arm';
|
|
14785
16372
|
case ITEM_STORAGE_T1:
|
|
14786
16373
|
return 'Cargo Hold';
|
|
14787
16374
|
case ITEM_HAULER_T1:
|
|
@@ -14807,15 +16394,15 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14807
16394
|
const subtype = getModuleCapabilityType(itemId);
|
|
14808
16395
|
switch (subtype) {
|
|
14809
16396
|
case MODULE_ENGINE: {
|
|
14810
|
-
const vol = decodeStat(stats, 0);
|
|
14811
|
-
const thm = decodeStat(stats, 1);
|
|
16397
|
+
const vol = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16398
|
+
const thm = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
14812
16399
|
out += ` Thrust ${computeEngineThrust(vol)} Drain ${computeEngineDrain(thm)}`;
|
|
14813
16400
|
break;
|
|
14814
16401
|
}
|
|
14815
16402
|
case MODULE_GENERATOR: {
|
|
14816
|
-
const res = decodeStat(stats, 0);
|
|
14817
|
-
const ref = decodeStat(stats, 1);
|
|
14818
|
-
out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(ref)}`;
|
|
16403
|
+
const res = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16404
|
+
const ref = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
16405
|
+
out += ` Capacity ${toWholeEnergy$1(computeGeneratorCap(res))} Recharge ${toWholeEnergy$1(computeGeneratorRech(ref))}`;
|
|
14819
16406
|
break;
|
|
14820
16407
|
}
|
|
14821
16408
|
case MODULE_GATHERER: {
|
|
@@ -14823,7 +16410,7 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14823
16410
|
const tol = decodeStat(stats, 1);
|
|
14824
16411
|
const con = decodeStat(stats, 2);
|
|
14825
16412
|
const tier = getItem(itemId).tier;
|
|
14826
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
16413
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${toWholeEnergy$1(computeGathererDrain(con))}`;
|
|
14827
16414
|
break;
|
|
14828
16415
|
}
|
|
14829
16416
|
case MODULE_LOADER: {
|
|
@@ -14835,23 +16422,30 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14835
16422
|
case MODULE_CRAFTER: {
|
|
14836
16423
|
const rea = decodeStat(stats, 0);
|
|
14837
16424
|
const con = decodeStat(stats, 1);
|
|
14838
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(con)}`;
|
|
16425
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${toWholeEnergy$1(computeCrafterDrain(con))}`;
|
|
16426
|
+
break;
|
|
16427
|
+
}
|
|
16428
|
+
case MODULE_BUILDER: {
|
|
16429
|
+
const coh = decodeStat(stats, 0);
|
|
16430
|
+
const tol = decodeStat(stats, 1);
|
|
16431
|
+
out += ` Speed ${computeBuilderSpeed(coh)} Drain ${toWholeEnergy$1(computeBuilderDrain(tol))}`;
|
|
14839
16432
|
break;
|
|
14840
16433
|
}
|
|
14841
16434
|
case MODULE_STORAGE: {
|
|
14842
16435
|
const str = decodeStat(stats, 0);
|
|
14843
16436
|
const den = decodeStat(stats, 1);
|
|
14844
16437
|
const hrd = decodeStat(stats, 2);
|
|
14845
|
-
const
|
|
14846
|
-
|
|
16438
|
+
const coh = decodeStat(stats, 3);
|
|
16439
|
+
const tier = getItem(itemId).tier;
|
|
16440
|
+
out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd)} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
|
|
14847
16441
|
break;
|
|
14848
16442
|
}
|
|
14849
16443
|
case MODULE_HAULER: {
|
|
14850
16444
|
const res = decodeStat(stats, 0);
|
|
14851
16445
|
const pla = decodeStat(stats, 1);
|
|
14852
|
-
const
|
|
16446
|
+
const con = decodeStat(stats, 2);
|
|
14853
16447
|
const tier = getItem(itemId).tier;
|
|
14854
|
-
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${
|
|
16448
|
+
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${toWholeEnergy$1(computeHaulerDrain(con, tier))}`;
|
|
14855
16449
|
break;
|
|
14856
16450
|
}
|
|
14857
16451
|
case MODULE_WARP: {
|
|
@@ -14864,18 +16458,16 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14864
16458
|
const thm = decodeStat(stats, 1);
|
|
14865
16459
|
const pla = decodeStat(stats, 2);
|
|
14866
16460
|
const ins = decodeStat(stats, 3);
|
|
14867
|
-
out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
|
|
16461
|
+
out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
|
|
14868
16462
|
break;
|
|
14869
16463
|
}
|
|
14870
16464
|
}
|
|
14871
16465
|
return out;
|
|
14872
16466
|
}
|
|
14873
16467
|
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14874
|
-
const hullMass = computeBaseHullmass$1(hullStats);
|
|
16468
|
+
const hullMass = computeBaseHullmass$1(itemId, hullStats);
|
|
14875
16469
|
let baseCapacity = 0;
|
|
14876
|
-
if (itemId
|
|
14877
|
-
itemId === ITEM_PROSPECTOR_T2_PACKED ||
|
|
14878
|
-
itemId === ITEM_HAULER_SHIP_T2_PACKED) {
|
|
16470
|
+
if (isShipHull$1(itemId)) {
|
|
14879
16471
|
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14880
16472
|
}
|
|
14881
16473
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
@@ -14900,31 +16492,45 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
14900
16492
|
return out;
|
|
14901
16493
|
}
|
|
14902
16494
|
|
|
14903
|
-
|
|
14904
|
-
|
|
16495
|
+
const DEFAULT_BASE_HULLMASS = 100000;
|
|
16496
|
+
function getBaseHullmassFor(itemId) {
|
|
16497
|
+
return getEntityLayout(itemId)?.baseHullmass ?? DEFAULT_BASE_HULLMASS;
|
|
14905
16498
|
}
|
|
14906
|
-
function
|
|
14907
|
-
|
|
14908
|
-
|
|
16499
|
+
function isShipHull(itemId) {
|
|
16500
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16501
|
+
}
|
|
16502
|
+
function sumHullStats(stats) {
|
|
16503
|
+
return Object.values(stats).reduce((sum, value) => sum + value, 0);
|
|
16504
|
+
}
|
|
16505
|
+
function computeBaseHullmass(itemId, stats) {
|
|
16506
|
+
if (isShipHull(itemId)) {
|
|
16507
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumHullStats(stats))) / 10000);
|
|
16508
|
+
}
|
|
16509
|
+
const lightness = stats.density ?? stats.hardness ?? 0;
|
|
16510
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - lightness)) / 2000);
|
|
16511
|
+
}
|
|
16512
|
+
function computeShipHullCapabilities(stats, itemId = ITEM_SHIP_T1_PACKED) {
|
|
16513
|
+
const statSum = sumHullStats(stats);
|
|
16514
|
+
const exponent = statSum / 4995.0;
|
|
14909
16515
|
return {
|
|
14910
|
-
hullmass: computeBaseHullmass(stats),
|
|
16516
|
+
hullmass: computeBaseHullmass(itemId, stats),
|
|
14911
16517
|
capacity: Math.floor(5000000 * 6 ** exponent),
|
|
14912
16518
|
};
|
|
14913
16519
|
}
|
|
14914
16520
|
function computeEngineCapabilities(stats) {
|
|
14915
|
-
const vol = stats.volatility;
|
|
14916
|
-
const thm = stats.thermal;
|
|
16521
|
+
const vol = computeEffectiveModuleStat(stats.volatility);
|
|
16522
|
+
const thm = computeEffectiveModuleStat(stats.thermal);
|
|
14917
16523
|
return {
|
|
14918
16524
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
14919
16525
|
drain: 2 * Math.max(30, 50 - Math.floor(thm / 70)),
|
|
14920
16526
|
};
|
|
14921
16527
|
}
|
|
14922
16528
|
function computeGeneratorCapabilities(stats) {
|
|
14923
|
-
const res = stats.resonance;
|
|
14924
|
-
const ref = stats.reflectivity;
|
|
16529
|
+
const res = computeEffectiveModuleStat(stats.resonance);
|
|
16530
|
+
const ref = computeEffectiveModuleStat(stats.reflectivity);
|
|
14925
16531
|
return {
|
|
14926
|
-
capacity:
|
|
14927
|
-
recharge:
|
|
16532
|
+
capacity: 1300000 + res * 500,
|
|
16533
|
+
recharge: 2000 + ref * 6,
|
|
14928
16534
|
};
|
|
14929
16535
|
}
|
|
14930
16536
|
const GATHERER_DEPTH_TABLE = [
|
|
@@ -14950,11 +16556,11 @@ function gathererDepthForTier(tol, tier) {
|
|
|
14950
16556
|
function computeGathererCapabilities(stats, tier) {
|
|
14951
16557
|
const str = stats.strength;
|
|
14952
16558
|
const con = stats.saturation;
|
|
14953
|
-
const
|
|
16559
|
+
const tol = stats.tolerance ?? stats.hardness;
|
|
14954
16560
|
return {
|
|
14955
16561
|
yield: 200 + str,
|
|
14956
|
-
drain: 2 * Math.max(
|
|
14957
|
-
depth: gathererDepthForTier(
|
|
16562
|
+
drain: 2 * Math.max(250000, 1250000 - con * 1250),
|
|
16563
|
+
depth: gathererDepthForTier(tol, tier),
|
|
14958
16564
|
};
|
|
14959
16565
|
}
|
|
14960
16566
|
function computeLoaderCapabilities(stats) {
|
|
@@ -14971,7 +16577,15 @@ function computeCrafterCapabilities(stats) {
|
|
|
14971
16577
|
const con = stats.conductivity;
|
|
14972
16578
|
return {
|
|
14973
16579
|
speed: 100 + Math.floor((fin * 4) / 5),
|
|
14974
|
-
drain: Math.max(
|
|
16580
|
+
drain: Math.max(5000, 30000 - Math.floor((con * 1000) / 33)),
|
|
16581
|
+
};
|
|
16582
|
+
}
|
|
16583
|
+
function computeBuilderCapabilities(stats) {
|
|
16584
|
+
const coh = stats.cohesion;
|
|
16585
|
+
const tol = stats.tolerance;
|
|
16586
|
+
return {
|
|
16587
|
+
speed: 100 + Math.floor((coh * 4) / 5),
|
|
16588
|
+
drain: Math.max(5000, 30000 - Math.floor((tol * 1000) / 33)),
|
|
14975
16589
|
};
|
|
14976
16590
|
}
|
|
14977
16591
|
function computeHaulerCapabilities(stats, tier) {
|
|
@@ -14981,7 +16595,7 @@ function computeHaulerCapabilities(stats, tier) {
|
|
|
14981
16595
|
return {
|
|
14982
16596
|
capacity: computeHaulerCapacity(resonance, tier),
|
|
14983
16597
|
efficiency: 2000 + plasticity * 6,
|
|
14984
|
-
drain:
|
|
16598
|
+
drain: computeHaulerDrain(conductivity, tier),
|
|
14985
16599
|
};
|
|
14986
16600
|
}
|
|
14987
16601
|
function computeLauncherCapabilities(stats, amp = 100) {
|
|
@@ -14991,13 +16605,11 @@ function computeLauncherCapabilities(stats, amp = 100) {
|
|
|
14991
16605
|
drain: stats.drain,
|
|
14992
16606
|
};
|
|
14993
16607
|
}
|
|
14994
|
-
function computeStorageCapabilities(stats) {
|
|
14995
|
-
|
|
14996
|
-
|
|
14997
|
-
|
|
14998
|
-
|
|
14999
|
-
const statSum = strength + density + hardness + cohesion;
|
|
15000
|
-
return { capacity: 10000000 + Math.floor((statSum * 50000000) / 3996) };
|
|
16608
|
+
function computeStorageCapabilities(stats, tier) {
|
|
16609
|
+
return {
|
|
16610
|
+
capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0),
|
|
16611
|
+
drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
|
|
16612
|
+
};
|
|
15001
16613
|
}
|
|
15002
16614
|
function computeBatteryCapabilities(stats) {
|
|
15003
16615
|
const volatility = stats.volatility ?? 0;
|
|
@@ -15005,7 +16617,7 @@ function computeBatteryCapabilities(stats) {
|
|
|
15005
16617
|
const plasticity = stats.plasticity ?? 0;
|
|
15006
16618
|
const insulation = stats.insulation ?? 0;
|
|
15007
16619
|
const statSum = volatility + thermal + plasticity + insulation;
|
|
15008
|
-
return { capacity:
|
|
16620
|
+
return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
|
|
15009
16621
|
}
|
|
15010
16622
|
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
16623
|
function capacityTierMultiplier(tier) {
|
|
@@ -15017,25 +16629,25 @@ function applyCapacityTier(baseCapacity, tier) {
|
|
|
15017
16629
|
}
|
|
15018
16630
|
function computeBaseCapacity(itemId, stats) {
|
|
15019
16631
|
let base;
|
|
15020
|
-
|
|
15021
|
-
|
|
15022
|
-
|
|
15023
|
-
|
|
15024
|
-
|
|
15025
|
-
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
|
|
15037
|
-
|
|
15038
|
-
|
|
16632
|
+
if (isShipHull(itemId)) {
|
|
16633
|
+
base = computeShipHullCapabilities(stats, itemId).capacity;
|
|
16634
|
+
}
|
|
16635
|
+
else {
|
|
16636
|
+
switch (itemId) {
|
|
16637
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
16638
|
+
case ITEM_FACTORY_T1_PACKED:
|
|
16639
|
+
case ITEM_MASS_DRIVER_T1_PACKED:
|
|
16640
|
+
case ITEM_MASS_CATCHER_T1_PACKED:
|
|
16641
|
+
case ITEM_CONTAINER_T1_PACKED:
|
|
16642
|
+
case ITEM_CONTAINER_T2_PACKED:
|
|
16643
|
+
base = computeContainerCapabilities(stats).capacity;
|
|
16644
|
+
break;
|
|
16645
|
+
case ITEM_WAREHOUSE_T1_PACKED:
|
|
16646
|
+
base = computeWarehouseHullCapabilities(stats).capacity;
|
|
16647
|
+
break;
|
|
16648
|
+
default:
|
|
16649
|
+
return 0;
|
|
16650
|
+
}
|
|
15039
16651
|
}
|
|
15040
16652
|
return applyCapacityTier(base, getItem(itemId).tier);
|
|
15041
16653
|
}
|
|
@@ -15047,7 +16659,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
15047
16659
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15048
16660
|
const exponent = statSum / 1998.0;
|
|
15049
16661
|
return {
|
|
15050
|
-
hullmass: computeBaseHullmass(stats),
|
|
16662
|
+
hullmass: computeBaseHullmass(ITEM_WAREHOUSE_T1_PACKED, stats),
|
|
15051
16663
|
capacity: Math.floor(100000000 * 6 ** exponent),
|
|
15052
16664
|
};
|
|
15053
16665
|
}
|
|
@@ -15068,11 +16680,15 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15068
16680
|
let maxGathDepth = 0;
|
|
15069
16681
|
let hasGatherer = false;
|
|
15070
16682
|
let totalStorageCapacity = 0;
|
|
16683
|
+
let totalCargoHoldDrain = 0;
|
|
15071
16684
|
const baseCapacity = computeBaseCapacity(itemId, stats);
|
|
15072
16685
|
let installedModuleMass = 0;
|
|
15073
16686
|
let totalCrafterSpeed = 0;
|
|
15074
16687
|
let totalCrafterDrain = 0;
|
|
15075
16688
|
let hasCrafter = false;
|
|
16689
|
+
let totalBuilderSpeed = 0;
|
|
16690
|
+
let totalBuilderDrain = 0;
|
|
16691
|
+
let hasBuilder = false;
|
|
15076
16692
|
let totalHaulerCapacity = 0;
|
|
15077
16693
|
let weightedHaulerEffNum = 0n;
|
|
15078
16694
|
let totalHaulerDrain = 0;
|
|
@@ -15087,6 +16703,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15087
16703
|
let totalBatteryCapacity = 0;
|
|
15088
16704
|
const gathererLanes = [];
|
|
15089
16705
|
const crafterLanes = [];
|
|
16706
|
+
const builderLanes = [];
|
|
15090
16707
|
const loaderLanes = [];
|
|
15091
16708
|
for (const mod of modules) {
|
|
15092
16709
|
const item = getItem(mod.itemId);
|
|
@@ -15098,19 +16715,23 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15098
16715
|
hasEngine = true;
|
|
15099
16716
|
const caps = computeEngineCapabilities(decodedStats);
|
|
15100
16717
|
totalThrust += applySlotMultiplier(caps.thrust, amp);
|
|
15101
|
-
totalEngineThm += decodedStats.thermal ?? 0;
|
|
16718
|
+
totalEngineThm += computeEffectiveModuleStat(decodedStats.thermal ?? 0);
|
|
15102
16719
|
engineCount += 1;
|
|
15103
16720
|
}
|
|
15104
16721
|
else if (modType === MODULE_GENERATOR) {
|
|
15105
16722
|
hasGenerator = true;
|
|
15106
16723
|
const caps = computeGeneratorCapabilities(decodedStats);
|
|
15107
|
-
totalGenCapacity +=
|
|
15108
|
-
totalGenRecharge +=
|
|
16724
|
+
totalGenCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16725
|
+
totalGenRecharge += applySlotMultiplierUint32(caps.recharge, amp);
|
|
15109
16726
|
}
|
|
15110
16727
|
else if (modType === MODULE_GATHERER) {
|
|
15111
16728
|
hasGatherer = true;
|
|
15112
16729
|
const tier = item.tier;
|
|
15113
|
-
const caps = computeGathererCapabilities(
|
|
16730
|
+
const caps = computeGathererCapabilities({
|
|
16731
|
+
strength: decodeStat(mod.stats, 0),
|
|
16732
|
+
tolerance: decodeStat(mod.stats, 1),
|
|
16733
|
+
saturation: decodeStat(mod.stats, 2),
|
|
16734
|
+
}, tier);
|
|
15114
16735
|
const scaledYield = applySlotMultiplier(caps.yield, amp);
|
|
15115
16736
|
totalGathYield += scaledYield;
|
|
15116
16737
|
totalGathDrain += caps.drain;
|
|
@@ -15138,8 +16759,9 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15138
16759
|
});
|
|
15139
16760
|
}
|
|
15140
16761
|
else if (modType === MODULE_STORAGE) {
|
|
15141
|
-
const caps = computeStorageCapabilities(decodedStats);
|
|
16762
|
+
const caps = computeStorageCapabilities(decodedStats, item.tier);
|
|
15142
16763
|
totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16764
|
+
totalCargoHoldDrain += caps.drain;
|
|
15143
16765
|
}
|
|
15144
16766
|
else if (modType === MODULE_CRAFTER) {
|
|
15145
16767
|
hasCrafter = true;
|
|
@@ -15154,6 +16776,19 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15154
16776
|
outputPct: amp,
|
|
15155
16777
|
});
|
|
15156
16778
|
}
|
|
16779
|
+
else if (modType === MODULE_BUILDER) {
|
|
16780
|
+
hasBuilder = true;
|
|
16781
|
+
const caps = computeBuilderCapabilities(decodedStats);
|
|
16782
|
+
const scaledSpeed = applySlotMultiplier(caps.speed, amp);
|
|
16783
|
+
totalBuilderSpeed += scaledSpeed;
|
|
16784
|
+
totalBuilderDrain += caps.drain;
|
|
16785
|
+
builderLanes.push({
|
|
16786
|
+
slotIndex: mod.slotIndex,
|
|
16787
|
+
speed: scaledSpeed,
|
|
16788
|
+
drain: caps.drain,
|
|
16789
|
+
outputPct: amp,
|
|
16790
|
+
});
|
|
16791
|
+
}
|
|
15157
16792
|
else if (modType === MODULE_HAULER) {
|
|
15158
16793
|
hasHauler = true;
|
|
15159
16794
|
const caps = computeHaulerCapabilities(decodedStats, item.tier);
|
|
@@ -15188,12 +16823,20 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15188
16823
|
totalGenCapacity += totalBatteryCapacity;
|
|
15189
16824
|
}
|
|
15190
16825
|
const result = {
|
|
15191
|
-
hullmass: computeBaseHullmass(stats) + installedModuleMass,
|
|
16826
|
+
hullmass: computeBaseHullmass(itemId, stats) + installedModuleMass,
|
|
15192
16827
|
capacity: clampUint32(baseCapacity + totalStorageCapacity),
|
|
15193
16828
|
};
|
|
15194
16829
|
if (hasEngine) {
|
|
15195
16830
|
const avgThm = engineCount > 0 ? Math.trunc(totalEngineThm / engineCount) : 0;
|
|
15196
|
-
|
|
16831
|
+
const engineDrain = computeTravelDrain(totalThrust, avgThm);
|
|
16832
|
+
const totalDrain = clampUint32(engineDrain + totalCargoHoldDrain + totalHaulerDrain);
|
|
16833
|
+
result.engines = { thrust: totalThrust, drain: totalDrain };
|
|
16834
|
+
result.travelDrain = {
|
|
16835
|
+
engine: engineDrain,
|
|
16836
|
+
cargoHolds: totalCargoHoldDrain,
|
|
16837
|
+
tractorBeams: totalHaulerDrain,
|
|
16838
|
+
total: totalDrain,
|
|
16839
|
+
};
|
|
15197
16840
|
}
|
|
15198
16841
|
if (hasGenerator) {
|
|
15199
16842
|
result.generator = {
|
|
@@ -15221,6 +16864,10 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15221
16864
|
result.crafter = { speed: clampUint16(totalCrafterSpeed), drain: totalCrafterDrain };
|
|
15222
16865
|
result.crafterLanes = crafterLanes;
|
|
15223
16866
|
}
|
|
16867
|
+
if (hasBuilder) {
|
|
16868
|
+
result.builder = { speed: clampUint16(totalBuilderSpeed), drain: totalBuilderDrain };
|
|
16869
|
+
result.builderLanes = builderLanes;
|
|
16870
|
+
}
|
|
15224
16871
|
if (hasHauler) {
|
|
15225
16872
|
const efficiency = totalHaulerCapacity > 0 ? Number(weightedHaulerEffNum / BigInt(totalHaulerCapacity)) : 0;
|
|
15226
16873
|
result.hauler = {
|
|
@@ -15248,7 +16895,7 @@ function computeContainerCapabilities(stats) {
|
|
|
15248
16895
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15249
16896
|
const exponent = statSum / 1998.0;
|
|
15250
16897
|
return {
|
|
15251
|
-
hullmass: computeBaseHullmass(stats),
|
|
16898
|
+
hullmass: computeBaseHullmass(ITEM_CONTAINER_T1_PACKED, stats),
|
|
15252
16899
|
capacity: Math.floor(22000000 * 6 ** exponent),
|
|
15253
16900
|
};
|
|
15254
16901
|
}
|
|
@@ -15314,7 +16961,7 @@ function makeEntity(packedItemId, state) {
|
|
|
15314
16961
|
holds: [],
|
|
15315
16962
|
};
|
|
15316
16963
|
if (state.energy !== undefined)
|
|
15317
|
-
info.energy =
|
|
16964
|
+
info.energy = UInt32.from(state.energy);
|
|
15318
16965
|
if (kind === 'container') {
|
|
15319
16966
|
info.modules = [];
|
|
15320
16967
|
if (state.hullmass !== undefined)
|
|
@@ -15374,6 +17021,12 @@ function makeEntity(packedItemId, state) {
|
|
|
15374
17021
|
drain: l.drain,
|
|
15375
17022
|
output_pct: l.outputPct,
|
|
15376
17023
|
}));
|
|
17024
|
+
info.builder_lanes = (caps.builderLanes ?? []).map((l) => Types.builder_lane.from({
|
|
17025
|
+
slot_index: l.slotIndex,
|
|
17026
|
+
speed: l.speed,
|
|
17027
|
+
drain: l.drain,
|
|
17028
|
+
output_pct: l.outputPct,
|
|
17029
|
+
}));
|
|
15377
17030
|
info.loader_lanes = (caps.loaderLanes ?? []).map((l) => Types.loader_lane.from({
|
|
15378
17031
|
slot_index: l.slotIndex,
|
|
15379
17032
|
mass: l.mass,
|
|
@@ -15385,6 +17038,8 @@ function makeEntity(packedItemId, state) {
|
|
|
15385
17038
|
info.gatherer_lanes = [];
|
|
15386
17039
|
if (!info.crafter_lanes)
|
|
15387
17040
|
info.crafter_lanes = [];
|
|
17041
|
+
if (!info.builder_lanes)
|
|
17042
|
+
info.builder_lanes = [];
|
|
15388
17043
|
if (!info.loader_lanes)
|
|
15389
17044
|
info.loader_lanes = [];
|
|
15390
17045
|
const entityInfo = Types.entity_info.from(info);
|
|
@@ -15400,7 +17055,13 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
15400
17055
|
}
|
|
15401
17056
|
function calc_craft_energy(drain, totalInputMass) {
|
|
15402
17057
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
15403
|
-
return UInt32.from(Math.min(Math.max(raw + 1,
|
|
17058
|
+
return UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295));
|
|
17059
|
+
}
|
|
17060
|
+
function calc_build_duration(speed, totalInputMass) {
|
|
17061
|
+
return calc_craft_duration(speed, totalInputMass);
|
|
17062
|
+
}
|
|
17063
|
+
function calc_build_energy(drain, totalInputMass) {
|
|
17064
|
+
return calc_craft_energy(drain, totalInputMass);
|
|
15404
17065
|
}
|
|
15405
17066
|
|
|
15406
17067
|
class PlotManager extends BaseManager {
|
|
@@ -15463,7 +17124,7 @@ class PlotManager extends BaseManager {
|
|
|
15463
17124
|
recipe,
|
|
15464
17125
|
progress,
|
|
15465
17126
|
finalizeAction: Name.from('buildplot'),
|
|
15466
|
-
finalizerCapability: '
|
|
17127
|
+
finalizerCapability: 'builder',
|
|
15467
17128
|
activeTask,
|
|
15468
17129
|
scheduledBuild,
|
|
15469
17130
|
};
|
|
@@ -15511,16 +17172,16 @@ class ConstructionManager extends BaseManager {
|
|
|
15511
17172
|
continue;
|
|
15512
17173
|
if (!coordsEqual(entity.coordinates, target.coordinates))
|
|
15513
17174
|
continue;
|
|
15514
|
-
const
|
|
15515
|
-
if (
|
|
17175
|
+
const builderLanes = entity.builder_lanes ?? [];
|
|
17176
|
+
if (builderLanes.length === 0)
|
|
15516
17177
|
continue;
|
|
15517
|
-
const speed =
|
|
17178
|
+
const speed = builderLanes.reduce((s, l) => s + Number(l.speed), 0);
|
|
15518
17179
|
out.push({
|
|
15519
17180
|
entityId: entity.id,
|
|
15520
17181
|
entityType: entity.type,
|
|
15521
17182
|
name: entity.entity_name,
|
|
15522
|
-
capability: '
|
|
15523
|
-
|
|
17183
|
+
capability: 'builder',
|
|
17184
|
+
builderSpeed: speed,
|
|
15524
17185
|
estimatedDuration: this.estimateFinalizeDuration(target, speed),
|
|
15525
17186
|
});
|
|
15526
17187
|
}
|
|
@@ -15542,12 +17203,12 @@ class ConstructionManager extends BaseManager {
|
|
|
15542
17203
|
cumulativeSec += task.duration.toNumber();
|
|
15543
17204
|
if (!isPushTask(task))
|
|
15544
17205
|
continue;
|
|
15545
|
-
if (
|
|
17206
|
+
if (task.couplings.length === 0)
|
|
15546
17207
|
continue;
|
|
15547
17208
|
const projectedEndMs = startedMs + cumulativeSec * 1000;
|
|
15548
17209
|
if (projectedEndMs < nowMs)
|
|
15549
17210
|
continue;
|
|
15550
|
-
const targetIdStr = task.
|
|
17211
|
+
const targetIdStr = task.couplings[0].counterpart.entity_id.toString();
|
|
15551
17212
|
const etaSeconds = Math.max(0, Math.round((projectedEndMs - nowMs) / 1000));
|
|
15552
17213
|
let perTarget = buckets.get(targetIdStr);
|
|
15553
17214
|
if (!perTarget) {
|
|
@@ -15672,8 +17333,8 @@ class ConstructionManager extends BaseManager {
|
|
|
15672
17333
|
return [];
|
|
15673
17334
|
return reservationsOf(source);
|
|
15674
17335
|
}
|
|
15675
|
-
estimateFinalizeDuration(target,
|
|
15676
|
-
return
|
|
17336
|
+
estimateFinalizeDuration(target, builderSpeed) {
|
|
17337
|
+
return calc_build_duration(builderSpeed, target.progress.massRequired);
|
|
15677
17338
|
}
|
|
15678
17339
|
static isConstructionKind(kind) {
|
|
15679
17340
|
return CONSTRUCTION_KINDS.has(kind);
|
|
@@ -15766,18 +17427,18 @@ function isPushTask(task) {
|
|
|
15766
17427
|
}
|
|
15767
17428
|
function isBuildOfPlot(task, plotId) {
|
|
15768
17429
|
return (task.type.toNumber() === TaskType.BUILDPLOT &&
|
|
15769
|
-
task.
|
|
15770
|
-
task.
|
|
17430
|
+
task.couplings.length > 0 &&
|
|
17431
|
+
task.couplings[0].counterpart.entity_id.equals(plotId));
|
|
15771
17432
|
}
|
|
15772
17433
|
function reservationsOf(source) {
|
|
15773
17434
|
const out = new Map();
|
|
15774
17435
|
for (const task of getTasks(source)) {
|
|
15775
17436
|
if (!isPushTask(task))
|
|
15776
17437
|
continue;
|
|
15777
|
-
if (
|
|
17438
|
+
if (task.couplings.length === 0)
|
|
15778
17439
|
continue;
|
|
15779
|
-
const targetType = task.
|
|
15780
|
-
const targetId = task.
|
|
17440
|
+
const targetType = task.couplings[0].counterpart.entity_type;
|
|
17441
|
+
const targetId = task.couplings[0].counterpart.entity_id;
|
|
15781
17442
|
for (const c of task.cargo) {
|
|
15782
17443
|
const itemId = c.item_id.toNumber();
|
|
15783
17444
|
const quantity = c.quantity.toNumber();
|
|
@@ -15866,11 +17527,23 @@ function planRoute(params) {
|
|
|
15866
17527
|
return { ok: false, reason: 'empty-destination' };
|
|
15867
17528
|
}
|
|
15868
17529
|
const straightLine = dist(origin, dest);
|
|
15869
|
-
|
|
17530
|
+
if (straightLine <= perLegReach) {
|
|
17531
|
+
const directCost = params.legCost?.({
|
|
17532
|
+
from: origin,
|
|
17533
|
+
to: dest,
|
|
17534
|
+
distance: straightLine,
|
|
17535
|
+
isDestination: true,
|
|
17536
|
+
});
|
|
17537
|
+
if (directCost !== null) {
|
|
17538
|
+
return { ok: true, waypoints: [dest], legs: 1, totalDistance: straightLine };
|
|
17539
|
+
}
|
|
17540
|
+
}
|
|
17541
|
+
const heuristic = (c) => params.heuristicCost?.(c, dest) ??
|
|
17542
|
+
(params.legCost ? 0 : Math.ceil(dist(c, dest) / perLegReach));
|
|
15870
17543
|
const gScore = new Map([[key(origin), 0]]);
|
|
15871
17544
|
const cameFrom = new Map();
|
|
15872
17545
|
const frontier = [
|
|
15873
|
-
{ coord: origin,
|
|
17546
|
+
{ coord: origin, legs: 0, cost: 0, f: heuristic(origin), remaining: straightLine },
|
|
15874
17547
|
];
|
|
15875
17548
|
let furthest = origin;
|
|
15876
17549
|
let furthestRemaining = dist(origin, dest);
|
|
@@ -15886,6 +17559,8 @@ function planRoute(params) {
|
|
|
15886
17559
|
}
|
|
15887
17560
|
}
|
|
15888
17561
|
const current = frontier.splice(bestIdx, 1)[0];
|
|
17562
|
+
if (current.cost !== gScore.get(key(current.coord)))
|
|
17563
|
+
continue;
|
|
15889
17564
|
if (sameCoord(current.coord, dest)) {
|
|
15890
17565
|
return reconstruct(cameFrom, origin, dest);
|
|
15891
17566
|
}
|
|
@@ -15899,20 +17574,33 @@ function planRoute(params) {
|
|
|
15899
17574
|
const inCorridor = dist(origin, n.coord) + dist(n.coord, dest) <= straightLine + corridorSlack;
|
|
15900
17575
|
if (!inCorridor)
|
|
15901
17576
|
continue;
|
|
15902
|
-
const
|
|
15903
|
-
if (
|
|
17577
|
+
const tentativeLegs = current.legs + 1;
|
|
17578
|
+
if (tentativeLegs > maxLegs) {
|
|
15904
17579
|
cappedByMaxLegs = true;
|
|
15905
17580
|
continue;
|
|
15906
17581
|
}
|
|
17582
|
+
const evaluatedCost = params.legCost?.({
|
|
17583
|
+
from: current.coord,
|
|
17584
|
+
to: n.coord,
|
|
17585
|
+
distance: n.dist,
|
|
17586
|
+
isDestination: sameCoord(n.coord, dest),
|
|
17587
|
+
});
|
|
17588
|
+
if (evaluatedCost === null)
|
|
17589
|
+
continue;
|
|
17590
|
+
const legCost = evaluatedCost ?? 1;
|
|
17591
|
+
if (!(legCost >= 0) || !Number.isFinite(legCost))
|
|
17592
|
+
continue;
|
|
15907
17593
|
const nk = key(n.coord);
|
|
15908
|
-
|
|
15909
|
-
|
|
17594
|
+
const nextCost = current.cost + legCost;
|
|
17595
|
+
if (nextCost < (gScore.get(nk) ?? Infinity)) {
|
|
17596
|
+
gScore.set(nk, nextCost);
|
|
15910
17597
|
cameFrom.set(nk, current.coord);
|
|
15911
17598
|
const remaining = dist(n.coord, dest);
|
|
15912
17599
|
frontier.push({
|
|
15913
17600
|
coord: n.coord,
|
|
15914
|
-
|
|
15915
|
-
|
|
17601
|
+
legs: tentativeLegs,
|
|
17602
|
+
cost: nextCost,
|
|
17603
|
+
f: nextCost + heuristic(n.coord),
|
|
15916
17604
|
remaining,
|
|
15917
17605
|
});
|
|
15918
17606
|
}
|
|
@@ -15962,47 +17650,22 @@ function reconstruct(cameFrom, origin, dest) {
|
|
|
15962
17650
|
const waypoints = path.slice(1);
|
|
15963
17651
|
return { ok: true, waypoints, legs: waypoints.length, totalDistance };
|
|
15964
17652
|
}
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
function setScanProvider(provider) {
|
|
15968
|
-
scanProvider = provider;
|
|
15969
|
-
graphCache.clear();
|
|
15970
|
-
}
|
|
15971
|
-
function sdkSystemGraph(seed) {
|
|
17653
|
+
const graphCache = new WeakMap();
|
|
17654
|
+
function sdkSystemGraph(seed, scan) {
|
|
15972
17655
|
const s = Checksum256.from(seed);
|
|
15973
17656
|
const seedHex = s.toString();
|
|
15974
|
-
|
|
17657
|
+
let bySeed = graphCache.get(scan);
|
|
17658
|
+
if (!bySeed) {
|
|
17659
|
+
bySeed = new Map();
|
|
17660
|
+
graphCache.set(scan, bySeed);
|
|
17661
|
+
}
|
|
17662
|
+
const cached = bySeed.get(seedHex);
|
|
15975
17663
|
if (cached)
|
|
15976
17664
|
return cached;
|
|
15977
|
-
const graph =
|
|
15978
|
-
|
|
17665
|
+
const graph = wasmSystemGraph(s, seedHex, scan);
|
|
17666
|
+
bySeed.set(seedHex, graph);
|
|
15979
17667
|
return graph;
|
|
15980
17668
|
}
|
|
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
17669
|
const SCAN_BUCKET = 48;
|
|
16007
17670
|
function wasmSystemGraph(s, seedHex, scan) {
|
|
16008
17671
|
const bucketCache = new Map();
|
|
@@ -16055,21 +17718,20 @@ function wasmSystemGraph(s, seedHex, scan) {
|
|
|
16055
17718
|
};
|
|
16056
17719
|
}
|
|
16057
17720
|
|
|
16058
|
-
function computePerLegReach(s
|
|
17721
|
+
function computePerLegReach(s) {
|
|
16059
17722
|
const capacity = s.generator?.capacity;
|
|
16060
17723
|
const drain = s.engines?.drain;
|
|
16061
17724
|
if (capacity === undefined || drain === undefined || drain === 0n) {
|
|
16062
17725
|
throw new Error('entity has no usable engine/generator (cannot compute per-leg reach)');
|
|
16063
17726
|
}
|
|
16064
|
-
|
|
16065
|
-
return Number(capacity) / Number(drain + haulDrain);
|
|
17727
|
+
return Number(capacity) / Number(drain);
|
|
16066
17728
|
}
|
|
16067
|
-
function computeGroupPerLegReach(participants
|
|
17729
|
+
function computeGroupPerLegReach(participants) {
|
|
16068
17730
|
const movers = participants.filter((p) => p.engines !== undefined && p.engines.drain !== 0n);
|
|
16069
17731
|
if (movers.length === 0) {
|
|
16070
17732
|
throw new Error('group has no moving entity (cannot compute per-leg reach)');
|
|
16071
17733
|
}
|
|
16072
|
-
return Math.min(...movers.map(
|
|
17734
|
+
return Math.min(...movers.map(computePerLegReach));
|
|
16073
17735
|
}
|
|
16074
17736
|
|
|
16075
17737
|
function simulateRoute(movers, waypoints, origin, recharge) {
|
|
@@ -16098,17 +17760,13 @@ function simulateRoute(movers, waypoints, origin, recharge) {
|
|
|
16098
17760
|
for (const to of waypoints) {
|
|
16099
17761
|
const distance = distanceBetweenPoints(from.x, from.y, to.x, to.y);
|
|
16100
17762
|
const distanceNum = Number(distance);
|
|
16101
|
-
const distanceCells =
|
|
17763
|
+
const distanceCells = distanceNum / PRECISION;
|
|
16102
17764
|
const energyCostByMover = {};
|
|
16103
17765
|
for (const m of movers) {
|
|
16104
17766
|
if (!m.hasMovement || !m.engines)
|
|
16105
17767
|
continue;
|
|
16106
17768
|
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;
|
|
17769
|
+
energyCostByMover[key] = Number(calc_energyusage(distance, m.engines.drain));
|
|
16112
17770
|
}
|
|
16113
17771
|
let rechargeBefore = false;
|
|
16114
17772
|
let rechargeSeconds = 0;
|
|
@@ -16229,6 +17887,23 @@ function resolveLaneCrafter(modules, entityItemId, laneKey) {
|
|
|
16229
17887
|
const drain = computeCrafterDrain(fin);
|
|
16230
17888
|
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
16231
17889
|
}
|
|
17890
|
+
function resolveLaneBuilder(modules, entityItemId, laneKey) {
|
|
17891
|
+
const idx = laneKey - 1;
|
|
17892
|
+
const installed = idx >= 0 && idx < modules.length ? modules[idx].installed : undefined;
|
|
17893
|
+
if (!installed)
|
|
17894
|
+
throw new Error('builder lane has no module');
|
|
17895
|
+
const item = getItem(Number(installed.item_id.value ?? installed.item_id));
|
|
17896
|
+
if (item.moduleType !== 'builder')
|
|
17897
|
+
throw new Error('lane module is not a builder');
|
|
17898
|
+
const stats = BigInt(installed.stats.toString());
|
|
17899
|
+
const coh = decodeStat(stats, 0);
|
|
17900
|
+
const tol = decodeStat(stats, 1);
|
|
17901
|
+
const layout = getEntityLayout(entityItemId)?.slots ?? [];
|
|
17902
|
+
const amp = getSlotAmp(layout, idx);
|
|
17903
|
+
const speed = applySlotMultiplier(computeBuilderSpeed(coh), amp);
|
|
17904
|
+
const drain = computeBuilderDrain(tol);
|
|
17905
|
+
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
17906
|
+
}
|
|
16232
17907
|
function resolveLaneLoader(modules, entityItemId, laneKey) {
|
|
16233
17908
|
if (laneKey === LANE_MOBILITY) {
|
|
16234
17909
|
return { slotIndex: -1, thrust: 0, mass: 0, outputPct: 0, valid: false };
|
|
@@ -16536,6 +18211,10 @@ function recomputeCaps(entity) {
|
|
|
16536
18211
|
hullStats.strength = decodeStat(entity.stats, 0);
|
|
16537
18212
|
if (hullStats.hardness === undefined)
|
|
16538
18213
|
hullStats.hardness = decodeStat(entity.stats, 2);
|
|
18214
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
18215
|
+
hullStats.__legacyShipChannel3 = decodeStat(entity.stats, 3);
|
|
18216
|
+
hullStats.__legacyShipChannel4 = decodeStat(entity.stats, 4);
|
|
18217
|
+
}
|
|
16539
18218
|
const layout = getEntityLayout(itemId)?.slots ?? [];
|
|
16540
18219
|
const installed = toInstalledModules(entity.modules);
|
|
16541
18220
|
const caps = computeEntityCapabilities(hullStats, itemId, installed, layout);
|
|
@@ -16558,6 +18237,12 @@ function recomputeCaps(entity) {
|
|
|
16558
18237
|
drain: l.drain,
|
|
16559
18238
|
output_pct: l.outputPct,
|
|
16560
18239
|
});
|
|
18240
|
+
const toBuilderLane = (l) => Types.builder_lane.from({
|
|
18241
|
+
slot_index: l.slotIndex,
|
|
18242
|
+
speed: l.speed,
|
|
18243
|
+
drain: l.drain,
|
|
18244
|
+
output_pct: l.outputPct,
|
|
18245
|
+
});
|
|
16561
18246
|
return {
|
|
16562
18247
|
hullmass: UInt32.from(caps.hullmass),
|
|
16563
18248
|
capacity: UInt32.from(caps.capacity),
|
|
@@ -16568,6 +18253,7 @@ function recomputeCaps(entity) {
|
|
|
16568
18253
|
loaderLanes: (caps.loaderLanes ?? []).map(toLoaderLane),
|
|
16569
18254
|
gathererLanes: (caps.gathererLanes ?? []).map(toGathererLane),
|
|
16570
18255
|
crafterLanes: (caps.crafterLanes ?? []).map(toCrafterLane),
|
|
18256
|
+
builderLanes: (caps.builderLanes ?? []).map(toBuilderLane),
|
|
16571
18257
|
hauler: caps.hauler
|
|
16572
18258
|
? Types.hauler_stats.from({
|
|
16573
18259
|
capacity: caps.hauler.capacity,
|
|
@@ -16604,6 +18290,7 @@ function createProjectedEntity(entity) {
|
|
|
16604
18290
|
const loaderLanes = entity.loader_lanes ?? caps?.loaderLanes ?? [];
|
|
16605
18291
|
const gathererLanes = entity.gatherer_lanes ?? caps?.gathererLanes ?? [];
|
|
16606
18292
|
const crafterLanes = entity.crafter_lanes ?? caps?.crafterLanes ?? [];
|
|
18293
|
+
const builderLanes = entity.builder_lanes ?? caps?.builderLanes ?? [];
|
|
16607
18294
|
const engines = entity.engines ?? caps?.engines;
|
|
16608
18295
|
const generator = entity.generator ?? caps?.generator;
|
|
16609
18296
|
const hauler = entity.hauler ?? caps?.hauler;
|
|
@@ -16612,7 +18299,7 @@ function createProjectedEntity(entity) {
|
|
|
16612
18299
|
const cargo = entity.cargo.map(cargoItemToStack);
|
|
16613
18300
|
const projected = {
|
|
16614
18301
|
location: Coordinates.from(entity.coordinates),
|
|
16615
|
-
energy:
|
|
18302
|
+
energy: UInt32.from(entity.energy ?? 0),
|
|
16616
18303
|
cargo,
|
|
16617
18304
|
shipMass,
|
|
16618
18305
|
capacity: capacity ? UInt64.from(capacity) : undefined,
|
|
@@ -16623,6 +18310,7 @@ function createProjectedEntity(entity) {
|
|
|
16623
18310
|
loaderLanes,
|
|
16624
18311
|
gathererLanes,
|
|
16625
18312
|
crafterLanes,
|
|
18313
|
+
builderLanes,
|
|
16626
18314
|
get cargoMass() {
|
|
16627
18315
|
return calcStacksMass(this.cargo);
|
|
16628
18316
|
},
|
|
@@ -16668,13 +18356,13 @@ function applyRechargeTask(projected, _task, options) {
|
|
|
16668
18356
|
if (!projected.generator)
|
|
16669
18357
|
return;
|
|
16670
18358
|
if (options.complete) {
|
|
16671
|
-
projected.energy =
|
|
18359
|
+
projected.energy = UInt32.from(projected.generator.capacity);
|
|
16672
18360
|
}
|
|
16673
18361
|
else if (options.progress !== undefined) {
|
|
16674
18362
|
const capacity = Number(projected.generator.capacity);
|
|
16675
18363
|
const currentEnergy = Number(projected.energy);
|
|
16676
18364
|
const rechargeAmount = (capacity - currentEnergy) * options.progress;
|
|
16677
|
-
projected.energy =
|
|
18365
|
+
projected.energy = UInt32.from(Math.min(capacity, currentEnergy + rechargeAmount));
|
|
16678
18366
|
}
|
|
16679
18367
|
}
|
|
16680
18368
|
function applyFlightTask(projected, task, options) {
|
|
@@ -16693,8 +18381,8 @@ function applyFlightTask(projected, task, options) {
|
|
|
16693
18381
|
});
|
|
16694
18382
|
const partialEnergy = UInt64.from(Math.floor(Number(task.energy_cost ?? 0) * options.progress));
|
|
16695
18383
|
projected.energy = projected.energy.gt(partialEnergy)
|
|
16696
|
-
?
|
|
16697
|
-
:
|
|
18384
|
+
? UInt32.from(projected.energy.subtracting(partialEnergy))
|
|
18385
|
+
: UInt32.from(0);
|
|
16698
18386
|
}
|
|
16699
18387
|
}
|
|
16700
18388
|
function addCargoItem(projected, item) {
|
|
@@ -16716,16 +18404,16 @@ function applyRemoveCargoTask(projected, task) {
|
|
|
16716
18404
|
function applyEnergyCost(projected, task) {
|
|
16717
18405
|
if (!task.energy_cost)
|
|
16718
18406
|
return;
|
|
16719
|
-
const energyCost =
|
|
18407
|
+
const energyCost = UInt32.from(task.energy_cost);
|
|
16720
18408
|
projected.energy = projected.energy.gt(energyCost)
|
|
16721
|
-
?
|
|
16722
|
-
:
|
|
18409
|
+
? UInt32.from(projected.energy.subtracting(energyCost))
|
|
18410
|
+
: UInt32.from(0);
|
|
16723
18411
|
}
|
|
16724
18412
|
function applyGatherTask(projected, task, options) {
|
|
16725
18413
|
if (!options.complete)
|
|
16726
18414
|
return;
|
|
16727
18415
|
applyEnergyCost(projected, task);
|
|
16728
|
-
if (
|
|
18416
|
+
if (task.couplings.length === 0) {
|
|
16729
18417
|
applyAddCargoTask(projected, task);
|
|
16730
18418
|
}
|
|
16731
18419
|
}
|
|
@@ -16736,12 +18424,8 @@ function applyCraftTask(projected, task) {
|
|
|
16736
18424
|
for (let i = 0; i < task.cargo.length - 1; i++) {
|
|
16737
18425
|
removeCargoItem(projected, task.cargo[i]);
|
|
16738
18426
|
}
|
|
16739
|
-
|
|
16740
|
-
|
|
16741
|
-
function applyDeployTask(projected, task) {
|
|
16742
|
-
applyEnergyCost(projected, task);
|
|
16743
|
-
if (task.cargo.length > 0) {
|
|
16744
|
-
removeCargoItem(projected, task.cargo[0]);
|
|
18427
|
+
if (task.couplings.length === 0) {
|
|
18428
|
+
addCargoItem(projected, task.cargo[task.cargo.length - 1]);
|
|
16745
18429
|
}
|
|
16746
18430
|
}
|
|
16747
18431
|
function applyTask(projected, task) {
|
|
@@ -16767,9 +18451,6 @@ function applyTask(projected, task) {
|
|
|
16767
18451
|
case TaskType.CRAFT:
|
|
16768
18452
|
applyCraftTask(projected, task);
|
|
16769
18453
|
break;
|
|
16770
|
-
case TaskType.DEPLOY:
|
|
16771
|
-
applyDeployTask(projected, task);
|
|
16772
|
-
break;
|
|
16773
18454
|
case TaskType.UNDEPLOY:
|
|
16774
18455
|
case TaskType.DEMOLISH:
|
|
16775
18456
|
break;
|
|
@@ -16907,10 +18588,6 @@ function projectEntityAt(entity, now) {
|
|
|
16907
18588
|
if (taskComplete)
|
|
16908
18589
|
applyCraftTask(projected, task);
|
|
16909
18590
|
break;
|
|
16910
|
-
case TaskType.DEPLOY:
|
|
16911
|
-
if (taskComplete)
|
|
16912
|
-
applyDeployTask(projected, task);
|
|
16913
|
-
break;
|
|
16914
18591
|
case TaskType.UNDEPLOY:
|
|
16915
18592
|
case TaskType.DEMOLISH:
|
|
16916
18593
|
break;
|
|
@@ -16937,7 +18614,7 @@ function taskCargoChanges(task) {
|
|
|
16937
18614
|
case TaskType.UNWRAP:
|
|
16938
18615
|
return items.map((i) => toChange(i, 'in'));
|
|
16939
18616
|
case TaskType.GATHER:
|
|
16940
|
-
return task.
|
|
18617
|
+
return task.couplings.length > 0 ? [] : items.map((i) => toChange(i, 'in'));
|
|
16941
18618
|
case TaskType.UNLOAD:
|
|
16942
18619
|
return items.map((i) => toChange(i, 'out'));
|
|
16943
18620
|
case TaskType.CRAFT:
|
|
@@ -16950,6 +18627,49 @@ function taskCargoChanges(task) {
|
|
|
16950
18627
|
}
|
|
16951
18628
|
}
|
|
16952
18629
|
|
|
18630
|
+
const JOB_QUEUE_CAP = 25;
|
|
18631
|
+
function activeOn(jobs, socket, now) {
|
|
18632
|
+
return jobs
|
|
18633
|
+
.filter((j) => j.socket === socket && j.completesAt > now)
|
|
18634
|
+
.sort((a, b) => a.startsAt.getTime() - b.startsAt.getTime());
|
|
18635
|
+
}
|
|
18636
|
+
function jobsToLanes(jobs, socketCount, now) {
|
|
18637
|
+
const lanes = [];
|
|
18638
|
+
for (let socket = 0; socket < socketCount; socket++) {
|
|
18639
|
+
const entries = [];
|
|
18640
|
+
let cursor = null;
|
|
18641
|
+
for (const j of activeOn(jobs, socket, now)) {
|
|
18642
|
+
if (cursor && j.startsAt > cursor) {
|
|
18643
|
+
entries.push({ kind: 'idle', startsAt: cursor, completesAt: j.startsAt });
|
|
18644
|
+
}
|
|
18645
|
+
entries.push({ kind: 'job', startsAt: j.startsAt, completesAt: j.completesAt, job: j });
|
|
18646
|
+
cursor = j.completesAt;
|
|
18647
|
+
}
|
|
18648
|
+
lanes.push({ socket, entries });
|
|
18649
|
+
}
|
|
18650
|
+
return lanes;
|
|
18651
|
+
}
|
|
18652
|
+
function socketTail(jobs, socket, now) {
|
|
18653
|
+
const active = activeOn(jobs, socket, now);
|
|
18654
|
+
const last = active[active.length - 1];
|
|
18655
|
+
return last && last.completesAt > now ? last.completesAt : now;
|
|
18656
|
+
}
|
|
18657
|
+
function pickFabricator(jobs, sockets, durationBySocketMinutes, now) {
|
|
18658
|
+
let best = null;
|
|
18659
|
+
for (let slot = 0; slot < sockets.length; slot++) {
|
|
18660
|
+
if (!sockets[slot].open)
|
|
18661
|
+
continue;
|
|
18662
|
+
if (activeOn(jobs, slot, now).length >= JOB_QUEUE_CAP)
|
|
18663
|
+
continue;
|
|
18664
|
+
const startsAt = socketTail(jobs, slot, now);
|
|
18665
|
+
const completesAt = new Date(startsAt.getTime() + durationBySocketMinutes[slot] * 60000);
|
|
18666
|
+
if (!best || completesAt < best.completesAt) {
|
|
18667
|
+
best = { slot, startsAt, completesAt };
|
|
18668
|
+
}
|
|
18669
|
+
}
|
|
18670
|
+
return best;
|
|
18671
|
+
}
|
|
18672
|
+
|
|
16953
18673
|
function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
16954
18674
|
const ids = [];
|
|
16955
18675
|
const seen = new Set();
|
|
@@ -16984,15 +18704,16 @@ function taskCargoEffect(task) {
|
|
|
16984
18704
|
case TaskType.UNLOAD:
|
|
16985
18705
|
return { added: [], removed: task.cargo };
|
|
16986
18706
|
case TaskType.GATHER:
|
|
16987
|
-
return task.
|
|
18707
|
+
return task.couplings.length > 0
|
|
18708
|
+
? { added: [], removed: [] }
|
|
18709
|
+
: { added: task.cargo, removed: [] };
|
|
16988
18710
|
case TaskType.CRAFT:
|
|
16989
18711
|
if (task.cargo.length === 0)
|
|
16990
18712
|
return { added: [], removed: [] };
|
|
16991
|
-
return {
|
|
16992
|
-
|
|
16993
|
-
|
|
16994
|
-
|
|
16995
|
-
: { added: [], removed: [] };
|
|
18713
|
+
return {
|
|
18714
|
+
added: task.couplings.length === 0 ? [task.cargo[task.cargo.length - 1]] : [],
|
|
18715
|
+
removed: task.cargo.slice(0, -1),
|
|
18716
|
+
};
|
|
16996
18717
|
default:
|
|
16997
18718
|
return { added: [], removed: [] };
|
|
16998
18719
|
}
|
|
@@ -17170,31 +18891,24 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
17170
18891
|
effects.abandonsRunning = true;
|
|
17171
18892
|
if (t.energy_cost)
|
|
17172
18893
|
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
|
-
}
|
|
18894
|
+
if (t.type.equals(TaskType.BUILDPLOT) && t.couplings.length > 0)
|
|
18895
|
+
effects.keepsPlotDeposits = { plot: t.couplings[0].counterpart };
|
|
18896
|
+
for (const c of t.couplings) {
|
|
18897
|
+
const kind = c.kind.toNumber();
|
|
18898
|
+
effects.releasedHolds.push({ counterpart: c.counterpart, kind });
|
|
18899
|
+
if (kind === HoldKind.PULL) {
|
|
18900
|
+
effects.refunds.push({ giver: c.counterpart, cargo: t.cargo });
|
|
18901
|
+
const giver = input.counterparts?.get(c.counterpart.entity_id.toString());
|
|
18902
|
+
if (giver) {
|
|
18903
|
+
const returned = t.cargo.reduce((s, c) => s + calcCargoItemMass(c).toNumber(), 0);
|
|
18904
|
+
const cap = giver.capacity ? giver.capacity.toNumber() : Number.MAX_SAFE_INTEGER;
|
|
18905
|
+
if (giver.cargomass.toNumber() + returned > cap) {
|
|
18906
|
+
return {
|
|
18907
|
+
ok: false,
|
|
18908
|
+
blockedReason: CancelBlockReason.WOULD_OVERFILL,
|
|
18909
|
+
range,
|
|
18910
|
+
effects: { ...EMPTY_EFFECTS },
|
|
18911
|
+
};
|
|
17198
18912
|
}
|
|
17199
18913
|
}
|
|
17200
18914
|
}
|
|
@@ -17227,7 +18941,7 @@ function derivedLoaders(lanes) {
|
|
|
17227
18941
|
function acceleration(thrust, mass) {
|
|
17228
18942
|
if (mass <= 0)
|
|
17229
18943
|
return 0;
|
|
17230
|
-
return (thrust / mass) * PRECISION
|
|
18944
|
+
return (thrust / mass) * PRECISION;
|
|
17231
18945
|
}
|
|
17232
18946
|
function flightTime(distance, accel) {
|
|
17233
18947
|
if (accel <= 0 || distance <= 0)
|
|
@@ -17237,7 +18951,7 @@ function flightTime(distance, accel) {
|
|
|
17237
18951
|
function distance2d(ax, ay, bx, by) {
|
|
17238
18952
|
const dx = ax - bx;
|
|
17239
18953
|
const dy = ay - by;
|
|
17240
|
-
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
18954
|
+
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION);
|
|
17241
18955
|
}
|
|
17242
18956
|
function unwrapTransitDuration(itemMass, origin, dest) {
|
|
17243
18957
|
if (itemMass <= 0)
|
|
@@ -17402,10 +19116,10 @@ function hasGatherer(e) {
|
|
|
17402
19116
|
function maxTravelDistance(entity) {
|
|
17403
19117
|
return UInt32.from(entity.generator.capacity)
|
|
17404
19118
|
.dividing(entity.engines.drain)
|
|
17405
|
-
.multiplying(PRECISION
|
|
19119
|
+
.multiplying(PRECISION);
|
|
17406
19120
|
}
|
|
17407
19121
|
function calcEnergyUsage(entity, distance) {
|
|
17408
|
-
return distance.
|
|
19122
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION);
|
|
17409
19123
|
}
|
|
17410
19124
|
function energyPercent(entity) {
|
|
17411
19125
|
return (Number(entity.energy) / Number(entity.generator.capacity)) * 100;
|
|
@@ -17440,13 +19154,12 @@ function calc_gather_rate(gatherer, itemMass, stratum, richness) {
|
|
|
17440
19154
|
function calc_gather_energy(gatherer, duration) {
|
|
17441
19155
|
if (duration <= 0)
|
|
17442
19156
|
return UInt32.from(0);
|
|
17443
|
-
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION
|
|
17444
|
-
return UInt32.from(Math.min(Math.max(raw,
|
|
19157
|
+
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION);
|
|
19158
|
+
return UInt32.from(Math.min(Math.max(raw, 1000), 4294967295));
|
|
17445
19159
|
}
|
|
17446
19160
|
|
|
17447
19161
|
const BASE_HAUL_PENALTY_MILLI = 300;
|
|
17448
19162
|
const HAULER_EFFICIENCY_DENOM = 10000;
|
|
17449
|
-
const PRECISION = 10000;
|
|
17450
19163
|
function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
17451
19164
|
if (haulCount === 0)
|
|
17452
19165
|
return totalThrust;
|
|
@@ -17455,9 +19168,6 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
17455
19168
|
HAULER_EFFICIENCY_DENOM);
|
|
17456
19169
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
17457
19170
|
}
|
|
17458
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
17459
|
-
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
17460
|
-
}
|
|
17461
19171
|
|
|
17462
19172
|
const categoryColors = {
|
|
17463
19173
|
ore: '#C26D3F',
|
|
@@ -17614,8 +19324,17 @@ const capabilityAttributes = [
|
|
|
17614
19324
|
attribute: 'capacity',
|
|
17615
19325
|
description: 'Cargo capacity added by hulls and installed Cargo Hold modules',
|
|
17616
19326
|
},
|
|
19327
|
+
{
|
|
19328
|
+
capability: 'Storage',
|
|
19329
|
+
attribute: 'drain',
|
|
19330
|
+
description: 'Fixed normal-travel drain contributed by an installed Cargo Hold',
|
|
19331
|
+
},
|
|
17617
19332
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
17618
|
-
{
|
|
19333
|
+
{
|
|
19334
|
+
capability: 'Movement',
|
|
19335
|
+
attribute: 'drain',
|
|
19336
|
+
description: 'Total installed energy consumed per tile of normal travel',
|
|
19337
|
+
},
|
|
17619
19338
|
{
|
|
17620
19339
|
capability: 'Energy',
|
|
17621
19340
|
attribute: 'capacity',
|
|
@@ -17656,7 +19375,7 @@ const capabilityAttributes = [
|
|
|
17656
19375
|
{
|
|
17657
19376
|
capability: 'Hauling',
|
|
17658
19377
|
attribute: 'drain',
|
|
17659
|
-
description: '
|
|
19378
|
+
description: 'Fixed normal-travel drain contributed by an installed Tractor Beam',
|
|
17660
19379
|
},
|
|
17661
19380
|
];
|
|
17662
19381
|
const invertedAttributes = new Set(['drain', 'mass']);
|
|
@@ -18022,6 +19741,20 @@ function rollupCrafter(lanes) {
|
|
|
18022
19741
|
drain: UInt32.from(totalDrain),
|
|
18023
19742
|
};
|
|
18024
19743
|
}
|
|
19744
|
+
function rollupBuilder(lanes) {
|
|
19745
|
+
if (lanes.length === 0)
|
|
19746
|
+
return undefined;
|
|
19747
|
+
let totalSpeed = 0;
|
|
19748
|
+
let totalDrain = 0;
|
|
19749
|
+
for (const l of lanes) {
|
|
19750
|
+
totalSpeed += Number(l.speed);
|
|
19751
|
+
totalDrain += Number(l.drain);
|
|
19752
|
+
}
|
|
19753
|
+
return {
|
|
19754
|
+
speed: UInt16.from(Math.min(totalSpeed, 65535)),
|
|
19755
|
+
drain: UInt32.from(totalDrain),
|
|
19756
|
+
};
|
|
19757
|
+
}
|
|
18025
19758
|
function rollupLoaders(lanes) {
|
|
18026
19759
|
if (lanes.length === 0)
|
|
18027
19760
|
return undefined;
|
|
@@ -18125,8 +19858,8 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18125
19858
|
return {
|
|
18126
19859
|
capability: 'Generator',
|
|
18127
19860
|
attributes: [
|
|
18128
|
-
{ label: 'Capacity', value: caps.capacity },
|
|
18129
|
-
{ label: 'Recharge', value: caps.recharge },
|
|
19861
|
+
{ label: 'Capacity', value: toWholeEnergy$1(caps.capacity) },
|
|
19862
|
+
{ label: 'Recharge', value: toWholeEnergy$1(caps.recharge) },
|
|
18130
19863
|
],
|
|
18131
19864
|
};
|
|
18132
19865
|
}
|
|
@@ -18136,7 +19869,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18136
19869
|
capability: 'Gatherer',
|
|
18137
19870
|
attributes: [
|
|
18138
19871
|
{ label: 'Yield', value: caps.yield },
|
|
18139
|
-
{ label: 'Drain', value: caps.drain },
|
|
19872
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18140
19873
|
{ label: 'Depth', value: caps.depth },
|
|
18141
19874
|
],
|
|
18142
19875
|
};
|
|
@@ -18158,7 +19891,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18158
19891
|
capability: 'Crafting',
|
|
18159
19892
|
attributes: [
|
|
18160
19893
|
{ label: 'Speed', value: caps.speed },
|
|
18161
|
-
{ label: 'Drain', value: caps.drain },
|
|
19894
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18162
19895
|
],
|
|
18163
19896
|
};
|
|
18164
19897
|
}
|
|
@@ -18169,12 +19902,12 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18169
19902
|
attributes: [
|
|
18170
19903
|
{ label: 'Capacity', value: caps.capacity },
|
|
18171
19904
|
{ label: 'Efficiency', value: caps.efficiency },
|
|
18172
|
-
{ label: 'Drain', value: caps.drain },
|
|
19905
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18173
19906
|
],
|
|
18174
19907
|
};
|
|
18175
19908
|
}
|
|
18176
19909
|
case MODULE_STORAGE: {
|
|
18177
|
-
const caps = computeStorageCapabilities(stats);
|
|
19910
|
+
const caps = computeStorageCapabilities(stats, tier);
|
|
18178
19911
|
return {
|
|
18179
19912
|
capability: 'Storage',
|
|
18180
19913
|
attributes: [
|
|
@@ -18182,6 +19915,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18182
19915
|
label: 'Cargo Capacity',
|
|
18183
19916
|
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
18184
19917
|
},
|
|
19918
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18185
19919
|
],
|
|
18186
19920
|
};
|
|
18187
19921
|
}
|
|
@@ -18192,7 +19926,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18192
19926
|
attributes: [
|
|
18193
19927
|
{
|
|
18194
19928
|
label: 'Energy Capacity',
|
|
18195
|
-
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
19929
|
+
value: toWholeEnergy$1(applySlotMultiplierUint32(caps.capacity, outputPct)),
|
|
18196
19930
|
},
|
|
18197
19931
|
],
|
|
18198
19932
|
};
|
|
@@ -18234,10 +19968,19 @@ function resolveModule(id, stats) {
|
|
|
18234
19968
|
attributes,
|
|
18235
19969
|
};
|
|
18236
19970
|
}
|
|
18237
|
-
function hullCapsForEntity(itemId, decoded) {
|
|
19971
|
+
function hullCapsForEntity(itemId, decoded, packedStats) {
|
|
19972
|
+
const hullStats = getPackedEntityType(itemId)?.equals(ENTITY_SHIP)
|
|
19973
|
+
? {
|
|
19974
|
+
strength: decodeStat(packedStats, 0),
|
|
19975
|
+
hardness: decodeStat(packedStats, 1),
|
|
19976
|
+
plasticity: decodeStat(packedStats, 2),
|
|
19977
|
+
volatility: decodeStat(packedStats, 3),
|
|
19978
|
+
conductivity: decodeStat(packedStats, 4),
|
|
19979
|
+
}
|
|
19980
|
+
: decoded;
|
|
18238
19981
|
return {
|
|
18239
|
-
hullmass: computeBaseHullmass(
|
|
18240
|
-
capacity: computeBaseCapacity(itemId,
|
|
19982
|
+
hullmass: computeBaseHullmass(itemId, hullStats),
|
|
19983
|
+
capacity: computeBaseCapacity(itemId, hullStats),
|
|
18241
19984
|
};
|
|
18242
19985
|
}
|
|
18243
19986
|
function resolveEntity(id, stats, modules) {
|
|
@@ -18254,7 +19997,7 @@ function resolveEntity(id, stats, modules) {
|
|
|
18254
19997
|
decoded.density = decodeStat(bigStats, 1);
|
|
18255
19998
|
if (decoded.hardness === undefined)
|
|
18256
19999
|
decoded.hardness = decodeStat(bigStats, 2);
|
|
18257
|
-
const hullCaps = hullCapsForEntity(id, decoded);
|
|
20000
|
+
const hullCaps = hullCapsForEntity(id, decoded, bigStats);
|
|
18258
20001
|
attributes = [
|
|
18259
20002
|
{
|
|
18260
20003
|
capability: 'Hull',
|
|
@@ -18490,6 +20233,9 @@ function moduleSlotsForImmutable(modules) {
|
|
|
18490
20233
|
}));
|
|
18491
20234
|
}
|
|
18492
20235
|
const IMAGE_HOST_URL = 'https://item.shiploadgame.com/item';
|
|
20236
|
+
function toWholeEnergy(milli) {
|
|
20237
|
+
return Math.floor((milli + 500) / 1000);
|
|
20238
|
+
}
|
|
18493
20239
|
function bytesToBase64Url(bytes) {
|
|
18494
20240
|
let binary = '';
|
|
18495
20241
|
for (let i = 0; i < bytes.byteLength; i++)
|
|
@@ -18555,8 +20301,14 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18555
20301
|
const thm = decodeStat(stats, 1);
|
|
18556
20302
|
base.push({ first: 'volatility', second: ['uint16', vol] });
|
|
18557
20303
|
base.push({ first: 'thermal', second: ['uint16', thm] });
|
|
18558
|
-
base.push({
|
|
18559
|
-
|
|
20304
|
+
base.push({
|
|
20305
|
+
first: 'thrust',
|
|
20306
|
+
second: ['uint32', computeEngineThrust(computeEffectiveModuleStat(vol))],
|
|
20307
|
+
});
|
|
20308
|
+
base.push({
|
|
20309
|
+
first: 'drain',
|
|
20310
|
+
second: ['uint16', computeEngineDrain(computeEffectiveModuleStat(thm))],
|
|
20311
|
+
});
|
|
18560
20312
|
break;
|
|
18561
20313
|
}
|
|
18562
20314
|
case MODULE_GENERATOR: {
|
|
@@ -18564,8 +20316,20 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18564
20316
|
const ref = decodeStat(stats, 1);
|
|
18565
20317
|
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
18566
20318
|
base.push({ first: 'reflectivity', second: ['uint16', ref] });
|
|
18567
|
-
base.push({
|
|
18568
|
-
|
|
20319
|
+
base.push({
|
|
20320
|
+
first: 'capacity',
|
|
20321
|
+
second: [
|
|
20322
|
+
'uint16',
|
|
20323
|
+
toWholeEnergy(computeGeneratorCap(computeEffectiveModuleStat(res))),
|
|
20324
|
+
],
|
|
20325
|
+
});
|
|
20326
|
+
base.push({
|
|
20327
|
+
first: 'recharge',
|
|
20328
|
+
second: [
|
|
20329
|
+
'uint16',
|
|
20330
|
+
toWholeEnergy(computeGeneratorRech(computeEffectiveModuleStat(ref))),
|
|
20331
|
+
],
|
|
20332
|
+
});
|
|
18569
20333
|
break;
|
|
18570
20334
|
}
|
|
18571
20335
|
case MODULE_GATHERER: {
|
|
@@ -18576,7 +20340,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18576
20340
|
base.push({ first: 'hardness', second: ['uint16', hrd] });
|
|
18577
20341
|
base.push({ first: 'saturation', second: ['uint16', sat] });
|
|
18578
20342
|
base.push({ first: 'yield', second: ['uint16', computeGathererYield(str)] });
|
|
18579
|
-
base.push({
|
|
20343
|
+
base.push({
|
|
20344
|
+
first: 'drain',
|
|
20345
|
+
second: ['uint16', toWholeEnergy(computeGathererDrain(sat))],
|
|
20346
|
+
});
|
|
18580
20347
|
base.push({ first: 'depth', second: ['uint16', computeGathererDepth(hrd, item.tier)] });
|
|
18581
20348
|
break;
|
|
18582
20349
|
}
|
|
@@ -18601,7 +20368,16 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18601
20368
|
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
18602
20369
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18603
20370
|
base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(fin)] });
|
|
18604
|
-
base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(con)] });
|
|
20371
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeCrafterDrain(con))] });
|
|
20372
|
+
break;
|
|
20373
|
+
}
|
|
20374
|
+
case MODULE_BUILDER: {
|
|
20375
|
+
const coh = decodeStat(stats, 0);
|
|
20376
|
+
const tol = decodeStat(stats, 1);
|
|
20377
|
+
base.push({ first: 'cohesion', second: ['uint16', coh] });
|
|
20378
|
+
base.push({ first: 'tolerance', second: ['uint16', tol] });
|
|
20379
|
+
base.push({ first: 'speed', second: ['uint16', computeBuilderSpeed(coh)] });
|
|
20380
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeBuilderDrain(tol))] });
|
|
18605
20381
|
break;
|
|
18606
20382
|
}
|
|
18607
20383
|
case MODULE_STORAGE: {
|
|
@@ -18615,7 +20391,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18615
20391
|
base.push({ first: 'cohesion', second: ['uint16', com] });
|
|
18616
20392
|
base.push({
|
|
18617
20393
|
first: 'capacity',
|
|
18618
|
-
second: ['uint32', computeCargoBayCapacity(str, den, hrd
|
|
20394
|
+
second: ['uint32', computeCargoBayCapacity(str, den, hrd)],
|
|
20395
|
+
});
|
|
20396
|
+
base.push({
|
|
20397
|
+
first: 'drain',
|
|
20398
|
+
second: ['uint16', toWholeEnergy(computeCargoBayDrain(com, item.tier))],
|
|
18619
20399
|
});
|
|
18620
20400
|
break;
|
|
18621
20401
|
}
|
|
@@ -18630,7 +20410,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18630
20410
|
base.push({ first: 'insulation', second: ['uint16', ins] });
|
|
18631
20411
|
base.push({
|
|
18632
20412
|
first: 'capacity',
|
|
18633
|
-
second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
|
|
20413
|
+
second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
|
|
18634
20414
|
});
|
|
18635
20415
|
break;
|
|
18636
20416
|
}
|
|
@@ -18643,7 +20423,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18643
20423
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18644
20424
|
base.push({ first: 'capacity', second: ['uint8', computeHaulerCapacity(res, item.tier)] });
|
|
18645
20425
|
base.push({ first: 'efficiency', second: ['uint16', computeHaulerEfficiency(pla)] });
|
|
18646
|
-
base.push({
|
|
20426
|
+
base.push({
|
|
20427
|
+
first: 'drain',
|
|
20428
|
+
second: ['uint16', toWholeEnergy(computeHaulerDrain(con, item.tier))],
|
|
20429
|
+
});
|
|
18647
20430
|
break;
|
|
18648
20431
|
}
|
|
18649
20432
|
}
|
|
@@ -18696,6 +20479,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18696
20479
|
deserializeModule: deserializeModule,
|
|
18697
20480
|
deserializeEntity: deserializeEntity,
|
|
18698
20481
|
deserializeAsset: deserializeAsset,
|
|
20482
|
+
toWholeEnergy: toWholeEnergy$1,
|
|
18699
20483
|
computeBaseHullmass: computeBaseHullmass$1,
|
|
18700
20484
|
computeBaseCapacityShip: computeBaseCapacityShip,
|
|
18701
20485
|
computeBaseCapacityContainer: computeBaseCapacityContainer,
|
|
@@ -18715,9 +20499,13 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18715
20499
|
computeLoaderThrust: computeLoaderThrust,
|
|
18716
20500
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
18717
20501
|
computeCrafterDrain: computeCrafterDrain,
|
|
20502
|
+
computeBuilderSpeed: computeBuilderSpeed,
|
|
20503
|
+
computeBuilderDrain: computeBuilderDrain,
|
|
18718
20504
|
computeHaulerCapacity: computeHaulerCapacity,
|
|
18719
20505
|
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
18720
|
-
|
|
20506
|
+
supportDrainTierPercent: supportDrainTierPercent,
|
|
20507
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
20508
|
+
computeCargoBayDrain: computeCargoBayDrain,
|
|
18721
20509
|
computeWarpRange: computeWarpRange,
|
|
18722
20510
|
computeCargoBayCapacity: computeCargoBayCapacity,
|
|
18723
20511
|
computeBatteryBankCapacity: computeBatteryBankCapacity,
|
|
@@ -18963,5 +20751,5 @@ function planParallelTransfer(entity, target) {
|
|
|
18963
20751
|
return allocateProportional(laneWeights, requestedQty).filter((e) => e.quantity > 0);
|
|
18964
20752
|
}
|
|
18965
20753
|
|
|
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 };
|
|
20754
|
+
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
20755
|
//# sourceMappingURL=shipload.m.js.map
|