@shipload/sdk 1.0.0-next.72 → 1.0.0-next.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/shipload.d.ts +576 -133
  2. package/lib/shipload.js +6019 -5114
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +6002 -5108
  5. package/lib/shipload.m.js.map +1 -1
  6. package/lib/testing.d.ts +194 -52
  7. package/lib/testing.js +767 -468
  8. package/lib/testing.js.map +1 -1
  9. package/lib/testing.m.js +767 -468
  10. package/lib/testing.m.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/contracts/server.ts +523 -143
  13. package/src/data/catalog.test.ts +81 -1
  14. package/src/data/catalog.ts +6 -4
  15. package/src/data/entities.json +2 -2
  16. package/src/data/metadata.ts +197 -363
  17. package/src/data/task-types.json +184 -0
  18. package/src/entities/makers.ts +2 -2
  19. package/src/index-module.ts +31 -2
  20. package/src/influence/civic-shuttle.test.ts +58 -0
  21. package/src/influence/civic-shuttle.ts +52 -6
  22. package/src/influence/duration.ts +0 -65
  23. package/src/influence/index.ts +4 -5
  24. package/src/influence/influence.test.ts +51 -136
  25. package/src/influence/valuation.ts +75 -0
  26. package/src/managers/actions.ts +49 -10
  27. package/src/managers/balances.test.ts +33 -0
  28. package/src/managers/balances.ts +15 -0
  29. package/src/managers/context.ts +50 -11
  30. package/src/managers/index.ts +14 -0
  31. package/src/managers/jobs.test.ts +82 -1
  32. package/src/managers/jobs.ts +41 -2
  33. package/src/managers/nft.test.ts +173 -1
  34. package/src/managers/nft.ts +35 -2
  35. package/src/managers/shuttle.test.ts +562 -0
  36. package/src/managers/shuttle.ts +397 -0
  37. package/src/resolution/resolve-item.ts +2 -2
  38. package/src/scheduling/availability.ts +10 -0
  39. package/src/scheduling/energy.ts +55 -1
  40. package/src/scheduling/jobs.test.ts +171 -1
  41. package/src/scheduling/jobs.ts +110 -13
  42. package/src/scheduling/projection.ts +2 -1
  43. package/src/scheduling/task-effects.ts +38 -0
  44. package/src/scheduling/unwrap.test.ts +60 -0
  45. package/src/scheduling/unwrap.ts +24 -8
  46. package/src/shipload.ts +23 -4
  47. package/src/types.ts +1 -0
package/lib/testing.js CHANGED
@@ -822,7 +822,7 @@ var Types$2;
822
822
  wrapgate: Types$2.wrapgate_row,
823
823
  });
824
824
 
