@shipload/sdk 1.0.0-next.3 → 1.0.0-next.5
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 +203 -97
- package/lib/shipload.js +762 -419
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +752 -418
- package/lib/shipload.m.js.map +1 -1
- package/package.json +1 -1
- package/src/contracts/server.ts +54 -1
- package/src/data/capabilities.ts +5 -330
- package/src/data/capability-formulas.ts +68 -0
- package/src/data/colors.ts +1 -0
- package/src/data/items.json +245 -0
- package/src/data/metadata.ts +44 -1
- package/src/data/recipes.json +6 -16
- package/src/derivation/capability-mappings.ts +120 -0
- package/src/derivation/resources.ts +27 -19
- package/src/entities/container.ts +23 -8
- package/src/entities/ship-deploy.ts +78 -41
- package/src/entities/ship.ts +17 -0
- package/src/entities/warehouse.ts +8 -0
- package/src/index-module.ts +32 -18
- package/src/managers/actions.ts +24 -1
- package/src/nft/description.ts +25 -6
- package/src/resolution/resolve-item.ts +14 -9
- package/src/scheduling/accessor.ts +4 -0
- package/src/scheduling/projection.ts +8 -0
- package/src/scheduling/schedule.ts +15 -1
- package/src/subscriptions/manager.ts +37 -1
- package/src/travel/travel.ts +58 -1
- package/src/types.ts +3 -0
package/lib/shipload.js
CHANGED
|
@@ -213,7 +213,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
213
213
|
Contract: Contract$1
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiEAQlhZGRtb2R1bGUABQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D21vZHVsZV9jYXJnb19pZAZ1aW50NjQPdGFyZ2V0X2NhcmdvX2lkBnVpbnQ2NAhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAdhZHZhbmNlAAIGcmV2ZWFsBnN0cmluZwZjb21taXQLY2hlY2tzdW0yNTYFYmxlbmQAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAZpbnB1dHMMY2FyZ29faXRlbVtdBmNhbmNlbAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpjYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQpjYXJnb192aWV3AAUHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdAmlkBnVpbnQ2NAxjbGFpbXN0YXJ0ZXIAAwdhY2NvdW50BG5hbWUBeAVpbnQ2NAF5BWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0CmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABkEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDE2PwhodWxsbWFzcwd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGNhcGFjaXR5B3VpbnQzMj8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdC2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAQGc291cmNlCmVudGl0eV9yZWYLZGVzdGluYXRpb24KZW50aXR5X3JlZgdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIOZ2F0aGVyZXJfc3RhdHMABAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVzcGVlZAZ1aW50MTYJZ2V0Y29uZmlnAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAADGdldGl0ZW10eXBlcwAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQLZ2V0bW9kdHlwZXMAAApnZXRtb2R1bGVzAAAJZ2V0bmVhcmJ5AAMLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQlnZXRyZWNpcGUAAQ5vdXRwdXRfaXRlbV9pZAZ1aW50MTYKZ2V0cmVjaXBlcwACC2xvd2VyX2JvdW5kBnVpbnQxNgVsaW1pdAV1aW50OApnZXRyZXNjYXRzAAALZ2V0cmVzZXJ2ZXMAAgF4BWludDY0AXkFaW50NjQMZ2V0cmVzb3VyY2VzAAAIZ2V0c2xvdHMAAApnZXRzdHJhdHVtAAMBeAVpbnQ2NAF5BWludDY0B3N0cmF0dW0GdWludDE2DGdldHN1bW1hcmllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8LZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwADCGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQxNgRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUMbG9hZGVyX3N0YXRzAAMEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNghxdWFudGl0eQV1aW50OBBsb2NhdGlvbl9kZXJpdmVkAAMMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwtlcG9jaF9wcm9wcw5sb2NhdGlvbl9lcG9jaARzaXplBnVpbnQxNg5sb2NhdGlvbl9lcG9jaAADBmFjdGl2ZQRib29sBXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DWxvY2F0aW9uX2luZm8AAgZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wMbG9jYXRpb25fcm93AAYCaWQGdWludDY0BW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10Ic2NoZWR1bGUJc2NoZWR1bGU/D2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OAxtb2R1bGVfZW50cnkAAgR0eXBlBXVpbnQ4CWluc3RhbGxlZA5wYWNrZWRfbW9kdWxlPwttb2R1bGVfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgttb2R1bGVfdHlwZQV1aW50OAR0aWVyBXVpbnQ4Dm1vZHVsZXNfcmVzdWx0AAEHbW9kdWxlcw1tb2R1bGVfaW5mb1tdDm1vdmVtZW50X3N0YXRzAAIGdGhydXN0BnVpbnQzMgVkcmFpbgZ1aW50MTYLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MTYHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8JbmV4dXNfcm93AAQCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAIHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQ1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQ5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAtwbGF5ZXJfaW5mbwAGBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpzaGlwX2NvdW50BnVpbnQ2NA93YXJlaG91c2VfY291bnQGdWludDY0D2NvbnRhaW5lcl9jb3VudAZ1aW50NjQKcGxheWVyX3JvdwABBW93bmVyBG5hbWUIcmVjaGFyZ2UAAgtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQABAdpdGVtX2lkBnVpbnQxNghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAHDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10LcmVzZXJ2ZV9yb3cABAJpZAZ1aW50NjQIY29vcmRfaWQGdWludDY0B3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdCHJtbW9kdWxlAAQLZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OA90YXJnZXRfY2FyZ29faWQGdWludDY0CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQhzaGlwX3JvdwASAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8GZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8IZ2F0aGVyZXIPZ2F0aGVyZXJfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPwdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPwhzbG90X2RlZgABBHR5cGUFdWludDgKc3Bhd25jYXJnbwADCWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0C3NwYXducGFja2VkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAlpbnN0YWxsZWQPcGFja2VkX21vZHVsZVtdC3NwYXduc2VlZGVkAAQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzYWx0BnVpbnQ2NAVzaGlwcwZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgZjb21taXQLY2hlY2tzdW0yNTYMc3RyYXR1bV9kYXRhAAIHc3RyYXR1bQxzdHJhdHVtX2luZm8Fc3RhdHMOcmVzb3VyY2Vfc3RhdHMMc3RyYXR1bV9pbmZvAAUHaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQIcmljaG5lc3MGdWludDE2B3Jlc2VydmUGdWludDMyC3Jlc2VydmVfbWF4BnVpbnQzMhFzdHJhdHVtX3JlbWFpbmluZwACB3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABwtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0CHF1YW50aXR5BnVpbnQzMgZ0cmF2ZWwABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABAJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcNd2FyZWhvdXNlX3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8Ed2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAAAR3cmFwAAUFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NDsAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC5wVb4mY+lMRAxjbGFpbXN0YXJ0ZXKFBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGFpbXN0YXJ0ZXIKc3VtbWFyeTogJ0RFQlVHOiBjbGFpbSBhIHN0YXJ0ZXIgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU3Bhd24gYSBwcmUta2l0dGVkIFQxIHN0YXJ0ZXIgc2hpcCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgZm9yIGEgcmVnaXN0ZXJlZCBwbGF5ZXIuIEF2YWlsYWJsZSBvbmx5IG9uIHRlc3QgZGVwbG95bWVudHMgd2hlcmUgbm8gaW4tZ2FtZSBzaGlwIGVjb25vbXkgeWV0IGV4aXN0cy4gUmVxdWlyZXMgdGhlIGNhbGxlciB0byBiZSBhIGpvaW5lZCBwbGF5ZXIgd2l0aCBubyBleGlzdGluZyBzaGlwczsgdGhlIHJlc3VsdGluZyBzaGlwIGlzIGZpdHRlZCB3aXRoIGEgZ2VuZXJhdG9yLCBlbmdpbmUsIGdhdGhlcmVyLCBjcmFmdGVyLCBhbmQgaGF1bGVyIG1vZHVsZS4AAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy7gs8tTqWzURQxjcmVhdGVlbnRpdHm/AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmVhdGVlbnRpdHkKc3VtbWFyeTogJ0RFQlVHOiBjcmVhdGUgYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAHgaq0oGZGVwbG957AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVwbG95CnN1bW1hcnk6ICdEZXBsb3kgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVbnBhY2sgYSBwYWNrZWQgZW50aXR5IGl0ZW0gKHBhY2tlZCBzaGlwIG9yIHBhY2tlZCBjb250YWluZXIpIGZyb20gY2FyZ28sIHNjaGVkdWxpbmcgYSBkZXBsb3kgdGFzayB0aGF0IGNyZWF0ZXMgdGhlIG5ldyBlbnRpdHkgYXQgdGhlIGRlcGxveWluZyBlbnRpdHkncyBsb2NhdGlvbiB1cG9uIHJlc29sdXRpb24uAIDPLk+FsEoKZGVzY2VudGl0eckDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlc2NlbnRpdHkKc3VtbWFyeTogJ0Rlc2NyaWJlIGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBzdHJpbmcgZm9yIGEgcGFja2VkIGVudGl0eSwgZGVyaXZlZCBmcm9tIHRoZSBlbnRpdHkgaXRlbSBpZCwgaHVsbCBzdGF0cywgYW5kIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBtb2R1bGUgaXRlbSBpZHMgYW5kIHN0YXRzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGRpc3BsYXkgcGFja2VkIGVudGl0aWVzLgAAAACoeMxUBmVuYWJsZd0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy6AVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgAAADjTiLNiCGdldHNsb3RzuwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c2xvdHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc2xvdCBsYXlvdXRzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbW9kdWxlIHNsb3QgbGF5b3V0IGZvciBldmVyeSBlbnRpdHkgaXRlbSB0eXBlLCBsaXN0aW5nIHRoZSBvcmRlcmVkIHNsb3QgdHlwZXMgYXZhaWxhYmxlIGZvciBtb2R1bGUgaW5zdGFsbGF0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRldGVybWluZSB3aGljaCBtb2R1bGUgdHlwZXMgYXJlIGNvbXBhdGlibGUgd2l0aCBhIGdpdmVuIGVudGl0eSBodWxsLgCA1NncjLNiCmdldHN0cmF0dW3SAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdHJhdHVtCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHJlc291cmNlIHN0cmF0dW0gZGF0YSBmb3IgYSBzcGVjaWZpYyBkZXB0aCBsYXllciBhdCBhIGNvb3JkaW5hdGUsIGluY2x1ZGluZyB0aGUgc3RyYXR1bSBzZWVkIGluZm8gYW5kIGRlcml2ZWQgcmVzb3VyY2Ugc3RhdHMugJW7RkqNs2IMZ2V0c3VtbWFyaWVz6AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3VtbWFyaWVzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHN1bW1hcmllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgbGlnaHR3ZWlnaHQgc3VtbWFyaWVzIG9mIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllciBpbmNsdWRpbmcgdHlwZSwgaWQsIG93bmVyLCBuYW1lLCBsb2NhdGlvbiwgYW5kIGlkbGUgc3RhdHVzLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4Aotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4AAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAACQo8EEc2FsdNgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNhbHQKc3VtbWFyeTogJ0FwcGVuZCBTYWx0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZGQgYWRkaXRpb25hbCBzYWx0IHRvIHRoZSBuZXh0IGVwb2NoIHNlZWQuAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAZdegyU3FCnNwYXduY2FyZ2/FAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bmNhcmdvCnN1bW1hcnk6ICdERUJVRzogc3Bhd24gY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAJKCyNTJTcULc3Bhd25wYWNrZWTnAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bnBhY2tlZApzdW1tYXJ5OiAnREVCVUc6IHNwYXduIGEgcGFja2VkIGVudGl0eSB3aXRoIGluc3RhbGxlZCBtb2R1bGVzIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCSSkrhyU3FC3NwYXduc2VlZGVkzQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25zZWVkZWQKc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBzZWVkZWQgY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFDN5QR3cmFw/gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcApzdW1tYXJ5OiAnV3JhcCBjYXJnbyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhIHF1YW50aXR5IG9mIGNhcmdvIGZyb20gYW4gZW50aXR5IGludG8gYW4gQXRvbWljQXNzZXRzIE5GVCBtaW50ZWQgdG8gdGhlIHNwZWNpZmllZCBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGhhdmUgbG9hZGVycywgYW5kIGNvbnRhaW4gZW5vdWdoIG9mIHRoZSByZXF1ZXN0ZWQgY2FyZ28uIFNjaGVkdWxlcyBhIHdyYXAgdGFzayB0aGF0LCBvbiByZXNvbHV0aW9uLCByZW1vdmVzIHRoZSBjYXJnbyBmcm9tIHRoZSBlbnRpdHkgYW5kIG1pbnRzIHRoZSBORlQgdXNpbmcgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyZWQgZm9yIHRoYXQgaXRlbSBpZC4NAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAAAArLuaA2k2NAAACW5leHVzX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAUFjTpq7hA2k2NAAADXdhcmVob3VzZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAJAAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAABgbk2KsmILZ2FtZV9jb25maWcAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm8ATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvgFX1WarssmILZW51bV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm8AAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRzAAAAAABQzeUMdGFza19yZXN1bHRz');
|
|
216
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiHAQlhZGRtb2R1bGUABQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D21vZHVsZV9jYXJnb19pZAZ1aW50NjQPdGFyZ2V0X2NhcmdvX2lkBnVpbnQ2NAhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAdhZHZhbmNlAAIGcmV2ZWFsBnN0cmluZwZjb21taXQLY2hlY2tzdW0yNTYFYmxlbmQAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAZpbnB1dHMMY2FyZ29faXRlbVtdBmNhbmNlbAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpjYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQpjYXJnb192aWV3AAUHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdAmlkBnVpbnQ2NAxjbGFpbXN0YXJ0ZXIAAwdhY2NvdW50BG5hbWUBeAVpbnQ2NAF5BWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8Fc3RhdHMGdWludDY0B2l0ZW1faWQGdWludDE2C2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2PwVjcmFmdAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYMY3JlYXRlZW50aXR5AAUFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQIZGVtb2xpc2gAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQGZGVwbG95AAQLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQOcGFja2VkX2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDE2CHJlY2hhcmdlBnVpbnQxNhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MTYPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAZBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbG9hZGVycw1sb2FkZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8NZW50aXR5X2xheW91dAACDmVudGl0eV9pdGVtX2lkBnVpbnQxNgVzbG90cwpzbG90X2RlZltdFWVudGl0eV9sYXlvdXRzX3Jlc3VsdAABCGVudGl0aWVzD2VudGl0eV9sYXlvdXRbXQplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAEBnNvdXJjZQplbnRpdHlfcmVmC2Rlc3RpbmF0aW9uCmVudGl0eV9yZWYHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyDmdhdGhlcmVyX3N0YXRzAAQFeWllbGQGdWludDE2BWRyYWluBnVpbnQxNgVkZXB0aAZ1aW50MTYFc3BlZWQGdWludDE2CWdldGNvbmZpZwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAxnZXRpdGVtdHlwZXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUJZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgKZ2V0cmVzY2F0cwAAC2dldHJlc2VydmVzAAIBeAVpbnQ2NAF5BWludDY0DGdldHJlc291cmNlcwAACGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMAAwhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MTYEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQOcGFja2VkX21vZHVsZT8LbW9kdWxlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzILbW9kdWxlX3R5cGUFdWludDgEdGllcgV1aW50OA5tb2R1bGVzX3Jlc3VsdAABB21vZHVsZXMNbW9kdWxlX2luZm9bXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvCW5leHVzX3JvdwAEAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzDm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgACB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWUNbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUObmZ0aW5mb19yZXN1bHQAAgdzY2hlbWFzEG5mdF9zY2hlbWFfZGVmW10JdGVtcGxhdGVzEm5mdF90ZW1wbGF0ZV9kZWZbXQZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50DXBhY2tlZF9tb2R1bGUAAgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQLcGxheWVyX2luZm8ABgVvd25lcgRuYW1lCWlzX3BsYXllcgRib29sDGNvbXBhbnlfbmFtZQZzdHJpbmcKc2hpcF9jb3VudAZ1aW50NjQPd2FyZWhvdXNlX2NvdW50BnVpbnQ2NA9jb250YWluZXJfY291bnQGdWludDY0CnBsYXllcl9yb3cAAQVvd25lcgRuYW1lCHJlY2hhcmdlAAILZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAQHaXRlbV9pZAZ1aW50MTYIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UABw5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdC3Jlc2VydmVfcm93AAQCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyB3Jlc29sdmUAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAV1aW50OBRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPw1yZXNvdXJjZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgOcmVzb3VyY2Vfc3RhdHMAAwVzdGF0MQZ1aW50MTYFc3RhdDIGdWludDE2BXN0YXQzBnVpbnQxNhByZXNvdXJjZXNfcmVzdWx0AAEJcmVzb3VyY2VzD3Jlc291cmNlX2luZm9bXQhybW1vZHVsZQAEC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgPdGFyZ2V0X2NhcmdvX2lkBnVpbnQ2NAhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2BHNhbHQAAQRzYWx0BnVpbnQ2NAhzY2hlZHVsZQACB3N0YXJ0ZWQKdGltZV9wb2ludAV0YXNrcwZ0YXNrW10Mc2NoZW1hX2ZpZWxkAAIEbmFtZQZzdHJpbmcKZmllbGRfdHlwZQZzdHJpbmcMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUIc2hpcF9yb3cAEwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/BmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIHZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8HaXRlbV9pZAZ1aW50MTYIc2xvdF9kZWYAAQR0eXBlBXVpbnQ4CnNwYXduY2FyZ28AAwllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAtzcGF3bnBhY2tlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQJaW5zdGFsbGVkD3BhY2tlZF9tb2R1bGVbXQtzcGF3bnNlZWRlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NBJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAgdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyBHRhc2sACAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDE2Pwp0YXNrX2V2ZW50AAkKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BXVpbnQ4BHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQxNj8MdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdCHRyYW5zZmVyAAcLc291cmNlX3R5cGUEbmFtZQlzb3VyY2VfaWQGdWludDY0CWRlc3RfdHlwZQRuYW1lB2Rlc3RfaWQGdWludDY0B2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAhxdWFudGl0eQZ1aW50MzIGdHJhdmVsAAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAQCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZxZzdHJhdHVtX3JlbWFpbmluZ190eXBlEXN0cmF0dW1fcmVtYWluaW5nCHVuZGVwbG95AAQJaG9zdF90eXBlBG5hbWUHaG9zdF9pZAZ1aW50NjQLdGFyZ2V0X3R5cGUEbmFtZQl0YXJnZXRfaWQGdWludDY0DXdhcmVob3VzZV9yb3cADAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/CWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycw1sb2FkZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10Ic2NoZWR1bGUJc2NoZWR1bGU/B2l0ZW1faWQGdWludDE2BHdhcnAABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAMd2lwZXNlcXVlbmNlAAAEd3JhcAAFBW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2ND4AAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC5wVb4mY+lMRAxjbGFpbXN0YXJ0ZXKFBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGFpbXN0YXJ0ZXIKc3VtbWFyeTogJ0RFQlVHOiBjbGFpbSBhIHN0YXJ0ZXIgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU3Bhd24gYSBwcmUta2l0dGVkIFQxIHN0YXJ0ZXIgc2hpcCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgZm9yIGEgcmVnaXN0ZXJlZCBwbGF5ZXIuIEF2YWlsYWJsZSBvbmx5IG9uIHRlc3QgZGVwbG95bWVudHMgd2hlcmUgbm8gaW4tZ2FtZSBzaGlwIGVjb25vbXkgeWV0IGV4aXN0cy4gUmVxdWlyZXMgdGhlIGNhbGxlciB0byBiZSBhIGpvaW5lZCBwbGF5ZXIgd2l0aCBubyBleGlzdGluZyBzaGlwczsgdGhlIHJlc3VsdGluZyBzaGlwIGlzIGZpdHRlZCB3aXRoIGEgZ2VuZXJhdG9yLCBlbmdpbmUsIGdhdGhlcmVyLCBjcmFmdGVyLCBhbmQgaGF1bGVyIG1vZHVsZS4AAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy7gs8tTqWzURQxjcmVhdGVlbnRpdHm/AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmVhdGVlbnRpdHkKc3VtbWFyeTogJ0RFQlVHOiBjcmVhdGUgYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAADbtIpUoIZGVtb2xpc2gAAAAAAHgaq0oGZGVwbG957AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVwbG95CnN1bW1hcnk6ICdEZXBsb3kgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVbnBhY2sgYSBwYWNrZWQgZW50aXR5IGl0ZW0gKHBhY2tlZCBzaGlwIG9yIHBhY2tlZCBjb250YWluZXIpIGZyb20gY2FyZ28sIHNjaGVkdWxpbmcgYSBkZXBsb3kgdGFzayB0aGF0IGNyZWF0ZXMgdGhlIG5ldyBlbnRpdHkgYXQgdGhlIGRlcGxveWluZyBlbnRpdHkncyBsb2NhdGlvbiB1cG9uIHJlc29sdXRpb24uAIDPLk+FsEoKZGVzY2VudGl0eckDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlc2NlbnRpdHkKc3VtbWFyeTogJ0Rlc2NyaWJlIGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBzdHJpbmcgZm9yIGEgcGFja2VkIGVudGl0eSwgZGVyaXZlZCBmcm9tIHRoZSBlbnRpdHkgaXRlbSBpZCwgaHVsbCBzdGF0cywgYW5kIHRoZSBsaXN0IG9mIGluc3RhbGxlZCBtb2R1bGUgaXRlbSBpZHMgYW5kIHN0YXRzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGRpc3BsYXkgcGFja2VkIGVudGl0aWVzLgAAAACoeMxUBmVuYWJsZd0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy6AVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgAAADjTiLNiCGdldHNsb3RzuwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c2xvdHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc2xvdCBsYXlvdXRzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbW9kdWxlIHNsb3QgbGF5b3V0IGZvciBldmVyeSBlbnRpdHkgaXRlbSB0eXBlLCBsaXN0aW5nIHRoZSBvcmRlcmVkIHNsb3QgdHlwZXMgYXZhaWxhYmxlIGZvciBtb2R1bGUgaW5zdGFsbGF0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRldGVybWluZSB3aGljaCBtb2R1bGUgdHlwZXMgYXJlIGNvbXBhdGlibGUgd2l0aCBhIGdpdmVuIGVudGl0eSBodWxsLgCA1NncjLNiCmdldHN0cmF0dW3SAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdHJhdHVtCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHJlc291cmNlIHN0cmF0dW0gZGF0YSBmb3IgYSBzcGVjaWZpYyBkZXB0aCBsYXllciBhdCBhIGNvb3JkaW5hdGUsIGluY2x1ZGluZyB0aGUgc3RyYXR1bSBzZWVkIGluZm8gYW5kIGRlcml2ZWQgcmVzb3VyY2Ugc3RhdHMugJW7RkqNs2IMZ2V0c3VtbWFyaWVz6AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3VtbWFyaWVzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHN1bW1hcmllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgbGlnaHR3ZWlnaHQgc3VtbWFyaWVzIG9mIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllciBpbmNsdWRpbmcgdHlwZSwgaWQsIG93bmVyLCBuYW1lLCBsb2NhdGlvbiwgYW5kIGlkbGUgc3RhdHVzLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4Aotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0+gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgc2VlZCB2YWx1ZXMgdG8gYm9vdHN0cmFwIGdhbWUgc3RhdGUuAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4AAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAACQo8EEc2FsdNgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNhbHQKc3VtbWFyeTogJ0FwcGVuZCBTYWx0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZGQgYWRkaXRpb25hbCBzYWx0IHRvIHRoZSBuZXh0IGVwb2NoIHNlZWQuAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAZdegyU3FCnNwYXduY2FyZ2/FAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bmNhcmdvCnN1bW1hcnk6ICdERUJVRzogc3Bhd24gY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAJKCyNTJTcULc3Bhd25wYWNrZWTnAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bnBhY2tlZApzdW1tYXJ5OiAnREVCVUc6IHNwYXduIGEgcGFja2VkIGVudGl0eSB3aXRoIGluc3RhbGxlZCBtb2R1bGVzIG9uIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCSSkrhyU3FC3NwYXduc2VlZGVkzQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Bhd25zZWVkZWQKc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBzZWVkZWQgY2FyZ28gb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AAACexqrS1Ah1bmRlcGxveQAAAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFDN5QR3cmFw/gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcApzdW1tYXJ5OiAnV3JhcCBjYXJnbyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhIHF1YW50aXR5IG9mIGNhcmdvIGZyb20gYW4gZW50aXR5IGludG8gYW4gQXRvbWljQXNzZXRzIE5GVCBtaW50ZWQgdG8gdGhlIHNwZWNpZmllZCBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGhhdmUgbG9hZGVycywgYW5kIGNvbnRhaW4gZW5vdWdoIG9mIHRoZSByZXF1ZXN0ZWQgY2FyZ28uIFNjaGVkdWxlcyBhIHdyYXAgdGFzayB0aGF0LCBvbiByZXNvbHV0aW9uLCByZW1vdmVzIHRoZSBjYXJnbyBmcm9tIHRoZSBlbnRpdHkgYW5kIG1pbnRzIHRoZSBORlQgdXNpbmcgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyZWQgZm9yIHRoYXQgaXRlbSBpZC4AgM8uT1XN5Qp3cmFwZW50aXR5AA0AAAAAAMquQQNpNjQAAAljYXJnb19yb3cAALhqOpMnRQNpNjQAAA1jb250YWluZXJfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AAAAk7psEI0DaTY0AAAMbG9jYXRpb25fcm93AAAAAACsu5oDaTY0AAAJbmV4dXNfcm93AABgbk2K8poDaTY0AAANbmZ0Y29uZmlnX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAnAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAANu0ilSgx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAgM8uT4WwSgZzdHJpbmcAAAAAXNWyYQx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwBMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm+AVfVZquyyYgtlbnVtX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkALCqPicqs2ILZW51bV9yZXN1bHQAAFZRJyqzYg5tb2R1bGVzX3Jlc3VsdAAA8OcaNbNiC25lYXJieV9pbmZvAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mbwAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAAABXLTzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHMAAAAAAFDN5Qx0YXNrX3Jlc3VsdHMAgM8uT1XN5Qx0YXNrX3Jlc3VsdHM=');
|
|
217
217
|
const abi = antelope.ABI.from(abiBlob);
|
|
218
218
|
exports.ServerTypes = void 0;
|
|
219
219
|
(function (Types) {
|
|
@@ -609,6 +609,12 @@ exports.ServerTypes = void 0;
|
|
|
609
609
|
tslib.__decorate([
|
|
610
610
|
antelope.Struct.field(schedule, { optional: true })
|
|
611
611
|
], container_row.prototype, "schedule", void 0);
|
|
612
|
+
tslib.__decorate([
|
|
613
|
+
antelope.Struct.field(antelope.UInt64)
|
|
614
|
+
], container_row.prototype, "stats", void 0);
|
|
615
|
+
tslib.__decorate([
|
|
616
|
+
antelope.Struct.field(antelope.UInt16)
|
|
617
|
+
], container_row.prototype, "item_id", void 0);
|
|
612
618
|
container_row = tslib.__decorate([
|
|
613
619
|
antelope.Struct.type('container_row')
|
|
614
620
|
], container_row);
|
|
@@ -667,6 +673,18 @@ exports.ServerTypes = void 0;
|
|
|
667
673
|
antelope.Struct.type('createentity')
|
|
668
674
|
], createentity);
|
|
669
675
|
Types.createentity = createentity;
|
|
676
|
+
let demolish = class demolish extends antelope.Struct {
|
|
677
|
+
};
|
|
678
|
+
tslib.__decorate([
|
|
679
|
+
antelope.Struct.field(antelope.Name)
|
|
680
|
+
], demolish.prototype, "entity_type", void 0);
|
|
681
|
+
tslib.__decorate([
|
|
682
|
+
antelope.Struct.field(antelope.UInt64)
|
|
683
|
+
], demolish.prototype, "entity_id", void 0);
|
|
684
|
+
demolish = tslib.__decorate([
|
|
685
|
+
antelope.Struct.type('demolish')
|
|
686
|
+
], demolish);
|
|
687
|
+
Types.demolish = demolish;
|
|
670
688
|
let deploy = class deploy extends antelope.Struct {
|
|
671
689
|
};
|
|
672
690
|
tslib.__decorate([
|
|
@@ -1935,6 +1953,9 @@ exports.ServerTypes = void 0;
|
|
|
1935
1953
|
tslib.__decorate([
|
|
1936
1954
|
antelope.Struct.field(schedule, { optional: true })
|
|
1937
1955
|
], ship_row.prototype, "schedule", void 0);
|
|
1956
|
+
tslib.__decorate([
|
|
1957
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1958
|
+
], ship_row.prototype, "item_id", void 0);
|
|
1938
1959
|
ship_row = tslib.__decorate([
|
|
1939
1960
|
antelope.Struct.type('ship_row')
|
|
1940
1961
|
], ship_row);
|
|
@@ -2134,6 +2155,24 @@ exports.ServerTypes = void 0;
|
|
|
2134
2155
|
antelope.Struct.type('types_row')
|
|
2135
2156
|
], types_row);
|
|
2136
2157
|
Types.types_row = types_row;
|
|
2158
|
+
let undeploy = class undeploy extends antelope.Struct {
|
|
2159
|
+
};
|
|
2160
|
+
tslib.__decorate([
|
|
2161
|
+
antelope.Struct.field(antelope.Name)
|
|
2162
|
+
], undeploy.prototype, "host_type", void 0);
|
|
2163
|
+
tslib.__decorate([
|
|
2164
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2165
|
+
], undeploy.prototype, "host_id", void 0);
|
|
2166
|
+
tslib.__decorate([
|
|
2167
|
+
antelope.Struct.field(antelope.Name)
|
|
2168
|
+
], undeploy.prototype, "target_type", void 0);
|
|
2169
|
+
tslib.__decorate([
|
|
2170
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2171
|
+
], undeploy.prototype, "target_id", void 0);
|
|
2172
|
+
undeploy = tslib.__decorate([
|
|
2173
|
+
antelope.Struct.type('undeploy')
|
|
2174
|
+
], undeploy);
|
|
2175
|
+
Types.undeploy = undeploy;
|
|
2137
2176
|
let warehouse_row = class warehouse_row extends antelope.Struct {
|
|
2138
2177
|
};
|
|
2139
2178
|
tslib.__decorate([
|
|
@@ -2169,6 +2208,9 @@ exports.ServerTypes = void 0;
|
|
|
2169
2208
|
tslib.__decorate([
|
|
2170
2209
|
antelope.Struct.field(schedule, { optional: true })
|
|
2171
2210
|
], warehouse_row.prototype, "schedule", void 0);
|
|
2211
|
+
tslib.__decorate([
|
|
2212
|
+
antelope.Struct.field(antelope.UInt16)
|
|
2213
|
+
], warehouse_row.prototype, "item_id", void 0);
|
|
2172
2214
|
warehouse_row = tslib.__decorate([
|
|
2173
2215
|
antelope.Struct.type('warehouse_row')
|
|
2174
2216
|
], warehouse_row);
|
|
@@ -2224,6 +2266,18 @@ exports.ServerTypes = void 0;
|
|
|
2224
2266
|
antelope.Struct.type('wrap')
|
|
2225
2267
|
], wrap);
|
|
2226
2268
|
Types.wrap = wrap;
|
|
2269
|
+
let wrapentity = class wrapentity extends antelope.Struct {
|
|
2270
|
+
};
|
|
2271
|
+
tslib.__decorate([
|
|
2272
|
+
antelope.Struct.field(antelope.Name)
|
|
2273
|
+
], wrapentity.prototype, "entity_type", void 0);
|
|
2274
|
+
tslib.__decorate([
|
|
2275
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2276
|
+
], wrapentity.prototype, "entity_id", void 0);
|
|
2277
|
+
wrapentity = tslib.__decorate([
|
|
2278
|
+
antelope.Struct.type('wrapentity')
|
|
2279
|
+
], wrapentity);
|
|
2280
|
+
Types.wrapentity = wrapentity;
|
|
2227
2281
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
2228
2282
|
const TableMap = {
|
|
2229
2283
|
cargo: exports.ServerTypes.cargo_row,
|
|
@@ -2379,6 +2433,9 @@ exports.TaskType = void 0;
|
|
|
2379
2433
|
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
2380
2434
|
TaskType[TaskType["WRAP"] = 9] = "WRAP";
|
|
2381
2435
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
2436
|
+
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
2437
|
+
TaskType[TaskType["WRAP_ENTITY"] = 12] = "WRAP_ENTITY";
|
|
2438
|
+
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
2382
2439
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
2383
2440
|
exports.LocationType = void 0;
|
|
2384
2441
|
(function (LocationType) {
|
|
@@ -2538,6 +2595,55 @@ var items = [
|
|
|
2538
2595
|
tier: 3,
|
|
2539
2596
|
category: "ore"
|
|
2540
2597
|
},
|
|
2598
|
+
{
|
|
2599
|
+
id: 104,
|
|
2600
|
+
mass: 71000,
|
|
2601
|
+
type: "resource",
|
|
2602
|
+
tier: 4,
|
|
2603
|
+
category: "ore"
|
|
2604
|
+
},
|
|
2605
|
+
{
|
|
2606
|
+
id: 105,
|
|
2607
|
+
mass: 78000,
|
|
2608
|
+
type: "resource",
|
|
2609
|
+
tier: 5,
|
|
2610
|
+
category: "ore"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
id: 106,
|
|
2614
|
+
mass: 87000,
|
|
2615
|
+
type: "resource",
|
|
2616
|
+
tier: 6,
|
|
2617
|
+
category: "ore"
|
|
2618
|
+
},
|
|
2619
|
+
{
|
|
2620
|
+
id: 107,
|
|
2621
|
+
mass: 96000,
|
|
2622
|
+
type: "resource",
|
|
2623
|
+
tier: 7,
|
|
2624
|
+
category: "ore"
|
|
2625
|
+
},
|
|
2626
|
+
{
|
|
2627
|
+
id: 108,
|
|
2628
|
+
mass: 107000,
|
|
2629
|
+
type: "resource",
|
|
2630
|
+
tier: 8,
|
|
2631
|
+
category: "ore"
|
|
2632
|
+
},
|
|
2633
|
+
{
|
|
2634
|
+
id: 109,
|
|
2635
|
+
mass: 118000,
|
|
2636
|
+
type: "resource",
|
|
2637
|
+
tier: 9,
|
|
2638
|
+
category: "ore"
|
|
2639
|
+
},
|
|
2640
|
+
{
|
|
2641
|
+
id: 110,
|
|
2642
|
+
mass: 130000,
|
|
2643
|
+
type: "resource",
|
|
2644
|
+
tier: 10,
|
|
2645
|
+
category: "ore"
|
|
2646
|
+
},
|
|
2541
2647
|
{
|
|
2542
2648
|
id: 201,
|
|
2543
2649
|
mass: 35000,
|
|
@@ -2559,6 +2665,55 @@ var items = [
|
|
|
2559
2665
|
tier: 3,
|
|
2560
2666
|
category: "crystal"
|
|
2561
2667
|
},
|
|
2668
|
+
{
|
|
2669
|
+
id: 204,
|
|
2670
|
+
mass: 35000,
|
|
2671
|
+
type: "resource",
|
|
2672
|
+
tier: 4,
|
|
2673
|
+
category: "crystal"
|
|
2674
|
+
},
|
|
2675
|
+
{
|
|
2676
|
+
id: 205,
|
|
2677
|
+
mass: 35000,
|
|
2678
|
+
type: "resource",
|
|
2679
|
+
tier: 5,
|
|
2680
|
+
category: "crystal"
|
|
2681
|
+
},
|
|
2682
|
+
{
|
|
2683
|
+
id: 206,
|
|
2684
|
+
mass: 35000,
|
|
2685
|
+
type: "resource",
|
|
2686
|
+
tier: 6,
|
|
2687
|
+
category: "crystal"
|
|
2688
|
+
},
|
|
2689
|
+
{
|
|
2690
|
+
id: 207,
|
|
2691
|
+
mass: 35000,
|
|
2692
|
+
type: "resource",
|
|
2693
|
+
tier: 7,
|
|
2694
|
+
category: "crystal"
|
|
2695
|
+
},
|
|
2696
|
+
{
|
|
2697
|
+
id: 208,
|
|
2698
|
+
mass: 35000,
|
|
2699
|
+
type: "resource",
|
|
2700
|
+
tier: 8,
|
|
2701
|
+
category: "crystal"
|
|
2702
|
+
},
|
|
2703
|
+
{
|
|
2704
|
+
id: 209,
|
|
2705
|
+
mass: 35000,
|
|
2706
|
+
type: "resource",
|
|
2707
|
+
tier: 9,
|
|
2708
|
+
category: "crystal"
|
|
2709
|
+
},
|
|
2710
|
+
{
|
|
2711
|
+
id: 210,
|
|
2712
|
+
mass: 35000,
|
|
2713
|
+
type: "resource",
|
|
2714
|
+
tier: 10,
|
|
2715
|
+
category: "crystal"
|
|
2716
|
+
},
|
|
2562
2717
|
{
|
|
2563
2718
|
id: 301,
|
|
2564
2719
|
mass: 15000,
|
|
@@ -2580,6 +2735,55 @@ var items = [
|
|
|
2580
2735
|
tier: 3,
|
|
2581
2736
|
category: "gas"
|
|
2582
2737
|
},
|
|
2738
|
+
{
|
|
2739
|
+
id: 304,
|
|
2740
|
+
mass: 11000,
|
|
2741
|
+
type: "resource",
|
|
2742
|
+
tier: 4,
|
|
2743
|
+
category: "gas"
|
|
2744
|
+
},
|
|
2745
|
+
{
|
|
2746
|
+
id: 305,
|
|
2747
|
+
mass: 10000,
|
|
2748
|
+
type: "resource",
|
|
2749
|
+
tier: 5,
|
|
2750
|
+
category: "gas"
|
|
2751
|
+
},
|
|
2752
|
+
{
|
|
2753
|
+
id: 306,
|
|
2754
|
+
mass: 9000,
|
|
2755
|
+
type: "resource",
|
|
2756
|
+
tier: 6,
|
|
2757
|
+
category: "gas"
|
|
2758
|
+
},
|
|
2759
|
+
{
|
|
2760
|
+
id: 307,
|
|
2761
|
+
mass: 8000,
|
|
2762
|
+
type: "resource",
|
|
2763
|
+
tier: 7,
|
|
2764
|
+
category: "gas"
|
|
2765
|
+
},
|
|
2766
|
+
{
|
|
2767
|
+
id: 308,
|
|
2768
|
+
mass: 7500,
|
|
2769
|
+
type: "resource",
|
|
2770
|
+
tier: 8,
|
|
2771
|
+
category: "gas"
|
|
2772
|
+
},
|
|
2773
|
+
{
|
|
2774
|
+
id: 309,
|
|
2775
|
+
mass: 6500,
|
|
2776
|
+
type: "resource",
|
|
2777
|
+
tier: 9,
|
|
2778
|
+
category: "gas"
|
|
2779
|
+
},
|
|
2780
|
+
{
|
|
2781
|
+
id: 310,
|
|
2782
|
+
mass: 6000,
|
|
2783
|
+
type: "resource",
|
|
2784
|
+
tier: 10,
|
|
2785
|
+
category: "gas"
|
|
2786
|
+
},
|
|
2583
2787
|
{
|
|
2584
2788
|
id: 401,
|
|
2585
2789
|
mass: 22000,
|
|
@@ -2601,6 +2805,55 @@ var items = [
|
|
|
2601
2805
|
tier: 3,
|
|
2602
2806
|
category: "regolith"
|
|
2603
2807
|
},
|
|
2808
|
+
{
|
|
2809
|
+
id: 404,
|
|
2810
|
+
mass: 32000,
|
|
2811
|
+
type: "resource",
|
|
2812
|
+
tier: 4,
|
|
2813
|
+
category: "regolith"
|
|
2814
|
+
},
|
|
2815
|
+
{
|
|
2816
|
+
id: 405,
|
|
2817
|
+
mass: 36000,
|
|
2818
|
+
type: "resource",
|
|
2819
|
+
tier: 5,
|
|
2820
|
+
category: "regolith"
|
|
2821
|
+
},
|
|
2822
|
+
{
|
|
2823
|
+
id: 406,
|
|
2824
|
+
mass: 40500,
|
|
2825
|
+
type: "resource",
|
|
2826
|
+
tier: 6,
|
|
2827
|
+
category: "regolith"
|
|
2828
|
+
},
|
|
2829
|
+
{
|
|
2830
|
+
id: 407,
|
|
2831
|
+
mass: 46000,
|
|
2832
|
+
type: "resource",
|
|
2833
|
+
tier: 7,
|
|
2834
|
+
category: "regolith"
|
|
2835
|
+
},
|
|
2836
|
+
{
|
|
2837
|
+
id: 408,
|
|
2838
|
+
mass: 52000,
|
|
2839
|
+
type: "resource",
|
|
2840
|
+
tier: 8,
|
|
2841
|
+
category: "regolith"
|
|
2842
|
+
},
|
|
2843
|
+
{
|
|
2844
|
+
id: 409,
|
|
2845
|
+
mass: 58500,
|
|
2846
|
+
type: "resource",
|
|
2847
|
+
tier: 9,
|
|
2848
|
+
category: "regolith"
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
id: 410,
|
|
2852
|
+
mass: 66000,
|
|
2853
|
+
type: "resource",
|
|
2854
|
+
tier: 10,
|
|
2855
|
+
category: "regolith"
|
|
2856
|
+
},
|
|
2604
2857
|
{
|
|
2605
2858
|
id: 501,
|
|
2606
2859
|
mass: 42000,
|
|
@@ -2622,6 +2875,55 @@ var items = [
|
|
|
2622
2875
|
tier: 3,
|
|
2623
2876
|
category: "biomass"
|
|
2624
2877
|
},
|
|
2878
|
+
{
|
|
2879
|
+
id: 504,
|
|
2880
|
+
mass: 29000,
|
|
2881
|
+
type: "resource",
|
|
2882
|
+
tier: 4,
|
|
2883
|
+
category: "biomass"
|
|
2884
|
+
},
|
|
2885
|
+
{
|
|
2886
|
+
id: 505,
|
|
2887
|
+
mass: 26000,
|
|
2888
|
+
type: "resource",
|
|
2889
|
+
tier: 5,
|
|
2890
|
+
category: "biomass"
|
|
2891
|
+
},
|
|
2892
|
+
{
|
|
2893
|
+
id: 506,
|
|
2894
|
+
mass: 23000,
|
|
2895
|
+
type: "resource",
|
|
2896
|
+
tier: 6,
|
|
2897
|
+
category: "biomass"
|
|
2898
|
+
},
|
|
2899
|
+
{
|
|
2900
|
+
id: 507,
|
|
2901
|
+
mass: 20000,
|
|
2902
|
+
type: "resource",
|
|
2903
|
+
tier: 7,
|
|
2904
|
+
category: "biomass"
|
|
2905
|
+
},
|
|
2906
|
+
{
|
|
2907
|
+
id: 508,
|
|
2908
|
+
mass: 18000,
|
|
2909
|
+
type: "resource",
|
|
2910
|
+
tier: 8,
|
|
2911
|
+
category: "biomass"
|
|
2912
|
+
},
|
|
2913
|
+
{
|
|
2914
|
+
id: 509,
|
|
2915
|
+
mass: 16000,
|
|
2916
|
+
type: "resource",
|
|
2917
|
+
tier: 9,
|
|
2918
|
+
category: "biomass"
|
|
2919
|
+
},
|
|
2920
|
+
{
|
|
2921
|
+
id: 510,
|
|
2922
|
+
mass: 14000,
|
|
2923
|
+
type: "resource",
|
|
2924
|
+
tier: 10,
|
|
2925
|
+
category: "biomass"
|
|
2926
|
+
},
|
|
2625
2927
|
{
|
|
2626
2928
|
id: 10001,
|
|
2627
2929
|
mass: 50000,
|
|
@@ -3184,10 +3486,6 @@ var recipes = [
|
|
|
3184
3486
|
},
|
|
3185
3487
|
{
|
|
3186
3488
|
sources: [
|
|
3187
|
-
{
|
|
3188
|
-
inputIndex: 1,
|
|
3189
|
-
statIndex: 1
|
|
3190
|
-
}
|
|
3191
3489
|
]
|
|
3192
3490
|
},
|
|
3193
3491
|
{
|
|
@@ -3227,8 +3525,8 @@ var recipes = [
|
|
|
3227
3525
|
{
|
|
3228
3526
|
sources: [
|
|
3229
3527
|
{
|
|
3230
|
-
inputIndex:
|
|
3231
|
-
statIndex:
|
|
3528
|
+
inputIndex: 1,
|
|
3529
|
+
statIndex: 1
|
|
3232
3530
|
}
|
|
3233
3531
|
]
|
|
3234
3532
|
},
|
|
@@ -3346,7 +3644,7 @@ var recipes = [
|
|
|
3346
3644
|
sources: [
|
|
3347
3645
|
{
|
|
3348
3646
|
inputIndex: 0,
|
|
3349
|
-
statIndex:
|
|
3647
|
+
statIndex: 1
|
|
3350
3648
|
}
|
|
3351
3649
|
]
|
|
3352
3650
|
},
|
|
@@ -3362,16 +3660,12 @@ var recipes = [
|
|
|
3362
3660
|
sources: [
|
|
3363
3661
|
{
|
|
3364
3662
|
inputIndex: 0,
|
|
3365
|
-
statIndex:
|
|
3663
|
+
statIndex: 0
|
|
3366
3664
|
}
|
|
3367
3665
|
]
|
|
3368
3666
|
},
|
|
3369
3667
|
{
|
|
3370
3668
|
sources: [
|
|
3371
|
-
{
|
|
3372
|
-
inputIndex: 1,
|
|
3373
|
-
statIndex: 1
|
|
3374
|
-
}
|
|
3375
3669
|
]
|
|
3376
3670
|
}
|
|
3377
3671
|
],
|
|
@@ -3825,6 +4119,7 @@ const itemAbbreviations = {
|
|
|
3825
4119
|
10103: 'LD',
|
|
3826
4120
|
10104: 'MF',
|
|
3827
4121
|
10105: 'ST',
|
|
4122
|
+
10106: 'HL',
|
|
3828
4123
|
10107: 'WP',
|
|
3829
4124
|
10200: 'CT',
|
|
3830
4125
|
10201: 'SH',
|
|
@@ -3842,6 +4137,13 @@ const itemMetadata = {
|
|
|
3842
4137
|
description: 'High-grade metallic ore with exceptional density.',
|
|
3843
4138
|
color: '#C26D3F',
|
|
3844
4139
|
},
|
|
4140
|
+
104: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4141
|
+
105: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4142
|
+
106: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4143
|
+
107: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4144
|
+
108: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4145
|
+
109: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
4146
|
+
110: { name: 'Ore', description: '', color: '#C26D3F' },
|
|
3845
4147
|
201: { name: 'Crystal', description: 'Raw resonant crystal.', color: '#4ADBFF' },
|
|
3846
4148
|
202: {
|
|
3847
4149
|
name: 'Crystal',
|
|
@@ -3853,6 +4155,13 @@ const itemMetadata = {
|
|
|
3853
4155
|
description: 'High-grade resonant crystal with exceptional purity.',
|
|
3854
4156
|
color: '#4ADBFF',
|
|
3855
4157
|
},
|
|
4158
|
+
204: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4159
|
+
205: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4160
|
+
206: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4161
|
+
207: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4162
|
+
208: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4163
|
+
209: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4164
|
+
210: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
3856
4165
|
301: { name: 'Gas', description: 'Raw volatile gas.', color: '#B8E4A0' },
|
|
3857
4166
|
302: {
|
|
3858
4167
|
name: 'Gas',
|
|
@@ -3864,6 +4173,13 @@ const itemMetadata = {
|
|
|
3864
4173
|
description: 'High-grade volatile gas with exceptional energy density.',
|
|
3865
4174
|
color: '#B8E4A0',
|
|
3866
4175
|
},
|
|
4176
|
+
304: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4177
|
+
305: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4178
|
+
306: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4179
|
+
307: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4180
|
+
308: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4181
|
+
309: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
4182
|
+
310: { name: 'Gas', description: '', color: '#B8E4A0' },
|
|
3867
4183
|
401: { name: 'Regolith', description: 'Crude regolith dust.', color: '#C4A57B' },
|
|
3868
4184
|
402: {
|
|
3869
4185
|
name: 'Regolith',
|
|
@@ -3875,6 +4191,13 @@ const itemMetadata = {
|
|
|
3875
4191
|
description: 'High-grade regolith with exceptional uniformity.',
|
|
3876
4192
|
color: '#C4A57B',
|
|
3877
4193
|
},
|
|
4194
|
+
404: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4195
|
+
405: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4196
|
+
406: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4197
|
+
407: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4198
|
+
408: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4199
|
+
409: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
4200
|
+
410: { name: 'Regolith', description: '', color: '#C4A57B' },
|
|
3878
4201
|
501: { name: 'Biomass', description: 'Crude organic biomass.', color: '#5A8B3E' },
|
|
3879
4202
|
502: {
|
|
3880
4203
|
name: 'Biomass',
|
|
@@ -3886,6 +4209,13 @@ const itemMetadata = {
|
|
|
3886
4209
|
description: 'High-grade biomass with exceptional saturation.',
|
|
3887
4210
|
color: '#5A8B3E',
|
|
3888
4211
|
},
|
|
4212
|
+
504: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4213
|
+
505: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4214
|
+
506: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4215
|
+
507: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4216
|
+
508: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4217
|
+
509: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
4218
|
+
510: { name: 'Biomass', description: '', color: '#5A8B3E' },
|
|
3889
4219
|
10001: {
|
|
3890
4220
|
name: 'Hull Plates',
|
|
3891
4221
|
description: 'Structural plating formed from ore. Used in hulls, containers, and frames.',
|
|
@@ -4180,10 +4510,15 @@ function hash512(seed, string) {
|
|
|
4180
4510
|
}
|
|
4181
4511
|
|
|
4182
4512
|
const DEPTH_THRESHOLD_T1 = 0;
|
|
4183
|
-
const DEPTH_THRESHOLD_T2 =
|
|
4184
|
-
const DEPTH_THRESHOLD_T3 =
|
|
4185
|
-
const DEPTH_THRESHOLD_T4 =
|
|
4186
|
-
const DEPTH_THRESHOLD_T5 =
|
|
4513
|
+
const DEPTH_THRESHOLD_T2 = 1500;
|
|
4514
|
+
const DEPTH_THRESHOLD_T3 = 5000;
|
|
4515
|
+
const DEPTH_THRESHOLD_T4 = 12000;
|
|
4516
|
+
const DEPTH_THRESHOLD_T5 = 22000;
|
|
4517
|
+
const DEPTH_THRESHOLD_T6 = 32000;
|
|
4518
|
+
const DEPTH_THRESHOLD_T7 = 42000;
|
|
4519
|
+
const DEPTH_THRESHOLD_T8 = 50000;
|
|
4520
|
+
const DEPTH_THRESHOLD_T9 = 57000;
|
|
4521
|
+
const DEPTH_THRESHOLD_T10 = 63000;
|
|
4187
4522
|
const LOCATION_MIN_DEPTH = 500;
|
|
4188
4523
|
const LOCATION_MAX_DEPTH = 65535;
|
|
4189
4524
|
const YIELD_THRESHOLD = Math.floor(0.001 * 0xffffffff);
|
|
@@ -4193,19 +4528,22 @@ const PLANET_SUBTYPE_TERRESTRIAL = 2;
|
|
|
4193
4528
|
const PLANET_SUBTYPE_ICY = 3;
|
|
4194
4529
|
const PLANET_SUBTYPE_OCEAN = 4;
|
|
4195
4530
|
const PLANET_SUBTYPE_INDUSTRIAL = 5;
|
|
4531
|
+
const DEPTH_THRESHOLD_TABLE = [
|
|
4532
|
+
DEPTH_THRESHOLD_T1,
|
|
4533
|
+
DEPTH_THRESHOLD_T2,
|
|
4534
|
+
DEPTH_THRESHOLD_T3,
|
|
4535
|
+
DEPTH_THRESHOLD_T4,
|
|
4536
|
+
DEPTH_THRESHOLD_T5,
|
|
4537
|
+
DEPTH_THRESHOLD_T6,
|
|
4538
|
+
DEPTH_THRESHOLD_T7,
|
|
4539
|
+
DEPTH_THRESHOLD_T8,
|
|
4540
|
+
DEPTH_THRESHOLD_T9,
|
|
4541
|
+
DEPTH_THRESHOLD_T10,
|
|
4542
|
+
];
|
|
4196
4543
|
function getDepthThreshold(tier) {
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
case 2:
|
|
4201
|
-
return DEPTH_THRESHOLD_T2;
|
|
4202
|
-
case 3:
|
|
4203
|
-
return DEPTH_THRESHOLD_T3;
|
|
4204
|
-
case 4:
|
|
4205
|
-
return DEPTH_THRESHOLD_T4;
|
|
4206
|
-
default:
|
|
4207
|
-
return DEPTH_THRESHOLD_T5;
|
|
4208
|
-
}
|
|
4544
|
+
if (tier < 1 || tier > 10)
|
|
4545
|
+
return 65535;
|
|
4546
|
+
return DEPTH_THRESHOLD_TABLE[tier - 1];
|
|
4209
4547
|
}
|
|
4210
4548
|
function getResourceTier(itemId) {
|
|
4211
4549
|
return getItem(itemId).tier;
|
|
@@ -4218,11 +4556,11 @@ function getResourceWeight(itemId, stratum) {
|
|
|
4218
4556
|
const depthAbove = stratum - threshold;
|
|
4219
4557
|
switch (tier) {
|
|
4220
4558
|
case 1:
|
|
4221
|
-
if (stratum <
|
|
4559
|
+
if (stratum < DEPTH_THRESHOLD_T2)
|
|
4222
4560
|
return 100;
|
|
4223
|
-
if (stratum <
|
|
4561
|
+
if (stratum < DEPTH_THRESHOLD_T3)
|
|
4224
4562
|
return 80;
|
|
4225
|
-
if (stratum <
|
|
4563
|
+
if (stratum < DEPTH_THRESHOLD_T4)
|
|
4226
4564
|
return 50;
|
|
4227
4565
|
return 30;
|
|
4228
4566
|
case 2:
|
|
@@ -6697,6 +7035,40 @@ function lerp$1(origin, destination, time) {
|
|
|
6697
7035
|
y: (1 - time) * Number(origin.y) + time * Number(destination.y),
|
|
6698
7036
|
};
|
|
6699
7037
|
}
|
|
7038
|
+
function easeFlightProgress(t) {
|
|
7039
|
+
if (t <= 0)
|
|
7040
|
+
return 0;
|
|
7041
|
+
if (t >= 1)
|
|
7042
|
+
return 1;
|
|
7043
|
+
return t < 0.5 ? 2 * t * t : 1 - 2 * (1 - t) * (1 - t);
|
|
7044
|
+
}
|
|
7045
|
+
function flightSpeedFactor(t) {
|
|
7046
|
+
if (t <= 0 || t >= 1)
|
|
7047
|
+
return 0;
|
|
7048
|
+
return t < 0.5 ? 4 * t : 4 * (1 - t);
|
|
7049
|
+
}
|
|
7050
|
+
function interpolateFlightPosition(origin, destination, taskProgress, options) {
|
|
7051
|
+
const t = options?.easing === 'linear' ? taskProgress : easeFlightProgress(taskProgress);
|
|
7052
|
+
return {
|
|
7053
|
+
x: (1 - t) * Number(origin.x) + t * Number(destination.x),
|
|
7054
|
+
y: (1 - t) * Number(origin.y) + t * Number(destination.y),
|
|
7055
|
+
};
|
|
7056
|
+
}
|
|
7057
|
+
function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
7058
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0) {
|
|
7059
|
+
return { x: Number(entity.coordinates.x), y: Number(entity.coordinates.y) };
|
|
7060
|
+
}
|
|
7061
|
+
if (taskIndex < 0) {
|
|
7062
|
+
const settled = getFlightOrigin(entity, entity.schedule.tasks.length);
|
|
7063
|
+
return { x: Number(settled.x), y: Number(settled.y) };
|
|
7064
|
+
}
|
|
7065
|
+
const task = entity.schedule.tasks[taskIndex];
|
|
7066
|
+
if (!task.type.equals(exports.TaskType.TRAVEL) || !task.coordinates) {
|
|
7067
|
+
const origin = getFlightOrigin(entity, taskIndex);
|
|
7068
|
+
return { x: Number(origin.x), y: Number(origin.y) };
|
|
7069
|
+
}
|
|
7070
|
+
return interpolateFlightPosition(getFlightOrigin(entity, taskIndex), task.coordinates, taskProgress);
|
|
7071
|
+
}
|
|
6700
7072
|
function rotation(origin, destination) {
|
|
6701
7073
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
6702
7074
|
}
|
|
@@ -6906,9 +7278,12 @@ function getDestinationLocation(entity) {
|
|
|
6906
7278
|
return undefined;
|
|
6907
7279
|
}
|
|
6908
7280
|
function getPositionAt(entity, taskIndex, taskProgress) {
|
|
6909
|
-
if (!entity.schedule || entity.schedule.tasks.length === 0
|
|
7281
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0) {
|
|
6910
7282
|
return entity.coordinates;
|
|
6911
7283
|
}
|
|
7284
|
+
if (taskIndex < 0) {
|
|
7285
|
+
return getFlightOrigin(entity, entity.schedule.tasks.length);
|
|
7286
|
+
}
|
|
6912
7287
|
const task = entity.schedule.tasks[taskIndex];
|
|
6913
7288
|
if (!task.type.equals(exports.TaskType.TRAVEL) || !task.coordinates) {
|
|
6914
7289
|
return getFlightOrigin(entity, taskIndex);
|
|
@@ -7137,7 +7512,7 @@ function currentTaskIndex(entity, now) {
|
|
|
7137
7512
|
}
|
|
7138
7513
|
timeAccum += taskDuration;
|
|
7139
7514
|
}
|
|
7140
|
-
return
|
|
7515
|
+
return -1;
|
|
7141
7516
|
}
|
|
7142
7517
|
function currentTask(entity, now) {
|
|
7143
7518
|
const index = currentTaskIndex(entity, now);
|
|
@@ -7203,6 +7578,23 @@ function currentTaskProgress(entity, now) {
|
|
|
7203
7578
|
return 1;
|
|
7204
7579
|
return Math.min(1, elapsed / duration);
|
|
7205
7580
|
}
|
|
7581
|
+
function currentTaskProgressFloat(entity, now) {
|
|
7582
|
+
if (!entity.schedule || entity.schedule.tasks.length === 0)
|
|
7583
|
+
return 0;
|
|
7584
|
+
const index = currentTaskIndex(entity, now);
|
|
7585
|
+
if (index < 0)
|
|
7586
|
+
return 0;
|
|
7587
|
+
const task = entity.schedule.tasks[index];
|
|
7588
|
+
const durationMs = task.duration.toNumber() * 1000;
|
|
7589
|
+
if (durationMs === 0)
|
|
7590
|
+
return 1;
|
|
7591
|
+
const startedMs = entity.schedule.started.toDate().getTime();
|
|
7592
|
+
const taskStartMs = startedMs + getTaskStartTime(entity, index) * 1000;
|
|
7593
|
+
const elapsedMs = now.getTime() - taskStartMs;
|
|
7594
|
+
if (elapsedMs <= 0)
|
|
7595
|
+
return 0;
|
|
7596
|
+
return Math.min(1, elapsedMs / durationMs);
|
|
7597
|
+
}
|
|
7206
7598
|
function scheduleProgress(entity, now) {
|
|
7207
7599
|
const duration = scheduleDuration(entity);
|
|
7208
7600
|
if (duration === 0)
|
|
@@ -7247,6 +7639,7 @@ var schedule = /*#__PURE__*/Object.freeze({
|
|
|
7247
7639
|
isTaskComplete: isTaskComplete,
|
|
7248
7640
|
isTaskInProgress: isTaskInProgress,
|
|
7249
7641
|
currentTaskProgress: currentTaskProgress,
|
|
7642
|
+
currentTaskProgressFloat: currentTaskProgressFloat,
|
|
7250
7643
|
scheduleProgress: scheduleProgress,
|
|
7251
7644
|
isTaskType: isTaskType,
|
|
7252
7645
|
isInFlight: isInFlight,
|
|
@@ -7427,6 +7820,10 @@ function applyTask(projected, task) {
|
|
|
7427
7820
|
case exports.TaskType.DEPLOY:
|
|
7428
7821
|
applyDeployTask(projected, task);
|
|
7429
7822
|
break;
|
|
7823
|
+
case exports.TaskType.UNDEPLOY:
|
|
7824
|
+
case exports.TaskType.WRAP_ENTITY:
|
|
7825
|
+
case exports.TaskType.DEMOLISH:
|
|
7826
|
+
break;
|
|
7430
7827
|
}
|
|
7431
7828
|
}
|
|
7432
7829
|
function projectEntity(entity, options) {
|
|
@@ -7592,6 +7989,10 @@ function projectEntityAt(entity, now) {
|
|
|
7592
7989
|
if (taskComplete)
|
|
7593
7990
|
applyDeployTask(projected, task);
|
|
7594
7991
|
break;
|
|
7992
|
+
case exports.TaskType.UNDEPLOY:
|
|
7993
|
+
case exports.TaskType.WRAP_ENTITY:
|
|
7994
|
+
case exports.TaskType.DEMOLISH:
|
|
7995
|
+
break;
|
|
7595
7996
|
}
|
|
7596
7997
|
}
|
|
7597
7998
|
return projected;
|
|
@@ -7695,6 +8096,9 @@ class ScheduleAccessor {
|
|
|
7695
8096
|
currentTaskProgress(now) {
|
|
7696
8097
|
return currentTaskProgress(this.entity, now);
|
|
7697
8098
|
}
|
|
8099
|
+
currentTaskProgressFloat(now) {
|
|
8100
|
+
return currentTaskProgressFloat(this.entity, now);
|
|
8101
|
+
}
|
|
7698
8102
|
progress(now) {
|
|
7699
8103
|
return scheduleProgress(this.entity, now);
|
|
7700
8104
|
}
|
|
@@ -7783,6 +8187,12 @@ class Ship extends exports.ServerTypes.entity_info {
|
|
|
7783
8187
|
get name() {
|
|
7784
8188
|
return this.entity_name;
|
|
7785
8189
|
}
|
|
8190
|
+
get entityClass() {
|
|
8191
|
+
return 'mobile';
|
|
8192
|
+
}
|
|
8193
|
+
get canUndeploy() {
|
|
8194
|
+
return true;
|
|
8195
|
+
}
|
|
7786
8196
|
get inv() {
|
|
7787
8197
|
this._inv ?? (this._inv = new InventoryAccessor(this));
|
|
7788
8198
|
return this._inv;
|
|
@@ -7814,6 +8224,11 @@ class Ship extends exports.ServerTypes.entity_info {
|
|
|
7814
8224
|
const progress = this.sched.currentTaskProgress(now);
|
|
7815
8225
|
return Coordinates.from(getPositionAt(this, taskIndex, progress));
|
|
7816
8226
|
}
|
|
8227
|
+
interpolatedPositionAt(now) {
|
|
8228
|
+
const taskIndex = this.sched.currentTaskIndex(now);
|
|
8229
|
+
const progress = this.sched.currentTaskProgressFloat(now);
|
|
8230
|
+
return getInterpolatedPosition(this, taskIndex, progress);
|
|
8231
|
+
}
|
|
7817
8232
|
isInFlight(now) {
|
|
7818
8233
|
return isInFlight(this, now);
|
|
7819
8234
|
}
|
|
@@ -8499,10 +8914,10 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
8499
8914
|
}
|
|
8500
8915
|
|
|
8501
8916
|
function computeShipHullCapabilities(stats) {
|
|
8502
|
-
const density = stats.density
|
|
8503
|
-
const strength = stats.strength
|
|
8504
|
-
const hardness = stats.hardness
|
|
8505
|
-
const saturation = stats.saturation
|
|
8917
|
+
const density = stats.density;
|
|
8918
|
+
const strength = stats.strength;
|
|
8919
|
+
const hardness = stats.hardness;
|
|
8920
|
+
const saturation = stats.saturation;
|
|
8506
8921
|
const hullmass = 25000 + 75 * density;
|
|
8507
8922
|
const statSum = strength + hardness + saturation;
|
|
8508
8923
|
const exponent = statSum / 2997.0;
|
|
@@ -8510,73 +8925,94 @@ function computeShipHullCapabilities(stats) {
|
|
|
8510
8925
|
return { hullmass, capacity };
|
|
8511
8926
|
}
|
|
8512
8927
|
function computeEngineCapabilities(stats) {
|
|
8513
|
-
const vol = stats.volatility
|
|
8514
|
-
const thm = stats.thermal
|
|
8928
|
+
const vol = stats.volatility;
|
|
8929
|
+
const thm = stats.thermal;
|
|
8515
8930
|
return {
|
|
8516
8931
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
8517
8932
|
drain: Math.max(30, 50 - Math.floor(thm / 70)),
|
|
8518
8933
|
};
|
|
8519
8934
|
}
|
|
8520
8935
|
function computeGeneratorCapabilities(stats) {
|
|
8521
|
-
const
|
|
8522
|
-
const
|
|
8936
|
+
const com = stats.composition;
|
|
8937
|
+
const fin = stats.fineness;
|
|
8523
8938
|
return {
|
|
8524
|
-
capacity: 300 + Math.floor(
|
|
8525
|
-
recharge: 1 + Math.floor((
|
|
8526
|
-
};
|
|
8527
|
-
}
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8939
|
+
capacity: 300 + Math.floor(com / 6),
|
|
8940
|
+
recharge: 1 + Math.floor((fin * 3) / 1000),
|
|
8941
|
+
};
|
|
8942
|
+
}
|
|
8943
|
+
const GATHERER_DEPTH_TABLE = [
|
|
8944
|
+
{ floor: 500, slope: 5 },
|
|
8945
|
+
{ floor: 2000, slope: 11 },
|
|
8946
|
+
{ floor: 7000, slope: 16 },
|
|
8947
|
+
{ floor: 15000, slope: 18 },
|
|
8948
|
+
{ floor: 25000, slope: 19 },
|
|
8949
|
+
{ floor: 35000, slope: 16 },
|
|
8950
|
+
{ floor: 46000, slope: 12 },
|
|
8951
|
+
{ floor: 53500, slope: 10 },
|
|
8952
|
+
{ floor: 60000, slope: 5 },
|
|
8953
|
+
{ floor: 63500, slope: 2 },
|
|
8954
|
+
];
|
|
8955
|
+
const GATHERER_DEPTH_MAX_TIER = 10;
|
|
8956
|
+
function gathererDepthForTier(tol, tier) {
|
|
8957
|
+
if (tier < 1 || tier > GATHERER_DEPTH_MAX_TIER) {
|
|
8958
|
+
throw new Error(`gatherer tier out of range: ${tier}`);
|
|
8959
|
+
}
|
|
8960
|
+
const p = GATHERER_DEPTH_TABLE[tier - 1];
|
|
8961
|
+
return p.floor + tol * p.slope;
|
|
8962
|
+
}
|
|
8963
|
+
function computeGathererCapabilities(stats, tier) {
|
|
8964
|
+
const str = stats.strength;
|
|
8965
|
+
const con = stats.conductivity;
|
|
8966
|
+
const ref = stats.reflectivity;
|
|
8967
|
+
const tol = stats.tolerance;
|
|
8533
8968
|
return {
|
|
8534
8969
|
yield: 200 + str,
|
|
8535
8970
|
drain: Math.max(250, 1250 - Math.floor((con * 25) / 20)),
|
|
8536
|
-
depth:
|
|
8971
|
+
depth: gathererDepthForTier(tol, tier),
|
|
8537
8972
|
speed: 100 + Math.floor((ref * 4) / 5),
|
|
8538
8973
|
};
|
|
8539
8974
|
}
|
|
8540
8975
|
function computeLoaderCapabilities(stats) {
|
|
8541
|
-
const
|
|
8542
|
-
const
|
|
8976
|
+
const insulation = stats.insulation;
|
|
8977
|
+
const plasticity = stats.plasticity;
|
|
8543
8978
|
return {
|
|
8544
|
-
mass: Math.max(200, 2000 - Math.floor(
|
|
8545
|
-
thrust: 1 + Math.floor(
|
|
8979
|
+
mass: Math.max(200, 2000 - Math.floor(insulation * 2)),
|
|
8980
|
+
thrust: 1 + Math.floor(plasticity / 500),
|
|
8546
8981
|
quantity: 1,
|
|
8547
8982
|
};
|
|
8548
8983
|
}
|
|
8549
8984
|
function computeCrafterCapabilities(stats) {
|
|
8550
|
-
const rea = stats.reactivity
|
|
8551
|
-
const
|
|
8985
|
+
const rea = stats.reactivity;
|
|
8986
|
+
const fin = stats.fineness;
|
|
8552
8987
|
return {
|
|
8553
8988
|
speed: 100 + Math.floor((rea * 4) / 5),
|
|
8554
|
-
drain: Math.max(5, 30 - Math.floor(
|
|
8989
|
+
drain: Math.max(5, 30 - Math.floor(fin / 33)),
|
|
8555
8990
|
};
|
|
8556
8991
|
}
|
|
8557
8992
|
function computeHaulerCapabilities(stats) {
|
|
8558
|
-
const
|
|
8559
|
-
const
|
|
8560
|
-
const
|
|
8993
|
+
const fineness = stats.fineness;
|
|
8994
|
+
const conductivity = stats.conductivity;
|
|
8995
|
+
const composition = stats.composition;
|
|
8561
8996
|
return {
|
|
8562
|
-
capacity: Math.max(1, 1 + Math.floor(
|
|
8563
|
-
efficiency: 2000 +
|
|
8564
|
-
drain: Math.max(3, 15 - Math.floor(
|
|
8997
|
+
capacity: Math.max(1, 1 + Math.floor(fineness / 400)),
|
|
8998
|
+
efficiency: 2000 + conductivity * 6,
|
|
8999
|
+
drain: Math.max(3, 15 - Math.floor(composition / 80)),
|
|
8565
9000
|
};
|
|
8566
9001
|
}
|
|
8567
9002
|
function computeStorageCapabilities(stats, baseCapacity) {
|
|
8568
|
-
const strength = stats.strength
|
|
8569
|
-
const
|
|
8570
|
-
const
|
|
8571
|
-
const
|
|
9003
|
+
const strength = stats.strength;
|
|
9004
|
+
const density = stats.density;
|
|
9005
|
+
const hardness = stats.hardness;
|
|
9006
|
+
const saturation = stats.saturation;
|
|
9007
|
+
const statSum = strength + density + hardness + saturation;
|
|
8572
9008
|
const capacityBonus = Math.floor((baseCapacity * (10 + Math.floor((statSum * 10) / 2997))) / 100);
|
|
8573
9009
|
return { capacityBonus };
|
|
8574
9010
|
}
|
|
8575
9011
|
function computeWarehouseHullCapabilities(stats) {
|
|
8576
|
-
const density = stats.density
|
|
8577
|
-
const strength = stats.strength
|
|
8578
|
-
const hardness = stats.hardness
|
|
8579
|
-
const saturation = stats.saturation
|
|
9012
|
+
const density = stats.density;
|
|
9013
|
+
const strength = stats.strength;
|
|
9014
|
+
const hardness = stats.hardness;
|
|
9015
|
+
const saturation = stats.saturation;
|
|
8580
9016
|
const hullmass = 25000 + 75 * density;
|
|
8581
9017
|
const statSum = strength + hardness + saturation;
|
|
8582
9018
|
const exponent = statSum / 2997.0;
|
|
@@ -8611,16 +9047,18 @@ function computeShipCapabilities(modules) {
|
|
|
8611
9047
|
if (gathererModules.length > 0) {
|
|
8612
9048
|
let totalYield = 0;
|
|
8613
9049
|
let totalDrain = 0;
|
|
8614
|
-
let
|
|
9050
|
+
let maxDepth = 0;
|
|
8615
9051
|
let totalSpeed = 0;
|
|
8616
9052
|
for (const m of gathererModules) {
|
|
8617
|
-
const
|
|
9053
|
+
const tier = getItem(m.itemId).tier;
|
|
9054
|
+
const caps = computeGathererCapabilities(decodeCraftedItemStats(m.itemId, m.stats), tier);
|
|
8618
9055
|
totalYield += caps.yield;
|
|
8619
9056
|
totalDrain += caps.drain;
|
|
8620
|
-
|
|
9057
|
+
if (caps.depth > maxDepth)
|
|
9058
|
+
maxDepth = caps.depth;
|
|
8621
9059
|
totalSpeed += caps.speed;
|
|
8622
9060
|
}
|
|
8623
|
-
ship.gatherer = { yield: totalYield, drain: totalDrain, depth:
|
|
9061
|
+
ship.gatherer = { yield: totalYield, drain: totalDrain, depth: maxDepth, speed: totalSpeed };
|
|
8624
9062
|
}
|
|
8625
9063
|
const haulerModules = modules.filter((m) => getModuleCapabilityType(m.itemId) === MODULE_HAULER);
|
|
8626
9064
|
if (haulerModules.length > 0) {
|
|
@@ -8670,6 +9108,12 @@ class Warehouse extends exports.ServerTypes.entity_info {
|
|
|
8670
9108
|
get name() {
|
|
8671
9109
|
return this.entity_name;
|
|
8672
9110
|
}
|
|
9111
|
+
get entityClass() {
|
|
9112
|
+
return 'building';
|
|
9113
|
+
}
|
|
9114
|
+
get canDemolish() {
|
|
9115
|
+
return true;
|
|
9116
|
+
}
|
|
8673
9117
|
get inv() {
|
|
8674
9118
|
this._inv ?? (this._inv = new InventoryAccessor(this));
|
|
8675
9119
|
return this._inv;
|
|
@@ -8742,6 +9186,12 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8742
9186
|
get name() {
|
|
8743
9187
|
return this.entity_name;
|
|
8744
9188
|
}
|
|
9189
|
+
get entityClass() {
|
|
9190
|
+
return 'mobile';
|
|
9191
|
+
}
|
|
9192
|
+
get canUndeploy() {
|
|
9193
|
+
return true;
|
|
9194
|
+
}
|
|
8745
9195
|
get sched() {
|
|
8746
9196
|
this._sched ?? (this._sched = new ScheduleAccessor(this));
|
|
8747
9197
|
return this._sched;
|
|
@@ -8749,6 +9199,11 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8749
9199
|
get isIdle() {
|
|
8750
9200
|
return this.is_idle;
|
|
8751
9201
|
}
|
|
9202
|
+
interpolatedPositionAt(now) {
|
|
9203
|
+
const taskIndex = this.sched.currentTaskIndex(now);
|
|
9204
|
+
const progress = this.sched.currentTaskProgressFloat(now);
|
|
9205
|
+
return getInterpolatedPosition(this, taskIndex, progress);
|
|
9206
|
+
}
|
|
8752
9207
|
isLoading(now) {
|
|
8753
9208
|
return isLoading(this, now);
|
|
8754
9209
|
}
|
|
@@ -8779,10 +9234,10 @@ class Container extends exports.ServerTypes.entity_info {
|
|
|
8779
9234
|
}
|
|
8780
9235
|
}
|
|
8781
9236
|
function computeContainerCapabilities(stats) {
|
|
8782
|
-
const density = stats
|
|
8783
|
-
const strength = stats
|
|
8784
|
-
const hardness = stats
|
|
8785
|
-
const saturation = stats
|
|
9237
|
+
const density = stats.density;
|
|
9238
|
+
const strength = stats.strength;
|
|
9239
|
+
const hardness = stats.hardness;
|
|
9240
|
+
const saturation = stats.saturation;
|
|
8786
9241
|
const hullmass = 25000 + 75 * density;
|
|
8787
9242
|
const statSum = strength + hardness + saturation;
|
|
8788
9243
|
const exponent = statSum / 2997;
|
|
@@ -8790,10 +9245,10 @@ function computeContainerCapabilities(stats) {
|
|
|
8790
9245
|
return { hullmass, capacity };
|
|
8791
9246
|
}
|
|
8792
9247
|
function computeContainerT2Capabilities(stats) {
|
|
8793
|
-
const strength = stats
|
|
8794
|
-
const density = stats
|
|
8795
|
-
const hardness = stats
|
|
8796
|
-
const saturation = stats
|
|
9248
|
+
const strength = stats.strength;
|
|
9249
|
+
const density = stats.density;
|
|
9250
|
+
const hardness = stats.hardness;
|
|
9251
|
+
const saturation = stats.saturation;
|
|
8797
9252
|
const hullmass = 20000 + 50 * density;
|
|
8798
9253
|
const statSum = strength + hardness + saturation;
|
|
8799
9254
|
const exponent = statSum / 2500;
|
|
@@ -9146,6 +9601,26 @@ class ActionsManager extends BaseManager {
|
|
|
9146
9601
|
quantity: antelope.UInt64.from(quantity),
|
|
9147
9602
|
});
|
|
9148
9603
|
}
|
|
9604
|
+
undeploy(host, target) {
|
|
9605
|
+
return this.server.action('undeploy', {
|
|
9606
|
+
host_type: antelope.Name.from(host.entityType),
|
|
9607
|
+
host_id: antelope.UInt64.from(host.entityId),
|
|
9608
|
+
target_type: antelope.Name.from(target.entityType),
|
|
9609
|
+
target_id: antelope.UInt64.from(target.entityId),
|
|
9610
|
+
});
|
|
9611
|
+
}
|
|
9612
|
+
wrapEntity(entity) {
|
|
9613
|
+
return this.server.action('wrapentity', {
|
|
9614
|
+
entity_type: antelope.Name.from(entity.entityType),
|
|
9615
|
+
entity_id: antelope.UInt64.from(entity.entityId),
|
|
9616
|
+
});
|
|
9617
|
+
}
|
|
9618
|
+
demolish(entity) {
|
|
9619
|
+
return this.server.action('demolish', {
|
|
9620
|
+
entity_type: antelope.Name.from(entity.entityType),
|
|
9621
|
+
entity_id: antelope.UInt64.from(entity.entityId),
|
|
9622
|
+
});
|
|
9623
|
+
}
|
|
9149
9624
|
joinGame(account, companyName) {
|
|
9150
9625
|
return [this.foundCompany(account, companyName), this.join(account)];
|
|
9151
9626
|
}
|
|
@@ -9421,6 +9896,29 @@ class SubscriptionsManager {
|
|
|
9421
9896
|
this.sendMessage(msg);
|
|
9422
9897
|
return handle;
|
|
9423
9898
|
}
|
|
9899
|
+
subscribeOwner(owner, handlers = {}) {
|
|
9900
|
+
const subId = this.generateSubID('own');
|
|
9901
|
+
const msg = {
|
|
9902
|
+
type: 'subscribe',
|
|
9903
|
+
sub_id: subId,
|
|
9904
|
+
owner,
|
|
9905
|
+
};
|
|
9906
|
+
const handle = {
|
|
9907
|
+
subId,
|
|
9908
|
+
unsubscribe: () => this.unsubscribeBounds(subId),
|
|
9909
|
+
current: new Map(),
|
|
9910
|
+
};
|
|
9911
|
+
this.boundsSubs.set(subId, {
|
|
9912
|
+
bounds: undefined,
|
|
9913
|
+
owner,
|
|
9914
|
+
prioritizeOwner: undefined,
|
|
9915
|
+
onSnapshot: handlers.onSnapshot,
|
|
9916
|
+
onUpdate: handlers.onUpdate,
|
|
9917
|
+
handle,
|
|
9918
|
+
});
|
|
9919
|
+
this.sendMessage(msg);
|
|
9920
|
+
return handle;
|
|
9921
|
+
}
|
|
9424
9922
|
unsubscribeBounds(subId) {
|
|
9425
9923
|
this.boundsSubs.delete(subId);
|
|
9426
9924
|
this.sendMessage({ type: 'unsubscribe', sub_id: subId });
|
|
@@ -9980,7 +10478,7 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
9980
10478
|
HAULER_EFFICIENCY_DENOM);
|
|
9981
10479
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
9982
10480
|
}
|
|
9983
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
10481
|
+
function computeHaulerDrain$1(distance, drain, haulCount) {
|
|
9984
10482
|
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
9985
10483
|
}
|
|
9986
10484
|
|
|
@@ -10130,6 +10628,11 @@ const capabilityNames = [
|
|
|
10130
10628
|
const capabilityAttributes = [
|
|
10131
10629
|
{ capability: 'Hull', attribute: 'mass', description: 'Total mass of the hull' },
|
|
10132
10630
|
{ capability: 'Storage', attribute: 'capacity', description: 'Maximum mass that can be stored' },
|
|
10631
|
+
{
|
|
10632
|
+
capability: 'Storage',
|
|
10633
|
+
attribute: 'bonus',
|
|
10634
|
+
description: 'Capacity bonus added by an installed Storage module',
|
|
10635
|
+
},
|
|
10133
10636
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
10134
10637
|
{ capability: 'Movement', attribute: 'drain', description: 'Energy consumed per movement' },
|
|
10135
10638
|
{ capability: 'Energy', attribute: 'capacity', description: 'Maximum energy storage' },
|
|
@@ -10167,338 +10670,149 @@ const capabilityAttributes = [
|
|
|
10167
10670
|
description: 'Energy consumed per target during haul-beam operation',
|
|
10168
10671
|
},
|
|
10169
10672
|
];
|
|
10170
|
-
const
|
|
10171
|
-
|
|
10172
|
-
|
|
10173
|
-
|
|
10174
|
-
|
|
10175
|
-
|
|
10176
|
-
|
|
10177
|
-
|
|
10178
|
-
|
|
10179
|
-
|
|
10180
|
-
|
|
10181
|
-
|
|
10182
|
-
},
|
|
10183
|
-
{
|
|
10184
|
-
|
|
10185
|
-
|
|
10186
|
-
|
|
10187
|
-
|
|
10188
|
-
|
|
10189
|
-
|
|
10190
|
-
|
|
10191
|
-
capability: 'Movement',
|
|
10192
|
-
attribute: 'thrust',
|
|
10193
|
-
rationale: 'Engine components that tolerate more can push harder',
|
|
10194
|
-
},
|
|
10195
|
-
{
|
|
10196
|
-
stat: 'Tolerance',
|
|
10197
|
-
capability: 'Energy',
|
|
10198
|
-
attribute: 'recharge',
|
|
10199
|
-
rationale: 'Generator housing withstands stress for faster recharge',
|
|
10200
|
-
},
|
|
10201
|
-
{
|
|
10202
|
-
stat: 'Tolerance',
|
|
10203
|
-
capability: 'Gathering',
|
|
10204
|
-
attribute: 'depth',
|
|
10205
|
-
rationale: 'Housing withstands pressure/heat at extreme depths',
|
|
10206
|
-
},
|
|
10207
|
-
{
|
|
10208
|
-
stat: 'Tolerance',
|
|
10209
|
-
capability: 'Warp',
|
|
10210
|
-
attribute: 'range',
|
|
10211
|
-
rationale: 'Warp drive housing withstands extreme forces',
|
|
10212
|
-
},
|
|
10213
|
-
{
|
|
10214
|
-
stat: 'Density',
|
|
10215
|
-
capability: 'Hull',
|
|
10216
|
-
attribute: 'mass',
|
|
10217
|
-
rationale: 'Lighter metal = lighter hull',
|
|
10218
|
-
},
|
|
10219
|
-
{
|
|
10220
|
-
stat: 'Density',
|
|
10221
|
-
capability: 'Loader',
|
|
10222
|
-
attribute: 'mass',
|
|
10223
|
-
rationale: 'Lighter metal = lighter loader units',
|
|
10224
|
-
},
|
|
10225
|
-
{
|
|
10226
|
-
stat: 'Density',
|
|
10227
|
-
capability: 'Movement',
|
|
10228
|
-
attribute: 'drain',
|
|
10229
|
-
rationale: 'Lighter components require less energy to move',
|
|
10230
|
-
},
|
|
10231
|
-
{
|
|
10232
|
-
stat: 'Conductivity',
|
|
10233
|
-
capability: 'Movement',
|
|
10234
|
-
attribute: 'drain',
|
|
10235
|
-
rationale: 'Efficient energy transfer reduces movement energy cost',
|
|
10236
|
-
},
|
|
10237
|
-
{
|
|
10238
|
-
stat: 'Conductivity',
|
|
10239
|
-
capability: 'Gathering',
|
|
10240
|
-
attribute: 'drain',
|
|
10241
|
-
rationale: 'Efficient energy transfer reduces gathering energy cost',
|
|
10242
|
-
},
|
|
10243
|
-
{
|
|
10244
|
-
stat: 'Conductivity',
|
|
10245
|
-
capability: 'Crafter',
|
|
10246
|
-
attribute: 'drain',
|
|
10247
|
-
rationale: 'Efficient energy transfer reduces crafting energy cost',
|
|
10248
|
-
},
|
|
10249
|
-
{
|
|
10250
|
-
stat: 'Conductivity',
|
|
10251
|
-
capability: 'Energy',
|
|
10252
|
-
attribute: 'recharge',
|
|
10253
|
-
rationale: 'Better conductivity speeds energy flow during recharge',
|
|
10254
|
-
},
|
|
10255
|
-
{
|
|
10256
|
-
stat: 'Ductility',
|
|
10257
|
-
capability: 'Crafter',
|
|
10258
|
-
attribute: 'quality',
|
|
10259
|
-
rationale: 'Precise shaping enables tighter crafting tolerances',
|
|
10260
|
-
},
|
|
10261
|
-
{
|
|
10262
|
-
stat: 'Ductility',
|
|
10263
|
-
capability: 'Gathering',
|
|
10264
|
-
attribute: 'yield',
|
|
10265
|
-
rationale: 'Precisely shaped conduit components gather faster',
|
|
10266
|
-
},
|
|
10267
|
-
{
|
|
10268
|
-
stat: 'Ductility',
|
|
10269
|
-
capability: 'Storage',
|
|
10270
|
-
attribute: 'capacity',
|
|
10271
|
-
rationale: 'Precision-formed container walls maximize volume',
|
|
10272
|
-
},
|
|
10273
|
-
{
|
|
10274
|
-
stat: 'Ductility',
|
|
10275
|
-
capability: 'Loader',
|
|
10276
|
-
attribute: 'mass',
|
|
10277
|
-
rationale: 'Precision-formed precious metal reduces loader unit mass',
|
|
10278
|
-
},
|
|
10279
|
-
{
|
|
10280
|
-
stat: 'Reflectivity',
|
|
10281
|
-
capability: 'Gathering',
|
|
10282
|
-
attribute: 'depth',
|
|
10283
|
-
rationale: 'Reflective heat shielding protects equipment at depth',
|
|
10284
|
-
},
|
|
10285
|
-
{
|
|
10286
|
-
stat: 'Reflectivity',
|
|
10287
|
-
capability: 'Launch',
|
|
10288
|
-
attribute: 'range',
|
|
10289
|
-
rationale: 'Reflective surfaces focus electromagnetic launch energy',
|
|
10290
|
-
},
|
|
10291
|
-
{
|
|
10292
|
-
stat: 'Volatility',
|
|
10293
|
-
capability: 'Gathering',
|
|
10294
|
-
attribute: 'yield',
|
|
10295
|
-
rationale: 'Energy release powers faster gathering',
|
|
10296
|
-
},
|
|
10297
|
-
{
|
|
10298
|
-
stat: 'Volatility',
|
|
10299
|
-
capability: 'Movement',
|
|
10300
|
-
attribute: 'thrust',
|
|
10301
|
-
rationale: 'Energy release drives propulsion force',
|
|
10302
|
-
},
|
|
10303
|
-
{
|
|
10304
|
-
stat: 'Volatility',
|
|
10305
|
-
capability: 'Loader',
|
|
10306
|
-
attribute: 'thrust',
|
|
10307
|
-
rationale: 'Energy release powers loader motors',
|
|
10308
|
-
},
|
|
10309
|
-
{
|
|
10310
|
-
stat: 'Volatility',
|
|
10311
|
-
capability: 'Launch',
|
|
10312
|
-
attribute: 'capacity',
|
|
10313
|
-
rationale: 'Energy release enables launching heavier payloads',
|
|
10314
|
-
},
|
|
10315
|
-
{
|
|
10316
|
-
stat: 'Reactivity',
|
|
10317
|
-
capability: 'Crafter',
|
|
10318
|
-
attribute: 'speed',
|
|
10319
|
-
rationale: 'Reactive gases accelerate chemical/thermal processing',
|
|
10320
|
-
},
|
|
10321
|
-
{
|
|
10322
|
-
stat: 'Reactivity',
|
|
10323
|
-
capability: 'Gathering',
|
|
10324
|
-
attribute: 'speed',
|
|
10325
|
-
rationale: 'Reactive gases manage heat/friction during gathering',
|
|
10326
|
-
},
|
|
10327
|
-
{
|
|
10328
|
-
stat: 'Reactivity',
|
|
10329
|
-
capability: 'Launch',
|
|
10330
|
-
attribute: 'drain',
|
|
10331
|
-
rationale: 'Reactive gas medium reduces electromagnetic resistance',
|
|
10332
|
-
},
|
|
10333
|
-
{
|
|
10334
|
-
stat: 'Thermal',
|
|
10335
|
-
capability: 'Crafter',
|
|
10336
|
-
attribute: 'quality',
|
|
10337
|
-
rationale: 'Precise thermal control during fabrication',
|
|
10338
|
-
},
|
|
10339
|
-
{
|
|
10340
|
-
stat: 'Thermal',
|
|
10341
|
-
capability: 'Gathering',
|
|
10342
|
-
attribute: 'drain',
|
|
10343
|
-
rationale: 'Thermal management reduces energy waste during gathering',
|
|
10344
|
-
},
|
|
10345
|
-
{
|
|
10346
|
-
stat: 'Thermal',
|
|
10347
|
-
capability: 'Energy',
|
|
10348
|
-
attribute: 'capacity',
|
|
10349
|
-
rationale: 'Thermal management enables denser energy storage',
|
|
10350
|
-
},
|
|
10351
|
-
{
|
|
10352
|
-
stat: 'Resonance',
|
|
10353
|
-
capability: 'Energy',
|
|
10354
|
-
attribute: 'capacity',
|
|
10355
|
-
rationale: 'Resonating crystals store energy in fields',
|
|
10356
|
-
},
|
|
10357
|
-
{
|
|
10358
|
-
stat: 'Resonance',
|
|
10359
|
-
capability: 'Warp',
|
|
10360
|
-
attribute: 'range',
|
|
10361
|
-
rationale: 'Resonant crystals amplify warp field projection',
|
|
10362
|
-
},
|
|
10363
|
-
{
|
|
10364
|
-
stat: 'Resonance',
|
|
10365
|
-
capability: 'Launch',
|
|
10366
|
-
attribute: 'range',
|
|
10367
|
-
rationale: 'Resonant crystals focus electromagnetic launch field',
|
|
10368
|
-
},
|
|
10369
|
-
{
|
|
10370
|
-
stat: 'Resonance',
|
|
10371
|
-
capability: 'Launch',
|
|
10372
|
-
attribute: 'capacity',
|
|
10373
|
-
rationale: 'Stronger resonant field launches heavier payloads',
|
|
10374
|
-
},
|
|
10375
|
-
{
|
|
10376
|
-
stat: 'Hardness',
|
|
10377
|
-
capability: 'Crafter',
|
|
10378
|
-
attribute: 'speed',
|
|
10379
|
-
rationale: 'Hard tooling surfaces cut and shape materials faster',
|
|
10380
|
-
},
|
|
10381
|
-
{
|
|
10382
|
-
stat: 'Hardness',
|
|
10383
|
-
capability: 'Launch',
|
|
10384
|
-
attribute: 'drain',
|
|
10385
|
-
rationale: 'Hard rail surfaces reduce friction, less energy wasted',
|
|
10386
|
-
},
|
|
10387
|
-
{
|
|
10388
|
-
stat: 'Clarity',
|
|
10389
|
-
capability: 'Energy',
|
|
10390
|
-
attribute: 'recharge',
|
|
10391
|
-
rationale: 'Flawless crystals enable smoother energy flow during recharge',
|
|
10392
|
-
},
|
|
10393
|
-
{
|
|
10394
|
-
stat: 'Clarity',
|
|
10395
|
-
capability: 'Crafter',
|
|
10396
|
-
attribute: 'quality',
|
|
10397
|
-
rationale: 'Precision optics for calibration during fabrication',
|
|
10398
|
-
},
|
|
10399
|
-
{
|
|
10400
|
-
stat: 'Clarity',
|
|
10401
|
-
capability: 'Crafter',
|
|
10402
|
-
attribute: 'drain',
|
|
10403
|
-
rationale: 'Precision computing optimizes energy routing in factory',
|
|
10404
|
-
},
|
|
10405
|
-
{
|
|
10406
|
-
stat: 'Plasticity',
|
|
10407
|
-
capability: 'Crafter',
|
|
10408
|
-
attribute: 'speed',
|
|
10409
|
-
rationale: 'Easily reshaped materials speed up processing',
|
|
10410
|
-
},
|
|
10411
|
-
{
|
|
10412
|
-
stat: 'Plasticity',
|
|
10413
|
-
capability: 'Movement',
|
|
10414
|
-
attribute: 'thrust',
|
|
10415
|
-
rationale: 'Flexible polymer seals reduce friction in propulsion',
|
|
10416
|
-
},
|
|
10417
|
-
{
|
|
10418
|
-
stat: 'Plasticity',
|
|
10419
|
-
capability: 'Loader',
|
|
10420
|
-
attribute: 'thrust',
|
|
10421
|
-
rationale: 'Flexible joints improve loader force transfer',
|
|
10422
|
-
},
|
|
10423
|
-
{
|
|
10424
|
-
stat: 'Insulation',
|
|
10425
|
-
capability: 'Movement',
|
|
10426
|
-
attribute: 'drain',
|
|
10427
|
-
rationale: 'Better insulation reduces energy loss during movement',
|
|
10428
|
-
},
|
|
10429
|
-
{
|
|
10430
|
-
stat: 'Insulation',
|
|
10431
|
-
capability: 'Gathering',
|
|
10432
|
-
attribute: 'drain',
|
|
10433
|
-
rationale: 'Better insulation reduces energy loss during gathering',
|
|
10434
|
-
},
|
|
10435
|
-
{
|
|
10436
|
-
stat: 'Insulation',
|
|
10437
|
-
capability: 'Crafter',
|
|
10438
|
-
attribute: 'drain',
|
|
10439
|
-
rationale: 'Better insulation reduces energy loss during crafting',
|
|
10673
|
+
const invertedAttributes = new Set(['drain', 'mass']);
|
|
10674
|
+
function isInvertedAttribute(attribute) {
|
|
10675
|
+
return invertedAttributes.has(attribute);
|
|
10676
|
+
}
|
|
10677
|
+
function getCapabilityAttributes(capability) {
|
|
10678
|
+
if (capability) {
|
|
10679
|
+
return capabilityAttributes.filter((a) => a.capability === capability);
|
|
10680
|
+
}
|
|
10681
|
+
return capabilityAttributes;
|
|
10682
|
+
}
|
|
10683
|
+
|
|
10684
|
+
const ENTITY_HULL_SLOTS = {
|
|
10685
|
+
0: { capability: 'Storage', attribute: 'capacity' },
|
|
10686
|
+
1: { capability: 'Hull', attribute: 'mass' },
|
|
10687
|
+
2: { capability: 'Storage', attribute: 'capacity' },
|
|
10688
|
+
3: { capability: 'Storage', attribute: 'capacity' },
|
|
10689
|
+
};
|
|
10690
|
+
const SLOT_FORMULAS = {
|
|
10691
|
+
engine: {
|
|
10692
|
+
0: { capability: 'Movement', attribute: 'thrust' },
|
|
10693
|
+
1: { capability: 'Movement', attribute: 'drain' },
|
|
10440
10694
|
},
|
|
10441
|
-
{
|
|
10442
|
-
|
|
10443
|
-
capability: '
|
|
10444
|
-
attribute: 'drain',
|
|
10445
|
-
rationale: 'Better insulation reduces energy loss during launch',
|
|
10695
|
+
generator: {
|
|
10696
|
+
0: { capability: 'Energy', attribute: 'capacity' },
|
|
10697
|
+
1: { capability: 'Energy', attribute: 'recharge' },
|
|
10446
10698
|
},
|
|
10447
|
-
{
|
|
10448
|
-
|
|
10449
|
-
capability: '
|
|
10450
|
-
attribute: '
|
|
10451
|
-
|
|
10699
|
+
gatherer: {
|
|
10700
|
+
0: { capability: 'Gathering', attribute: 'yield' },
|
|
10701
|
+
1: { capability: 'Gathering', attribute: 'depth' },
|
|
10702
|
+
3: { capability: 'Gathering', attribute: 'drain' },
|
|
10703
|
+
4: { capability: 'Gathering', attribute: 'speed' },
|
|
10452
10704
|
},
|
|
10453
|
-
{
|
|
10454
|
-
|
|
10455
|
-
capability: '
|
|
10456
|
-
attribute: 'speed',
|
|
10457
|
-
rationale: 'Purer bio-lubricants reduce friction during gathering',
|
|
10705
|
+
loader: {
|
|
10706
|
+
0: { capability: 'Loader', attribute: 'mass' },
|
|
10707
|
+
1: { capability: 'Loader', attribute: 'thrust' },
|
|
10458
10708
|
},
|
|
10459
|
-
{
|
|
10460
|
-
|
|
10461
|
-
capability: '
|
|
10462
|
-
attribute: 'capacity',
|
|
10463
|
-
rationale: 'Purer organic electrolytes store more charge',
|
|
10709
|
+
crafter: {
|
|
10710
|
+
0: { capability: 'Crafter', attribute: 'speed' },
|
|
10711
|
+
1: { capability: 'Crafter', attribute: 'drain' },
|
|
10464
10712
|
},
|
|
10465
|
-
{
|
|
10466
|
-
|
|
10467
|
-
capability: '
|
|
10468
|
-
attribute: '
|
|
10469
|
-
|
|
10713
|
+
storage: {
|
|
10714
|
+
0: { capability: 'Storage', attribute: 'bonus' },
|
|
10715
|
+
1: { capability: 'Storage', attribute: 'bonus' },
|
|
10716
|
+
2: { capability: 'Storage', attribute: 'bonus' },
|
|
10717
|
+
3: { capability: 'Storage', attribute: 'bonus' },
|
|
10470
10718
|
},
|
|
10471
|
-
{
|
|
10472
|
-
|
|
10473
|
-
capability: 'Hauler',
|
|
10474
|
-
attribute: '
|
|
10475
|
-
rationale: 'Energy-transfer efficiency reduces the thrust penalty from each hauled target.',
|
|
10719
|
+
hauler: {
|
|
10720
|
+
0: { capability: 'Hauler', attribute: 'capacity' },
|
|
10721
|
+
1: { capability: 'Hauler', attribute: 'efficiency' },
|
|
10722
|
+
2: { capability: 'Hauler', attribute: 'drain' },
|
|
10476
10723
|
},
|
|
10477
|
-
{
|
|
10478
|
-
|
|
10479
|
-
capability: 'Hauler',
|
|
10480
|
-
attribute: 'drain',
|
|
10481
|
-
rationale: 'Clarity-focused energy routing reduces per-target drain during haul-beam operation.',
|
|
10724
|
+
warp: {
|
|
10725
|
+
0: { capability: 'Warp', attribute: 'range' },
|
|
10482
10726
|
},
|
|
10483
|
-
|
|
10484
|
-
|
|
10485
|
-
|
|
10486
|
-
|
|
10727
|
+
'ship-t1': ENTITY_HULL_SLOTS,
|
|
10728
|
+
'container-t1': ENTITY_HULL_SLOTS,
|
|
10729
|
+
'warehouse-t1': ENTITY_HULL_SLOTS,
|
|
10730
|
+
'container-t2': ENTITY_HULL_SLOTS,
|
|
10731
|
+
};
|
|
10732
|
+
|
|
10733
|
+
const KIND_TO_ITEM_ID = {
|
|
10734
|
+
engine: ITEM_ENGINE_T1,
|
|
10735
|
+
generator: ITEM_GENERATOR_T1,
|
|
10736
|
+
gatherer: ITEM_GATHERER_T1,
|
|
10737
|
+
loader: ITEM_LOADER_T1,
|
|
10738
|
+
crafter: ITEM_CRAFTER_T1,
|
|
10739
|
+
storage: ITEM_STORAGE_T1,
|
|
10740
|
+
hauler: ITEM_HAULER_T1,
|
|
10741
|
+
warp: ITEM_WARP_T1,
|
|
10742
|
+
'ship-t1': ITEM_SHIP_T1_PACKED,
|
|
10743
|
+
'container-t1': ITEM_CONTAINER_T1_PACKED,
|
|
10744
|
+
'warehouse-t1': ITEM_WAREHOUSE_T1_PACKED,
|
|
10745
|
+
'container-t2': ITEM_CONTAINER_T2_PACKED,
|
|
10746
|
+
};
|
|
10747
|
+
function isCategoryInput(input) {
|
|
10748
|
+
return 'category' in input;
|
|
10487
10749
|
}
|
|
10488
|
-
function
|
|
10489
|
-
|
|
10490
|
-
|
|
10750
|
+
function traceToRawCategoryStat(recipe, source, visited = new Set()) {
|
|
10751
|
+
const input = recipe.inputs[source.inputIndex];
|
|
10752
|
+
if (!input)
|
|
10753
|
+
return undefined;
|
|
10754
|
+
if (isCategoryInput(input)) {
|
|
10755
|
+
const defs = getStatDefinitions(input.category);
|
|
10756
|
+
return defs[source.statIndex];
|
|
10491
10757
|
}
|
|
10492
|
-
|
|
10758
|
+
if (visited.has(input.itemId))
|
|
10759
|
+
return undefined;
|
|
10760
|
+
const subRecipe = getRecipe(input.itemId);
|
|
10761
|
+
if (!subRecipe)
|
|
10762
|
+
return undefined;
|
|
10763
|
+
const subSlot = subRecipe.statSlots[source.statIndex];
|
|
10764
|
+
if (!subSlot)
|
|
10765
|
+
return undefined;
|
|
10766
|
+
const subSource = subSlot.sources[0];
|
|
10767
|
+
if (!subSource)
|
|
10768
|
+
return undefined;
|
|
10769
|
+
const nextVisited = new Set(visited);
|
|
10770
|
+
nextVisited.add(input.itemId);
|
|
10771
|
+
return traceToRawCategoryStat(subRecipe, subSource, nextVisited);
|
|
10772
|
+
}
|
|
10773
|
+
let cached;
|
|
10774
|
+
function deriveStatMappings() {
|
|
10775
|
+
if (cached)
|
|
10776
|
+
return cached;
|
|
10777
|
+
const out = [];
|
|
10778
|
+
const seen = new Set();
|
|
10779
|
+
for (const [kind, slots] of Object.entries(SLOT_FORMULAS)) {
|
|
10780
|
+
const itemId = KIND_TO_ITEM_ID[kind];
|
|
10781
|
+
const recipe = getRecipe(itemId);
|
|
10782
|
+
if (!recipe)
|
|
10783
|
+
continue;
|
|
10784
|
+
for (const [slotIdxStr, consumer] of Object.entries(slots)) {
|
|
10785
|
+
const slotIdx = Number(slotIdxStr);
|
|
10786
|
+
const slot = recipe.statSlots[slotIdx];
|
|
10787
|
+
if (!slot)
|
|
10788
|
+
continue;
|
|
10789
|
+
for (const source of slot.sources) {
|
|
10790
|
+
const stat = traceToRawCategoryStat(recipe, source);
|
|
10791
|
+
if (!stat)
|
|
10792
|
+
continue;
|
|
10793
|
+
const key = `${stat.label}|${consumer.capability}|${consumer.attribute}`;
|
|
10794
|
+
if (seen.has(key))
|
|
10795
|
+
continue;
|
|
10796
|
+
seen.add(key);
|
|
10797
|
+
out.push({
|
|
10798
|
+
stat: stat.label,
|
|
10799
|
+
capability: consumer.capability,
|
|
10800
|
+
attribute: consumer.attribute,
|
|
10801
|
+
});
|
|
10802
|
+
}
|
|
10803
|
+
}
|
|
10804
|
+
}
|
|
10805
|
+
cached = out;
|
|
10806
|
+
return out;
|
|
10493
10807
|
}
|
|
10494
10808
|
function getStatMappings() {
|
|
10495
|
-
return
|
|
10809
|
+
return deriveStatMappings();
|
|
10496
10810
|
}
|
|
10497
10811
|
function getStatMappingsForStat(stat) {
|
|
10498
|
-
return
|
|
10812
|
+
return deriveStatMappings().filter((m) => m.stat === stat);
|
|
10499
10813
|
}
|
|
10500
10814
|
function getStatMappingsForCapability(capability) {
|
|
10501
|
-
return
|
|
10815
|
+
return deriveStatMappings().filter((m) => m.capability === capability);
|
|
10502
10816
|
}
|
|
10503
10817
|
|
|
10504
10818
|
function toNum(v) {
|
|
@@ -10570,7 +10884,7 @@ function resolveComponent(id, stats) {
|
|
|
10570
10884
|
stats: resolvedStats,
|
|
10571
10885
|
};
|
|
10572
10886
|
}
|
|
10573
|
-
function computeCapabilityGroup(moduleType, stats) {
|
|
10887
|
+
function computeCapabilityGroup(moduleType, stats, tier) {
|
|
10574
10888
|
switch (moduleType) {
|
|
10575
10889
|
case MODULE_ENGINE: {
|
|
10576
10890
|
const caps = computeEngineCapabilities(stats);
|
|
@@ -10593,7 +10907,7 @@ function computeCapabilityGroup(moduleType, stats) {
|
|
|
10593
10907
|
};
|
|
10594
10908
|
}
|
|
10595
10909
|
case MODULE_GATHERER: {
|
|
10596
|
-
const caps = computeGathererCapabilities(stats);
|
|
10910
|
+
const caps = computeGathererCapabilities(stats, tier);
|
|
10597
10911
|
return {
|
|
10598
10912
|
capability: 'Gatherer',
|
|
10599
10913
|
attributes: [
|
|
@@ -10637,10 +10951,11 @@ function computeCapabilityGroup(moduleType, stats) {
|
|
|
10637
10951
|
};
|
|
10638
10952
|
}
|
|
10639
10953
|
case MODULE_STORAGE: {
|
|
10640
|
-
const str = stats.strength
|
|
10641
|
-
const
|
|
10642
|
-
const
|
|
10643
|
-
const
|
|
10954
|
+
const str = stats.strength;
|
|
10955
|
+
const den = stats.density;
|
|
10956
|
+
const hrd = stats.hardness;
|
|
10957
|
+
const sat = stats.saturation;
|
|
10958
|
+
const statSum = str + den + hrd + sat;
|
|
10644
10959
|
const pct = 10 + Math.floor((statSum * 10) / 2997);
|
|
10645
10960
|
return { capability: 'Storage', attributes: [{ label: 'Capacity Bonus', value: pct }] };
|
|
10646
10961
|
}
|
|
@@ -10654,7 +10969,7 @@ function resolveModule(id, stats) {
|
|
|
10654
10969
|
if (stats !== undefined) {
|
|
10655
10970
|
const decoded = decodeCraftedItemStats(id, toBigStats(stats));
|
|
10656
10971
|
const modType = getModuleCapabilityType(id);
|
|
10657
|
-
const group = computeCapabilityGroup(modType, decoded);
|
|
10972
|
+
const group = computeCapabilityGroup(modType, decoded, item.tier);
|
|
10658
10973
|
if (group)
|
|
10659
10974
|
attributes = [group];
|
|
10660
10975
|
}
|
|
@@ -10710,14 +11025,17 @@ function resolveEntity(id, stats, modules) {
|
|
|
10710
11025
|
const modStats = BigInt(mod.installed.stats.toString());
|
|
10711
11026
|
const decodedStats = decodeCraftedItemStats(modItemId, modStats);
|
|
10712
11027
|
const modType = getModuleCapabilityType(modItemId);
|
|
10713
|
-
const group = computeCapabilityGroup(modType, decodedStats);
|
|
10714
11028
|
let modName = 'Module';
|
|
11029
|
+
let modTier = 1;
|
|
10715
11030
|
try {
|
|
10716
|
-
|
|
11031
|
+
const modItem = getItem(modItemId);
|
|
11032
|
+
modName = modItem.name;
|
|
11033
|
+
modTier = modItem.tier;
|
|
10717
11034
|
}
|
|
10718
11035
|
catch {
|
|
10719
11036
|
modName = itemMetadata[modItemId]?.name ?? 'Module';
|
|
10720
11037
|
}
|
|
11038
|
+
const group = computeCapabilityGroup(modType, decodedStats, modTier);
|
|
10721
11039
|
return {
|
|
10722
11040
|
name: modName,
|
|
10723
11041
|
installed: true,
|
|
@@ -10945,16 +11263,19 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
10945
11263
|
}
|
|
10946
11264
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
10947
11265
|
const computeEngineDrain = (thm) => Math.max(30, 50 - idiv(thm, 70));
|
|
10948
|
-
const computeGeneratorCap = (
|
|
10949
|
-
const computeGeneratorRech = (
|
|
11266
|
+
const computeGeneratorCap = (com) => 300 + idiv(com, 6);
|
|
11267
|
+
const computeGeneratorRech = (fin) => 1 + idiv(fin * 3, 1000);
|
|
10950
11268
|
const computeGathererYield = (str) => 200 + str;
|
|
10951
11269
|
const computeGathererDrain = (con) => Math.max(250, 1250 - idiv(con * 25, 20));
|
|
10952
|
-
const computeGathererDepth = (tol) =>
|
|
11270
|
+
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
10953
11271
|
const computeGathererSpeed = (ref) => 100 + idiv(ref * 4, 5);
|
|
10954
|
-
const computeLoaderMass = (
|
|
11272
|
+
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
10955
11273
|
const computeLoaderThrust = (pla) => 1 + idiv(pla, 500);
|
|
10956
11274
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
10957
|
-
const computeCrafterDrain = (
|
|
11275
|
+
const computeCrafterDrain = (fin) => Math.max(5, 30 - idiv(fin, 33));
|
|
11276
|
+
const computeHaulerCapacity = (fin) => Math.max(1, 1 + idiv(fin, 400));
|
|
11277
|
+
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
11278
|
+
const computeHaulerDrain = (com) => Math.max(3, 15 - idiv(com, 80));
|
|
10958
11279
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
10959
11280
|
function entityDisplayName(itemId) {
|
|
10960
11281
|
switch (itemId) {
|
|
@@ -10984,6 +11305,8 @@ function moduleDisplayName(itemId) {
|
|
|
10984
11305
|
return 'Crafter';
|
|
10985
11306
|
case ITEM_STORAGE_T1:
|
|
10986
11307
|
return 'Storage';
|
|
11308
|
+
case ITEM_HAULER_T1:
|
|
11309
|
+
return 'Hauler';
|
|
10987
11310
|
case ITEM_WARP_T1:
|
|
10988
11311
|
return 'Warp';
|
|
10989
11312
|
default:
|
|
@@ -11016,7 +11339,8 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
11016
11339
|
const tol = decodeStat(stats, 1);
|
|
11017
11340
|
const con = decodeStat(stats, 3);
|
|
11018
11341
|
const ref = decodeStat(stats, 4);
|
|
11019
|
-
|
|
11342
|
+
const tier = getItem(itemId).tier;
|
|
11343
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Speed ${computeGathererSpeed(ref)} Drain ${computeGathererDrain(con)}`;
|
|
11020
11344
|
break;
|
|
11021
11345
|
}
|
|
11022
11346
|
case MODULE_LOADER: {
|
|
@@ -11040,6 +11364,13 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
11040
11364
|
out += ` +${pct}% capacity`;
|
|
11041
11365
|
break;
|
|
11042
11366
|
}
|
|
11367
|
+
case MODULE_HAULER: {
|
|
11368
|
+
const fin = decodeStat(stats, 0);
|
|
11369
|
+
const con = decodeStat(stats, 1);
|
|
11370
|
+
const com = decodeStat(stats, 2);
|
|
11371
|
+
out += ` Capacity ${computeHaulerCapacity(fin)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(com)}`;
|
|
11372
|
+
break;
|
|
11373
|
+
}
|
|
11043
11374
|
case MODULE_WARP: {
|
|
11044
11375
|
const stat = decodeStat(stats, 0);
|
|
11045
11376
|
out += ` Range ${computeWarpRange(stat)}`;
|
|
@@ -11094,6 +11425,9 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
11094
11425
|
computeLoaderThrust: computeLoaderThrust,
|
|
11095
11426
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
11096
11427
|
computeCrafterDrain: computeCrafterDrain,
|
|
11428
|
+
computeHaulerCapacity: computeHaulerCapacity,
|
|
11429
|
+
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
11430
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
11097
11431
|
computeWarpRange: computeWarpRange,
|
|
11098
11432
|
entityDisplayName: entityDisplayName,
|
|
11099
11433
|
moduleDisplayName: moduleDisplayName,
|
|
@@ -11175,6 +11509,8 @@ exports.EntityType = EntityType;
|
|
|
11175
11509
|
exports.EpochsManager = EpochsManager;
|
|
11176
11510
|
exports.GAME_NOT_FOUND = GAME_NOT_FOUND;
|
|
11177
11511
|
exports.GAME_SEED_NOT_SET = GAME_SEED_NOT_SET;
|
|
11512
|
+
exports.GATHERER_DEPTH_MAX_TIER = GATHERER_DEPTH_MAX_TIER;
|
|
11513
|
+
exports.GATHERER_DEPTH_TABLE = GATHERER_DEPTH_TABLE;
|
|
11178
11514
|
exports.GATHER_EXCEEDS_ENERGY_CAPACITY = GATHER_EXCEEDS_ENERGY_CAPACITY;
|
|
11179
11515
|
exports.GATHER_NOT_ENOUGH_ENERGY = GATHER_NOT_ENOUGH_ENERGY;
|
|
11180
11516
|
exports.GROUP_DUPLICATE_ENTITY = GROUP_DUPLICATE_ENTITY;
|
|
@@ -11339,6 +11675,7 @@ exports.SHIP_NOT_IDLE = SHIP_NOT_IDLE;
|
|
|
11339
11675
|
exports.SHIP_NOT_OWNED = SHIP_NOT_OWNED;
|
|
11340
11676
|
exports.SHIP_NO_COMPLETED_TASKS = SHIP_NO_COMPLETED_TASKS;
|
|
11341
11677
|
exports.SHIP_NO_TASKS_TO_CANCEL = SHIP_NO_TASKS_TO_CANCEL;
|
|
11678
|
+
exports.SLOT_FORMULAS = SLOT_FORMULAS;
|
|
11342
11679
|
exports.STARTER_ALREADY_CLAIMED = STARTER_ALREADY_CLAIMED;
|
|
11343
11680
|
exports.ScheduleAccessor = ScheduleAccessor;
|
|
11344
11681
|
exports.ServerContract = server;
|
|
@@ -11434,7 +11771,7 @@ exports.computeGeneratorCapabilities = computeGeneratorCapabilities;
|
|
|
11434
11771
|
exports.computeGeneratorRech = computeGeneratorRech;
|
|
11435
11772
|
exports.computeHaulPenalty = computeHaulPenalty;
|
|
11436
11773
|
exports.computeHaulerCapabilities = computeHaulerCapabilities;
|
|
11437
|
-
exports.computeHaulerDrain = computeHaulerDrain;
|
|
11774
|
+
exports.computeHaulerDrain = computeHaulerDrain$1;
|
|
11438
11775
|
exports.computeInputMass = computeInputMass;
|
|
11439
11776
|
exports.computeLoaderCapabilities = computeLoaderCapabilities;
|
|
11440
11777
|
exports.computeLoaderMass = computeLoaderMass;
|
|
@@ -11444,6 +11781,7 @@ exports.computeShipHullCapabilities = computeShipHullCapabilities;
|
|
|
11444
11781
|
exports.computeStorageCapabilities = computeStorageCapabilities;
|
|
11445
11782
|
exports.computeWarehouseCapabilities = computeWarehouseCapabilities;
|
|
11446
11783
|
exports.computeWarehouseHullCapabilities = computeWarehouseHullCapabilities;
|
|
11784
|
+
exports.computeWarpRange = computeWarpRange;
|
|
11447
11785
|
exports.coordsToLocationId = coordsToLocationId;
|
|
11448
11786
|
exports.createInventoryAccessor = createInventoryAccessor;
|
|
11449
11787
|
exports.createProjectedEntity = createProjectedEntity;
|
|
@@ -11457,6 +11795,7 @@ exports.deriveLocationEpoch = deriveLocationEpoch;
|
|
|
11457
11795
|
exports.deriveLocationSize = deriveLocationSize;
|
|
11458
11796
|
exports.deriveLocationStatic = deriveLocationStatic;
|
|
11459
11797
|
exports.deriveResourceStats = deriveResourceStats;
|
|
11798
|
+
exports.deriveStatMappings = deriveStatMappings;
|
|
11460
11799
|
exports.deriveStrata = deriveStrata;
|
|
11461
11800
|
exports.deriveStratum = deriveStratum;
|
|
11462
11801
|
exports.describeItem = describeItem;
|
|
@@ -11471,6 +11810,7 @@ exports.deserializeResource = deserializeResource;
|
|
|
11471
11810
|
exports.displayName = displayName;
|
|
11472
11811
|
exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
|
|
11473
11812
|
exports.distanceBetweenPoints = distanceBetweenPoints;
|
|
11813
|
+
exports.easeFlightProgress = easeFlightProgress;
|
|
11474
11814
|
exports.encodeGatheredCargoStats = encodeGatheredCargoStats;
|
|
11475
11815
|
exports.encodeStats = encodeStats;
|
|
11476
11816
|
exports.energyPercent = energyPercent;
|
|
@@ -11479,10 +11819,12 @@ exports.estimateDealTravelTime = estimateDealTravelTime;
|
|
|
11479
11819
|
exports.estimateTravelTime = estimateTravelTime;
|
|
11480
11820
|
exports.findItemByCategoryAndTier = findItemByCategoryAndTier;
|
|
11481
11821
|
exports.findNearbyPlanets = findNearbyPlanets;
|
|
11822
|
+
exports.flightSpeedFactor = flightSpeedFactor;
|
|
11482
11823
|
exports.formatMass = formatMass;
|
|
11483
11824
|
exports.formatMassDelta = formatMassDelta;
|
|
11484
11825
|
exports.formatModuleLine = formatModuleLine;
|
|
11485
11826
|
exports.formatTier = formatTier;
|
|
11827
|
+
exports.gathererDepthForTier = gathererDepthForTier;
|
|
11486
11828
|
exports.getCapabilityAttributes = getCapabilityAttributes;
|
|
11487
11829
|
exports.getCategoryInfo = getCategoryInfo;
|
|
11488
11830
|
exports.getComponents = getComponents;
|
|
@@ -11494,6 +11836,7 @@ exports.getEntityItems = getEntityItems;
|
|
|
11494
11836
|
exports.getEntityLayout = getEntityLayout;
|
|
11495
11837
|
exports.getEpochInfo = getEpochInfo;
|
|
11496
11838
|
exports.getFlightOrigin = getFlightOrigin;
|
|
11839
|
+
exports.getInterpolatedPosition = getInterpolatedPosition;
|
|
11497
11840
|
exports.getItem = getItem;
|
|
11498
11841
|
exports.getItems = getItems;
|
|
11499
11842
|
exports.getLocationCandidates = getLocationCandidates;
|
|
@@ -11526,6 +11869,7 @@ exports.hasStorage = hasStorage;
|
|
|
11526
11869
|
exports.hasSystem = hasSystem;
|
|
11527
11870
|
exports.hash = hash;
|
|
11528
11871
|
exports.hash512 = hash512;
|
|
11872
|
+
exports.interpolateFlightPosition = interpolateFlightPosition;
|
|
11529
11873
|
exports.isCraftedItem = isCraftedItem;
|
|
11530
11874
|
exports.isFull = isFull$1;
|
|
11531
11875
|
exports.isFullFromMass = isFullFromMass;
|
|
@@ -11571,7 +11915,6 @@ exports.setSubscriptionsDebug = setSubscriptionsDebug;
|
|
|
11571
11915
|
exports.stackKey = stackKey;
|
|
11572
11916
|
exports.stackToCargoItem = stackToCargoItem;
|
|
11573
11917
|
exports.stacksEqual = stacksEqual;
|
|
11574
|
-
exports.statMappings = statMappings;
|
|
11575
11918
|
exports.tierColors = tierColors;
|
|
11576
11919
|
exports.tierLabel = tierLabel;
|
|
11577
11920
|
exports.tierLabels = tierLabels;
|