825
- const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDi8AgthYmFuZG9ucGxvdAABB3Bsb3RfaWQGdWludDY0CmFkZGNvbnRyaWIABQZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAZidW5kbGUMY2FyZ29faXRlbVtdCWFkZG1vZHVsZQAECWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAlhZGRvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQ1iYWxsb3RfY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQKYmFsbG90X3JvdwAHCWJhbGxvdF9pZAZ1aW50NjQEa2luZAV1aW50OAdzdWJqZWN0BnVpbnQ2NAVzZWF0cwZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFcXVldWUIdWludDMyW10GcGFya2VkD2JhbGxvdF9jcmVkaXRbXQ5iYWxsb3Rfc2VxX3JvdwADB25leHRfaWQGdWludDY0BmN1cnNvcgZ1aW50NjQJcGFnZV9yb3dzBnVpbnQzMgxiYWxsb3RfdGFsbHkAAgZvcHRpb24GdWludDMyBndlaWdodAZ1aW50NjQPYmFsbG90cGlja3Nfcm93AAIHYWNjb3VudARuYW1lBXBpY2tzCHVpbnQzMltdEGJhbGxvdHNldHRsZV9yb3cABgliYWxsb3RfaWQGdWludDY0BXJvdW5kBnVpbnQzMgZjdXJzb3IGdWludDY0DHRhcmdldF9lcG9jaAZ1aW50MzIHdGFsbGllcw5iYWxsb3RfdGFsbHlbXQZzZWF0ZWQIdWludDMyW10FYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQxidWlsZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYNYnVpbGRpbmdzX3JvdwACCWVudGl0eV9pZAZ1aW50NjQIYnVpbGRpbmcFdWludDgIYnVpbGRqb2IABAl0YXJnZXRfaWQGdWludDY0B2RvY2tfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdDGJ1aWxkam9iX3JvdwAMAmlkBnVpbnQ2NAhidWlsZGluZwZ1aW50NjQGc29ja2V0BXVpbnQ4BnRhcmdldAZ1aW50NjQFb3duZXIEbmFtZQZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQYnVpbGRqb2JzX3Jlc3VsdAABBGpvYnMOYnVpbGRqb2Jfcm93W10JYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwtjYW5jZWxidWlsZAABBmpvYl9pZAZ1aW50NjQLY2FuY2VsY2l2aWMAAwhidWlsZGluZwZ1aW50NjQIbGFuZV9rZXkFdWludDgHZnJvbV9pZAZ1aW50NjQLY2FuY2VsY3JhZnQAAQZqb2JfaWQGdWludDY0CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8KY2FzdGJhbGxvdAADBnBsYXllcgRuYW1lCWJhbGxvdF9pZAZ1aW50NjQFcGlja3MIdWludDMyW10QY2hhcnRlcl9ub2RlX2RlZgAGB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0B3ByZXJlcXMIdWludDMyW10GZ3JhbnRzDWNpdmljX2dyYW50W10PZXhjbHVzaW9uX2dyb3VwBnVpbnQxNgpyZXBlYXRfY2FwBXVpbnQ4EmNoYXJ0ZXJfcmVhZHlfdmlldwADAXgFaW50NjQBeQVpbnQ2NAdtYW5kYXRlBnVpbnQzMg5jaGFydGVyX3Jlc3VsdAAOC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQFc3BlbnQGdWludDY0CnVuYXNzaWduZWQGdWludDY0B21hbmRhdGUGdWludDMyCW5leHRfY29zdAZ1aW50NjQLcHJlcmVxc19tZXQEYm9vbAlidWlsZGFibGUEYm9vbAVlcG9jaAZ1aW50MzIFYnVpbHQOY2hhcnRlcl92aWV3W10JYmFsbG90X2lkBnVpbnQ2NAhzZXR0bGluZwRib29sBXF1ZXVlC3NlYXRfdmlld1tdCHByb2dyZXNzD3Byb2dyZXNzX3ZpZXdbXRNjaGFydGVyX3RyZWVfcmVzdWx0AAEFbm9kZXMSY2hhcnRlcl9ub2RlX2RlZltdDGNoYXJ0ZXJfdmlldwACB25vZGVfaWQGdWludDMyB3JlcGVhdHMGdWludDE2DGNoYXJ0ZXJyZWFkeQACAXgFaW50NjQBeQVpbnQ2NBNjaGFydGVycmVhZHlfcmVzdWx0AAEGd29ybGRzFGNoYXJ0ZXJfcmVhZHlfdmlld1tdD2NpdGl6ZW5zaGlwX3JvdwAEC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQGYWN0aXZlBnVpbnQ2NAxhY3RpdmVfZXBvY2gGdWludDMyC2NpdmljX2dyYW50AAQEa2luZAV1aW50OAhidWlsZGluZwV1aW50OARzdGF0BXVpbnQ4BXZhbHVlBnVpbnQxNg9jaXZpY2NvbmZpZ19yb3cAAQtjaXZpY19vd25lcgRuYW1lDGNpdmljc2h1dHRsZQAECGJ1aWxkaW5nBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCWNsYWltX3JvdwABBW93bmVyBG5hbWUKY2xhaW1idWlsZAABBmpvYl9pZAZ1aW50NjQKY2xhaW1jcmFmdAACBmpvYl9pZAZ1aW50NjQHc2hpcF9pZAZ1aW50NjQJY2xhaW1wbG90AAMKYnVpbGRlcl9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BHNsb3QMY2x1c3Rlcl9zbG90DGNsYWltc3RhcnRlcgABBW93bmVyBG5hbWUJY2xlYW5yc3ZwAAIFZXBvY2gGdWludDY0CG1heF9yb3dzBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8KY2xvc2VlcG9jaAABBWVwb2NoBnVpbnQ2NAxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4DmNsdXN0ZXJfc291cmNlAAIJc291cmNlX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10MY2x1c3RlcmNyYWZ0AAYCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyB3NvdXJjZXMQY2x1c3Rlcl9zb3VyY2VbXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwZjb21taXQAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGY29tbWl0C2NoZWNrc3VtMjU2CmNvbW1pdF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/CGNvdXBsaW5nAAMLY291bnRlcnBhcnQKZW50aXR5X3JlZgRob2xkBnVpbnQ2NARraW5kBXVpbnQ4BWNyYWZ0AAYCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10GdGFyZ2V0B3VpbnQ2ND8Ec2xvdAZ1aW50OD8MY3JhZnRlcl9sYW5lAAQKc2xvdF9pbmRleAV1aW50OAVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCm91dHB1dF9wY3QGdWludDE2CGNyYWZ0am9iAAUHc2hpcF9pZAZ1aW50NjQLd29ya3Nob3BfaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10MY3JhZnRqb2Jfcm93AA4CaWQGdWludDY0CGJ1aWxkaW5nBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQY3JhZnRqb2JzX3Jlc3VsdAABBGpvYnMOY3JhZnRqb2Jfcm93W10JZGJnY3JlZGl0AAUFb3duZXIEbmFtZQF4BWludDY0AXkFaW50NjQNYW1vdW50X2F0b21pYwZ1aW50NjQEbm9kZQd1aW50MzI/B2RiZ2pvYnMAAgZjcmFmdHMOY3JhZnRqb2Jfcm93W10GYnVpbGRzDmJ1aWxkam9iX3Jvd1tdCmRiZ21hbmRhdGUAAwF4BWludDY0AXkFaW50NjQHbm9kZV9pZAZ1aW50MzILZGJncGFnZXJvd3MAAQRyb3dzBnVpbnQzMgdkYmdwaWNrAAQHc29ja2V0cxJzb2NrZXRfY2FuZGlkYXRlW10CaWQGdWludDY0B2Fycml2YWwKdGltZV9wb2ludANjYXAGdWludDE2CGRiZ3BsYWNlAAQHd2luZG93cxFyZXNlcnZlZF93aW5kb3dbXQJpZAZ1aW50NjQHYXJyaXZhbAp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMghkYmdwdXJnZQACCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwlkYmdyZXBhY2sAAwd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdDGNhbmNlbGxlZF9pZAZ1aW50NjQDbm93CnRpbWVfcG9pbnQIZGJnc2VhdHMAAwF4BWludDY0AXkFaW50NjQFc2VhdHMGdWludDMyDWRlY29tcF9idWNrZXQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CHJhd19tYXNzBnVpbnQzMg1kZWNvbXBfcmVzdWx0AAMHaXRlbV9pZAZ1aW50MTYOcHJvY2Vzc2VkX21hc3MGdWludDY0B2J1Y2tldHMPZGVjb21wX2J1Y2tldFtdCWRlbGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQNZGVtYW5kX3Jlc3VsdAAFDWFidW5kYW50X21hc2sFdWludDgMbGFja2luZ19tYXNrBXVpbnQ4BWFjdXRlBXVpbnQ4B25lZWRfZnAIdWludDY0W10FZXBvY2gGdWludDMyCGRlbW9saXNoAAEJZW50aXR5X2lkBnVpbnQ2NAZkZXBsb3kAAwJpZAZ1aW50NjQDcmVmCWNhcmdvX3JlZgRzbG90DWNsdXN0ZXJfc2xvdD8KZGVwb3RfdmlldwAECnBsYXllcl9jYXAGdWludDY0C3N0b3JlZF9tYXNzBnVpbnQ2NA1yZXNlcnZlZF9tYXNzBnVpbnQ2NARyb3dzDXN0b3JhZ2Vfcm93W10KZGVwb3RzdG9yZQADB3NoaXBfaWQGdWludDY0CGRlcG90X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10JZGVwb3R0YWtlAAMHc2hpcF9pZAZ1aW50NjQIZGVwb3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAYBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDHByb2plY3RlZF9hdAp0aW1lX3BvaW50DWVudGl0eV9sYXlvdXQAAw5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXQ1iYXNlX2h1bGxtYXNzBnVpbnQzMhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAwCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAZ1aW50MzIQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQKZml4aXRlbWlkcwAAEGZvb3RwcmludF9yZXN1bHQAAQVjZWxscwtncmlkX2NlbGxbXQtmb3JjZXJldmVhbAABBWVwb2NoBnVpbnQ2NAVmb3VuZAAEBnBsYXllcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2CmdhdGhlcnBsYW4ABglzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIIcmVjaGFyZ2UEYm9vbAVzbG90cwVieXRlcwxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10MZ2VuZXNpc3dvcmxkAAQHZm91bmRlcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAhub2RlX2lkcwh1aW50MzJbXQxnZXRidWlsZGpvYnMAAQtidWlsZGluZ19pZAZ1aW50NjQKZ2V0Y2hhcnRlcgACAXgFaW50NjQBeQVpbnQ2NAxnZXRjaGFydHRyZWUAAAxnZXRjaHJ0cmVhZHkAAApnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAAxnZXRjcmFmdGpvYnMAAQtidWlsZGluZ19pZAZ1aW50NjQJZ2V0ZGVjb21wAAEHaXRlbV9pZAZ1aW50MTYJZ2V0ZGVtYW5kAAIBeAVpbnQ2NAF5BWludDY0CmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAhnZXRkZXBvdAACCGRlcG90X2lkBnVpbnQ2NAVvd25lcgRuYW1lC2dldGRpc3RhbmNlAAQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYJZ2V0ZW50Y2xzAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMZ2V0Zm9vdHByaW50AAEHaXRlbV9pZAZ1aW50MTYLZ2V0aW5mZGVjYXkAAgZhY3RpdmUGdWludDY0BmVwb2NocwZ1aW50MzIMZ2V0aW5mbHVlbmNlAAMFb3duZXIEbmFtZQF4BWludDY0AXkFaW50NjQLZ2V0aW5mdmFsdWUAAwVpdGVtcwxjYXJnb19pdGVtW10BeAVpbnQ2NAF5BWludDY0C2dldGl0ZW1kYXRhAAAKZ2V0aXRlbWlkcwAACGdldGl0ZW1zAAALZ2V0aXRlbXR5cGUAAQdpdGVtX2lkBnVpbnQxNgxnZXRpdGVtdHlwZXMAAAtnZXRraW5kbWV0YQAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQKZ2V0bWludGNmZwAADGdldG1pbnRyZWFkeQAAC2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQdnZXRwb29sAAIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhnZXRwb29scwAADGdldHByb2pzdGF0ZQACCWVudGl0eV9pZAZ1aW50NjQKdGFza19jb3VudAZ1aW50OD8JZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgKZ2V0cmVzY2F0cwAAC2dldHJlc2VydmVzAAIBeAVpbnQ2NAF5BWludDY0DGdldHJlc291cmNlcwAACGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/DGdldHZvdGVyZWFkeQAACGdldHZvdGVzAAMBeAVpbnQ2NAF5BWludDY0BnBsYXllcgRuYW1lC2dldHdvcm1ob2xlAAIBeAVpbnQ2NAF5BWludDY0CWdyaWRfY2VsbAACAmd4BGludDgCZ3kEaW50OAxncm91cHRyYW5zaXQABQhlbnRpdGllcwxlbnRpdHlfcmVmW10CYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwAECGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQzMhBjYXBhY2l0eV9ieV90aWVyEWhhdWxlcl90aWVyX2NhcFtdD2hhdWxlcl90aWVyX2NhcAACBHRpZXIFdWludDgIY2FwYWNpdHkFdWludDgEaG9sZAAFAmlkBnVpbnQ2NARraW5kBXVpbnQ4C2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYFdW50aWwKdGltZV9wb2ludA1pbmNvbWluZ19tYXNzBnVpbnQzMgtpbXBvcnRjYXJnbwABA3JvdwljYXJnb19yb3cKaW1wb3J0Y2VsbAAEBHJvb3QGdWludDY0Amd4BGludDgCZ3kEaW50OAllbnRpdHlfaWQGdWludDY0DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGVwb2NoAAEDcm93CWVwb2NoX3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0bmZ0Y2ZnAAEDcm93DW5mdGNvbmZpZ19yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cLaW5mYnVybl9yb3cAAQNicHMGdWludDE2DWluZmRlbWFuZF9yb3cAAwRwZWFrBnVpbnQ2NARiYXNlBnVpbnQ2NAVmbG9vcgZ1aW50NjQQaW5mbHVlbmNlX3RvdGFscwALEXN0YW5kaW5nX2xpZmV0aW1lBnVpbnQ2NA9zdGFuZGluZ19hY3RpdmUGdWludDY0FGNpdGl6ZW5zaGlwX2xpZmV0aW1lBnVpbnQ2NBJjaXRpemVuc2hpcF9hY3RpdmUGdWludDY0EWxvY2F0aW9uX2xpZmV0aW1lBnVpbnQ2NA9sb2NhdGlvbl9hY3RpdmUGdWludDY0BXNwZW50BnVpbnQ2NAdtYW5kYXRlBnVpbnQzMgdmb3VuZGVyBG5hbWUHZm91bmRlZAZ1aW50MzIFZXBvY2gGdWludDMyC2luZm1pbnRfcm93AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl0aHJlc2hvbGQGdWludDY0C2luZnBvb2xfcm93AAYIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAVncmFkZQV1aW50OAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0A2JhcgZ1aW50NjQOaW5mcXVhbGl0eV9yb3cAAQJkMQZ1aW50MzIPaW5mdmFsdWVfcmVzdWx0AAIMdG90YWxfYXRvbWljBnVpbnQ2NA9wZXJfaXRlbV9hdG9taWMIdWludDY0W10NaW5md2VpZ2h0X3JvdwADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJd2VpZ2h0X2ZwBnVpbnQ2NAhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4CmxvY2tlcl9yb3cAAwhkZXBvdF9pZAZ1aW50NjQLc3RvcmVkX21hc3MGdWludDY0DXJlc2VydmVkX21hc3MGdWludDY0DG1hbmRhdGVzX3JvdwACB25vZGVfaWQGdWludDMyB3JlcGVhdHMGdWludDE2E21pbnRfdGhyZXNob2xkX3ZpZXcAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQObWludGNmZ19yZXN1bHQAAgp0aHJlc2hvbGRzFW1pbnRfdGhyZXNob2xkX3ZpZXdbXQhidXJuX2JwcwZ1aW50MTYJbWludHFfcm93AAICaWQGdWludDY0BWdyYWRlBXVpbnQ4CW1pbnRyZWFkeQABCW1heF9taW50cwd1aW50MzI/DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgKbmF0dXJhbGl6ZQADBnBsYXllcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQzMgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfY2FyZ29faXRlbQAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMhBuZnRfaXRlbV9wYXlsb2FkAAIEaXRlbQ5uZnRfY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAMHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQt0ZW1wbGF0ZV9pZAVpbnQzMg1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQluZnRpbWd1cmwAAgRpdGVtCmNhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudBFvcmFjbGVfY29uZmlnX3JvdwACCXRocmVzaG9sZAV1aW50OAhkZWFkbGluZQZ1aW50MzIKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lEHBvb2xfcGFpcl9yZXN1bHQACQhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4B2l0ZW1faWQGdWludDE2EXN0YW5kYXJkX3F1YW50aXR5BnVpbnQ2NA5zdGFuZGFyZF9zdGF0cwZ1aW50NjQQcHJlbWl1bV9xdWFudGl0eQZ1aW50NjQNcHJlbWl1bV9zdGF0cwZ1aW50NjQDYmFyBnVpbnQ2NAl0aHJlc2hvbGQGdWludDY0CXBvb2xfdmlldwAHCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DHBvb2xzX3Jlc3VsdAABBXBvb2xzC3Bvb2xfdmlld1tdDHByb2dyZXNzX3JvdwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQNcHJvZ3Jlc3NfdmlldwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQPcHJvamVjdGVkX3N0YXRlABEFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwR0aWVyBXVpbnQ4CHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAACB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAIDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ9zb3VyY2Vfc3ViY2xhc3MHdWludDE2Pw5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10IcmVmaXRfb3AAAgJvcAV1aW50OARzbG90BXVpbnQ4DHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nDXJlcGFja19yZXN1bHQAAQd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUPcmVzZXJ2ZWRfd2luZG93AAQCaWQGdWludDY0B2Fycml2YWwKdGltZV9wb2ludAlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludAdyZXNvbHZlAAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BnVpbnQzMhRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpyZXNvbHZlYWxsAAEFb3duZXIEbmFtZRJyZXNvbHZlYWxsX3Jlc3VsdHMAAgdzY2FubmVkBnVpbnQzMghyZXNvbHZlZAZ1aW50MzIMcmVzb2x2ZWVhcmx5AAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10GcmV2ZWFsAAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BnJldmVhbAtjaGVja3N1bTI1NgpyZXZlYWxfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZyZXZlYWwLY2hlY2tzdW0yNTYIcm1tb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAp0YXJnZXRfcmVmCmNhcmdvX3JlZj8Icm1uZnRjZmcAAQdpdGVtX2lkBnVpbnQxNg5yb3V0ZV93YXlwb2ludAACAXgFaW50NjQBeQVpbnQ2NAhzY2hlZHVsZQACB3N0YXJ0ZWQKdGltZV9wb2ludAV0YXNrcwZ0YXNrW10Mc2NoZW1hX2ZpZWxkAAIEbmFtZQZzdHJpbmcKZmllbGRfdHlwZQZzdHJpbmcJc2VhdF92aWV3AAQHbm9kZV9pZAZ1aW50MzIEY29zdAZ1aW50NjQIcHJvZ3Jlc3MGdWludDY0A2dhcAZ1aW50NjQIc2V0Y2l2aWMAAQdhY2NvdW50BG5hbWUKc2V0Y2x1c3RlcgABA3JvdwtjbHVzdGVyX3JvdwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAtzZXRkZWFkbGluZQABCGRlYWRsaW5lBnVpbnQzMgpzZXRpbmZidXJuAAEDYnBzBnVpbnQxNghzZXRpbmZkMQABAmQxBnVpbnQzMgxzZXRpbmZkZW1hbmQAAwRwZWFrBnVpbnQ2NARiYXNlBnVpbnQ2NAVmbG9vcgZ1aW50NjQKc2V0aW5mbWludAADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJdGhyZXNob2xkBnVpbnQ2NAxzZXRpbmZ3ZWlnaHQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXdlaWdodF9mcAZ1aW50NjQJc2V0bmV4dGlkAAEHbmV4dF9pZAZ1aW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQxzZXR0aHJlc2hvbGQAAQl0aHJlc2hvbGQFdWludDgMc2V0dGxlYmFsbG90AAIJYmFsbG90X2lkBnVpbnQ2NAltYXhfcGFnZXMGdWludDMyDHNldHVud3JhcG1pbgABCGFzc2V0X2lkBnVpbnQ2NAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUHc2h1dHRsZQAEB2NhcnJpZXIGdWludDY0B2Zyb21faWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10Ic2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EHNvY2tldF9jYW5kaWRhdGUAAwd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdCGR1cmF0aW9uBnVpbnQzMgZhY3RpdmUGdWludDE2C3NvY2tldF9waWNrAAMFZm91bmQEYm9vbAZzb2NrZXQFdWludDgGd2luZG93D3Jlc2VydmVkX3dpbmRvdwxzdGFuZGluZ19yb3cABAdhY2NvdW50BG5hbWUIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMhJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwADB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgtzdG9yYWdlX3JvdwAHAmlkBnVpbnQ2NAVvd25lcgRuYW1lB2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sADAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10JY291cGxpbmdzCmNvdXBsaW5nW10Hc3ViamVjdAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQzMj8OdGFyZ2V0X2l0ZW1faWQHdWludDE2PwVyZWZpdAlyZWZpdF9vcD8MY2hhcnRlcl9ub2RlB3VpbnQzMj8KdGFza19ldmVudAAKCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAZ1aW50MzIEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDMyPwhsYW5lX2tleQV1aW50OAx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cABAdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcQYmFzZV9jYXBhY2l0eV9mbgZzdHJpbmcHdHJhbnNpdAAFAmlkBnVpbnQ2NAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wKdHJhdmVscGxhbgADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAQAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZBJkZWNvbXBfcmVzdWx0X3R5cGUNZGVjb21wX3Jlc3VsdBJkZW1hbmRfcmVzdWx0X3R5cGUNZGVtYW5kX3Jlc3VsdBRpbmZ2YWx1ZV9yZXN1bHRfdHlwZQ9pbmZ2YWx1ZV9yZXN1bHQVaW5mbHVlbmNlX3RvdGFsc190eXBlEGluZmx1ZW5jZV90b3RhbHMRcG9vbHNfcmVzdWx0X3R5cGUMcG9vbHNfcmVzdWx0FXBvb2xfcGFpcl9yZXN1bHRfdHlwZRBwb29sX3BhaXJfcmVzdWx0E21pbnRjZmdfcmVzdWx0X3R5cGUObWludGNmZ19yZXN1bHQTY2hhcnRlcl9yZXN1bHRfdHlwZQ5jaGFydGVyX3Jlc3VsdBhjaGFydGVycmVhZHlfcmVzdWx0X3R5cGUTY2hhcnRlcnJlYWR5X3Jlc3VsdBB2b3RlX3Jlc3VsdF90eXBlC3ZvdGVfcmVzdWx0D2RlcG90X3ZpZXdfdHlwZQpkZXBvdF92aWV3CHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAZ1bmxvYWQAAwJpZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQd1cGdyYWRlAAUKYnVpbGRlcl9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGaW5wdXRzDGNhcmdvX2l0ZW1bXQRzbG90BnVpbnQ4Pwt2b3RlX29wdGlvbgAFB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0BHNlYXQGdWludDMyBndlaWdodAZ1aW50NjQEcmFuawZ1aW50MzILdm90ZV9yZXN1bHQACQtsb2NhdGlvbl9pZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAVlcG9jaAZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFc2VhdHMGdWludDMyCHNldHRsaW5nBGJvb2wFcXVldWUIdWludDMyW10Hb3B0aW9ucw12b3RlX29wdGlvbltdBXBpY2tzCHVpbnQzMltdCXZvdGVyZWFkeQABCW1heF9wYWdlcwZ1aW50MzIEd2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMg53aW5kb3dfcmVjZWlwdAADBmpvYl9pZAZ1aW50NjQJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQEd2lwZQAACndvcmxkc19yb3cACQtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMgVzcGVudAZ1aW50NjQKdW5hc3NpZ25lZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAdmb3VuZGVyBG5hbWUHZm91bmRlZAZ1aW50MzINd29ybWhvbGVfaW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwtpc193b3JtaG9sZQRib29sC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDndyYXBjb25maWdfcm93AAMHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQxtaW5fYXNzZXRfaWQGdWludDY0DHdyYXBjb3N0X3JvdwADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjSkAQAyjXXSNM0xC2FiYW5kb25wbG90AADAcTdPilIyCmFkZGNvbnRyaWIAAABQUScqUzIJYWRkbW9kdWxlxwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbW9kdWxlCnN1bW1hcnk6ICdJbnN0YWxsIGEgbW9kdWxlIGludG8gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YWxsIGEgbW9kdWxlIGZyb20gY2FyZ28gaW50byBhIG1vZHVsZSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSB0eXBlIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSB0YXJnZXQgc2xvdCB0eXBlLiBUaGUgbW9kdWxlIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIGNhcmdvIHVwb24gaW5zdGFsbGF0aW9uLgAAAFh3NVMyCGFkZG5leHVzpwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbmV4dXMKc3VtbWFyeTogJ0FkZCBhIG5leHVzIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDcmVhdGUgYSBuZXcgbmV4dXMgZW50aXR5IGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcy4gTmV4dXNlcyBhcmUgb3duZWQgYnkgdGhlIGNvbnRyYWN0IGFuZCBzZXJ2ZSBhcyBmaXhlZCBnYXRoZXJpbmcgcG9pbnRzIHdoZXJlIHBsYXllcnMgY2FuIHdyYXAsIHVud3JhcCwgZGVwbG95LCBhbmQgb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggTkZULWJhY2tlZCBhc3NldHMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAFARmUtTMglhZGRvcmFjbGUAAAAAAIA0VTwFYmxlbmT8Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIG5ldyBibGVuZGVkIHN0YXRzLiBBbGwgaW5wdXQgc3RhY2tzIG11c3Qgc2hhcmUgdGhlIHNhbWUgaXRlbSBpZC4gVGhlIG91dHB1dCBzdGFjayBoYXMgdGhlIGNvbWJpbmVkIHF1YW50aXR5IG9mIGFsbCBpbnB1dHMuAAAAh74UnT4IYnVpbGRqb2IAAADINNYUnT4JYnVpbGRwbG90AAAAAABEhaZBBmNhbmNlbMICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNhbmNlbApzdW1tYXJ5OiAnQ2FuY2VsIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FuY2VsIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRhc2tzIGZyb20gdGhlIGVuZCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZS4gVGFza3MgdGhhdCBhcmUgaW1tdXRhYmxlIGFuZCBpbiBwcm9ncmVzcyBjYW5ub3QgYmUgY2FuY2VsbGVkLgBSdPpEhaZBC2NhbmNlbGJ1aWxkAACQ2w5FhaZBC2NhbmNlbGNpdmljAADyMhdFhaZBC2NhbmNlbGNyYWZ0AABApjGak7FBCmNhc3RiYWxsb3QA4JNR96p8TUMMY2hhcnRlcnJlYWR5AKBizrph5LZDDGNpdmljc2h1dHRsZQAAQIpOH+lMRApjbGFpbWJ1aWxkAABAXuYi6UxECmNsYWltY3JhZnQAAADINFbpTEQJY2xhaW1wbG90AHBVviZj6UxEDGNsYWltc3RhcnRlcgAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEBDtCqFaUQKY2xvc2VlcG9jaACQl7noqox1RAxjbHVzdGVyY3JhZnQAAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAACHvrzMRQhjcmFmdGpvYgAAAMguqYvYSQlkYmdjcmVkaXQAAAAAAB/62EkHZGJnam9icwAAgMomTSPZSQpkYmdtYW5kYXRlAAAwp1cxU9lJC2RiZ3BhZ2Vyb3dzAAAAAAAiV9lJB2RiZ3BpY2sAAAAACplY2UkIZGJncGxhY2UAAAAAil1d2UkIZGJncHVyZ2UAAACAyFR12UkJZGJncmVwYWNrAAAAADgbhdlJCGRiZ3NlYXRzAAAA8NnlqaJKCWRlbGVudGl0eQAAAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgLo040yrSgpkZXBvdHN0b3JlAAAAUNDkTKtKCWRlcG90dGFrZQAAgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgAATk6q7LpbCmZpeGl0ZW1pZHMAAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAgDQ1XQVmb3VuZAAAAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6Q4qUcO6ymYgxnZW5lc2lzd29ybGTnBy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzd29ybGQKc3VtbWFyeTogJ0ZvdW5kIGEgd29ybGQgYXQgZ2FtZSBsYXVuY2ggd2l0aCBpdHMgY2l2aWMgY2hhcnRlcnMgYWxyZWFkeSBjb21wbGV0ZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZvdW5kIGEgcGxhbmV0IGFzIGEgd29ybGQgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZCwgd2l0aCB0aGUgbGlzdGVkIGNoYXJ0ZXIgbm9kZXMgY29tcGxldGVkIGluIG9yZGVyLiBUaGUgZm91bmRlciBtdXN0IGhvbGQgYSBjb21wYW55IG9uIHRoZSBwbGF0Zm9ybTsgdGhlIGZvdW5kZXIgaXMgY3JlZGl0ZWQgd2l0aCBsaWZldGltZSBpbmZsdWVuY2UgZXF1YWwgdG8gdGhlIHN1bW1lZCBjb3N0IG9mIHRoZSBsaXN0ZWQgbm9kZXMsIGFuZCBlYWNoIG5vZGUgaXMgdGhlbiBjb21wbGV0ZWQgdGhyb3VnaCB0aGUgc2FtZSBydWxlcyBhIGNoYXJ0ZXIgY3JhbmsgYXBwbGllczogcHJlcmVxdWlzaXRlcyBtdXN0IGJlIHNhdGlzZmllZCBieSBlYXJsaWVyIG5vZGVzIGluIHRoZSBsaXN0LCBhIHNwYXduIG5vZGUgYWRvcHRzIGEgY2l2aWMgZW50aXR5IG9mIGl0cyBraW5kIGFscmVhZHkgc3RhbmRpbmcgYXQgdGhlIGxvY2F0aW9uIG9yIHNwYXducyBvbmUsIGFuZCBhIHJlZml0IG5vZGUgcmVmaXRzIHRoZSBlbnRpdHkgcmVjb3JkZWQgZm9yIGl0cyB0YXJnZXQuIFNwZW50IGFkdmFuY2VzIGJ5IGV2ZXJ5IG5vZGUncyBjb3N0LCBzbyB0aGUgcmVzdWx0aW5nIHdvcmxkIGlzIG9uZSBhIHNpbmdsZSBmb3VuZGVyIGNvdWxkIGhhdmUgYWR2YW5jZWQgYWxvbmUuIEVhY2ggbG9jYXRpb24gY2FuIGJlIGZvdW5kZWQgdGhpcyB3YXkgb25jZS4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LoAPfSk6fbJiDGdldGJ1aWxkam9icwAAwFX5moayYgpnZXRjaGFydGVyAKDUzfmahrJiDGdldGNoYXJ0dHJlZQDgk1E334ayYgxnZXRjaHJ0cmVhZHkAAMBVGeuIsmIKZ2V0Y2x1c3RlcgAAAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLoAPfXmZi7JiDGdldGNyYWZ0am9icwAAAKiSIpWyYglnZXRkZWNvbXAAAABI00iVsmIJZ2V0ZGVtYW5kAABAdphWlbJiCmdldGRlcG9zaXQAAAAAmVaVsmIIZ2V0ZGVwb3QAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AAC8QSqt6bJiC2dldGluZmRlY2F5AKDQVDqu6bJiDGdldGluZmx1ZW5jZQAAlI5mr+myYgtnZXRpbmZ2YWx1ZQAATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuAABbKE8ns2IKZ2V0bWludGNmZwDgk1E3TyezYgxnZXRtaW50cmVhZHkAALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAAAAIFJas2IHZ2V0cG9vbAAAAAA4UlqzYghnZXRwb29scwCgssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLuCTUVdlurNiDGdldHZvdGVyZWFkeQAAAABYZbqzYghnZXR2b3RlcwAAVKRNXsqzYgtnZXR3b3JtaG9sZQCQHZ7m5qrpZQxncm91cHRyYW5zaXQAAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28AAECMCuVLq3QKaW1wb3J0Y2VsbADgs8tT5UurdAxpbXBvcnRlbnRpdHkAABqiVeVLq3QLaW1wb3J0ZXBvY2gAAKqml+VLq3QLaW1wb3J0Z3JvdXAAwBbKa+ZLq3QMaW1wb3J0bmZ0Y2ZnAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAAAANDS1iQZsYXVuY2gAAAAAAACQDI0EbG9hZAAAAPDJqJunkwltaW50cmVhZHkAAAAAKrqsNpUIbW92ZXRpbGUAAID6Lpqrs5kKbmF0dXJhbGl6ZQAAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAAAoaaa6BnJlbmFtZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgBAjEbtSLG6CnJlc29sdmVhbGwA4OM1Su1IsboMcmVzb2x2ZWVhcmx5AAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAMhth7LCCHNldGNpdmljAADAVRnriLLCCnNldGNsdXN0ZXIAAADA6VKKssIJc2V0Y29vcmRzAADUdDEZlbLCC3NldGRlYWRsaW5lAADAvPqs6bLCCnNldGluZmJ1cm4AAAAAIa3pssIIc2V0aW5mZDEAkKaRKq3pssIMc2V0aW5mZGVtYW5kAABAnk6u6bLCCnNldGluZm1pbnQAkBtziq/pssIMc2V0aW5md2VpZ2h0AAAASC53NbPCCXNldG5leHRpZAAAAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkukCJtWN2Ws8IMc2V0dGhyZXNob2xkAJBpjOaomLPCDHNldHRsZWJhbGxvdAAwnazm8qmzwgxzZXR1bndyYXBtaW4AADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAABAxZx1wwdzaHV0dGxlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAijpRWQ3HCnN3YXBtb2R1bGUAAAAAKrpcDccIc3dhcHRpbGUAAAAAIDs8zc0HdHJhbnNpdAAAAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAMA0sUa1zc0KdHJhdmVscGxhbgAAAACexqrS1Ah1bmRlcGxveecELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVuZGVwbG95CnN1bW1hcnk6ICdQYWNrIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYSBob3N0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQYWNrIGFuIGVudGl0eSBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnbyBhcyBhIHBhY2tlZC1lbnRpdHkgaXRlbS4gSG9zdCBhbmQgdGFyZ2V0IG11c3Qgc2hhcmUgdGhlIHNhbWUgb3duZXIgYW5kIGNvb3JkaW5hdGVzLCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycyBhbmQgZW5vdWdoIGNhcGFjaXR5IGZvciB0aGUgcGFja2VkIG1hc3MsIGFuZCB0aGUgdGFyZ2V0IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGFuZCBzY2hlZHVsZXMgdW5kZXBsb3kgdGFza3Mgb24gYm90aCBlbnRpdGllczsgb24gcmVzb2x1dGlvbiB0aGUgdGFyZ2V0IGlzIGVyYXNlZCBhbmQgdGhlIHBhY2tlZCBlbnRpdHkgaXMgYWRkZWQgdG8gdGhlIGhvc3QncyBjYXJnby4gSW52ZXJzZSBvZiBkZXBsb3kuAAAAACRD49QGdW5sb2FkAAAAAEAlc1nVB3VwZ3JhZGUAAADwyairMt0Jdm90ZXJlYWR5AAAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tKAAAAABkGqM5A2k2NAAACmJhbGxvdF9yb3cAMESuZhqjOQNpNjQAAA9iYWxsb3RwaWNrc19yb3cAALAKZxqjOQNpNjQAAA5iYWxsb3Rfc2VxX3Jvd6BizgpnGqM5A2k2NAAAEGJhbGxvdHNldHRsZV9yb3cAAMBsuhSdPgNpNjQAAA1idWlsZGluZ3Nfcm93AADAh74UnT4DaTY0AAAMYnVpbGRqb2Jfcm93AAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AKpreKrvskMDaTY0AAAPY2l0aXplbnNoaXBfcm93AJhbkyLktkMDaTY0AAAPY2l2aWNjb25maWdfcm93AAAAAGDpTEQDaTY0AAAJY2xhaW1fcm93AAAA4KqMdUQDaTY0AAALY2x1c3Rlcl9yb3cAAAAAZCclRQNpNjQAAApjb21taXRfcm93AADAh768zEUDaTY0AAAMY3JhZnRqb2Jfcm93AAAAAPjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAYF591nQDaTY0AAALaW5mYnVybl9yb3cAAEjTSJXWdANpNjQAAA1pbmZkZW1hbmRfcm93AAAAIE8n13QDaTY0AAALaW5mbWludF9yb3cAAAAgUlrXdANpNjQAAAtpbmZwb29sX3JvdwCAzy4abdd0A2k2NAAADmluZnF1YWxpdHlfcm93AADIjTnF13QDaTY0AAANaW5md2VpZ2h0X3JvdwAAAABfBRGNA2k2NAAACmxvY2tlcl9yb3cAAABYZZOmkQNpNjQAAAxtYW5kYXRlc19yb3cAAAAAAJunkwNpNjQAAAltaW50cV9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAABiry+itA2k2NAAADHByb2dyZXNzX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAGy6NE3GA2k2NAAADHN0YW5kaW5nX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAEAxc2nGA2k2NAAAC3N0b3JhZ2Vfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AAAAAOAUL+UDaTY0AAAKd29ybGRzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAGIAMo110jTNMQx0YXNrX3Jlc3VsdHMAwHE3T4pSMgx0YXNrX3Jlc3VsdHMAAACHvhSdPg53aW5kb3dfcmVjZWlwdAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAFJ0+kSFpkEMdGFza19yZXN1bHRzAJDbDkWFpkEOY2FuY2VsX3Jlc3VsdHOgYs66YeS2Qwx0YXNrX3Jlc3VsdHMAQF7mIulMRAx0YXNrX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHOQl7noqox1RAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQ53aW5kb3dfcmVjZWlwdAAAAAAiV9lJC3NvY2tldF9waWNrAAAACplY2UkPcmVzZXJ2ZWRfd2luZG93AACAyFR12UkNcmVwYWNrX3Jlc3VsdAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAujTjTKtKDHRhc2tfcmVzdWx0cwAAUNDkTKtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0c4APfSk6fbJiEGJ1aWxkam9ic19yZXN1bHQAwFX5moayYg5jaGFydGVyX3Jlc3VsdKDUzfmahrJiE2NoYXJ0ZXJfdHJlZV9yZXN1bHTgk1E334ayYhNjaGFydGVycmVhZHlfcmVzdWx0AMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZ4APfXmZi7JiEGNyYWZ0am9ic19yZXN1bHQAAKiSIpWyYg1kZWNvbXBfcmVzdWx0AABI00iVsmINZGVtYW5kX3Jlc3VsdABAdphWlbJiDmV4dGVuZGVkX2Fzc2V0AAAAmVaVsmIKZGVwb3RfdmlldwAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0ALxBKq3psmIGdWludDY0oNBUOq7psmIQaW5mbHVlbmNlX3RvdGFscwCUjmav6bJiD2luZnZhbHVlX3Jlc3VsdABMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm8AVPVZquyyYgV1aW50OIBV9Vmq7LJiC2VudW1fcmVzdWx0AExWMk0Hs2IQa2luZF9tZXRhX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkAABbKE8ns2IObWludGNmZ19yZXN1bHTgk1E3TyezYgZ1aW50MzIAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm8AAAAgUlqzYhBwb29sX3BhaXJfcmVzdWx0AAAAOFJas2IMcG9vbHNfcmVzdWx0oLLJ+NFbs2IPcHJvamVjdGVkX3N0YXRlAABQ1SF1s2IOcmVjaXBlc19yZXN1bHQAAFbVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAzgZhdbNiC2VudW1fcmVzdWx0ALDaV2F1s2ITc3RyYXR1bV9yZW1haW5pbmdbXYAVuppidbNiEHJlc291cmNlc19yZXN1bHQAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtd4JNRV2W6s2IGdWludDMyAAAAWGW6s2ILdm90ZV9yZXN1bHQAVKRNXsqzYg13b3JtaG9sZV9pbmZvkB2e5uaq6WUMdGFza19yZXN1bHRzAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAAA0NLWJDHRhc2tfcmVzdWx0cwAAAAAAkAyNDHRhc2tfcmVzdWx0cwAAACq6rDaVDHRhc2tfcmVzdWx0cwAAiFcz6fKaBnN0cmluZwAAZdcghUysDHRhc2tfcmVzdWx0cwB8dnkqhUysDHRhc2tfcmVzdWx0cwAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwBAjEbtSLG6EnJlc29sdmVhbGxfcmVzdWx0c+DjNUrtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAEDFnHXDDHRhc2tfcmVzdWx0cwAAoOwaxGnGDHRhc2tfcmVzdWx0cwCAzy5PxWnGDHRhc2tfcmVzdWx0cwAAACq6XA3HDHRhc2tfcmVzdWx0cwAAACA7PM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwDANLFGtc3NDHRhc2tfcmVzdWx0cwAAAJ7GqtLUDHRhc2tfcmVzdWx0cwAAAAAkQ+PUDHRhc2tfcmVzdWx0cwAAAEAlc1nVDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
825
+ const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjSAgthYmFuZG9ucGxvdAABB3Bsb3RfaWQGdWludDY0CmFkZGNvbnRyaWIABQZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAZidW5kbGUMY2FyZ29faXRlbVtdCWFkZG1vZHVsZQAECWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAlhZGRvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQ1hcHBlbmRfcmVzdWx0AAIGcGxhY2VkCXBsYWNlbWVudAVsYW5lcwZsYW5lW10NYmFsbG90X2NyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQGdWludDY0CmJhbGxvdF9yb3cABwliYWxsb3RfaWQGdWludDY0BGtpbmQFdWludDgHc3ViamVjdAZ1aW50NjQFc2VhdHMGdWludDMyDXNldHRsZWRfZXBvY2gGdWludDMyBXF1ZXVlCHVpbnQzMltdBnBhcmtlZA9iYWxsb3RfY3JlZGl0W10OYmFsbG90X3NlcV9yb3cAAwduZXh0X2lkBnVpbnQ2NAZjdXJzb3IGdWludDY0CXBhZ2Vfcm93cwZ1aW50MzIMYmFsbG90X3RhbGx5AAIGb3B0aW9uBnVpbnQzMgZ3ZWlnaHQGdWludDY0D2JhbGxvdHBpY2tzX3JvdwACB2FjY291bnQEbmFtZQVwaWNrcwh1aW50MzJbXRBiYWxsb3RzZXR0bGVfcm93AAYJYmFsbG90X2lkBnVpbnQ2NAVyb3VuZAZ1aW50MzIGY3Vyc29yBnVpbnQ2NAx0YXJnZXRfZXBvY2gGdWludDMyB3RhbGxpZXMOYmFsbG90X3RhbGx5W10Gc2VhdGVkCHVpbnQzMltdBWJsZW5kAAICaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10KYmxlbmRkZXBvdAADCGRlcG90X2lkBnVpbnQ2NAVvd25lcgRuYW1lBmlucHV0cwxjYXJnb19pdGVtW10MYnVpbGRlcl9sYW5lAAQKc2xvdF9pbmRleAV1aW50OAVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCm91dHB1dF9wY3QGdWludDE2DWJ1aWxkaW5nc19yb3cAAgllbnRpdHlfaWQGdWludDY0CGJ1aWxkaW5nBXVpbnQ4CGJ1aWxkam9iAAUJdGFyZ2V0X2lkBnVpbnQ2NAdkb2NrX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGaW5wdXRzDGNhcmdvX2l0ZW1bXQtzaHV0dGxlZF9ieQd1aW50NjQ/DGJ1aWxkam9iX3JvdwAMAmlkBnVpbnQ2NAhidWlsZGluZwZ1aW50NjQGc29ja2V0BXVpbnQ4BnRhcmdldAZ1aW50NjQFb3duZXIEbmFtZQZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQYnVpbGRqb2JzX3Jlc3VsdAABBGpvYnMOYnVpbGRqb2Jfcm93W10JYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwtjYW5jZWxidWlsZAACBmpvYl9pZAZ1aW50NjQLc2h1dHRsZWRfYnkHdWludDY0PwtjYW5jZWxjaXZpYwADCGJ1aWxkaW5nBnVpbnQ2NAhsYW5lX2tleQV1aW50OAdmcm9tX2lkBnVpbnQ2NAtjYW5jZWxjcmFmdAABBmpvYl9pZAZ1aW50NjQKY2FyZ29faXRlbQAFB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgllbnRpdHlfaWQHdWludDY0PwljYXJnb19yZWYABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQllbnRpdHlfaWQHdWludDY0PwljYXJnb19yb3cABwJpZAZ1aW50NjQJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10Lc2VxdWVuY2VfaWQHdWludDY0PwpjYXJnb192aWV3AAYHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyAmlkBnVpbnQ2NAllbnRpdHlfaWQHdWludDY0PxBjYXJnb3Jlc2VydmVfcm93AAkCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQEaG9sZAZ1aW50NjQFb3duZXIEbmFtZQdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10Lc2VxdWVuY2VfaWQHdWludDY0PwpjYXN0YmFsbG90AAMGcGxheWVyBG5hbWUJYmFsbG90X2lkBnVpbnQ2NAVwaWNrcwh1aW50MzJbXRBjaGFydGVyX25vZGVfZGVmAAYHbm9kZV9pZAZ1aW50MzIEY29zdAZ1aW50NjQHcHJlcmVxcwh1aW50MzJbXQZncmFudHMNY2l2aWNfZ3JhbnRbXQ9leGNsdXNpb25fZ3JvdXAGdWludDE2CnJlcGVhdF9jYXAFdWludDgSY2hhcnRlcl9yZWFkeV92aWV3AAMBeAVpbnQ2NAF5BWludDY0B21hbmRhdGUGdWludDMyDmNoYXJ0ZXJfcmVzdWx0AA4LbG9jYXRpb25faWQGdWludDY0CGxpZmV0aW1lBnVpbnQ2NAVzcGVudAZ1aW50NjQKdW5hc3NpZ25lZAZ1aW50NjQHbWFuZGF0ZQZ1aW50MzIJbmV4dF9jb3N0BnVpbnQ2NAtwcmVyZXFzX21ldARib29sCWJ1aWxkYWJsZQRib29sBWVwb2NoBnVpbnQzMgVidWlsdA5jaGFydGVyX3ZpZXdbXQliYWxsb3RfaWQGdWludDY0CHNldHRsaW5nBGJvb2wFcXVldWULc2VhdF92aWV3W10IcHJvZ3Jlc3MPcHJvZ3Jlc3Nfdmlld1tdE2NoYXJ0ZXJfdHJlZV9yZXN1bHQAAQVub2RlcxJjaGFydGVyX25vZGVfZGVmW10MY2hhcnRlcl92aWV3AAIHbm9kZV9pZAZ1aW50MzIHcmVwZWF0cwZ1aW50MTYMY2hhcnRlcnJlYWR5AAIBeAVpbnQ2NAF5BWludDY0E2NoYXJ0ZXJyZWFkeV9yZXN1bHQAAQZ3b3JsZHMUY2hhcnRlcl9yZWFkeV92aWV3W10PY2l0aXplbnNoaXBfcm93AAQLbG9jYXRpb25faWQGdWludDY0CGxpZmV0aW1lBnVpbnQ2NAZhY3RpdmUGdWludDY0DGFjdGl2ZV9lcG9jaAZ1aW50MzILY2l2aWNfZ3JhbnQABARraW5kBXVpbnQ4CGJ1aWxkaW5nBXVpbnQ4BHN0YXQFdWludDgFdmFsdWUGdWludDE2D2NpdmljY29uZmlnX3JvdwABC2NpdmljX293bmVyBG5hbWUMY2l2aWNzaHV0dGxlAAQIYnVpbGRpbmcGdWludDY0B2Zyb21faWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10JY2xhaW1fcm93AAEFb3duZXIEbmFtZQpjbGFpbWJ1aWxkAAEGam9iX2lkBnVpbnQ2NApjbGFpbWNyYWZ0AAMGam9iX2lkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAtzaHV0dGxlZF9ieQd1aW50NjQ/CWNsYWltcGxvdAADCmJ1aWxkZXJfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgRzbG90DGNsdXN0ZXJfc2xvdAxjbGFpbXN0YXJ0ZXIAAQVvd25lcgRuYW1lCWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/CmNsb3NlZXBvY2gAAQVlcG9jaAZ1aW50NjQMY2x1c3Rlcl9jZWxsAAMCZ3gEaW50OAJneQRpbnQ4BmVudGl0eQZ1aW50NjQLY2x1c3Rlcl9yb3cAAgRyb290BnVpbnQ2NAVjZWxscw5jbHVzdGVyX2NlbGxbXQxjbHVzdGVyX3Nsb3QAAwNodWIGdWludDY0Amd4BGludDgCZ3kEaW50OA5jbHVzdGVyX3NvdXJjZQACCXNvdXJjZV9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDGNsdXN0ZXJjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgdzb3VyY2VzEGNsdXN0ZXJfc291cmNlW10GdGFyZ2V0B3VpbnQ2ND8Ec2xvdAZ1aW50OD8GY29tbWl0AAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BmNvbW1pdAtjaGVja3N1bTI1Ngpjb21taXRfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZjb21taXQLY2hlY2tzdW0yNTYJY29uZmlnbG9nAAEGY29uZmlnC2dhbWVfY29uZmlnC2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2Pwhjb3VwbGluZwADC2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYEaG9sZAZ1aW50NjQEa2luZAV1aW50OAVjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdBnRhcmdldAd1aW50NjQ/BHNsb3QGdWludDg/DGNyYWZ0ZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgFc3BlZWQGdWludDE2BWRyYWluBnVpbnQzMgpvdXRwdXRfcGN0BnVpbnQxNghjcmFmdGpvYgAGB3NoaXBfaWQGdWludDY0C3dvcmtzaG9wX2lkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdC3NodXR0bGVkX2J5B3VpbnQ2ND8MY3JhZnRqb2Jfcm93AA4CaWQGdWludDY0CGJ1aWxkaW5nBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQY3JhZnRqb2JzX3Jlc3VsdAABBGpvYnMOY3JhZnRqb2Jfcm93W10JZGJnYXBwZW5kAAYFbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQhuZXdfdGFzawR0YXNrCGxhbmVfa2V5BXVpbnQ4A25vdwp0aW1lX3BvaW50DW1pbl9zdGFydHNfYXQLdGltZV9wb2ludD8KZGJnYmFycmllcgAEBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10IbmV3X3Rhc2sEdGFzawhsYW5lX2tleQV1aW50OAlkYmdjcmVkaXQABQVvd25lcgRuYW1lAXgFaW50NjQBeQVpbnQ2NA1hbW91bnRfYXRvbWljBnVpbnQ2NARub2RlB3VpbnQzMj8HZGJnam9icwACBmNyYWZ0cw5jcmFmdGpvYl9yb3dbXQZidWlsZHMOYnVpbGRqb2Jfcm93W10KZGJnbWFuZGF0ZQADAXgFaW50NjQBeQVpbnQ2NAdub2RlX2lkBnVpbnQzMgtkYmdwYWdlcm93cwABBHJvd3MGdWludDMyB2RiZ3BpY2sABAdzb2NrZXRzEnNvY2tldF9jYW5kaWRhdGVbXQJpZAZ1aW50NjQHYXJyaXZhbAp0aW1lX3BvaW50A2NhcAZ1aW50MTYIZGJncGxhY2UABAd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdAmlkBnVpbnQ2NAdhcnJpdmFsCnRpbWVfcG9pbnQIZHVyYXRpb24GdWludDMyCGRiZ3B1cmdlAAIKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CWRiZ3JlcGFjawADB3dpbmRvd3MRcmVzZXJ2ZWRfd2luZG93W10MY2FuY2VsbGVkX2lkBnVpbnQ2NANub3cKdGltZV9wb2ludAhkYmdzZWF0cwADAXgFaW50NjQBeQVpbnQ2NAVzZWF0cwZ1aW50MzIIZGJnc3RhcnQABgVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdCG5ld190YXNrBHRhc2sIbGFuZV9rZXkFdWludDgDbm93CnRpbWVfcG9pbnQNbWluX3N0YXJ0c19hdAt0aW1lX3BvaW50Pw1kZWNvbXBfYnVja2V0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhyYXdfbWFzcwZ1aW50MzINZGVjb21wX3Jlc3VsdAADB2l0ZW1faWQGdWludDE2DnByb2Nlc3NlZF9tYXNzBnVpbnQ2NAdidWNrZXRzD2RlY29tcF9idWNrZXRbXQlkZWxlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DWRlbWFuZF9yZXN1bHQABQ1hYnVuZGFudF9tYXNrBXVpbnQ4DGxhY2tpbmdfbWFzawV1aW50OAVhY3V0ZQV1aW50OAduZWVkX2ZwCHVpbnQ2NFtdBWVwb2NoBnVpbnQzMghkZW1vbGlzaAABCWVudGl0eV9pZAZ1aW50NjQGZGVwbG95AAMCaWQGdWludDY0A3JlZgljYXJnb19yZWYEc2xvdA1jbHVzdGVyX3Nsb3Q/CmRlcG90X3ZpZXcABApwbGF5ZXJfY2FwBnVpbnQ2NAtzdG9yZWRfbWFzcwZ1aW50NjQNcmVzZXJ2ZWRfbWFzcwZ1aW50NjQEcm93cw1zdG9yYWdlX3Jvd1tdCmRlcG90c3RvcmUABAdzaGlwX2lkBnVpbnQ2NAhkZXBvdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdC3NodXR0bGVkX2J5B3VpbnQ2ND8JZGVwb3R0YWtlAAQHc2hpcF9pZAZ1aW50NjQIZGVwb3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtzaHV0dGxlZF9ieQd1aW50NjQ/CmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MzIIcmVjaGFyZ2UGdWludDMyFGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQzMg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpdGVtX2lkBnVpbnQxNgljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBmVuZXJneQd1aW50MzI/CGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/DmdhdGhlcmVyX2xhbmVzD2dhdGhlcmVyX2xhbmVbXQ1jcmFmdGVyX2xhbmVzDmNyYWZ0ZXJfbGFuZVtdDWJ1aWxkZXJfbGFuZXMOYnVpbGRlcl9sYW5lW10MbG9hZGVyX2xhbmVzDWxvYWRlcl9sYW5lW10IbGF1bmNoZXIPbGF1bmNoZXJfc3RhdHM/BWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10McHJvamVjdGVkX2F0CnRpbWVfcG9pbnQNZW50aXR5X2xheW91dAADDmVudGl0eV9pdGVtX2lkBnVpbnQxNgVzbG90cwpzbG90X2RlZltdDWJhc2VfaHVsbG1hc3MGdWludDMyFWVudGl0eV9sYXlvdXRzX3Jlc3VsdAABCGVudGl0aWVzD2VudGl0eV9sYXlvdXRbXQplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CmVudGl0eV9yb3cADAJpZAZ1aW50NjQFb3duZXIEbmFtZQRraW5kBG5hbWUHaXRlbV9pZAZ1aW50MTYEbmFtZQZzdHJpbmcFc3RhdHMGdWludDY0C2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQd1aW50MzI/CWNhcmdvbWFzcwZ1aW50MzIHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDmVudGl0eV9zZXFfcm93AAEHbmV4dF9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BnVpbnQzMhBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQllcG9jaF9yb3cABAVlcG9jaAZ1aW50NjQKb3JhY2xlX2lkcwZuYW1lW10JdGhyZXNob2xkBXVpbnQ4BHNlZWQLY2hlY2tzdW0yNTYMZml4Y2FyZ29tYXNzAAEJZW50aXR5X2lkBnVpbnQ2NAhmaXhodWJpZAAACmZpeGl0ZW1pZHMAABBmb290cHJpbnRfcmVzdWx0AAEFY2VsbHMLZ3JpZF9jZWxsW10LZm9yY2VyZXZlYWwAAQVlcG9jaAZ1aW50NjQFZm91bmQABAZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAFCXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMgRzbG90BnVpbnQ4Pw1nYXRoZXJlcl9sYW5lAAUKc2xvdF9pbmRleAV1aW50OAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDMyBWRlcHRoBnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNgpnYXRoZXJwbGFuAAYJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyCHJlY2hhcmdlBGJvb2wFc2xvdHMFYnl0ZXMMZ2VuZXNpc2ZsZWV0AAEIZW50aXRpZXMMZW50aXR5X3Jvd1tdDGdlbmVzaXN3b3JsZAAEB2ZvdW5kZXIEbmFtZQF4BWludDY0AXkFaW50NjQIbm9kZV9pZHMIdWludDMyW10MZ2V0YnVpbGRqb2JzAAELYnVpbGRpbmdfaWQGdWludDY0DGdldGJ1aWxkb3B0cwAFCXRhcmdldF9pZAZ1aW50NjQHZG9ja19pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmlucHV0cwxjYXJnb19pdGVtW10KY2FuZGlkYXRlcwh1aW50NjRbXQtnZXRjYmxkb3B0cwACBmpvYl9pZAZ1aW50NjQKY2FuZGlkYXRlcwh1aW50NjRbXQpnZXRjaGFydGVyAAIBeAVpbnQ2NAF5BWludDY0DGdldGNoYXJ0dHJlZQAADGdldGNocnRyZWFkeQAADGdldGNsYWltb3B0cwADBmpvYl9pZAZ1aW50NjQHc2hpcF9pZAZ1aW50NjQKY2FuZGlkYXRlcwh1aW50NjRbXQpnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAAxnZXRjcmFmdGpvYnMAAQtidWlsZGluZ19pZAZ1aW50NjQMZ2V0Y3JhZnRvcHRzAAcHc2hpcF9pZAZ1aW50NjQLd29ya3Nob3BfaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10KY2FuZGlkYXRlcwh1aW50NjRbXQhyZWNoYXJnZQRib29sCWdldGRlY29tcAABB2l0ZW1faWQGdWludDE2CWdldGRlbWFuZAACAXgFaW50NjQBeQVpbnQ2NApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQIZ2V0ZGVwb3QAAghkZXBvdF9pZAZ1aW50NjQFb3duZXIEbmFtZQtnZXRkaXN0YW5jZQAEAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dldGVsaWdpYmxlAAIGY29vcmRzC2Nvb3JkaW5hdGVzB3N0cmF0dW0GdWludDE2CWdldGVudGNscwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DGdldGZvb3RwcmludAABB2l0ZW1faWQGdWludDE2C2dldGluZmRlY2F5AAIGYWN0aXZlBnVpbnQ2NAZlcG9jaHMGdWludDMyDGdldGluZmx1ZW5jZQADBW93bmVyBG5hbWUBeAVpbnQ2NAF5BWludDY0C2dldGluZnZhbHVlAAMFaXRlbXMMY2FyZ29faXRlbVtdAXgFaW50NjQBeQVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CmdldG1pbnRjZmcAAAxnZXRtaW50cmVhZHkAAAtnZXRtb2R0eXBlcwAACmdldG1vZHVsZXMAAAlnZXRuZWFyYnkAAgllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wKZ2V0bmZ0YmFzZQAACmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUHZ2V0cG9vbAACCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgIZ2V0cG9vbHMAAAxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAADGdldHN0b3Jlb3B0cwAEB3NoaXBfaWQGdWludDY0CGRlcG90X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10KY2FuZGlkYXRlcwh1aW50NjRbXQpnZXRzdHJhdHVtAAMBeAVpbnQ2NAF5BWludDY0B3N0cmF0dW0GdWludDE2DGdldHN1bW1hcmllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8LZ2V0dGFrZW9wdHMABAdzaGlwX2lkBnVpbnQ2NAhkZXBvdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCmNhbmRpZGF0ZXMIdWludDY0W10MZ2V0dGFza3R5cGVzAAAMZ2V0dm90ZXJlYWR5AAAIZ2V0dm90ZXMAAwF4BWludDY0AXkFaW50NjQGcGxheWVyBG5hbWULZ2V0d29ybWhvbGUAAgF4BWludDY0AXkFaW50NjQJZ3JpZF9jZWxsAAICZ3gEaW50OAJneQRpbnQ4DGdyb3VwdHJhbnNpdAAFCGVudGl0aWVzDGVudGl0eV9yZWZbXQJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAQIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDMyEGNhcGFjaXR5X2J5X3RpZXIRaGF1bGVyX3RpZXJfY2FwW10PaGF1bGVyX3RpZXJfY2FwAAIEdGllcgV1aW50OAhjYXBhY2l0eQV1aW50OARob2xkAAUCaWQGdWludDY0BGtpbmQFdWludDgLY291bnRlcnBhcnQKZW50aXR5X3JlZgV1bnRpbAp0aW1lX3BvaW50DWluY29taW5nX21hc3MGdWludDMyC2ltcG9ydGNhcmdvAAEDcm93CWNhcmdvX3JvdwppbXBvcnRjZWxsAAQEcm9vdAZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4CWVudGl0eV9pZAZ1aW50NjQMaW1wb3J0ZW50aXR5AAEDcm93CmVudGl0eV9yb3cLaW1wb3J0ZXBvY2gAAQNyb3cJZXBvY2hfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRsb2NrZXIAAgVvd25lcgRuYW1lA3Jvdwpsb2NrZXJfcm93DGltcG9ydG5mdGNmZwABA3Jvdw1uZnRjb25maWdfcm93DGltcG9ydHBsYXllcgABBW93bmVyBG5hbWUNaW1wb3J0cmVzZXJ2ZQACC2Vwb2NoX3Njb3BlBnVpbnQzMgNyb3cLcmVzZXJ2ZV9yb3cLaW1wb3J0c3RhdGUAAQNyb3cJc3RhdGVfcm93DWltcG9ydHN0b3JhZ2UAAghkZXBvdF9pZAZ1aW50NjQDcm93C3N0b3JhZ2Vfcm93C2luZmJ1cm5fcm93AAEDYnBzBnVpbnQxNg1pbmZkZW1hbmRfcm93AAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0EGluZmx1ZW5jZV90b3RhbHMACxFzdGFuZGluZ19saWZldGltZQZ1aW50NjQPc3RhbmRpbmdfYWN0aXZlBnVpbnQ2NBRjaXRpemVuc2hpcF9saWZldGltZQZ1aW50NjQSY2l0aXplbnNoaXBfYWN0aXZlBnVpbnQ2NBFsb2NhdGlvbl9saWZldGltZQZ1aW50NjQPbG9jYXRpb25fYWN0aXZlBnVpbnQ2NAVzcGVudAZ1aW50NjQHbWFuZGF0ZQZ1aW50MzIHZm91bmRlcgRuYW1lB2ZvdW5kZWQGdWludDMyBWVwb2NoBnVpbnQzMgtpbmZtaW50X3JvdwADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJdGhyZXNob2xkBnVpbnQ2NAtpbmZwb29sX3JvdwAGCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DmluZnF1YWxpdHlfcm93AAECZDEGdWludDMyD2luZnZhbHVlX3Jlc3VsdAACDHRvdGFsX2F0b21pYwZ1aW50NjQPcGVyX2l0ZW1fYXRvbWljCHVpbnQ2NFtdDWluZndlaWdodF9yb3cAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXdlaWdodF9mcAZ1aW50NjQIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nBGxhbmUAAghsYW5lX2tleQV1aW50OAhzY2hlZHVsZQhzY2hlZHVsZQZsYXVuY2gAAwtsYXVuY2hlcl9pZAZ1aW50NjQKY2F0Y2hlcl9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDmxhdW5jaGVyX3N0YXRzAAMLY2hhcmdlX3JhdGUGdWludDE2CHZlbG9jaXR5BnVpbnQxNgVkcmFpbgZ1aW50MTYEbG9hZAADAmlkBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10LbG9hZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYKb3V0cHV0X3BjdAZ1aW50MTYQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbAtpc193b3JtaG9sZQRib29sD2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OApsb2NrZXJfcm93AAMIZGVwb3RfaWQGdWludDY0C3N0b3JlZF9tYXNzBnVpbnQ2NA1yZXNlcnZlZF9tYXNzBnVpbnQ2NAxtYW5kYXRlc19yb3cAAgdub2RlX2lkBnVpbnQzMgdyZXBlYXRzBnVpbnQxNhNtaW50X3RocmVzaG9sZF92aWV3AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl0aHJlc2hvbGQGdWludDY0Dm1pbnRjZmdfcmVzdWx0AAIKdGhyZXNob2xkcxVtaW50X3RocmVzaG9sZF92aWV3W10IYnVybl9icHMGdWludDE2CW1pbnRxX3JvdwACAmlkBnVpbnQ2NAVncmFkZQV1aW50OAltaW50cmVhZHkAAQltYXhfbWludHMHdWludDMyPwxtb2R1bGVfZW50cnkAAgR0eXBlBXVpbnQ4CWluc3RhbGxlZA5wYWNrZWRfbW9kdWxlPwttb2R1bGVfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgttb2R1bGVfdHlwZQV1aW50OAR0aWVyBXVpbnQ4Dm1vZHVsZXNfcmVzdWx0AAEHbW9kdWxlcw1tb2R1bGVfaW5mb1tdDm1vdmVtZW50X3N0YXRzAAIGdGhydXN0BnVpbnQzMgVkcmFpbgZ1aW50MzIIbW92ZXRpbGUABQZodWJfaWQGdWludDY0B2Zyb21fZ3gEaW50OAdmcm9tX2d5BGludDgFdG9fZ3gEaW50OAV0b19neQRpbnQ4Cm5hdHVyYWxpemUAAwZwbGF5ZXIEbmFtZQF4BWludDY0AXkFaW50NjQLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAgl0aHJlc2hvbGQFdWludDgIZGVhZGxpbmUGdWludDMyCm9yYWNsZV9yb3cAAQJpZARuYW1lDXBhY2tlZF9tb2R1bGUAAgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQKcGxhY2VjYXJnbwADBW93bmVyBG5hbWUHaG9zdF9pZAZ1aW50NjQIYXNzZXRfaWQGdWludDY0C3BsYWNlZW50aXR5AAMFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQPdGFyZ2V0X25leHVzX2lkBnVpbnQ2NAlwbGFjZW1lbnQABAp0YXNrX2luZGV4BXVpbnQ4CXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludAtwbGF5ZXJfaW5mbwADBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpwbGF5ZXJfcm93AAEFb3duZXIEbmFtZRBwb29sX3BhaXJfcmVzdWx0AAkIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAdpdGVtX2lkBnVpbnQxNhFzdGFuZGFyZF9xdWFudGl0eQZ1aW50NjQOc3RhbmRhcmRfc3RhdHMGdWludDY0EHByZW1pdW1fcXVhbnRpdHkGdWludDY0DXByZW1pdW1fc3RhdHMGdWludDY0A2JhcgZ1aW50NjQJdGhyZXNob2xkBnVpbnQ2NAlwb29sX3ZpZXcABwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4BWdyYWRlBXVpbnQ4B2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQDYmFyBnVpbnQ2NAxwb29sc19yZXN1bHQAAQVwb29scwtwb29sX3ZpZXdbXQxwcm9ncmVzc19yb3cAAgdub2RlX2lkBnVpbnQzMgZhbW91bnQGdWludDY0DXByb2dyZXNzX3ZpZXcAAgdub2RlX2lkBnVpbnQzMgZhbW91bnQGdWludDY0D3Byb2plY3RlZF9zdGF0ZQARBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8EdGllcgV1aW50OAhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UACA5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10Pc291cmNlX3N1YmNsYXNzB3VpbnQxNj8OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdCHJlZml0X29wAAICb3AFdWludDgEc2xvdAV1aW50OAxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZw1yZXBhY2tfcmVzdWx0AAEHd2luZG93cxFyZXNlcnZlZF93aW5kb3dbXQtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlD3Jlc2VydmVkX3dpbmRvdwAEAmlkBnVpbnQ2NAdhcnJpdmFsCnRpbWVfcG9pbnQJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDHJlc29sdmVlYXJseQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNlYXRfdmlldwAEB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0CHByb2dyZXNzBnVpbnQ2NANnYXAGdWludDY0CHNldGNpdmljAAEHYWNjb3VudARuYW1lCnNldGNsdXN0ZXIAAQNyb3cLY2x1c3Rlcl9yb3cJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQLc2V0ZGVhZGxpbmUAAQhkZWFkbGluZQZ1aW50MzIKc2V0aW5mYnVybgABA2JwcwZ1aW50MTYIc2V0aW5mZDEAAQJkMQZ1aW50MzIMc2V0aW5mZGVtYW5kAAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0CnNldGluZm1pbnQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQMc2V0aW5md2VpZ2h0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl3ZWlnaHRfZnAGdWludDY0CXNldG5leHRpZAABB25leHRfaWQGdWludDY0CXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4DHNldHRsZWJhbGxvdAACCWJhbGxvdF9pZAZ1aW50NjQJbWF4X3BhZ2VzBnVpbnQzMgxzZXR1bndyYXBtaW4AAQhhc3NldF9pZAZ1aW50NjQLc2V0d3JhcGNvc3QAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0CnNldHdyYXBmZWUAAgdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lB3NodXR0bGUABAdjYXJyaWVyBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDnNodXR0bGVfb3B0aW9uAA0Lc2h1dHRsZWRfYnkHdWludDY0PwRtb2RlBXVpbnQ4B2hvc3RfaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgVzdGFydAp0aW1lX3BvaW50BmZpbmlzaAp0aW1lX3BvaW50BGJheXMFdWludDgQd2luZG93X3N0YXJ0c19hdAt0aW1lX3BvaW50PxN3aW5kb3dfY29tcGxldGVzX2F0C3RpbWVfcG9pbnQ/C2VuZXJneV9jb3N0B3VpbnQzMj8JcmVqZWN0aW9uEnNodXR0bGVfcmVqZWN0aW9uPwhyZXNvbHZlZARib29sD3NodXR0bGVfb3B0aW9ucwABB29wdGlvbnMQc2h1dHRsZV9vcHRpb25bXRFzaHV0dGxlX3JlamVjdGlvbgAHBnJlYXNvbgZzdHJpbmcCYXQLdGltZV9wb2ludD8FdW50aWwLdGltZV9wb2ludD8EaGF2ZQd1aW50NjQ/BG5lZWQHdWludDY0PwNjYXAHdWludDY0Pwl0YXNrX3R5cGUGdWludDg/CHNsb3RfZGVmAAMEdHlwZQV1aW50OApvdXRwdXRfcGN0BnVpbnQxNghtYXhfdGllcgV1aW50OBBzb2NrZXRfY2FuZGlkYXRlAAMHd2luZG93cxFyZXNlcnZlZF93aW5kb3dbXQhkdXJhdGlvbgZ1aW50MzIGYWN0aXZlBnVpbnQxNgtzb2NrZXRfcGljawADBWZvdW5kBGJvb2wGc29ja2V0BXVpbnQ4BndpbmRvdw9yZXNlcnZlZF93aW5kb3cMc3RhbmRpbmdfcm93AAQHYWNjb3VudARuYW1lCGxpZmV0aW1lBnVpbnQ2NAZhY3RpdmUGdWludDY0DGFjdGl2ZV9lcG9jaAZ1aW50MzISc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYLc3RvcmFnZV9yb3cABwJpZAZ1aW50NjQFb3duZXIEbmFtZQdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10Lc2VxdWVuY2VfaWQHdWludDY0PwlzdG93Y2FyZ28ABQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKc3Rvd2VudGl0eQADBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQMc3RyYXR1bV9kYXRhAAIHc3RyYXR1bQxzdHJhdHVtX2luZm8Fc3RhdHMOcmVzb3VyY2Vfc3RhdHMMc3RyYXR1bV9pbmZvAAUHaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQIcmljaG5lc3MGdWludDE2B3Jlc2VydmUGdWludDMyC3Jlc2VydmVfbWF4BnVpbnQzMhFzdHJhdHVtX3JlbWFpbmluZwADB3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIKbGFzdF9ibG9jaxRibG9ja190aW1lc3RhbXBfdHlwZQpzd2FwbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKbW9kdWxlX3JlZgljYXJnb19yZWYIc3dhcHRpbGUABQZodWJfaWQGdWludDY0BGFfZ3gEaW50OARhX2d5BGludDgEYl9neARpbnQ4BGJfZ3kEaW50OAR0YXNrAAwEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdCWNvdXBsaW5ncwpjb3VwbGluZ1tdB3N1YmplY3QLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MzI/DnRhcmdldF9pdGVtX2lkB3VpbnQxNj8FcmVmaXQJcmVmaXRfb3A/DGNoYXJ0ZXJfbm9kZQd1aW50MzI/CnRhc2tfZXZlbnQACgpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgGdWludDMyBHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQzMj8IbGFuZV9rZXkFdWludDgMdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdDnRhc2tfdHlwZV9pbmZvAAcEdHlwZQV1aW50OA5wb3NpdGlvbl9ib3VuZARib29sCG1vYmlsaXR5BGJvb2wIY29uc3VtZXIEYm9vbAtpc190ZXJtaW5hbARib29sCWNhcHNfcGxhbgRib29sFGNhcmdvX2VmZmVjdF9yZXNvbHZlBGJvb2wRdGFza190eXBlc19yZXN1bHQAAQV0eXBlcxB0YXNrX3R5cGVfaW5mb1tdEXRlbXBsYXRlX21ldGFfcm93AAQHaXRlbV9pZAZ1aW50MTYEa2luZARuYW1lDWRpc3BsYXlfbGFiZWwGc3RyaW5nEGJhc2VfY2FwYWNpdHlfZm4Gc3RyaW5nB3RyYW5zaXQABQJpZAZ1aW50NjQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQGdHJhdmVsAAQCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCnRyYXZlbHBsYW4AAwhlbnRpdGllcwxlbnRpdHlfcmVmW10Jd2F5cG9pbnRzEHJvdXRlX3dheXBvaW50W10IcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cAEAJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQSZGVjb21wX3Jlc3VsdF90eXBlDWRlY29tcF9yZXN1bHQSZGVtYW5kX3Jlc3VsdF90eXBlDWRlbWFuZF9yZXN1bHQUaW5mdmFsdWVfcmVzdWx0X3R5cGUPaW5mdmFsdWVfcmVzdWx0FWluZmx1ZW5jZV90b3RhbHNfdHlwZRBpbmZsdWVuY2VfdG90YWxzEXBvb2xzX3Jlc3VsdF90eXBlDHBvb2xzX3Jlc3VsdBVwb29sX3BhaXJfcmVzdWx0X3R5cGUQcG9vbF9wYWlyX3Jlc3VsdBNtaW50Y2ZnX3Jlc3VsdF90eXBlDm1pbnRjZmdfcmVzdWx0E2NoYXJ0ZXJfcmVzdWx0X3R5cGUOY2hhcnRlcl9yZXN1bHQYY2hhcnRlcnJlYWR5X3Jlc3VsdF90eXBlE2NoYXJ0ZXJyZWFkeV9yZXN1bHQQdm90ZV9yZXN1bHRfdHlwZQt2b3RlX3Jlc3VsdA9kZXBvdF92aWV3X3R5cGUKZGVwb3Rfdmlldwh1bmRlcGxveQACB2hvc3RfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQGdW5sb2FkAAMCaWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10HdXBncmFkZQAFCmJ1aWxkZXJfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmlucHV0cwxjYXJnb19pdGVtW10Ec2xvdAZ1aW50OD8Ldm90ZV9vcHRpb24ABQdub2RlX2lkBnVpbnQzMgRjb3N0BnVpbnQ2NARzZWF0BnVpbnQzMgZ3ZWlnaHQGdWludDY0BHJhbmsGdWludDMyC3ZvdGVfcmVzdWx0AAkLbG9jYXRpb25faWQGdWludDY0CWJhbGxvdF9pZAZ1aW50NjQFZXBvY2gGdWludDMyDXNldHRsZWRfZXBvY2gGdWludDMyBXNlYXRzBnVpbnQzMghzZXR0bGluZwRib29sBXF1ZXVlCHVpbnQzMltdB29wdGlvbnMNdm90ZV9vcHRpb25bXQVwaWNrcwh1aW50MzJbXQl2b3RlcmVhZHkAAQltYXhfcGFnZXMGdWludDMyBHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIOd2luZG93X3JlY2VpcHQAAwZqb2JfaWQGdWludDY0CXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50BHdpcGUAAAp3b3JsZHNfcm93AAkLbG9jYXRpb25faWQGdWludDY0CGxpZmV0aW1lBnVpbnQ2NAZhY3RpdmUGdWludDY0DGFjdGl2ZV9lcG9jaAZ1aW50MzIFc3BlbnQGdWludDY0CnVuYXNzaWduZWQGdWludDY0CWJhbGxvdF9pZAZ1aW50NjQHZm91bmRlcgRuYW1lB2ZvdW5kZWQGdWludDMyDXdvcm1ob2xlX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMLaXNfd29ybWhvbGUEYm9vbAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcw53cmFwY29uZmlnX3JvdwADB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMbWluX2Fzc2V0X2lkBnVpbnQ2NAx3cmFwY29zdF9yb3cAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0sgEAMo110jTNMQthYmFuZG9ucGxvdAAAwHE3T4pSMgphZGRjb250cmliAAAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1c6cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG5leHVzCnN1bW1hcnk6ICdBZGQgYSBuZXh1cyBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ3JlYXRlIGEgbmV3IG5leHVzIGVudGl0eSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuIE5leHVzZXMgYXJlIG93bmVkIGJ5IHRoZSBjb250cmFjdCBhbmQgc2VydmUgYXMgZml4ZWQgZ2F0aGVyaW5nIHBvaW50cyB3aGVyZSBwbGF5ZXJzIGNhbiB3cmFwLCB1bndyYXAsIGRlcGxveSwgYW5kIG90aGVyd2lzZSBpbnRlcmFjdCB3aXRoIE5GVC1iYWNrZWQgYXNzZXRzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABQEZlLUzIJYWRkb3JhY2xlAAAAAACANFU8BWJsZW5k/AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYmxlbmQKc3VtbWFyeTogJ0JsZW5kIGNhcmdvIHN0YWNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tYmluZSBtdWx0aXBsZSBjYXJnbyBzdGFja3Mgb2YgdGhlIHNhbWUgaXRlbSB0eXBlIGludG8gYSBzaW5nbGUgc3RhY2sgd2l0aCBuZXcgYmxlbmRlZCBzdGF0cy4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgBAplWlNFU8CmJsZW5kZGVwb3TBAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZGRlcG90CnN1bW1hcnk6ICdCbGVuZCBzdG9yZWQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHRoYXQgdGhlIHNpZ25lciBrZWVwcyBpbiBhIGRlcG90IGludG8gYSBzaW5nbGUgc3RvcmVkIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cyBhbmQgc3RheXMgaW4gdGhlIHNhbWUgZGVwb3QuAAAAh74UnT4IYnVpbGRqb2IAAADINNYUnT4JYnVpbGRwbG90AAAAAABEhaZBBmNhbmNlbMICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNhbmNlbApzdW1tYXJ5OiAnQ2FuY2VsIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FuY2VsIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRhc2tzIGZyb20gdGhlIGVuZCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZS4gVGFza3MgdGhhdCBhcmUgaW1tdXRhYmxlIGFuZCBpbiBwcm9ncmVzcyBjYW5ub3QgYmUgY2FuY2VsbGVkLgBSdPpEhaZBC2NhbmNlbGJ1aWxkAACQ2w5FhaZBC2NhbmNlbGNpdmljAADyMhdFhaZBC2NhbmNlbGNyYWZ0AABApjGak7FBCmNhc3RiYWxsb3QA4JNR96p8TUMMY2hhcnRlcnJlYWR5AKBizrph5LZDDGNpdmljc2h1dHRsZQAAQIpOH+lMRApjbGFpbWJ1aWxkAABAXuYi6UxECmNsYWltY3JhZnQAAADINFbpTEQJY2xhaW1wbG90AHBVviZj6UxEDGNsYWltc3RhcnRlcgAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEBDtCqFaUQKY2xvc2VlcG9jaACQl7noqox1RAxjbHVzdGVyY3JhZnQAAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAACHvrzMRQhjcmFmdGpvYgAAAEhT1WrYSQlkYmdhcHBlbmQAAMBV7l5z2EkKZGJnYmFycmllcgAAAMguqYvYSQlkYmdjcmVkaXQAAAAAAB/62EkHZGJnam9icwAAgMomTSPZSQpkYmdtYW5kYXRlAAAwp1cxU9lJC2RiZ3BhZ2Vyb3dzAAAAAAAiV9lJB2RiZ3BpY2sAAAAACplY2UkIZGJncGxhY2UAAAAAil1d2UkIZGJncHVyZ2UAAACAyFR12UkJZGJncmVwYWNrAAAAADgbhdlJCGRiZ3NlYXRzAAAAAPmajNlJCGRiZ3N0YXJ0AAAA8NnlqaJKCWRlbGVudGl0eQAAAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgLo040yrSgpkZXBvdHN0b3JlAAAAUNDkTKtKCWRlcG90dGFrZQAAgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgAAAMkd3bpbCGZpeGh1YmlkAAAATk6q7LpbCmZpeGl0ZW1pZHMAAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAgDQ1XQVmb3VuZAAAAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6Q4qUcO6ymYgxnZW5lc2lzd29ybGTnBy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzd29ybGQKc3VtbWFyeTogJ0ZvdW5kIGEgd29ybGQgYXQgZ2FtZSBsYXVuY2ggd2l0aCBpdHMgY2l2aWMgY2hhcnRlcnMgYWxyZWFkeSBjb21wbGV0ZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZvdW5kIGEgcGxhbmV0IGFzIGEgd29ybGQgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZCwgd2l0aCB0aGUgbGlzdGVkIGNoYXJ0ZXIgbm9kZXMgY29tcGxldGVkIGluIG9yZGVyLiBUaGUgZm91bmRlciBtdXN0IGhvbGQgYSBjb21wYW55IG9uIHRoZSBwbGF0Zm9ybTsgdGhlIGZvdW5kZXIgaXMgY3JlZGl0ZWQgd2l0aCBsaWZldGltZSBpbmZsdWVuY2UgZXF1YWwgdG8gdGhlIHN1bW1lZCBjb3N0IG9mIHRoZSBsaXN0ZWQgbm9kZXMsIGFuZCBlYWNoIG5vZGUgaXMgdGhlbiBjb21wbGV0ZWQgdGhyb3VnaCB0aGUgc2FtZSBydWxlcyBhIGNoYXJ0ZXIgY3JhbmsgYXBwbGllczogcHJlcmVxdWlzaXRlcyBtdXN0IGJlIHNhdGlzZmllZCBieSBlYXJsaWVyIG5vZGVzIGluIHRoZSBsaXN0LCBhIHNwYXduIG5vZGUgYWRvcHRzIGEgY2l2aWMgZW50aXR5IG9mIGl0cyBraW5kIGFscmVhZHkgc3RhbmRpbmcgYXQgdGhlIGxvY2F0aW9uIG9yIHNwYXducyBvbmUsIGFuZCBhIHJlZml0IG5vZGUgcmVmaXRzIHRoZSBlbnRpdHkgcmVjb3JkZWQgZm9yIGl0cyB0YXJnZXQuIFNwZW50IGFkdmFuY2VzIGJ5IGV2ZXJ5IG5vZGUncyBjb3N0LCBzbyB0aGUgcmVzdWx0aW5nIHdvcmxkIGlzIG9uZSBhIHNpbmdsZSBmb3VuZGVyIGNvdWxkIGhhdmUgYWR2YW5jZWQgYWxvbmUuIEVhY2ggbG9jYXRpb24gY2FuIGJlIGZvdW5kZWQgdGhpcyB3YXkgb25jZS4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LoAPfSk6fbJiDGdldGJ1aWxkam9icwCAc6UpOn2yYgxnZXRidWlsZG9wdHMAAHCuNMWDsmILZ2V0Y2JsZG9wdHMAAMBV+ZqGsmIKZ2V0Y2hhcnRlcgCg1M35moayYgxnZXRjaGFydHRyZWUA4JNRN9+GsmIMZ2V0Y2hydHJlYWR5AIBzpdKZiLJiDGdldGNsYWltb3B0cwAAwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUugA99eZmLsmIMZ2V0Y3JhZnRqb2JzAIBzpXmZi7JiDGdldGNyYWZ0b3B0cwAAAKiSIpWyYglnZXRkZWNvbXAAAABI00iVsmIJZ2V0ZGVtYW5kAABAdphWlbJiCmdldGRlcG9zaXQAAAAAmVaVsmIIZ2V0ZGVwb3QAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AAC8QSqt6bJiC2dldGluZmRlY2F5AKDQVDqu6bJiDGdldGluZmx1ZW5jZQAAlI5mr+myYgtnZXRpbmZ2YWx1ZQAATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuAABbKE8ns2IKZ2V0bWludGNmZwDgk1E3TyezYgxnZXRtaW50cmVhZHkAALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAAAAIFJas2IHZ2V0cG9vbAAAAAA4UlqzYghnZXRwb29scwCgssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwugHOl6tKMs2IMZ2V0c3RvcmVvcHRzAACA1NncjLNiCmdldHN0cmF0dW3SAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdHJhdHVtCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHJlc291cmNlIHN0cmF0dW0gZGF0YSBmb3IgYSBzcGVjaWZpYyBkZXB0aCBsYXllciBhdCBhIGNvb3JkaW5hdGUsIGluY2x1ZGluZyB0aGUgc3RyYXR1bSBzZWVkIGluZm8gYW5kIGRlcml2ZWQgcmVzb3VyY2Ugc3RhdHMugJW7RkqNs2IMZ2V0c3VtbWFyaWVz6AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3VtbWFyaWVzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHN1bW1hcmllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgbGlnaHR3ZWlnaHQgc3VtbWFyaWVzIG9mIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllciBpbmNsdWRpbmcgdHlwZSwgaWQsIG93bmVyLCBuYW1lLCBsb2NhdGlvbiwgYW5kIGlkbGUgc3RhdHVzLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AcK5UQZOzYgtnZXR0YWtlb3B0cwCAVfUZYpOzYgxnZXR0YXNrdHlwZXMA4JNRV2W6s2IMZ2V0dm90ZXJlYWR5AAAAAFhlurNiCGdldHZvdGVzAABUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAGqJV5UurdAtpbXBvcnRlcG9jaAAAqqaX5UurdAtpbXBvcnRncm91cABwFUQ05kurdAxpbXBvcnRsb2NrZXIAwBbKa+ZLq3QMaW1wb3J0bmZ0Y2ZnAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAMrMpRnnS6t0DWltcG9ydHN0b3JhZ2UAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAAAA8Mmom6eTCW1pbnRyZWFkeQAAAAAquqw2lQhtb3ZldGlsZQAAgPoumquzmQpuYXR1cmFsaXplAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbADg4zVK7UixugxyZXNvbHZlZWFybHkAAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAyG2HssIIc2V0Y2l2aWMAAMBVGeuIssIKc2V0Y2x1c3RlcgAAAMDpUoqywglzZXRjb29yZHMAANR0MRmVssILc2V0ZGVhZGxpbmUAAMC8+qzpssIKc2V0aW5mYnVybgAAAAAhremywghzZXRpbmZkMQCQppEqremywgxzZXRpbmZkZW1hbmQAAECeTq7pssIKc2V0aW5mbWludACQG3OKr+mywgxzZXRpbmZ3ZWlnaHQAAABILnc1s8IJc2V0bmV4dGlkAAAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAkGmM5qiYs8IMc2V0dGxlYmFsbG90ADCdrObyqbPCDHNldHVud3JhcG1pbgAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAPDJqKsy3Ql2b3RlcmVhZHkAAAAAAABQr+EEd2FycJ8DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdhcnAKc3VtbWFyeTogJ1dhcnAgdG8gYSBkZXN0aW5hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFudGx5IHRlbGVwb3J0IGFuIGVudGl0eSB0byBhIGRlc3RpbmF0aW9uIHN5c3RlbS4gUmVxdWlyZXMgd2FycCBjYXBhYmlsaXR5LCBmdWxsIGVuZXJneSwgZW1wdHkgY2FyZ28sIGFuZCBhbiBlbXB0eSBzY2hlZHVsZS4gVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgYSB2YWxpZCBzeXN0ZW0gd2l0aGluIHdhcnAgcmFuZ2UuIFJlc29sdmVzIGltbWVkaWF0ZWx5IGFzIGEgemVyby1kdXJhdGlvbiB0YXNrLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0pAAAAAGQaozkDaTY0AAAKYmFsbG90X3JvdwAwRK5mGqM5A2k2NAAAD2JhbGxvdHBpY2tzX3JvdwAAsApnGqM5A2k2NAAADmJhbGxvdF9zZXFfcm93oGLOCmcaozkDaTY0AAAQYmFsbG90c2V0dGxlX3JvdwAAwGy6FJ0+A2k2NAAADWJ1aWxkaW5nc19yb3cAAMCHvhSdPgNpNjQAAAxidWlsZGpvYl9yb3cAAAAAAMquQQNpNjQAAAljYXJnb19yb3eg9lVYXcquQQNpNjQAABBjYXJnb3Jlc2VydmVfcm93AKpreKrvskMDaTY0AAAPY2l0aXplbnNoaXBfcm93AJhbkyLktkMDaTY0AAAPY2l2aWNjb25maWdfcm93AAAAAGDpTEQDaTY0AAAJY2xhaW1fcm93AAAA4KqMdUQDaTY0AAALY2x1c3Rlcl9yb3cAAAAAZCclRQNpNjQAAApjb21taXRfcm93AADAh768zEUDaTY0AAAMY3JhZnRqb2Jfcm93AAAAAPjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAYF591nQDaTY0AAALaW5mYnVybl9yb3cAAEjTSJXWdANpNjQAAA1pbmZkZW1hbmRfcm93AAAAIE8n13QDaTY0AAALaW5mbWludF9yb3cAAAAgUlrXdANpNjQAAAtpbmZwb29sX3JvdwCAzy4abdd0A2k2NAAADmluZnF1YWxpdHlfcm93AADIjTnF13QDaTY0AAANaW5md2VpZ2h0X3JvdwAAAABfBRGNA2k2NAAACmxvY2tlcl9yb3cAAABYZZOmkQNpNjQAAAxtYW5kYXRlc19yb3cAAAAAAJunkwNpNjQAAAltaW50cV9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAABiry+itA2k2NAAADHByb2dyZXNzX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAGy6NE3GA2k2NAAADHN0YW5kaW5nX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAEAxc2nGA2k2NAAAC3N0b3JhZ2Vfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AAAAAOAUL+UDaTY0AAAKd29ybGRzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAGwAMo110jTNMQx0YXNrX3Jlc3VsdHMAwHE3T4pSMgx0YXNrX3Jlc3VsdHMAAACHvhSdPg53aW5kb3dfcmVjZWlwdAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAFJ0+kSFpkEMdGFza19yZXN1bHRzAJDbDkWFpkEOY2FuY2VsX3Jlc3VsdHOgYs66YeS2Qwx0YXNrX3Jlc3VsdHMAQF7mIulMRAx0YXNrX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHOQl7noqox1RAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQ53aW5kb3dfcmVjZWlwdAAASFPVathJDWFwcGVuZF9yZXN1bHQAwFXuXnPYSQp0aW1lX3BvaW50AAAAACJX2UkLc29ja2V0X3BpY2sAAAAKmVjZSQ9yZXNlcnZlZF93aW5kb3cAAIDIVHXZSQ1yZXBhY2tfcmVzdWx0AAAA+ZqM2UkKdGltZV9wb2ludAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAujTjTKtKDHRhc2tfcmVzdWx0cwAAUNDkTKtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0c4APfSk6fbJiEGJ1aWxkam9ic19yZXN1bHSAc6UpOn2yYg9zaHV0dGxlX29wdGlvbnMAcK40xYOyYg9zaHV0dGxlX29wdGlvbnMAwFX5moayYg5jaGFydGVyX3Jlc3VsdKDUzfmahrJiE2NoYXJ0ZXJfdHJlZV9yZXN1bHTgk1E334ayYhNjaGFydGVycmVhZHlfcmVzdWx0gHOl0pmIsmIPc2h1dHRsZV9vcHRpb25zAMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZ4APfXmZi7JiEGNyYWZ0am9ic19yZXN1bHSAc6V5mYuyYg9zaHV0dGxlX29wdGlvbnMAAKiSIpWyYg1kZWNvbXBfcmVzdWx0AABI00iVsmINZGVtYW5kX3Jlc3VsdABAdphWlbJiDmV4dGVuZGVkX2Fzc2V0AAAAmVaVsmIKZGVwb3RfdmlldwAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0ALxBKq3psmIGdWludDY0oNBUOq7psmIQaW5mbHVlbmNlX3RvdGFscwCUjmav6bJiD2luZnZhbHVlX3Jlc3VsdABMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm8AVPVZquyyYgV1aW50OIBV9Vmq7LJiC2VudW1fcmVzdWx0AExWMk0Hs2IQa2luZF9tZXRhX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkAABbKE8ns2IObWludGNmZ19yZXN1bHTgk1E3TyezYgZ1aW50MzIAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm8AAAAgUlqzYhBwb29sX3BhaXJfcmVzdWx0AAAAOFJas2IMcG9vbHNfcmVzdWx0oLLJ+NFbs2IPcHJvamVjdGVkX3N0YXRlAABQ1SF1s2IOcmVjaXBlc19yZXN1bHQAAFbVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAzgZhdbNiC2VudW1fcmVzdWx0ALDaV2F1s2ITc3RyYXR1bV9yZW1haW5pbmdbXYAVuppidbNiEHJlc291cmNlc19yZXN1bHQAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHSAc6Xq0oyzYg9zaHV0dGxlX29wdGlvbnMAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAHCuVEGTs2IPc2h1dHRsZV9vcHRpb25zgFX1GWKTs2IRdGFza190eXBlc19yZXN1bHTgk1FXZbqzYgZ1aW50MzIAAABYZbqzYgt2b3RlX3Jlc3VsdABUpE1eyrNiDXdvcm1ob2xlX2luZm+QHZ7m5qrpZQx0YXNrX3Jlc3VsdHMAotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAADQ0tYkMdGFza19yZXN1bHRzAAAAAACQDI0MdGFza19yZXN1bHRzAAAAKrqsNpUMdGFza19yZXN1bHRzAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAECMRu1IsboScmVzb2x2ZWFsbF9yZXN1bHRz4OM1Su1IsboPcmVzb2x2ZV9yZXN1bHRzAAAAQMWcdcMMdGFza19yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAKrpcDccMdGFza19yZXN1bHRzAAAAIDs8zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAMA0sUa1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAACRD49QMdGFza19yZXN1bHRzAAAAQCVzWdUMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
826
826
  antelope.ABI.from(abiBlob$1);
827
827
  var Types$1;
828
828
  (function (Types) {
@@ -961,6 +961,156 @@ var Types$1;
961
961
  antelope.Struct.type('addoracle')
962
962
  ], addoracle);
963
963
  Types.addoracle = addoracle;
964
+ let placement = class placement extends antelope.Struct {
965
+ };
966
+ tslib.__decorate([
967
+ antelope.Struct.field(antelope.UInt8)
968
+ ], placement.prototype, "task_index", void 0);
969
+ tslib.__decorate([
970
+ antelope.Struct.field(antelope.TimePoint)
971
+ ], placement.prototype, "starts_at", void 0);
972
+ tslib.__decorate([
973
+ antelope.Struct.field(antelope.TimePoint)
974
+ ], placement.prototype, "completes_at", void 0);
975
+ tslib.__decorate([
976
+ antelope.Struct.field(antelope.TimePoint)
977
+ ], placement.prototype, "schedule_started", void 0);
978
+ placement = tslib.__decorate([
979
+ antelope.Struct.type('placement')
980
+ ], placement);
981
+ Types.placement = placement;
982
+ let coordinates = class coordinates extends antelope.Struct {
983
+ };
984
+ tslib.__decorate([
985
+ antelope.Struct.field(antelope.Int64)
986
+ ], coordinates.prototype, "x", void 0);
987
+ tslib.__decorate([
988
+ antelope.Struct.field(antelope.Int64)
989
+ ], coordinates.prototype, "y", void 0);
990
+ tslib.__decorate([
991
+ antelope.Struct.field(antelope.UInt16, { optional: true })
992
+ ], coordinates.prototype, "z", void 0);
993
+ coordinates = tslib.__decorate([
994
+ antelope.Struct.type('coordinates')
995
+ ], coordinates);
996
+ Types.coordinates = coordinates;
997
+ let entity_ref = class entity_ref extends antelope.Struct {
998
+ };
999
+ tslib.__decorate([
1000
+ antelope.Struct.field(antelope.Name)
1001
+ ], entity_ref.prototype, "entity_type", void 0);
1002
+ tslib.__decorate([
1003
+ antelope.Struct.field(antelope.UInt64)
1004
+ ], entity_ref.prototype, "entity_id", void 0);
1005
+ entity_ref = tslib.__decorate([
1006
+ antelope.Struct.type('entity_ref')
1007
+ ], entity_ref);
1008
+ Types.entity_ref = entity_ref;
1009
+ let coupling = class coupling extends antelope.Struct {
1010
+ };
1011
+ tslib.__decorate([
1012
+ antelope.Struct.field(entity_ref)
1013
+ ], coupling.prototype, "counterpart", void 0);
1014
+ tslib.__decorate([
1015
+ antelope.Struct.field(antelope.UInt64)
1016
+ ], coupling.prototype, "hold", void 0);
1017
+ tslib.__decorate([
1018
+ antelope.Struct.field(antelope.UInt8)
1019
+ ], coupling.prototype, "kind", void 0);
1020
+ coupling = tslib.__decorate([
1021
+ antelope.Struct.type('coupling')
1022
+ ], coupling);
1023
+ Types.coupling = coupling;
1024
+ let refit_op = class refit_op extends antelope.Struct {
1025
+ };
1026
+ tslib.__decorate([
1027
+ antelope.Struct.field(antelope.UInt8)
1028
+ ], refit_op.prototype, "op", void 0);
1029
+ tslib.__decorate([
1030
+ antelope.Struct.field(antelope.UInt8)
1031
+ ], refit_op.prototype, "slot", void 0);
1032
+ refit_op = tslib.__decorate([
1033
+ antelope.Struct.type('refit_op')
1034
+ ], refit_op);
1035
+ Types.refit_op = refit_op;
1036
+ let task = class task extends antelope.Struct {
1037
+ };
1038
+ tslib.__decorate([
1039
+ antelope.Struct.field(antelope.UInt8)
1040
+ ], task.prototype, "type", void 0);
1041
+ tslib.__decorate([
1042
+ antelope.Struct.field(antelope.UInt32)
1043
+ ], task.prototype, "duration", void 0);
1044
+ tslib.__decorate([
1045
+ antelope.Struct.field(antelope.UInt8)
1046
+ ], task.prototype, "cancelable", void 0);
1047
+ tslib.__decorate([
1048
+ antelope.Struct.field(coordinates, { optional: true })
1049
+ ], task.prototype, "coordinates", void 0);
1050
+ tslib.__decorate([
1051
+ antelope.Struct.field(cargo_item, { array: true })
1052
+ ], task.prototype, "cargo", void 0);
1053
+ tslib.__decorate([
1054
+ antelope.Struct.field(coupling, { array: true })
1055
+ ], task.prototype, "couplings", void 0);
1056
+ tslib.__decorate([
1057
+ antelope.Struct.field(entity_ref, { optional: true })
1058
+ ], task.prototype, "subject", void 0);
1059
+ tslib.__decorate([
1060
+ antelope.Struct.field(antelope.UInt64, { optional: true })
1061
+ ], task.prototype, "entitygroup", void 0);
1062
+ tslib.__decorate([
1063
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1064
+ ], task.prototype, "energy_cost", void 0);
1065
+ tslib.__decorate([
1066
+ antelope.Struct.field(antelope.UInt16, { optional: true })
1067
+ ], task.prototype, "target_item_id", void 0);
1068
+ tslib.__decorate([
1069
+ antelope.Struct.field(refit_op, { optional: true })
1070
+ ], task.prototype, "refit", void 0);
1071
+ tslib.__decorate([
1072
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1073
+ ], task.prototype, "charter_node", void 0);
1074
+ task = tslib.__decorate([
1075
+ antelope.Struct.type('task')
1076
+ ], task);
1077
+ Types.task = task;
1078
+ let schedule = class schedule extends antelope.Struct {
1079
+ };
1080
+ tslib.__decorate([
1081
+ antelope.Struct.field(antelope.TimePoint)
1082
+ ], schedule.prototype, "started", void 0);
1083
+ tslib.__decorate([
1084
+ antelope.Struct.field(task, { array: true })
1085
+ ], schedule.prototype, "tasks", void 0);
1086
+ schedule = tslib.__decorate([
1087
+ antelope.Struct.type('schedule')
1088
+ ], schedule);
1089
+ Types.schedule = schedule;
1090
+ let lane = class lane extends antelope.Struct {
1091
+ };
1092
+ tslib.__decorate([
1093
+ antelope.Struct.field(antelope.UInt8)
1094
+ ], lane.prototype, "lane_key", void 0);
1095
+ tslib.__decorate([
1096
+ antelope.Struct.field(schedule)
1097
+ ], lane.prototype, "schedule", void 0);
1098
+ lane = tslib.__decorate([
1099
+ antelope.Struct.type('lane')
1100
+ ], lane);
1101
+ Types.lane = lane;
1102
+ let append_result = class append_result extends antelope.Struct {
1103
+ };
1104
+ tslib.__decorate([
1105
+ antelope.Struct.field(placement)
1106
+ ], append_result.prototype, "placed", void 0);
1107
+ tslib.__decorate([
1108
+ antelope.Struct.field(lane, { array: true })
1109
+ ], append_result.prototype, "lanes", void 0);
1110
+ append_result = tslib.__decorate([
1111
+ antelope.Struct.type('append_result')
1112
+ ], append_result);
1113
+ Types.append_result = append_result;
964
1114
  let ballot_credit = class ballot_credit extends antelope.Struct {
965
1115
  };
966
1116
  tslib.__decorate([
@@ -1075,6 +1225,21 @@ var Types$1;
1075
1225
  antelope.Struct.type('blend')
1076
1226
  ], blend);
1077
1227
  Types.blend = blend;
1228
+ let blenddepot = class blenddepot extends antelope.Struct {
1229
+ };
1230
+ tslib.__decorate([
1231
+ antelope.Struct.field(antelope.UInt64)
1232
+ ], blenddepot.prototype, "depot_id", void 0);
1233
+ tslib.__decorate([
1234
+ antelope.Struct.field(antelope.Name)
1235
+ ], blenddepot.prototype, "owner", void 0);
1236
+ tslib.__decorate([
1237
+ antelope.Struct.field(cargo_item, { array: true })
1238
+ ], blenddepot.prototype, "inputs", void 0);
1239
+ blenddepot = tslib.__decorate([
1240
+ antelope.Struct.type('blenddepot')
1241
+ ], blenddepot);
1242
+ Types.blenddepot = blenddepot;
1078
1243
  let builder_lane = class builder_lane extends antelope.Struct {
1079
1244
  };
1080
1245
  tslib.__decorate([
@@ -1119,25 +1284,13 @@ var Types$1;
1119
1284
  tslib.__decorate([
1120
1285
  antelope.Struct.field(cargo_item, { array: true })
1121
1286
  ], buildjob.prototype, "inputs", void 0);
1287
+ tslib.__decorate([
1288
+ antelope.Struct.field(antelope.UInt64, { optional: true })
1289
+ ], buildjob.prototype, "shuttled_by", void 0);
1122
1290
  buildjob = tslib.__decorate([
1123
1291
  antelope.Struct.type('buildjob')
1124
1292
  ], buildjob);
1125
1293
  Types.buildjob = buildjob;
1126
- let coordinates = class coordinates extends antelope.Struct {
1127
- };
1128
- tslib.__decorate([
1129
- antelope.Struct.field(antelope.Int64)
1130
- ], coordinates.prototype, "x", void 0);
1131
- tslib.__decorate([
1132
- antelope.Struct.field(antelope.Int64)
1133
- ], coordinates.prototype, "y", void 0);
1134
- tslib.__decorate([
1135
- antelope.Struct.field(antelope.UInt16, { optional: true })
1136
- ], coordinates.prototype, "z", void 0);
1137
- coordinates = tslib.__decorate([
1138
- antelope.Struct.type('coordinates')
1139
- ], coordinates);
1140
- Types.coordinates = coordinates;
1141
1294
  let buildjob_row = class buildjob_row extends antelope.Struct {
1142
1295
  };
1143
1296
  tslib.__decorate([
@@ -1216,18 +1369,6 @@ var Types$1;
1216
1369
  antelope.Struct.type('cancel')
1217
1370
  ], cancel);
1218
1371
  Types.cancel = cancel;
1219
- let entity_ref = class entity_ref extends antelope.Struct {
1220
- };
1221
- tslib.__decorate([
1222
- antelope.Struct.field(antelope.Name)
1223
- ], entity_ref.prototype, "entity_type", void 0);
1224
- tslib.__decorate([
1225
- antelope.Struct.field(antelope.UInt64)
1226
- ], entity_ref.prototype, "entity_id", void 0);
1227
- entity_ref = tslib.__decorate([
1228
- antelope.Struct.type('entity_ref')
1229
- ], entity_ref);
1230
- Types.entity_ref = entity_ref;
1231
1372
  let cancel_results = class cancel_results extends antelope.Struct {
1232
1373
  };
1233
1374
  tslib.__decorate([
@@ -1257,6 +1398,9 @@ var Types$1;
1257
1398
  tslib.__decorate([
1258
1399
  antelope.Struct.field(antelope.UInt64)
1259
1400
  ], cancelbuild.prototype, "job_id", void 0);
1401
+ tslib.__decorate([
1402
+ antelope.Struct.field(antelope.UInt64, { optional: true })
1403
+ ], cancelbuild.prototype, "shuttled_by", void 0);
1260
1404
  cancelbuild = tslib.__decorate([
1261
1405
  antelope.Struct.type('cancelbuild')
1262
1406
  ], cancelbuild);
@@ -1336,6 +1480,39 @@ var Types$1;
1336
1480
  antelope.Struct.type('cargo_view')
1337
1481
  ], cargo_view);
1338
1482
  Types.cargo_view = cargo_view;
1483
+ let cargoreserve_row = class cargoreserve_row extends antelope.Struct {
1484
+ };
1485
+ tslib.__decorate([
1486
+ antelope.Struct.field(antelope.UInt64)
1487
+ ], cargoreserve_row.prototype, "id", void 0);
1488
+ tslib.__decorate([
1489
+ antelope.Struct.field(antelope.UInt64)
1490
+ ], cargoreserve_row.prototype, "entity_id", void 0);
1491
+ tslib.__decorate([
1492
+ antelope.Struct.field(antelope.UInt64)
1493
+ ], cargoreserve_row.prototype, "hold", void 0);
1494
+ tslib.__decorate([
1495
+ antelope.Struct.field(antelope.Name)
1496
+ ], cargoreserve_row.prototype, "owner", void 0);
1497
+ tslib.__decorate([
1498
+ antelope.Struct.field(antelope.UInt64)
1499
+ ], cargoreserve_row.prototype, "item_id", void 0);
1500
+ tslib.__decorate([
1501
+ antelope.Struct.field(antelope.UInt64)
1502
+ ], cargoreserve_row.prototype, "quantity", void 0);
1503
+ tslib.__decorate([
1504
+ antelope.Struct.field(antelope.UInt64)
1505
+ ], cargoreserve_row.prototype, "stats", void 0);
1506
+ tslib.__decorate([
1507
+ antelope.Struct.field(module_entry, { array: true })
1508
+ ], cargoreserve_row.prototype, "modules", void 0);
1509
+ tslib.__decorate([
1510
+ antelope.Struct.field(antelope.UInt64, { optional: true })
1511
+ ], cargoreserve_row.prototype, "sequence_id", void 0);
1512
+ cargoreserve_row = tslib.__decorate([
1513
+ antelope.Struct.type('cargoreserve_row')
1514
+ ], cargoreserve_row);
1515
+ Types.cargoreserve_row = cargoreserve_row;
1339
1516
  let castballot = class castballot extends antelope.Struct {
1340
1517
  };
1341
1518
  tslib.__decorate([
@@ -1599,6 +1776,9 @@ var Types$1;
1599
1776
  tslib.__decorate([
1600
1777
  antelope.Struct.field(antelope.UInt64)
1601
1778
  ], claimcraft.prototype, "ship_id", void 0);
1779
+ tslib.__decorate([
1780
+ antelope.Struct.field(antelope.UInt64, { optional: true })
1781
+ ], claimcraft.prototype, "shuttled_by", void 0);
1602
1782
  claimcraft = tslib.__decorate([
1603
1783
  antelope.Struct.type('claimcraft')
1604
1784
  ], claimcraft);
@@ -1831,21 +2011,6 @@ var Types$1;
1831
2011
  antelope.Struct.type('configlog')
1832
2012
  ], configlog);
1833
2013
  Types.configlog = configlog;
1834
- let coupling = class coupling extends antelope.Struct {
1835
- };
1836
- tslib.__decorate([
1837
- antelope.Struct.field(entity_ref)
1838
- ], coupling.prototype, "counterpart", void 0);
1839
- tslib.__decorate([
1840
- antelope.Struct.field(antelope.UInt64)
1841
- ], coupling.prototype, "hold", void 0);
1842
- tslib.__decorate([
1843
- antelope.Struct.field(antelope.UInt8)
1844
- ], coupling.prototype, "kind", void 0);
1845
- coupling = tslib.__decorate([
1846
- antelope.Struct.type('coupling')
1847
- ], coupling);
1848
- Types.coupling = coupling;
1849
2014
  let craft = class craft extends antelope.Struct {
1850
2015
  };
1851
2016
  tslib.__decorate([
@@ -1905,6 +2070,9 @@ var Types$1;
1905
2070
  tslib.__decorate([
1906
2071
  antelope.Struct.field(cargo_item, { array: true })
1907
2072
  ], craftjob.prototype, "inputs", void 0);
2073
+ tslib.__decorate([
2074
+ antelope.Struct.field(antelope.UInt64, { optional: true })
2075
+ ], craftjob.prototype, "shuttled_by", void 0);
1908
2076
  craftjob = tslib.__decorate([
1909
2077
  antelope.Struct.type('craftjob')
1910
2078
  ], craftjob);
@@ -1966,6 +2134,69 @@ var Types$1;
1966
2134
  antelope.Struct.type('craftjobs_result')
1967
2135
  ], craftjobs_result);
1968
2136
  Types.craftjobs_result = craftjobs_result;
2137
+ let hold = class hold extends antelope.Struct {
2138
+ };
2139
+ tslib.__decorate([
2140
+ antelope.Struct.field(antelope.UInt64)
2141
+ ], hold.prototype, "id", void 0);
2142
+ tslib.__decorate([
2143
+ antelope.Struct.field(antelope.UInt8)
2144
+ ], hold.prototype, "kind", void 0);
2145
+ tslib.__decorate([
2146
+ antelope.Struct.field(entity_ref)
2147
+ ], hold.prototype, "counterpart", void 0);
2148
+ tslib.__decorate([
2149
+ antelope.Struct.field(antelope.TimePoint)
2150
+ ], hold.prototype, "until", void 0);
2151
+ tslib.__decorate([
2152
+ antelope.Struct.field(antelope.UInt32)
2153
+ ], hold.prototype, "incoming_mass", void 0);
2154
+ hold = tslib.__decorate([
2155
+ antelope.Struct.type('hold')
2156
+ ], hold);
2157
+ Types.hold = hold;
2158
+ let dbgappend = class dbgappend extends antelope.Struct {
2159
+ };
2160
+ tslib.__decorate([
2161
+ antelope.Struct.field(lane, { array: true })
2162
+ ], dbgappend.prototype, "lanes", void 0);
2163
+ tslib.__decorate([
2164
+ antelope.Struct.field(hold, { array: true })
2165
+ ], dbgappend.prototype, "holds", void 0);
2166
+ tslib.__decorate([
2167
+ antelope.Struct.field(task)
2168
+ ], dbgappend.prototype, "new_task", void 0);
2169
+ tslib.__decorate([
2170
+ antelope.Struct.field(antelope.UInt8)
2171
+ ], dbgappend.prototype, "lane_key", void 0);
2172
+ tslib.__decorate([
2173
+ antelope.Struct.field(antelope.TimePoint)
2174
+ ], dbgappend.prototype, "now", void 0);
2175
+ tslib.__decorate([
2176
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
2177
+ ], dbgappend.prototype, "min_starts_at", void 0);
2178
+ dbgappend = tslib.__decorate([
2179
+ antelope.Struct.type('dbgappend')
2180
+ ], dbgappend);
2181
+ Types.dbgappend = dbgappend;
2182
+ let dbgbarrier = class dbgbarrier extends antelope.Struct {
2183
+ };
2184
+ tslib.__decorate([
2185
+ antelope.Struct.field(lane, { array: true })
2186
+ ], dbgbarrier.prototype, "lanes", void 0);
2187
+ tslib.__decorate([
2188
+ antelope.Struct.field(hold, { array: true })
2189
+ ], dbgbarrier.prototype, "holds", void 0);
2190
+ tslib.__decorate([
2191
+ antelope.Struct.field(task)
2192
+ ], dbgbarrier.prototype, "new_task", void 0);
2193
+ tslib.__decorate([
2194
+ antelope.Struct.field(antelope.UInt8)
2195
+ ], dbgbarrier.prototype, "lane_key", void 0);
2196
+ dbgbarrier = tslib.__decorate([
2197
+ antelope.Struct.type('dbgbarrier')
2198
+ ], dbgbarrier);
2199
+ Types.dbgbarrier = dbgbarrier;
1969
2200
  let dbgcredit = class dbgcredit extends antelope.Struct {
1970
2201
  };
1971
2202
  tslib.__decorate([
@@ -2134,6 +2365,30 @@ var Types$1;
2134
2365
  antelope.Struct.type('dbgseats')
2135
2366
  ], dbgseats);
2136
2367
  Types.dbgseats = dbgseats;
2368
+ let dbgstart = class dbgstart extends antelope.Struct {
2369
+ };
2370
+ tslib.__decorate([
2371
+ antelope.Struct.field(lane, { array: true })
2372
+ ], dbgstart.prototype, "lanes", void 0);
2373
+ tslib.__decorate([
2374
+ antelope.Struct.field(hold, { array: true })
2375
+ ], dbgstart.prototype, "holds", void 0);
2376
+ tslib.__decorate([
2377
+ antelope.Struct.field(task)
2378
+ ], dbgstart.prototype, "new_task", void 0);
2379
+ tslib.__decorate([
2380
+ antelope.Struct.field(antelope.UInt8)
2381
+ ], dbgstart.prototype, "lane_key", void 0);
2382
+ tslib.__decorate([
2383
+ antelope.Struct.field(antelope.TimePoint)
2384
+ ], dbgstart.prototype, "now", void 0);
2385
+ tslib.__decorate([
2386
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
2387
+ ], dbgstart.prototype, "min_starts_at", void 0);
2388
+ dbgstart = tslib.__decorate([
2389
+ antelope.Struct.type('dbgstart')
2390
+ ], dbgstart);
2391
+ Types.dbgstart = dbgstart;
2137
2392
  let decomp_bucket = class decomp_bucket extends antelope.Struct {
2138
2393
  };
2139
2394
  tslib.__decorate([
@@ -2274,6 +2529,9 @@ var Types$1;
2274
2529
  tslib.__decorate([
2275
2530
  antelope.Struct.field(cargo_item, { array: true })
2276
2531
  ], depotstore.prototype, "items", void 0);
2532
+ tslib.__decorate([
2533
+ antelope.Struct.field(antelope.UInt64, { optional: true })
2534
+ ], depotstore.prototype, "shuttled_by", void 0);
2277
2535
  depotstore = tslib.__decorate([
2278
2536
  antelope.Struct.type('depotstore')
2279
2537
  ], depotstore);
@@ -2289,6 +2547,9 @@ var Types$1;
2289
2547
  tslib.__decorate([
2290
2548
  antelope.Struct.field(cargo_item, { array: true })
2291
2549
  ], depottake.prototype, "items", void 0);
2550
+ tslib.__decorate([
2551
+ antelope.Struct.field(antelope.UInt64, { optional: true })
2552
+ ], depottake.prototype, "shuttled_by", void 0);
2292
2553
  depottake = tslib.__decorate([
2293
2554
  antelope.Struct.type('depottake')
2294
2555
  ], depottake);
@@ -2449,105 +2710,6 @@ var Types$1;
2449
2710
  antelope.Struct.type('launcher_stats')
2450
2711
  ], launcher_stats);
2451
2712
  Types.launcher_stats = launcher_stats;
2452
- let refit_op = class refit_op extends antelope.Struct {
2453
- };
2454
- tslib.__decorate([
2455
- antelope.Struct.field(antelope.UInt8)
2456
- ], refit_op.prototype, "op", void 0);
2457
- tslib.__decorate([
2458
- antelope.Struct.field(antelope.UInt8)
2459
- ], refit_op.prototype, "slot", void 0);
2460
- refit_op = tslib.__decorate([
2461
- antelope.Struct.type('refit_op')
2462
- ], refit_op);
2463
- Types.refit_op = refit_op;
2464
- let task = class task extends antelope.Struct {
2465
- };
2466
- tslib.__decorate([
2467
- antelope.Struct.field(antelope.UInt8)
2468
- ], task.prototype, "type", void 0);
2469
- tslib.__decorate([
2470
- antelope.Struct.field(antelope.UInt32)
2471
- ], task.prototype, "duration", void 0);
2472
- tslib.__decorate([
2473
- antelope.Struct.field(antelope.UInt8)
2474
- ], task.prototype, "cancelable", void 0);
2475
- tslib.__decorate([
2476
- antelope.Struct.field(coordinates, { optional: true })
2477
- ], task.prototype, "coordinates", void 0);
2478
- tslib.__decorate([
2479
- antelope.Struct.field(cargo_item, { array: true })
2480
- ], task.prototype, "cargo", void 0);
2481
- tslib.__decorate([
2482
- antelope.Struct.field(coupling, { array: true })
2483
- ], task.prototype, "couplings", void 0);
2484
- tslib.__decorate([
2485
- antelope.Struct.field(entity_ref, { optional: true })
2486
- ], task.prototype, "subject", void 0);
2487
- tslib.__decorate([
2488
- antelope.Struct.field(antelope.UInt64, { optional: true })
2489
- ], task.prototype, "entitygroup", void 0);
2490
- tslib.__decorate([
2491
- antelope.Struct.field(antelope.UInt32, { optional: true })
2492
- ], task.prototype, "energy_cost", void 0);
2493
- tslib.__decorate([
2494
- antelope.Struct.field(antelope.UInt16, { optional: true })
2495
- ], task.prototype, "target_item_id", void 0);
2496
- tslib.__decorate([
2497
- antelope.Struct.field(refit_op, { optional: true })
2498
- ], task.prototype, "refit", void 0);
2499
- tslib.__decorate([
2500
- antelope.Struct.field(antelope.UInt32, { optional: true })
2501
- ], task.prototype, "charter_node", void 0);
2502
- task = tslib.__decorate([
2503
- antelope.Struct.type('task')
2504
- ], task);
2505
- Types.task = task;
2506
- let schedule = class schedule extends antelope.Struct {
2507
- };
2508
- tslib.__decorate([
2509
- antelope.Struct.field(antelope.TimePoint)
2510
- ], schedule.prototype, "started", void 0);
2511
- tslib.__decorate([
2512
- antelope.Struct.field(task, { array: true })
2513
- ], schedule.prototype, "tasks", void 0);
2514
- schedule = tslib.__decorate([
2515
- antelope.Struct.type('schedule')
2516
- ], schedule);
2517
- Types.schedule = schedule;
2518
- let lane = class lane extends antelope.Struct {
2519
- };
2520
- tslib.__decorate([
2521
- antelope.Struct.field(antelope.UInt8)
2522
- ], lane.prototype, "lane_key", void 0);
2523
- tslib.__decorate([
2524
- antelope.Struct.field(schedule)
2525
- ], lane.prototype, "schedule", void 0);
2526
- lane = tslib.__decorate([
2527
- antelope.Struct.type('lane')
2528
- ], lane);
2529
- Types.lane = lane;
2530
- let hold = class hold extends antelope.Struct {
2531
- };
2532
- tslib.__decorate([
2533
- antelope.Struct.field(antelope.UInt64)
2534
- ], hold.prototype, "id", void 0);
2535
- tslib.__decorate([
2536
- antelope.Struct.field(antelope.UInt8)
2537
- ], hold.prototype, "kind", void 0);
2538
- tslib.__decorate([
2539
- antelope.Struct.field(entity_ref)
2540
- ], hold.prototype, "counterpart", void 0);
2541
- tslib.__decorate([
2542
- antelope.Struct.field(antelope.TimePoint)
2543
- ], hold.prototype, "until", void 0);
2544
- tslib.__decorate([
2545
- antelope.Struct.field(antelope.UInt32)
2546
- ], hold.prototype, "incoming_mass", void 0);
2547
- hold = tslib.__decorate([
2548
- antelope.Struct.type('hold')
2549
- ], hold);
2550
- Types.hold = hold;
2551
2713
  let entity_info = class entity_info extends antelope.Struct {
2552
2714
  };
2553
2715
  tslib.__decorate([
@@ -2824,6 +2986,12 @@ var Types$1;
2824
2986
  antelope.Struct.type('fixcargomass')
2825
2987
  ], fixcargomass);
2826
2988
  Types.fixcargomass = fixcargomass;
2989
+ let fixhubid = class fixhubid extends antelope.Struct {
2990
+ };
2991
+ fixhubid = tslib.__decorate([
2992
+ antelope.Struct.type('fixhubid')
2993
+ ], fixhubid);
2994
+ Types.fixhubid = fixhubid;
2827
2995
  let fixitemids = class fixitemids extends antelope.Struct {
2828
2996
  };
2829
2997
  fixitemids = tslib.__decorate([
@@ -2954,11 +3122,44 @@ var Types$1;
2954
3122
  };
2955
3123
  tslib.__decorate([
2956
3124
  antelope.Struct.field(antelope.UInt64)
2957
- ], getbuildjobs.prototype, "building_id", void 0);
2958
- getbuildjobs = tslib.__decorate([
2959
- antelope.Struct.type('getbuildjobs')
2960
- ], getbuildjobs);
2961
- Types.getbuildjobs = getbuildjobs;
3125
+ ], getbuildjobs.prototype, "building_id", void 0);
3126
+ getbuildjobs = tslib.__decorate([
3127
+ antelope.Struct.type('getbuildjobs')
3128
+ ], getbuildjobs);
3129
+ Types.getbuildjobs = getbuildjobs;
3130
+ let getbuildopts = class getbuildopts extends antelope.Struct {
3131
+ };
3132
+ tslib.__decorate([
3133
+ antelope.Struct.field(antelope.UInt64)
3134
+ ], getbuildopts.prototype, "target_id", void 0);
3135
+ tslib.__decorate([
3136
+ antelope.Struct.field(antelope.UInt64)
3137
+ ], getbuildopts.prototype, "dock_id", void 0);
3138
+ tslib.__decorate([
3139
+ antelope.Struct.field(antelope.UInt16)
3140
+ ], getbuildopts.prototype, "target_item_id", void 0);
3141
+ tslib.__decorate([
3142
+ antelope.Struct.field(cargo_item, { array: true })
3143
+ ], getbuildopts.prototype, "inputs", void 0);
3144
+ tslib.__decorate([
3145
+ antelope.Struct.field(antelope.UInt64, { array: true })
3146
+ ], getbuildopts.prototype, "candidates", void 0);
3147
+ getbuildopts = tslib.__decorate([
3148
+ antelope.Struct.type('getbuildopts')
3149
+ ], getbuildopts);
3150
+ Types.getbuildopts = getbuildopts;
3151
+ let getcbldopts = class getcbldopts extends antelope.Struct {
3152
+ };
3153
+ tslib.__decorate([
3154
+ antelope.Struct.field(antelope.UInt64)
3155
+ ], getcbldopts.prototype, "job_id", void 0);
3156
+ tslib.__decorate([
3157
+ antelope.Struct.field(antelope.UInt64, { array: true })
3158
+ ], getcbldopts.prototype, "candidates", void 0);
3159
+ getcbldopts = tslib.__decorate([
3160
+ antelope.Struct.type('getcbldopts')
3161
+ ], getcbldopts);
3162
+ Types.getcbldopts = getcbldopts;
2962
3163
  let getcharter = class getcharter extends antelope.Struct {
2963
3164
  };
2964
3165
  tslib.__decorate([
@@ -2983,6 +3184,21 @@ var Types$1;
2983
3184
  antelope.Struct.type('getchrtready')
2984
3185
  ], getchrtready);
2985
3186
  Types.getchrtready = getchrtready;
3187
+ let getclaimopts = class getclaimopts extends antelope.Struct {
3188
+ };
3189
+ tslib.__decorate([
3190
+ antelope.Struct.field(antelope.UInt64)
3191
+ ], getclaimopts.prototype, "job_id", void 0);
3192
+ tslib.__decorate([
3193
+ antelope.Struct.field(antelope.UInt64)
3194
+ ], getclaimopts.prototype, "ship_id", void 0);
3195
+ tslib.__decorate([
3196
+ antelope.Struct.field(antelope.UInt64, { array: true })
3197
+ ], getclaimopts.prototype, "candidates", void 0);
3198
+ getclaimopts = tslib.__decorate([
3199
+ antelope.Struct.type('getclaimopts')
3200
+ ], getclaimopts);
3201
+ Types.getclaimopts = getclaimopts;
2986
3202
  let getcluster = class getcluster extends antelope.Struct {
2987
3203
  };
2988
3204
  tslib.__decorate([
@@ -3007,6 +3223,33 @@ var Types$1;
3007
3223
  antelope.Struct.type('getcraftjobs')
3008
3224
  ], getcraftjobs);
3009
3225
  Types.getcraftjobs = getcraftjobs;
3226
+ let getcraftopts = class getcraftopts extends antelope.Struct {
3227
+ };
3228
+ tslib.__decorate([
3229
+ antelope.Struct.field(antelope.UInt64)
3230
+ ], getcraftopts.prototype, "ship_id", void 0);
3231
+ tslib.__decorate([
3232
+ antelope.Struct.field(antelope.UInt64)
3233
+ ], getcraftopts.prototype, "workshop_id", void 0);
3234
+ tslib.__decorate([
3235
+ antelope.Struct.field(antelope.UInt16)
3236
+ ], getcraftopts.prototype, "recipe_id", void 0);
3237
+ tslib.__decorate([
3238
+ antelope.Struct.field(antelope.UInt32)
3239
+ ], getcraftopts.prototype, "quantity", void 0);
3240
+ tslib.__decorate([
3241
+ antelope.Struct.field(cargo_item, { array: true })
3242
+ ], getcraftopts.prototype, "inputs", void 0);
3243
+ tslib.__decorate([
3244
+ antelope.Struct.field(antelope.UInt64, { array: true })
3245
+ ], getcraftopts.prototype, "candidates", void 0);
3246
+ tslib.__decorate([
3247
+ antelope.Struct.field('bool')
3248
+ ], getcraftopts.prototype, "recharge", void 0);
3249
+ getcraftopts = tslib.__decorate([
3250
+ antelope.Struct.type('getcraftopts')
3251
+ ], getcraftopts);
3252
+ Types.getcraftopts = getcraftopts;
3010
3253
  let getdecomp = class getdecomp extends antelope.Struct {
3011
3254
  };
3012
3255
  tslib.__decorate([
@@ -3361,6 +3604,24 @@ var Types$1;
3361
3604
  antelope.Struct.type('getslots')
3362
3605
  ], getslots);
3363
3606
  Types.getslots = getslots;
3607
+ let getstoreopts = class getstoreopts extends antelope.Struct {
3608
+ };
3609
+ tslib.__decorate([
3610
+ antelope.Struct.field(antelope.UInt64)
3611
+ ], getstoreopts.prototype, "ship_id", void 0);
3612
+ tslib.__decorate([
3613
+ antelope.Struct.field(antelope.UInt64)
3614
+ ], getstoreopts.prototype, "depot_id", void 0);
3615
+ tslib.__decorate([
3616
+ antelope.Struct.field(cargo_item, { array: true })
3617
+ ], getstoreopts.prototype, "items", void 0);
3618
+ tslib.__decorate([
3619
+ antelope.Struct.field(antelope.UInt64, { array: true })
3620
+ ], getstoreopts.prototype, "candidates", void 0);
3621
+ getstoreopts = tslib.__decorate([
3622
+ antelope.Struct.type('getstoreopts')
3623
+ ], getstoreopts);
3624
+ Types.getstoreopts = getstoreopts;
3364
3625
  let getstratum = class getstratum extends antelope.Struct {
3365
3626
  };
3366
3627
  tslib.__decorate([
@@ -3388,6 +3649,30 @@ var Types$1;
3388
3649
  antelope.Struct.type('getsummaries')
3389
3650
  ], getsummaries);
3390
3651
  Types.getsummaries = getsummaries;
3652
+ let gettakeopts = class gettakeopts extends antelope.Struct {
3653
+ };
3654
+ tslib.__decorate([
3655
+ antelope.Struct.field(antelope.UInt64)
3656
+ ], gettakeopts.prototype, "ship_id", void 0);
3657
+ tslib.__decorate([
3658
+ antelope.Struct.field(antelope.UInt64)
3659
+ ], gettakeopts.prototype, "depot_id", void 0);
3660
+ tslib.__decorate([
3661
+ antelope.Struct.field(cargo_item, { array: true })
3662
+ ], gettakeopts.prototype, "items", void 0);
3663
+ tslib.__decorate([
3664
+ antelope.Struct.field(antelope.UInt64, { array: true })
3665
+ ], gettakeopts.prototype, "candidates", void 0);
3666
+ gettakeopts = tslib.__decorate([
3667
+ antelope.Struct.type('gettakeopts')
3668
+ ], gettakeopts);
3669
+ Types.gettakeopts = gettakeopts;
3670
+ let gettasktypes = class gettasktypes extends antelope.Struct {
3671
+ };
3672
+ gettasktypes = tslib.__decorate([
3673
+ antelope.Struct.type('gettasktypes')
3674
+ ], gettasktypes);
3675
+ Types.gettasktypes = gettasktypes;
3391
3676
  let getvoteready = class getvoteready extends antelope.Struct {
3392
3677
  };
3393
3678
  getvoteready = tslib.__decorate([
@@ -3532,6 +3817,33 @@ var Types$1;
3532
3817
  antelope.Struct.type('importgroup')
3533
3818
  ], importgroup);
3534
3819
  Types.importgroup = importgroup;
3820
+ let locker_row = class locker_row extends antelope.Struct {
3821
+ };
3822
+ tslib.__decorate([
3823
+ antelope.Struct.field(antelope.UInt64)
3824
+ ], locker_row.prototype, "depot_id", void 0);
3825
+ tslib.__decorate([
3826
+ antelope.Struct.field(antelope.UInt64)
3827
+ ], locker_row.prototype, "stored_mass", void 0);
3828
+ tslib.__decorate([
3829
+ antelope.Struct.field(antelope.UInt64)
3830
+ ], locker_row.prototype, "reserved_mass", void 0);
3831
+ locker_row = tslib.__decorate([
3832
+ antelope.Struct.type('locker_row')
3833
+ ], locker_row);
3834
+ Types.locker_row = locker_row;
3835
+ let importlocker = class importlocker extends antelope.Struct {
3836
+ };
3837
+ tslib.__decorate([
3838
+ antelope.Struct.field(antelope.Name)
3839
+ ], importlocker.prototype, "owner", void 0);
3840
+ tslib.__decorate([
3841
+ antelope.Struct.field(locker_row)
3842
+ ], importlocker.prototype, "row", void 0);
3843
+ importlocker = tslib.__decorate([
3844
+ antelope.Struct.type('importlocker')
3845
+ ], importlocker);
3846
+ Types.importlocker = importlocker;
3535
3847
  let nftconfig_row = class nftconfig_row extends antelope.Struct {
3536
3848
  };
3537
3849
  tslib.__decorate([
@@ -3622,6 +3934,18 @@ var Types$1;
3622
3934
  antelope.Struct.type('importstate')
3623
3935
  ], importstate);
3624
3936
  Types.importstate = importstate;
3937
+ let importstorage = class importstorage extends antelope.Struct {
3938
+ };
3939
+ tslib.__decorate([
3940
+ antelope.Struct.field(antelope.UInt64)
3941
+ ], importstorage.prototype, "depot_id", void 0);
3942
+ tslib.__decorate([
3943
+ antelope.Struct.field(storage_row)
3944
+ ], importstorage.prototype, "row", void 0);
3945
+ importstorage = tslib.__decorate([
3946
+ antelope.Struct.type('importstorage')
3947
+ ], importstorage);
3948
+ Types.importstorage = importstorage;
3625
3949
  let infburn_row = class infburn_row extends antelope.Struct {
3626
3950
  };
3627
3951
  tslib.__decorate([
@@ -4024,21 +4348,6 @@ var Types$1;
4024
4348
  antelope.Struct.type('location_info')
4025
4349
  ], location_info);
4026
4350
  Types.location_info = location_info;
4027
- let locker_row = class locker_row extends antelope.Struct {
4028
- };
4029
- tslib.__decorate([
4030
- antelope.Struct.field(antelope.UInt64)
4031
- ], locker_row.prototype, "depot_id", void 0);
4032
- tslib.__decorate([
4033
- antelope.Struct.field(antelope.UInt64)
4034
- ], locker_row.prototype, "stored_mass", void 0);
4035
- tslib.__decorate([
4036
- antelope.Struct.field(antelope.UInt64)
4037
- ], locker_row.prototype, "reserved_mass", void 0);
4038
- locker_row = tslib.__decorate([
4039
- antelope.Struct.type('locker_row')
4040
- ], locker_row);
4041
- Types.locker_row = locker_row;
4042
4351
  let mandates_row = class mandates_row extends antelope.Struct {
4043
4352
  };
4044
4353
  tslib.__decorate([
@@ -4984,6 +5293,87 @@ var Types$1;
4984
5293
  antelope.Struct.type('shuttle')
4985
5294
  ], shuttle);
4986
5295
  Types.shuttle = shuttle;
5296
+ let shuttle_rejection = class shuttle_rejection extends antelope.Struct {
5297
+ };
5298
+ tslib.__decorate([
5299
+ antelope.Struct.field('string')
5300
+ ], shuttle_rejection.prototype, "reason", void 0);
5301
+ tslib.__decorate([
5302
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
5303
+ ], shuttle_rejection.prototype, "at", void 0);
5304
+ tslib.__decorate([
5305
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
5306
+ ], shuttle_rejection.prototype, "until", void 0);
5307
+ tslib.__decorate([
5308
+ antelope.Struct.field(antelope.UInt64, { optional: true })
5309
+ ], shuttle_rejection.prototype, "have", void 0);
5310
+ tslib.__decorate([
5311
+ antelope.Struct.field(antelope.UInt64, { optional: true })
5312
+ ], shuttle_rejection.prototype, "need", void 0);
5313
+ tslib.__decorate([
5314
+ antelope.Struct.field(antelope.UInt64, { optional: true })
5315
+ ], shuttle_rejection.prototype, "cap", void 0);
5316
+ tslib.__decorate([
5317
+ antelope.Struct.field(antelope.UInt8, { optional: true })
5318
+ ], shuttle_rejection.prototype, "task_type", void 0);
5319
+ shuttle_rejection = tslib.__decorate([
5320
+ antelope.Struct.type('shuttle_rejection')
5321
+ ], shuttle_rejection);
5322
+ Types.shuttle_rejection = shuttle_rejection;
5323
+ let shuttle_option = class shuttle_option extends antelope.Struct {
5324
+ };
5325
+ tslib.__decorate([
5326
+ antelope.Struct.field(antelope.UInt64, { optional: true })
5327
+ ], shuttle_option.prototype, "shuttled_by", void 0);
5328
+ tslib.__decorate([
5329
+ antelope.Struct.field(antelope.UInt8)
5330
+ ], shuttle_option.prototype, "mode", void 0);
5331
+ tslib.__decorate([
5332
+ antelope.Struct.field(antelope.UInt64)
5333
+ ], shuttle_option.prototype, "host_id", void 0);
5334
+ tslib.__decorate([
5335
+ antelope.Struct.field(antelope.UInt8)
5336
+ ], shuttle_option.prototype, "lane_key", void 0);
5337
+ tslib.__decorate([
5338
+ antelope.Struct.field(antelope.UInt32)
5339
+ ], shuttle_option.prototype, "duration", void 0);
5340
+ tslib.__decorate([
5341
+ antelope.Struct.field(antelope.TimePoint)
5342
+ ], shuttle_option.prototype, "start", void 0);
5343
+ tslib.__decorate([
5344
+ antelope.Struct.field(antelope.TimePoint)
5345
+ ], shuttle_option.prototype, "finish", void 0);
5346
+ tslib.__decorate([
5347
+ antelope.Struct.field(antelope.UInt8)
5348
+ ], shuttle_option.prototype, "bays", void 0);
5349
+ tslib.__decorate([
5350
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
5351
+ ], shuttle_option.prototype, "window_starts_at", void 0);
5352
+ tslib.__decorate([
5353
+ antelope.Struct.field(antelope.TimePoint, { optional: true })
5354
+ ], shuttle_option.prototype, "window_completes_at", void 0);
5355
+ tslib.__decorate([
5356
+ antelope.Struct.field(antelope.UInt32, { optional: true })
5357
+ ], shuttle_option.prototype, "energy_cost", void 0);
5358
+ tslib.__decorate([
5359
+ antelope.Struct.field(shuttle_rejection, { optional: true })
5360
+ ], shuttle_option.prototype, "rejection", void 0);
5361
+ tslib.__decorate([
5362
+ antelope.Struct.field('bool')
5363
+ ], shuttle_option.prototype, "resolved", void 0);
5364
+ shuttle_option = tslib.__decorate([
5365
+ antelope.Struct.type('shuttle_option')
5366
+ ], shuttle_option);
5367
+ Types.shuttle_option = shuttle_option;
5368
+ let shuttle_options = class shuttle_options extends antelope.Struct {
5369
+ };
5370
+ tslib.__decorate([
5371
+ antelope.Struct.field(shuttle_option, { array: true })
5372
+ ], shuttle_options.prototype, "options", void 0);
5373
+ shuttle_options = tslib.__decorate([
5374
+ antelope.Struct.type('shuttle_options')
5375
+ ], shuttle_options);
5376
+ Types.shuttle_options = shuttle_options;
4987
5377
  let socket_pick = class socket_pick extends antelope.Struct {
4988
5378
  };
4989
5379
  tslib.__decorate([
@@ -5146,6 +5536,42 @@ var Types$1;
5146
5536
  antelope.Struct.type('task_results')
5147
5537
  ], task_results);
5148
5538
  Types.task_results = task_results;
5539
+ let task_type_info = class task_type_info extends antelope.Struct {
5540
+ };
5541
+ tslib.__decorate([
5542
+ antelope.Struct.field(antelope.UInt8)
5543
+ ], task_type_info.prototype, "type", void 0);
5544
+ tslib.__decorate([
5545
+ antelope.Struct.field('bool')
5546
+ ], task_type_info.prototype, "position_bound", void 0);
5547
+ tslib.__decorate([
5548
+ antelope.Struct.field('bool')
5549
+ ], task_type_info.prototype, "mobility", void 0);
5550
+ tslib.__decorate([
5551
+ antelope.Struct.field('bool')
5552
+ ], task_type_info.prototype, "consumer", void 0);
5553
+ tslib.__decorate([
5554
+ antelope.Struct.field('bool')
5555
+ ], task_type_info.prototype, "is_terminal", void 0);
5556
+ tslib.__decorate([
5557
+ antelope.Struct.field('bool')
5558
+ ], task_type_info.prototype, "caps_plan", void 0);
5559
+ tslib.__decorate([
5560
+ antelope.Struct.field('bool')
5561
+ ], task_type_info.prototype, "cargo_effect_resolve", void 0);
5562
+ task_type_info = tslib.__decorate([
5563
+ antelope.Struct.type('task_type_info')
5564
+ ], task_type_info);
5565
+ Types.task_type_info = task_type_info;
5566
+ let task_types_result = class task_types_result extends antelope.Struct {
5567
+ };
5568
+ tslib.__decorate([
5569
+ antelope.Struct.field(task_type_info, { array: true })
5570
+ ], task_types_result.prototype, "types", void 0);
5571
+ task_types_result = tslib.__decorate([
5572
+ antelope.Struct.type('task_types_result')
5573
+ ], task_types_result);
5574
+ Types.task_types_result = task_types_result;
5149
5575
  let transit = class transit extends antelope.Struct {
5150
5576
  };
5151
5577
  tslib.__decorate([
@@ -5488,6 +5914,7 @@ var Types$1;
5488
5914
  buildings: Types$1.buildings_row,
5489
5915
  buildjobs: Types$1.buildjob_row,
5490
5916
  cargo: Types$1.cargo_row,
5917
+ cargoreserve: Types$1.cargoreserve_row,
5491
5918
  citizenship: Types$1.citizenship_row,
5492
5919
  civicconfig: Types$1.civicconfig_row,
5493
5920
  claims: Types$1.claim_row,
@@ -6432,442 +6859,312 @@ var items = [
6432
6859
  }
6433
6860
  ];
6434
6861
 
6435
- const itemMetadata = {
6436
- 101: { name: 'Ore', description: 'Crude metallic ore.', color: '#C26D3F' },
6437
- 102: { name: 'Ore', description: 'Refined metallic ore with improved purity.', color: '#C26D3F' },
6438
- 103: {
6862
+ const itemFamilies = {
6863
+ ore: {
6439
6864
  name: 'Ore',
6440
- description: 'High-grade metallic ore with exceptional density.',
6865
+ description: 'Refines into Plate and Beam.',
6441
6866
  color: '#C26D3F',
6442
6867
  },
6443
- 104: { name: 'Ore', description: '', color: '#C26D3F' },
6444
- 105: { name: 'Ore', description: '', color: '#C26D3F' },
6445
- 106: { name: 'Ore', description: '', color: '#C26D3F' },
6446
- 107: { name: 'Ore', description: '', color: '#C26D3F' },
6447
- 108: { name: 'Ore', description: '', color: '#C26D3F' },
6448
- 109: { name: 'Ore', description: '', color: '#C26D3F' },
6449
- 110: { name: 'Ore', description: '', color: '#C26D3F' },
6450
- 201: { name: 'Crystal', description: 'Raw resonant crystal.', color: '#4ADBFF' },
6451
- 202: {
6868
+ crystal: {
6452
6869
  name: 'Crystal',
6453
- description: 'Refined resonant crystal with improved clarity.',
6870
+ description: 'Refines into Sensors and Resonators.',
6454
6871
  color: '#4ADBFF',
6455
6872
  },
6456
- 203: {
6457
- name: 'Crystal',
6458
- description: 'High-grade resonant crystal with exceptional purity.',
6459
- color: '#4ADBFF',
6460
- },
6461
- 204: { name: 'Crystal', description: '', color: '#4ADBFF' },
6462
- 205: { name: 'Crystal', description: '', color: '#4ADBFF' },
6463
- 206: { name: 'Crystal', description: '', color: '#4ADBFF' },
6464
- 207: { name: 'Crystal', description: '', color: '#4ADBFF' },
6465
- 208: { name: 'Crystal', description: '', color: '#4ADBFF' },
6466
- 209: { name: 'Crystal', description: '', color: '#4ADBFF' },
6467
- 210: { name: 'Crystal', description: '', color: '#4ADBFF' },
6468
- 301: { name: 'Gas', description: 'Raw volatile gas.', color: '#B877FF' },
6469
- 302: {
6470
- name: 'Gas',
6471
- description: 'Refined volatile gas with improved reactivity.',
6472
- color: '#B877FF',
6473
- },
6474
- 303: {
6873
+ gas: {
6475
6874
  name: 'Gas',
6476
- description: 'High-grade volatile gas with exceptional energy density.',
6875
+ description: 'Refines into Plasma Cells and Reactors.',
6477
6876
  color: '#B877FF',
6478
6877
  },
6479
- 304: { name: 'Gas', description: '', color: '#B877FF' },
6480
- 305: { name: 'Gas', description: '', color: '#B877FF' },
6481
- 306: { name: 'Gas', description: '', color: '#B877FF' },
6482
- 307: { name: 'Gas', description: '', color: '#B877FF' },
6483
- 308: { name: 'Gas', description: '', color: '#B877FF' },
6484
- 309: { name: 'Gas', description: '', color: '#B877FF' },
6485
- 310: { name: 'Gas', description: '', color: '#B877FF' },
6486
- 401: { name: 'Regolith', description: 'Crude regolith dust.', color: '#C4A57B' },
6487
- 402: {
6488
- name: 'Regolith',
6489
- description: 'Refined regolith with improved fineness.',
6490
- color: '#C4A57B',
6491
- },
6492
- 403: {
6878
+ regolith: {
6493
6879
  name: 'Regolith',
6494
- description: 'High-grade regolith with exceptional uniformity.',
6880
+ description: 'Refines into Ceramic and Frame.',
6495
6881
  color: '#C4A57B',
6496
6882
  },
6497
- 404: { name: 'Regolith', description: '', color: '#C4A57B' },
6498
- 405: { name: 'Regolith', description: '', color: '#C4A57B' },
6499
- 406: { name: 'Regolith', description: '', color: '#C4A57B' },
6500
- 407: { name: 'Regolith', description: '', color: '#C4A57B' },
6501
- 408: { name: 'Regolith', description: '', color: '#C4A57B' },
6502
- 409: { name: 'Regolith', description: '', color: '#C4A57B' },
6503
- 410: { name: 'Regolith', description: '', color: '#C4A57B' },
6504
- 501: { name: 'Biomass', description: 'Crude organic biomass.', color: '#5A8B3E' },
6505
- 502: {
6506
- name: 'Biomass',
6507
- description: 'Refined biomass with improved plasticity.',
6508
- color: '#5A8B3E',
6509
- },
6510
- 503: {
6883
+ biomass: {
6511
6884
  name: 'Biomass',
6512
- description: 'High-grade biomass with exceptional saturation.',
6885
+ description: 'Refines into Polymer and Resin.',
6513
6886
  color: '#5A8B3E',
6514
6887
  },
6515
- 504: { name: 'Biomass', description: '', color: '#5A8B3E' },
6516
- 505: { name: 'Biomass', description: '', color: '#5A8B3E' },
6517
- 506: { name: 'Biomass', description: '', color: '#5A8B3E' },
6518
- 507: { name: 'Biomass', description: '', color: '#5A8B3E' },
6519
- 508: { name: 'Biomass', description: '', color: '#5A8B3E' },
6520
- 509: { name: 'Biomass', description: '', color: '#5A8B3E' },
6521
- 510: { name: 'Biomass', description: '', color: '#5A8B3E' },
6522
- 10001: {
6888
+ plate: {
6523
6889
  name: 'Plate',
6524
- description: 'Structural plating formed from ore. Used in hulls, containers, and storage modules.',
6890
+ description: 'Goes into Cargo Holds, Containers, and hulls.',
6525
6891
  color: '#7B8D9E',
6526
6892
  },
6527
- 10002: {
6893
+ frame: {
6528
6894
  name: 'Frame',
6529
- description: 'Composite framing formed from fine regolith bound in biomass polymer. Dense enough to seal cargo holds, flexible enough to absorb vibration.',
6895
+ description: 'Goes into Limpet Bays, Cargo Holds, and hulls.',
6530
6896
  color: '#C4A57B',
6531
6897
  },
6532
- 10003: {
6898
+ 'plasma-cell': {
6533
6899
  name: 'Plasma Cell',
6534
- description: 'High-energy gaseous storage cell. Volatile gas held under controlled thermal conditions.',
6900
+ description: 'Goes into Engines, Battery Banks, and hulls.',
6535
6901
  color: '#E86344',
6536
6902
  },
6537
- 10004: {
6903
+ resonator: {
6538
6904
  name: 'Resonator',
6539
- description: 'Crystalline resonance lattice. Stores and releases charge through coherent oscillation.',
6905
+ description: 'Goes into Power Cores, Tractor Beams, Warp Drives, and hulls.',
6540
6906
  color: '#4ADBFF',
6541
6907
  },
6542
- 10005: {
6908
+ beam: {
6543
6909
  name: 'Beam',
6544
- description: 'Heavy-duty structural beam machined from refined ore. Strong enough to bear load, tolerant enough to survive harsh environments.',
6910
+ description: 'Goes into Limpet Bays and hulls.',
6545
6911
  color: '#7B8D9E',
6546
6912
  },
6547
- 10006: {
6913
+ sensor: {
6548
6914
  name: 'Sensor',
6549
- description: 'Crystal-lattice sensing element with conductive and reflective properties. Reads signal and surface alike.',
6915
+ description: 'Goes into Fabricators, Assembly Arms, and hulls.',
6550
6916
  color: '#4ADBFF',
6551
6917
  },
6552
- 10007: {
6918
+ polymer: {
6553
6919
  name: 'Polymer',
6554
- description: 'Pliable biomass-derived polymer with high insulation. Flexible, durable, electrically inert.',
6920
+ description: 'Goes into Shuttle Bays, Battery Banks, and hulls.',
6555
6921
  color: '#5A8B3E',
6556
6922
  },
6557
- 10008: {
6923
+ ceramic: {
6558
6924
  name: 'Ceramic',
6559
- description: 'Hardened fine-grained ceramic refined from regolith. Hard enough to cut, fine enough to finish.',
6925
+ description: 'Goes into Assembly Arms, Containers, and hulls.',
6560
6926
  color: '#C4A57B',
6561
6927
  },
6562
- 10009: {
6928
+ reactor: {
6563
6929
  name: 'Reactor',
6564
- description: 'Gas-pressurized vessel for controlled reactions. Vents heat and contains volatility.',
6930
+ description: 'Goes into Fabricators, Warp Drives, and hulls.',
6565
6931
  color: '#B877FF',
6566
6932
  },
6567
- 10010: {
6933
+ resin: {
6568
6934
  name: 'Resin',
6569
- description: 'Saturated organic binder cured from biomass. A pliable matrix for haulage and field components.',
6935
+ description: 'Goes into Tractor Beams and hulls.',
6570
6936
  color: '#5A8B3E',
6571
6937
  },
6572
- 10100: {
6938
+ engine: {
6573
6939
  name: 'Engine',
6574
- description: 'Basic propulsion system. Converts volatile gases into thrust.',
6940
+ description: 'Moves a ship across the map.',
6575
6941
  color: '#E86344',
6576
6942
  },
6577
- 10101: {
6943
+ generator: {
6578
6944
  name: 'Power Core',
6579
- description: 'Basic energy system. Stores and recharges energy from resonant crystals.',
6945
+ description: 'Stores and recharges the energy work spends.',
6580
6946
  color: '#4ADBFF',
6581
6947
  },
6582
- 10102: {
6948
+ gatherer: {
6583
6949
  name: 'Limpet Bay',
6584
- description: 'Basic gathering system. Probes and conduits for raw resources.',
6950
+ description: 'Gathers resources from a deposit.',
6585
6951
  color: '#7B8D9E',
6586
6952
  },
6587
- 10103: {
6953
+ loader: {
6588
6954
  name: 'Shuttle Bay',
6589
- description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
6955
+ description: 'Moves cargo between entities at the same location.',
6590
6956
  color: '#5A8B3E',
6591
6957
  },
6592
- 10104: {
6958
+ crafter: {
6593
6959
  name: 'Fabricator',
6594
- description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
6960
+ description: 'Turns resources and components into items.',
6595
6961
  color: '#B877FF',
6596
6962
  },
6597
- 10105: {
6963
+ storage: {
6598
6964
  name: 'Cargo Hold',
6599
- description: 'Expanded cargo storage with reinforced internal holds.',
6965
+ description: 'Adds cargo capacity.',
6600
6966
  color: '#8B7355',
6601
6967
  },
6602
- 10106: {
6968
+ hauler: {
6603
6969
  name: 'Tractor Beam',
6604
- description: 'Projects a haul beam to lock onto and transport containers through group travel.',
6970
+ description: 'Tows entities along with the ship.',
6605
6971
  color: '#4ADBFF',
6606
6972
  },
6607
- 10107: {
6973
+ warp: {
6608
6974
  name: 'Warp Drive',
6609
- description: 'Folds local space-time around the hull, projecting the ship across vast distances in a single discharge of the entire energy reserve.',
6975
+ description: 'Jumps a long distance at once. Needs a full charge and an empty hold.',
6610
6976
  color: '#9be4ff',
6611
6977
  },
6612
- 10108: {
6978
+ battery: {
6613
6979
  name: 'Battery Bank',
6614
- description: 'Stores additional charge produced by the power core.',
6980
+ description: 'Adds energy capacity.',
6615
6981
  color: '#4ADBFF',
6616
6982
  },
6617
- 10109: {
6983
+ launcher: {
6618
6984
  name: 'Drive Coil',
6619
- description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
6985
+ description: 'Launches cargo toward a Mass Catcher.',
6620
6986
  color: '#E86344',
6621
6987
  },
6622
- 10110: {
6988
+ builder: {
6623
6989
  name: 'Assembly Arm',
6624
- description: 'Heavy manipulator arms for on-site construction work. Claims build sites, builds them out, and upgrades ships in place.',
6990
+ description: 'Claims plots, builds them out, and upgrades ships alongside.',
6625
6991
  color: '#FFB347',
6626
6992
  },
6627
- 10200: {
6993
+ container: {
6628
6994
  name: 'Container',
6629
- description: 'Passive floating cargo storage in space. Towed by ships.',
6995
+ description: 'Cargo storage that a Tractor Beam tows.',
6630
6996
  color: '#7B8D9E',
6631
6997
  },
6632
- 10201: {
6998
+ ship: {
6633
6999
  name: 'Ship',
6634
- description: 'General-purpose vessel with 5 module slots.',
7000
+ description: 'A hull for a mixed loadout.',
6635
7001
  color: '#4AE898',
6636
7002
  },
6637
- 10202: {
7003
+ warehouse: {
6638
7004
  name: 'Warehouse',
6639
- description: 'Massive stationary storage facility with a single loader module slot.',
7005
+ description: "A station's stockpile.",
6640
7006
  color: '#EAB308',
6641
7007
  },
6642
- 10203: {
7008
+ 'mining-rig': {
6643
7009
  name: 'Mining Rig',
6644
- description: 'Planetary resource extraction facility with generator and gatherer module slots.',
7010
+ description: "A station's mine, gathering from the location it stands at.",
6645
7011
  color: '#D4726F',
6646
7012
  },
6647
- 10204: {
7013
+ factory: {
6648
7014
  name: 'Factory',
6649
- description: 'Planetary fabrication facility with generator and crafter module slots.',
7015
+ description: "A station's production line.",
6650
7016
  color: '#7BA7D4',
6651
7017
  },
6652
- 10205: {
7018
+ 'mass-driver': {
6653
7019
  name: 'Mass Driver',
6654
- description: 'Planetary launch platform with power core and drive coil module slots.',
7020
+ description: "A station's launcher, sending cargo to a Mass Catcher.",
6655
7021
  color: '#E86344',
6656
7022
  },
6657
- 10206: {
7023
+ 'mass-catcher': {
6658
7024
  name: 'Mass Catcher',
6659
- description: 'Planetary receiving platform with storage module slots; catches launched payloads.',
7025
+ description: "A station's receiver for Mass Driver payloads.",
6660
7026
  color: '#4AE898',
6661
7027
  },
6662
- 10207: {
7028
+ 'station-hub': {
6663
7029
  name: 'Station Hub',
6664
- description: 'Orbital command structure. Anchors a player station cluster.',
7030
+ description: 'Anchors a station; every other building sits on its footprint. One per location, at an asteroid, nebula, or ice field.',
6665
7031
  color: '#A0B8D0',
6666
7032
  },
6667
- 10208: {
7033
+ 'assembly-yard': {
7034
+ name: 'Assembly Yard',
7035
+ description: "A station's construction site.",
7036
+ color: '#FFB347',
7037
+ },
7038
+ workshop: {
6668
7039
  name: 'Workshop',
6669
- description: 'A station workshop with five independent workers. Visiting ships bring materials and power, and the workshop does the crafting.',
7040
+ description: 'Public Fabricators. Book a job and collect the output when it finishes.',
6670
7041
  color: '#B877FF',
6671
7042
  },
6672
- 10209: {
7043
+ 'construction-dock': {
6673
7044
  name: 'Construction Dock',
6674
- description: 'An immobile station construction facility with amplified power core and assembly arm slots.',
7045
+ description: 'Public upgrades for ships at the location.',
6675
7046
  color: '#FFB347',
6676
7047
  },
6677
- 10210: {
7048
+ nexus: {
7049
+ name: 'Nexus',
7050
+ description: 'Where players wrap, unwrap, and deploy assets.',
7051
+ color: '#FFD24C',
7052
+ },
7053
+ depot: {
7054
+ name: 'Depot',
7055
+ description: 'Public storage and shuttle service at the world.',
7056
+ color: '#EAB308',
7057
+ },
7058
+ roustabout: {
6678
7059
  name: 'Roustabout',
6679
- description: 'A basic starter ship. One engine, one power core, and one open slot to fit as you like.',
7060
+ description: 'A hull whose open slot takes any module.',
6680
7061
  color: '#4AE898',
6681
7062
  },
6682
- 10211: {
7063
+ prospector: {
6683
7064
  name: 'Prospector',
6684
- description: 'A light gathering ship. One engine, one power core, one gathering rig.',
7065
+ description: 'A gathering ship.',
6685
7066
  color: '#4AE898',
6686
7067
  },
6687
- 10212: {
7068
+ tender: {
6688
7069
  name: 'Tender',
6689
- description: 'A logistics ship with a shuttle bay for moving cargo between ships and stations.',
7070
+ description: 'A transfer ship, moving cargo between parked entities.',
6690
7071
  color: '#4AE898',
6691
7072
  },
6692
- 10213: {
7073
+ wright: {
6693
7074
  name: 'Wright',
6694
- description: 'A construction ship with an assembly arm for building structures and upgrading ships.',
7075
+ description: 'A construction ship, claiming and building plots.',
6695
7076
  color: '#4AE898',
6696
7077
  },
6697
- 10214: {
7078
+ tug: {
6698
7079
  name: 'Tug',
6699
- description: 'A logistics ship with a tractor beam for towing containers from place to place.',
7080
+ description: 'A towing ship.',
6700
7081
  color: '#4AE898',
6701
7082
  },
6702
- 10215: {
7083
+ porter: {
6703
7084
  name: 'Porter',
6704
- description: 'A cargo ship built around a large storage hold. The extra mass makes it slower than a Roustabout.',
7085
+ description: 'A cargo ship.',
6705
7086
  color: '#4AE898',
6706
7087
  },
6707
- 10216: {
6708
- name: 'Nexus',
6709
- description: 'A permanent installation at a world where NFT-backed assets are wrapped, unwrapped, and deployed.',
6710
- color: '#FFD24C',
6711
- },
6712
- 10218: {
7088
+ smith: {
6713
7089
  name: 'Smith',
6714
- description: 'A crafting ship. One engine, one power core, and a fabricator for crafting away from home.',
6715
- color: '#4AE898',
6716
- },
6717
- 10219: {
6718
- name: 'Depot',
6719
- description: 'Planetary storage facility with two shuttle bays and four cargo slots.',
6720
- color: '#EAB308',
6721
- },
6722
- 11001: {
6723
- name: 'Plate',
6724
- description: 'Advanced structural plating reinforced with tier 2 ore.',
6725
- color: '#9BADB8',
6726
- },
6727
- 11002: {
6728
- name: 'Frame',
6729
- description: 'Advanced composite framing reinforced with tier 2 regolith and biomass polymer.',
6730
- color: '#C4A57B',
6731
- },
6732
- 11003: {
6733
- name: 'Plasma Cell',
6734
- description: 'Advanced high-energy gaseous storage cell reinforced with tier 2 gas.',
6735
- color: '#E86344',
6736
- },
6737
- 11004: {
6738
- name: 'Resonator',
6739
- description: 'Advanced crystalline resonance lattice reinforced with tier 2 crystal.',
6740
- color: '#4ADBFF',
6741
- },
6742
- 11005: {
6743
- name: 'Beam',
6744
- description: 'Advanced heavy-duty structural beam reinforced with tier 2 ore.',
6745
- color: '#7B8D9E',
6746
- },
6747
- 11006: {
6748
- name: 'Sensor',
6749
- description: 'Advanced crystal-lattice sensing element reinforced with tier 2 crystal.',
6750
- color: '#4ADBFF',
6751
- },
6752
- 11007: {
6753
- name: 'Polymer',
6754
- description: 'Advanced pliable biomass-derived polymer reinforced with tier 2 biomass.',
6755
- color: '#5A8B3E',
6756
- },
6757
- 11008: {
6758
- name: 'Ceramic',
6759
- description: 'Advanced hardened ceramic reinforced with tier 2 regolith.',
6760
- color: '#C4A57B',
6761
- },
6762
- 11009: {
6763
- name: 'Reactor',
6764
- description: 'Advanced gas-pressurized reaction vessel reinforced with tier 2 gas.',
6765
- color: '#B877FF',
6766
- },
6767
- 11010: {
6768
- name: 'Resin',
6769
- description: 'Advanced saturated organic binder reinforced with tier 2 biomass.',
6770
- color: '#5A8B3E',
6771
- },
6772
- 11100: {
6773
- name: 'Engine',
6774
- description: 'Advanced propulsion system. Reinforced thrust chambers for higher velocity.',
6775
- color: '#E86344',
6776
- },
6777
- 11101: {
6778
- name: 'Power Core',
6779
- description: 'Advanced energy system. Higher-density crystal matrix for increased energy throughput.',
6780
- color: '#4ADBFF',
6781
- },
6782
- 11102: {
6783
- name: 'Limpet Bay',
6784
- description: 'Advanced gathering system. Reinforced probes and conduits for deeper yield.',
6785
- color: '#7B8D9E',
6786
- },
6787
- 11103: {
6788
- name: 'Shuttle Bay',
6789
- description: 'Advanced cargo handling system. Reinforced articulated arms for greater loading throughput.',
6790
- color: '#5A8B3E',
6791
- },
6792
- 11104: {
6793
- name: 'Fabricator',
6794
- description: 'Advanced crafting system. Higher-grade reaction chambers for faster processing.',
6795
- color: '#B877FF',
6796
- },
6797
- 11105: {
6798
- name: 'Cargo Hold',
6799
- description: 'Advanced cargo storage. Reinforced tier 2 holds carry more mass.',
6800
- color: '#8B7355',
6801
- },
6802
- 11106: {
6803
- name: 'Tractor Beam',
6804
- description: 'Advanced haul beam projector reinforced with tier 2 components for greater towing capacity.',
6805
- color: '#4ADBFF',
6806
- },
6807
- 11107: {
6808
- name: 'Warp Drive',
6809
- description: 'Advanced warp system. Reinforced field coils project the hull across greater distances.',
6810
- color: '#9be4ff',
6811
- },
6812
- 11108: {
6813
- name: 'Battery Bank',
6814
- description: 'Advanced battery bank. Higher-density cells store more charge from the power core.',
6815
- color: '#4ADBFF',
6816
- },
6817
- 11110: {
6818
- name: 'Assembly Arm',
6819
- description: 'Advanced construction system. Reinforced manipulator arms for faster build and upgrade work.',
6820
- color: '#FFB347',
6821
- },
6822
- 11200: {
6823
- name: 'Container',
6824
- description: 'Advanced cargo container with improved capacity formulas.',
6825
- color: '#9BADB8',
6826
- },
6827
- 11212: {
6828
- name: 'Prospector',
6829
- description: 'The tier 2 Prospector. The same three systems, ready for tier 2 modules.',
6830
- color: '#4AE898',
6831
- },
6832
- 11213: {
6833
- name: 'Prospector',
6834
- description: 'A tier 2 Prospector with an auxiliary system for extra power, mobility, or endurance.',
7090
+ description: 'A crafting ship.',
6835
7091
  color: '#4AE898',
6836
7092
  },
6837
- 11214: {
7093
+ dredger: {
6838
7094
  name: 'Dredger',
6839
- description: 'A gathering ship that stores what it digs. Its limpet bay works alongside a cargo hold.',
7095
+ description: 'A gathering ship with a hold for longer runs.',
6840
7096
  color: '#4AE898',
6841
7097
  },
6842
- 11202: {
6843
- name: 'Warehouse',
6844
- description: 'The tier 2 Warehouse. Massive stationary storage facility with a single loader module slot.',
6845
- color: '#EAB308',
6846
- },
6847
- 11203: {
6848
- name: 'Mining Rig',
6849
- description: 'The tier 2 Mining Rig. Planetary resource extraction with generator and gatherer module slots.',
6850
- color: '#D4726F',
6851
- },
6852
- 11204: {
6853
- name: 'Factory',
6854
- description: 'The tier 2 Factory. Planetary fabrication with generator and crafter module slots.',
6855
- color: '#7BA7D4',
6856
- },
6857
- 11207: {
6858
- name: 'Station Hub',
6859
- description: 'The tier 2 Station Hub. Anchors a player station cluster.',
6860
- color: '#A0B8D0',
6861
- },
6862
- 11209: {
6863
- name: 'Assembly Yard',
6864
- description: 'Orbital construction facility with amplified power core and assembly arm module slots.',
6865
- color: '#FFB347',
6866
- },
6867
7098
  };
6868
- for (const item of items) {
6869
- if (!itemMetadata[item.id]) {
6870
- throw new Error(`Missing metadata for item ${item.id}. Add an entry to metadata.ts.`);
7099
+ const COMPONENT_FAMILIES = [
7100
+ 'plate',
7101
+ 'frame',
7102
+ 'plasma-cell',
7103
+ 'resonator',
7104
+ 'beam',
7105
+ 'sensor',
7106
+ 'polymer',
7107
+ 'ceramic',
7108
+ 'reactor',
7109
+ 'resin',
7110
+ ];
7111
+ const ENTITY_FAMILIES = {
7112
+ 10200: 'container',
7113
+ 10201: 'ship',
7114
+ 10202: 'warehouse',
7115
+ 10203: 'mining-rig',
7116
+ 10204: 'factory',
7117
+ 10205: 'mass-driver',
7118
+ 10206: 'mass-catcher',
7119
+ 10207: 'station-hub',
7120
+ 10208: 'workshop',
7121
+ 10209: 'construction-dock',
7122
+ 10210: 'roustabout',
7123
+ 10211: 'prospector',
7124
+ 10212: 'tender',
7125
+ 10213: 'wright',
7126
+ 10214: 'tug',
7127
+ 10215: 'porter',
7128
+ 10216: 'nexus',
7129
+ 10218: 'smith',
7130
+ 10219: 'depot',
7131
+ 11200: 'container',
7132
+ 11202: 'warehouse',
7133
+ 11203: 'mining-rig',
7134
+ 11204: 'factory',
7135
+ 11207: 'station-hub',
7136
+ 11209: 'assembly-yard',
7137
+ 11212: 'prospector',
7138
+ 11213: 'prospector',
7139
+ 11214: 'dredger',
7140
+ };
7141
+ const rawById = new Map(items.map((raw) => [raw.id, raw]));
7142
+ function itemFamilyKey(itemId) {
7143
+ const entity = ENTITY_FAMILIES[itemId];
7144
+ if (entity)
7145
+ return entity;
7146
+ const raw = rawById.get(itemId);
7147
+ if (!raw)
7148
+ return undefined;
7149
+ switch (raw.type) {
7150
+ case 'resource':
7151
+ return raw.category;
7152
+ case 'module':
7153
+ return raw.subtype;
7154
+ case 'component':
7155
+ return COMPONENT_FAMILIES[((itemId - 10000) % 1000) - 1];
7156
+ default:
7157
+ return undefined;
7158
+ }
7159
+ }
7160
+ function getItemFamily(itemId) {
7161
+ const key = itemFamilyKey(itemId);
7162
+ return key === undefined ? undefined : itemFamilies[key];
7163
+ }
7164
+ for (const raw of items) {
7165
+ const key = itemFamilyKey(raw.id);
7166
+ if (!key || !itemFamilies[key]) {
7167
+ throw new Error(`Missing family for item ${raw.id}. Add an entry to metadata.ts.`);
6871
7168
  }
6872
7169
  }
6873
7170
 
@@ -6959,12 +7256,14 @@ function coordsToLocationId(coords) {
6959
7256
 
6960
7257
  const itemsById = new Map();
6961
7258
  for (const raw of items) {
6962
- const meta = itemMetadata[raw.id];
6963
- if (!meta) {
6964
- throw new Error(`Missing metadata for item ${raw.id}. Add an entry to metadata.ts.`);
7259
+ const family = itemFamilyKey(raw.id);
7260
+ const meta = getItemFamily(raw.id);
7261
+ if (!family || !meta) {
7262
+ throw new Error(`Missing family for item ${raw.id}. Add an entry to metadata.ts.`);
6965
7263
  }
6966
7264
  itemsById.set(raw.id, {
6967
7265
  id: raw.id,
7266
+ family,
6968
7267
  name: meta.name,
6969
7268
  description: meta.description,
6970
7269
  color: meta.color,