@githolon/runtime 0.113.4 → 0.115.0

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 (31) hide show
  1. package/dist/RUNTIME-SOURCES.sha256 +97 -71
  2. package/dist/application-reception.js +2 -2
  3. package/dist/nomos-native-runtime.js +5761 -1508
  4. package/dist/nomos-runner-web.js +347 -9
  5. package/dist/nomos-runner-worker.js +13372 -6047
  6. package/dist/nomos-runner.js +9861 -2904
  7. package/dist/remote-reception.cjs +23 -23
  8. package/dist/remote-reception.js +23 -23
  9. package/dist/typescript-application-desk.js +26 -27
  10. package/package.json +1 -1
  11. package/runner/node-entry.mjs +7678 -2860
  12. package/src/application_reception.ts +15 -0
  13. package/src/protocol/nomos/kernel/v1/kernel_pb.d.ts +612 -0
  14. package/src/protocol/nomos/kernel/v1/kernel_pb.js +354 -277
  15. package/src/protocol/nomos/runtime/v2/application_desk_pb.d.ts +8 -0
  16. package/src/protocol/nomos/runtime/v2/application_desk_pb.js +1 -1
  17. package/src/protocol/nomos/runtime/v2/correspondence_desk_pb.d.ts +1071 -147
  18. package/src/protocol/nomos/runtime/v2/correspondence_desk_pb.js +155 -22
  19. package/src/protocol/nomos/runtime/v2/model_adoption_desk_pb.d.ts +57 -2
  20. package/src/protocol/nomos/runtime/v2/model_adoption_desk_pb.js +10 -3
  21. package/src/protocol/nomos/runtime/v2/observability_desk_pb.d.ts +111 -2
  22. package/src/protocol/nomos/runtime/v2/observability_desk_pb.js +27 -12
  23. package/src/protocol/nomos/runtime/v2/receiving_group_desk_pb.d.ts +0 -29
  24. package/src/protocol/nomos/runtime/v2/receiving_group_desk_pb.js +6 -13
  25. package/src/protocol/nomos/runtime/v2/records_desk_pb.d.ts +10 -0
  26. package/src/protocol/nomos/runtime/v2/records_desk_pb.js +1 -1
  27. package/src/protocol/nomos/runtime/v2/residency_desk_pb.d.ts +19 -0
  28. package/src/protocol/nomos/runtime/v2/residency_desk_pb.js +1 -1
  29. package/src/protocol/nomos/runtime/v2/runtime_pb.d.ts +15 -1
  30. package/src/protocol/nomos/runtime/v2/runtime_pb.js +1 -1
  31. package/src/typescript_application_desk.public.d.ts +0 -1
@@ -9,7 +9,7 @@ import { file_google_protobuf_any } from "@bufbuild/protobuf/wkt";
9
9
  * Describes the file nomos/kernel/v1/kernel.proto.
10
10
  */
11
11
  export const file_nomos_kernel_v1_kernel = /*@__PURE__*/
12
- fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEixgkKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEkAKCWNvbmZpZ3VyZRgQIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxDb25maWd1cmF0aW9uUmVxdWVzdEgAEkgKE3NpZ25fcHJlcGFyZWRfb2ZmZXIYESABKAsyKS5ub21vcy5rZXJuZWwudjEuU2lnblByZXBhcmVkT2ZmZXJSZXF1ZXN0SAASSgoUcHJlcGFyZV9yZW1vdGVfb2ZmZXIYEiABKAsyKi5ub21vcy5rZXJuZWwudjEuUHJlcGFyZVJlbW90ZU9mZmVyUmVxdWVzdEgAEk4KFnNpZ25fb2ZmZXJfcHJlcGFyYXRpb24YEyABKAsyLC5ub21vcy5rZXJuZWwudjEuU2lnbk9mZmVyUHJlcGFyYXRpb25SZXF1ZXN0SAASTgoWc2lnbl9iaXJ0aF9jZXJ0aWZpY2F0ZRgUIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5TaWduQmlydGhDZXJ0aWZpY2F0ZVJlcXVlc3RIABJDChBzaWduaW5nX2lkZW50aXR5GBcgASgLMicubm9tb3Mua2VybmVsLnYxLlNpZ25pbmdJZGVudGl0eVJlcXVlc3RIABJWChpzaWduX2F1dGhvcml0eV9hdHRlc3RhdGlvbhgYIAEoCzIwLm5vbW9zLmtlcm5lbC52MS5TaWduQXV0aG9yaXR5QXR0ZXN0YXRpb25SZXF1ZXN0SAASPAoNbWludF90eXBlZF9pZBgZIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5NaW50VHlwZWRJZFJlcXVlc3RIABJJChNlbmNyeXB0aW9uX2lkZW50aXR5GBogASgLMioubm9tb3Mua2VybmVsLnYxLkVuY3J5cHRpb25JZGVudGl0eVJlcXVlc3RIABI+Cg53cmFwX3Njb3BlX2tleRgbIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5XcmFwU2NvcGVLZXlSZXF1ZXN0SAASQgoQdW53cmFwX3Njb3BlX2tleRgcIAEoCzImLm5vbW9zLmtlcm5lbC52MS5VbndyYXBTY29wZUtleVJlcXVlc3RIAEILCglvcGVyYXRpb25KBAgVEBZKBAgWEBdSFGluaXRpYWxpemVfd29ya3NwYWNlUhZhcHBseV93b3Jrc3BhY2VfZWZmZWN0IoMKCgxDYWxsUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEisKB2ZhaWx1cmUYCiABKAsyGC5ub21vcy5rZXJuZWwudjEuRmFpbHVyZUgAEi0KBG9wZW4YCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT3BlblJlc3BvbnNlSAASLwoFb2ZmZXIYDCABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUgAEi8KBXF1ZXJ5GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5UmVzcG9uc2VIABIxCgZvdXRib3gYDiABKAsyHy5ub21vcy5rZXJuZWwudjEuT3V0Ym94UmVzcG9uc2VIABItCgRzeW5jGA8gASgLMh0ubm9tb3Mua2VybmVsLnYxLlN5bmNSZXNwb25zZUgAEjMKB2N1c3RvZHkYECABKAsyIC5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVJlc3BvbnNlSAASQQoJY29uZmlndXJlGBEgASgLMiwubm9tb3Mua2VybmVsLnYxLktlcm5lbENvbmZpZ3VyYXRpb25SZXNwb25zZUgAEkkKE3NpZ25fcHJlcGFyZWRfb2ZmZXIYEiABKAsyKi5ub21vcy5rZXJuZWwudjEuU2lnblByZXBhcmVkT2ZmZXJSZXNwb25zZUgAEksKFHByZXBhcmVfcmVtb3RlX29mZmVyGBMgASgLMisubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlc3BvbnNlSAASTwoWc2lnbl9vZmZlcl9wcmVwYXJhdGlvbhgUIAEoCzItLm5vbW9zLmtlcm5lbC52MS5TaWduT2ZmZXJQcmVwYXJhdGlvblJlc3BvbnNlSAASTwoWc2lnbl9iaXJ0aF9jZXJ0aWZpY2F0ZRgVIAEoCzItLm5vbW9zLmtlcm5lbC52MS5TaWduQmlydGhDZXJ0aWZpY2F0ZVJlc3BvbnNlSAASRAoQc2lnbmluZ19pZGVudGl0eRgYIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5TaWduaW5nSWRlbnRpdHlSZXNwb25zZUgAElcKGnNpZ25fYXV0aG9yaXR5X2F0dGVzdGF0aW9uGBkgASgLMjEubm9tb3Mua2VybmVsLnYxLlNpZ25BdXRob3JpdHlBdHRlc3RhdGlvblJlc3BvbnNlSAASPQoNbWludF90eXBlZF9pZBgaIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5NaW50VHlwZWRJZFJlc3BvbnNlSAASSgoTZW5jcnlwdGlvbl9pZGVudGl0eRgbIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5FbmNyeXB0aW9uSWRlbnRpdHlSZXNwb25zZUgAEj8KDndyYXBfc2NvcGVfa2V5GBwgASgLMiUubm9tb3Mua2VybmVsLnYxLldyYXBTY29wZUtleVJlc3BvbnNlSAASQwoQdW53cmFwX3Njb3BlX2tleRgdIAEoCzInLm5vbW9zLmtlcm5lbC52MS5VbndyYXBTY29wZUtleVJlc3BvbnNlSABCCQoHb3V0Y29tZUoECBYQF0oECBcQGFIUaW5pdGlhbGl6ZV93b3Jrc3BhY2VSFmFwcGx5X3dvcmtzcGFjZV9lZmZlY3QitwIKB0ZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSYQoiaWRlbnRpdHlfcHJvdmlkZXJfd2l0bmVzc19yZXF1aXJlZBgKIAEoCzIwLm5vbW9zLmtlcm5lbC52MS5JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVpcmVkSACIAQESPwoQaGlzdG9yeV9yZXF1aXJlZBgLIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5UmVxdWlyZWRIAYgBAUIlCiNfaWRlbnRpdHlfcHJvdmlkZXJfd2l0bmVzc19yZXF1aXJlZEITChFfaGlzdG9yeV9yZXF1aXJlZCJRCh9JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVpcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSFAoMcmVxdWlyZWRfa2lkGAIgASgJIjwKDE9wZW5SZXNwb25zZRIsCgZyZXN1bHQYASABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiugQKDU9mZmVyUmVzcG9uc2USMgoIYWRtaXR0ZWQYASABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJBZG1pdHRlZEgAEjAKB3JlZnVzZWQYAiABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZWZ1c2VkSAASOwoNZGVhZF9sZXR0ZXJlZBgDIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckRlYWRMZXR0ZXJlZEgAEjgKC3F1YXJhbnRpbmVkGAQgASgLMiEubm9tb3Mua2VybmVsLnYxLk9mZmVyUXVhcmFudGluZWRIABJKChVibG9ja2VkX29uX2RlcGVuZGVuY3kYBSABKAsyKS5ub21vcy5rZXJuZWwudjEuT2ZmZXJCbG9ja2VkT25EZXBlbmRlbmN5SAASMgoIcHJlcGFyZWQYBiABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJQcmVwYXJlZEgAEkIKEHdvcmtzcGFjZV9lZmZlY3QYByABKAsyKC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlRWZmZWN0SWRlbnRpdHkSGwoOanVkZ2VkX2F0X2hlYWQYCCABKAlIAYgBARJNChJqdWRnbWVudF9zaWduYXR1cmUYCSABKAsyMS5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlRWZmZWN0SnVkZ21lbnRTaWduYXR1cmVCCQoHb3V0Y29tZUIRCg9fanVkZ2VkX2F0X2hlYWQifwogV29ya3NwYWNlRWZmZWN0SnVkZ21lbnRTaWduYXR1cmUSDwoHdmVyc2lvbhgBIAEoDRISCgpwdWJsaWNfa2V5GAIgASgMEhEKCWtleV9lcG9jaBgDIAEoEhIRCglzaWduYXR1cmUYBCABKAwSEAoIanVkZ21lbnQYBSABKAwiqAEKF1dvcmtzcGFjZUVmZmVjdElkZW50aXR5EhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSIAoYc291cmNlX3dvcmtzcGFjZV9nZW5lc2lzGAIgASgJEhgKEHRhcmdldF93b3Jrc3BhY2UYAyABKAkSIAoYdGFyZ2V0X3dvcmtzcGFjZV9nZW5lc2lzGAQgASgJEhUKDWVmZmVjdF9kaWdlc3QYBSABKAkiVwocV29ya3NwYWNlRWZmZWN0U3RhdHVzUmVxdWVzdBIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYASABKAkSFQoNZWZmZWN0X2RpZ2VzdBgCIAEoCSJRCh1Xb3Jrc3BhY2VFZmZlY3RTdGF0dXNSZXNwb25zZRIwCghqdWRnbWVudBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlc3BvbnNlIoYCCiNSZWNvcmRXb3Jrc3BhY2VFZmZlY3RPdXRjb21lUmVxdWVzdBIwCgZzb3VyY2UYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhkKEXNvdXJjZV9vZmZlcl9wYXRoGAIgASgJEhUKC21haWxib3hfdXJsGAMgASgJSAASPQoRcmVjaXBpZW50X2N1c3RvZHkYBSABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0SAASMAoIanVkZ21lbnQYBCABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUIKCghldmlkZW5jZSJaCh5SZWNvcmRlZFdvcmtzcGFjZUVmZmVjdE91dGNvbWUSEQoJcmVmZXJlbmNlGAEgASgJEgsKA29pZBgCIAEoCRIYChB0ZXJtaW5hbF9yZWZ1c2FsGAMgASgIIp0ECg1PZmZlckFkbWl0dGVkEgwKBGhlYWQYASABKAkSEQoJaW50ZW50X2lkGAIgASgJEhcKCmludGVudF9vdXQYAyABKAlIAIgBARIzCgdjcmVhdGVkGAQgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEjQKCGFmZmVjdGVkGAUgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEiwKBGJvcm4YBiADKAsyHi5ub21vcy5rZXJuZWwudjEuQm9ybldvcmtzcGFjZRI1Cg5iaXJ0aF9vdXRjb21lcxgHIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5CaXJ0aE91dGNvbWUSNwoMa2VybmVsX3NwYW5zGAggASgLMhwubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5zSAGIAQESDwoHZHJ5X3J1bhgJIAEoCBIfChJpbnN0YWxsZWRfbGF3X2hhc2gYCiABKAlIAogBARI5CglwbGFjZW1lbnQYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuUGxhY2VtZW50QWRvcHRlZEgDiAEBEhcKD2FscmVhZHlfYXBwbGllZBgMIAEoCEINCgtfaW50ZW50X291dEIPCg1fa2VybmVsX3NwYW5zQhUKE19pbnN0YWxsZWRfbGF3X2hhc2hCDAoKX3BsYWNlbWVudCItChFPZmZlckFnZ3JlZ2F0ZVJlZhIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJIjAKDUJvcm5Xb3Jrc3BhY2USEQoJd29ya3NwYWNlGAEgASgJEgwKBGhlYWQYAiABKAkiywMKDEJpcnRoT3V0Y29tZRIWCgl3b3Jrc3BhY2UYASABKAlIAIgBARIzCgZzdGF0dXMYAiABKA4yIy5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lU3RhdHVzEhMKBnJlYXNvbhgDIAEoCUgBiAEBEhEKBGNvZGUYBCABKAlIAogBARIQCghyZXBsYXllZBgFIAEoCBIVCghsYXdfaGFzaBgGIAEoCUgDiAEBEh0KEHBhcmVudF93b3Jrc3BhY2UYByABKAlIBIgBARIcCg9jaGlsZF93b3Jrc3BhY2UYCCABKAlIBYgBARInChpjZXJ0aWZpY2F0ZV9yZWZ1c2FsX3JlYXNvbhgJIAEoCUgGiAEBEjQKB3JlZnVzYWwYCiABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbEgHiAEBQgwKCl93b3Jrc3BhY2VCCQoHX3JlYXNvbkIHCgVfY29kZUILCglfbGF3X2hhc2hCEwoRX3BhcmVudF93b3Jrc3BhY2VCEgoQX2NoaWxkX3dvcmtzcGFjZUIdChtfY2VydGlmaWNhdGVfcmVmdXNhbF9yZWFzb25CCgoIX3JlZnVzYWwiLwoQS2VybmVsU3Bhbk1ldHJpYxIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgEIqMBCgpLZXJuZWxTcGFuEg0KBWxhYmVsGAEgASgJEhAKCHRvdGFsX3VzGAIgASgEEg8KB3JlY29yZHMYAyABKAQSMQoGcGhhc2VzGAQgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMSMAoFbm90ZXMYBSADKAsyIS5ub21vcy5rZXJuZWwudjEuS2VybmVsU3Bhbk1ldHJpYyJxCgtLZXJuZWxTcGFucxIvCgpvcGVyYXRpb25zGAEgAygLMhsubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW4SMQoGZW5naW5lGAIgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMiYQoNRG9tYWluUmVmdXNhbBISCgpsYXdfc2hhMjU2GAEgASgMEhEKCWludmFyaWFudBgCIAEoCRIVCg10eXBlX2lkZW50aXR5GAMgASgJEhIKCnZhbHVlX3VzZGEYBCABKAwizgEKDE9mZmVyUmVmdXNlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEi8KB3JlZnVzYWwYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbBIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBI2Cg5kb21haW5fcmVmdXNhbBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5Eb21haW5SZWZ1c2FsQgsKCV9vZmZlcl9pZCJ6ChFPZmZlckRlYWRMZXR0ZXJlZBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBnJlYXNvbhgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQirgEKEE9mZmVyUXVhcmFudGluZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIZChFhdXRob3JlZF9sYXdfaGFzaBgCIAEoCRIYChBjdXJyZW50X2xhd19oYXNoGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIxCgtkaWFnbm9zdGljcxgFIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQigQEKGE9mZmVyQmxvY2tlZE9uRGVwZW5kZW5jeRIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEg4KBmRldGFpbBgCIAEoCRIxCgtkaWFnbm9zdGljcxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEILCglfb2ZmZXJfaWQivwEKDU9mZmVyUHJlcGFyZWQSHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRIhChlhdXRob3Jfc2lnbmF0dXJlX3JlcXVpcmVkGAQgASgIEjgKCGRldGFjaGVkGAUgASgLMiYubm9tb3Mua2VybmVsLnYxLkRldGFjaGVkU2lnbmluZ0lucHV0cyJjChVEZXRhY2hlZFNpZ25pbmdJbnB1dHMSEgoKcHVibGljX2tleRgBIAEoDBIRCglpbnRlbnRfaWQYAiABKAkSDgoGYXV0aG9yGAMgASgMEhMKC29mZmVyX3Rva2VuGAQgASgJIpUBChREZXRhY2hlZFNpZ25lZENoYW5nZRIcChRhdXRob3JlZF9jaGFuZ2VfdXNkYRgBIAEoDBISCgpwdWJsaWNfa2V5GAIgASgMEhgKEGF1dGhvcl9zaWduYXR1cmUYAyABKAwSEgoKb2ZmZXJfYmFzZRgEIAEoCRIdChVvZmZlcl90b2tlbl9zaWduYXR1cmUYBSABKAwiagoYU2lnblByZXBhcmVkT2ZmZXJSZXF1ZXN0EhwKFGF1dGhvcmVkX2NoYW5nZV91c2RhGAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhUKDWF1dGhvcl9zZWNyZXQYAyABKAwiNwoZU2lnblByZXBhcmVkT2ZmZXJSZXNwb25zZRIaChJzaWduZWRfY2hhbmdlX3VzZGEYASABKAwirQEKGVByZXBhcmVSZW1vdGVPZmZlclJlcXVlc3QSFQoNb2ZmZXJfcmVxdWVzdBgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIYChBwcmVwYXJlZF9hdF9oZWFkGAMgASgJEhIKCnB1YmxpY19rZXkYBCABKAwSEQoJc2lnbmF0dXJlGAUgASgMEh0KFXJlcXVpcmVkX2N1c3RvZHlfaGVhZBgGIAEoCSJQChlPZmZlclByZXBhcmF0aW9uQ2hhbGxlbmdlEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAEgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAiABKAkimQEKGlByZXBhcmVSZW1vdGVPZmZlclJlc3BvbnNlEj8KCWNoYWxsZW5nZRgBIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5PZmZlclByZXBhcmF0aW9uQ2hhbGxlbmdlSAASLwoFb2ZmZXIYAiABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUgAQgkKB291dGNvbWUigAEKG1NpZ25PZmZlclByZXBhcmF0aW9uUmVxdWVzdBIVCg1vZmZlcl9yZXF1ZXN0GAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSFQoNYXV0aG9yX3NlY3JldBgEIAEoDCJFChxTaWduT2ZmZXJQcmVwYXJhdGlvblJlc3BvbnNlEhIKCnB1YmxpY19rZXkYASABKAwSEQoJc2lnbmF0dXJlGAIgASgMIqQBChZTaWduaW5nSWRlbnRpdHlSZXF1ZXN0EjsKCGdlbmVyYXRlGAEgASgLMicubm9tb3Mua2VybmVsLnYxLkdlbmVyYXRlU2lnbmluZ0tleVBhaXJIABJACg1kZXJpdmVfcHVibGljGAIgASgLMicubm9tb3Mua2VybmVsLnYxLkRlcml2ZVNpZ25pbmdQdWJsaWNLZXlIAEILCglvcGVyYXRpb24iGAoWR2VuZXJhdGVTaWduaW5nS2V5UGFpciIoChZEZXJpdmVTaWduaW5nUHVibGljS2V5Eg4KBnNlY3JldBgBIAEoDCKWAQoXU2lnbmluZ0lkZW50aXR5UmVzcG9uc2USNAoJZ2VuZXJhdGVkGAEgASgLMh8ubm9tb3Mua2VybmVsLnYxLlNpZ25pbmdLZXlQYWlySAASOwoOZGVyaXZlZF9wdWJsaWMYAiABKAsyIS5ub21vcy5rZXJuZWwudjEuU2lnbmluZ1B1YmxpY0tleUgAQggKBnJlc3VsdCI0Cg5TaWduaW5nS2V5UGFpchIOCgZzZWNyZXQYASABKAwSEgoKcHVibGljX2tleRgCIAEoDCImChBTaWduaW5nUHVibGljS2V5EhIKCnB1YmxpY19rZXkYASABKAwinAEKH1NpZ25BdXRob3JpdHlBdHRlc3RhdGlvblJlcXVlc3QSFQoNc2lnbmVyX3NlY3JldBgBIAEoDBIaChJhc3NlcnRlcl93b3Jrc3BhY2UYAiABKAkSDgoGb2JqZWN0GAMgASgJEhAKCHJlbGF0aW9uGAQgASgJEg8KB3N1YmplY3QYBSABKAkSEwoLYXR0ZXN0ZWRfYXQYBiABKAkiSQogU2lnbkF1dGhvcml0eUF0dGVzdGF0aW9uUmVzcG9uc2USEQoJc2lnbmF0dXJlGAEgASgMEhIKCnB1YmxpY19rZXkYAiABKAwiRAoSTWludFR5cGVkSWRSZXF1ZXN0EhAKCHR5cGVfdGFnGAEgASgJEhwKFGNhcHR1cmVkX3VuaXhfbWlsbGlzGAIgASgEIiEKE01pbnRUeXBlZElkUmVzcG9uc2USCgoCaWQYASABKAkiGwoZRW5jcnlwdGlvbklkZW50aXR5UmVxdWVzdCJEChpFbmNyeXB0aW9uSWRlbnRpdHlSZXNwb25zZRISCgpzZWNyZXRfa2V5GAEgASgMEhIKCnB1YmxpY19rZXkYAiABKAwiRgoTV3JhcFNjb3BlS2V5UmVxdWVzdBIcChRyZWNpcGllbnRfcHVibGljX2tleRgBIAEoDBIRCglzY29wZV9rZXkYAiABKAwiSAoUV3JhcFNjb3BlS2V5UmVzcG9uc2USHAoUZXBoZW1lcmFsX3B1YmxpY19rZXkYASABKAwSEgoKY2lwaGVydGV4dBgCIAEoDCJnChVVbndyYXBTY29wZUtleVJlcXVlc3QSHAoUcmVjaXBpZW50X3NlY3JldF9rZXkYASABKAwSHAoUZXBoZW1lcmFsX3B1YmxpY19rZXkYAiABKAwSEgoKY2lwaGVydGV4dBgDIAEoDCIrChZVbndyYXBTY29wZUtleVJlc3BvbnNlEhEKCXNjb3BlX2tleRgBIAEoDCKTAQoNS2VybmVsUmVmdXNhbBIwCgRjb2RlGAEgASgOMiIubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWxDb2RlEg8KB21lc3NhZ2UYAiABKAkSLQoHZGV0YWlscxgDIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBIQCgh0ZXJtaW5hbBgEIAEoCCLtDAoNUXVlcnlSZXNwb25zZRIVCgtyZXN1bHRfdXNkYRgCIAEoDEgAEiwKBXZhbHVlGAEgASgLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWVIABJKChNhdXRob3JpemF0aW9uX2NoZWNrGAogASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1Jlc3BvbnNlSAASTAoUYXV0aG9yaXphdGlvbl9leHBhbmQYCyABKAsyLC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkV4cGFuZFJlc3BvbnNlSAASPgoNb3NnaV9yZXNvdXJjZRgMIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5Pc2dpUmVzb3VyY2VSZXNwb25zZUgAEkoKE2Zyb250aWVyX3RyYW5zaXRpb24YDSABKAsyKy5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVzcG9uc2VIABJLChRvd25lZF9kZXZpY2VfcmVxdWVzdBgOIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5Pd25lZERldmljZVJlcXVlc3RSZXNwb25zZUgAEk8KFm93bmVkX3ByZXBhcmVfYXBwcm92YWwYDyABKAsyLS5ub21vcy5rZXJuZWwudjEuT3duZWRQcmVwYXJlQXBwcm92YWxSZXNwb25zZUgAEhcKDWludGVnZXJfdmFsdWUYECABKBJIABJQChZhdXRoZW50aWNhdGlvbl9wb3N0dXJlGBEgASgLMi4ubm9tb3Mua2VybmVsLnYxLkF1dGhlbnRpY2F0aW9uUG9zdHVyZVJlc3BvbnNlSAASSAoQY2hpbGRfd29ya3NwYWNlcxgSIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5DaGlsZFdvcmtzcGFjZVF1ZXJ5UmVzcG9uc2VIABJZChZhdXRob3JpbmdfcmVxdWlyZW1lbnRzGBMgASgLMjcubm9tb3Mua2VybmVsLnYxLkRpcmVjdGl2ZUF1dGhvcmluZ1JlcXVpcmVtZW50c1Jlc3BvbnNlSAASPgoNd2FybV9wcm9ncmVzcxgVIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5XYXJtUHJvZ3Jlc3NSZXNwb25zZUgAElUKGWlkZW50aXR5X3Byb3ZpZGVyX3dpdG5lc3MYFiABKAsyMC5ub21vcy5rZXJuZWwudjEuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NSZXNwb25zZUgAElIKF2ludGVyZmFjZV9jb21wYXRpYmlsaXR5GBcgASgLMi8ubm9tb3Mua2VybmVsLnYxLkludGVyZmFjZUNvbXBhdGliaWxpdHlSZXNwb25zZUgAEjIKEmFwcGxpY2F0aW9uX3Jlc3VsdBgYIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIABJKChNtYWludGVuYW5jZV9xdWFudHVtGBkgASgLMisubm9tb3Mua2VybmVsLnYxLk1haW50ZW5hbmNlUXVhbnR1bVJlc3BvbnNlSAASPwoScmVhZF9pbmRleF9wZW5kaW5nGBogASgLMiEubm9tb3Mua2VybmVsLnYxLlJlYWRJbmRleFBlbmRpbmdIABJHChJmdWxsX2hpc3RvcnlfYXVkaXQYGyABKAsyKS5ub21vcy5rZXJuZWwudjEuRnVsbEhpc3RvcnlBdWRpdFJlc3BvbnNlSAASUwoYd29ya3NwYWNlX2VmZmVjdF9yZWNlaXB0GBwgASgLMi8ubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZUVmZmVjdFJlY2VpcHRSZXNwb25zZUgAEksKFG9wZW5fYXBpX2Rlc2NyaXB0aW9uGB0gASgLMisubm9tb3Mua2VybmVsLnYxLk9wZW5BcGlEZXNjcmlwdGlvblJlc3BvbnNlSAASVwoaaW5zdGFsbGVkX2xhd19kZWNsYXJhdGlvbnMYHiABKAsyMS5ub21vcy5rZXJuZWwudjEuSW5zdGFsbGVkTGF3RGVjbGFyYXRpb25zUmVzcG9uc2VIABJJChh2ZXJpZnlfY2hhaW5fZGlhZ25vc3RpY3MYFCABKAsyJy5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5EaWFnbm9zdGljc0IICgZyZXN1bHQiMwoaT3BlbkFwaURlc2NyaXB0aW9uUmVzcG9uc2USFQoNZG9jdW1lbnRfanNvbhgBIAEoCSI+ChtJbnRlcmZhY2VDb21wYXRpYmlsaXR5UXVlcnkSHwoXYXBwbGljYXRpb25fbWF0cml4X3VzZGEYASABKAwisAIKFkludGVyZmFjZU1lbWJlclZlcmRpY3QSDgoGZG9tYWluGAEgASgJEjIKBGtpbmQYAiABKA4yJC5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlTWVtYmVyS2luZBIOCgZtZW1iZXIYAyABKAkSEgoFZmllbGQYBCABKAlIAIgBARI9CgZzdGF0dXMYBSABKA4yLS5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlQ29tcGF0aWJpbGl0eVN0YXR1cxI9CgZyZWFzb24YBiABKA4yLS5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlQ29tcGF0aWJpbGl0eVJlYXNvbhIXCgpkaWFnbm9zdGljGAcgASgJSAGIAQFCCAoGX2ZpZWxkQg0KC19kaWFnbm9zdGljIooBCh5JbnRlcmZhY2VDb21wYXRpYmlsaXR5UmVzcG9uc2USEgoKY29tcGF0aWJsZRgBIAEoCBI4CgdtZW1iZXJzGAIgAygLMicubm9tb3Mua2VybmVsLnYxLkludGVyZmFjZU1lbWJlclZlcmRpY3QSGgoSd29ya3NwYWNlX2Zyb250aWVyGAMgASgJIv8BChRXYXJtUHJvZ3Jlc3NSZXNwb25zZRIbChNtYWludGVuYW5jZV9wZW5kaW5nGAEgASgIEiQKF3ByZXBhcmVkX2NvbW1hbmRfZG9tYWluGAIgASgJSACIAQESJQoYcHJlcGFyZWRfY29tbWFuZF9wYWNrYWdlGAMgASgJSAGIAQESJgoZcHJlcGFyZWRfY29tbWFuZF9zZWxlY3RvchgEIAEoCUgCiAEBQhoKGF9wcmVwYXJlZF9jb21tYW5kX2RvbWFpbkIbChlfcHJlcGFyZWRfY29tbWFuZF9wYWNrYWdlQhwKGl9wcmVwYXJlZF9jb21tYW5kX3NlbGVjdG9yIlEKEFJlYWRJbmRleFBlbmRpbmcSEQoJd29ya3NwYWNlGAEgASgJEg4KBmJyYW5jaBgCIAEoCRIaChJyZXF1ZXN0ZWRfZnJvbnRpZXIYAyABKAkijQIKF01haW50ZW5hbmNlUXVhbnR1bVF1ZXJ5Eh0KEHJlcXVlc3RlZF9kb21haW4YASABKAlIAIgBARIeChFyZXF1ZXN0ZWRfcGFja2FnZRgCIAEoCUgBiAEBEiAKE3JlcXVlc3RlZF9kaXJlY3RpdmUYAyABKAlIAogBARIXCg9sb2NhbF9yZWFkX29ubHkYBCABKAgSHAoUbWFpbnRhaW5fZ2l0X2N1c3RvZHkYBSABKAgSFwoPcmVhZF9pbmRleF9vbmx5GAYgASgIQhMKEV9yZXF1ZXN0ZWRfZG9tYWluQhQKEl9yZXF1ZXN0ZWRfcGFja2FnZUIWChRfcmVxdWVzdGVkX2RpcmVjdGl2ZSKCBAoaTWFpbnRlbmFuY2VRdWFudHVtUmVzcG9uc2USEQoJd29ya3NwYWNlGAEgASgJEhsKE21haW50ZW5hbmNlX3BlbmRpbmcYAiABKAgSMAoFcGhhc2UYAyABKA4yIS5ub21vcy5rZXJuZWwudjEuTWFpbnRlbmFuY2VQaGFzZRIZCgxnaXRfZnJvbnRpZXIYBCABKAlIAIgBARIaCg1yZWFkX2Zyb250aWVyGAUgASgJSAGIAQESHAoPc3FsaXRlX2Zyb250aWVyGAYgASgJSAKIAQESEgoKd29ya191bml0cxgHIAEoBBIWCg5lbGFwc2VkX21pY3JvcxgIIAEoBBIkChdwcmVwYXJlZF9jb21tYW5kX2RvbWFpbhgJIAEoCUgDiAEBEiUKGHByZXBhcmVkX2NvbW1hbmRfcGFja2FnZRgKIAEoCUgEiAEBEiYKGXByZXBhcmVkX2NvbW1hbmRfc2VsZWN0b3IYCyABKAlIBYgBAUIPCg1fZ2l0X2Zyb250aWVyQhAKDl9yZWFkX2Zyb250aWVyQhIKEF9zcWxpdGVfZnJvbnRpZXJCGgoYX3ByZXBhcmVkX2NvbW1hbmRfZG9tYWluQhsKGV9wcmVwYXJlZF9jb21tYW5kX3BhY2thZ2VCHAoaX3ByZXBhcmVkX2NvbW1hbmRfc2VsZWN0b3IiSAoNT3NnaUF0dHJpYnV0ZRIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJEhEKBHR5cGUYAyABKAlIAIgBAUIHCgVfdHlwZSIsCg1Pc2dpRGlyZWN0aXZlEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkiiwEKDk9zZ2lDYXBhYmlsaXR5EhEKCW5hbWVzcGFjZRgBIAEoCRIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lBdHRyaWJ1dGUSMgoKZGlyZWN0aXZlcxgDIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpRGlyZWN0aXZlIowBCg9Pc2dpUmVxdWlyZW1lbnQSEQoJbmFtZXNwYWNlGAEgASgJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaUF0dHJpYnV0ZRIyCgpkaXJlY3RpdmVzGAMgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lEaXJlY3RpdmUimgEKFE9zZ2lSZXNvdXJjZVJlc3BvbnNlEhMKC3NvdXJjZV91c2RhGAEgASgMEjUKDGNhcGFiaWxpdGllcxgCIAMoCzIfLm5vbW9zLmtlcm5lbC52MS5Pc2dpQ2FwYWJpbGl0eRI2CgxyZXF1aXJlbWVudHMYAyADKAsyIC5ub21vcy5rZXJuZWwudjEuT3NnaVJlcXVpcmVtZW50IucBChNWZXJpZnlDaGFpblN0ZXBTcGFuEg0KBWluZGV4GAEgASgEEhIKCmNvbW1pdF9vaWQYAiABKAkSDgoGZG9tYWluGAMgASgJEhEKCWRpcmVjdGl2ZRgEIAEoCRIQCgh0b3RhbF91cxgFIAEoBBI2CgZwaGFzZXMYBiABKAsyJi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEkAKDmVuZ2luZV90aW1pbmdzGAcgAygLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRW5naW5lVGltaW5nIpgCChVWZXJpZnlDaGFpblN0ZXBQaGFzZXMSHgoWcnVudGltZV9sYXdfcmVmcmVzaF91cxgBIAEoBBITCgttYW5pZmVzdF91cxgCIAEoBBIZChFsYXdfcmVzb2x1dGlvbl91cxgDIAEoBBIdChVtYW5hZ2VkX3RyYW5zaXRpb25fdXMYBCABKAQSFAoMcHJpbmNpcGFsX3VzGAUgASgEEhQKDGV2b2x1dGlvbl91cxgGIAEoBBIaChJjb2xvY2F0ZWRfcmVhZHNfdXMYByABKAQSIQoZdHlwZWRfaW5zdGFsbF92ZXJpZmllcl91cxgIIAEoBBIUCgxhZG1pc3Npb25fdXMYCSABKAQSDwoHZm9sZF91cxgKIAEoBCLaBQoWVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcxIuCgR3YWxrGAEgASgOMiAubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluV2FsaxIQCgh0b3RhbF91cxgCIAEoBBIbChNyZWZlcmVuY2VfbG9va3VwX3VzGAMgASgEEhoKEnJlcG9zaXRvcnlfb3Blbl91cxgEIAEoBBIVCg1jaGFpbl9yZWFkX3VzGAUgASgEEhYKDmVuZ2luZV9pbml0X3VzGAYgASgEEhgKEHRpbWVsaW5lX3JlYWRfdXMYByABKAQSGAoQbGF3X2h5ZHJhdGlvbl91cxgIIAEoBBIbChNyZWNvdmVyeV9wcmVzY2FuX3VzGAkgASgEEhgKEGZvbGRfZnJvbnRpZXJfdXMYCiABKAQSMwoFc3RlcHMYCyADKAsyJC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwU3BhbhJACg5lbmdpbmVfdGltaW5ncxgMIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkVuZ2luZVRpbWluZxJNChVsYXdfaHlkcmF0aW9uX3RpbWluZ3MYDSADKAsyLi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSGQoRbGF3X2Nsb3N1cmVfY291bnQYDiABKAQSHgoWbGF3X2Nsb3N1cmVfY2FjaGVfaGl0cxgPIAEoBBIgChhsYXdfY2xvc3VyZV9jYWNoZV9taXNzZXMYECABKAQSEgoKc3RlcF9jb3VudBgRIAEoBBIVCg1zdGVwX3RvdGFsX3VzGBIgASgEEkEKEXN0ZXBfcGhhc2VfdG90YWxzGBMgASgLMiYubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluU3RlcFBoYXNlcxIaChJvbWl0dGVkX3N0ZXBfY291bnQYFCABKAQiOgoXVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQiQAodVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQiqwEKFEh0dHBzRXhlY3V0aW9uUG9saWN5EjwKCXBsYWNlbWVudBgBIAEoDjIpLm5vbW9zLmtlcm5lbC52MS5FZmZlY3RFeGVjdXRpb25QbGFjZW1lbnQSQAoLY2FyZGluYWxpdHkYAiABKA4yKy5ub21vcy5rZXJuZWwudjEuRWZmZWN0RXhlY3V0aW9uQ2FyZGluYWxpdHkSEwoLbGF3X2Nsb3N1cmUYAyABKAkiWwoSSHR0cHNPdXRib3VuZFJvdXRlEgsKA3VybBgBIAEoCRI4CglleGVjdXRpb24YAiABKAsyJS5ub21vcy5rZXJuZWwudjEuSHR0cHNFeGVjdXRpb25Qb2xpY3kiKwoWV29ya3NwYWNlT3V0Ym91bmRSb3V0ZRIRCgl3b3Jrc3BhY2UYASABKAkihQIKFUNhcnJpZWRXb3Jrc3BhY2VPZmZlchIwCgZzb3VyY2UYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhUKDXNvdXJjZV9jb21taXQYAiABKAkSGQoRc291cmNlX29mZmVyX3BhdGgYAyABKAkSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYBSABKAwSIwobYWRtaXNzaW9uX2NoZWNrcG9pbnRfc2VjcmV0GAYgASgMEhUKDWVmZmVjdF9kaWdlc3QYByABKAkSIAoYc291cmNlX3dvcmtzcGFjZV9nZW5lc2lzGAggASgJSgQIBBAFUgZ0YXJnZXQizAQKDU91dGJvdW5kT2ZmZXISCgoCaWQYASABKAkSFwoLZGVzdGluYXRpb24YAiABKAlCAhgBEhQKDHNlYWxlZF9vZmZlchgDIAEoDBIUCgxjb250ZW50X3R5cGUYBCABKAkSGAoQc291cmNlX3dvcmtzcGFjZRgFIAEoCRIUCgxjdXN0b2R5X2hlYWQYBiABKAkSFwoPY2F1c2VkX2J5X29mZmVyGAcgASgJEhsKE3NjaGVkdWxlZF9hdF9taWxsaXMYCCABKAQSGgoSZGVhZGxpbmVfYXRfbWlsbGlzGAkgASgEEhQKDGN1c3RvZHlfcGF0aBgKIAEoCRITCgtjdXN0b2R5X29pZBgLIAEoCRIUCgxkZWxpdmVyeV9yZWYYDCABKAkSFQoNb2JsaWdhdGlvbl9pZBgNIAEoCRI6CgtodHRwc19yb3V0ZRgOIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5IdHRwc091dGJvdW5kUm91dGVIABJCCg93b3Jrc3BhY2Vfcm91dGUYDyABKAsyJy5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlT3V0Ym91bmRSb3V0ZUgAEhUKDXNvdXJjZV9jb21taXQYECABKAkSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYESABKAwSGQoRc291cmNlX29mZmVyX3BhdGgYEiABKAkSFQoNZWZmZWN0X2RpZ2VzdBgTIAEoCRIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYFCABKAlCBwoFcm91dGUi7gEKDk91dGJveFJlc3BvbnNlEi4KBm9mZmVycxgBIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5PdXRib3VuZE9mZmVyEh8KEm5leHRfZHVlX2F0X21pbGxpcxgCIAEoBEgAiAEBEi0KB2VudHJpZXMYAyADKAsyHC5ub21vcy5rZXJuZWwudjEuT3V0Ym94RW50cnkSFAoMd29ya19wZW5kaW5nGAQgASgIEhUKDWVudHJpZXNfdG90YWwYBSABKA0SGAoQZW50cmllc19wcmVwYXJlZBgGIAEoDUIVChNfbmV4dF9kdWVfYXRfbWlsbGlzIr0BCgtPdXRib3hFbnRyeRIKCgJpZBgBIAEoCRIZChFzb3VyY2Vfb2ZmZXJfcGF0aBgCIAEoCRI6CgtodHRwc19yb3V0ZRgDIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5IdHRwc091dGJvdW5kUm91dGVIABJCCg93b3Jrc3BhY2Vfcm91dGUYBCABKAsyJy5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlT3V0Ym91bmRSb3V0ZUgAQgcKBXJvdXRlIpQBChRQcmVwYXJlT3V0Ym91bmRPZmZlchIYChB0YXJnZXRfd29ya3NwYWNlGAEgASgJEhoKDXNvdXJjZV9jb21taXQYAiABKAlIAIgBARIeChFzb3VyY2Vfb2ZmZXJfcGF0aBgDIAEoCUgBiAEBQhAKDl9zb3VyY2VfY29tbWl0QhQKEl9zb3VyY2Vfb2ZmZXJfcGF0aCLxBAoMU3luY1Jlc3BvbnNlEhAKCGFkbWl0dGVkGAIgASgIEgwKBGhlYWQYAyABKAkSFgoOY2FuZGlkYXRlX2hlYWQYBCABKAkSHAoUYWRtaXR0ZWRfcmVtb3RlX2hlYWQYBSABKAkSHAoUcmVwbGF5ZWRfcmVtb3RlX2hlYWQYBiABKAkSPAoPYWRtaXR0ZWRfcmVtb3RlGAcgAygLMiMubm9tb3Mua2VybmVsLnYxLlN5bmNBZG1pdHRlZEludGVudBI8ChVyZW1vdGVfYmlydGhfb3V0Y29tZXMYCCADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEjkKDnJlbW90ZV9yZWZ1c2FsGAkgASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZWZ1c2FsSACIAQESOwoOcmVwbGF5ZWRfbG9jYWwYCiADKAsyIy5ub21vcy5rZXJuZWwudjEuU3luY1JlcGxheWVkSW50ZW50EiAKGHNraXBwZWRfbG9jYWxfaW50ZW50X2lkcxgLIAMoCRI5Cg1yZWZ1c2VkX2xvY2FsGAwgAygLMiIubm9tb3Mua2VybmVsLnYxLlN5bmNSZWZ1c2VkSW50ZW50EkcKFGN1c3RvZHlfZGlzYWdyZWVtZW50GA0gASgLMiQubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlEaXNhZ3JlZW1lbnRIAYgBARIZChFwYXJrZWRfbG9jYWxfcmVmcxgOIAMoCUIRCg9fcmVtb3RlX3JlZnVzYWxCFwoVX2N1c3RvZHlfZGlzYWdyZWVtZW50SgQIARACUgZyZXN1bHQiUQoTQ3VzdG9keURpc2FncmVlbWVudBISCgpsb2NhbF9oZWFkGAEgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAIgASgJEg4KBnJlYXNvbhgDIAEoCSJPChJTeW5jQWRtaXR0ZWRJbnRlbnQSEQoJaW50ZW50X2lkGAEgASgJEhgKEGNhbmRpZGF0ZV9jb21taXQYAiABKAkSDAoEaGVhZBgDIAEoCSJsChJTeW5jUmVwbGF5ZWRJbnRlbnQSEQoJaW50ZW50X2lkGAEgASgJEgwKBGhlYWQYAiABKAkSNQoOYmlydGhfb3V0Y29tZXMYAyADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lIqEBCgtTeW5jUmVmdXNhbBIWCglpbnRlbnRfaWQYASABKAlIAIgBARIOCgZyZWFzb24YAiABKAkSEQoEY29kZRgDIAEoCUgBiAEBEjQKB3JlZnVzYWwYBCABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbEgCiAEBQgwKCl9pbnRlbnRfaWRCBwoFX2NvZGVCCgoIX3JlZnVzYWwijQEKEVN5bmNSZWZ1c2VkSW50ZW50EhEKCWludGVudF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSEwoLY2hhbmdlX3VzZGEYAyABKAwSNAoHcmVmdXNhbBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsSACIAQFCCgoIX3JlZnVzYWwiQgoPV29ya3NwYWNlVGFyZ2V0EgwKBHJlcG8YASABKAkSEQoJd29ya3NwYWNlGAIgASgJEg4KBmJyYW5jaBgDIAEoCSJOCgtPcGVuUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Eg0KBXNwYW5zGAIgASgIIg4KDEdlbmVzaXNPZmZlciKjAQoNRGlyZWN0aXZlQ2FsbBIOCgZkb21haW4YASABKAkSEQoJZGlyZWN0aXZlGAIgASgJEicKCW9wZXJhdGlvbhgFIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkSFgoOYXJndW1lbnRzX2pzb24YBiABKAlKBAgDEARKBAgEEAVSCWNhbGxfdXNkYVIHcGF5bG9hZFIObGVnYWN5X3BheWxvYWQi1gIKEEF1dGhvcmluZ09wdGlvbnMSDQoFYWN0b3IYASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIVCg1hdXRob3Jfc2VjcmV0GAMgASgMEh0KEHZhbGlkX2Zyb21fZXBvY2gYBCABKARIAIgBARIfChJwcmluY2lwYWxfdmVyaWZpZWQYBSABKAhIAYgBARILCgNybmcYBiADKAESGAoQZGVmZXJfcHJvamVjdGlvbhgHIAEoCBINCgVzcGFucxgIIAEoCBIPCgdkcnlfcnVuGAkgASgIEhAKCHNlcXVlbmNlGAogASgEEi0KBWNsb2NrGAsgASgLMh4ubm9tb3Mua2VybmVsLnYxLkNhcHR1cmVkQ2xvY2sSFAoMcHJlcGFyZV9vbmx5GAwgASgIQhMKEV92YWxpZF9mcm9tX2Vwb2NoQhUKE19wcmluY2lwYWxfdmVyaWZpZWQiSgoNQ2FwdHVyZWRDbG9jaxIXCg9waHlzaWNhbF9taWxsaXMYASABKAQSDwoHbG9naWNhbBgCIAEoDRIPCgdyZXBsaWNhGAMgASgEIsMDChBCaXJ0aENlcnRpZmljYXRlEg0KBWNoaWxkGAEgASgJEg8KB2ZvdW5kZXIYAiABKAkSEAoIdmVyaWZpZWQYAyABKAgSEgoKcGFyZW50X2tleRgEIAEoDBIRCglwYXJlbnRfaWQYBSABKAkSDQoFZXBvY2gYBiABKAMSEQoJc2lnbmF0dXJlGAcgASgMEhkKDHZlcmlmaWVkX3ZpYRgIIAEoCUgAiAEBEhYKCWlkcF90b2tlbhgJIAEoCUgBiAEBEhsKDmNhcHR1cmVkX2Nsb2NrGAogASgDSAKIAQESIQoUYXV0aF9wcm92aWRlcl9pc3N1ZXIYCyABKAlIA4gBARIfChJhdXRoX3Byb3ZpZGVyX2p3a3MYDCABKAlIBIgBARIjChZhdXRoX3Byb3ZpZGVyX2F1ZGllbmNlGA0gASgJSAWIAQFCDwoNX3ZlcmlmaWVkX3ZpYUIMCgpfaWRwX3Rva2VuQhEKD19jYXB0dXJlZF9jbG9ja0IXChVfYXV0aF9wcm92aWRlcl9pc3N1ZXJCFQoTX2F1dGhfcHJvdmlkZXJfandrc0IZChdfYXV0aF9wcm92aWRlcl9hdWRpZW5jZSJsChtTaWduQmlydGhDZXJ0aWZpY2F0ZVJlcXVlc3QSNgoLY2VydGlmaWNhdGUYASABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZRIVCg1zaWduZXJfc2VjcmV0GAIgASgMIlYKHFNpZ25CaXJ0aENlcnRpZmljYXRlUmVzcG9uc2USNgoLY2VydGlmaWNhdGUYASABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZSLsAgoUTW9kZWxMaWZlY3ljbGVJbnRlbnQSOwoJb3BlcmF0aW9uGAEgASgOMigubm9tb3Mua2VybmVsLnYxLk1vZGVsTGlmZWN5Y2xlT3BlcmF0aW9uEhQKDGluc3RhbGxlZF9ieRgCIAEoCRIXCgpzdXBlcnNlZGVzGAMgASgJSACIAQESRAoKdHJhbnNpdGlvbhgEIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25SZXNwb25zZUgBiAEBEhUKCHJlcGxhY2VzGAUgASgJSAKIAQESHgoRYWNjZXB0YW5jZV9yZWFzb24YBiABKAlIA4gBARIZCgxsYXdfaWRlbnRpdHkYByABKAlIBIgBAUINCgtfc3VwZXJzZWRlc0INCgtfdHJhbnNpdGlvbkILCglfcmVwbGFjZXNCFAoSX2FjY2VwdGFuY2VfcmVhc29uQg8KDV9sYXdfaWRlbnRpdHkiOwofSWRlbnRpdHlQcm92aWRlcldpdG5lc3NBZG9wdGlvbhIYChBzb3VyY2Vfd29ya3NwYWNlGAEgASgJIucHCgxPZmZlclJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIuCgRjYWxsGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLkRpcmVjdGl2ZUNhbGxIABIcChJzZWFsZWRfY2hhbmdlX3VzZGEYByABKAxIABJACg9tb2RlbF9saWZlY3ljbGUYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuTW9kZWxMaWZlY3ljbGVJbnRlbnRIABJeCiJpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzX2Fkb3B0aW9uGA0gASgLMjAubm9tb3Mua2VybmVsLnYxLklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQWRvcHRpb25IABIwCgdnZW5lc2lzGA4gASgLMh0ubm9tb3Mua2VybmVsLnYxLkdlbmVzaXNPZmZlckgAEkkKF2NhcnJpZWRfd29ya3NwYWNlX29mZmVyGA8gASgLMiYubm9tb3Mua2VybmVsLnYxLkNhcnJpZWRXb3Jrc3BhY2VPZmZlckgAEjQKCXBsYWNlbWVudBgQIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5QbGFjZW1lbnRPZmZlckgAEkcKFmRldGFjaGVkX3NpZ25lZF9jaGFuZ2UYEiABKAsyJS5ub21vcy5rZXJuZWwudjEuRGV0YWNoZWRTaWduZWRDaGFuZ2VIABI0CglhdXRob3JpbmcYAyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaW5nT3B0aW9ucxIQCghsYXdfdXNkehgEIAEoDBIzCgxhdHRlc3RhdGlvbnMYBSADKAsyHS5ub21vcy5rZXJuZWwudjEuQXR0ZXN0ZWRSZWFkEj0KEmNvbmZsaWN0X3NuYXBzaG90cxgGIAMoCzIhLm5vbW9zLmtlcm5lbC52MS5Db25mbGljdFNuYXBzaG90EhoKEmV4ZWN1dGlvbl9sYXdfdXNkehgIIAEoDBIgChNjb250cm9sbGVyX2xhd19oYXNoGAkgASgJSAGIAQESHQoQY2FuZGlkYXRlX2NvbW1pdBgKIAEoCUgCiAEBEjwKEWJpcnRoX2NlcnRpZmljYXRlGAsgASgLMiEubm9tb3Mua2VybmVsLnYxLkJpcnRoQ2VydGlmaWNhdGUSKwoJbGF3X3VuaXRzGBEgAygLMhgubm9tb3Mua2VybmVsLnYxLkxhd1VuaXRCCAoGaW50ZW50QhYKFF9jb250cm9sbGVyX2xhd19oYXNoQhMKEV9jYW5kaWRhdGVfY29tbWl0IjYKB0xhd1VuaXQSKwoFZmlsZXMYASADKAsyHC5ub21vcy5rZXJuZWwudjEuTGF3VW5pdEZpbGUiLAoLTGF3VW5pdEZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMIsUBCgxBdHRlc3RlZFJlYWQSEAoIcXVlcnlfaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EisKBnJlc3VsdBgDIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlEjIKCGV2aWRlbmNlGAUgASgLMiAubm9tb3Mua2VybmVsLnYxLlJlYWRBdHRlc3RhdGlvbkoECAQQBVILYXR0ZXN0YXRpb24i1QEKD1JlYWRBdHRlc3RhdGlvbhIPCgd2ZXJzaW9uGAEgASgDEhgKEHNvdXJjZV93b3Jrc3BhY2UYAiABKAkSFgoOc291cmNlX2dlbmVzaXMYAyABKAkSEwoLc291cmNlX2hlYWQYBCABKAkSEQoJZm9sZF9yb290GAUgASgJEhQKDHNvdXJjZV9lcG9jaBgGIAEoAxIaChJhdHRlc3RlZF9hdF9taWxsaXMYByABKAMSEgoKcHVibGljX2tleRgIIAEoDBIRCglzaWduYXR1cmUYCSABKAwidQoQQ29uZmxpY3RTbmFwc2hvdBIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSFQoNdGFyZ2V0X3NjaGVtYRgEIAEoCRINCgV0b2tlbhgFIAEoCSKQDwoMUXVlcnlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSMgoJYXV0aG9yaXR5GAIgASgLMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5QXV0aG9yaXR5Eg0KBXNwYW5zGAMgASgIEjkKDXJlc3VsdF9mb3JtYXQYBCABKA4yIi5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXN1bHRGb3JtYXQSKgoEcm93cxgKIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Sb3dzUXVlcnlIABIqCgRwYWdlGAsgASgLMhoubm9tb3Mua2VybmVsLnYxLlBhZ2VRdWVyeUgAEisKBWJ5X2lkGAwgASgLMhoubm9tb3Mua2VybmVsLnYxLkJ5SWRRdWVyeUgAEjkKDHJlc29sdmVfcmVmcxgNIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmc1F1ZXJ5SAASRQoScmVmZXJlbmNlX3ZlcnNpb25zGA4gASgLMicubm9tb3Mua2VybmVsLnYxLlJlZmVyZW5jZVZlcnNpb25zUXVlcnlIABIsCgVjb3VudBgPIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASKgoDc3VtGBAgASgLMhsubm9tb3Mua2VybmVsLnYxLlRhbGx5UXVlcnlIABIwCgdzcGF0aWFsGBEgASgLMh0ubm9tb3Mua2VybmVsLnYxLlNwYXRpYWxRdWVyeUgAEiwKBW5hbWVkGBIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5hbWVkUXVlcnlIABJJChNhdXRob3JpemF0aW9uX2NoZWNrGBMgASgLMioubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1JlcXVlc3RIABJLChRhdXRob3JpemF0aW9uX2V4cGFuZBgUIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdEgAEkkKE2Zyb250aWVyX3RyYW5zaXRpb24YFSABKAsyKi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdEgAEi8KB2J5X3R5cGUYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuQnlUeXBlUXVlcnlIABJIChRvd25lZF9kZXZpY2VfcmVxdWVzdBgXIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Pd25lZERldmljZVJlcXVlc3RRdWVyeUgAEkwKFm93bmVkX3ByZXBhcmVfYXBwcm92YWwYGCABKAsyKi5ub21vcy5rZXJuZWwudjEuT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeUgAEkMKEXBlbmRpbmdfY29uZmxpY3RzGBkgASgLMiYubm9tb3Mua2VybmVsLnYxLlBlbmRpbmdDb25mbGljdHNRdWVyeUgAElAKGHBlbmRpbmdfY29uZmxpY3Rfc3VtbWFyeRgaIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5QZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnlIABJNChZhdXRoZW50aWNhdGlvbl9wb3N0dXJlGBsgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5SAASQAoQY2hpbGRfd29ya3NwYWNlcxgcIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5DaGlsZFdvcmtzcGFjZVF1ZXJ5SAASVgoWYXV0aG9yaW5nX3JlcXVpcmVtZW50cxgdIAEoCzI0Lm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVBdXRob3JpbmdSZXF1aXJlbWVudHNRdWVyeUgAElIKGWlkZW50aXR5X3Byb3ZpZGVyX3dpdG5lc3MYHiABKAsyLS5ub21vcy5rZXJuZWwudjEuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NRdWVyeUgAEk8KF2ludGVyZmFjZV9jb21wYXRpYmlsaXR5GB8gASgLMiwubm9tb3Mua2VybmVsLnYxLkludGVyZmFjZUNvbXBhdGliaWxpdHlRdWVyeUgAEkcKE21haW50ZW5hbmNlX3F1YW50dW0YICABKAsyKC5ub21vcy5rZXJuZWwudjEuTWFpbnRlbmFuY2VRdWFudHVtUXVlcnlIABJEChJmdWxsX2hpc3RvcnlfYXVkaXQYISABKAsyJi5ub21vcy5rZXJuZWwudjEuRnVsbEhpc3RvcnlBdWRpdFF1ZXJ5SAASUAoYd29ya3NwYWNlX2VmZmVjdF9yZWNlaXB0GCIgASgLMiwubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZUVmZmVjdFJlY2VpcHRRdWVyeUgAElQKGmluc3RhbGxlZF9sYXdfZGVjbGFyYXRpb25zGCMgASgLMi4ubm9tb3Mua2VybmVsLnYxLkluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1F1ZXJ5SABCBwoFcXVlcnkiVgobV29ya3NwYWNlRWZmZWN0UmVjZWlwdFF1ZXJ5EiAKGHNvdXJjZV93b3Jrc3BhY2VfZ2VuZXNpcxgBIAEoCRIVCg1lZmZlY3RfZGlnZXN0GAIgASgJIuQBCh5Xb3Jrc3BhY2VFZmZlY3RSZWNlaXB0UmVzcG9uc2USGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIgChh0YXJnZXRfd29ya3NwYWNlX2dlbmVzaXMYAiABKAkSFQoNb2JzZXJ2ZWRfaGVhZBgDIAEoCRIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYBCABKAkSFQoNZWZmZWN0X2RpZ2VzdBgFIAEoCRIfChJhZG1pdHRlZF9pbnRlbnRfaWQYBiABKAlIAIgBAUIVChNfYWRtaXR0ZWRfaW50ZW50X2lkIhcKFUZ1bGxIaXN0b3J5QXVkaXRRdWVyeSKwAwoYRnVsbEhpc3RvcnlBdWRpdFJlc3BvbnNlEg0KBXZhbGlkGAEgASgIEi4KBHdhbGsYAiABKA4yIC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5XYWxrEhEKBGhlYWQYAyABKAlIAIgBARIUCgdpbnRlbnRzGAQgASgESAGIAQESGAoLcGxhbnNfcmVydW4YBSABKARIAogBARIcCg9jb250cm9sbGVyX2hhc2gYBiABKAlIA4gBARIZChFpbnN0YWxsZWRfZG9tYWlucxgHIAMoCRISCgVjaGVjaxgIIAEoCUgEiAEBEhUKCGF0X2luZGV4GAkgASgESAWIAQESEgoFZXJyb3IYCiABKAlIBogBARI0CgdyZWZ1c2FsGAsgASgLMh4ubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWxIB4gBAUIHCgVfaGVhZEIKCghfaW50ZW50c0IOCgxfcGxhbnNfcmVydW5CEgoQX2NvbnRyb2xsZXJfaGFzaEIICgZfY2hlY2tCCwoJX2F0X2luZGV4QggKBl9lcnJvckIKCghfcmVmdXNhbCIeChxJZGVudGl0eVByb3ZpZGVyV2l0bmVzc1F1ZXJ5IosCChpJZGVudGl0eVByb3ZpZGVyV2l0bmVzc0tleRIPCgdvcmRpbmFsGAEgASgEEgsKA2t0eRgCIAEoCRIQCgNraWQYAyABKAlIAIgBARIQCgNhbGcYBCABKAlIAYgBARIQCgN1c2UYBSABKAlIAogBARIQCgNjcnYYBiABKAlIA4gBARIOCgF4GAcgASgJSASIAQESDgoBeRgIIAEoCUgFiAEBEg4KAW4YCSABKAlIBogBARIOCgFlGAogASgJSAeIAQESDwoHa2V5X29wcxgLIAMoCUIGCgRfa2lkQgYKBF9hbGdCBgoEX3VzZUIGCgRfY3J2QgQKAl94QgQKAl95QgQKAl9uQgQKAl9lImMKIklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQ2VydGlmaWNhdGUSEwoLa2V5X29yZGluYWwYASABKAQSGwoTY2VydGlmaWNhdGVfb3JkaW5hbBgCIAEoBBILCgNkZXIYAyABKAwixQQKH0lkZW50aXR5UHJvdmlkZXJXaXRuZXNzUmVzcG9uc2USGAoQc291cmNlX3dvcmtzcGFjZRgBIAEoCRIWCg5zb3VyY2VfZ2VuZXNpcxgCIAEoCRITCgtzb3VyY2VfaGVhZBgDIAEoCRINCgVlcG9jaBgEIAEoBBIfChJwcmVkZWNlc3Nvcl9zaGEyNTYYBSABKAxIAIgBARIOCgZpc3N1ZXIYBiABKAkSFQoIYXVkaWVuY2UYByABKAlIAYgBARIXCg9wcmluY2lwYWxfY2xhaW0YCCABKAkSIQoUZGV2aWNlX2JpbmRpbmdfY2xhaW0YCSABKAlIAogBARIeChZyZXF1aXJlX2RldmljZV9iaW5kaW5nGAogASgIEjkKBGtleXMYCyADKAsyKy5ub21vcy5rZXJuZWwudjEuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NLZXkSSQoMY2VydGlmaWNhdGVzGAwgAygLMjMubm9tb3Mua2VybmVsLnYxLklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQ2VydGlmaWNhdGUSFwoPbWF0ZXJpYWxfc2hhMjU2GA0gASgMEjMKDGF0dGVzdGF0aW9ucxgPIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5BdHRlc3RlZFJlYWRCFQoTX3ByZWRlY2Vzc29yX3NoYTI1NkILCglfYXVkaWVuY2VCFwoVX2RldmljZV9iaW5kaW5nX2NsYWltSgQIDhAPUhFzb3VyY2VfcHJvb2ZfdXNkYSIVChNDaGlsZFdvcmtzcGFjZVF1ZXJ5IpABChlDaGlsZFdvcmtzcGFjZVF1ZXJ5UmVjb3JkEhEKCXdvcmtzcGFjZRgBIAEoCRI+CgZzdGF0dXMYAiABKA4yLi5ub21vcy5rZXJuZWwudjEuQ2hpbGRXb3Jrc3BhY2VMaWZlY3ljbGVTdGF0dXMSFAoHYm9ybl9hdBgDIAEoCUgAiAEBQgoKCF9ib3JuX2F0IlsKG0NoaWxkV29ya3NwYWNlUXVlcnlSZXNwb25zZRI8CghjaGlsZHJlbhgBIAMoCzIqLm5vbW9zLmtlcm5lbC52MS5DaGlsZFdvcmtzcGFjZVF1ZXJ5UmVjb3JkIh8KHUluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1F1ZXJ5IjcKEEluc3RhbGxlZExhd1VuaXQSEAoIdW5pdF9rZXkYASABKAkSEQoJdW5pdF9oYXNoGAIgASgJIowBChNJbnN0YWxsZWRMYXdVbml0U2V0EhQKDHNldF9pZGVudGl0eRgBIAEoCRIYChBjb21wb3Nlcl92ZXJzaW9uGAIgASgJEhMKC29wZW51c2RfcmV2GAMgASgJEjAKBXVuaXRzGAQgAygLMiEubm9tb3Mua2VybmVsLnYxLkluc3RhbGxlZExhd1VuaXQigQIKHkRlY2xhcmVkQXV0aGVudGljYXRpb25Qcm92aWRlchIOCgZkb21haW4YASABKAkSDgoGbWVtYmVyGAIgASgJEjsKC21lbWJlcl9raW5kGAMgASgOMiYubm9tb3Mua2VybmVsLnYxLkRlY2xhcmVkTGF3TWVtYmVyS2luZBJBCgRraW5kGAQgASgOMjMubm9tb3Mua2VybmVsLnYxLkRlY2xhcmVkQXV0aGVudGljYXRpb25Qcm92aWRlcktpbmQSDQoFc2NvcGUYBSABKAkSHAoPaWRlbnRpdHlfc2hhMjU2GAYgASgJSACIAQFCEgoQX2lkZW50aXR5X3NoYTI1NiLpAQofSW5zdGFsbGVkTGF3Q2xvc3VyZURlY2xhcmF0aW9ucxIYChBjbG9zdXJlX2lkZW50aXR5GAEgASgJEg8KB2RvbWFpbnMYAiADKAkSOwoIdW5pdF9zZXQYAyABKAsyJC5ub21vcy5rZXJuZWwudjEuSW5zdGFsbGVkTGF3VW5pdFNldEgAiAEBElEKGGF1dGhlbnRpY2F0aW9uX3Byb3ZpZGVycxgEIAMoCzIvLm5vbW9zLmtlcm5lbC52MS5EZWNsYXJlZEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJCCwoJX3VuaXRfc2V0InQKIEluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1Jlc3BvbnNlEgwKBGhlYWQYASABKAkSQgoIY2xvc3VyZXMYAiADKAsyMC5ub21vcy5rZXJuZWwudjEuSW5zdGFsbGVkTGF3Q2xvc3VyZURlY2xhcmF0aW9ucyLKAQojRGlyZWN0aXZlQXV0aG9yaW5nUmVxdWlyZW1lbnRzUXVlcnkSEQoJZGlyZWN0aXZlGAEgASgJEhYKCXByaW5jaXBhbBgCIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYAyABKAxIAYgBARIVCghrZXlfaGFzaBgEIAEoCUgCiAEBEhMKBmRvbWFpbhgFIAEoCUgDiAEBQgwKCl9wcmluY2lwYWxCDQoLX3B1YmxpY19rZXlCCwoJX2tleV9oYXNoQgkKB19kb21haW4ijAIKJkRpcmVjdGl2ZUF1dGhvcmluZ1JlcXVpcmVtZW50c1Jlc3BvbnNlEg0KBWZvdW5kGAEgASgIEhMKBmRvbWFpbhgCIAEoCUgAiAEBEhUKCHJlbGF0aW9uGAMgASgJSAGIAQESEwoGb2JqZWN0GAQgASgJSAKIAQESEgoFYWN0b3IYBSABKAlIA4gBARIVCghrZXlfaGFzaBgGIAEoCUgEiAEBEhcKD3NpZ25lcl9lbnJvbGxlZBgHIAEoCBIUCgxyb2xlX2FsbG93ZWQYCCABKAhCCQoHX2RvbWFpbkILCglfcmVsYXRpb25CCQoHX29iamVjdEIICgZfYWN0b3JCCwoJX2tleV9oYXNoInIKGkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5Eh4KFmluY2x1ZGVfYmlydGhfZXZpZGVuY2UYASABKAgSHgoRZGV2aWNlX3B1YmxpY19rZXkYAiABKAxIAIgBAUIUChJfZGV2aWNlX3B1YmxpY19rZXki7AIKHUF1dGhlbnRpY2F0aW9uUG9zdHVyZVJlc3BvbnNlEkgKDnByb3ZpZGVyX3Rva2VuGAEgASgOMjAubm9tb3Mua2VybmVsLnYxLlByb3ZpZGVyVG9rZW5WZXJpZmljYXRpb25TdGF0dXMSFwoPZW5yb2xsZWRfZGV2aWNlGAIgASgIEhoKEnJlc29sdmVkX3ByaW5jaXBhbBgDIAEoCRJECg5iaXJ0aF9ldmlkZW5jZRgEIAEoCzInLm5vbW9zLmtlcm5lbC52MS5CaXJ0aEV2aWRlbmNlUmVhZGluZXNzSACIAQESQQoUZGV2aWNlX3NpZ25lcl9zdGF0dXMYBSABKA4yIy5ub21vcy5rZXJuZWwudjEuRGV2aWNlU2lnbmVyU3RhdHVzEhoKEmRldmljZV9rZXlfc3ViamVjdBgGIAEoCRIUCgxzaWduZXJfZXBvY2gYByABKANCEQoPX2JpcnRoX2V2aWRlbmNlIl4KFkJpcnRoRXZpZGVuY2VSZWFkaW5lc3MSNAoGc3RhdHVzGAEgASgOMiQubm9tb3Mua2VybmVsLnYxLkJpcnRoRXZpZGVuY2VTdGF0dXMSDgoGZGV0YWlsGAIgASgJIigKF093bmVkRGV2aWNlUmVxdWVzdFF1ZXJ5Eg0KBXNjb3BlGAEgASgJIjIKGk93bmVkRGV2aWNlUmVxdWVzdFJlc3BvbnNlEhQKDHJlcXVlc3RfdXNkYRgBIAEoDCJAChlPd25lZFByZXBhcmVBcHByb3ZhbFF1ZXJ5Eg0KBXNjb3BlGAEgASgJEhQKDHJlcXVlc3RfdXNkYRgCIAEoDCK/AQocT3duZWRQcmVwYXJlQXBwcm92YWxSZXNwb25zZRIXCg9uZXdfa2V5X3N1YmplY3QYASABKAkSGgoSb3duZWRfY3VzdG9keV91c2RhGAIgASgMEhQKDHZlcmlmaWVkX3ZpYRgDIAEoCRIYChB2YWxpZF9mcm9tX2Vwb2NoGAQgASgEEh8KF2FwcHJvdmVkX2F0X3VuaXhfbWlsbGlzGAUgASgEEhkKEW93bmVkX2tleV9zdWJqZWN0GAYgASgJIpIBCg5RdWVyeUF1dGhvcml0eRIXCg9wcmluY2lwYWxfY2xhaW0YASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIQCghub3dfdW5peBgDIAEoBBIVCg1hdXRob3Jfc2VjcmV0GAQgASgMEioKBGtleXMYBSADKAsyHC5ub21vcy5rZXJuZWwudjEuSW5qZWN0ZWRLZXkiOAoLSW5qZWN0ZWRLZXkSDQoFc2NvcGUYASABKAkSDQoFZXBvY2gYAiABKAQSCwoDa2V5GAMgASgMIqgBCglSb3dzUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgEIAEoDBIzChVhcHBsaWNhdGlvbl9hcmd1bWVudHMYBSABKAsyFC5nb29nbGUucHJvdG9idWYuQW55IsYBCglQYWdlUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0Eg0KBWxpbWl0GAMgASgNEg0KBWFmdGVyGAQgASgJEhEKCXByaW5jaXBhbBgFIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgGIAEoDBIzChVhcHBsaWNhdGlvbl9hcmd1bWVudHMYByABKAsyFC5nb29nbGUucHJvdG9idWYuQW55IkwKCUJ5SWRRdWVyeRIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSEQoJcHJpbmNpcGFsGAMgASgJIjgKC0J5VHlwZVF1ZXJ5EhYKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCSJcCghOb21vc1JlZhIRCgl3b3Jrc3BhY2UYASABKAkSFgoOYWdncmVnYXRlX3R5cGUYAiABKAkSFAoMYWdncmVnYXRlX2lkGAMgASgJEg8KB3ZlcnNpb24YBCABKAkiTgoQUmVzb2x2ZVJlZnNRdWVyeRInCgRyZWZzGAEgAygLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhEKCXByaW5jaXBhbBgCIAEoCSJOChZSZWZlcmVuY2VWZXJzaW9uc1F1ZXJ5EjQKBHJlZnMYASADKAsyJi5ub21vcy5rZXJuZWwudjEuUmVmZXJlbmNlVmVyc2lvbkNoZWNrIoQBChVSZWZlcmVuY2VWZXJzaW9uQ2hlY2sSKQoGcGlubmVkGAEgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEikKBnNlcmllcxgCIAEoCzIZLm5vbW9zLmtlcm5lbC52MS5Ob21vc1JlZhIVCg1jdXJyZW50X2ZpZWxkGAMgASgJImIKClRhbGx5UXVlcnkSCgoCaWQYASABKAkSEQoJcHJpbmNpcGFsGAMgASgJEhYKCWdyb3VwX2tleRgEIAEoCUgAiAEBQgwKCl9ncm91cF9rZXlKBAgCEANSCWFyZ3VtZW50cyJ6CgxTcGF0aWFsUXVlcnkSCgoCaWQYASABKAkSEQoJcHJpbmNpcGFsGAMgASgJEg0KBW1pbl94GAQgASgBEg0KBW1pbl95GAUgASgBEg0KBW1heF94GAYgASgBEg0KBW1heF95GAcgASgBSgQIAhADUglhcmd1bWVudHMiWgoVUGVuZGluZ0NvbmZsaWN0c1F1ZXJ5EhsKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJSACIAQESEQoJcHJpbmNpcGFsGAIgASgJQhEKD19hZ2dyZWdhdGVfdHlwZSIwChtQZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnkSEQoJcHJpbmNpcGFsGAEgASgJInEKCk5hbWVkUXVlcnkSMgoJb3BlcmF0aW9uGAEgASgOMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5T3BlcmF0aW9uEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCKxAQoZRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdBIOCgZkb21haW4YASABKAkSFgoOY2FuZGlkYXRlX2hhc2gYAiABKAkSDwoHYXRfaGFzaBgDIAEoCRIhChlhY2tub3dsZWRnZW1lbnRfcHJpbmNpcGFsGAQgASgJEiAKE3Jlc3RvcmVfcHJldmlvdXNfb2YYBSABKAlIAIgBAUIWChRfcmVzdG9yZV9wcmV2aW91c19vZiJaCiVGcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhgKEHNvdXJjZV9zdGFibGVfaWQYASABKAkSFwoPYWNrbm93bGVkZ2VtZW50GAIgASgJIvUBCh5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbnMSDwoHcmV0aXJlZBgBIAMoCRJHCgdyZXR5cGVkGAIgAygLMjYubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSRwoHcmViaW5kcxgDIAMoCzI2Lm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhwKD2Fja25vd2xlZGdlZF9ieRgEIAEoCUgAiAEBQhIKEF9hY2tub3dsZWRnZWRfYnkiPQobRnJvbnRpZXJUcmFuc2l0aW9uVmlvbGF0aW9uEg4KBmRvbWFpbhgBIAEoCRIOCgZkZXRhaWwYAiABKAki1wIKGkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlEg8KB2F0X2hhc2gYASABKAkSGQoMY3VycmVudF9oYXNoGAIgASgJSACIAQESFQoNYXRfc3RhdGVfcm9vdBgDIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgEIAEoCRIOCgZkb21haW4YBSABKAkSDwoHZG9tYWlucxgGIAMoCRINCgVyZWFkeRgHIAEoCBJACgp2aW9sYXRpb25zGAggAygLMiwubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblZpb2xhdGlvbhJKCgxkaXNwb3NpdGlvbnMYCSABKAsyLy5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25zSAGIAQFCDwoNX2N1cnJlbnRfaGFzaEIPCg1fZGlzcG9zaXRpb25zIi8KE0F1dGhvcml6YXRpb25PYmplY3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSJUChRBdXRob3JpemF0aW9uU3ViamVjdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEhUKCHJlbGF0aW9uGAMgASgJSACIAQFCCwoJX3JlbGF0aW9uIpwBChhSZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBIQCghyZWxhdGlvbhgCIAEoCRI2CgdzdWJqZWN0GAMgASgLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0IoEBChhBdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSIwoZY3VycmVudF92ZXJpZmllZF9mcm9udGllchgBIAEoCEgAEhkKD2F0X2xlYXN0X2NvbW1pdBgCIAEoCUgAEhYKDGV4YWN0X2NvbW1pdBgDIAEoCUgAQg0KC3JlcXVpcmVtZW50ImYKHUF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EhQKDGNvbmRpdGlvbl9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi9wIKGUF1dGhvcml6YXRpb25DaGVja1JlcXVlc3QSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBISCgpwZXJtaXNzaW9uGAIgASgJEjYKB3N1YmplY3QYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QSPgoLY29uc2lzdGVuY3kYBCABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbnNpc3RlbmN5Ej8KB2NvbnRleHQYBSADKAsyLi5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSIAoTZXhwZWN0ZWRfbW9kZWxfaGFzaBgGIAEoCUgAiAEBEhsKE2luY2x1ZGVfZXhwbGFuYXRpb24YByABKAhCFgoUX2V4cGVjdGVkX21vZGVsX2hhc2gi7QIKGkF1dGhvcml6YXRpb25FeHBhbmRSZXF1ZXN0EjYKCHJlc291cmNlGAEgASgLMiQubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25PYmplY3QSEgoKcGVybWlzc2lvbhgCIAEoCRI+Cgtjb25zaXN0ZW5jeRgDIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSPwoHY29udGV4dBgEIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIgChNleHBlY3RlZF9tb2RlbF9oYXNoGAUgASgJSACIAQESDQoFbGltaXQYBiABKA0SEgoFYWZ0ZXIYByABKAlIAYgBARIbChNpbmNsdWRlX2V4cGxhbmF0aW9uGAggASgIQhYKFF9leHBlY3RlZF9tb2RlbF9oYXNoQggKBl9hZnRlciK9AQoZUmVsYXRpb25zaGlwVHVwbGVFdmlkZW5jZRI4CgV0dXBsZRgBIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSEAoIdHVwbGVfaWQYAiABKAkSGgoSYXNzZXJ0aW9uX2V2ZW50X2lkGAMgASgJEiAKE3Jldm9jYXRpb25fZXZlbnRfaWQYBCABKAlIAIgBAUIWChRfcmV2b2NhdGlvbl9ldmVudF9pZCLhAwoYQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uEkYKCW9wZXJhdGlvbhgBIAEoDjIzLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb24uT3BlcmF0aW9uEhAKCHJlbGF0aW9uGAIgASgJEg4KBnJlc3VsdBgDIAEoCBI8CghldmlkZW5jZRgEIAMoCzIqLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUV2aWRlbmNlEjsKCGNoaWxkcmVuGAUgAygLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbiLfAQoJT3BlcmF0aW9uEhkKFU9QRVJBVElPTl9VTlNQRUNJRklFRBAAEhQKEE9QRVJBVElPTl9ESVJFQ1QQARIeChpPUEVSQVRJT05fQ09NUFVURURfVVNFUlNFVBACEh4KGk9QRVJBVElPTl9UVVBMRV9UT19VU0VSU0VUEAMSEwoPT1BFUkFUSU9OX1VOSU9OEAQSGgoWT1BFUkFUSU9OX0lOVEVSU0VDVElPThAFEhcKE09QRVJBVElPTl9FWENMVVNJT04QBhIXChNPUEVSQVRJT05fQ09ORElUSU9OEAcidwoaQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSIAoYYXV0aG9yaXphdGlvbl9tb2RlbF9oYXNoGAEgASgJEiEKGXJlbGF0aW9uc2hpcF9zdGF0ZV9jb21taXQYAiABKAkSFAoMY29udGV4dF9oYXNoGAMgASgMIr4BChpBdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZRIPCgdhbGxvd2VkGAEgASgIEjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEkMKC2V4cGxhbmF0aW9uGAMgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbkgAiAEBQg4KDF9leHBsYW5hdGlvbiKDAgobQXV0aG9yaXphdGlvbkV4cGFuZFJlc3BvbnNlEjcKCHN1YmplY3RzGAEgAygLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0EjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEhEKBG5leHQYAyABKAlIAIgBARJDCgtleHBsYW5hdGlvbhgEIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb25IAYgBAUIHCgVfbmV4dEIOCgxfZXhwbGFuYXRpb24iqAEKDU91dGJveFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBItCgVjbG9jaxgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5DYXB0dXJlZENsb2NrEjYKB3ByZXBhcmUYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuUHJlcGFyZU91dGJvdW5kT2ZmZXIimQEKC1N5bmNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSEQoJZnJvbV9iYXNlGAIgASgJEg8KB3RvX2hlYWQYAyABKAkSGgoScGFya19yZWZ1c2VkX2xvY2FsGAQgASgIEhgKEHBhcmtlZF9hdF9taWxsaXMYBSABKAQifwoaS2VybmVsQ29uZmlndXJhdGlvblJlcXVlc3QSHQoVdHJ1c3Rfcm9vdF9wdWJsaWNfa2V5GAEgASgMEiUKGHRydXN0c19jdXN0b2RpYW5faGlzdG9yeRgCIAEoCEgAiAEBQhsKGV90cnVzdHNfY3VzdG9kaWFuX2hpc3RvcnkiTAobS2VybmVsQ29uZmlndXJhdGlvblJlc3BvbnNlEi0KBnJlc3VsdBgBIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWQi8xEKDkN1c3RvZHlSZXF1ZXN0EjcKCnBhY2tfZGVsdGEYCiABKAsyIS5ub21vcy5rZXJuZWwudjEuUGFja0RlbHRhUmVxdWVzdEgAEjcKCmFwcGx5X3BhY2sYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXBwbHlQYWNrUmVxdWVzdEgAEjcKCnJlcG9fc3RhdHMYDCABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVwb1N0YXRzUmVxdWVzdEgAEj0KDWludGVudHNfYWJvdmUYDSABKAsyJC5ub21vcy5rZXJuZWwudjEuSW50ZW50c0Fib3ZlUmVxdWVzdEgAEj8KDmluc3BlY3RfY2hhbmdlGA4gASgLMiUubm9tb3Mua2VybmVsLnYxLkluc3BlY3RDaGFuZ2VSZXF1ZXN0SAASTgoWZW5jb2RlX3JlZnVzYWxfdmVyZGljdBgPIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5FbmNvZGVSZWZ1c2FsVmVyZGljdFJlcXVlc3RIABJQChdpbnNwZWN0X3JlZnVzYWxfdmVyZGljdBgQIAEoCzItLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXF1ZXN0SAASNQoJcmVhZF9ibG9iGBEgASgLMiAubm9tb3Mua2VybmVsLnYxLlJlYWRCbG9iUmVxdWVzdEgAEjkKC3Jlc29sdmVfcmVmGBIgASgLMiIubm9tb3Mua2VybmVsLnYxLlJlc29sdmVSZWZSZXF1ZXN0SAASNQoJbGlzdF9yZWZzGBMgASgLMiAubm9tb3Mua2VybmVsLnYxLkxpc3RSZWZzUmVxdWVzdEgAEjUKCXdyaXRlX3JlZhgUIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xcml0ZVJlZlJlcXVlc3RIABI3CgpkZWxldGVfcmVmGBUgASgLMiEubm9tb3Mua2VybmVsLnYxLkRlbGV0ZVJlZlJlcXVlc3RIABJEChF3cml0ZV9tZXRhX2NvbW1pdBgWIAEoCzInLm5vbW9zLmtlcm5lbC52MS5Xcml0ZU1ldGFDb21taXRSZXF1ZXN0SAASQgoQbGF3X2Nsb3N1cmVfaW5mbxgXIAEoCzImLm5vbW9zLmtlcm5lbC52MS5MYXdDbG9zdXJlSW5mb1JlcXVlc3RIABJFChFjaGVja3BvaW50X2V4cG9ydBgYIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50RXhwb3J0UmVxdWVzdEgAEkUKEWNoZWNrcG9pbnRfaW1wb3J0GBkgASgLMigubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRJbXBvcnRSZXF1ZXN0SAASQwoQY2FwYWNpdHlfcmVzZXJ2ZRgaIAEoCzInLm5vbW9zLmtlcm5lbC52MS5DYXBhY2l0eVJlc2VydmVSZXF1ZXN0SAASOwoMcmVzdG9yZV9tYWluGBsgASgLMiMubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluUmVxdWVzdEgAEk4KFnJlc29sdmVfc3RhdGVfcG9zaXRpb24YHCABKAsyLC5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXF1ZXN0SAASRwoScmVzaWRlbnRfZm9vdHByaW50GB0gASgLMikubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Rm9vdHByaW50UmVxdWVzdEgAEkEKD2hpc3Rvcnlfc3VtbWFyeRgeIAEoCzImLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5U3VtbWFyeVJlcXVlc3RIABJaChxwcm92ZV9jb21wYWN0aW9uX2VxdWl2YWxlbmNlGB8gASgLMjIubm9tb3Mua2VybmVsLnYxLlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVxdWVzdEgAEj4KDm9wZW5fZ2l0X3N0YXRlGCAgASgLMiQubm9tb3Mua2VybmVsLnYxLk9wZW5HaXRTdGF0ZVJlcXVlc3RIABJOChZyZWFkX2N1c3RvZHlfcGxhY2VtZW50GCEgASgLMiwubm9tb3Mua2VybmVsLnYxLlJlYWRDdXN0b2R5UGxhY2VtZW50UmVxdWVzdEgAElQKGWluc3BlY3RfY3VzdG9keV9wbGFjZW1lbnQYIyABKAsyLy5ub21vcy5rZXJuZWwudjEuSW5zcGVjdEN1c3RvZHlQbGFjZW1lbnRSZXF1ZXN0SAASUAoXcmVsZWFzZV93b3Jrc3BhY2Vfc3RhdGUYJCABKAsyLS5ub21vcy5rZXJuZWwudjEuUmVsZWFzZVdvcmtzcGFjZVN0YXRlUmVxdWVzdEgAEl8KH3JlY29yZF93b3Jrc3BhY2VfZWZmZWN0X291dGNvbWUYJSABKAsyNC5ub21vcy5rZXJuZWwudjEuUmVjb3JkV29ya3NwYWNlRWZmZWN0T3V0Y29tZVJlcXVlc3RIABJMChVhdHRhY2hfbG9jYWxfZnJvbnRpZXIYJiABKAsyKy5ub21vcy5rZXJuZWwudjEuQXR0YWNoTG9jYWxGcm9udGllclJlcXVlc3RIABJDChBhZ2dyZWdhdGVfY2Vuc3VzGCcgASgLMicubm9tb3Mua2VybmVsLnYxLkFnZ3JlZ2F0ZUNlbnN1c1JlcXVlc3RIABI9Cg1hdWRpdF9jdXN0b2R5GCggASgLMiQubm9tb3Mua2VybmVsLnYxLkF1ZGl0Q3VzdG9keVJlcXVlc3RIABJIChNleHBvcnRfbGF3X3Byb2R1Y3RzGCkgASgLMikubm9tb3Mua2VybmVsLnYxLkV4cG9ydExhd1Byb2R1Y3RzUmVxdWVzdEgAEkgKE2ltcG9ydF9sYXdfcHJvZHVjdHMYKiABKAsyKS5ub21vcy5rZXJuZWwudjEuSW1wb3J0TGF3UHJvZHVjdHNSZXF1ZXN0SABCCwoJb3BlcmF0aW9uSgQIIhAjUhdhZG9wdF9jdXN0b2R5X3BsYWNlbWVudCJeChZBZ2dyZWdhdGVDZW5zdXNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSEgoKdHlwZV9saW1pdBgCIAEoDSIxChJBZ2dyZWdhdGVUeXBlQ291bnQSDAoEdHlwZRgBIAEoCRINCgVjb3VudBgCIAEoBCL7AQoXQWdncmVnYXRlQ2Vuc3VzUmVzcG9uc2USEQoEaGVhZBgBIAEoCUgAiAEBEhwKD2FnZ3JlZ2F0ZV9jb3VudBgCIAEoBEgBiAEBEhcKCnN0YXRlX3Jvb3QYAyABKAlIAogBARI2Cgl0b3BfdHlwZXMYBCADKAsyIy5ub21vcy5rZXJuZWwudjEuQWdncmVnYXRlVHlwZUNvdW50Eh0KEHR5cGVzX3N0YXRlX3Jvb3QYBSABKAlIA4gBAUIHCgVfaGVhZEISChBfYWdncmVnYXRlX2NvdW50Qg0KC19zdGF0ZV9yb290QhMKEV90eXBlc19zdGF0ZV9yb290IigKGFJlc2lkZW50Rm9vdHByaW50UmVxdWVzdBIMCgRkZWVwGAEgASgIIvQDChFSZXNpZGVudEZvb3RwcmludBIRCgl3b3Jrc3BhY2UYASABKAkSDgoGYnJhbmNoGAIgASgJEhgKEHJlYWRfbW9kZWxfYnl0ZXMYAyABKAQSHQoVcmVhZF9tb2RlbF9ydXN0X2J5dGVzGAQgASgEEhgKEGZvbGRfc3RhdGVfYnl0ZXMYBSABKAQSEwoLZm9sZF9pbWFnZXMYBiABKA0SHwoXc2hhcmVkX2F0dHJpYnV0ZWRfYnl0ZXMYByABKAQSEgoKYWdncmVnYXRlcxgIIAEoBBI2Cgpjb21wb25lbnRzGAkgAygLMiIubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Q29tcG9uZW50EhIKCmNvbXB1dGVfdXMYCiABKAQSRQoRcmVhZF9zdG9yYWdlX2tpbmQYCyABKA4yKi5ub21vcy5rZXJuZWwudjEuUmVhZFByb2plY3Rpb25TdG9yYWdlS2luZBIfChdzcWxpdGVfY2FjaGVfdXNlZF9ieXRlcxgMIAEoBBIYChBmbGF0X3NjYWxhcl9yb3dzGA0gASgEEh0KFWZsYXRfc2NhbGFyX3Jvd3NfcmVhZBgOIAEoBBIdChBmdWxsX3JlcGxheV9oZWFkGA8gASgJSACIAQFCEwoRX2Z1bGxfcmVwbGF5X2hlYWQiaQoRUmVzaWRlbnRDb21wb25lbnQSNAoEa2luZBgBIAEoDjImLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudENvbXBvbmVudEtpbmQSDQoFYnl0ZXMYAiABKAQSDwoHY2VpbGluZxgDIAEoCCLKAQoZUmVzaWRlbnRGb290cHJpbnRSZXNwb25zZRI1CglyZXNpZGVudHMYASADKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnQSHAoUYWxsb2NhdG9yX2xpdmVfYnl0ZXMYAiABKAQSGAoQYXR0cmlidXRlZF9ieXRlcxgDIAEoBBIZChF1bmFjY291bnRlZF9ieXRlcxgEIAEoBBIVCg1hY2NvdW50aW5nX3VzGAUgASgEEgwKBGRlZXAYBiABKAginAEKEFBhY2tEZWx0YVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESEQoEYmFzZRgDIAEoCUgBiAEBEg4KBmJyYW5jaBgEIAEoCRIdChBzdGFnZWRfcGFja19maWxlGAUgASgJSAKIAQFCBwoFX2hlYWRCBwoFX2Jhc2VCEwoRX3N0YWdlZF9wYWNrX2ZpbGUilgEKEEFwcGx5UGFja1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgRwYWNrGAIgASgMSAASGgoQc3RhZ2VkX3BhY2tfZmlsZRgEIAEoCUgAEhEKBGhlYWQYAyABKAlIAYgBARIPCgdzaGFsbG93GAUgAygJEhEKCXVuc2hhbGxvdxgGIAMoCUIICgZzb3VyY2VCBwoFX2hlYWQiIAoQUmVwb1N0YXRzUmVxdWVzdBIMCgRyZXBvGAEgASgJIqwBChNJbnRlbnRzQWJvdmVSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoEaGVhZBgCIAEoCUgAiAEBEhEKBGJhc2UYAyABKAlIAYgBARIOCgZicmFuY2gYBCABKAkSDQoFbGltaXQYBSABKAQSGAoQY29tcGxldGVfbG9naWNhbBgGIAEoCBIWCg5jb21wYWN0X3N0b3JlZBgHIAEoCEIHCgVfaGVhZEIHCgVfYmFzZSJtChVIaXN0b3J5U3VtbWFyeVJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCgRoZWFkGAIgASgJSACIAQESDgoGYnJhbmNoGAMgASgJEhEKBGJhc2UYBCABKAlIAYgBAUIHCgVfaGVhZEIHCgVfYmFzZSIrChRJbnNwZWN0Q2hhbmdlUmVxdWVzdBITCgtjaGFuZ2VfdXNkYRgBIAEoDCLfAQoOUmVmdXNhbFZlcmRpY3QSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIQCgNvaWQYAiABKAlIAYgBARITCgZkb21haW4YAyABKAlIAogBARIZCgxkaXJlY3RpdmVfaWQYBCABKAlIA4gBARIUCgdzZXNzaW9uGAUgASgJSASIAQESEQoJcGFya2VkX2F0GAYgASgJEg4KBnJlYXNvbhgHIAEoCUILCglfb2ZmZXJfaWRCBgoEX29pZEIJCgdfZG9tYWluQg8KDV9kaXJlY3RpdmVfaWRCCgoIX3Nlc3Npb24iTwobRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXF1ZXN0EjAKB3ZlcmRpY3QYASABKAsyHy5ub21vcy5rZXJuZWwudjEuUmVmdXNhbFZlcmRpY3QiNAocSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVxdWVzdBIUCgx2ZXJkaWN0X3VzZGEYASABKAwi1AEKFUNvbXBhY3Rpb25FcXVpdmFsZW5jZRITCgtzb3VyY2VfaGVhZBgBIAEoCRIWCg5zb3VyY2VfZ2VuZXNpcxgCIAEoCRIWCg5jYW5kaWRhdGVfaGVhZBgDIAEoCRIZChFjYW5kaWRhdGVfZ2VuZXNpcxgEIAEoCRIWCg5zb3VyY2VfaW50ZW50cxgFIAEoBBIXCg9jYXJyaWVkX2ludGVudHMYBiABKAQSFgoOcGFya2VkX2ludGVudHMYByABKAQSEgoKZXF1aXZhbGVudBgIIAEoCCJ9CiFQcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlcXVlc3QSEwoLc291cmNlX3JlcG8YASABKAkSEwoLc291cmNlX2hlYWQYAiABKAkSFgoOY2FuZGlkYXRlX3JlcG8YAyABKAkSFgoOY2FuZGlkYXRlX2hlYWQYBCABKAkiOgoPUmVhZEJsb2JSZXF1ZXN0EgwKBHJlcG8YASABKAkSCwoDb2lkGAIgASgJEgwKBHBhdGgYAyABKAkiNAoRUmVzb2x2ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkiNgoPUGh5c2ljYWxSZWZGaWxlEhEKCXJlZmVyZW5jZRgBIAEoCRIQCghjb250ZW50cxgCIAEoDCKnAgoPTGlzdFJlZnNSZXF1ZXN0EgwKBHJlcG8YASABKAkSDgoGcHJlZml4GAIgASgJEhgKEGxvb3NlX3JlZmVyZW5jZXMYAyADKAkSIAoYbG9vc2VfaW52ZW50b3J5X2NvbXBsZXRlGAQgASgIEiAKE3BhY2tlZF9yZWZzX3ByZXNlbnQYBSABKAhIAIgBARI9ChNwaHlzaWNhbF9sb29zZV9yZWZzGAYgAygLMiAubm9tb3Mua2VybmVsLnYxLlBoeXNpY2FsUmVmRmlsZRIcChRwaHlzaWNhbF9wYWNrZWRfcmVmcxgHIAEoDBIjChtwaHlzaWNhbF9pbnZlbnRvcnlfY29tcGxldGUYCCABKAhCFgoUX3BhY2tlZF9yZWZzX3ByZXNlbnQiQgoPV3JpdGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJEg4KBnRhcmdldBgDIAEoCSIzChBEZWxldGVSZWZSZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJcmVmZXJlbmNlGAIgASgJIikKCE1ldGFGaWxlEgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoDCKuAQoWV3JpdGVNZXRhQ29tbWl0UmVxdWVzdBIMCgRyZXBvGAEgASgJEg8KB3BhcmVudHMYAiADKAkSKAoFZmlsZXMYAyADKAsyGS5ub21vcy5rZXJuZWwudjEuTWV0YUZpbGUSDwoHbWVzc2FnZRgEIAEoCRIUCgx0aW1lX3NlY29uZHMYBSABKBISFgoJcmVmZXJlbmNlGAYgASgJSACIAQFCDAoKX3JlZmVyZW5jZSJnChVMYXdDbG9zdXJlSW5mb1JlcXVlc3QSFAoMY2xvc3VyZV9maWxlGAEgASgJEjgKCmNhcGFiaWxpdHkYAiABKA4yJC5ub21vcy5rZXJuZWwudjEuS2VybmVsTGF3Q2FwYWJpbGl0eSKHAQoXQ2hlY2twb2ludEV4cG9ydFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIhChRzdGFnZWRfZnJvbnRpZXJfZmlsZRgCIAEoCUgAiAEBQhcKFV9zdGFnZWRfZnJvbnRpZXJfZmlsZSJBCgtGcm9udGllckhsYxIQCghwaHlzaWNhbBgBIAEoBBIPCgdsb2dpY2FsGAIgASgNEg8KB3JlcGxpY2EYAyABKAQi7QQKF1ZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEgsKA29pZBgCIAEoCRIPCgdpbnRlbnRzGAMgASgEEhMKC3BsYW5zX3JlcnVuGAQgASgEEhwKD2NvbnRyb2xsZXJfaGFzaBgFIAEoCUgAiAEBEhkKEWluc3RhbGxlZF9kb21haW5zGAYgAygJEg4KBmxpbmVhchgHIAEoCBIzCghsYXN0X2hsYxgIIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gBiAEBEhQKB2xhc3RfaWQYCSABKAlIAogBARIRCglzdGF0ZV9vaWQYCiABKAkSFAoMc3RhdGVfc2hhMjU2GAsgASgJEjkKDnN0YXRlX2xhc3RfaGxjGAwgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAOIAQESGgoNc3RhdGVfbGFzdF9pZBgNIAEoCUgEiAEBEhcKD21hbmlmZXN0X3NoYTI1NhgOIAEoCRIeChZsYXdfY2xvc3VyZV9pZGVudGl0aWVzGA8gAygJEhoKEnJlc29sdmFibGVfZG9tYWlucxgQIAMoCRIiChVwcm9qZWN0aW9uX3N0YXRlX3Jvb3QYESABKAlIBYgBARIOCgZ3YWxrZWQYEiABKAhCEgoQX2NvbnRyb2xsZXJfaGFzaEILCglfbGFzdF9obGNCCgoIX2xhc3RfaWRCEQoPX3N0YXRlX2xhc3RfaGxjQhAKDl9zdGF0ZV9sYXN0X2lkQhgKFl9wcm9qZWN0aW9uX3N0YXRlX3Jvb3QiRQoVRm9sZEZyb250aWVyQWdncmVnYXRlEhQKDGFnZ3JlZ2F0ZV9pZBgBIAEoCRIWCg5hZ2dyZWdhdGVfdXNkYRgCIAEoDCJBChdGb2xkRnJvbnRpZXJGaW5nZXJwcmludBIRCglpbnRlbnRfaWQYASABKAkSEwoLZmluZ2VycHJpbnQYAiABKAki1gMKFEZvbGRGcm9udGllclNuYXBzaG90EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEgsKA3RpcBgCIAEoCRIPCgdnZW5lc2lzGAMgASgJEhUKDWhpc3RvcnlfZGVwdGgYBCABKAQSOgoKYWdncmVnYXRlcxgFIAMoCzImLm5vbW9zLmtlcm5lbC52MS5Gb2xkRnJvbnRpZXJBZ2dyZWdhdGUSOAoNaGxjX3dhdGVybWFyaxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllckhsY0gAiAEBEjMKCGxhc3RfaGxjGAcgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAGIAQESFAoHbGFzdF9pZBgIIAEoCUgCiAEBEhYKDnN0cmlrZV90YXJnZXRzGAkgAygJEkUKE2ludGVudF9maW5nZXJwcmludHMYCiADKAsyKC5ub21vcy5rZXJuZWwudjEuRm9sZEZyb250aWVyRmluZ2VycHJpbnQSFwoKc3RhdGVfcm9vdBgLIAEoCUgDiAEBQhAKDl9obGNfd2F0ZXJtYXJrQgsKCV9sYXN0X2hsY0IKCghfbGFzdF9pZEINCgtfc3RhdGVfcm9vdCKbAwoYU3RvcmVkQ2hlY2twb2ludE1hbmlmZXN0EhYKDmZvcm1hdF92ZXJzaW9uGAEgASgNEhMKBmN1cnNvchgCIAEoCUgAiAEBEhgKEGNoZWNrcG9pbnRfYnl0ZXMYAyABKAQSEAoIbGF3X2hhc2gYBCABKAkSOwoLY29tcHJlc3Npb24YBSABKA4yJi5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludENvbXByZXNzaW9uEhEKCXJhd19ieXRlcxgGIAEoBBIUCgxzdG9yZWRfYnl0ZXMYByABKAQSHQoVZnJvbnRpZXJfc3RvcmVkX2J5dGVzGAggASgEEhcKCnN0YXRlX3Jvb3QYCSABKAlIAYgBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAogASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SAKIAQFCCQoHX2N1cnNvckINCgtfc3RhdGVfcm9vdEIcChpfdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdCLBAwoXQ2hlY2twb2ludEltcG9ydFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBISCghmcm9udGllchgCIAEoDEgAEh4KFHN0YWdlZF9mcm9udGllcl9maWxlGAYgASgJSAASEwoGY3Vyc29yGAMgASgJSAGIAQESFwoKc3RhdGVfcm9vdBgEIAEoCUgCiAEBEg0KBXNwYW5zGAUgASgIEhEKBGhlYWQYByABKAlIA4gBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAggASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SASIAQESSgoTdmVyaWZpY2F0aW9uX3BvbGljeRgJIAEoDjItLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50VmVyaWZpY2F0aW9uUG9saWN5QhEKD2Zyb250aWVyX3NvdXJjZUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QgcKBV9oZWFkQhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IjEKFkNhcGFjaXR5UmVzZXJ2ZVJlcXVlc3QSFwoPYWdncmVnYXRlX2NvdW50GAEgASgEIpkCChJSZXN0b3JlTWFpblJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIMCgRoZWFkGAIgASgJEhMKC2RpYWdub3N0aWNzGAMgASgIEhgKEG9wZXJhdG9yX2N1c3RvZHkYBCABKAgSIAoTZXhwZWN0ZWRfbG9jYWxfaGVhZBgFIAEoCUgAiAEBEkAKE2N1c3RvZHlfY2VydGlmaWNhdGUYBiABKAsyIy5ub21vcy5rZXJuZWwudjEuQ3VzdG9keUNlcnRpZmljYXRlEhgKEHByb3ZpZGVyX2N1c3RvZHkYByABKAhCFgoUX2V4cGVjdGVkX2xvY2FsX2hlYWQibQoTQXVkaXRDdXN0b2R5UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhUKDWJ1ZGdldF9taWNyb3MYAiABKA0SDQoFc3RhcnQYAyABKAgilAEKFEF1ZGl0Q3VzdG9keVJlc3BvbnNlEg8KB3BlbmRpbmcYASABKAgSDAoEaGVhZBgCIAEoCRIOCgZ3YWxrZWQYAyABKAQSDQoFdG90YWwYBCABKAQSDwoHb3V0Y29tZRgFIAEoCRItCgd2ZXJkaWN0GAYgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0In4KC0xhd1Byb2R1Y3RzEhQKDGxhd19pZGVudGl0eRgBIAEoCRIWCg5mb3JtYXRfdmVyc2lvbhgCIAEoDRISCgpyZWFkX2xheWVyGAMgASgMEhUKDWNvbW1hbmRfbGF5ZXIYBCABKAwSFgoOc2VtYW50aWNfbGF5ZXIYBSABKAwiTAoYRXhwb3J0TGF3UHJvZHVjdHNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQiWQoZRXhwb3J0TGF3UHJvZHVjdHNSZXNwb25zZRIMCgRoZWFkGAEgASgJEi4KCHByb2R1Y3RzGAIgAygLMhwubm9tb3Mua2VybmVsLnYxLkxhd1Byb2R1Y3RzInwKGEltcG9ydExhd1Byb2R1Y3RzUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Ei4KCHByb2R1Y3RzGAIgAygLMhwubm9tb3Mua2VybmVsLnYxLkxhd1Byb2R1Y3RzIi0KGUltcG9ydExhd1Byb2R1Y3RzUmVzcG9uc2USEAoIaW1wb3J0ZWQYASADKAkibwoSQ3VzdG9keUNlcnRpZmljYXRlEhEKCXdvcmtzcGFjZRgBIAEoCRIMCgRoZWFkGAIgASgJEhEKCWtleV9lcG9jaBgDIAEoAxISCgpwdWJsaWNfa2V5GAQgASgMEhEKCXNpZ25hdHVyZRgFIAEoDCJkChNPcGVuR2l0U3RhdGVSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDAoEaGVhZBgCIAEoCRINCgVzcGFucxgDIAEoCCJrChpBdHRhY2hMb2NhbEZyb250aWVyUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EgwKBGhlYWQYAiABKAkSDQoFc3BhbnMYAyABKAgiUwoNQ3VzdG9keVJlbW90ZRIMCgRuYW1lGAEgASgJEgsKA3VybBgCIAEoCRIVCg1wZWVyX2lkZW50aXR5GAMgASgJEhAKCHByaW9yaXR5GAQgASgNIsYBChRDdXN0b2R5UGxhY2VtZW50UnVsZRISCgpwZWVyX2NsYXNzGAEgASgJEkAKEGtlcm5lbF9yZXNpZGVuY3kYAiABKA4yJi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVzaWRlbmN5SW50ZW50EkIKEWN1c3RvZHlfcmV0ZW50aW9uGAMgASgOMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXRlbnRpb25JbnRlbnQSFAoMcmVtb3RlX25hbWVzGAQgAygJIq4CChZDdXN0b2R5UGxhY2VtZW50UG9saWN5EhMKC2RlY2xhcmF0aW9uGAEgASgJEhYKDnBhY2thZ2Vfc2hhMjU2GAIgASgJEjQKBXJ1bGVzGAMgAygLMiUubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlQbGFjZW1lbnRSdWxlEhIKCmFkb3B0ZWRfYnkYBCABKAkSDgoGcmVhc29uGAUgASgJEh4KFmVmZmVjdGl2ZV90aW1lX3NlY29uZHMYBiABKBISLwoHcmVtb3RlcxgHIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVtb3RlEiIKFXJlY2lwaWVudF9tYWlsYm94X3VybBgIIAEoCUgAiAEBQhgKFl9yZWNpcGllbnRfbWFpbGJveF91cmwiWQobQ3VzdG9keVBsYWNlbWVudEV4cGVjdGF0aW9uEhAKBmFic2VudBgBIAEoCEgAEg0KA29pZBgCIAEoCUgAEg0KA2FueRgDIAEoCEgAQgoKCGZyb250aWVyIisKG1JlYWRDdXN0b2R5UGxhY2VtZW50UmVxdWVzdBIMCgRyZXBvGAEgASgJIjUKHkluc3BlY3RDdXN0b2R5UGxhY2VtZW50UmVxdWVzdBITCgtwb2xpY3lfdXNkYRgBIAEoDCKJAQoOUGxhY2VtZW50T2ZmZXISPgoIZXhwZWN0ZWQYASABKAsyLC5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVBsYWNlbWVudEV4cGVjdGF0aW9uEjcKBnBvbGljeRgCIAEoCzInLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UGxhY2VtZW50UG9saWN5ImkKG1Jlc29sdmVTdGF0ZVBvc2l0aW9uUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCW1haW5faGVhZBgCIAEoCRIVCg1oaW50ZWRfY29tbWl0GAMgASgJEhIKCnN0YXRlX3Jvb3QYBCABKAkihRIKD0N1c3RvZHlSZXNwb25zZRI4CgpwYWNrX2RlbHRhGAogASgLMiIubm9tb3Mua2VybmVsLnYxLlBhY2tEZWx0YVJlc3BvbnNlSAASOAoKYXBwbHlfcGFjaxgLIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5BcHBseVBhY2tSZXNwb25zZUgAEjgKCnJlcG9fc3RhdHMYDCABKAsyIi5ub21vcy5rZXJuZWwudjEuUmVwb1N0YXRzUmVzcG9uc2VIABI+Cg1pbnRlbnRzX2Fib3ZlGA0gASgLMiUubm9tb3Mua2VybmVsLnYxLkludGVudHNBYm92ZVJlc3BvbnNlSAASQAoOaW5zcGVjdF9jaGFuZ2UYDiABKAsyJi5ub21vcy5rZXJuZWwudjEuSW5zcGVjdENoYW5nZVJlc3BvbnNlSAASTwoWZW5jb2RlX3JlZnVzYWxfdmVyZGljdBgPIAEoCzItLm5vbW9zLmtlcm5lbC52MS5FbmNvZGVSZWZ1c2FsVmVyZGljdFJlc3BvbnNlSAASUQoXaW5zcGVjdF9yZWZ1c2FsX3ZlcmRpY3QYECABKAsyLi5ub21vcy5rZXJuZWwudjEuSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVzcG9uc2VIABI2CglyZWFkX2Jsb2IYESABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVhZEJsb2JSZXNwb25zZUgAEjoKC3Jlc29sdmVfcmVmGBIgASgLMiMubm9tb3Mua2VybmVsLnYxLlJlc29sdmVSZWZSZXNwb25zZUgAEjYKCWxpc3RfcmVmcxgTIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5MaXN0UmVmc1Jlc3BvbnNlSAASMgoJd3JpdGVfcmVmGBQgASgLMh0ubm9tb3Mua2VybmVsLnYxLkFja25vd2xlZGdlZEgAEjMKCmRlbGV0ZV9yZWYYFSABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkSAASRQoRd3JpdGVfbWV0YV9jb21taXQYFiABKAsyKC5ub21vcy5rZXJuZWwudjEuV3JpdGVNZXRhQ29tbWl0UmVzcG9uc2VIABJDChBsYXdfY2xvc3VyZV9pbmZvGBcgASgLMicubm9tb3Mua2VybmVsLnYxLkxhd0Nsb3N1cmVJbmZvUmVzcG9uc2VIABJGChFjaGVja3BvaW50X2V4cG9ydBgYIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50RXhwb3J0UmVzcG9uc2VIABJGChFjaGVja3BvaW50X2ltcG9ydBgZIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50SW1wb3J0UmVzcG9uc2VIABJEChBjYXBhY2l0eV9yZXNlcnZlGBogASgLMigubm9tb3Mua2VybmVsLnYxLkNhcGFjaXR5UmVzZXJ2ZVJlc3BvbnNlSAASPAoMcmVzdG9yZV9tYWluGBsgASgLMiQubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluUmVzcG9uc2VIABJPChZyZXNvbHZlX3N0YXRlX3Bvc2l0aW9uGBwgASgLMi0ubm9tb3Mua2VybmVsLnYxLlJlc29sdmVTdGF0ZVBvc2l0aW9uUmVzcG9uc2VIABJIChJyZXNpZGVudF9mb290cHJpbnQYHSABKAsyKi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnRSZXNwb25zZUgAEkIKD2hpc3Rvcnlfc3VtbWFyeRgeIAEoCzInLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5U3VtbWFyeVJlc3BvbnNlSAASWwoccHJvdmVfY29tcGFjdGlvbl9lcXVpdmFsZW5jZRgfIAEoCzIzLm5vbW9zLmtlcm5lbC52MS5Qcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlc3BvbnNlSAASPwoOb3Blbl9naXRfc3RhdGUYICABKAsyJS5ub21vcy5rZXJuZWwudjEuT3BlbkdpdFN0YXRlUmVzcG9uc2VIABJPChZyZWFkX2N1c3RvZHlfcGxhY2VtZW50GCEgASgLMi0ubm9tb3Mua2VybmVsLnYxLlJlYWRDdXN0b2R5UGxhY2VtZW50UmVzcG9uc2VIABJVChlpbnNwZWN0X2N1c3RvZHlfcGxhY2VtZW50GCMgASgLMjAubm9tb3Mua2VybmVsLnYxLkluc3BlY3RDdXN0b2R5UGxhY2VtZW50UmVzcG9uc2VIABJRChdyZWxlYXNlX3dvcmtzcGFjZV9zdGF0ZRgkIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5SZWxlYXNlV29ya3NwYWNlU3RhdGVSZXNwb25zZUgAEloKH3JlY29yZF93b3Jrc3BhY2VfZWZmZWN0X291dGNvbWUYJSABKAsyLy5ub21vcy5rZXJuZWwudjEuUmVjb3JkZWRXb3Jrc3BhY2VFZmZlY3RPdXRjb21lSAASTQoVYXR0YWNoX2xvY2FsX2Zyb250aWVyGCYgASgLMiwubm9tb3Mua2VybmVsLnYxLkF0dGFjaExvY2FsRnJvbnRpZXJSZXNwb25zZUgAEkQKEGFnZ3JlZ2F0ZV9jZW5zdXMYJyABKAsyKC5ub21vcy5rZXJuZWwudjEuQWdncmVnYXRlQ2Vuc3VzUmVzcG9uc2VIABI+Cg1hdWRpdF9jdXN0b2R5GCggASgLMiUubm9tb3Mua2VybmVsLnYxLkF1ZGl0Q3VzdG9keVJlc3BvbnNlSAASSQoTZXhwb3J0X2xhd19wcm9kdWN0cxgpIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5FeHBvcnRMYXdQcm9kdWN0c1Jlc3BvbnNlSAASSQoTaW1wb3J0X2xhd19wcm9kdWN0cxgqIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5JbXBvcnRMYXdQcm9kdWN0c1Jlc3BvbnNlSABCCwoJb3BlcmF0aW9uSgQIIhAjUhdhZG9wdF9jdXN0b2R5X3BsYWNlbWVudCIwChFQYWNrRGVsdGFSZXNwb25zZRIMCgRwYWNrGAEgASgMEg0KBWJ5dGVzGAIgASgEIoUBChFBcHBseVBhY2tSZXNwb25zZRIUCgxvYmplY3RfY291bnQYASABKAQSEQoJcGFja19oYXNoGAIgASgJEjsKB2Nsb3N1cmUYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuUGh5c2ljYWxDbG9zdXJlQ2hlY2tIAIgBAUIKCghfY2xvc3VyZSJtChRQaHlzaWNhbENsb3N1cmVDaGVjaxIWCg5yZXVzZWRfcmVjZWlwdBgBIAEoCBIUCgxjb21taXRzX3JlYWQYAiABKAQSEgoKdHJlZXNfcmVhZBgDIAEoBBITCgtsZWF2ZXNfcmVhZBgEIAEoBCK4AQoRUmVwb1N0YXRzUmVzcG9uc2USEwoLdG90YWxfYnl0ZXMYASABKAQSFAoMb2JqZWN0X2J5dGVzGAIgASgEEhUKDWxvb3NlX29iamVjdHMYAyABKAQSEwoLbG9vc2VfYnl0ZXMYBCABKAQSEgoKcGFja19maWxlcxgFIAEoBBISCgpwYWNrX2J5dGVzGAYgASgEEhMKC2luZGV4X2J5dGVzGAcgASgEEg8KB3NoYWxsb3cYCCADKAki4gEKDEludGVudFJlY29yZBILCgNvaWQYASABKAkSEQoJaW50ZW50X2lkGAIgASgJEg4KBmRvbWFpbhgDIAEoCRIRCglkaXJlY3RpdmUYBCABKAkSEwoLY2hhbmdlX3VzZGEYBSABKAwSLgoIc2VtYW50aWMYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSSgoVdHJhbnNwb3J0X3JlcXVpcmVtZW50GAcgASgOMisubm9tb3Mua2VybmVsLnYxLkludGVudFRyYW5zcG9ydFJlcXVpcmVtZW50IkYKFEludGVudHNBYm92ZVJlc3BvbnNlEi4KB2ludGVudHMYASADKAsyHS5ub21vcy5rZXJuZWwudjEuSW50ZW50UmVjb3JkInQKFkhpc3RvcnlTdW1tYXJ5UmVzcG9uc2USDAoEaGVhZBgBIAEoCRIOCgZvbGRlc3QYAiABKAkSFAoMY29tbWl0X2NvdW50GAMgASgEEhAKCGNvbXBsZXRlGAQgASgIEhQKDHJlYWNoZWRfYmFzZRgFIAEoCCJCChNOb21pbmFsQ2FsbElkZW50aXR5EhMKC2RvbWFpbl9wYXRoGAEgASgJEhYKDmRpcmVjdGl2ZV9wYXRoGAIgASgJIogBChhMaWZlY3ljbGVJbnN0YWxsSWRlbnRpdHkSHwoXdGFyZ2V0X2Nsb3N1cmVfaWRlbnRpdHkYASABKAkSFAoMaW5zdGFsbGVkX2J5GAIgASgJEjUKBXBoYXNlGAMgASgOMiYubm9tb3Mua2VybmVsLnYxLkxpZmVjeWNsZUluc3RhbGxQaGFzZSJaCh1Xb3Jrc3BhY2VSZXNpZGVuY3lSZXF1aXJlbWVudBIRCgl3b3Jrc3BhY2UYASABKAkSEwoLc291cmNlX2hlYWQYAiABKAkSEQoJZm9sZF9yb290GAMgASgJIrQCChVJbnNwZWN0Q2hhbmdlUmVzcG9uc2USLgoIc2VtYW50aWMYASABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEQoJaW50ZW50X2lkGAIgASgJEjIKBGNhbGwYAyABKAsyJC5ub21vcy5rZXJuZWwudjEuTm9taW5hbENhbGxJZGVudGl0eRIQCghhdXRob3JlZBgEIAEoCBJEChFsaWZlY3ljbGVfaW5zdGFsbBgFIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5MaWZlY3ljbGVJbnN0YWxsSWRlbnRpdHkSTAoUcmVxdWlyZWRfcmVzaWRlbmNpZXMYBiADKAsyLi5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZW1lbnQiTAocUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXNwb25zZRIaCg1yZXNvbHZlZF9oZWFkGAEgASgJSACIAQFCEAoOX3Jlc29sdmVkX2hlYWQiNAocRW5jb2RlUmVmdXNhbFZlcmRpY3RSZXNwb25zZRIUCgx2ZXJkaWN0X3VzZGEYASABKAwiUQodSW5zcGVjdFJlZnVzYWxWZXJkaWN0UmVzcG9uc2USMAoHdmVyZGljdBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5SZWZ1c2FsVmVyZGljdCJ1CiJQcm92ZUNvbXBhY3Rpb25FcXVpdmFsZW5jZVJlc3BvbnNlEjgKCGV2aWRlbmNlGAEgASgLMiYubm9tb3Mua2VybmVsLnYxLkNvbXBhY3Rpb25FcXVpdmFsZW5jZRIVCg1ldmlkZW5jZV91c2RhGAIgASgMIi8KEFJlYWRCbG9iUmVzcG9uc2USDQoFZm91bmQYASABKAgSDAoEYmxvYhgCIAEoDCIuChJSZXNvbHZlUmVmUmVzcG9uc2USEAoDb2lkGAEgASgJSACIAQFCBgoEX29pZCIrCglSZWZSZWNvcmQSEQoJcmVmZXJlbmNlGAEgASgJEgsKA29pZBgCIAEoCSI8ChBMaXN0UmVmc1Jlc3BvbnNlEigKBHJlZnMYASADKAsyGi5ub21vcy5rZXJuZWwudjEuUmVmUmVjb3JkIg4KDEFja25vd2xlZGdlZCImChdXcml0ZU1ldGFDb21taXRSZXNwb25zZRILCgNvaWQYASABKAkigwEKFkxhd0Nsb3N1cmVJbmZvUmVzcG9uc2USEAoIaWRlbnRpdHkYASABKAkSGQoRcm9vdF9sb2dpY2FsX3BhdGgYAiABKAkSEwoLYXNzZXRfY291bnQYAyABKAQSEgoKcHJpbV9jb3VudBgEIAEoBBITCgtkb21haW5fa2V5cxgFIAMoCSLfAwoYQ2hlY2twb2ludEV4cG9ydFJlc3BvbnNlEg0KBWVtcHR5GAEgASgIEhMKBmN1cnNvchgCIAEoCUgAiAEBEhAKCGZyb250aWVyGAMgASgMEhcKCnN0YXRlX3Jvb3QYBCABKAlIAYgBARISCgpzdGF0ZV90cmVlGAUgASgIEg4KBnBpbm5lZBgGIAEoCBIbChNyZWFkX2luZGV4X3NuYXBzaG90GAcgASgIEiMKG3JlYWRfaW5kZXhfc25hcHNob3RfcGVuZGluZxgIIAEoCBIkChdyZWFkX2luZGV4X3NxbGl0ZV9ieXRlcxgJIAEoBEgCiAEBEiUKGHJlYWRfaW5kZXhfY3VzdG9keV9ieXRlcxgKIAEoBEgDiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCyABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIBIgBAUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QhoKGF9yZWFkX2luZGV4X3NxbGl0ZV9ieXRlc0IbChlfcmVhZF9pbmRleF9jdXN0b2R5X2J5dGVzQhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IusCChhDaGVja3BvaW50SW1wb3J0UmVzcG9uc2USEAoIcmVzdG9yZWQYASABKAgSEwoGcmVhc29uGAIgASgJSACIAQESFwoPZnJvbnRpZXJfc2VlZGVkGAMgASgIEiUKHWZyb250aWVyX3ZlcmlmaWNhdGlvbl9wZW5kaW5nGAQgASgIEhcKD2FnZ3JlZ2F0ZV9jb3VudBgFIAEoBBIrCgVzcGFucxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBITCgZjdXJzb3IYByABKAlIAYgBARIRCglyZWFkX29ubHkYCCABKAgSFwoPbGF6eV9yZWFkX2luZGV4GAkgASgIEjcKCWFzc3VyYW5jZRgKIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50QXNzdXJhbmNlEhIKCnJlYWRfcmVhZHkYCyABKAhCCQoHX3JlYXNvbkIJCgdfY3Vyc29yIsABChRPcGVuR2l0U3RhdGVSZXNwb25zZRIOCgZvcGVuZWQYASABKAgSEwoGcmVhc29uGAIgASgJSACIAQESFwoPYWdncmVnYXRlX2NvdW50GAMgASgEEisKBXNwYW5zGAQgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhMKBmN1cnNvchgFIAEoCUgBiAEBEhIKCnJlYWRfcmVhZHkYBiABKAhCCQoHX3JlYXNvbkIJCgdfY3Vyc29yIukBChtBdHRhY2hMb2NhbEZyb250aWVyUmVzcG9uc2USEAoIYXR0YWNoZWQYASABKAgSEwoGcmVhc29uGAIgASgJSACIAQESDAoEaGVhZBgDIAEoCRISCgpzdGF0ZV9yb290GAQgASgJEhcKD2FnZ3JlZ2F0ZV9jb3VudBgFIAEoBBIrCgVzcGFucxgGIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBISCgpyZWFkX3JlYWR5GAcgASgIEhwKFGZvcmVpZ25fc291cmNlX3JlYWR5GAggASgIQgkKB19yZWFzb24iMQocUmVsZWFzZVdvcmtzcGFjZVN0YXRlUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkiMQodUmVsZWFzZVdvcmtzcGFjZVN0YXRlUmVzcG9uc2USEAoIcmVsZWFzZWQYASABKAgiiwEKHFJlYWRDdXN0b2R5UGxhY2VtZW50UmVzcG9uc2USFQoIZnJvbnRpZXIYASABKAlIAIgBARI8CgZwb2xpY3kYAiABKAsyJy5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVBsYWNlbWVudFBvbGljeUgBiAEBQgsKCV9mcm9udGllckIJCgdfcG9saWN5Il0KEFBsYWNlbWVudEFkb3B0ZWQSEAoIZnJvbnRpZXIYASABKAkSNwoGcG9saWN5GAIgASgLMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlQbGFjZW1lbnRQb2xpY3kiWgofSW5zcGVjdEN1c3RvZHlQbGFjZW1lbnRSZXNwb25zZRI3CgZwb2xpY3kYASABKAsyJy5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVBsYWNlbWVudFBvbGljeSJKChdDYXBhY2l0eVJlc2VydmVSZXNwb25zZRIXCg9hZ2dyZWdhdGVfY291bnQYASABKAQSFgoOcmVzZXJ2ZWRfYnl0ZXMYAiABKAQi+QIKEFJlc3RvcmVNYWluU3BhbnMSEAoIdG90YWxfdXMYASABKAQSGgoSbGl2ZV9yZWZfbG9va3VwX3VzGAIgASgEEhgKEHRhcmdldF9kZWNvZGVfdXMYAyABKAQSJAocY3VzdG9keV9jb21wbGV0ZW5lc3NfcmVhZF91cxgEIAEoBBIZChFxdWFyYW50aW5lX3JlZl91cxgFIAEoBBIlCh1jaGFpbl9zaWduYXR1cmVfbGF3X3JlcGxheV91cxgGIAEoBBIZChF2ZXJkaWN0X2RlY29kZV91cxgHIAEoBBIjChtwcm9tb3RlX2FuZF9jbGVhbnVwX3JlZnNfdXMYCCABKAQSGwoTZnJvbnRpZXJfcmVidWlsZF91cxgJIAEoBBIZChFmcm9udGllcl9zdG9yZV91cxgKIAEoBBI9Cgx2ZXJpZmljYXRpb24YCyABKAsyJy5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcyLvAQoTUmVzdG9yZU1haW5SZXNwb25zZRIMCgRoZWFkGAEgASgJEhAKCHZlcmlmaWVkGAIgASgIEgwKBHdhbGsYAyABKAkSMAoFc3BhbnMYBCABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5TcGFucxItCgd2ZXJkaWN0GAUgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EjcKCWFzc3VyYW5jZRgGIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50QXNzdXJhbmNlEhAKCGFjY2VwdGVkGAcgASgIIpsCCgpOb21vc1ZhbHVlEiUKBG51bGwYASABKAsyFS5ub21vcy5rZXJuZWwudjEuTnVsbEgAEhEKB2Jvb2xlYW4YAiABKAhIABIYCg5zaWduZWRfaW50ZWdlchgDIAEoEkgAEhoKEHVuc2lnbmVkX2ludGVnZXIYBCABKARIABIYCg5mbG9hdGluZ19wb2ludBgFIAEoAUgAEg4KBHRleHQYBiABKAlIABIPCgVieXRlcxgHIAEoDEgAEioKBGxpc3QYCCABKAsyGi5ub21vcy5rZXJuZWwudjEuTm9tb3NMaXN0SAASLgoGb2JqZWN0GAkgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0SABCBgoEa2luZCIGCgROdWxsIjgKCU5vbW9zTGlzdBIrCgZ2YWx1ZXMYASADKAsyGy5ub21vcy5rZXJuZWwudjEuTm9tb3NWYWx1ZSKTAQoLTm9tb3NTdHJ1Y3QSOAoGZmllbGRzGAEgAygLMigubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0LkZpZWxkc0VudHJ5GkoKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIqCgV2YWx1ZRgCIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlOgI4ASI6Cg9IaXN0b3J5UmVxdWlyZWQSEQoJd29ya3NwYWNlGAEgASgJEhQKDHVudGlsX2NvbW1pdBgCIAEoCSrqAQoSQmlydGhPdXRjb21lU3RhdHVzEiQKIEJJUlRIX09VVENPTUVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZQklSVEhfT1VUQ09NRV9TVEFUVVNfQk9SThABEiEKHUJJUlRIX09VVENPTUVfU1RBVFVTX0RFRkVSUkVEEAISHwobQklSVEhfT1VUQ09NRV9TVEFUVVNfRkFJTEVEEAMSIAocQklSVEhfT1VUQ09NRV9TVEFUVVNfUkVGVVNFRBAEEikKJUJJUlRIX09VVENPTUVfU1RBVFVTX1VOV0FSUkFOVEVEX0NFUlQQBSrMFAoRS2VybmVsUmVmdXNhbENvZGUSIwofS0VSTkVMX1JFRlVTQUxfQ09ERV9VTlNQRUNJRklFRBAAEiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfQkFEX1NJR05BVFVSRRABEiQKIEtFUk5FTF9SRUZVU0FMX0NPREVfVU5BVVRIT1JJWkVEEAISJwojS0VSTkVMX1JFRlVTQUxfQ09ERV9QT0xJQ1lfRElTQUJMRUQQAxIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX1VOQ0VSVElGSUVEX1BPTElDWRAEEiMKH0tFUk5FTF9SRUZVU0FMX0NPREVfUkVGRVJFTlRJQUwQBRIvCitLRVJORUxfUkVGVVNBTF9DT0RFX1BPSU5UX1NUQVRFX1VOQVZBSUxBQkxFEAYSJAogS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBfRVhDRUVERUQQBxItCilLRVJORUxfUkVGVVNBTF9DT0RFX0NBUF9DT1VOVF9VTkFWQUlMQUJMRRAIEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfRVZJREVOQ0VfVU5CQUNLRUQQCRImCiJLRVJORUxfUkVGVVNBTF9DT0RFX09SUEhBTl9SRUNFSVBUEAoSNgoyS0VSTkVMX1JFRlVTQUxfQ09ERV9SRUNFSVBUX09OX1RFUk1JTkFMX09CTElHQVRJT04QCxIiCh5LRVJORUxfUkVGVVNBTF9DT0RFX05PVF9NSU5URUQQDBIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX0RPTUFJTl9MSUZFQ1lDTEUQDRIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX1RZUEVfVEFHX01JU01BVENIEA4SLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9SRVRJUkVEX1JFQURfU1VSRkFDRRAPEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQ1JPU1NfV09SS1NQQUNFX0RFQ0xJTkVEEBASKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BR0dSRUdBVEVfSU5WQVJJQU5UEBESKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9XT1JLU1BBQ0VfSU5WQVJJQU5UEBISLgoqS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX0NPTkZMSUNUEBMSMgouS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9SRVFVSVJFRBAUEjQKMEtFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfVU5ERUNMQVJFRBAVEjEKLUtFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfSU5WQUxJRBAWEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfQ09ORkxJQ1RfU05BUFNIT1RfU1RBTEUQFxIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfVU5ERUNMQVJFRBAYEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9QUklWQVRFEBkSMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOREVDTEFSRUQQGhIzCi9LRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5UUlVTVEVEX0tFWRAbEjYKMktFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTlRSVVNURURfU09VUkNFEBwSLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX0ZPUkdFRBAdEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9TVEFMRRAeEi4KKktFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9PVkVSU0laRRAfEjcKM0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9ESVNIT05PUkVEX1NPVVJDRRAgEjUKMUtFUk5FTF9SRUZVU0FMX0NPREVfRVFVSVZPQ0FUSU9OX0VWSURFTkNFX0lOVkFMSUQQIRIzCi9LRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEFUSU9OX1JFQ0VJUFRfSU5WQUxJRBAiEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfS0VZX1JPU1RFUl9NSVNNQVRDSBAjEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfS0VZX0VQT0NIX05PVF9NT05PVE9OSUMQJBIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX1dSSVRFX0VQT0NIX1NUQUxFECUSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9FTlZFTE9QRV9TSURfTUlTTUFUQ0gQJhIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX1JFVk9LRURfTUVNQkVSX1JFU1VSUkVDVEVEECcSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9GT1JHRURfUFJJTkNJUEFMECgSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9PV05FRF9LRVlfQU5DSE9SECkSJgoiS0VSTkVMX1JFRlVTQUxfQ09ERV9PV05FRF9SRUNPVkVSWRAqEiwKKEtFUk5FTF9SRUZVU0FMX0NPREVfU1VSRkFDRURfQkFTSVNfQUhFQUQQKxIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX1NJR05FUl9FUE9DSF9PVVRfT0ZfV0lORE9XECwSJgoiS0VSTkVMX1JFRlVTQUxfQ09ERV9FVk9MVkVfUkVGVVNFRBAtEisKJ0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNUQVRJT05fSU5WQUxJRBAuEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfUEFSRU5UX0RJRF9OT1RfQVRURVNUEC8SKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9DRVJUX0NIQUlOX0JST0tFThAwEioKJktFUk5FTF9SRUZVU0FMX0NPREVfTk9UX1JPT1RFRF9BVF9ST09UEDESKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9ERUxFR0FUSU9OX0lOVkFMSUQQMhIlCiFLRVJORUxfUkVGVVNBTF9DT0RFX1BMQU5fUkVKRUNURUQQMxImCiJLRVJORUxfUkVGVVNBTF9DT0RFX0RPTUFJTl9SRUZVU0VEEDQSMQotS0VSTkVMX1JFRlVTQUxfQ09ERV9JTlZBUklBTlRfRVhFQ1VUSU9OX0ZBVUxUEDUSNQoxS0VSTkVMX1JFRlVTQUxfQ09ERV9DSEVDS1BPSU5UX1NJR05FUl9VTkFWQUlMQUJMRRA2EigKJEtFUk5FTF9SRUZVU0FMX0NPREVfT0ZGRVJfQkFTRV9TVEFMRRA3EiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfQklSVEhfUkVGVVNFRBA4KskBChNJbnRlcmZhY2VNZW1iZXJLaW5kEiUKIUlOVEVSRkFDRV9NRU1CRVJfS0lORF9VTlNQRUNJRklFRBAAEiAKHElOVEVSRkFDRV9NRU1CRVJfS0lORF9ET01BSU4QARIjCh9JTlRFUkZBQ0VfTUVNQkVSX0tJTkRfRElSRUNUSVZFEAISIwofSU5URVJGQUNFX01FTUJFUl9LSU5EX0FHR1JFR0FURRADEh8KG0lOVEVSRkFDRV9NRU1CRVJfS0lORF9GSUVMRBAEKogCChxJbnRlcmZhY2VDb21wYXRpYmlsaXR5U3RhdHVzEi4KKklOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19VTlNQRUNJRklFRBAAEigKJElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19FWEFDVBABEi0KKUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19DT01QQVRJQkxFEAISLgoqSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfU1RBVFVTX1VOQVZBSUxBQkxFEAMSLworSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfU1RBVFVTX0lOQ09NUEFUSUJMRRAEKsMDChxJbnRlcmZhY2VDb21wYXRpYmlsaXR5UmVhc29uEi4KKklOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9VTlNQRUNJRklFRBAAEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9ET01BSU5fTUlTU0lORxABEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9NRU1CRVJfTUlTU0lORxACEjAKLElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9GSUVMRF9NSVNTSU5HEAMSNQoxSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfUkVBU09OX1ZBTFVFX0tJTkRfQ0hBTkdFRBAEEjcKM0lOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9SRVFVSVJFRF9JTlBVVF9BRERFRBAFEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9NQVRSSVhfSU5WQUxJRBAGEjgKNElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9XSVJFX0NPTlRSQUNUX0NIQU5HRUQQByq3AgoQTWFpbnRlbmFuY2VQaGFzZRIhCh1NQUlOVEVOQU5DRV9QSEFTRV9VTlNQRUNJRklFRBAAEiQKIE1BSU5URU5BTkNFX1BIQVNFX1JFQURfRE9DVU1FTlRTEAESIgoeTUFJTlRFTkFOQ0VfUEhBU0VfU1FMSVRFX0lOREVYEAISJgoiTUFJTlRFTkFOQ0VfUEhBU0VfQ09NTUFORF9GUk9OVElFUhADEiMKH01BSU5URU5BTkNFX1BIQVNFX0NPTU1BTkRfUk9VVEUQBBIhCh1NQUlOVEVOQU5DRV9QSEFTRV9HSVRfQ1VTVE9EWRAFEiYKIk1BSU5URU5BTkNFX1BIQVNFX1JFQURfSU5ERVhfQ0FDSEUQBhIeChpNQUlOVEVOQU5DRV9QSEFTRV9DT01QTEVURRAHKooBCg9WZXJpZnlDaGFpbldhbGsSIQodVkVSSUZZX0NIQUlOX1dBTEtfVU5TUEVDSUZJRUQQABIaChZWRVJJRllfQ0hBSU5fV0FMS19GVUxMEAESHAoYVkVSSUZZX0NIQUlOX1dBTEtfU1VGRklYEAISGgoWVkVSSUZZX0NIQUlOX1dBTEtfTUVNTxADKnAKGEVmZmVjdEV4ZWN1dGlvblBsYWNlbWVudBIqCiZFRkZFQ1RfRVhFQ1VUSU9OX1BMQUNFTUVOVF9VTlNQRUNJRklFRBAAEigKJEVGRkVDVF9FWEVDVVRJT05fUExBQ0VNRU5UX0NVU1RPRElBThABKnYKGkVmZmVjdEV4ZWN1dGlvbkNhcmRpbmFsaXR5EiwKKEVGRkVDVF9FWEVDVVRJT05fQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIqCiZFRkZFQ1RfRVhFQ1VUSU9OX0NBUkRJTkFMSVRZX1NJTkdMRVRPThABKrcBChdNb2RlbExpZmVjeWNsZU9wZXJhdGlvbhIpCiVNT0RFTF9MSUZFQ1lDTEVfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASJQohTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9JTlNUQUxMEAESIwofTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9TVEFHRRACEiUKIU1PREVMX0xJRkVDWUNMRV9PUEVSQVRJT05fUFJPTU9URRADKtwBCh1DaGlsZFdvcmtzcGFjZUxpZmVjeWNsZVN0YXR1cxIwCixDSElMRF9XT1JLU1BBQ0VfTElGRUNZQ0xFX1NUQVRVU19VTlNQRUNJRklFRBAAEisKJ0NISUxEX1dPUktTUEFDRV9MSUZFQ1lDTEVfU1RBVFVTX0FDVElWRRABEiwKKENISUxEX1dPUktTUEFDRV9MSUZFQ1lDTEVfU1RBVFVTX1JFVElSRUQQAhIuCipDSElMRF9XT1JLU1BBQ0VfTElGRUNZQ0xFX1NUQVRVU19SRUNMQUlNRUQQAyr4AQoiRGVjbGFyZWRBdXRoZW50aWNhdGlvblByb3ZpZGVyS2luZBI1CjFERUNMQVJFRF9BVVRIRU5USUNBVElPTl9QUk9WSURFUl9LSU5EX1VOU1BFQ0lGSUVEEAASMgouREVDTEFSRURfQVVUSEVOVElDQVRJT05fUFJPVklERVJfS0lORF9TRUxFQ1RFRBABEjIKLkRFQ0xBUkVEX0FVVEhFTlRJQ0FUSU9OX1BST1ZJREVSX0tJTkRfRU5ST0xMRUQQAhIzCi9ERUNMQVJFRF9BVVRIRU5USUNBVElPTl9QUk9WSURFUl9LSU5EX1NPVkVSRUlHThADKooBChVEZWNsYXJlZExhd01lbWJlcktpbmQSKAokREVDTEFSRURfTEFXX01FTUJFUl9LSU5EX1VOU1BFQ0lGSUVEEAASJAogREVDTEFSRURfTEFXX01FTUJFUl9LSU5EX0NPTU1BTkQQARIhCh1ERUNMQVJFRF9MQVdfTUVNQkVSX0tJTkRfUkVBRBACKosGCh9Qcm92aWRlclRva2VuVmVyaWZpY2F0aW9uU3RhdHVzEjIKLlBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIsCihQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX1ZBTElEEAESNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19OT19NQVRDSElOR19LRVkQAhIuCipQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0VYUElSRUQQAxI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PVF9ZRVRfVkFMSUQQBBI2CjJQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0lTU1VFUl9NSVNNQVRDSBAFEjgKNFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfQVVESUVOQ0VfTUlTTUFUQ0gQBhI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0JBRF9TSUdOQVRVUkUQBxIwCixQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX01BTEZPUk1FRBAIEjwKOFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TVVBQT1JURURfQUxHT1JJVEhNEAkSLgoqUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19CQURfS0VZEAoSNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1NVQkpFQ1QQCxIyCi5QUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PX1ZFUklGSUVSEAwSNAowUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1RPS0VOEA0qyAEKEkRldmljZVNpZ25lclN0YXR1cxIkCiBERVZJQ0VfU0lHTkVSX1NUQVRVU19VTlNQRUNJRklFRBAAEh8KG0RFVklDRV9TSUdORVJfU1RBVFVTX0FDVElWRRABEh8KG0RFVklDRV9TSUdORVJfU1RBVFVTX0FCU0VOVBACEiAKHERFVklDRV9TSUdORVJfU1RBVFVTX1JFVk9LRUQQAxIoCiRERVZJQ0VfU0lHTkVSX1NUQVRVU19LRVlfVU5BVkFJTEFCTEUQBCrXAQoTQmlydGhFdmlkZW5jZVN0YXR1cxIlCiFCSVJUSF9FVklERU5DRV9TVEFUVVNfVU5TUEVDSUZJRUQQABImCiJCSVJUSF9FVklERU5DRV9TVEFUVVNfTk9UX1JFUVVJUkVEEAESHwobQklSVEhfRVZJREVOQ0VfU1RBVFVTX1JFQURZEAISLQopQklSVEhfRVZJREVOQ0VfU1RBVFVTX0RFTEVHQVRJT05fUkVRVUlSRUQQAxIhCh1CSVJUSF9FVklERU5DRV9TVEFUVVNfSU5WQUxJRBAEKrIBChFRdWVyeVJlc3VsdEZvcm1hdBIjCh9RVUVSWV9SRVNVTFRfRk9STUFUX1VOU1BFQ0lGSUVEEAASJAogUVVFUllfUkVTVUxUX0ZPUk1BVF9MRUdBQ1lfVkFMVUUQARIkCiBRVUVSWV9SRVNVTFRfRk9STUFUX05PTUlOQUxfVVNEQRACEiwKKFFVRVJZX1JFU1VMVF9GT1JNQVRfQVBQTElDQVRJT05fUFJPVE9CVUYQAyqVDAoOUXVlcnlPcGVyYXRpb24SHwobUVVFUllfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASHAoYUVVFUllfT1BFUkFUSU9OX0VYVFJFTVVNEAESIAocUVVFUllfT1BFUkFUSU9OX1JFQURfUE9TVFVSRRAEEh8KG1FVRVJZX09QRVJBVElPTl9DVVJSRU5UX0xBVxAFEiMKH1FVRVJZX09QRVJBVElPTl9JTlRFUkZBQ0VfT0ZGRVIQBhInCiNRVUVSWV9PUEVSQVRJT05fUkVMQVRJT05fR0FURV9PRkZFUhAHEh0KGVFVRVJZX09QRVJBVElPTl9TQ0VORV9MQVcQCBIhCh1RVUVSWV9PUEVSQVRJT05fSU5TVEFMTEVEX0xBVxAJEhwKGFFVRVJZX09QRVJBVElPTl9ERVNDUklCRRAKEiMKH1FVRVJZX09QRVJBVElPTl9LRVJORUxfUkVTT1VSQ0UQCxIjCh9RVUVSWV9PUEVSQVRJT05fREVWRUxPUEVSX1NQQU5TEAwSKQolUVVFUllfT1BFUkFUSU9OX0RFQ0xBUkVEX0NBUEFCSUxJVElFUxANEh0KGVFVRVJZX09QRVJBVElPTl9SRUFESU5FU1MQDhIkCiBRVUVSWV9PUEVSQVRJT05fUFJPSkVDVElPTl9TVEFUUxAPEiUKIVFVRVJZX09QRVJBVElPTl9NRU1PUllfRFJPUF9QUk9CRRAQEhgKFFFVRVJZX09QRVJBVElPTl9XQVJNEBESGwoXUVVFUllfT1BFUkFUSU9OX1JFRlJFU0gQEhIgChxRVUVSWV9PUEVSQVRJT05fVkVSSUZZX0NIQUlOEBMSIgoeUVVFUllfT1BFUkFUSU9OX0NPVU5URVJGQUNUVUFMEBQSGQoVUVVFUllfT1BFUkFUSU9OX1JPVVRFEBUSJQohUVVFUllfT1BFUkFUSU9OX0NSWVBUT19TRUFMX0ZJRUxEEBgSLAooUVVFUllfT1BFUkFUSU9OX0NSWVBUT19CTElORF9JTkRFWF9UT0tFThAZEioKJlFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfU0NPUEVfS0VZEBoSLworUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9ERVZJQ0VfUkVRVUVTVBAbEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9BUFBST1ZBTBAcEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9SRUNPVkVSWRAdEiAKHFFVRVJZX09QRVJBVElPTl9SRUNFSVBUX1BBVEgQIhIdChlRVUVSWV9PUEVSQVRJT05fQ0VSVF9TSUdOECMSJQohUVVFUllfT1BFUkFUSU9OX0JJUlRIX1RSVVNUX1NUQVRFECQSIQodUVVFUllfT1BFUkFUSU9OX0VSQV9DRVJUX1NJR04QJRIoCiRRVUVSWV9PUEVSQVRJT05fREVMRUdBVElPTl9DRVJUX1NJR04QJhIpCiVRVUVSWV9PUEVSQVRJT05fQ0FOT05JQ0FMSVpFX0ZST05USUVSECcSKwonUVVFUllfT1BFUkFUSU9OX0NBTk9OSUNBTElaRV9QUk9KRUNUSU9OECgiBAgCEAIiBAgDEAMiBAgWEBYiBAgXEBciBAgeEB4iBAgfEB8iBAggECAiBAghECEqIVFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUUyooUVVFUllfT1BFUkFUSU9OX1BFTkRJTkdfQ09ORkxJQ1RfU1VNTUFSWSoUUVVFUllfT1BFUkFUSU9OX01JTlQqHVFVRVJZX09QRVJBVElPTl9DUllQVE9fS0VZR0VOKh9RVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1dSQVBfS0VZKiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1VOV1JBUF9LRVkqHVFVRVJZX09QRVJBVElPTl9BVVRIT1JfS0VZR0VOKiBRVUVSWV9PUEVSQVRJT05fQVRURVNUQVRJT05fU0lHTiqpAQoZUmVhZFByb2plY3Rpb25TdG9yYWdlS2luZBIsCihSRUFEX1BST0pFQ1RJT05fU1RPUkFHRV9LSU5EX1VOU1BFQ0lGSUVEEAASKQolUkVBRF9QUk9KRUNUSU9OX1NUT1JBR0VfS0lORF9SRVNJREVOVBABEjMKL1JFQURfUFJPSkVDVElPTl9TVE9SQUdFX0tJTkRfRklMRV9CQUNLRURfU0NBTEFSEAIq0gIKFVJlc2lkZW50Q29tcG9uZW50S2luZBInCiNSRVNJREVOVF9DT01QT05FTlRfS0lORF9VTlNQRUNJRklFRBAAEiYKIlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0ZPTERfU1RBVEUQARItCilSRVNJREVOVF9DT01QT05FTlRfS0lORF9SRUFEX01PREVMX1NRTElURRACEi4KKlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1JFQURfTU9ERUxfSU5ERVhFUxADEi0KKVJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1NIQVJFRF9BVFRSSUJVVEVEEAQSLAooUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfV09SS1NQQUNFX0NBQ0hFUxAFEiwKKFJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0dJVF9PQkpFQ1RfQ0FDSEUQBipsChNLZXJuZWxMYXdDYXBhYmlsaXR5EiUKIUtFUk5FTF9MQVdfQ0FQQUJJTElUWV9VTlNQRUNJRklFRBAAEi4KKktFUk5FTF9MQVdfQ0FQQUJJTElUWV9TVEFHRV9aRVJPX0JPT1RTVFJBUBABKlkKFUNoZWNrcG9pbnRDb21wcmVzc2lvbhIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX05PTkUQABIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX0daSVAQASqRAQocQ2hlY2twb2ludFZlcmlmaWNhdGlvblBvbGljeRIzCi9DSEVDS1BPSU5UX1ZFUklGSUNBVElPTl9QT0xJQ1lfVkVSSUZZX0NBTk9OSUNBTBAAEjwKOENIRUNLUE9JTlRfVkVSSUZJQ0FUSU9OX1BPTElDWV9UUlVTVF9QUkVWSU9VU0xZX1ZFUklGSUVEEAEqgAEKE0NoZWNrcG9pbnRBc3N1cmFuY2USJAogQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVU5TUEVDSUZJRUQQABIgChxDSEVDS1BPSU5UX0FTU1VSQU5DRV9UUlVTVEVEEAESIQodQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVkVSSUZJRUQQAiqJAQoVS2VybmVsUmVzaWRlbmN5SW50ZW50EicKI0tFUk5FTF9SRVNJREVOQ1lfSU5URU5UX1VOU1BFQ0lGSUVEEAASIAocS0VSTkVMX1JFU0lERU5DWV9JTlRFTlRfV0FSTRABEiUKIUtFUk5FTF9SRVNJREVOQ1lfSU5URU5UX09OX0RFTUFORBACKq4BChZDdXN0b2R5UmV0ZW50aW9uSW50ZW50EigKJENVU1RPRFlfUkVURU5USU9OX0lOVEVOVF9VTlNQRUNJRklFRBAAEiMKH0NVU1RPRFlfUkVURU5USU9OX0lOVEVOVF9SRVRBSU4QARIiCh5DVVNUT0RZX1JFVEVOVElPTl9JTlRFTlRfQ0FDSEUQAhIhCh1DVVNUT0RZX1JFVEVOVElPTl9JTlRFTlRfTk9ORRADKqgBChpJbnRlbnRUcmFuc3BvcnRSZXF1aXJlbWVudBIsCihJTlRFTlRfVFJBTlNQT1JUX1JFUVVJUkVNRU5UX1VOU1BFQ0lGSUVEEAASLgoqSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9TRUFMRURfQ0hBTkdFEAESLAooSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9DT01NSVRfVFJFRRACKokBChVMaWZlY3ljbGVJbnN0YWxsUGhhc2USJwojTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfVU5TUEVDSUZJRUQQABIiCh5MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9BQ1RJVkUQARIjCh9MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9QRU5ESU5HEAIyWQoSTm9tb3NLZXJuZWxTZXJ2aWNlEkMKBENhbGwSHC5ub21vcy5rZXJuZWwudjEuQ2FsbFJlcXVlc3QaHS5ub21vcy5rZXJuZWwudjEuQ2FsbFJlc3BvbnNlYgZwcm90bzM", [file_google_protobuf_any]);
12
+ fileDesc("Chxub21vcy9rZXJuZWwvdjEva2VybmVsLnByb3RvEg9ub21vcy5rZXJuZWwudjEixgkKC0NhbGxSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoCRIsCgRvcGVuGAogASgLMhwubm9tb3Mua2VybmVsLnYxLk9wZW5SZXF1ZXN0SAASLgoFb2ZmZXIYCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXF1ZXN0SAASLgoFcXVlcnkYDCABKAsyHS5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXF1ZXN0SAASMAoGb3V0Ym94GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLk91dGJveFJlcXVlc3RIABIsCgRzeW5jGA4gASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZXF1ZXN0SAASMgoHY3VzdG9keRgPIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UmVxdWVzdEgAEkAKCWNvbmZpZ3VyZRgQIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxDb25maWd1cmF0aW9uUmVxdWVzdEgAEkgKE3NpZ25fcHJlcGFyZWRfb2ZmZXIYESABKAsyKS5ub21vcy5rZXJuZWwudjEuU2lnblByZXBhcmVkT2ZmZXJSZXF1ZXN0SAASSgoUcHJlcGFyZV9yZW1vdGVfb2ZmZXIYEiABKAsyKi5ub21vcy5rZXJuZWwudjEuUHJlcGFyZVJlbW90ZU9mZmVyUmVxdWVzdEgAEk4KFnNpZ25fb2ZmZXJfcHJlcGFyYXRpb24YEyABKAsyLC5ub21vcy5rZXJuZWwudjEuU2lnbk9mZmVyUHJlcGFyYXRpb25SZXF1ZXN0SAASTgoWc2lnbl9iaXJ0aF9jZXJ0aWZpY2F0ZRgUIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5TaWduQmlydGhDZXJ0aWZpY2F0ZVJlcXVlc3RIABJDChBzaWduaW5nX2lkZW50aXR5GBcgASgLMicubm9tb3Mua2VybmVsLnYxLlNpZ25pbmdJZGVudGl0eVJlcXVlc3RIABJWChpzaWduX2F1dGhvcml0eV9hdHRlc3RhdGlvbhgYIAEoCzIwLm5vbW9zLmtlcm5lbC52MS5TaWduQXV0aG9yaXR5QXR0ZXN0YXRpb25SZXF1ZXN0SAASPAoNbWludF90eXBlZF9pZBgZIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5NaW50VHlwZWRJZFJlcXVlc3RIABJJChNlbmNyeXB0aW9uX2lkZW50aXR5GBogASgLMioubm9tb3Mua2VybmVsLnYxLkVuY3J5cHRpb25JZGVudGl0eVJlcXVlc3RIABI+Cg53cmFwX3Njb3BlX2tleRgbIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5XcmFwU2NvcGVLZXlSZXF1ZXN0SAASQgoQdW53cmFwX3Njb3BlX2tleRgcIAEoCzImLm5vbW9zLmtlcm5lbC52MS5VbndyYXBTY29wZUtleVJlcXVlc3RIAEILCglvcGVyYXRpb25KBAgVEBZKBAgWEBdSFGluaXRpYWxpemVfd29ya3NwYWNlUhZhcHBseV93b3Jrc3BhY2VfZWZmZWN0IoMKCgxDYWxsUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEisKB2ZhaWx1cmUYCiABKAsyGC5ub21vcy5rZXJuZWwudjEuRmFpbHVyZUgAEi0KBG9wZW4YCyABKAsyHS5ub21vcy5rZXJuZWwudjEuT3BlblJlc3BvbnNlSAASLwoFb2ZmZXIYDCABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUgAEi8KBXF1ZXJ5GA0gASgLMh4ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5UmVzcG9uc2VIABIxCgZvdXRib3gYDiABKAsyHy5ub21vcy5rZXJuZWwudjEuT3V0Ym94UmVzcG9uc2VIABItCgRzeW5jGA8gASgLMh0ubm9tb3Mua2VybmVsLnYxLlN5bmNSZXNwb25zZUgAEjMKB2N1c3RvZHkYECABKAsyIC5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVJlc3BvbnNlSAASQQoJY29uZmlndXJlGBEgASgLMiwubm9tb3Mua2VybmVsLnYxLktlcm5lbENvbmZpZ3VyYXRpb25SZXNwb25zZUgAEkkKE3NpZ25fcHJlcGFyZWRfb2ZmZXIYEiABKAsyKi5ub21vcy5rZXJuZWwudjEuU2lnblByZXBhcmVkT2ZmZXJSZXNwb25zZUgAEksKFHByZXBhcmVfcmVtb3RlX29mZmVyGBMgASgLMisubm9tb3Mua2VybmVsLnYxLlByZXBhcmVSZW1vdGVPZmZlclJlc3BvbnNlSAASTwoWc2lnbl9vZmZlcl9wcmVwYXJhdGlvbhgUIAEoCzItLm5vbW9zLmtlcm5lbC52MS5TaWduT2ZmZXJQcmVwYXJhdGlvblJlc3BvbnNlSAASTwoWc2lnbl9iaXJ0aF9jZXJ0aWZpY2F0ZRgVIAEoCzItLm5vbW9zLmtlcm5lbC52MS5TaWduQmlydGhDZXJ0aWZpY2F0ZVJlc3BvbnNlSAASRAoQc2lnbmluZ19pZGVudGl0eRgYIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5TaWduaW5nSWRlbnRpdHlSZXNwb25zZUgAElcKGnNpZ25fYXV0aG9yaXR5X2F0dGVzdGF0aW9uGBkgASgLMjEubm9tb3Mua2VybmVsLnYxLlNpZ25BdXRob3JpdHlBdHRlc3RhdGlvblJlc3BvbnNlSAASPQoNbWludF90eXBlZF9pZBgaIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5NaW50VHlwZWRJZFJlc3BvbnNlSAASSgoTZW5jcnlwdGlvbl9pZGVudGl0eRgbIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5FbmNyeXB0aW9uSWRlbnRpdHlSZXNwb25zZUgAEj8KDndyYXBfc2NvcGVfa2V5GBwgASgLMiUubm9tb3Mua2VybmVsLnYxLldyYXBTY29wZUtleVJlc3BvbnNlSAASQwoQdW53cmFwX3Njb3BlX2tleRgdIAEoCzInLm5vbW9zLmtlcm5lbC52MS5VbndyYXBTY29wZUtleVJlc3BvbnNlSABCCQoHb3V0Y29tZUoECBYQF0oECBcQGFIUaW5pdGlhbGl6ZV93b3Jrc3BhY2VSFmFwcGx5X3dvcmtzcGFjZV9lZmZlY3QitwIKB0ZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSYQoiaWRlbnRpdHlfcHJvdmlkZXJfd2l0bmVzc19yZXF1aXJlZBgKIAEoCzIwLm5vbW9zLmtlcm5lbC52MS5JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVpcmVkSACIAQESPwoQaGlzdG9yeV9yZXF1aXJlZBgLIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5IaXN0b3J5UmVxdWlyZWRIAYgBAUIlCiNfaWRlbnRpdHlfcHJvdmlkZXJfd2l0bmVzc19yZXF1aXJlZEITChFfaGlzdG9yeV9yZXF1aXJlZCJRCh9JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVpcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSFAoMcmVxdWlyZWRfa2lkGAIgASgJIjwKDE9wZW5SZXNwb25zZRIsCgZyZXN1bHQYASABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QiugQKDU9mZmVyUmVzcG9uc2USMgoIYWRtaXR0ZWQYASABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJBZG1pdHRlZEgAEjAKB3JlZnVzZWQYAiABKAsyHS5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZWZ1c2VkSAASOwoNZGVhZF9sZXR0ZXJlZBgDIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5PZmZlckRlYWRMZXR0ZXJlZEgAEjgKC3F1YXJhbnRpbmVkGAQgASgLMiEubm9tb3Mua2VybmVsLnYxLk9mZmVyUXVhcmFudGluZWRIABJKChVibG9ja2VkX29uX2RlcGVuZGVuY3kYBSABKAsyKS5ub21vcy5rZXJuZWwudjEuT2ZmZXJCbG9ja2VkT25EZXBlbmRlbmN5SAASMgoIcHJlcGFyZWQYBiABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJQcmVwYXJlZEgAEkIKEHdvcmtzcGFjZV9lZmZlY3QYByABKAsyKC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlRWZmZWN0SWRlbnRpdHkSGwoOanVkZ2VkX2F0X2hlYWQYCCABKAlIAYgBARJNChJqdWRnbWVudF9zaWduYXR1cmUYCSABKAsyMS5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlRWZmZWN0SnVkZ21lbnRTaWduYXR1cmVCCQoHb3V0Y29tZUIRCg9fanVkZ2VkX2F0X2hlYWQifwogV29ya3NwYWNlRWZmZWN0SnVkZ21lbnRTaWduYXR1cmUSDwoHdmVyc2lvbhgBIAEoDRISCgpwdWJsaWNfa2V5GAIgASgMEhEKCWtleV9lcG9jaBgDIAEoEhIRCglzaWduYXR1cmUYBCABKAwSEAoIanVkZ21lbnQYBSABKAwiqAEKF1dvcmtzcGFjZUVmZmVjdElkZW50aXR5EhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSIAoYc291cmNlX3dvcmtzcGFjZV9nZW5lc2lzGAIgASgJEhgKEHRhcmdldF93b3Jrc3BhY2UYAyABKAkSIAoYdGFyZ2V0X3dvcmtzcGFjZV9nZW5lc2lzGAQgASgJEhUKDWVmZmVjdF9kaWdlc3QYBSABKAkiVwocV29ya3NwYWNlRWZmZWN0U3RhdHVzUmVxdWVzdBIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYASABKAkSFQoNZWZmZWN0X2RpZ2VzdBgCIAEoCSJRCh1Xb3Jrc3BhY2VFZmZlY3RTdGF0dXNSZXNwb25zZRIwCghqdWRnbWVudBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5PZmZlclJlc3BvbnNlIoYCCiNSZWNvcmRXb3Jrc3BhY2VFZmZlY3RPdXRjb21lUmVxdWVzdBIwCgZzb3VyY2UYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhkKEXNvdXJjZV9vZmZlcl9wYXRoGAIgASgJEhUKC21haWxib3hfdXJsGAMgASgJSAASPQoRcmVjaXBpZW50X2N1c3RvZHkYBSABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0SAASMAoIanVkZ21lbnQYBCABKAsyHi5ub21vcy5rZXJuZWwudjEuT2ZmZXJSZXNwb25zZUIKCghldmlkZW5jZSJaCh5SZWNvcmRlZFdvcmtzcGFjZUVmZmVjdE91dGNvbWUSEQoJcmVmZXJlbmNlGAEgASgJEgsKA29pZBgCIAEoCRIYChB0ZXJtaW5hbF9yZWZ1c2FsGAMgASgIIq4FCg1PZmZlckFkbWl0dGVkEgwKBGhlYWQYASABKAkSEQoJaW50ZW50X2lkGAIgASgJEhcKCmludGVudF9vdXQYAyABKAlIAIgBARIzCgdjcmVhdGVkGAQgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEjQKCGFmZmVjdGVkGAUgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEiwKBGJvcm4YBiADKAsyHi5ub21vcy5rZXJuZWwudjEuQm9ybldvcmtzcGFjZRI1Cg5iaXJ0aF9vdXRjb21lcxgHIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5CaXJ0aE91dGNvbWUSNwoMa2VybmVsX3NwYW5zGAggASgLMhwubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5zSAGIAQESDwoHZHJ5X3J1bhgJIAEoCBIfChJpbnN0YWxsZWRfbGF3X2hhc2gYCiABKAlIAogBARI5CglwbGFjZW1lbnQYCyABKAsyIS5ub21vcy5rZXJuZWwudjEuUGxhY2VtZW50QWRvcHRlZEgDiAEBEhcKD2FscmVhZHlfYXBwbGllZBgMIAEoCBI8CgxzdGF0ZV9jaGFuZ2UYDSABKAsyIS5ub21vcy5rZXJuZWwudjEuT2ZmZXJTdGF0ZUNoYW5nZUgEiAEBEkAKFGxhd192ZXJzaW9uX3dhcm5pbmdzGA4gAygLMiIubm9tb3Mua2VybmVsLnYxLkxhd1ZlcnNpb25XYXJuaW5nQg0KC19pbnRlbnRfb3V0Qg8KDV9rZXJuZWxfc3BhbnNCFQoTX2luc3RhbGxlZF9sYXdfaGFzaEIMCgpfcGxhY2VtZW50Qg8KDV9zdGF0ZV9jaGFuZ2UiIwoLTGF3SWRlbnRpdHkSFAoMcGFja2FnZV9uYW1lGAEgASgJIiQKCkxhd1ZlcnNpb24SFgoOY2xvc3VyZV9zaGEyNTYYASABKAkiIQoPTGF3VmVyc2lvbkNsYWltEg4KBnNlbXZlchgBIAEoCSLgAgoRTGF3VmVyc2lvbldhcm5pbmcSKQoDbGF3GAEgASgLMhwubm9tb3Mua2VybmVsLnYxLkxhd0lkZW50aXR5Ei8KBW9yZGVyGAIgASgOMiAubm9tb3Mua2VybmVsLnYxLkxhd1ZlcnNpb25PcmRlchI5Cg9pbnN0YWxsZWRfY2xhaW0YAyABKAsyIC5ub21vcy5rZXJuZWwudjEuTGF3VmVyc2lvbkNsYWltEjYKEWluc3RhbGxlZF92ZXJzaW9uGAQgASgLMhsubm9tb3Mua2VybmVsLnYxLkxhd1ZlcnNpb24SNgoMc2VydmVkX2NsYWltGAUgASgLMiAubm9tb3Mua2VybmVsLnYxLkxhd1ZlcnNpb25DbGFpbRIzCg5zZXJ2ZWRfdmVyc2lvbhgGIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5MYXdWZXJzaW9uEg8KB21lc3NhZ2UYByABKAkiUgoQT2ZmZXJTdGF0ZUNoYW5nZRITCgtwYXJlbnRfaGVhZBgBIAEoCRIXCg9hZ2dyZWdhdGVfdHlwZXMYAiADKAkSEAoIYXJjaGl2ZXMYAyABKAgiLQoRT2ZmZXJBZ2dyZWdhdGVSZWYSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIwCg1Cb3JuV29ya3NwYWNlEhEKCXdvcmtzcGFjZRgBIAEoCRIMCgRoZWFkGAIgASgJIssDCgxCaXJ0aE91dGNvbWUSFgoJd29ya3NwYWNlGAEgASgJSACIAQESMwoGc3RhdHVzGAIgASgOMiMubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZVN0YXR1cxITCgZyZWFzb24YAyABKAlIAYgBARIRCgRjb2RlGAQgASgJSAKIAQESEAoIcmVwbGF5ZWQYBSABKAgSFQoIbGF3X2hhc2gYBiABKAlIA4gBARIdChBwYXJlbnRfd29ya3NwYWNlGAcgASgJSASIAQESHAoPY2hpbGRfd29ya3NwYWNlGAggASgJSAWIAQESJwoaY2VydGlmaWNhdGVfcmVmdXNhbF9yZWFzb24YCSABKAlIBogBARI0CgdyZWZ1c2FsGAogASgLMh4ubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWxIB4gBAUIMCgpfd29ya3NwYWNlQgkKB19yZWFzb25CBwoFX2NvZGVCCwoJX2xhd19oYXNoQhMKEV9wYXJlbnRfd29ya3NwYWNlQhIKEF9jaGlsZF93b3Jrc3BhY2VCHQobX2NlcnRpZmljYXRlX3JlZnVzYWxfcmVhc29uQgoKCF9yZWZ1c2FsIi8KEEtlcm5lbFNwYW5NZXRyaWMSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoBCKjAQoKS2VybmVsU3BhbhINCgVsYWJlbBgBIAEoCRIQCgh0b3RhbF91cxgCIAEoBBIPCgdyZWNvcmRzGAMgASgEEjEKBnBoYXNlcxgEIAMoCzIhLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuTWV0cmljEjAKBW5vdGVzGAUgAygLMiEubm9tb3Mua2VybmVsLnYxLktlcm5lbFNwYW5NZXRyaWMicQoLS2VybmVsU3BhbnMSLwoKb3BlcmF0aW9ucxgBIAMoCzIbLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuEjEKBmVuZ2luZRgCIAMoCzIhLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxTcGFuTWV0cmljImEKDURvbWFpblJlZnVzYWwSEgoKbGF3X3NoYTI1NhgBIAEoDBIRCglpbnZhcmlhbnQYAiABKAkSFQoNdHlwZV9pZGVudGl0eRgDIAEoCRISCgp2YWx1ZV91c2RhGAQgASgMIs4BCgxPZmZlclJlZnVzZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIvCgdyZWZ1c2FsGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWwSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSNgoOZG9tYWluX3JlZnVzYWwYBCABKAsyHi5ub21vcy5rZXJuZWwudjEuRG9tYWluUmVmdXNhbEILCglfb2ZmZXJfaWQiegoRT2ZmZXJEZWFkTGV0dGVyZWQSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZyZWFzb24YAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIq4BChBPZmZlclF1YXJhbnRpbmVkEhUKCG9mZmVyX2lkGAEgASgJSACIAQESGQoRYXV0aG9yZWRfbGF3X2hhc2gYAiABKAkSGAoQY3VycmVudF9sYXdfaGFzaBgDIAEoCRIOCgZyZWFzb24YBCABKAkSMQoLZGlhZ25vc3RpY3MYBSABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3RCCwoJX29mZmVyX2lkIsABChhPZmZlckJsb2NrZWRPbkRlcGVuZGVuY3kSFQoIb2ZmZXJfaWQYASABKAlIAIgBARIOCgZkZXRhaWwYAiABKAkSMQoLZGlhZ25vc3RpY3MYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSPQoSYXdhaXRzX21haW50ZW5hbmNlGAQgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlYWRJbmRleFBlbmRpbmdCCwoJX29mZmVyX2lkIr8BCg1PZmZlclByZXBhcmVkEhwKFGF1dGhvcmVkX2NoYW5nZV91c2RhGAEgASgMEhkKEXdvcmtzcGFjZV9iaW5kaW5nGAIgASgJEhgKEHByZXBhcmVkX2F0X2hlYWQYAyABKAkSIQoZYXV0aG9yX3NpZ25hdHVyZV9yZXF1aXJlZBgEIAEoCBI4CghkZXRhY2hlZBgFIAEoCzImLm5vbW9zLmtlcm5lbC52MS5EZXRhY2hlZFNpZ25pbmdJbnB1dHMiYwoVRGV0YWNoZWRTaWduaW5nSW5wdXRzEhIKCnB1YmxpY19rZXkYASABKAwSEQoJaW50ZW50X2lkGAIgASgJEg4KBmF1dGhvchgDIAEoDBITCgtvZmZlcl90b2tlbhgEIAEoCSKVAQoURGV0YWNoZWRTaWduZWRDaGFuZ2USHAoUYXV0aG9yZWRfY2hhbmdlX3VzZGEYASABKAwSEgoKcHVibGljX2tleRgCIAEoDBIYChBhdXRob3Jfc2lnbmF0dXJlGAMgASgMEhIKCm9mZmVyX2Jhc2UYBCABKAkSHQoVb2ZmZXJfdG9rZW5fc2lnbmF0dXJlGAUgASgMImoKGFNpZ25QcmVwYXJlZE9mZmVyUmVxdWVzdBIcChRhdXRob3JlZF9jaGFuZ2VfdXNkYRgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAMgASgMIjcKGVNpZ25QcmVwYXJlZE9mZmVyUmVzcG9uc2USGgoSc2lnbmVkX2NoYW5nZV91c2RhGAEgASgMIq0BChlQcmVwYXJlUmVtb3RlT2ZmZXJSZXF1ZXN0EhUKDW9mZmVyX3JlcXVlc3QYASABKAwSGQoRd29ya3NwYWNlX2JpbmRpbmcYAiABKAkSGAoQcHJlcGFyZWRfYXRfaGVhZBgDIAEoCRISCgpwdWJsaWNfa2V5GAQgASgMEhEKCXNpZ25hdHVyZRgFIAEoDBIdChVyZXF1aXJlZF9jdXN0b2R5X2hlYWQYBiABKAkiUAoZT2ZmZXJQcmVwYXJhdGlvbkNoYWxsZW5nZRIZChF3b3Jrc3BhY2VfYmluZGluZxgBIAEoCRIYChBwcmVwYXJlZF9hdF9oZWFkGAIgASgJIpkBChpQcmVwYXJlUmVtb3RlT2ZmZXJSZXNwb25zZRI/CgljaGFsbGVuZ2UYASABKAsyKi5ub21vcy5rZXJuZWwudjEuT2ZmZXJQcmVwYXJhdGlvbkNoYWxsZW5nZUgAEi8KBW9mZmVyGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2VIAEIJCgdvdXRjb21lIoABChtTaWduT2ZmZXJQcmVwYXJhdGlvblJlcXVlc3QSFQoNb2ZmZXJfcmVxdWVzdBgBIAEoDBIZChF3b3Jrc3BhY2VfYmluZGluZxgCIAEoCRIYChBwcmVwYXJlZF9hdF9oZWFkGAMgASgJEhUKDWF1dGhvcl9zZWNyZXQYBCABKAwiRQocU2lnbk9mZmVyUHJlcGFyYXRpb25SZXNwb25zZRISCgpwdWJsaWNfa2V5GAEgASgMEhEKCXNpZ25hdHVyZRgCIAEoDCKkAQoWU2lnbmluZ0lkZW50aXR5UmVxdWVzdBI7CghnZW5lcmF0ZRgBIAEoCzInLm5vbW9zLmtlcm5lbC52MS5HZW5lcmF0ZVNpZ25pbmdLZXlQYWlySAASQAoNZGVyaXZlX3B1YmxpYxgCIAEoCzInLm5vbW9zLmtlcm5lbC52MS5EZXJpdmVTaWduaW5nUHVibGljS2V5SABCCwoJb3BlcmF0aW9uIhgKFkdlbmVyYXRlU2lnbmluZ0tleVBhaXIiKAoWRGVyaXZlU2lnbmluZ1B1YmxpY0tleRIOCgZzZWNyZXQYASABKAwilgEKF1NpZ25pbmdJZGVudGl0eVJlc3BvbnNlEjQKCWdlbmVyYXRlZBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5TaWduaW5nS2V5UGFpckgAEjsKDmRlcml2ZWRfcHVibGljGAIgASgLMiEubm9tb3Mua2VybmVsLnYxLlNpZ25pbmdQdWJsaWNLZXlIAEIICgZyZXN1bHQiNAoOU2lnbmluZ0tleVBhaXISDgoGc2VjcmV0GAEgASgMEhIKCnB1YmxpY19rZXkYAiABKAwiJgoQU2lnbmluZ1B1YmxpY0tleRISCgpwdWJsaWNfa2V5GAEgASgMIpwBCh9TaWduQXV0aG9yaXR5QXR0ZXN0YXRpb25SZXF1ZXN0EhUKDXNpZ25lcl9zZWNyZXQYASABKAwSGgoSYXNzZXJ0ZXJfd29ya3NwYWNlGAIgASgJEg4KBm9iamVjdBgDIAEoCRIQCghyZWxhdGlvbhgEIAEoCRIPCgdzdWJqZWN0GAUgASgJEhMKC2F0dGVzdGVkX2F0GAYgASgJIkkKIFNpZ25BdXRob3JpdHlBdHRlc3RhdGlvblJlc3BvbnNlEhEKCXNpZ25hdHVyZRgBIAEoDBISCgpwdWJsaWNfa2V5GAIgASgMIkQKEk1pbnRUeXBlZElkUmVxdWVzdBIQCgh0eXBlX3RhZxgBIAEoCRIcChRjYXB0dXJlZF91bml4X21pbGxpcxgCIAEoBCIhChNNaW50VHlwZWRJZFJlc3BvbnNlEgoKAmlkGAEgASgJIhsKGUVuY3J5cHRpb25JZGVudGl0eVJlcXVlc3QiRAoaRW5jcnlwdGlvbklkZW50aXR5UmVzcG9uc2USEgoKc2VjcmV0X2tleRgBIAEoDBISCgpwdWJsaWNfa2V5GAIgASgMIkYKE1dyYXBTY29wZUtleVJlcXVlc3QSHAoUcmVjaXBpZW50X3B1YmxpY19rZXkYASABKAwSEQoJc2NvcGVfa2V5GAIgASgMIkgKFFdyYXBTY29wZUtleVJlc3BvbnNlEhwKFGVwaGVtZXJhbF9wdWJsaWNfa2V5GAEgASgMEhIKCmNpcGhlcnRleHQYAiABKAwiZwoVVW53cmFwU2NvcGVLZXlSZXF1ZXN0EhwKFHJlY2lwaWVudF9zZWNyZXRfa2V5GAEgASgMEhwKFGVwaGVtZXJhbF9wdWJsaWNfa2V5GAIgASgMEhIKCmNpcGhlcnRleHQYAyABKAwiKwoWVW53cmFwU2NvcGVLZXlSZXNwb25zZRIRCglzY29wZV9rZXkYASABKAwikwEKDUtlcm5lbFJlZnVzYWwSMAoEY29kZRgBIAEoDjIiLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsQ29kZRIPCgdtZXNzYWdlGAIgASgJEi0KB2RldGFpbHMYAyABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEAoIdGVybWluYWwYBCABKAgipA8KDVF1ZXJ5UmVzcG9uc2USFQoLcmVzdWx0X3VzZGEYAiABKAxIABIsCgV2YWx1ZRgBIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlSAASSgoTYXV0aG9yaXphdGlvbl9jaGVjaxgKIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZUgAEkwKFGF1dGhvcml6YXRpb25fZXhwYW5kGAsgASgLMiwubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBhbmRSZXNwb25zZUgAEj4KDW9zZ2lfcmVzb3VyY2UYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuT3NnaVJlc291cmNlUmVzcG9uc2VIABJKChNmcm9udGllcl90cmFuc2l0aW9uGA0gASgLMisubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlSAASSwoUb3duZWRfZGV2aWNlX3JlcXVlc3QYDiABKAsyKy5ub21vcy5rZXJuZWwudjEuT3duZWREZXZpY2VSZXF1ZXN0UmVzcG9uc2VIABJPChZvd25lZF9wcmVwYXJlX2FwcHJvdmFsGA8gASgLMi0ubm9tb3Mua2VybmVsLnYxLk93bmVkUHJlcGFyZUFwcHJvdmFsUmVzcG9uc2VIABIXCg1pbnRlZ2VyX3ZhbHVlGBAgASgSSAASUAoWYXV0aGVudGljYXRpb25fcG9zdHVyZRgRIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRoZW50aWNhdGlvblBvc3R1cmVSZXNwb25zZUgAEkgKEGNoaWxkX3dvcmtzcGFjZXMYEiABKAsyLC5ub21vcy5rZXJuZWwudjEuQ2hpbGRXb3Jrc3BhY2VRdWVyeVJlc3BvbnNlSAASWQoWYXV0aG9yaW5nX3JlcXVpcmVtZW50cxgTIAEoCzI3Lm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVBdXRob3JpbmdSZXF1aXJlbWVudHNSZXNwb25zZUgAEj4KDXdhcm1fcHJvZ3Jlc3MYFSABKAsyJS5ub21vcy5rZXJuZWwudjEuV2FybVByb2dyZXNzUmVzcG9uc2VIABJVChlpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzGBYgASgLMjAubm9tb3Mua2VybmVsLnYxLklkZW50aXR5UHJvdmlkZXJXaXRuZXNzUmVzcG9uc2VIABJSChdpbnRlcmZhY2VfY29tcGF0aWJpbGl0eRgXIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5JbnRlcmZhY2VDb21wYXRpYmlsaXR5UmVzcG9uc2VIABIyChJhcHBsaWNhdGlvbl9yZXN1bHQYGCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SAASSgoTbWFpbnRlbmFuY2VfcXVhbnR1bRgZIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5NYWludGVuYW5jZVF1YW50dW1SZXNwb25zZUgAEj8KEnJlYWRfaW5kZXhfcGVuZGluZxgaIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZWFkSW5kZXhQZW5kaW5nSAASRwoSZnVsbF9oaXN0b3J5X2F1ZGl0GBsgASgLMikubm9tb3Mua2VybmVsLnYxLkZ1bGxIaXN0b3J5QXVkaXRSZXNwb25zZUgAElMKGHdvcmtzcGFjZV9lZmZlY3RfcmVjZWlwdBgcIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VFZmZlY3RSZWNlaXB0UmVzcG9uc2VIABJLChRvcGVuX2FwaV9kZXNjcmlwdGlvbhgdIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5PcGVuQXBpRGVzY3JpcHRpb25SZXNwb25zZUgAElcKGmluc3RhbGxlZF9sYXdfZGVjbGFyYXRpb25zGB4gASgLMjEubm9tb3Mua2VybmVsLnYxLkluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1Jlc3BvbnNlSAASSwoYYXBwbGljYXRpb25fcmVzdWx0X2RlbHRhGB8gASgLMicubm9tb3Mua2VybmVsLnYxLkFwcGxpY2F0aW9uUmVzdWx0RGVsdGFIABJJChh2ZXJpZnlfY2hhaW5fZGlhZ25vc3RpY3MYFCABKAsyJy5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcxIcCg9yZXN1bHRfZnJvbnRpZXIYICABKAlIAYgBARJCChJmdWxsX3Jlc3VsdF9yZWFzb24YISABKA4yIS5ub21vcy5rZXJuZWwudjEuRnVsbFJlc3VsdFJlYXNvbkgCiAEBEkMKE3Jlc3VsdF9kZXBlbmRlbmNpZXMYIiABKAsyIS5ub21vcy5rZXJuZWwudjEuUmVhZERlcGVuZGVuY2llc0gDiAEBQggKBnJlc3VsdEISChBfcmVzdWx0X2Zyb250aWVyQhUKE19mdWxsX3Jlc3VsdF9yZWFzb25CFgoUX3Jlc3VsdF9kZXBlbmRlbmNpZXMiVAoQUmVhZERlcGVuZGVuY2llcxIXCg9hZ2dyZWdhdGVfdHlwZXMYASADKAkSFgoOcmVhZHNfYXJjaGl2ZXMYAiABKAgSDwoHcmVhZF9hdBgDIAEoCSKCAQoWQXBwbGljYXRpb25SZXN1bHREZWx0YRIVCg1iYXNlX2Zyb250aWVyGAEgASgJEhAKCGZyb250aWVyGAIgASgJEioKDGNoYW5nZWRfcm93cxgDIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkSEwoLcmVtb3ZlZF9pZHMYBCADKAkiMwoaT3BlbkFwaURlc2NyaXB0aW9uUmVzcG9uc2USFQoNZG9jdW1lbnRfanNvbhgBIAEoCSJxChtJbnRlcmZhY2VDb21wYXRpYmlsaXR5UXVlcnkSHwoXYXBwbGljYXRpb25fbWF0cml4X3VzZGEYASABKAwSMQoPY2FuZGlkYXRlX3VuaXRzGAIgAygLMhgubm9tb3Mua2VybmVsLnYxLkxhd1VuaXQisAIKFkludGVyZmFjZU1lbWJlclZlcmRpY3QSDgoGZG9tYWluGAEgASgJEjIKBGtpbmQYAiABKA4yJC5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlTWVtYmVyS2luZBIOCgZtZW1iZXIYAyABKAkSEgoFZmllbGQYBCABKAlIAIgBARI9CgZzdGF0dXMYBSABKA4yLS5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlQ29tcGF0aWJpbGl0eVN0YXR1cxI9CgZyZWFzb24YBiABKA4yLS5ub21vcy5rZXJuZWwudjEuSW50ZXJmYWNlQ29tcGF0aWJpbGl0eVJlYXNvbhIXCgpkaWFnbm9zdGljGAcgASgJSAGIAQFCCAoGX2ZpZWxkQg0KC19kaWFnbm9zdGljIqIBCh5JbnRlcmZhY2VDb21wYXRpYmlsaXR5UmVzcG9uc2USEgoKY29tcGF0aWJsZRgBIAEoCBI4CgdtZW1iZXJzGAIgAygLMicubm9tb3Mua2VybmVsLnYxLkludGVyZmFjZU1lbWJlclZlcmRpY3QSGgoSd29ya3NwYWNlX2Zyb250aWVyGAMgASgJEhYKDmNhbmRpZGF0ZV9oYXNoGAQgASgJIv8BChRXYXJtUHJvZ3Jlc3NSZXNwb25zZRIbChNtYWludGVuYW5jZV9wZW5kaW5nGAEgASgIEiQKF3ByZXBhcmVkX2NvbW1hbmRfZG9tYWluGAIgASgJSACIAQESJQoYcHJlcGFyZWRfY29tbWFuZF9wYWNrYWdlGAMgASgJSAGIAQESJgoZcHJlcGFyZWRfY29tbWFuZF9zZWxlY3RvchgEIAEoCUgCiAEBQhoKGF9wcmVwYXJlZF9jb21tYW5kX2RvbWFpbkIbChlfcHJlcGFyZWRfY29tbWFuZF9wYWNrYWdlQhwKGl9wcmVwYXJlZF9jb21tYW5kX3NlbGVjdG9yIlEKEFJlYWRJbmRleFBlbmRpbmcSEQoJd29ya3NwYWNlGAEgASgJEg4KBmJyYW5jaBgCIAEoCRIaChJyZXF1ZXN0ZWRfZnJvbnRpZXIYAyABKAki6AIKF01haW50ZW5hbmNlUXVhbnR1bVF1ZXJ5Eh0KEHJlcXVlc3RlZF9kb21haW4YASABKAlIAIgBARIeChFyZXF1ZXN0ZWRfcGFja2FnZRgCIAEoCUgBiAEBEiAKE3JlcXVlc3RlZF9kaXJlY3RpdmUYAyABKAlIAogBARIXCg9sb2NhbF9yZWFkX29ubHkYBCABKAgSHAoUbWFpbnRhaW5fZ2l0X2N1c3RvZHkYBSABKAgSFwoPcmVhZF9pbmRleF9vbmx5GAYgASgIEiQKHG1haW50YWluX2FkZHJlc3NlZF9mcm9udGllcnMYByABKAgSGAoQZmx1c2hfZHVyYWJpbGl0eRgIIAEoCBIZChFsb2NhbF93cml0ZV9idXJzdBgJIAEoCEITChFfcmVxdWVzdGVkX2RvbWFpbkIUChJfcmVxdWVzdGVkX3BhY2thZ2VCFgoUX3JlcXVlc3RlZF9kaXJlY3RpdmUiogQKGk1haW50ZW5hbmNlUXVhbnR1bVJlc3BvbnNlEhEKCXdvcmtzcGFjZRgBIAEoCRIbChNtYWludGVuYW5jZV9wZW5kaW5nGAIgASgIEjAKBXBoYXNlGAMgASgOMiEubm9tb3Mua2VybmVsLnYxLk1haW50ZW5hbmNlUGhhc2USGQoMZ2l0X2Zyb250aWVyGAQgASgJSACIAQESGgoNcmVhZF9mcm9udGllchgFIAEoCUgBiAEBEhwKD3NxbGl0ZV9mcm9udGllchgGIAEoCUgCiAEBEhIKCndvcmtfdW5pdHMYByABKAQSFgoOZWxhcHNlZF9taWNyb3MYCCABKAQSJAoXcHJlcGFyZWRfY29tbWFuZF9kb21haW4YCSABKAlIA4gBARIlChhwcmVwYXJlZF9jb21tYW5kX3BhY2thZ2UYCiABKAlIBIgBARImChlwcmVwYXJlZF9jb21tYW5kX3NlbGVjdG9yGAsgASgJSAWIAQESHgoWbG9vc2VfY3VzdG9keV9wcmVzc3VyZRgMIAEoCEIPCg1fZ2l0X2Zyb250aWVyQhAKDl9yZWFkX2Zyb250aWVyQhIKEF9zcWxpdGVfZnJvbnRpZXJCGgoYX3ByZXBhcmVkX2NvbW1hbmRfZG9tYWluQhsKGV9wcmVwYXJlZF9jb21tYW5kX3BhY2thZ2VCHAoaX3ByZXBhcmVkX2NvbW1hbmRfc2VsZWN0b3IiSAoNT3NnaUF0dHJpYnV0ZRIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJEhEKBHR5cGUYAyABKAlIAIgBAUIHCgVfdHlwZSIsCg1Pc2dpRGlyZWN0aXZlEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkiiwEKDk9zZ2lDYXBhYmlsaXR5EhEKCW5hbWVzcGFjZRgBIAEoCRIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lBdHRyaWJ1dGUSMgoKZGlyZWN0aXZlcxgDIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5Pc2dpRGlyZWN0aXZlIowBCg9Pc2dpUmVxdWlyZW1lbnQSEQoJbmFtZXNwYWNlGAEgASgJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5ub21vcy5rZXJuZWwudjEuT3NnaUF0dHJpYnV0ZRIyCgpkaXJlY3RpdmVzGAMgAygLMh4ubm9tb3Mua2VybmVsLnYxLk9zZ2lEaXJlY3RpdmUimgEKFE9zZ2lSZXNvdXJjZVJlc3BvbnNlEhMKC3NvdXJjZV91c2RhGAEgASgMEjUKDGNhcGFiaWxpdGllcxgCIAMoCzIfLm5vbW9zLmtlcm5lbC52MS5Pc2dpQ2FwYWJpbGl0eRI2CgxyZXF1aXJlbWVudHMYAyADKAsyIC5ub21vcy5rZXJuZWwudjEuT3NnaVJlcXVpcmVtZW50IucBChNWZXJpZnlDaGFpblN0ZXBTcGFuEg0KBWluZGV4GAEgASgEEhIKCmNvbW1pdF9vaWQYAiABKAkSDgoGZG9tYWluGAMgASgJEhEKCWRpcmVjdGl2ZRgEIAEoCRIQCgh0b3RhbF91cxgFIAEoBBI2CgZwaGFzZXMYBiABKAsyJi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwUGhhc2VzEkAKDmVuZ2luZV90aW1pbmdzGAcgAygLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRW5naW5lVGltaW5nIpgCChVWZXJpZnlDaGFpblN0ZXBQaGFzZXMSHgoWcnVudGltZV9sYXdfcmVmcmVzaF91cxgBIAEoBBITCgttYW5pZmVzdF91cxgCIAEoBBIZChFsYXdfcmVzb2x1dGlvbl91cxgDIAEoBBIdChVtYW5hZ2VkX3RyYW5zaXRpb25fdXMYBCABKAQSFAoMcHJpbmNpcGFsX3VzGAUgASgEEhQKDGV2b2x1dGlvbl91cxgGIAEoBBIaChJjb2xvY2F0ZWRfcmVhZHNfdXMYByABKAQSIQoZdHlwZWRfaW5zdGFsbF92ZXJpZmllcl91cxgIIAEoBBIUCgxhZG1pc3Npb25fdXMYCSABKAQSDwoHZm9sZF91cxgKIAEoBCLaBQoWVmVyaWZ5Q2hhaW5EaWFnbm9zdGljcxIuCgR3YWxrGAEgASgOMiAubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluV2FsaxIQCgh0b3RhbF91cxgCIAEoBBIbChNyZWZlcmVuY2VfbG9va3VwX3VzGAMgASgEEhoKEnJlcG9zaXRvcnlfb3Blbl91cxgEIAEoBBIVCg1jaGFpbl9yZWFkX3VzGAUgASgEEhYKDmVuZ2luZV9pbml0X3VzGAYgASgEEhgKEHRpbWVsaW5lX3JlYWRfdXMYByABKAQSGAoQbGF3X2h5ZHJhdGlvbl91cxgIIAEoBBIbChNyZWNvdmVyeV9wcmVzY2FuX3VzGAkgASgEEhgKEGZvbGRfZnJvbnRpZXJfdXMYCiABKAQSMwoFc3RlcHMYCyADKAsyJC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5TdGVwU3BhbhJACg5lbmdpbmVfdGltaW5ncxgMIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5WZXJpZnlDaGFpbkVuZ2luZVRpbWluZxJNChVsYXdfaHlkcmF0aW9uX3RpbWluZ3MYDSADKAsyLi5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSGQoRbGF3X2Nsb3N1cmVfY291bnQYDiABKAQSHgoWbGF3X2Nsb3N1cmVfY2FjaGVfaGl0cxgPIAEoBBIgChhsYXdfY2xvc3VyZV9jYWNoZV9taXNzZXMYECABKAQSEgoKc3RlcF9jb3VudBgRIAEoBBIVCg1zdGVwX3RvdGFsX3VzGBIgASgEEkEKEXN0ZXBfcGhhc2VfdG90YWxzGBMgASgLMiYubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluU3RlcFBoYXNlcxIaChJvbWl0dGVkX3N0ZXBfY291bnQYFCABKAQiOgoXVmVyaWZ5Q2hhaW5FbmdpbmVUaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQiQAodVmVyaWZ5Q2hhaW5MYXdIeWRyYXRpb25UaW1pbmcSDQoFcGhhc2UYASABKAkSEAoIdG90YWxfdXMYAiABKAQiqwEKFEh0dHBzRXhlY3V0aW9uUG9saWN5EjwKCXBsYWNlbWVudBgBIAEoDjIpLm5vbW9zLmtlcm5lbC52MS5FZmZlY3RFeGVjdXRpb25QbGFjZW1lbnQSQAoLY2FyZGluYWxpdHkYAiABKA4yKy5ub21vcy5rZXJuZWwudjEuRWZmZWN0RXhlY3V0aW9uQ2FyZGluYWxpdHkSEwoLbGF3X2Nsb3N1cmUYAyABKAkiWwoSSHR0cHNPdXRib3VuZFJvdXRlEgsKA3VybBgBIAEoCRI4CglleGVjdXRpb24YAiABKAsyJS5ub21vcy5rZXJuZWwudjEuSHR0cHNFeGVjdXRpb25Qb2xpY3kiKwoWV29ya3NwYWNlT3V0Ym91bmRSb3V0ZRIRCgl3b3Jrc3BhY2UYASABKAkihQIKFUNhcnJpZWRXb3Jrc3BhY2VPZmZlchIwCgZzb3VyY2UYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhUKDXNvdXJjZV9jb21taXQYAiABKAkSGQoRc291cmNlX29mZmVyX3BhdGgYAyABKAkSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYBSABKAwSIwobYWRtaXNzaW9uX2NoZWNrcG9pbnRfc2VjcmV0GAYgASgMEhUKDWVmZmVjdF9kaWdlc3QYByABKAkSIAoYc291cmNlX3dvcmtzcGFjZV9nZW5lc2lzGAggASgJSgQIBBAFUgZ0YXJnZXQizAQKDU91dGJvdW5kT2ZmZXISCgoCaWQYASABKAkSFwoLZGVzdGluYXRpb24YAiABKAlCAhgBEhQKDHNlYWxlZF9vZmZlchgDIAEoDBIUCgxjb250ZW50X3R5cGUYBCABKAkSGAoQc291cmNlX3dvcmtzcGFjZRgFIAEoCRIUCgxjdXN0b2R5X2hlYWQYBiABKAkSFwoPY2F1c2VkX2J5X29mZmVyGAcgASgJEhsKE3NjaGVkdWxlZF9hdF9taWxsaXMYCCABKAQSGgoSZGVhZGxpbmVfYXRfbWlsbGlzGAkgASgEEhQKDGN1c3RvZHlfcGF0aBgKIAEoCRITCgtjdXN0b2R5X29pZBgLIAEoCRIUCgxkZWxpdmVyeV9yZWYYDCABKAkSFQoNb2JsaWdhdGlvbl9pZBgNIAEoCRI6CgtodHRwc19yb3V0ZRgOIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5IdHRwc091dGJvdW5kUm91dGVIABJCCg93b3Jrc3BhY2Vfcm91dGUYDyABKAsyJy5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlT3V0Ym91bmRSb3V0ZUgAEhUKDXNvdXJjZV9jb21taXQYECABKAkSHAoUc291cmNlX2V2aWRlbmNlX3BhY2sYESABKAwSGQoRc291cmNlX29mZmVyX3BhdGgYEiABKAkSFQoNZWZmZWN0X2RpZ2VzdBgTIAEoCRIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYFCABKAlCBwoFcm91dGUi7gEKDk91dGJveFJlc3BvbnNlEi4KBm9mZmVycxgBIAMoCzIeLm5vbW9zLmtlcm5lbC52MS5PdXRib3VuZE9mZmVyEh8KEm5leHRfZHVlX2F0X21pbGxpcxgCIAEoBEgAiAEBEi0KB2VudHJpZXMYAyADKAsyHC5ub21vcy5rZXJuZWwudjEuT3V0Ym94RW50cnkSFAoMd29ya19wZW5kaW5nGAQgASgIEhUKDWVudHJpZXNfdG90YWwYBSABKA0SGAoQZW50cmllc19wcmVwYXJlZBgGIAEoDUIVChNfbmV4dF9kdWVfYXRfbWlsbGlzIr0BCgtPdXRib3hFbnRyeRIKCgJpZBgBIAEoCRIZChFzb3VyY2Vfb2ZmZXJfcGF0aBgCIAEoCRI6CgtodHRwc19yb3V0ZRgDIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5IdHRwc091dGJvdW5kUm91dGVIABJCCg93b3Jrc3BhY2Vfcm91dGUYBCABKAsyJy5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlT3V0Ym91bmRSb3V0ZUgAQgcKBXJvdXRlIpQBChRQcmVwYXJlT3V0Ym91bmRPZmZlchIYChB0YXJnZXRfd29ya3NwYWNlGAEgASgJEhoKDXNvdXJjZV9jb21taXQYAiABKAlIAIgBARIeChFzb3VyY2Vfb2ZmZXJfcGF0aBgDIAEoCUgBiAEBQhAKDl9zb3VyY2VfY29tbWl0QhQKEl9zb3VyY2Vfb2ZmZXJfcGF0aCKJBQoMU3luY1Jlc3BvbnNlEhAKCGFkbWl0dGVkGAIgASgIEgwKBGhlYWQYAyABKAkSFgoOY2FuZGlkYXRlX2hlYWQYBCABKAkSHAoUYWRtaXR0ZWRfcmVtb3RlX2hlYWQYBSABKAkSHAoUcmVwbGF5ZWRfcmVtb3RlX2hlYWQYBiABKAkSPAoPYWRtaXR0ZWRfcmVtb3RlGAcgAygLMiMubm9tb3Mua2VybmVsLnYxLlN5bmNBZG1pdHRlZEludGVudBI8ChVyZW1vdGVfYmlydGhfb3V0Y29tZXMYCCADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEjkKDnJlbW90ZV9yZWZ1c2FsGAkgASgLMhwubm9tb3Mua2VybmVsLnYxLlN5bmNSZWZ1c2FsSACIAQESOwoOcmVwbGF5ZWRfbG9jYWwYCiADKAsyIy5ub21vcy5rZXJuZWwudjEuU3luY1JlcGxheWVkSW50ZW50EiAKGHNraXBwZWRfbG9jYWxfaW50ZW50X2lkcxgLIAMoCRI5Cg1yZWZ1c2VkX2xvY2FsGAwgAygLMiIubm9tb3Mua2VybmVsLnYxLlN5bmNSZWZ1c2VkSW50ZW50EkcKFGN1c3RvZHlfZGlzYWdyZWVtZW50GA0gASgLMiQubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlEaXNhZ3JlZW1lbnRIAYgBARIZChFwYXJrZWRfbG9jYWxfcmVmcxgOIAMoCRIWCg5yZXBsYXlfcGVuZGluZxgPIAEoCEIRCg9fcmVtb3RlX3JlZnVzYWxCFwoVX2N1c3RvZHlfZGlzYWdyZWVtZW50SgQIARACUgZyZXN1bHQiUQoTQ3VzdG9keURpc2FncmVlbWVudBISCgpsb2NhbF9oZWFkGAEgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAIgASgJEg4KBnJlYXNvbhgDIAEoCSJPChJTeW5jQWRtaXR0ZWRJbnRlbnQSEQoJaW50ZW50X2lkGAEgASgJEhgKEGNhbmRpZGF0ZV9jb21taXQYAiABKAkSDAoEaGVhZBgDIAEoCSJsChJTeW5jUmVwbGF5ZWRJbnRlbnQSEQoJaW50ZW50X2lkGAEgASgJEgwKBGhlYWQYAiABKAkSNQoOYmlydGhfb3V0Y29tZXMYAyADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lIqEBCgtTeW5jUmVmdXNhbBIWCglpbnRlbnRfaWQYASABKAlIAIgBARIOCgZyZWFzb24YAiABKAkSEQoEY29kZRgDIAEoCUgBiAEBEjQKB3JlZnVzYWwYBCABKAsyHi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVmdXNhbEgCiAEBQgwKCl9pbnRlbnRfaWRCBwoFX2NvZGVCCgoIX3JlZnVzYWwijQEKEVN5bmNSZWZ1c2VkSW50ZW50EhEKCWludGVudF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkSEwoLY2hhbmdlX3VzZGEYAyABKAwSNAoHcmVmdXNhbBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsSACIAQFCCgoIX3JlZnVzYWwiQgoPV29ya3NwYWNlVGFyZ2V0EgwKBHJlcG8YASABKAkSEQoJd29ya3NwYWNlGAIgASgJEg4KBmJyYW5jaBgDIAEoCSJOCgtPcGVuUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0Eg0KBXNwYW5zGAIgASgIIg4KDEdlbmVzaXNPZmZlciKjAQoNRGlyZWN0aXZlQ2FsbBIOCgZkb21haW4YASABKAkSEQoJZGlyZWN0aXZlGAIgASgJEicKCW9wZXJhdGlvbhgFIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkSFgoOYXJndW1lbnRzX2pzb24YBiABKAlKBAgDEARKBAgEEAVSCWNhbGxfdXNkYVIHcGF5bG9hZFIObGVnYWN5X3BheWxvYWQi1gIKEEF1dGhvcmluZ09wdGlvbnMSDQoFYWN0b3IYASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIVCg1hdXRob3Jfc2VjcmV0GAMgASgMEh0KEHZhbGlkX2Zyb21fZXBvY2gYBCABKARIAIgBARIfChJwcmluY2lwYWxfdmVyaWZpZWQYBSABKAhIAYgBARILCgNybmcYBiADKAESGAoQZGVmZXJfcHJvamVjdGlvbhgHIAEoCBINCgVzcGFucxgIIAEoCBIPCgdkcnlfcnVuGAkgASgIEhAKCHNlcXVlbmNlGAogASgEEi0KBWNsb2NrGAsgASgLMh4ubm9tb3Mua2VybmVsLnYxLkNhcHR1cmVkQ2xvY2sSFAoMcHJlcGFyZV9vbmx5GAwgASgIQhMKEV92YWxpZF9mcm9tX2Vwb2NoQhUKE19wcmluY2lwYWxfdmVyaWZpZWQiSgoNQ2FwdHVyZWRDbG9jaxIXCg9waHlzaWNhbF9taWxsaXMYASABKAQSDwoHbG9naWNhbBgCIAEoDRIPCgdyZXBsaWNhGAMgASgEIsMDChBCaXJ0aENlcnRpZmljYXRlEg0KBWNoaWxkGAEgASgJEg8KB2ZvdW5kZXIYAiABKAkSEAoIdmVyaWZpZWQYAyABKAgSEgoKcGFyZW50X2tleRgEIAEoDBIRCglwYXJlbnRfaWQYBSABKAkSDQoFZXBvY2gYBiABKAMSEQoJc2lnbmF0dXJlGAcgASgMEhkKDHZlcmlmaWVkX3ZpYRgIIAEoCUgAiAEBEhYKCWlkcF90b2tlbhgJIAEoCUgBiAEBEhsKDmNhcHR1cmVkX2Nsb2NrGAogASgDSAKIAQESIQoUYXV0aF9wcm92aWRlcl9pc3N1ZXIYCyABKAlIA4gBARIfChJhdXRoX3Byb3ZpZGVyX2p3a3MYDCABKAlIBIgBARIjChZhdXRoX3Byb3ZpZGVyX2F1ZGllbmNlGA0gASgJSAWIAQFCDwoNX3ZlcmlmaWVkX3ZpYUIMCgpfaWRwX3Rva2VuQhEKD19jYXB0dXJlZF9jbG9ja0IXChVfYXV0aF9wcm92aWRlcl9pc3N1ZXJCFQoTX2F1dGhfcHJvdmlkZXJfandrc0IZChdfYXV0aF9wcm92aWRlcl9hdWRpZW5jZSJsChtTaWduQmlydGhDZXJ0aWZpY2F0ZVJlcXVlc3QSNgoLY2VydGlmaWNhdGUYASABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZRIVCg1zaWduZXJfc2VjcmV0GAIgASgMIlYKHFNpZ25CaXJ0aENlcnRpZmljYXRlUmVzcG9uc2USNgoLY2VydGlmaWNhdGUYASABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZSLsAgoUTW9kZWxMaWZlY3ljbGVJbnRlbnQSOwoJb3BlcmF0aW9uGAEgASgOMigubm9tb3Mua2VybmVsLnYxLk1vZGVsTGlmZWN5Y2xlT3BlcmF0aW9uEhQKDGluc3RhbGxlZF9ieRgCIAEoCRIXCgpzdXBlcnNlZGVzGAMgASgJSACIAQESRAoKdHJhbnNpdGlvbhgEIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25SZXNwb25zZUgBiAEBEhUKCHJlcGxhY2VzGAUgASgJSAKIAQESHgoRYWNjZXB0YW5jZV9yZWFzb24YBiABKAlIA4gBARIZCgxsYXdfaWRlbnRpdHkYByABKAlIBIgBAUINCgtfc3VwZXJzZWRlc0INCgtfdHJhbnNpdGlvbkILCglfcmVwbGFjZXNCFAoSX2FjY2VwdGFuY2VfcmVhc29uQg8KDV9sYXdfaWRlbnRpdHkiOwofSWRlbnRpdHlQcm92aWRlcldpdG5lc3NBZG9wdGlvbhIYChBzb3VyY2Vfd29ya3NwYWNlGAEgASgJIucHCgxPZmZlclJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIuCgRjYWxsGAIgASgLMh4ubm9tb3Mua2VybmVsLnYxLkRpcmVjdGl2ZUNhbGxIABIcChJzZWFsZWRfY2hhbmdlX3VzZGEYByABKAxIABJACg9tb2RlbF9saWZlY3ljbGUYDCABKAsyJS5ub21vcy5rZXJuZWwudjEuTW9kZWxMaWZlY3ljbGVJbnRlbnRIABJeCiJpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzX2Fkb3B0aW9uGA0gASgLMjAubm9tb3Mua2VybmVsLnYxLklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQWRvcHRpb25IABIwCgdnZW5lc2lzGA4gASgLMh0ubm9tb3Mua2VybmVsLnYxLkdlbmVzaXNPZmZlckgAEkkKF2NhcnJpZWRfd29ya3NwYWNlX29mZmVyGA8gASgLMiYubm9tb3Mua2VybmVsLnYxLkNhcnJpZWRXb3Jrc3BhY2VPZmZlckgAEjQKCXBsYWNlbWVudBgQIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5QbGFjZW1lbnRPZmZlckgAEkcKFmRldGFjaGVkX3NpZ25lZF9jaGFuZ2UYEiABKAsyJS5ub21vcy5rZXJuZWwudjEuRGV0YWNoZWRTaWduZWRDaGFuZ2VIABI0CglhdXRob3JpbmcYAyABKAsyIS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaW5nT3B0aW9ucxIQCghsYXdfdXNkehgEIAEoDBIzCgxhdHRlc3RhdGlvbnMYBSADKAsyHS5ub21vcy5rZXJuZWwudjEuQXR0ZXN0ZWRSZWFkEj0KEmNvbmZsaWN0X3NuYXBzaG90cxgGIAMoCzIhLm5vbW9zLmtlcm5lbC52MS5Db25mbGljdFNuYXBzaG90EhoKEmV4ZWN1dGlvbl9sYXdfdXNkehgIIAEoDBIgChNjb250cm9sbGVyX2xhd19oYXNoGAkgASgJSAGIAQESHQoQY2FuZGlkYXRlX2NvbW1pdBgKIAEoCUgCiAEBEjwKEWJpcnRoX2NlcnRpZmljYXRlGAsgASgLMiEubm9tb3Mua2VybmVsLnYxLkJpcnRoQ2VydGlmaWNhdGUSKwoJbGF3X3VuaXRzGBEgAygLMhgubm9tb3Mua2VybmVsLnYxLkxhd1VuaXRCCAoGaW50ZW50QhYKFF9jb250cm9sbGVyX2xhd19oYXNoQhMKEV9jYW5kaWRhdGVfY29tbWl0IjYKB0xhd1VuaXQSKwoFZmlsZXMYASADKAsyHC5ub21vcy5rZXJuZWwudjEuTGF3VW5pdEZpbGUiLAoLTGF3VW5pdEZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMIsUBCgxBdHRlc3RlZFJlYWQSEAoIcXVlcnlfaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EisKBnJlc3VsdBgDIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5Ob21vc1ZhbHVlEjIKCGV2aWRlbmNlGAUgASgLMiAubm9tb3Mua2VybmVsLnYxLlJlYWRBdHRlc3RhdGlvbkoECAQQBVILYXR0ZXN0YXRpb24i1QEKD1JlYWRBdHRlc3RhdGlvbhIPCgd2ZXJzaW9uGAEgASgDEhgKEHNvdXJjZV93b3Jrc3BhY2UYAiABKAkSFgoOc291cmNlX2dlbmVzaXMYAyABKAkSEwoLc291cmNlX2hlYWQYBCABKAkSEQoJZm9sZF9yb290GAUgASgJEhQKDHNvdXJjZV9lcG9jaBgGIAEoAxIaChJhdHRlc3RlZF9hdF9taWxsaXMYByABKAMSEgoKcHVibGljX2tleRgIIAEoDBIRCglzaWduYXR1cmUYCSABKAwidQoQQ29uZmxpY3RTbmFwc2hvdBIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSFQoNdGFyZ2V0X3NjaGVtYRgEIAEoCRINCgV0b2tlbhgFIAEoCSKQDwoMUXVlcnlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSMgoJYXV0aG9yaXR5GAIgASgLMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5QXV0aG9yaXR5Eg0KBXNwYW5zGAMgASgIEjkKDXJlc3VsdF9mb3JtYXQYBCABKA4yIi5ub21vcy5rZXJuZWwudjEuUXVlcnlSZXN1bHRGb3JtYXQSKgoEcm93cxgKIAEoCzIaLm5vbW9zLmtlcm5lbC52MS5Sb3dzUXVlcnlIABIqCgRwYWdlGAsgASgLMhoubm9tb3Mua2VybmVsLnYxLlBhZ2VRdWVyeUgAEisKBWJ5X2lkGAwgASgLMhoubm9tb3Mua2VybmVsLnYxLkJ5SWRRdWVyeUgAEjkKDHJlc29sdmVfcmVmcxgNIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlUmVmc1F1ZXJ5SAASRQoScmVmZXJlbmNlX3ZlcnNpb25zGA4gASgLMicubm9tb3Mua2VybmVsLnYxLlJlZmVyZW5jZVZlcnNpb25zUXVlcnlIABIsCgVjb3VudBgPIAEoCzIbLm5vbW9zLmtlcm5lbC52MS5UYWxseVF1ZXJ5SAASKgoDc3VtGBAgASgLMhsubm9tb3Mua2VybmVsLnYxLlRhbGx5UXVlcnlIABIwCgdzcGF0aWFsGBEgASgLMh0ubm9tb3Mua2VybmVsLnYxLlNwYXRpYWxRdWVyeUgAEiwKBW5hbWVkGBIgASgLMhsubm9tb3Mua2VybmVsLnYxLk5hbWVkUXVlcnlIABJJChNhdXRob3JpemF0aW9uX2NoZWNrGBMgASgLMioubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25DaGVja1JlcXVlc3RIABJLChRhdXRob3JpemF0aW9uX2V4cGFuZBgUIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwYW5kUmVxdWVzdEgAEkkKE2Zyb250aWVyX3RyYW5zaXRpb24YFSABKAsyKi5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdEgAEi8KB2J5X3R5cGUYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuQnlUeXBlUXVlcnlIABJIChRvd25lZF9kZXZpY2VfcmVxdWVzdBgXIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Pd25lZERldmljZVJlcXVlc3RRdWVyeUgAEkwKFm93bmVkX3ByZXBhcmVfYXBwcm92YWwYGCABKAsyKi5ub21vcy5rZXJuZWwudjEuT3duZWRQcmVwYXJlQXBwcm92YWxRdWVyeUgAEkMKEXBlbmRpbmdfY29uZmxpY3RzGBkgASgLMiYubm9tb3Mua2VybmVsLnYxLlBlbmRpbmdDb25mbGljdHNRdWVyeUgAElAKGHBlbmRpbmdfY29uZmxpY3Rfc3VtbWFyeRgaIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5QZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnlIABJNChZhdXRoZW50aWNhdGlvbl9wb3N0dXJlGBsgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5SAASQAoQY2hpbGRfd29ya3NwYWNlcxgcIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5DaGlsZFdvcmtzcGFjZVF1ZXJ5SAASVgoWYXV0aG9yaW5nX3JlcXVpcmVtZW50cxgdIAEoCzI0Lm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVBdXRob3JpbmdSZXF1aXJlbWVudHNRdWVyeUgAElIKGWlkZW50aXR5X3Byb3ZpZGVyX3dpdG5lc3MYHiABKAsyLS5ub21vcy5rZXJuZWwudjEuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NRdWVyeUgAEk8KF2ludGVyZmFjZV9jb21wYXRpYmlsaXR5GB8gASgLMiwubm9tb3Mua2VybmVsLnYxLkludGVyZmFjZUNvbXBhdGliaWxpdHlRdWVyeUgAEkcKE21haW50ZW5hbmNlX3F1YW50dW0YICABKAsyKC5ub21vcy5rZXJuZWwudjEuTWFpbnRlbmFuY2VRdWFudHVtUXVlcnlIABJEChJmdWxsX2hpc3RvcnlfYXVkaXQYISABKAsyJi5ub21vcy5rZXJuZWwudjEuRnVsbEhpc3RvcnlBdWRpdFF1ZXJ5SAASUAoYd29ya3NwYWNlX2VmZmVjdF9yZWNlaXB0GCIgASgLMiwubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZUVmZmVjdFJlY2VpcHRRdWVyeUgAElQKGmluc3RhbGxlZF9sYXdfZGVjbGFyYXRpb25zGCMgASgLMi4ubm9tb3Mua2VybmVsLnYxLkluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1F1ZXJ5SABCBwoFcXVlcnkiVgobV29ya3NwYWNlRWZmZWN0UmVjZWlwdFF1ZXJ5EiAKGHNvdXJjZV93b3Jrc3BhY2VfZ2VuZXNpcxgBIAEoCRIVCg1lZmZlY3RfZGlnZXN0GAIgASgJIuQBCh5Xb3Jrc3BhY2VFZmZlY3RSZWNlaXB0UmVzcG9uc2USGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIgChh0YXJnZXRfd29ya3NwYWNlX2dlbmVzaXMYAiABKAkSFQoNb2JzZXJ2ZWRfaGVhZBgDIAEoCRIgChhzb3VyY2Vfd29ya3NwYWNlX2dlbmVzaXMYBCABKAkSFQoNZWZmZWN0X2RpZ2VzdBgFIAEoCRIfChJhZG1pdHRlZF9pbnRlbnRfaWQYBiABKAlIAIgBAUIVChNfYWRtaXR0ZWRfaW50ZW50X2lkIhcKFUZ1bGxIaXN0b3J5QXVkaXRRdWVyeSKwAwoYRnVsbEhpc3RvcnlBdWRpdFJlc3BvbnNlEg0KBXZhbGlkGAEgASgIEi4KBHdhbGsYAiABKA4yIC5ub21vcy5rZXJuZWwudjEuVmVyaWZ5Q2hhaW5XYWxrEhEKBGhlYWQYAyABKAlIAIgBARIUCgdpbnRlbnRzGAQgASgESAGIAQESGAoLcGxhbnNfcmVydW4YBSABKARIAogBARIcCg9jb250cm9sbGVyX2hhc2gYBiABKAlIA4gBARIZChFpbnN0YWxsZWRfZG9tYWlucxgHIAMoCRISCgVjaGVjaxgIIAEoCUgEiAEBEhUKCGF0X2luZGV4GAkgASgESAWIAQESEgoFZXJyb3IYCiABKAlIBogBARI0CgdyZWZ1c2FsGAsgASgLMh4ubm9tb3Mua2VybmVsLnYxLktlcm5lbFJlZnVzYWxIB4gBAUIHCgVfaGVhZEIKCghfaW50ZW50c0IOCgxfcGxhbnNfcmVydW5CEgoQX2NvbnRyb2xsZXJfaGFzaEIICgZfY2hlY2tCCwoJX2F0X2luZGV4QggKBl9lcnJvckIKCghfcmVmdXNhbCIeChxJZGVudGl0eVByb3ZpZGVyV2l0bmVzc1F1ZXJ5IosCChpJZGVudGl0eVByb3ZpZGVyV2l0bmVzc0tleRIPCgdvcmRpbmFsGAEgASgEEgsKA2t0eRgCIAEoCRIQCgNraWQYAyABKAlIAIgBARIQCgNhbGcYBCABKAlIAYgBARIQCgN1c2UYBSABKAlIAogBARIQCgNjcnYYBiABKAlIA4gBARIOCgF4GAcgASgJSASIAQESDgoBeRgIIAEoCUgFiAEBEg4KAW4YCSABKAlIBogBARIOCgFlGAogASgJSAeIAQESDwoHa2V5X29wcxgLIAMoCUIGCgRfa2lkQgYKBF9hbGdCBgoEX3VzZUIGCgRfY3J2QgQKAl94QgQKAl95QgQKAl9uQgQKAl9lImMKIklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQ2VydGlmaWNhdGUSEwoLa2V5X29yZGluYWwYASABKAQSGwoTY2VydGlmaWNhdGVfb3JkaW5hbBgCIAEoBBILCgNkZXIYAyABKAwixQQKH0lkZW50aXR5UHJvdmlkZXJXaXRuZXNzUmVzcG9uc2USGAoQc291cmNlX3dvcmtzcGFjZRgBIAEoCRIWCg5zb3VyY2VfZ2VuZXNpcxgCIAEoCRITCgtzb3VyY2VfaGVhZBgDIAEoCRINCgVlcG9jaBgEIAEoBBIfChJwcmVkZWNlc3Nvcl9zaGEyNTYYBSABKAxIAIgBARIOCgZpc3N1ZXIYBiABKAkSFQoIYXVkaWVuY2UYByABKAlIAYgBARIXCg9wcmluY2lwYWxfY2xhaW0YCCABKAkSIQoUZGV2aWNlX2JpbmRpbmdfY2xhaW0YCSABKAlIAogBARIeChZyZXF1aXJlX2RldmljZV9iaW5kaW5nGAogASgIEjkKBGtleXMYCyADKAsyKy5ub21vcy5rZXJuZWwudjEuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NLZXkSSQoMY2VydGlmaWNhdGVzGAwgAygLMjMubm9tb3Mua2VybmVsLnYxLklkZW50aXR5UHJvdmlkZXJXaXRuZXNzQ2VydGlmaWNhdGUSFwoPbWF0ZXJpYWxfc2hhMjU2GA0gASgMEjMKDGF0dGVzdGF0aW9ucxgPIAMoCzIdLm5vbW9zLmtlcm5lbC52MS5BdHRlc3RlZFJlYWRCFQoTX3ByZWRlY2Vzc29yX3NoYTI1NkILCglfYXVkaWVuY2VCFwoVX2RldmljZV9iaW5kaW5nX2NsYWltSgQIDhAPUhFzb3VyY2VfcHJvb2ZfdXNkYSIVChNDaGlsZFdvcmtzcGFjZVF1ZXJ5IpABChlDaGlsZFdvcmtzcGFjZVF1ZXJ5UmVjb3JkEhEKCXdvcmtzcGFjZRgBIAEoCRI+CgZzdGF0dXMYAiABKA4yLi5ub21vcy5rZXJuZWwudjEuQ2hpbGRXb3Jrc3BhY2VMaWZlY3ljbGVTdGF0dXMSFAoHYm9ybl9hdBgDIAEoCUgAiAEBQgoKCF9ib3JuX2F0IlsKG0NoaWxkV29ya3NwYWNlUXVlcnlSZXNwb25zZRI8CghjaGlsZHJlbhgBIAMoCzIqLm5vbW9zLmtlcm5lbC52MS5DaGlsZFdvcmtzcGFjZVF1ZXJ5UmVjb3JkIh8KHUluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1F1ZXJ5IjcKEEluc3RhbGxlZExhd1VuaXQSEAoIdW5pdF9rZXkYASABKAkSEQoJdW5pdF9oYXNoGAIgASgJIowBChNJbnN0YWxsZWRMYXdVbml0U2V0EhQKDHNldF9pZGVudGl0eRgBIAEoCRIYChBjb21wb3Nlcl92ZXJzaW9uGAIgASgJEhMKC29wZW51c2RfcmV2GAMgASgJEjAKBXVuaXRzGAQgAygLMiEubm9tb3Mua2VybmVsLnYxLkluc3RhbGxlZExhd1VuaXQigQIKHkRlY2xhcmVkQXV0aGVudGljYXRpb25Qcm92aWRlchIOCgZkb21haW4YASABKAkSDgoGbWVtYmVyGAIgASgJEjsKC21lbWJlcl9raW5kGAMgASgOMiYubm9tb3Mua2VybmVsLnYxLkRlY2xhcmVkTGF3TWVtYmVyS2luZBJBCgRraW5kGAQgASgOMjMubm9tb3Mua2VybmVsLnYxLkRlY2xhcmVkQXV0aGVudGljYXRpb25Qcm92aWRlcktpbmQSDQoFc2NvcGUYBSABKAkSHAoPaWRlbnRpdHlfc2hhMjU2GAYgASgJSACIAQFCEgoQX2lkZW50aXR5X3NoYTI1NiLpAQofSW5zdGFsbGVkTGF3Q2xvc3VyZURlY2xhcmF0aW9ucxIYChBjbG9zdXJlX2lkZW50aXR5GAEgASgJEg8KB2RvbWFpbnMYAiADKAkSOwoIdW5pdF9zZXQYAyABKAsyJC5ub21vcy5rZXJuZWwudjEuSW5zdGFsbGVkTGF3VW5pdFNldEgAiAEBElEKGGF1dGhlbnRpY2F0aW9uX3Byb3ZpZGVycxgEIAMoCzIvLm5vbW9zLmtlcm5lbC52MS5EZWNsYXJlZEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJCCwoJX3VuaXRfc2V0InQKIEluc3RhbGxlZExhd0RlY2xhcmF0aW9uc1Jlc3BvbnNlEgwKBGhlYWQYASABKAkSQgoIY2xvc3VyZXMYAiADKAsyMC5ub21vcy5rZXJuZWwudjEuSW5zdGFsbGVkTGF3Q2xvc3VyZURlY2xhcmF0aW9ucyLKAQojRGlyZWN0aXZlQXV0aG9yaW5nUmVxdWlyZW1lbnRzUXVlcnkSEQoJZGlyZWN0aXZlGAEgASgJEhYKCXByaW5jaXBhbBgCIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYAyABKAxIAYgBARIVCghrZXlfaGFzaBgEIAEoCUgCiAEBEhMKBmRvbWFpbhgFIAEoCUgDiAEBQgwKCl9wcmluY2lwYWxCDQoLX3B1YmxpY19rZXlCCwoJX2tleV9oYXNoQgkKB19kb21haW4ijAIKJkRpcmVjdGl2ZUF1dGhvcmluZ1JlcXVpcmVtZW50c1Jlc3BvbnNlEg0KBWZvdW5kGAEgASgIEhMKBmRvbWFpbhgCIAEoCUgAiAEBEhUKCHJlbGF0aW9uGAMgASgJSAGIAQESEwoGb2JqZWN0GAQgASgJSAKIAQESEgoFYWN0b3IYBSABKAlIA4gBARIVCghrZXlfaGFzaBgGIAEoCUgEiAEBEhcKD3NpZ25lcl9lbnJvbGxlZBgHIAEoCBIUCgxyb2xlX2FsbG93ZWQYCCABKAhCCQoHX2RvbWFpbkILCglfcmVsYXRpb25CCQoHX29iamVjdEIICgZfYWN0b3JCCwoJX2tleV9oYXNoInIKGkF1dGhlbnRpY2F0aW9uUG9zdHVyZVF1ZXJ5Eh4KFmluY2x1ZGVfYmlydGhfZXZpZGVuY2UYASABKAgSHgoRZGV2aWNlX3B1YmxpY19rZXkYAiABKAxIAIgBAUIUChJfZGV2aWNlX3B1YmxpY19rZXki7AIKHUF1dGhlbnRpY2F0aW9uUG9zdHVyZVJlc3BvbnNlEkgKDnByb3ZpZGVyX3Rva2VuGAEgASgOMjAubm9tb3Mua2VybmVsLnYxLlByb3ZpZGVyVG9rZW5WZXJpZmljYXRpb25TdGF0dXMSFwoPZW5yb2xsZWRfZGV2aWNlGAIgASgIEhoKEnJlc29sdmVkX3ByaW5jaXBhbBgDIAEoCRJECg5iaXJ0aF9ldmlkZW5jZRgEIAEoCzInLm5vbW9zLmtlcm5lbC52MS5CaXJ0aEV2aWRlbmNlUmVhZGluZXNzSACIAQESQQoUZGV2aWNlX3NpZ25lcl9zdGF0dXMYBSABKA4yIy5ub21vcy5rZXJuZWwudjEuRGV2aWNlU2lnbmVyU3RhdHVzEhoKEmRldmljZV9rZXlfc3ViamVjdBgGIAEoCRIUCgxzaWduZXJfZXBvY2gYByABKANCEQoPX2JpcnRoX2V2aWRlbmNlIl4KFkJpcnRoRXZpZGVuY2VSZWFkaW5lc3MSNAoGc3RhdHVzGAEgASgOMiQubm9tb3Mua2VybmVsLnYxLkJpcnRoRXZpZGVuY2VTdGF0dXMSDgoGZGV0YWlsGAIgASgJIigKF093bmVkRGV2aWNlUmVxdWVzdFF1ZXJ5Eg0KBXNjb3BlGAEgASgJIjIKGk93bmVkRGV2aWNlUmVxdWVzdFJlc3BvbnNlEhQKDHJlcXVlc3RfdXNkYRgBIAEoDCJAChlPd25lZFByZXBhcmVBcHByb3ZhbFF1ZXJ5Eg0KBXNjb3BlGAEgASgJEhQKDHJlcXVlc3RfdXNkYRgCIAEoDCK/AQocT3duZWRQcmVwYXJlQXBwcm92YWxSZXNwb25zZRIXCg9uZXdfa2V5X3N1YmplY3QYASABKAkSGgoSb3duZWRfY3VzdG9keV91c2RhGAIgASgMEhQKDHZlcmlmaWVkX3ZpYRgDIAEoCRIYChB2YWxpZF9mcm9tX2Vwb2NoGAQgASgEEh8KF2FwcHJvdmVkX2F0X3VuaXhfbWlsbGlzGAUgASgEEhkKEW93bmVkX2tleV9zdWJqZWN0GAYgASgJIpIBCg5RdWVyeUF1dGhvcml0eRIXCg9wcmluY2lwYWxfY2xhaW0YASABKAkSEgoKYXV0aF90b2tlbhgCIAEoDBIQCghub3dfdW5peBgDIAEoBBIVCg1hdXRob3Jfc2VjcmV0GAQgASgMEioKBGtleXMYBSADKAsyHC5ub21vcy5rZXJuZWwudjEuSW5qZWN0ZWRLZXkiOAoLSW5qZWN0ZWRLZXkSDQoFc2NvcGUYASABKAkSDQoFZXBvY2gYAiABKAQSCwoDa2V5GAMgASgMItgBCglSb3dzUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCXByaW5jaXBhbBgDIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgEIAEoDBIzChVhcHBsaWNhdGlvbl9hcmd1bWVudHMYBSABKAsyFC5nb29nbGUucHJvdG9idWYuQW55EhsKDnNpbmNlX2Zyb250aWVyGAYgASgJSACIAQFCEQoPX3NpbmNlX2Zyb250aWVyIsYBCglQYWdlUXVlcnkSCgoCaWQYASABKAkSLwoJYXJndW1lbnRzGAIgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0Eg0KBWxpbWl0GAMgASgNEg0KBWFmdGVyGAQgASgJEhEKCXByaW5jaXBhbBgFIAEoCRIWCg5hcmd1bWVudHNfdXNkYRgGIAEoDBIzChVhcHBsaWNhdGlvbl9hcmd1bWVudHMYByABKAsyFC5nb29nbGUucHJvdG9idWYuQW55IkwKCUJ5SWRRdWVyeRIWCg5hZ2dyZWdhdGVfdHlwZRgBIAEoCRIUCgxhZ2dyZWdhdGVfaWQYAiABKAkSEQoJcHJpbmNpcGFsGAMgASgJIjgKC0J5VHlwZVF1ZXJ5EhYKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCSJcCghOb21vc1JlZhIRCgl3b3Jrc3BhY2UYASABKAkSFgoOYWdncmVnYXRlX3R5cGUYAiABKAkSFAoMYWdncmVnYXRlX2lkGAMgASgJEg8KB3ZlcnNpb24YBCABKAkiTgoQUmVzb2x2ZVJlZnNRdWVyeRInCgRyZWZzGAEgAygLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEhEKCXByaW5jaXBhbBgCIAEoCSJOChZSZWZlcmVuY2VWZXJzaW9uc1F1ZXJ5EjQKBHJlZnMYASADKAsyJi5ub21vcy5rZXJuZWwudjEuUmVmZXJlbmNlVmVyc2lvbkNoZWNrIoQBChVSZWZlcmVuY2VWZXJzaW9uQ2hlY2sSKQoGcGlubmVkGAEgASgLMhkubm9tb3Mua2VybmVsLnYxLk5vbW9zUmVmEikKBnNlcmllcxgCIAEoCzIZLm5vbW9zLmtlcm5lbC52MS5Ob21vc1JlZhIVCg1jdXJyZW50X2ZpZWxkGAMgASgJImIKClRhbGx5UXVlcnkSCgoCaWQYASABKAkSEQoJcHJpbmNpcGFsGAMgASgJEhYKCWdyb3VwX2tleRgEIAEoCUgAiAEBQgwKCl9ncm91cF9rZXlKBAgCEANSCWFyZ3VtZW50cyJ6CgxTcGF0aWFsUXVlcnkSCgoCaWQYASABKAkSEQoJcHJpbmNpcGFsGAMgASgJEg0KBW1pbl94GAQgASgBEg0KBW1pbl95GAUgASgBEg0KBW1heF94GAYgASgBEg0KBW1heF95GAcgASgBSgQIAhADUglhcmd1bWVudHMiWgoVUGVuZGluZ0NvbmZsaWN0c1F1ZXJ5EhsKDmFnZ3JlZ2F0ZV90eXBlGAEgASgJSACIAQESEQoJcHJpbmNpcGFsGAIgASgJQhEKD19hZ2dyZWdhdGVfdHlwZSIwChtQZW5kaW5nQ29uZmxpY3RTdW1tYXJ5UXVlcnkSEQoJcHJpbmNpcGFsGAEgASgJInEKCk5hbWVkUXVlcnkSMgoJb3BlcmF0aW9uGAEgASgOMh8ubm9tb3Mua2VybmVsLnYxLlF1ZXJ5T3BlcmF0aW9uEi8KCWFyZ3VtZW50cxgCIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdCLkAQoZRnJvbnRpZXJUcmFuc2l0aW9uUmVxdWVzdBIOCgZkb21haW4YASABKAkSFgoOY2FuZGlkYXRlX2hhc2gYAiABKAkSDwoHYXRfaGFzaBgDIAEoCRIhChlhY2tub3dsZWRnZW1lbnRfcHJpbmNpcGFsGAQgASgJEiAKE3Jlc3RvcmVfcHJldmlvdXNfb2YYBSABKAlIAIgBARIxCg9jYW5kaWRhdGVfdW5pdHMYBiADKAsyGC5ub21vcy5rZXJuZWwudjEuTGF3VW5pdEIWChRfcmVzdG9yZV9wcmV2aW91c19vZiJaCiVGcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhgKEHNvdXJjZV9zdGFibGVfaWQYASABKAkSFwoPYWNrbm93bGVkZ2VtZW50GAIgASgJIvUBCh5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbnMSDwoHcmV0aXJlZBgBIAMoCRJHCgdyZXR5cGVkGAIgAygLMjYubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvbkRpc3Bvc2l0aW9uTWFwRW50cnkSRwoHcmViaW5kcxgDIAMoCzI2Lm5vbW9zLmtlcm5lbC52MS5Gcm9udGllclRyYW5zaXRpb25EaXNwb3NpdGlvbk1hcEVudHJ5EhwKD2Fja25vd2xlZGdlZF9ieRgEIAEoCUgAiAEBQhIKEF9hY2tub3dsZWRnZWRfYnkiPQobRnJvbnRpZXJUcmFuc2l0aW9uVmlvbGF0aW9uEg4KBmRvbWFpbhgBIAEoCRIOCgZkZXRhaWwYAiABKAki1wIKGkZyb250aWVyVHJhbnNpdGlvblJlc3BvbnNlEg8KB2F0X2hhc2gYASABKAkSGQoMY3VycmVudF9oYXNoGAIgASgJSACIAQESFQoNYXRfc3RhdGVfcm9vdBgDIAEoCRIWCg5jYW5kaWRhdGVfaGFzaBgEIAEoCRIOCgZkb21haW4YBSABKAkSDwoHZG9tYWlucxgGIAMoCRINCgVyZWFkeRgHIAEoCBJACgp2aW9sYXRpb25zGAggAygLMiwubm9tb3Mua2VybmVsLnYxLkZyb250aWVyVHJhbnNpdGlvblZpb2xhdGlvbhJKCgxkaXNwb3NpdGlvbnMYCSABKAsyLy5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJUcmFuc2l0aW9uRGlzcG9zaXRpb25zSAGIAQFCDwoNX2N1cnJlbnRfaGFzaEIPCg1fZGlzcG9zaXRpb25zIi8KE0F1dGhvcml6YXRpb25PYmplY3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSJUChRBdXRob3JpemF0aW9uU3ViamVjdBIMCgR0eXBlGAEgASgJEgoKAmlkGAIgASgJEhUKCHJlbGF0aW9uGAMgASgJSACIAQFCCwoJX3JlbGF0aW9uIpwBChhSZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBIQCghyZWxhdGlvbhgCIAEoCRI2CgdzdWJqZWN0GAMgASgLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0IoEBChhBdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSIwoZY3VycmVudF92ZXJpZmllZF9mcm9udGllchgBIAEoCEgAEhkKD2F0X2xlYXN0X2NvbW1pdBgCIAEoCUgAEhYKDGV4YWN0X2NvbW1pdBgDIAEoCUgAQg0KC3JlcXVpcmVtZW50ImYKHUF1dGhvcml6YXRpb25Db25kaXRpb25Db250ZXh0EhQKDGNvbmRpdGlvbl9pZBgBIAEoCRIvCglhcmd1bWVudHMYAiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3Qi9wIKGUF1dGhvcml6YXRpb25DaGVja1JlcXVlc3QSNgoIcmVzb3VyY2UYASABKAsyJC5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbk9iamVjdBISCgpwZXJtaXNzaW9uGAIgASgJEjYKB3N1YmplY3QYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvblN1YmplY3QSPgoLY29uc2lzdGVuY3kYBCABKAsyKS5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbnNpc3RlbmN5Ej8KB2NvbnRleHQYBSADKAsyLi5ub21vcy5rZXJuZWwudjEuQXV0aG9yaXphdGlvbkNvbmRpdGlvbkNvbnRleHQSIAoTZXhwZWN0ZWRfbW9kZWxfaGFzaBgGIAEoCUgAiAEBEhsKE2luY2x1ZGVfZXhwbGFuYXRpb24YByABKAhCFgoUX2V4cGVjdGVkX21vZGVsX2hhc2gi7QIKGkF1dGhvcml6YXRpb25FeHBhbmRSZXF1ZXN0EjYKCHJlc291cmNlGAEgASgLMiQubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25PYmplY3QSEgoKcGVybWlzc2lvbhgCIAEoCRI+Cgtjb25zaXN0ZW5jeRgDIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uc2lzdGVuY3kSPwoHY29udGV4dBgEIAMoCzIuLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uQ29uZGl0aW9uQ29udGV4dBIgChNleHBlY3RlZF9tb2RlbF9oYXNoGAUgASgJSACIAQESDQoFbGltaXQYBiABKA0SEgoFYWZ0ZXIYByABKAlIAYgBARIbChNpbmNsdWRlX2V4cGxhbmF0aW9uGAggASgIQhYKFF9leHBlY3RlZF9tb2RlbF9oYXNoQggKBl9hZnRlciK9AQoZUmVsYXRpb25zaGlwVHVwbGVFdmlkZW5jZRI4CgV0dXBsZRgBIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUFkZHJlc3MSEAoIdHVwbGVfaWQYAiABKAkSGgoSYXNzZXJ0aW9uX2V2ZW50X2lkGAMgASgJEiAKE3Jldm9jYXRpb25fZXZlbnRfaWQYBCABKAlIAIgBAUIWChRfcmV2b2NhdGlvbl9ldmVudF9pZCLhAwoYQXV0aG9yaXphdGlvbkV4cGxhbmF0aW9uEkYKCW9wZXJhdGlvbhgBIAEoDjIzLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb24uT3BlcmF0aW9uEhAKCHJlbGF0aW9uGAIgASgJEg4KBnJlc3VsdBgDIAEoCBI8CghldmlkZW5jZRgEIAMoCzIqLm5vbW9zLmtlcm5lbC52MS5SZWxhdGlvbnNoaXBUdXBsZUV2aWRlbmNlEjsKCGNoaWxkcmVuGAUgAygLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbiLfAQoJT3BlcmF0aW9uEhkKFU9QRVJBVElPTl9VTlNQRUNJRklFRBAAEhQKEE9QRVJBVElPTl9ESVJFQ1QQARIeChpPUEVSQVRJT05fQ09NUFVURURfVVNFUlNFVBACEh4KGk9QRVJBVElPTl9UVVBMRV9UT19VU0VSU0VUEAMSEwoPT1BFUkFUSU9OX1VOSU9OEAQSGgoWT1BFUkFUSU9OX0lOVEVSU0VDVElPThAFEhcKE09QRVJBVElPTl9FWENMVVNJT04QBhIXChNPUEVSQVRJT05fQ09ORElUSU9OEAcidwoaQXV0aG9yaXphdGlvbkRlY2lzaW9uQmFzaXMSIAoYYXV0aG9yaXphdGlvbl9tb2RlbF9oYXNoGAEgASgJEiEKGXJlbGF0aW9uc2hpcF9zdGF0ZV9jb21taXQYAiABKAkSFAoMY29udGV4dF9oYXNoGAMgASgMIr4BChpBdXRob3JpemF0aW9uQ2hlY2tSZXNwb25zZRIPCgdhbGxvd2VkGAEgASgIEjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEkMKC2V4cGxhbmF0aW9uGAMgASgLMikubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25FeHBsYW5hdGlvbkgAiAEBQg4KDF9leHBsYW5hdGlvbiKDAgobQXV0aG9yaXphdGlvbkV4cGFuZFJlc3BvbnNlEjcKCHN1YmplY3RzGAEgAygLMiUubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25TdWJqZWN0EjoKBWJhc2lzGAIgASgLMisubm9tb3Mua2VybmVsLnYxLkF1dGhvcml6YXRpb25EZWNpc2lvbkJhc2lzEhEKBG5leHQYAyABKAlIAIgBARJDCgtleHBsYW5hdGlvbhgEIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5BdXRob3JpemF0aW9uRXhwbGFuYXRpb25IAYgBAUIHCgVfbmV4dEIOCgxfZXhwbGFuYXRpb24iqAEKDU91dGJveFJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBItCgVjbG9jaxgCIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5DYXB0dXJlZENsb2NrEjYKB3ByZXBhcmUYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuUHJlcGFyZU91dGJvdW5kT2ZmZXIitgEKC1N5bmNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSEQoJZnJvbV9iYXNlGAIgASgJEg8KB3RvX2hlYWQYAyABKAkSGgoScGFya19yZWZ1c2VkX2xvY2FsGAQgASgIEhgKEHBhcmtlZF9hdF9taWxsaXMYBSABKAQSGwoTcmVwbGF5X29mZmVyX2J1ZGdldBgGIAEoDSLTAQoaS2VybmVsQ29uZmlndXJhdGlvblJlcXVlc3QSHQoVdHJ1c3Rfcm9vdF9wdWJsaWNfa2V5GAEgASgMEiUKGHRydXN0c19jdXN0b2RpYW5faGlzdG9yeRgCIAEoCEgAiAEBEiAKE2RlZmVycmVkX2R1cmFiaWxpdHkYAyABKAhIAYgBARIYChBob3N0X2NhbGxfbGVkZ2VyGAQgASgIQhsKGV90cnVzdHNfY3VzdG9kaWFuX2hpc3RvcnlCFgoUX2RlZmVycmVkX2R1cmFiaWxpdHkigAEKG0tlcm5lbENvbmZpZ3VyYXRpb25SZXNwb25zZRItCgZyZXN1bHQYASABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkEh0KEGhvc3RfY2FsbF9sZWRnZXIYAiABKA1IAIgBAUITChFfaG9zdF9jYWxsX2xlZGdlciLzEQoOQ3VzdG9keVJlcXVlc3QSNwoKcGFja19kZWx0YRgKIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5QYWNrRGVsdGFSZXF1ZXN0SAASNwoKYXBwbHlfcGFjaxgLIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5BcHBseVBhY2tSZXF1ZXN0SAASNwoKcmVwb19zdGF0cxgMIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZXBvU3RhdHNSZXF1ZXN0SAASPQoNaW50ZW50c19hYm92ZRgNIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRzQWJvdmVSZXF1ZXN0SAASPwoOaW5zcGVjdF9jaGFuZ2UYDiABKAsyJS5ub21vcy5rZXJuZWwudjEuSW5zcGVjdENoYW5nZVJlcXVlc3RIABJOChZlbmNvZGVfcmVmdXNhbF92ZXJkaWN0GA8gASgLMiwubm9tb3Mua2VybmVsLnYxLkVuY29kZVJlZnVzYWxWZXJkaWN0UmVxdWVzdEgAElAKF2luc3BlY3RfcmVmdXNhbF92ZXJkaWN0GBAgASgLMi0ubm9tb3Mua2VybmVsLnYxLkluc3BlY3RSZWZ1c2FsVmVyZGljdFJlcXVlc3RIABI1CglyZWFkX2Jsb2IYESABKAsyIC5ub21vcy5rZXJuZWwudjEuUmVhZEJsb2JSZXF1ZXN0SAASOQoLcmVzb2x2ZV9yZWYYEiABKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZlJlcXVlc3RIABI1CglsaXN0X3JlZnMYEyABKAsyIC5ub21vcy5rZXJuZWwudjEuTGlzdFJlZnNSZXF1ZXN0SAASNQoJd3JpdGVfcmVmGBQgASgLMiAubm9tb3Mua2VybmVsLnYxLldyaXRlUmVmUmVxdWVzdEgAEjcKCmRlbGV0ZV9yZWYYFSABKAsyIS5ub21vcy5rZXJuZWwudjEuRGVsZXRlUmVmUmVxdWVzdEgAEkQKEXdyaXRlX21ldGFfY29tbWl0GBYgASgLMicubm9tb3Mua2VybmVsLnYxLldyaXRlTWV0YUNvbW1pdFJlcXVlc3RIABJCChBsYXdfY2xvc3VyZV9pbmZvGBcgASgLMiYubm9tb3Mua2VybmVsLnYxLkxhd0Nsb3N1cmVJbmZvUmVxdWVzdEgAEkUKEWNoZWNrcG9pbnRfZXhwb3J0GBggASgLMigubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRFeHBvcnRSZXF1ZXN0SAASRQoRY2hlY2twb2ludF9pbXBvcnQYGSABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEltcG9ydFJlcXVlc3RIABJDChBjYXBhY2l0eV9yZXNlcnZlGBogASgLMicubm9tb3Mua2VybmVsLnYxLkNhcGFjaXR5UmVzZXJ2ZVJlcXVlc3RIABI7CgxyZXN0b3JlX21haW4YGyABKAsyIy5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5SZXF1ZXN0SAASTgoWcmVzb2x2ZV9zdGF0ZV9wb3NpdGlvbhgcIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5SZXNvbHZlU3RhdGVQb3NpdGlvblJlcXVlc3RIABJHChJyZXNpZGVudF9mb290cHJpbnQYHSABKAsyKS5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRGb290cHJpbnRSZXF1ZXN0SAASQQoPaGlzdG9yeV9zdW1tYXJ5GB4gASgLMiYubm9tb3Mua2VybmVsLnYxLkhpc3RvcnlTdW1tYXJ5UmVxdWVzdEgAEloKHHByb3ZlX2NvbXBhY3Rpb25fZXF1aXZhbGVuY2UYHyABKAsyMi5ub21vcy5rZXJuZWwudjEuUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXF1ZXN0SAASPgoOb3Blbl9naXRfc3RhdGUYICABKAsyJC5ub21vcy5rZXJuZWwudjEuT3BlbkdpdFN0YXRlUmVxdWVzdEgAEk4KFnJlYWRfY3VzdG9keV9wbGFjZW1lbnQYISABKAsyLC5ub21vcy5rZXJuZWwudjEuUmVhZEN1c3RvZHlQbGFjZW1lbnRSZXF1ZXN0SAASVAoZaW5zcGVjdF9jdXN0b2R5X3BsYWNlbWVudBgjIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0Q3VzdG9keVBsYWNlbWVudFJlcXVlc3RIABJQChdyZWxlYXNlX3dvcmtzcGFjZV9zdGF0ZRgkIAEoCzItLm5vbW9zLmtlcm5lbC52MS5SZWxlYXNlV29ya3NwYWNlU3RhdGVSZXF1ZXN0SAASXwofcmVjb3JkX3dvcmtzcGFjZV9lZmZlY3Rfb3V0Y29tZRglIAEoCzI0Lm5vbW9zLmtlcm5lbC52MS5SZWNvcmRXb3Jrc3BhY2VFZmZlY3RPdXRjb21lUmVxdWVzdEgAEkwKFWF0dGFjaF9sb2NhbF9mcm9udGllchgmIAEoCzIrLm5vbW9zLmtlcm5lbC52MS5BdHRhY2hMb2NhbEZyb250aWVyUmVxdWVzdEgAEkMKEGFnZ3JlZ2F0ZV9jZW5zdXMYJyABKAsyJy5ub21vcy5rZXJuZWwudjEuQWdncmVnYXRlQ2Vuc3VzUmVxdWVzdEgAEj0KDWF1ZGl0X2N1c3RvZHkYKCABKAsyJC5ub21vcy5rZXJuZWwudjEuQXVkaXRDdXN0b2R5UmVxdWVzdEgAEkgKE2V4cG9ydF9sYXdfcHJvZHVjdHMYKSABKAsyKS5ub21vcy5rZXJuZWwudjEuRXhwb3J0TGF3UHJvZHVjdHNSZXF1ZXN0SAASSAoTaW1wb3J0X2xhd19wcm9kdWN0cxgqIAEoCzIpLm5vbW9zLmtlcm5lbC52MS5JbXBvcnRMYXdQcm9kdWN0c1JlcXVlc3RIAEILCglvcGVyYXRpb25KBAgiECNSF2Fkb3B0X2N1c3RvZHlfcGxhY2VtZW50Il4KFkFnZ3JlZ2F0ZUNlbnN1c1JlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBISCgp0eXBlX2xpbWl0GAIgASgNIjEKEkFnZ3JlZ2F0ZVR5cGVDb3VudBIMCgR0eXBlGAEgASgJEg0KBWNvdW50GAIgASgEIvsBChdBZ2dyZWdhdGVDZW5zdXNSZXNwb25zZRIRCgRoZWFkGAEgASgJSACIAQESHAoPYWdncmVnYXRlX2NvdW50GAIgASgESAGIAQESFwoKc3RhdGVfcm9vdBgDIAEoCUgCiAEBEjYKCXRvcF90eXBlcxgEIAMoCzIjLm5vbW9zLmtlcm5lbC52MS5BZ2dyZWdhdGVUeXBlQ291bnQSHQoQdHlwZXNfc3RhdGVfcm9vdBgFIAEoCUgDiAEBQgcKBV9oZWFkQhIKEF9hZ2dyZWdhdGVfY291bnRCDQoLX3N0YXRlX3Jvb3RCEwoRX3R5cGVzX3N0YXRlX3Jvb3QiKAoYUmVzaWRlbnRGb290cHJpbnRSZXF1ZXN0EgwKBGRlZXAYASABKAgi9AMKEVJlc2lkZW50Rm9vdHByaW50EhEKCXdvcmtzcGFjZRgBIAEoCRIOCgZicmFuY2gYAiABKAkSGAoQcmVhZF9tb2RlbF9ieXRlcxgDIAEoBBIdChVyZWFkX21vZGVsX3J1c3RfYnl0ZXMYBCABKAQSGAoQZm9sZF9zdGF0ZV9ieXRlcxgFIAEoBBITCgtmb2xkX2ltYWdlcxgGIAEoDRIfChdzaGFyZWRfYXR0cmlidXRlZF9ieXRlcxgHIAEoBBISCgphZ2dyZWdhdGVzGAggASgEEjYKCmNvbXBvbmVudHMYCSADKAsyIi5ub21vcy5rZXJuZWwudjEuUmVzaWRlbnRDb21wb25lbnQSEgoKY29tcHV0ZV91cxgKIAEoBBJFChFyZWFkX3N0b3JhZ2Vfa2luZBgLIAEoDjIqLm5vbW9zLmtlcm5lbC52MS5SZWFkUHJvamVjdGlvblN0b3JhZ2VLaW5kEh8KF3NxbGl0ZV9jYWNoZV91c2VkX2J5dGVzGAwgASgEEhgKEGZsYXRfc2NhbGFyX3Jvd3MYDSABKAQSHQoVZmxhdF9zY2FsYXJfcm93c19yZWFkGA4gASgEEh0KEGZ1bGxfcmVwbGF5X2hlYWQYDyABKAlIAIgBAUITChFfZnVsbF9yZXBsYXlfaGVhZCJpChFSZXNpZGVudENvbXBvbmVudBI0CgRraW5kGAEgASgOMiYubm9tb3Mua2VybmVsLnYxLlJlc2lkZW50Q29tcG9uZW50S2luZBINCgVieXRlcxgCIAEoBBIPCgdjZWlsaW5nGAMgASgIIsoBChlSZXNpZGVudEZvb3RwcmludFJlc3BvbnNlEjUKCXJlc2lkZW50cxgBIAMoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudEZvb3RwcmludBIcChRhbGxvY2F0b3JfbGl2ZV9ieXRlcxgCIAEoBBIYChBhdHRyaWJ1dGVkX2J5dGVzGAMgASgEEhkKEXVuYWNjb3VudGVkX2J5dGVzGAQgASgEEhUKDWFjY291bnRpbmdfdXMYBSABKAQSDAoEZGVlcBgGIAEoCCLiAQoQUGFja0RlbHRhUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIRCgRiYXNlGAMgASgJSAGIAQESDgoGYnJhbmNoGAQgASgJEh0KEHN0YWdlZF9wYWNrX2ZpbGUYBSABKAlIAogBARISCgVkZXB0aBgGIAEoDUgDiAEBEhIKCmJlbG93X2hlYWQYByABKAgSEgoKYWxzb19oZWFkcxgIIAMoCUIHCgVfaGVhZEIHCgVfYmFzZUITChFfc3RhZ2VkX3BhY2tfZmlsZUIICgZfZGVwdGgizQEKEEFwcGx5UGFja1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgRwYWNrGAIgASgMSAASGgoQc3RhZ2VkX3BhY2tfZmlsZRgEIAEoCUgAEhoKEGNvbnRpbnVlX3BlbmRpbmcYCCABKAhIABIRCgRoZWFkGAMgASgJSAGIAQESDwoHc2hhbGxvdxgFIAMoCRIRCgl1bnNoYWxsb3cYBiADKAkSGQoRd29ya19idWRnZXRfYnl0ZXMYByABKARCCAoGc291cmNlQgcKBV9oZWFkIiAKEFJlcG9TdGF0c1JlcXVlc3QSDAoEcmVwbxgBIAEoCSK/AQoTSW50ZW50c0Fib3ZlUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIRCgRiYXNlGAMgASgJSAGIAQESDgoGYnJhbmNoGAQgASgJEg0KBWxpbWl0GAUgASgEEhgKEGNvbXBsZXRlX2xvZ2ljYWwYBiABKAgSFgoOY29tcGFjdF9zdG9yZWQYByABKAgSEQoJZnJvbV9iYXNlGAggASgIQgcKBV9oZWFkQgcKBV9iYXNlIm0KFUhpc3RvcnlTdW1tYXJ5UmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKBGhlYWQYAiABKAlIAIgBARIOCgZicmFuY2gYAyABKAkSEQoEYmFzZRgEIAEoCUgBiAEBQgcKBV9oZWFkQgcKBV9iYXNlIisKFEluc3BlY3RDaGFuZ2VSZXF1ZXN0EhMKC2NoYW5nZV91c2RhGAEgASgMIt8BCg5SZWZ1c2FsVmVyZGljdBIVCghvZmZlcl9pZBgBIAEoCUgAiAEBEhAKA29pZBgCIAEoCUgBiAEBEhMKBmRvbWFpbhgDIAEoCUgCiAEBEhkKDGRpcmVjdGl2ZV9pZBgEIAEoCUgDiAEBEhQKB3Nlc3Npb24YBSABKAlIBIgBARIRCglwYXJrZWRfYXQYBiABKAkSDgoGcmVhc29uGAcgASgJQgsKCV9vZmZlcl9pZEIGCgRfb2lkQgkKB19kb21haW5CDwoNX2RpcmVjdGl2ZV9pZEIKCghfc2Vzc2lvbiJPChtFbmNvZGVSZWZ1c2FsVmVyZGljdFJlcXVlc3QSMAoHdmVyZGljdBgBIAEoCzIfLm5vbW9zLmtlcm5lbC52MS5SZWZ1c2FsVmVyZGljdCI0ChxJbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXF1ZXN0EhQKDHZlcmRpY3RfdXNkYRgBIAEoDCLUAQoVQ29tcGFjdGlvbkVxdWl2YWxlbmNlEhMKC3NvdXJjZV9oZWFkGAEgASgJEhYKDnNvdXJjZV9nZW5lc2lzGAIgASgJEhYKDmNhbmRpZGF0ZV9oZWFkGAMgASgJEhkKEWNhbmRpZGF0ZV9nZW5lc2lzGAQgASgJEhYKDnNvdXJjZV9pbnRlbnRzGAUgASgEEhcKD2NhcnJpZWRfaW50ZW50cxgGIAEoBBIWCg5wYXJrZWRfaW50ZW50cxgHIAEoBBISCgplcXVpdmFsZW50GAggASgIIn0KIVByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVxdWVzdBITCgtzb3VyY2VfcmVwbxgBIAEoCRITCgtzb3VyY2VfaGVhZBgCIAEoCRIWCg5jYW5kaWRhdGVfcmVwbxgDIAEoCRIWCg5jYW5kaWRhdGVfaGVhZBgEIAEoCSI6Cg9SZWFkQmxvYlJlcXVlc3QSDAoEcmVwbxgBIAEoCRILCgNvaWQYAiABKAkSDAoEcGF0aBgDIAEoCSI0ChFSZXNvbHZlUmVmUmVxdWVzdBIMCgRyZXBvGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCSI2Cg9QaHlzaWNhbFJlZkZpbGUSEQoJcmVmZXJlbmNlGAEgASgJEhAKCGNvbnRlbnRzGAIgASgMIqcCCg9MaXN0UmVmc1JlcXVlc3QSDAoEcmVwbxgBIAEoCRIOCgZwcmVmaXgYAiABKAkSGAoQbG9vc2VfcmVmZXJlbmNlcxgDIAMoCRIgChhsb29zZV9pbnZlbnRvcnlfY29tcGxldGUYBCABKAgSIAoTcGFja2VkX3JlZnNfcHJlc2VudBgFIAEoCEgAiAEBEj0KE3BoeXNpY2FsX2xvb3NlX3JlZnMYBiADKAsyIC5ub21vcy5rZXJuZWwudjEuUGh5c2ljYWxSZWZGaWxlEhwKFHBoeXNpY2FsX3BhY2tlZF9yZWZzGAcgASgMEiMKG3BoeXNpY2FsX2ludmVudG9yeV9jb21wbGV0ZRgIIAEoCEIWChRfcGFja2VkX3JlZnNfcHJlc2VudCJCCg9Xcml0ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkSDgoGdGFyZ2V0GAMgASgJIjMKEERlbGV0ZVJlZlJlcXVlc3QSDAoEcmVwbxgBIAEoCRIRCglyZWZlcmVuY2UYAiABKAkiKQoITWV0YUZpbGUSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMIq4BChZXcml0ZU1ldGFDb21taXRSZXF1ZXN0EgwKBHJlcG8YASABKAkSDwoHcGFyZW50cxgCIAMoCRIoCgVmaWxlcxgDIAMoCzIZLm5vbW9zLmtlcm5lbC52MS5NZXRhRmlsZRIPCgdtZXNzYWdlGAQgASgJEhQKDHRpbWVfc2Vjb25kcxgFIAEoEhIWCglyZWZlcmVuY2UYBiABKAlIAIgBAUIMCgpfcmVmZXJlbmNlImcKFUxhd0Nsb3N1cmVJbmZvUmVxdWVzdBIUCgxjbG9zdXJlX2ZpbGUYASABKAkSOAoKY2FwYWJpbGl0eRgCIAEoDjIkLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxMYXdDYXBhYmlsaXR5IocBChdDaGVja3BvaW50RXhwb3J0UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EiEKFHN0YWdlZF9mcm9udGllcl9maWxlGAIgASgJSACIAQFCFwoVX3N0YWdlZF9mcm9udGllcl9maWxlIkEKC0Zyb250aWVySGxjEhAKCHBoeXNpY2FsGAEgASgEEg8KB2xvZ2ljYWwYAiABKA0SDwoHcmVwbGljYRgDIAEoBCLtBAoXVmVyaWZpZWRGcm9udGllclJlY2VpcHQSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SCwoDb2lkGAIgASgJEg8KB2ludGVudHMYAyABKAQSEwoLcGxhbnNfcmVydW4YBCABKAQSHAoPY29udHJvbGxlcl9oYXNoGAUgASgJSACIAQESGQoRaW5zdGFsbGVkX2RvbWFpbnMYBiADKAkSDgoGbGluZWFyGAcgASgIEjMKCGxhc3RfaGxjGAggASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSAGIAQESFAoHbGFzdF9pZBgJIAEoCUgCiAEBEhEKCXN0YXRlX29pZBgKIAEoCRIUCgxzdGF0ZV9zaGEyNTYYCyABKAkSOQoOc3RhdGVfbGFzdF9obGMYDCABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIA4gBARIaCg1zdGF0ZV9sYXN0X2lkGA0gASgJSASIAQESFwoPbWFuaWZlc3Rfc2hhMjU2GA4gASgJEh4KFmxhd19jbG9zdXJlX2lkZW50aXRpZXMYDyADKAkSGgoScmVzb2x2YWJsZV9kb21haW5zGBAgAygJEiIKFXByb2plY3Rpb25fc3RhdGVfcm9vdBgRIAEoCUgFiAEBEg4KBndhbGtlZBgSIAEoCEISChBfY29udHJvbGxlcl9oYXNoQgsKCV9sYXN0X2hsY0IKCghfbGFzdF9pZEIRCg9fc3RhdGVfbGFzdF9obGNCEAoOX3N0YXRlX2xhc3RfaWRCGAoWX3Byb2plY3Rpb25fc3RhdGVfcm9vdCJFChVGb2xkRnJvbnRpZXJBZ2dyZWdhdGUSFAoMYWdncmVnYXRlX2lkGAEgASgJEhYKDmFnZ3JlZ2F0ZV91c2RhGAIgASgMIkEKF0ZvbGRGcm9udGllckZpbmdlcnByaW50EhEKCWludGVudF9pZBgBIAEoCRITCgtmaW5nZXJwcmludBgCIAEoCSLWAwoURm9sZEZyb250aWVyU25hcHNob3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SCwoDdGlwGAIgASgJEg8KB2dlbmVzaXMYAyABKAkSFQoNaGlzdG9yeV9kZXB0aBgEIAEoBBI6CgphZ2dyZWdhdGVzGAUgAygLMiYubm9tb3Mua2VybmVsLnYxLkZvbGRGcm9udGllckFnZ3JlZ2F0ZRI4Cg1obGNfd2F0ZXJtYXJrGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLkZyb250aWVySGxjSACIAQESMwoIbGFzdF9obGMYByABKAsyHC5ub21vcy5rZXJuZWwudjEuRnJvbnRpZXJIbGNIAYgBARIUCgdsYXN0X2lkGAggASgJSAKIAQESFgoOc3RyaWtlX3RhcmdldHMYCSADKAkSRQoTaW50ZW50X2ZpbmdlcnByaW50cxgKIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5Gb2xkRnJvbnRpZXJGaW5nZXJwcmludBIXCgpzdGF0ZV9yb290GAsgASgJSAOIAQFCEAoOX2hsY193YXRlcm1hcmtCCwoJX2xhc3RfaGxjQgoKCF9sYXN0X2lkQg0KC19zdGF0ZV9yb290IpsDChhTdG9yZWRDaGVja3BvaW50TWFuaWZlc3QSFgoOZm9ybWF0X3ZlcnNpb24YASABKA0SEwoGY3Vyc29yGAIgASgJSACIAQESGAoQY2hlY2twb2ludF9ieXRlcxgDIAEoBBIQCghsYXdfaGFzaBgEIAEoCRI7Cgtjb21wcmVzc2lvbhgFIAEoDjImLm5vbW9zLmtlcm5lbC52MS5DaGVja3BvaW50Q29tcHJlc3Npb24SEQoJcmF3X2J5dGVzGAYgASgEEhQKDHN0b3JlZF9ieXRlcxgHIAEoBBIdChVmcm9udGllcl9zdG9yZWRfYnl0ZXMYCCABKAQSFwoKc3RhdGVfcm9vdBgJIAEoCUgBiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCiABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIAogBAUIJCgdfY3Vyc29yQg0KC19zdGF0ZV9yb290QhwKGl92ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0IsEDChdDaGVja3BvaW50SW1wb3J0UmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EhIKCGZyb250aWVyGAIgASgMSAASHgoUc3RhZ2VkX2Zyb250aWVyX2ZpbGUYBiABKAlIABITCgZjdXJzb3IYAyABKAlIAYgBARIXCgpzdGF0ZV9yb290GAQgASgJSAKIAQESDQoFc3BhbnMYBSABKAgSEQoEaGVhZBgHIAEoCUgDiAEBElAKGXZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQYCCABKAsyKC5ub21vcy5rZXJuZWwudjEuVmVyaWZpZWRGcm9udGllclJlY2VpcHRIBIgBARJKChN2ZXJpZmljYXRpb25fcG9saWN5GAkgASgOMi0ubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRWZXJpZmljYXRpb25Qb2xpY3lCEQoPZnJvbnRpZXJfc291cmNlQgkKB19jdXJzb3JCDQoLX3N0YXRlX3Jvb3RCBwoFX2hlYWRCHAoaX3ZlcmlmaWVkX2Zyb250aWVyX3JlY2VpcHQiMQoWQ2FwYWNpdHlSZXNlcnZlUmVxdWVzdBIXCg9hZ2dyZWdhdGVfY291bnQYASABKAQimQIKElJlc3RvcmVNYWluUmVxdWVzdBIwCgZ0YXJnZXQYASABKAsyIC5ub21vcy5rZXJuZWwudjEuV29ya3NwYWNlVGFyZ2V0EgwKBGhlYWQYAiABKAkSEwoLZGlhZ25vc3RpY3MYAyABKAgSGAoQb3BlcmF0b3JfY3VzdG9keRgEIAEoCBIgChNleHBlY3RlZF9sb2NhbF9oZWFkGAUgASgJSACIAQESQAoTY3VzdG9keV9jZXJ0aWZpY2F0ZRgGIAEoCzIjLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5Q2VydGlmaWNhdGUSGAoQcHJvdmlkZXJfY3VzdG9keRgHIAEoCEIWChRfZXhwZWN0ZWRfbG9jYWxfaGVhZCJtChNBdWRpdEN1c3RvZHlSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSFQoNYnVkZ2V0X21pY3JvcxgCIAEoDRINCgVzdGFydBgDIAEoCCKUAQoUQXVkaXRDdXN0b2R5UmVzcG9uc2USDwoHcGVuZGluZxgBIAEoCBIMCgRoZWFkGAIgASgJEg4KBndhbGtlZBgDIAEoBBINCgV0b3RhbBgEIAEoBBIPCgdvdXRjb21lGAUgASgJEi0KB3ZlcmRpY3QYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QifgoLTGF3UHJvZHVjdHMSFAoMbGF3X2lkZW50aXR5GAEgASgJEhYKDmZvcm1hdF92ZXJzaW9uGAIgASgNEhIKCnJlYWRfbGF5ZXIYAyABKAwSFQoNY29tbWFuZF9sYXllchgEIAEoDBIWCg5zZW1hbnRpY19sYXllchgFIAEoDCJMChhFeHBvcnRMYXdQcm9kdWN0c1JlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldCJZChlFeHBvcnRMYXdQcm9kdWN0c1Jlc3BvbnNlEgwKBGhlYWQYASABKAkSLgoIcHJvZHVjdHMYAiADKAsyHC5ub21vcy5rZXJuZWwudjEuTGF3UHJvZHVjdHMifAoYSW1wb3J0TGF3UHJvZHVjdHNSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSLgoIcHJvZHVjdHMYAiADKAsyHC5ub21vcy5rZXJuZWwudjEuTGF3UHJvZHVjdHMiLQoZSW1wb3J0TGF3UHJvZHVjdHNSZXNwb25zZRIQCghpbXBvcnRlZBgBIAMoCSJvChJDdXN0b2R5Q2VydGlmaWNhdGUSEQoJd29ya3NwYWNlGAEgASgJEgwKBGhlYWQYAiABKAkSEQoJa2V5X2Vwb2NoGAMgASgDEhIKCnB1YmxpY19rZXkYBCABKAwSEQoJc2lnbmF0dXJlGAUgASgMImQKE09wZW5HaXRTdGF0ZVJlcXVlc3QSMAoGdGFyZ2V0GAEgASgLMiAubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVRhcmdldBIMCgRoZWFkGAIgASgJEg0KBXNwYW5zGAMgASgIImsKGkF0dGFjaExvY2FsRnJvbnRpZXJSZXF1ZXN0EjAKBnRhcmdldBgBIAEoCzIgLm5vbW9zLmtlcm5lbC52MS5Xb3Jrc3BhY2VUYXJnZXQSDAoEaGVhZBgCIAEoCRINCgVzcGFucxgDIAEoCCJTCg1DdXN0b2R5UmVtb3RlEgwKBG5hbWUYASABKAkSCwoDdXJsGAIgASgJEhUKDXBlZXJfaWRlbnRpdHkYAyABKAkSEAoIcHJpb3JpdHkYBCABKA0ixgEKFEN1c3RvZHlQbGFjZW1lbnRSdWxlEhIKCnBlZXJfY2xhc3MYASABKAkSQAoQa2VybmVsX3Jlc2lkZW5jeRgCIAEoDjImLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZXNpZGVuY3lJbnRlbnQSQgoRY3VzdG9keV9yZXRlbnRpb24YAyABKA4yJy5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVJldGVudGlvbkludGVudBIUCgxyZW1vdGVfbmFtZXMYBCADKAkirgIKFkN1c3RvZHlQbGFjZW1lbnRQb2xpY3kSEwoLZGVjbGFyYXRpb24YASABKAkSFgoOcGFja2FnZV9zaGEyNTYYAiABKAkSNAoFcnVsZXMYAyADKAsyJS5ub21vcy5rZXJuZWwudjEuQ3VzdG9keVBsYWNlbWVudFJ1bGUSEgoKYWRvcHRlZF9ieRgEIAEoCRIOCgZyZWFzb24YBSABKAkSHgoWZWZmZWN0aXZlX3RpbWVfc2Vjb25kcxgGIAEoEhIvCgdyZW1vdGVzGAcgAygLMh4ubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZW1vdGUSIgoVcmVjaXBpZW50X21haWxib3hfdXJsGAggASgJSACIAQFCGAoWX3JlY2lwaWVudF9tYWlsYm94X3VybCJZChtDdXN0b2R5UGxhY2VtZW50RXhwZWN0YXRpb24SEAoGYWJzZW50GAEgASgISAASDQoDb2lkGAIgASgJSAASDQoDYW55GAMgASgISABCCgoIZnJvbnRpZXIiKwobUmVhZEN1c3RvZHlQbGFjZW1lbnRSZXF1ZXN0EgwKBHJlcG8YASABKAkiNQoeSW5zcGVjdEN1c3RvZHlQbGFjZW1lbnRSZXF1ZXN0EhMKC3BvbGljeV91c2RhGAEgASgMIokBCg5QbGFjZW1lbnRPZmZlchI+CghleHBlY3RlZBgBIAEoCzIsLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UGxhY2VtZW50RXhwZWN0YXRpb24SNwoGcG9saWN5GAIgASgLMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlQbGFjZW1lbnRQb2xpY3kiaQobUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXF1ZXN0EgwKBHJlcG8YASABKAkSEQoJbWFpbl9oZWFkGAIgASgJEhUKDWhpbnRlZF9jb21taXQYAyABKAkSEgoKc3RhdGVfcm9vdBgEIAEoCSKFEgoPQ3VzdG9keVJlc3BvbnNlEjgKCnBhY2tfZGVsdGEYCiABKAsyIi5ub21vcy5rZXJuZWwudjEuUGFja0RlbHRhUmVzcG9uc2VIABI4CgphcHBseV9wYWNrGAsgASgLMiIubm9tb3Mua2VybmVsLnYxLkFwcGx5UGFja1Jlc3BvbnNlSAASOAoKcmVwb19zdGF0cxgMIAEoCzIiLm5vbW9zLmtlcm5lbC52MS5SZXBvU3RhdHNSZXNwb25zZUgAEj4KDWludGVudHNfYWJvdmUYDSABKAsyJS5ub21vcy5rZXJuZWwudjEuSW50ZW50c0Fib3ZlUmVzcG9uc2VIABJACg5pbnNwZWN0X2NoYW5nZRgOIAEoCzImLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0Q2hhbmdlUmVzcG9uc2VIABJPChZlbmNvZGVfcmVmdXNhbF92ZXJkaWN0GA8gASgLMi0ubm9tb3Mua2VybmVsLnYxLkVuY29kZVJlZnVzYWxWZXJkaWN0UmVzcG9uc2VIABJRChdpbnNwZWN0X3JlZnVzYWxfdmVyZGljdBgQIAEoCzIuLm5vbW9zLmtlcm5lbC52MS5JbnNwZWN0UmVmdXNhbFZlcmRpY3RSZXNwb25zZUgAEjYKCXJlYWRfYmxvYhgRIAEoCzIhLm5vbW9zLmtlcm5lbC52MS5SZWFkQmxvYlJlc3BvbnNlSAASOgoLcmVzb2x2ZV9yZWYYEiABKAsyIy5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVJlZlJlc3BvbnNlSAASNgoJbGlzdF9yZWZzGBMgASgLMiEubm9tb3Mua2VybmVsLnYxLkxpc3RSZWZzUmVzcG9uc2VIABIyCgl3cml0ZV9yZWYYFCABKAsyHS5ub21vcy5rZXJuZWwudjEuQWNrbm93bGVkZ2VkSAASMwoKZGVsZXRlX3JlZhgVIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5BY2tub3dsZWRnZWRIABJFChF3cml0ZV9tZXRhX2NvbW1pdBgWIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5Xcml0ZU1ldGFDb21taXRSZXNwb25zZUgAEkMKEGxhd19jbG9zdXJlX2luZm8YFyABKAsyJy5ub21vcy5rZXJuZWwudjEuTGF3Q2xvc3VyZUluZm9SZXNwb25zZUgAEkYKEWNoZWNrcG9pbnRfZXhwb3J0GBggASgLMikubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRFeHBvcnRSZXNwb25zZUgAEkYKEWNoZWNrcG9pbnRfaW1wb3J0GBkgASgLMikubm9tb3Mua2VybmVsLnYxLkNoZWNrcG9pbnRJbXBvcnRSZXNwb25zZUgAEkQKEGNhcGFjaXR5X3Jlc2VydmUYGiABKAsyKC5ub21vcy5rZXJuZWwudjEuQ2FwYWNpdHlSZXNlcnZlUmVzcG9uc2VIABI8CgxyZXN0b3JlX21haW4YGyABKAsyJC5ub21vcy5rZXJuZWwudjEuUmVzdG9yZU1haW5SZXNwb25zZUgAEk8KFnJlc29sdmVfc3RhdGVfcG9zaXRpb24YHCABKAsyLS5ub21vcy5rZXJuZWwudjEuUmVzb2x2ZVN0YXRlUG9zaXRpb25SZXNwb25zZUgAEkgKEnJlc2lkZW50X2Zvb3RwcmludBgdIAEoCzIqLm5vbW9zLmtlcm5lbC52MS5SZXNpZGVudEZvb3RwcmludFJlc3BvbnNlSAASQgoPaGlzdG9yeV9zdW1tYXJ5GB4gASgLMicubm9tb3Mua2VybmVsLnYxLkhpc3RvcnlTdW1tYXJ5UmVzcG9uc2VIABJbChxwcm92ZV9jb21wYWN0aW9uX2VxdWl2YWxlbmNlGB8gASgLMjMubm9tb3Mua2VybmVsLnYxLlByb3ZlQ29tcGFjdGlvbkVxdWl2YWxlbmNlUmVzcG9uc2VIABI/Cg5vcGVuX2dpdF9zdGF0ZRggIAEoCzIlLm5vbW9zLmtlcm5lbC52MS5PcGVuR2l0U3RhdGVSZXNwb25zZUgAEk8KFnJlYWRfY3VzdG9keV9wbGFjZW1lbnQYISABKAsyLS5ub21vcy5rZXJuZWwudjEuUmVhZEN1c3RvZHlQbGFjZW1lbnRSZXNwb25zZUgAElUKGWluc3BlY3RfY3VzdG9keV9wbGFjZW1lbnQYIyABKAsyMC5ub21vcy5rZXJuZWwudjEuSW5zcGVjdEN1c3RvZHlQbGFjZW1lbnRSZXNwb25zZUgAElEKF3JlbGVhc2Vfd29ya3NwYWNlX3N0YXRlGCQgASgLMi4ubm9tb3Mua2VybmVsLnYxLlJlbGVhc2VXb3Jrc3BhY2VTdGF0ZVJlc3BvbnNlSAASWgofcmVjb3JkX3dvcmtzcGFjZV9lZmZlY3Rfb3V0Y29tZRglIAEoCzIvLm5vbW9zLmtlcm5lbC52MS5SZWNvcmRlZFdvcmtzcGFjZUVmZmVjdE91dGNvbWVIABJNChVhdHRhY2hfbG9jYWxfZnJvbnRpZXIYJiABKAsyLC5ub21vcy5rZXJuZWwudjEuQXR0YWNoTG9jYWxGcm9udGllclJlc3BvbnNlSAASRAoQYWdncmVnYXRlX2NlbnN1cxgnIAEoCzIoLm5vbW9zLmtlcm5lbC52MS5BZ2dyZWdhdGVDZW5zdXNSZXNwb25zZUgAEj4KDWF1ZGl0X2N1c3RvZHkYKCABKAsyJS5ub21vcy5rZXJuZWwudjEuQXVkaXRDdXN0b2R5UmVzcG9uc2VIABJJChNleHBvcnRfbGF3X3Byb2R1Y3RzGCkgASgLMioubm9tb3Mua2VybmVsLnYxLkV4cG9ydExhd1Byb2R1Y3RzUmVzcG9uc2VIABJJChNpbXBvcnRfbGF3X3Byb2R1Y3RzGCogASgLMioubm9tb3Mua2VybmVsLnYxLkltcG9ydExhd1Byb2R1Y3RzUmVzcG9uc2VIAEILCglvcGVyYXRpb25KBAgiECNSF2Fkb3B0X2N1c3RvZHlfcGxhY2VtZW50InAKEVBhY2tEZWx0YVJlc3BvbnNlEgwKBHBhY2sYASABKAwSDQoFYnl0ZXMYAiABKAQSDwoHc2hhbGxvdxgDIAMoCRIPCgdjb21taXRzGAQgASgNEg0KBXRyZWVzGAUgASgNEg0KBWJsb2JzGAYgASgNIrYBChFBcHBseVBhY2tSZXNwb25zZRIUCgxvYmplY3RfY291bnQYASABKAQSEQoJcGFja19oYXNoGAIgASgJEjsKB2Nsb3N1cmUYAyABKAsyJS5ub21vcy5rZXJuZWwudjEuUGh5c2ljYWxDbG9zdXJlQ2hlY2tIAIgBARIWCg5pbXBvcnRfcGVuZGluZxgEIAEoCBIXCg93b3JrX2RvbmVfYnl0ZXMYBSABKARCCgoIX2Nsb3N1cmUibQoUUGh5c2ljYWxDbG9zdXJlQ2hlY2sSFgoOcmV1c2VkX3JlY2VpcHQYASABKAgSFAoMY29tbWl0c19yZWFkGAIgASgEEhIKCnRyZWVzX3JlYWQYAyABKAQSEwoLbGVhdmVzX3JlYWQYBCABKAQiuAEKEVJlcG9TdGF0c1Jlc3BvbnNlEhMKC3RvdGFsX2J5dGVzGAEgASgEEhQKDG9iamVjdF9ieXRlcxgCIAEoBBIVCg1sb29zZV9vYmplY3RzGAMgASgEEhMKC2xvb3NlX2J5dGVzGAQgASgEEhIKCnBhY2tfZmlsZXMYBSABKAQSEgoKcGFja19ieXRlcxgGIAEoBBITCgtpbmRleF9ieXRlcxgHIAEoBBIPCgdzaGFsbG93GAggAygJIuIBCgxJbnRlbnRSZWNvcmQSCwoDb2lkGAEgASgJEhEKCWludGVudF9pZBgCIAEoCRIOCgZkb21haW4YAyABKAkSEQoJZGlyZWN0aXZlGAQgASgJEhMKC2NoYW5nZV91c2RhGAUgASgMEi4KCHNlbWFudGljGAYgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EkoKFXRyYW5zcG9ydF9yZXF1aXJlbWVudBgHIAEoDjIrLm5vbW9zLmtlcm5lbC52MS5JbnRlbnRUcmFuc3BvcnRSZXF1aXJlbWVudCJGChRJbnRlbnRzQWJvdmVSZXNwb25zZRIuCgdpbnRlbnRzGAEgAygLMh0ubm9tb3Mua2VybmVsLnYxLkludGVudFJlY29yZCJ0ChZIaXN0b3J5U3VtbWFyeVJlc3BvbnNlEgwKBGhlYWQYASABKAkSDgoGb2xkZXN0GAIgASgJEhQKDGNvbW1pdF9jb3VudBgDIAEoBBIQCghjb21wbGV0ZRgEIAEoCBIUCgxyZWFjaGVkX2Jhc2UYBSABKAgiQgoTTm9taW5hbENhbGxJZGVudGl0eRITCgtkb21haW5fcGF0aBgBIAEoCRIWCg5kaXJlY3RpdmVfcGF0aBgCIAEoCSKIAQoYTGlmZWN5Y2xlSW5zdGFsbElkZW50aXR5Eh8KF3RhcmdldF9jbG9zdXJlX2lkZW50aXR5GAEgASgJEhQKDGluc3RhbGxlZF9ieRgCIAEoCRI1CgVwaGFzZRgDIAEoDjImLm5vbW9zLmtlcm5lbC52MS5MaWZlY3ljbGVJbnN0YWxsUGhhc2UiWgodV29ya3NwYWNlUmVzaWRlbmN5UmVxdWlyZW1lbnQSEQoJd29ya3NwYWNlGAEgASgJEhMKC3NvdXJjZV9oZWFkGAIgASgJEhEKCWZvbGRfcm9vdBgDIAEoCSK0AgoVSW5zcGVjdENoYW5nZVJlc3BvbnNlEi4KCHNlbWFudGljGAEgASgLMhwubm9tb3Mua2VybmVsLnYxLk5vbW9zU3RydWN0EhEKCWludGVudF9pZBgCIAEoCRIyCgRjYWxsGAMgASgLMiQubm9tb3Mua2VybmVsLnYxLk5vbWluYWxDYWxsSWRlbnRpdHkSEAoIYXV0aG9yZWQYBCABKAgSRAoRbGlmZWN5Y2xlX2luc3RhbGwYBSABKAsyKS5ub21vcy5rZXJuZWwudjEuTGlmZWN5Y2xlSW5zdGFsbElkZW50aXR5EkwKFHJlcXVpcmVkX3Jlc2lkZW5jaWVzGAYgAygLMi4ubm9tb3Mua2VybmVsLnYxLldvcmtzcGFjZVJlc2lkZW5jeVJlcXVpcmVtZW50IkwKHFJlc29sdmVTdGF0ZVBvc2l0aW9uUmVzcG9uc2USGgoNcmVzb2x2ZWRfaGVhZBgBIAEoCUgAiAEBQhAKDl9yZXNvbHZlZF9oZWFkIjQKHEVuY29kZVJlZnVzYWxWZXJkaWN0UmVzcG9uc2USFAoMdmVyZGljdF91c2RhGAEgASgMIlEKHUluc3BlY3RSZWZ1c2FsVmVyZGljdFJlc3BvbnNlEjAKB3ZlcmRpY3QYASABKAsyHy5ub21vcy5rZXJuZWwudjEuUmVmdXNhbFZlcmRpY3QidQoiUHJvdmVDb21wYWN0aW9uRXF1aXZhbGVuY2VSZXNwb25zZRI4CghldmlkZW5jZRgBIAEoCzImLm5vbW9zLmtlcm5lbC52MS5Db21wYWN0aW9uRXF1aXZhbGVuY2USFQoNZXZpZGVuY2VfdXNkYRgCIAEoDCIvChBSZWFkQmxvYlJlc3BvbnNlEg0KBWZvdW5kGAEgASgIEgwKBGJsb2IYAiABKAwiLgoSUmVzb2x2ZVJlZlJlc3BvbnNlEhAKA29pZBgBIAEoCUgAiAEBQgYKBF9vaWQiKwoJUmVmUmVjb3JkEhEKCXJlZmVyZW5jZRgBIAEoCRILCgNvaWQYAiABKAkiPAoQTGlzdFJlZnNSZXNwb25zZRIoCgRyZWZzGAEgAygLMhoubm9tb3Mua2VybmVsLnYxLlJlZlJlY29yZCIOCgxBY2tub3dsZWRnZWQiJgoXV3JpdGVNZXRhQ29tbWl0UmVzcG9uc2USCwoDb2lkGAEgASgJIoMBChZMYXdDbG9zdXJlSW5mb1Jlc3BvbnNlEhAKCGlkZW50aXR5GAEgASgJEhkKEXJvb3RfbG9naWNhbF9wYXRoGAIgASgJEhMKC2Fzc2V0X2NvdW50GAMgASgEEhIKCnByaW1fY291bnQYBCABKAQSEwoLZG9tYWluX2tleXMYBSADKAki3wMKGENoZWNrcG9pbnRFeHBvcnRSZXNwb25zZRINCgVlbXB0eRgBIAEoCBITCgZjdXJzb3IYAiABKAlIAIgBARIQCghmcm9udGllchgDIAEoDBIXCgpzdGF0ZV9yb290GAQgASgJSAGIAQESEgoKc3RhdGVfdHJlZRgFIAEoCBIOCgZwaW5uZWQYBiABKAgSGwoTcmVhZF9pbmRleF9zbmFwc2hvdBgHIAEoCBIjChtyZWFkX2luZGV4X3NuYXBzaG90X3BlbmRpbmcYCCABKAgSJAoXcmVhZF9pbmRleF9zcWxpdGVfYnl0ZXMYCSABKARIAogBARIlChhyZWFkX2luZGV4X2N1c3RvZHlfYnl0ZXMYCiABKARIA4gBARJQChl2ZXJpZmllZF9mcm9udGllcl9yZWNlaXB0GAsgASgLMigubm9tb3Mua2VybmVsLnYxLlZlcmlmaWVkRnJvbnRpZXJSZWNlaXB0SASIAQFCCQoHX2N1cnNvckINCgtfc3RhdGVfcm9vdEIaChhfcmVhZF9pbmRleF9zcWxpdGVfYnl0ZXNCGwoZX3JlYWRfaW5kZXhfY3VzdG9keV9ieXRlc0IcChpfdmVyaWZpZWRfZnJvbnRpZXJfcmVjZWlwdCLrAgoYQ2hlY2twb2ludEltcG9ydFJlc3BvbnNlEhAKCHJlc3RvcmVkGAEgASgIEhMKBnJlYXNvbhgCIAEoCUgAiAEBEhcKD2Zyb250aWVyX3NlZWRlZBgDIAEoCBIlCh1mcm9udGllcl92ZXJpZmljYXRpb25fcGVuZGluZxgEIAEoCBIXCg9hZ2dyZWdhdGVfY291bnQYBSABKAQSKwoFc3BhbnMYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEwoGY3Vyc29yGAcgASgJSAGIAQESEQoJcmVhZF9vbmx5GAggASgIEhcKD2xhenlfcmVhZF9pbmRleBgJIAEoCBI3Cglhc3N1cmFuY2UYCiABKA4yJC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEFzc3VyYW5jZRISCgpyZWFkX3JlYWR5GAsgASgIQgkKB19yZWFzb25CCQoHX2N1cnNvciLAAQoUT3BlbkdpdFN0YXRlUmVzcG9uc2USDgoGb3BlbmVkGAEgASgIEhMKBnJlYXNvbhgCIAEoCUgAiAEBEhcKD2FnZ3JlZ2F0ZV9jb3VudBgDIAEoBBIrCgVzcGFucxgEIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBITCgZjdXJzb3IYBSABKAlIAYgBARISCgpyZWFkX3JlYWR5GAYgASgIQgkKB19yZWFzb25CCQoHX2N1cnNvciLpAQobQXR0YWNoTG9jYWxGcm9udGllclJlc3BvbnNlEhAKCGF0dGFjaGVkGAEgASgIEhMKBnJlYXNvbhgCIAEoCUgAiAEBEgwKBGhlYWQYAyABKAkSEgoKc3RhdGVfcm9vdBgEIAEoCRIXCg9hZ2dyZWdhdGVfY291bnQYBSABKAQSKwoFc3BhbnMYBiABKAsyHC5ub21vcy5rZXJuZWwudjEuTm9tb3NTdHJ1Y3QSEgoKcmVhZF9yZWFkeRgHIAEoCBIcChRmb3JlaWduX3NvdXJjZV9yZWFkeRgIIAEoCEIJCgdfcmVhc29uIjEKHFJlbGVhc2VXb3Jrc3BhY2VTdGF0ZVJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJIjEKHVJlbGVhc2VXb3Jrc3BhY2VTdGF0ZVJlc3BvbnNlEhAKCHJlbGVhc2VkGAEgASgIIosBChxSZWFkQ3VzdG9keVBsYWNlbWVudFJlc3BvbnNlEhUKCGZyb250aWVyGAEgASgJSACIAQESPAoGcG9saWN5GAIgASgLMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlQbGFjZW1lbnRQb2xpY3lIAYgBAUILCglfZnJvbnRpZXJCCQoHX3BvbGljeSJdChBQbGFjZW1lbnRBZG9wdGVkEhAKCGZyb250aWVyGAEgASgJEjcKBnBvbGljeRgCIAEoCzInLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5UGxhY2VtZW50UG9saWN5IloKH0luc3BlY3RDdXN0b2R5UGxhY2VtZW50UmVzcG9uc2USNwoGcG9saWN5GAEgASgLMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlQbGFjZW1lbnRQb2xpY3kiSgoXQ2FwYWNpdHlSZXNlcnZlUmVzcG9uc2USFwoPYWdncmVnYXRlX2NvdW50GAEgASgEEhYKDnJlc2VydmVkX2J5dGVzGAIgASgEIvkCChBSZXN0b3JlTWFpblNwYW5zEhAKCHRvdGFsX3VzGAEgASgEEhoKEmxpdmVfcmVmX2xvb2t1cF91cxgCIAEoBBIYChB0YXJnZXRfZGVjb2RlX3VzGAMgASgEEiQKHGN1c3RvZHlfY29tcGxldGVuZXNzX3JlYWRfdXMYBCABKAQSGQoRcXVhcmFudGluZV9yZWZfdXMYBSABKAQSJQodY2hhaW5fc2lnbmF0dXJlX2xhd19yZXBsYXlfdXMYBiABKAQSGQoRdmVyZGljdF9kZWNvZGVfdXMYByABKAQSIwobcHJvbW90ZV9hbmRfY2xlYW51cF9yZWZzX3VzGAggASgEEhsKE2Zyb250aWVyX3JlYnVpbGRfdXMYCSABKAQSGQoRZnJvbnRpZXJfc3RvcmVfdXMYCiABKAQSPQoMdmVyaWZpY2F0aW9uGAsgASgLMicubm9tb3Mua2VybmVsLnYxLlZlcmlmeUNoYWluRGlhZ25vc3RpY3Mi7wEKE1Jlc3RvcmVNYWluUmVzcG9uc2USDAoEaGVhZBgBIAEoCRIQCgh2ZXJpZmllZBgCIAEoCBIMCgR3YWxrGAMgASgJEjAKBXNwYW5zGAQgASgLMiEubm9tb3Mua2VybmVsLnYxLlJlc3RvcmVNYWluU3BhbnMSLQoHdmVyZGljdBgFIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdBI3Cglhc3N1cmFuY2UYBiABKA4yJC5ub21vcy5rZXJuZWwudjEuQ2hlY2twb2ludEFzc3VyYW5jZRIQCghhY2NlcHRlZBgHIAEoCCKbAgoKTm9tb3NWYWx1ZRIlCgRudWxsGAEgASgLMhUubm9tb3Mua2VybmVsLnYxLk51bGxIABIRCgdib29sZWFuGAIgASgISAASGAoOc2lnbmVkX2ludGVnZXIYAyABKBJIABIaChB1bnNpZ25lZF9pbnRlZ2VyGAQgASgESAASGAoOZmxvYXRpbmdfcG9pbnQYBSABKAFIABIOCgR0ZXh0GAYgASgJSAASDwoFYnl0ZXMYByABKAxIABIqCgRsaXN0GAggASgLMhoubm9tb3Mua2VybmVsLnYxLk5vbW9zTGlzdEgAEi4KBm9iamVjdBgJIAEoCzIcLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdEgAQgYKBGtpbmQiBgoETnVsbCI4CglOb21vc0xpc3QSKwoGdmFsdWVzGAEgAygLMhsubm9tb3Mua2VybmVsLnYxLk5vbW9zVmFsdWUikwEKC05vbW9zU3RydWN0EjgKBmZpZWxkcxgBIAMoCzIoLm5vbW9zLmtlcm5lbC52MS5Ob21vc1N0cnVjdC5GaWVsZHNFbnRyeRpKCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSKgoFdmFsdWUYAiABKAsyGy5ub21vcy5rZXJuZWwudjEuTm9tb3NWYWx1ZToCOAEiOgoPSGlzdG9yeVJlcXVpcmVkEhEKCXdvcmtzcGFjZRgBIAEoCRIUCgx1bnRpbF9jb21taXQYAiABKAkqbgoPTGF3VmVyc2lvbk9yZGVyEiEKHUxBV19WRVJTSU9OX09SREVSX1VOU1BFQ0lGSUVEEAASGwoXTEFXX1ZFUlNJT05fT1JERVJfRVFVQUwQARIbChdMQVdfVkVSU0lPTl9PUkRFUl9MT1dFUhACKuoBChJCaXJ0aE91dGNvbWVTdGF0dXMSJAogQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlCSVJUSF9PVVRDT01FX1NUQVRVU19CT1JOEAESIQodQklSVEhfT1VUQ09NRV9TVEFUVVNfREVGRVJSRUQQAhIfChtCSVJUSF9PVVRDT01FX1NUQVRVU19GQUlMRUQQAxIgChxCSVJUSF9PVVRDT01FX1NUQVRVU19SRUZVU0VEEAQSKQolQklSVEhfT1VUQ09NRV9TVEFUVVNfVU5XQVJSQU5URURfQ0VSVBAFKswUChFLZXJuZWxSZWZ1c2FsQ29kZRIjCh9LRVJORUxfUkVGVVNBTF9DT0RFX1VOU1BFQ0lGSUVEEAASJQohS0VSTkVMX1JFRlVTQUxfQ09ERV9CQURfU0lHTkFUVVJFEAESJAogS0VSTkVMX1JFRlVTQUxfQ09ERV9VTkFVVEhPUklaRUQQAhInCiNLRVJORUxfUkVGVVNBTF9DT0RFX1BPTElDWV9ESVNBQkxFRBADEioKJktFUk5FTF9SRUZVU0FMX0NPREVfVU5DRVJUSUZJRURfUE9MSUNZEAQSIwofS0VSTkVMX1JFRlVTQUxfQ09ERV9SRUZFUkVOVElBTBAFEi8KK0tFUk5FTF9SRUZVU0FMX0NPREVfUE9JTlRfU1RBVEVfVU5BVkFJTEFCTEUQBhIkCiBLRVJORUxfUkVGVVNBTF9DT0RFX0NBUF9FWENFRURFRBAHEi0KKUtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQX0NPVU5UX1VOQVZBSUxBQkxFEAgSKQolS0VSTkVMX1JFRlVTQUxfQ09ERV9FVklERU5DRV9VTkJBQ0tFRBAJEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfT1JQSEFOX1JFQ0VJUFQQChI2CjJLRVJORUxfUkVGVVNBTF9DT0RFX1JFQ0VJUFRfT05fVEVSTUlOQUxfT0JMSUdBVElPThALEiIKHktFUk5FTF9SRUZVU0FMX0NPREVfTk9UX01JTlRFRBAMEigKJEtFUk5FTF9SRUZVU0FMX0NPREVfRE9NQUlOX0xJRkVDWUNMRRANEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfVFlQRV9UQUdfTUlTTUFUQ0gQDhIsCihLRVJORUxfUkVGVVNBTF9DT0RFX1JFVElSRURfUkVBRF9TVVJGQUNFEA8SMAosS0VSTkVMX1JFRlVTQUxfQ09ERV9DUk9TU19XT1JLU1BBQ0VfREVDTElORUQQEBIrCidLRVJORUxfUkVGVVNBTF9DT0RFX0FHR1JFR0FURV9JTlZBUklBTlQQERIrCidLRVJORUxfUkVGVVNBTF9DT0RFX1dPUktTUEFDRV9JTlZBUklBTlQQEhIuCipLRVJORUxfUkVGVVNBTF9DT0RFX0NBUFRVUkVEX1JFQURfQ09ORkxJQ1QQExIyCi5LRVJORUxfUkVGVVNBTF9DT0RFX0NPTkZMSUNUX1NOQVBTSE9UX1JFUVVJUkVEEBQSNAowS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9VTkRFQ0xBUkVEEBUSMQotS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9JTlZBTElEEBYSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9DT05GTElDVF9TTkFQU0hPVF9TVEFMRRAXEjAKLEtFUk5FTF9SRUZVU0FMX0NPREVfQ0FQVFVSRURfUkVBRF9VTkRFQ0xBUkVEEBgSLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9DQVBUVVJFRF9SRUFEX1BSSVZBVEUQGRIwCixLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfVU5ERUNMQVJFRBAaEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNURURfUkVBRF9VTlRSVVNURURfS0VZEBsSNgoyS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1VOVFJVU1RFRF9TT1VSQ0UQHBIsCihLRVJORUxfUkVGVVNBTF9DT0RFX0FUVEVTVEVEX1JFQURfRk9SR0VEEB0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX1NUQUxFEB4SLgoqS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX09WRVJTSVpFEB8SNwozS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RFRF9SRUFEX0RJU0hPTk9SRURfU09VUkNFECASNQoxS0VSTkVMX1JFRlVTQUxfQ09ERV9FUVVJVk9DQVRJT05fRVZJREVOQ0VfSU5WQUxJRBAhEjMKL0tFUk5FTF9SRUZVU0FMX0NPREVfQVRURVNUQVRJT05fUkVDRUlQVF9JTlZBTElEECISKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfUk9TVEVSX01JU01BVENIECMSLworS0VSTkVMX1JFRlVTQUxfQ09ERV9LRVlfRVBPQ0hfTk9UX01PTk9UT05JQxAkEikKJUtFUk5FTF9SRUZVU0FMX0NPREVfV1JJVEVfRVBPQ0hfU1RBTEUQJRItCilLRVJORUxfUkVGVVNBTF9DT0RFX0VOVkVMT1BFX1NJRF9NSVNNQVRDSBAmEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfUkVWT0tFRF9NRU1CRVJfUkVTVVJSRUNURUQQJxIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX0ZPUkdFRF9QUklOQ0lQQUwQKBIoCiRLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX0tFWV9BTkNIT1IQKRImCiJLRVJORUxfUkVGVVNBTF9DT0RFX09XTkVEX1JFQ09WRVJZECoSLAooS0VSTkVMX1JFRlVTQUxfQ09ERV9TVVJGQUNFRF9CQVNJU19BSEVBRBArEjIKLktFUk5FTF9SRUZVU0FMX0NPREVfU0lHTkVSX0VQT0NIX09VVF9PRl9XSU5ET1cQLBImCiJLRVJORUxfUkVGVVNBTF9DT0RFX0VWT0xWRV9SRUZVU0VEEC0SKwonS0VSTkVMX1JFRlVTQUxfQ09ERV9BVFRFU1RBVElPTl9JTlZBTElEEC4SLQopS0VSTkVMX1JFRlVTQUxfQ09ERV9QQVJFTlRfRElEX05PVF9BVFRFU1QQLxIpCiVLRVJORUxfUkVGVVNBTF9DT0RFX0NFUlRfQ0hBSU5fQlJPS0VOEDASKgomS0VSTkVMX1JFRlVTQUxfQ09ERV9OT1RfUk9PVEVEX0FUX1JPT1QQMRIqCiZLRVJORUxfUkVGVVNBTF9DT0RFX0RFTEVHQVRJT05fSU5WQUxJRBAyEiUKIUtFUk5FTF9SRUZVU0FMX0NPREVfUExBTl9SRUpFQ1RFRBAzEiYKIktFUk5FTF9SRUZVU0FMX0NPREVfRE9NQUlOX1JFRlVTRUQQNBIxCi1LRVJORUxfUkVGVVNBTF9DT0RFX0lOVkFSSUFOVF9FWEVDVVRJT05fRkFVTFQQNRI1CjFLRVJORUxfUkVGVVNBTF9DT0RFX0NIRUNLUE9JTlRfU0lHTkVSX1VOQVZBSUxBQkxFEDYSKAokS0VSTkVMX1JFRlVTQUxfQ09ERV9PRkZFUl9CQVNFX1NUQUxFEDcSJQohS0VSTkVMX1JFRlVTQUxfQ09ERV9CSVJUSF9SRUZVU0VEEDgq7wIKEEZ1bGxSZXN1bHRSZWFzb24SIgoeRlVMTF9SRVNVTFRfUkVBU09OX1VOU1BFQ0lGSUVEEAASHgoaRlVMTF9SRVNVTFRfUkVBU09OX05PX0JBU0UQARIiCh5GVUxMX1JFU1VMVF9SRUFTT05fTEFXX0NIQU5HRUQQAhItCilGVUxMX1JFU1VMVF9SRUFTT05fUkVBRF9BVVRIT1JJVFlfQ0hBTkdFRBADEikKJUZVTExfUkVTVUxUX1JFQVNPTl9QRVJfUkVDT1JEX1JFRlVTQUwQBBIjCh9GVUxMX1JFU1VMVF9SRUFTT05fT1JERVJFRF9SRUFEEAUSJgoiRlVMTF9SRVNVTFRfUkVBU09OX1RFTVBPUkFMX0ZJRUxEUxAGEicKI0ZVTExfUkVTVUxUX1JFQVNPTl9CQVNFX1VOQVZBSUxBQkxFEAcSIwofRlVMTF9SRVNVTFRfUkVBU09OX0xFR0FDWV9TVEFURRAIKskBChNJbnRlcmZhY2VNZW1iZXJLaW5kEiUKIUlOVEVSRkFDRV9NRU1CRVJfS0lORF9VTlNQRUNJRklFRBAAEiAKHElOVEVSRkFDRV9NRU1CRVJfS0lORF9ET01BSU4QARIjCh9JTlRFUkZBQ0VfTUVNQkVSX0tJTkRfRElSRUNUSVZFEAISIwofSU5URVJGQUNFX01FTUJFUl9LSU5EX0FHR1JFR0FURRADEh8KG0lOVEVSRkFDRV9NRU1CRVJfS0lORF9GSUVMRBAEKogCChxJbnRlcmZhY2VDb21wYXRpYmlsaXR5U3RhdHVzEi4KKklOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19VTlNQRUNJRklFRBAAEigKJElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19FWEFDVBABEi0KKUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1NUQVRVU19DT01QQVRJQkxFEAISLgoqSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfU1RBVFVTX1VOQVZBSUxBQkxFEAMSLworSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfU1RBVFVTX0lOQ09NUEFUSUJMRRAEKsMDChxJbnRlcmZhY2VDb21wYXRpYmlsaXR5UmVhc29uEi4KKklOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9VTlNQRUNJRklFRBAAEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9ET01BSU5fTUlTU0lORxABEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9NRU1CRVJfTUlTU0lORxACEjAKLElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9GSUVMRF9NSVNTSU5HEAMSNQoxSU5URVJGQUNFX0NPTVBBVElCSUxJVFlfUkVBU09OX1ZBTFVFX0tJTkRfQ0hBTkdFRBAEEjcKM0lOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9SRVFVSVJFRF9JTlBVVF9BRERFRBAFEjEKLUlOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9NQVRSSVhfSU5WQUxJRBAGEjgKNElOVEVSRkFDRV9DT01QQVRJQklMSVRZX1JFQVNPTl9XSVJFX0NPTlRSQUNUX0NIQU5HRUQQByq3AgoQTWFpbnRlbmFuY2VQaGFzZRIhCh1NQUlOVEVOQU5DRV9QSEFTRV9VTlNQRUNJRklFRBAAEiQKIE1BSU5URU5BTkNFX1BIQVNFX1JFQURfRE9DVU1FTlRTEAESIgoeTUFJTlRFTkFOQ0VfUEhBU0VfU1FMSVRFX0lOREVYEAISJgoiTUFJTlRFTkFOQ0VfUEhBU0VfQ09NTUFORF9GUk9OVElFUhADEiMKH01BSU5URU5BTkNFX1BIQVNFX0NPTU1BTkRfUk9VVEUQBBIhCh1NQUlOVEVOQU5DRV9QSEFTRV9HSVRfQ1VTVE9EWRAFEiYKIk1BSU5URU5BTkNFX1BIQVNFX1JFQURfSU5ERVhfQ0FDSEUQBhIeChpNQUlOVEVOQU5DRV9QSEFTRV9DT01QTEVURRAHKooBCg9WZXJpZnlDaGFpbldhbGsSIQodVkVSSUZZX0NIQUlOX1dBTEtfVU5TUEVDSUZJRUQQABIaChZWRVJJRllfQ0hBSU5fV0FMS19GVUxMEAESHAoYVkVSSUZZX0NIQUlOX1dBTEtfU1VGRklYEAISGgoWVkVSSUZZX0NIQUlOX1dBTEtfTUVNTxADKnAKGEVmZmVjdEV4ZWN1dGlvblBsYWNlbWVudBIqCiZFRkZFQ1RfRVhFQ1VUSU9OX1BMQUNFTUVOVF9VTlNQRUNJRklFRBAAEigKJEVGRkVDVF9FWEVDVVRJT05fUExBQ0VNRU5UX0NVU1RPRElBThABKnYKGkVmZmVjdEV4ZWN1dGlvbkNhcmRpbmFsaXR5EiwKKEVGRkVDVF9FWEVDVVRJT05fQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIqCiZFRkZFQ1RfRVhFQ1VUSU9OX0NBUkRJTkFMSVRZX1NJTkdMRVRPThABKrcBChdNb2RlbExpZmVjeWNsZU9wZXJhdGlvbhIpCiVNT0RFTF9MSUZFQ1lDTEVfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASJQohTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9JTlNUQUxMEAESIwofTU9ERUxfTElGRUNZQ0xFX09QRVJBVElPTl9TVEFHRRACEiUKIU1PREVMX0xJRkVDWUNMRV9PUEVSQVRJT05fUFJPTU9URRADKtwBCh1DaGlsZFdvcmtzcGFjZUxpZmVjeWNsZVN0YXR1cxIwCixDSElMRF9XT1JLU1BBQ0VfTElGRUNZQ0xFX1NUQVRVU19VTlNQRUNJRklFRBAAEisKJ0NISUxEX1dPUktTUEFDRV9MSUZFQ1lDTEVfU1RBVFVTX0FDVElWRRABEiwKKENISUxEX1dPUktTUEFDRV9MSUZFQ1lDTEVfU1RBVFVTX1JFVElSRUQQAhIuCipDSElMRF9XT1JLU1BBQ0VfTElGRUNZQ0xFX1NUQVRVU19SRUNMQUlNRUQQAyr4AQoiRGVjbGFyZWRBdXRoZW50aWNhdGlvblByb3ZpZGVyS2luZBI1CjFERUNMQVJFRF9BVVRIRU5USUNBVElPTl9QUk9WSURFUl9LSU5EX1VOU1BFQ0lGSUVEEAASMgouREVDTEFSRURfQVVUSEVOVElDQVRJT05fUFJPVklERVJfS0lORF9TRUxFQ1RFRBABEjIKLkRFQ0xBUkVEX0FVVEhFTlRJQ0FUSU9OX1BST1ZJREVSX0tJTkRfRU5ST0xMRUQQAhIzCi9ERUNMQVJFRF9BVVRIRU5USUNBVElPTl9QUk9WSURFUl9LSU5EX1NPVkVSRUlHThADKooBChVEZWNsYXJlZExhd01lbWJlcktpbmQSKAokREVDTEFSRURfTEFXX01FTUJFUl9LSU5EX1VOU1BFQ0lGSUVEEAASJAogREVDTEFSRURfTEFXX01FTUJFUl9LSU5EX0NPTU1BTkQQARIhCh1ERUNMQVJFRF9MQVdfTUVNQkVSX0tJTkRfUkVBRBACKosGCh9Qcm92aWRlclRva2VuVmVyaWZpY2F0aW9uU3RhdHVzEjIKLlBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIsCihQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX1ZBTElEEAESNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19OT19NQVRDSElOR19LRVkQAhIuCipQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0VYUElSRUQQAxI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PVF9ZRVRfVkFMSUQQBBI2CjJQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0lTU1VFUl9NSVNNQVRDSBAFEjgKNFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfQVVESUVOQ0VfTUlTTUFUQ0gQBhI0CjBQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX0JBRF9TSUdOQVRVUkUQBxIwCixQUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX01BTEZPUk1FRBAIEjwKOFBST1ZJREVSX1RPS0VOX1ZFUklGSUNBVElPTl9TVEFUVVNfVU5TVVBQT1JURURfQUxHT1JJVEhNEAkSLgoqUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19CQURfS0VZEAoSNgoyUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1NVQkpFQ1QQCxIyCi5QUk9WSURFUl9UT0tFTl9WRVJJRklDQVRJT05fU1RBVFVTX05PX1ZFUklGSUVSEAwSNAowUFJPVklERVJfVE9LRU5fVkVSSUZJQ0FUSU9OX1NUQVRVU19NSVNTSU5HX1RPS0VOEA0qyAEKEkRldmljZVNpZ25lclN0YXR1cxIkCiBERVZJQ0VfU0lHTkVSX1NUQVRVU19VTlNQRUNJRklFRBAAEh8KG0RFVklDRV9TSUdORVJfU1RBVFVTX0FDVElWRRABEh8KG0RFVklDRV9TSUdORVJfU1RBVFVTX0FCU0VOVBACEiAKHERFVklDRV9TSUdORVJfU1RBVFVTX1JFVk9LRUQQAxIoCiRERVZJQ0VfU0lHTkVSX1NUQVRVU19LRVlfVU5BVkFJTEFCTEUQBCrXAQoTQmlydGhFdmlkZW5jZVN0YXR1cxIlCiFCSVJUSF9FVklERU5DRV9TVEFUVVNfVU5TUEVDSUZJRUQQABImCiJCSVJUSF9FVklERU5DRV9TVEFUVVNfTk9UX1JFUVVJUkVEEAESHwobQklSVEhfRVZJREVOQ0VfU1RBVFVTX1JFQURZEAISLQopQklSVEhfRVZJREVOQ0VfU1RBVFVTX0RFTEVHQVRJT05fUkVRVUlSRUQQAxIhCh1CSVJUSF9FVklERU5DRV9TVEFUVVNfSU5WQUxJRBAEKrIBChFRdWVyeVJlc3VsdEZvcm1hdBIjCh9RVUVSWV9SRVNVTFRfRk9STUFUX1VOU1BFQ0lGSUVEEAASJAogUVVFUllfUkVTVUxUX0ZPUk1BVF9MRUdBQ1lfVkFMVUUQARIkCiBRVUVSWV9SRVNVTFRfRk9STUFUX05PTUlOQUxfVVNEQRACEiwKKFFVRVJZX1JFU1VMVF9GT1JNQVRfQVBQTElDQVRJT05fUFJPVE9CVUYQAyqVDAoOUXVlcnlPcGVyYXRpb24SHwobUVVFUllfT1BFUkFUSU9OX1VOU1BFQ0lGSUVEEAASHAoYUVVFUllfT1BFUkFUSU9OX0VYVFJFTVVNEAESIAocUVVFUllfT1BFUkFUSU9OX1JFQURfUE9TVFVSRRAEEh8KG1FVRVJZX09QRVJBVElPTl9DVVJSRU5UX0xBVxAFEiMKH1FVRVJZX09QRVJBVElPTl9JTlRFUkZBQ0VfT0ZGRVIQBhInCiNRVUVSWV9PUEVSQVRJT05fUkVMQVRJT05fR0FURV9PRkZFUhAHEh0KGVFVRVJZX09QRVJBVElPTl9TQ0VORV9MQVcQCBIhCh1RVUVSWV9PUEVSQVRJT05fSU5TVEFMTEVEX0xBVxAJEhwKGFFVRVJZX09QRVJBVElPTl9ERVNDUklCRRAKEiMKH1FVRVJZX09QRVJBVElPTl9LRVJORUxfUkVTT1VSQ0UQCxIjCh9RVUVSWV9PUEVSQVRJT05fREVWRUxPUEVSX1NQQU5TEAwSKQolUVVFUllfT1BFUkFUSU9OX0RFQ0xBUkVEX0NBUEFCSUxJVElFUxANEh0KGVFVRVJZX09QRVJBVElPTl9SRUFESU5FU1MQDhIkCiBRVUVSWV9PUEVSQVRJT05fUFJPSkVDVElPTl9TVEFUUxAPEiUKIVFVRVJZX09QRVJBVElPTl9NRU1PUllfRFJPUF9QUk9CRRAQEhgKFFFVRVJZX09QRVJBVElPTl9XQVJNEBESGwoXUVVFUllfT1BFUkFUSU9OX1JFRlJFU0gQEhIgChxRVUVSWV9PUEVSQVRJT05fVkVSSUZZX0NIQUlOEBMSIgoeUVVFUllfT1BFUkFUSU9OX0NPVU5URVJGQUNUVUFMEBQSGQoVUVVFUllfT1BFUkFUSU9OX1JPVVRFEBUSJQohUVVFUllfT1BFUkFUSU9OX0NSWVBUT19TRUFMX0ZJRUxEEBgSLAooUVVFUllfT1BFUkFUSU9OX0NSWVBUT19CTElORF9JTkRFWF9UT0tFThAZEioKJlFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfU0NPUEVfS0VZEBoSLworUVVFUllfT1BFUkFUSU9OX0NSWVBUT19PV05FRF9ERVZJQ0VfUkVRVUVTVBAbEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9BUFBST1ZBTBAcEjEKLVFVRVJZX09QRVJBVElPTl9DUllQVE9fT1dORURfUFJFUEFSRV9SRUNPVkVSWRAdEiAKHFFVRVJZX09QRVJBVElPTl9SRUNFSVBUX1BBVEgQIhIdChlRVUVSWV9PUEVSQVRJT05fQ0VSVF9TSUdOECMSJQohUVVFUllfT1BFUkFUSU9OX0JJUlRIX1RSVVNUX1NUQVRFECQSIQodUVVFUllfT1BFUkFUSU9OX0VSQV9DRVJUX1NJR04QJRIoCiRRVUVSWV9PUEVSQVRJT05fREVMRUdBVElPTl9DRVJUX1NJR04QJhIpCiVRVUVSWV9PUEVSQVRJT05fQ0FOT05JQ0FMSVpFX0ZST05USUVSECcSKwonUVVFUllfT1BFUkFUSU9OX0NBTk9OSUNBTElaRV9QUk9KRUNUSU9OECgiBAgCEAIiBAgDEAMiBAgWEBYiBAgXEBciBAgeEB4iBAgfEB8iBAggECAiBAghECEqIVFVRVJZX09QRVJBVElPTl9QRU5ESU5HX0NPTkZMSUNUUyooUVVFUllfT1BFUkFUSU9OX1BFTkRJTkdfQ09ORkxJQ1RfU1VNTUFSWSoUUVVFUllfT1BFUkFUSU9OX01JTlQqHVFVRVJZX09QRVJBVElPTl9DUllQVE9fS0VZR0VOKh9RVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1dSQVBfS0VZKiFRVUVSWV9PUEVSQVRJT05fQ1JZUFRPX1VOV1JBUF9LRVkqHVFVRVJZX09QRVJBVElPTl9BVVRIT1JfS0VZR0VOKiBRVUVSWV9PUEVSQVRJT05fQVRURVNUQVRJT05fU0lHTiqpAQoZUmVhZFByb2plY3Rpb25TdG9yYWdlS2luZBIsCihSRUFEX1BST0pFQ1RJT05fU1RPUkFHRV9LSU5EX1VOU1BFQ0lGSUVEEAASKQolUkVBRF9QUk9KRUNUSU9OX1NUT1JBR0VfS0lORF9SRVNJREVOVBABEjMKL1JFQURfUFJPSkVDVElPTl9TVE9SQUdFX0tJTkRfRklMRV9CQUNLRURfU0NBTEFSEAIq0gIKFVJlc2lkZW50Q29tcG9uZW50S2luZBInCiNSRVNJREVOVF9DT01QT05FTlRfS0lORF9VTlNQRUNJRklFRBAAEiYKIlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0ZPTERfU1RBVEUQARItCilSRVNJREVOVF9DT01QT05FTlRfS0lORF9SRUFEX01PREVMX1NRTElURRACEi4KKlJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1JFQURfTU9ERUxfSU5ERVhFUxADEi0KKVJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX1NIQVJFRF9BVFRSSUJVVEVEEAQSLAooUkVTSURFTlRfQ09NUE9ORU5UX0tJTkRfV09SS1NQQUNFX0NBQ0hFUxAFEiwKKFJFU0lERU5UX0NPTVBPTkVOVF9LSU5EX0dJVF9PQkpFQ1RfQ0FDSEUQBipsChNLZXJuZWxMYXdDYXBhYmlsaXR5EiUKIUtFUk5FTF9MQVdfQ0FQQUJJTElUWV9VTlNQRUNJRklFRBAAEi4KKktFUk5FTF9MQVdfQ0FQQUJJTElUWV9TVEFHRV9aRVJPX0JPT1RTVFJBUBABKlkKFUNoZWNrcG9pbnRDb21wcmVzc2lvbhIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX05PTkUQABIfChtDSEVDS1BPSU5UX0NPTVBSRVNTSU9OX0daSVAQASqRAQocQ2hlY2twb2ludFZlcmlmaWNhdGlvblBvbGljeRIzCi9DSEVDS1BPSU5UX1ZFUklGSUNBVElPTl9QT0xJQ1lfVkVSSUZZX0NBTk9OSUNBTBAAEjwKOENIRUNLUE9JTlRfVkVSSUZJQ0FUSU9OX1BPTElDWV9UUlVTVF9QUkVWSU9VU0xZX1ZFUklGSUVEEAEqgAEKE0NoZWNrcG9pbnRBc3N1cmFuY2USJAogQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVU5TUEVDSUZJRUQQABIgChxDSEVDS1BPSU5UX0FTU1VSQU5DRV9UUlVTVEVEEAESIQodQ0hFQ0tQT0lOVF9BU1NVUkFOQ0VfVkVSSUZJRUQQAiqJAQoVS2VybmVsUmVzaWRlbmN5SW50ZW50EicKI0tFUk5FTF9SRVNJREVOQ1lfSU5URU5UX1VOU1BFQ0lGSUVEEAASIAocS0VSTkVMX1JFU0lERU5DWV9JTlRFTlRfV0FSTRABEiUKIUtFUk5FTF9SRVNJREVOQ1lfSU5URU5UX09OX0RFTUFORBACKq4BChZDdXN0b2R5UmV0ZW50aW9uSW50ZW50EigKJENVU1RPRFlfUkVURU5USU9OX0lOVEVOVF9VTlNQRUNJRklFRBAAEiMKH0NVU1RPRFlfUkVURU5USU9OX0lOVEVOVF9SRVRBSU4QARIiCh5DVVNUT0RZX1JFVEVOVElPTl9JTlRFTlRfQ0FDSEUQAhIhCh1DVVNUT0RZX1JFVEVOVElPTl9JTlRFTlRfTk9ORRADKqgBChpJbnRlbnRUcmFuc3BvcnRSZXF1aXJlbWVudBIsCihJTlRFTlRfVFJBTlNQT1JUX1JFUVVJUkVNRU5UX1VOU1BFQ0lGSUVEEAASLgoqSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9TRUFMRURfQ0hBTkdFEAESLAooSU5URU5UX1RSQU5TUE9SVF9SRVFVSVJFTUVOVF9DT01NSVRfVFJFRRACKokBChVMaWZlY3ljbGVJbnN0YWxsUGhhc2USJwojTElGRUNZQ0xFX0lOU1RBTExfUEhBU0VfVU5TUEVDSUZJRUQQABIiCh5MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9BQ1RJVkUQARIjCh9MSUZFQ1lDTEVfSU5TVEFMTF9QSEFTRV9QRU5ESU5HEAIyWQoSTm9tb3NLZXJuZWxTZXJ2aWNlEkMKBENhbGwSHC5ub21vcy5rZXJuZWwudjEuQ2FsbFJlcXVlc3QaHS5ub21vcy5rZXJuZWwudjEuQ2FsbFJlc3BvbnNlYgZwcm90bzM", [file_google_protobuf_any]);
13
13
 
14
14
  /**
15
15
  * Describes the message nomos.kernel.v1.CallRequest.
@@ -102,1019 +102,1068 @@ export const RecordedWorkspaceEffectOutcomeSchema = /*@__PURE__*/
102
102
  export const OfferAdmittedSchema = /*@__PURE__*/
103
103
  messageDesc(file_nomos_kernel_v1_kernel, 12);
104
104
 
105
+ /**
106
+ * Describes the message nomos.kernel.v1.LawIdentity.
107
+ * Use `create(LawIdentitySchema)` to create a new message.
108
+ */
109
+ export const LawIdentitySchema = /*@__PURE__*/
110
+ messageDesc(file_nomos_kernel_v1_kernel, 13);
111
+
112
+ /**
113
+ * Describes the message nomos.kernel.v1.LawVersion.
114
+ * Use `create(LawVersionSchema)` to create a new message.
115
+ */
116
+ export const LawVersionSchema = /*@__PURE__*/
117
+ messageDesc(file_nomos_kernel_v1_kernel, 14);
118
+
119
+ /**
120
+ * Describes the message nomos.kernel.v1.LawVersionClaim.
121
+ * Use `create(LawVersionClaimSchema)` to create a new message.
122
+ */
123
+ export const LawVersionClaimSchema = /*@__PURE__*/
124
+ messageDesc(file_nomos_kernel_v1_kernel, 15);
125
+
126
+ /**
127
+ * Describes the message nomos.kernel.v1.LawVersionWarning.
128
+ * Use `create(LawVersionWarningSchema)` to create a new message.
129
+ */
130
+ export const LawVersionWarningSchema = /*@__PURE__*/
131
+ messageDesc(file_nomos_kernel_v1_kernel, 16);
132
+
133
+ /**
134
+ * Describes the message nomos.kernel.v1.OfferStateChange.
135
+ * Use `create(OfferStateChangeSchema)` to create a new message.
136
+ */
137
+ export const OfferStateChangeSchema = /*@__PURE__*/
138
+ messageDesc(file_nomos_kernel_v1_kernel, 17);
139
+
105
140
  /**
106
141
  * Describes the message nomos.kernel.v1.OfferAggregateRef.
107
142
  * Use `create(OfferAggregateRefSchema)` to create a new message.
108
143
  */
109
144
  export const OfferAggregateRefSchema = /*@__PURE__*/
110
- messageDesc(file_nomos_kernel_v1_kernel, 13);
145
+ messageDesc(file_nomos_kernel_v1_kernel, 18);
111
146
 
112
147
  /**
113
148
  * Describes the message nomos.kernel.v1.BornWorkspace.
114
149
  * Use `create(BornWorkspaceSchema)` to create a new message.
115
150
  */
116
151
  export const BornWorkspaceSchema = /*@__PURE__*/
117
- messageDesc(file_nomos_kernel_v1_kernel, 14);
152
+ messageDesc(file_nomos_kernel_v1_kernel, 19);
118
153
 
119
154
  /**
120
155
  * Describes the message nomos.kernel.v1.BirthOutcome.
121
156
  * Use `create(BirthOutcomeSchema)` to create a new message.
122
157
  */
123
158
  export const BirthOutcomeSchema = /*@__PURE__*/
124
- messageDesc(file_nomos_kernel_v1_kernel, 15);
159
+ messageDesc(file_nomos_kernel_v1_kernel, 20);
125
160
 
126
161
  /**
127
162
  * Describes the message nomos.kernel.v1.KernelSpanMetric.
128
163
  * Use `create(KernelSpanMetricSchema)` to create a new message.
129
164
  */
130
165
  export const KernelSpanMetricSchema = /*@__PURE__*/
131
- messageDesc(file_nomos_kernel_v1_kernel, 16);
166
+ messageDesc(file_nomos_kernel_v1_kernel, 21);
132
167
 
133
168
  /**
134
169
  * Describes the message nomos.kernel.v1.KernelSpan.
135
170
  * Use `create(KernelSpanSchema)` to create a new message.
136
171
  */
137
172
  export const KernelSpanSchema = /*@__PURE__*/
138
- messageDesc(file_nomos_kernel_v1_kernel, 17);
173
+ messageDesc(file_nomos_kernel_v1_kernel, 22);
139
174
 
140
175
  /**
141
176
  * Describes the message nomos.kernel.v1.KernelSpans.
142
177
  * Use `create(KernelSpansSchema)` to create a new message.
143
178
  */
144
179
  export const KernelSpansSchema = /*@__PURE__*/
145
- messageDesc(file_nomos_kernel_v1_kernel, 18);
180
+ messageDesc(file_nomos_kernel_v1_kernel, 23);
146
181
 
147
182
  /**
148
183
  * Describes the message nomos.kernel.v1.DomainRefusal.
149
184
  * Use `create(DomainRefusalSchema)` to create a new message.
150
185
  */
151
186
  export const DomainRefusalSchema = /*@__PURE__*/
152
- messageDesc(file_nomos_kernel_v1_kernel, 19);
187
+ messageDesc(file_nomos_kernel_v1_kernel, 24);
153
188
 
154
189
  /**
155
190
  * Describes the message nomos.kernel.v1.OfferRefused.
156
191
  * Use `create(OfferRefusedSchema)` to create a new message.
157
192
  */
158
193
  export const OfferRefusedSchema = /*@__PURE__*/
159
- messageDesc(file_nomos_kernel_v1_kernel, 20);
194
+ messageDesc(file_nomos_kernel_v1_kernel, 25);
160
195
 
161
196
  /**
162
197
  * Describes the message nomos.kernel.v1.OfferDeadLettered.
163
198
  * Use `create(OfferDeadLetteredSchema)` to create a new message.
164
199
  */
165
200
  export const OfferDeadLetteredSchema = /*@__PURE__*/
166
- messageDesc(file_nomos_kernel_v1_kernel, 21);
201
+ messageDesc(file_nomos_kernel_v1_kernel, 26);
167
202
 
168
203
  /**
169
204
  * Describes the message nomos.kernel.v1.OfferQuarantined.
170
205
  * Use `create(OfferQuarantinedSchema)` to create a new message.
171
206
  */
172
207
  export const OfferQuarantinedSchema = /*@__PURE__*/
173
- messageDesc(file_nomos_kernel_v1_kernel, 22);
208
+ messageDesc(file_nomos_kernel_v1_kernel, 27);
174
209
 
175
210
  /**
176
211
  * Describes the message nomos.kernel.v1.OfferBlockedOnDependency.
177
212
  * Use `create(OfferBlockedOnDependencySchema)` to create a new message.
178
213
  */
179
214
  export const OfferBlockedOnDependencySchema = /*@__PURE__*/
180
- messageDesc(file_nomos_kernel_v1_kernel, 23);
215
+ messageDesc(file_nomos_kernel_v1_kernel, 28);
181
216
 
182
217
  /**
183
218
  * Describes the message nomos.kernel.v1.OfferPrepared.
184
219
  * Use `create(OfferPreparedSchema)` to create a new message.
185
220
  */
186
221
  export const OfferPreparedSchema = /*@__PURE__*/
187
- messageDesc(file_nomos_kernel_v1_kernel, 24);
222
+ messageDesc(file_nomos_kernel_v1_kernel, 29);
188
223
 
189
224
  /**
190
225
  * Describes the message nomos.kernel.v1.DetachedSigningInputs.
191
226
  * Use `create(DetachedSigningInputsSchema)` to create a new message.
192
227
  */
193
228
  export const DetachedSigningInputsSchema = /*@__PURE__*/
194
- messageDesc(file_nomos_kernel_v1_kernel, 25);
229
+ messageDesc(file_nomos_kernel_v1_kernel, 30);
195
230
 
196
231
  /**
197
232
  * Describes the message nomos.kernel.v1.DetachedSignedChange.
198
233
  * Use `create(DetachedSignedChangeSchema)` to create a new message.
199
234
  */
200
235
  export const DetachedSignedChangeSchema = /*@__PURE__*/
201
- messageDesc(file_nomos_kernel_v1_kernel, 26);
236
+ messageDesc(file_nomos_kernel_v1_kernel, 31);
202
237
 
203
238
  /**
204
239
  * Describes the message nomos.kernel.v1.SignPreparedOfferRequest.
205
240
  * Use `create(SignPreparedOfferRequestSchema)` to create a new message.
206
241
  */
207
242
  export const SignPreparedOfferRequestSchema = /*@__PURE__*/
208
- messageDesc(file_nomos_kernel_v1_kernel, 27);
243
+ messageDesc(file_nomos_kernel_v1_kernel, 32);
209
244
 
210
245
  /**
211
246
  * Describes the message nomos.kernel.v1.SignPreparedOfferResponse.
212
247
  * Use `create(SignPreparedOfferResponseSchema)` to create a new message.
213
248
  */
214
249
  export const SignPreparedOfferResponseSchema = /*@__PURE__*/
215
- messageDesc(file_nomos_kernel_v1_kernel, 28);
250
+ messageDesc(file_nomos_kernel_v1_kernel, 33);
216
251
 
217
252
  /**
218
253
  * Describes the message nomos.kernel.v1.PrepareRemoteOfferRequest.
219
254
  * Use `create(PrepareRemoteOfferRequestSchema)` to create a new message.
220
255
  */
221
256
  export const PrepareRemoteOfferRequestSchema = /*@__PURE__*/
222
- messageDesc(file_nomos_kernel_v1_kernel, 29);
257
+ messageDesc(file_nomos_kernel_v1_kernel, 34);
223
258
 
224
259
  /**
225
260
  * Describes the message nomos.kernel.v1.OfferPreparationChallenge.
226
261
  * Use `create(OfferPreparationChallengeSchema)` to create a new message.
227
262
  */
228
263
  export const OfferPreparationChallengeSchema = /*@__PURE__*/
229
- messageDesc(file_nomos_kernel_v1_kernel, 30);
264
+ messageDesc(file_nomos_kernel_v1_kernel, 35);
230
265
 
231
266
  /**
232
267
  * Describes the message nomos.kernel.v1.PrepareRemoteOfferResponse.
233
268
  * Use `create(PrepareRemoteOfferResponseSchema)` to create a new message.
234
269
  */
235
270
  export const PrepareRemoteOfferResponseSchema = /*@__PURE__*/
236
- messageDesc(file_nomos_kernel_v1_kernel, 31);
271
+ messageDesc(file_nomos_kernel_v1_kernel, 36);
237
272
 
238
273
  /**
239
274
  * Describes the message nomos.kernel.v1.SignOfferPreparationRequest.
240
275
  * Use `create(SignOfferPreparationRequestSchema)` to create a new message.
241
276
  */
242
277
  export const SignOfferPreparationRequestSchema = /*@__PURE__*/
243
- messageDesc(file_nomos_kernel_v1_kernel, 32);
278
+ messageDesc(file_nomos_kernel_v1_kernel, 37);
244
279
 
245
280
  /**
246
281
  * Describes the message nomos.kernel.v1.SignOfferPreparationResponse.
247
282
  * Use `create(SignOfferPreparationResponseSchema)` to create a new message.
248
283
  */
249
284
  export const SignOfferPreparationResponseSchema = /*@__PURE__*/
250
- messageDesc(file_nomos_kernel_v1_kernel, 33);
285
+ messageDesc(file_nomos_kernel_v1_kernel, 38);
251
286
 
252
287
  /**
253
288
  * Describes the message nomos.kernel.v1.SigningIdentityRequest.
254
289
  * Use `create(SigningIdentityRequestSchema)` to create a new message.
255
290
  */
256
291
  export const SigningIdentityRequestSchema = /*@__PURE__*/
257
- messageDesc(file_nomos_kernel_v1_kernel, 34);
292
+ messageDesc(file_nomos_kernel_v1_kernel, 39);
258
293
 
259
294
  /**
260
295
  * Describes the message nomos.kernel.v1.GenerateSigningKeyPair.
261
296
  * Use `create(GenerateSigningKeyPairSchema)` to create a new message.
262
297
  */
263
298
  export const GenerateSigningKeyPairSchema = /*@__PURE__*/
264
- messageDesc(file_nomos_kernel_v1_kernel, 35);
299
+ messageDesc(file_nomos_kernel_v1_kernel, 40);
265
300
 
266
301
  /**
267
302
  * Describes the message nomos.kernel.v1.DeriveSigningPublicKey.
268
303
  * Use `create(DeriveSigningPublicKeySchema)` to create a new message.
269
304
  */
270
305
  export const DeriveSigningPublicKeySchema = /*@__PURE__*/
271
- messageDesc(file_nomos_kernel_v1_kernel, 36);
306
+ messageDesc(file_nomos_kernel_v1_kernel, 41);
272
307
 
273
308
  /**
274
309
  * Describes the message nomos.kernel.v1.SigningIdentityResponse.
275
310
  * Use `create(SigningIdentityResponseSchema)` to create a new message.
276
311
  */
277
312
  export const SigningIdentityResponseSchema = /*@__PURE__*/
278
- messageDesc(file_nomos_kernel_v1_kernel, 37);
313
+ messageDesc(file_nomos_kernel_v1_kernel, 42);
279
314
 
280
315
  /**
281
316
  * Describes the message nomos.kernel.v1.SigningKeyPair.
282
317
  * Use `create(SigningKeyPairSchema)` to create a new message.
283
318
  */
284
319
  export const SigningKeyPairSchema = /*@__PURE__*/
285
- messageDesc(file_nomos_kernel_v1_kernel, 38);
320
+ messageDesc(file_nomos_kernel_v1_kernel, 43);
286
321
 
287
322
  /**
288
323
  * Describes the message nomos.kernel.v1.SigningPublicKey.
289
324
  * Use `create(SigningPublicKeySchema)` to create a new message.
290
325
  */
291
326
  export const SigningPublicKeySchema = /*@__PURE__*/
292
- messageDesc(file_nomos_kernel_v1_kernel, 39);
327
+ messageDesc(file_nomos_kernel_v1_kernel, 44);
293
328
 
294
329
  /**
295
330
  * Describes the message nomos.kernel.v1.SignAuthorityAttestationRequest.
296
331
  * Use `create(SignAuthorityAttestationRequestSchema)` to create a new message.
297
332
  */
298
333
  export const SignAuthorityAttestationRequestSchema = /*@__PURE__*/
299
- messageDesc(file_nomos_kernel_v1_kernel, 40);
334
+ messageDesc(file_nomos_kernel_v1_kernel, 45);
300
335
 
301
336
  /**
302
337
  * Describes the message nomos.kernel.v1.SignAuthorityAttestationResponse.
303
338
  * Use `create(SignAuthorityAttestationResponseSchema)` to create a new message.
304
339
  */
305
340
  export const SignAuthorityAttestationResponseSchema = /*@__PURE__*/
306
- messageDesc(file_nomos_kernel_v1_kernel, 41);
341
+ messageDesc(file_nomos_kernel_v1_kernel, 46);
307
342
 
308
343
  /**
309
344
  * Describes the message nomos.kernel.v1.MintTypedIdRequest.
310
345
  * Use `create(MintTypedIdRequestSchema)` to create a new message.
311
346
  */
312
347
  export const MintTypedIdRequestSchema = /*@__PURE__*/
313
- messageDesc(file_nomos_kernel_v1_kernel, 42);
348
+ messageDesc(file_nomos_kernel_v1_kernel, 47);
314
349
 
315
350
  /**
316
351
  * Describes the message nomos.kernel.v1.MintTypedIdResponse.
317
352
  * Use `create(MintTypedIdResponseSchema)` to create a new message.
318
353
  */
319
354
  export const MintTypedIdResponseSchema = /*@__PURE__*/
320
- messageDesc(file_nomos_kernel_v1_kernel, 43);
355
+ messageDesc(file_nomos_kernel_v1_kernel, 48);
321
356
 
322
357
  /**
323
358
  * Describes the message nomos.kernel.v1.EncryptionIdentityRequest.
324
359
  * Use `create(EncryptionIdentityRequestSchema)` to create a new message.
325
360
  */
326
361
  export const EncryptionIdentityRequestSchema = /*@__PURE__*/
327
- messageDesc(file_nomos_kernel_v1_kernel, 44);
362
+ messageDesc(file_nomos_kernel_v1_kernel, 49);
328
363
 
329
364
  /**
330
365
  * Describes the message nomos.kernel.v1.EncryptionIdentityResponse.
331
366
  * Use `create(EncryptionIdentityResponseSchema)` to create a new message.
332
367
  */
333
368
  export const EncryptionIdentityResponseSchema = /*@__PURE__*/
334
- messageDesc(file_nomos_kernel_v1_kernel, 45);
369
+ messageDesc(file_nomos_kernel_v1_kernel, 50);
335
370
 
336
371
  /**
337
372
  * Describes the message nomos.kernel.v1.WrapScopeKeyRequest.
338
373
  * Use `create(WrapScopeKeyRequestSchema)` to create a new message.
339
374
  */
340
375
  export const WrapScopeKeyRequestSchema = /*@__PURE__*/
341
- messageDesc(file_nomos_kernel_v1_kernel, 46);
376
+ messageDesc(file_nomos_kernel_v1_kernel, 51);
342
377
 
343
378
  /**
344
379
  * Describes the message nomos.kernel.v1.WrapScopeKeyResponse.
345
380
  * Use `create(WrapScopeKeyResponseSchema)` to create a new message.
346
381
  */
347
382
  export const WrapScopeKeyResponseSchema = /*@__PURE__*/
348
- messageDesc(file_nomos_kernel_v1_kernel, 47);
383
+ messageDesc(file_nomos_kernel_v1_kernel, 52);
349
384
 
350
385
  /**
351
386
  * Describes the message nomos.kernel.v1.UnwrapScopeKeyRequest.
352
387
  * Use `create(UnwrapScopeKeyRequestSchema)` to create a new message.
353
388
  */
354
389
  export const UnwrapScopeKeyRequestSchema = /*@__PURE__*/
355
- messageDesc(file_nomos_kernel_v1_kernel, 48);
390
+ messageDesc(file_nomos_kernel_v1_kernel, 53);
356
391
 
357
392
  /**
358
393
  * Describes the message nomos.kernel.v1.UnwrapScopeKeyResponse.
359
394
  * Use `create(UnwrapScopeKeyResponseSchema)` to create a new message.
360
395
  */
361
396
  export const UnwrapScopeKeyResponseSchema = /*@__PURE__*/
362
- messageDesc(file_nomos_kernel_v1_kernel, 49);
397
+ messageDesc(file_nomos_kernel_v1_kernel, 54);
363
398
 
364
399
  /**
365
400
  * Describes the message nomos.kernel.v1.KernelRefusal.
366
401
  * Use `create(KernelRefusalSchema)` to create a new message.
367
402
  */
368
403
  export const KernelRefusalSchema = /*@__PURE__*/
369
- messageDesc(file_nomos_kernel_v1_kernel, 50);
404
+ messageDesc(file_nomos_kernel_v1_kernel, 55);
370
405
 
371
406
  /**
372
407
  * Describes the message nomos.kernel.v1.QueryResponse.
373
408
  * Use `create(QueryResponseSchema)` to create a new message.
374
409
  */
375
410
  export const QueryResponseSchema = /*@__PURE__*/
376
- messageDesc(file_nomos_kernel_v1_kernel, 51);
411
+ messageDesc(file_nomos_kernel_v1_kernel, 56);
412
+
413
+ /**
414
+ * Describes the message nomos.kernel.v1.ReadDependencies.
415
+ * Use `create(ReadDependenciesSchema)` to create a new message.
416
+ */
417
+ export const ReadDependenciesSchema = /*@__PURE__*/
418
+ messageDesc(file_nomos_kernel_v1_kernel, 57);
419
+
420
+ /**
421
+ * Describes the message nomos.kernel.v1.ApplicationResultDelta.
422
+ * Use `create(ApplicationResultDeltaSchema)` to create a new message.
423
+ */
424
+ export const ApplicationResultDeltaSchema = /*@__PURE__*/
425
+ messageDesc(file_nomos_kernel_v1_kernel, 58);
377
426
 
378
427
  /**
379
428
  * Describes the message nomos.kernel.v1.OpenApiDescriptionResponse.
380
429
  * Use `create(OpenApiDescriptionResponseSchema)` to create a new message.
381
430
  */
382
431
  export const OpenApiDescriptionResponseSchema = /*@__PURE__*/
383
- messageDesc(file_nomos_kernel_v1_kernel, 52);
432
+ messageDesc(file_nomos_kernel_v1_kernel, 59);
384
433
 
385
434
  /**
386
435
  * Describes the message nomos.kernel.v1.InterfaceCompatibilityQuery.
387
436
  * Use `create(InterfaceCompatibilityQuerySchema)` to create a new message.
388
437
  */
389
438
  export const InterfaceCompatibilityQuerySchema = /*@__PURE__*/
390
- messageDesc(file_nomos_kernel_v1_kernel, 53);
439
+ messageDesc(file_nomos_kernel_v1_kernel, 60);
391
440
 
392
441
  /**
393
442
  * Describes the message nomos.kernel.v1.InterfaceMemberVerdict.
394
443
  * Use `create(InterfaceMemberVerdictSchema)` to create a new message.
395
444
  */
396
445
  export const InterfaceMemberVerdictSchema = /*@__PURE__*/
397
- messageDesc(file_nomos_kernel_v1_kernel, 54);
446
+ messageDesc(file_nomos_kernel_v1_kernel, 61);
398
447
 
399
448
  /**
400
449
  * Describes the message nomos.kernel.v1.InterfaceCompatibilityResponse.
401
450
  * Use `create(InterfaceCompatibilityResponseSchema)` to create a new message.
402
451
  */
403
452
  export const InterfaceCompatibilityResponseSchema = /*@__PURE__*/
404
- messageDesc(file_nomos_kernel_v1_kernel, 55);
453
+ messageDesc(file_nomos_kernel_v1_kernel, 62);
405
454
 
406
455
  /**
407
456
  * Describes the message nomos.kernel.v1.WarmProgressResponse.
408
457
  * Use `create(WarmProgressResponseSchema)` to create a new message.
409
458
  */
410
459
  export const WarmProgressResponseSchema = /*@__PURE__*/
411
- messageDesc(file_nomos_kernel_v1_kernel, 56);
460
+ messageDesc(file_nomos_kernel_v1_kernel, 63);
412
461
 
413
462
  /**
414
463
  * Describes the message nomos.kernel.v1.ReadIndexPending.
415
464
  * Use `create(ReadIndexPendingSchema)` to create a new message.
416
465
  */
417
466
  export const ReadIndexPendingSchema = /*@__PURE__*/
418
- messageDesc(file_nomos_kernel_v1_kernel, 57);
467
+ messageDesc(file_nomos_kernel_v1_kernel, 64);
419
468
 
420
469
  /**
421
470
  * Describes the message nomos.kernel.v1.MaintenanceQuantumQuery.
422
471
  * Use `create(MaintenanceQuantumQuerySchema)` to create a new message.
423
472
  */
424
473
  export const MaintenanceQuantumQuerySchema = /*@__PURE__*/
425
- messageDesc(file_nomos_kernel_v1_kernel, 58);
474
+ messageDesc(file_nomos_kernel_v1_kernel, 65);
426
475
 
427
476
  /**
428
477
  * Describes the message nomos.kernel.v1.MaintenanceQuantumResponse.
429
478
  * Use `create(MaintenanceQuantumResponseSchema)` to create a new message.
430
479
  */
431
480
  export const MaintenanceQuantumResponseSchema = /*@__PURE__*/
432
- messageDesc(file_nomos_kernel_v1_kernel, 59);
481
+ messageDesc(file_nomos_kernel_v1_kernel, 66);
433
482
 
434
483
  /**
435
484
  * Describes the message nomos.kernel.v1.OsgiAttribute.
436
485
  * Use `create(OsgiAttributeSchema)` to create a new message.
437
486
  */
438
487
  export const OsgiAttributeSchema = /*@__PURE__*/
439
- messageDesc(file_nomos_kernel_v1_kernel, 60);
488
+ messageDesc(file_nomos_kernel_v1_kernel, 67);
440
489
 
441
490
  /**
442
491
  * Describes the message nomos.kernel.v1.OsgiDirective.
443
492
  * Use `create(OsgiDirectiveSchema)` to create a new message.
444
493
  */
445
494
  export const OsgiDirectiveSchema = /*@__PURE__*/
446
- messageDesc(file_nomos_kernel_v1_kernel, 61);
495
+ messageDesc(file_nomos_kernel_v1_kernel, 68);
447
496
 
448
497
  /**
449
498
  * Describes the message nomos.kernel.v1.OsgiCapability.
450
499
  * Use `create(OsgiCapabilitySchema)` to create a new message.
451
500
  */
452
501
  export const OsgiCapabilitySchema = /*@__PURE__*/
453
- messageDesc(file_nomos_kernel_v1_kernel, 62);
502
+ messageDesc(file_nomos_kernel_v1_kernel, 69);
454
503
 
455
504
  /**
456
505
  * Describes the message nomos.kernel.v1.OsgiRequirement.
457
506
  * Use `create(OsgiRequirementSchema)` to create a new message.
458
507
  */
459
508
  export const OsgiRequirementSchema = /*@__PURE__*/
460
- messageDesc(file_nomos_kernel_v1_kernel, 63);
509
+ messageDesc(file_nomos_kernel_v1_kernel, 70);
461
510
 
462
511
  /**
463
512
  * Describes the message nomos.kernel.v1.OsgiResourceResponse.
464
513
  * Use `create(OsgiResourceResponseSchema)` to create a new message.
465
514
  */
466
515
  export const OsgiResourceResponseSchema = /*@__PURE__*/
467
- messageDesc(file_nomos_kernel_v1_kernel, 64);
516
+ messageDesc(file_nomos_kernel_v1_kernel, 71);
468
517
 
469
518
  /**
470
519
  * Describes the message nomos.kernel.v1.VerifyChainStepSpan.
471
520
  * Use `create(VerifyChainStepSpanSchema)` to create a new message.
472
521
  */
473
522
  export const VerifyChainStepSpanSchema = /*@__PURE__*/
474
- messageDesc(file_nomos_kernel_v1_kernel, 65);
523
+ messageDesc(file_nomos_kernel_v1_kernel, 72);
475
524
 
476
525
  /**
477
526
  * Describes the message nomos.kernel.v1.VerifyChainStepPhases.
478
527
  * Use `create(VerifyChainStepPhasesSchema)` to create a new message.
479
528
  */
480
529
  export const VerifyChainStepPhasesSchema = /*@__PURE__*/
481
- messageDesc(file_nomos_kernel_v1_kernel, 66);
530
+ messageDesc(file_nomos_kernel_v1_kernel, 73);
482
531
 
483
532
  /**
484
533
  * Describes the message nomos.kernel.v1.VerifyChainDiagnostics.
485
534
  * Use `create(VerifyChainDiagnosticsSchema)` to create a new message.
486
535
  */
487
536
  export const VerifyChainDiagnosticsSchema = /*@__PURE__*/
488
- messageDesc(file_nomos_kernel_v1_kernel, 67);
537
+ messageDesc(file_nomos_kernel_v1_kernel, 74);
489
538
 
490
539
  /**
491
540
  * Describes the message nomos.kernel.v1.VerifyChainEngineTiming.
492
541
  * Use `create(VerifyChainEngineTimingSchema)` to create a new message.
493
542
  */
494
543
  export const VerifyChainEngineTimingSchema = /*@__PURE__*/
495
- messageDesc(file_nomos_kernel_v1_kernel, 68);
544
+ messageDesc(file_nomos_kernel_v1_kernel, 75);
496
545
 
497
546
  /**
498
547
  * Describes the message nomos.kernel.v1.VerifyChainLawHydrationTiming.
499
548
  * Use `create(VerifyChainLawHydrationTimingSchema)` to create a new message.
500
549
  */
501
550
  export const VerifyChainLawHydrationTimingSchema = /*@__PURE__*/
502
- messageDesc(file_nomos_kernel_v1_kernel, 69);
551
+ messageDesc(file_nomos_kernel_v1_kernel, 76);
503
552
 
504
553
  /**
505
554
  * Describes the message nomos.kernel.v1.HttpsExecutionPolicy.
506
555
  * Use `create(HttpsExecutionPolicySchema)` to create a new message.
507
556
  */
508
557
  export const HttpsExecutionPolicySchema = /*@__PURE__*/
509
- messageDesc(file_nomos_kernel_v1_kernel, 70);
558
+ messageDesc(file_nomos_kernel_v1_kernel, 77);
510
559
 
511
560
  /**
512
561
  * Describes the message nomos.kernel.v1.HttpsOutboundRoute.
513
562
  * Use `create(HttpsOutboundRouteSchema)` to create a new message.
514
563
  */
515
564
  export const HttpsOutboundRouteSchema = /*@__PURE__*/
516
- messageDesc(file_nomos_kernel_v1_kernel, 71);
565
+ messageDesc(file_nomos_kernel_v1_kernel, 78);
517
566
 
518
567
  /**
519
568
  * Describes the message nomos.kernel.v1.WorkspaceOutboundRoute.
520
569
  * Use `create(WorkspaceOutboundRouteSchema)` to create a new message.
521
570
  */
522
571
  export const WorkspaceOutboundRouteSchema = /*@__PURE__*/
523
- messageDesc(file_nomos_kernel_v1_kernel, 72);
572
+ messageDesc(file_nomos_kernel_v1_kernel, 79);
524
573
 
525
574
  /**
526
575
  * Describes the message nomos.kernel.v1.CarriedWorkspaceOffer.
527
576
  * Use `create(CarriedWorkspaceOfferSchema)` to create a new message.
528
577
  */
529
578
  export const CarriedWorkspaceOfferSchema = /*@__PURE__*/
530
- messageDesc(file_nomos_kernel_v1_kernel, 73);
579
+ messageDesc(file_nomos_kernel_v1_kernel, 80);
531
580
 
532
581
  /**
533
582
  * Describes the message nomos.kernel.v1.OutboundOffer.
534
583
  * Use `create(OutboundOfferSchema)` to create a new message.
535
584
  */
536
585
  export const OutboundOfferSchema = /*@__PURE__*/
537
- messageDesc(file_nomos_kernel_v1_kernel, 74);
586
+ messageDesc(file_nomos_kernel_v1_kernel, 81);
538
587
 
539
588
  /**
540
589
  * Describes the message nomos.kernel.v1.OutboxResponse.
541
590
  * Use `create(OutboxResponseSchema)` to create a new message.
542
591
  */
543
592
  export const OutboxResponseSchema = /*@__PURE__*/
544
- messageDesc(file_nomos_kernel_v1_kernel, 75);
593
+ messageDesc(file_nomos_kernel_v1_kernel, 82);
545
594
 
546
595
  /**
547
596
  * Describes the message nomos.kernel.v1.OutboxEntry.
548
597
  * Use `create(OutboxEntrySchema)` to create a new message.
549
598
  */
550
599
  export const OutboxEntrySchema = /*@__PURE__*/
551
- messageDesc(file_nomos_kernel_v1_kernel, 76);
600
+ messageDesc(file_nomos_kernel_v1_kernel, 83);
552
601
 
553
602
  /**
554
603
  * Describes the message nomos.kernel.v1.PrepareOutboundOffer.
555
604
  * Use `create(PrepareOutboundOfferSchema)` to create a new message.
556
605
  */
557
606
  export const PrepareOutboundOfferSchema = /*@__PURE__*/
558
- messageDesc(file_nomos_kernel_v1_kernel, 77);
607
+ messageDesc(file_nomos_kernel_v1_kernel, 84);
559
608
 
560
609
  /**
561
610
  * Describes the message nomos.kernel.v1.SyncResponse.
562
611
  * Use `create(SyncResponseSchema)` to create a new message.
563
612
  */
564
613
  export const SyncResponseSchema = /*@__PURE__*/
565
- messageDesc(file_nomos_kernel_v1_kernel, 78);
614
+ messageDesc(file_nomos_kernel_v1_kernel, 85);
566
615
 
567
616
  /**
568
617
  * Describes the message nomos.kernel.v1.CustodyDisagreement.
569
618
  * Use `create(CustodyDisagreementSchema)` to create a new message.
570
619
  */
571
620
  export const CustodyDisagreementSchema = /*@__PURE__*/
572
- messageDesc(file_nomos_kernel_v1_kernel, 79);
621
+ messageDesc(file_nomos_kernel_v1_kernel, 86);
573
622
 
574
623
  /**
575
624
  * Describes the message nomos.kernel.v1.SyncAdmittedIntent.
576
625
  * Use `create(SyncAdmittedIntentSchema)` to create a new message.
577
626
  */
578
627
  export const SyncAdmittedIntentSchema = /*@__PURE__*/
579
- messageDesc(file_nomos_kernel_v1_kernel, 80);
628
+ messageDesc(file_nomos_kernel_v1_kernel, 87);
580
629
 
581
630
  /**
582
631
  * Describes the message nomos.kernel.v1.SyncReplayedIntent.
583
632
  * Use `create(SyncReplayedIntentSchema)` to create a new message.
584
633
  */
585
634
  export const SyncReplayedIntentSchema = /*@__PURE__*/
586
- messageDesc(file_nomos_kernel_v1_kernel, 81);
635
+ messageDesc(file_nomos_kernel_v1_kernel, 88);
587
636
 
588
637
  /**
589
638
  * Describes the message nomos.kernel.v1.SyncRefusal.
590
639
  * Use `create(SyncRefusalSchema)` to create a new message.
591
640
  */
592
641
  export const SyncRefusalSchema = /*@__PURE__*/
593
- messageDesc(file_nomos_kernel_v1_kernel, 82);
642
+ messageDesc(file_nomos_kernel_v1_kernel, 89);
594
643
 
595
644
  /**
596
645
  * Describes the message nomos.kernel.v1.SyncRefusedIntent.
597
646
  * Use `create(SyncRefusedIntentSchema)` to create a new message.
598
647
  */
599
648
  export const SyncRefusedIntentSchema = /*@__PURE__*/
600
- messageDesc(file_nomos_kernel_v1_kernel, 83);
649
+ messageDesc(file_nomos_kernel_v1_kernel, 90);
601
650
 
602
651
  /**
603
652
  * Describes the message nomos.kernel.v1.WorkspaceTarget.
604
653
  * Use `create(WorkspaceTargetSchema)` to create a new message.
605
654
  */
606
655
  export const WorkspaceTargetSchema = /*@__PURE__*/
607
- messageDesc(file_nomos_kernel_v1_kernel, 84);
656
+ messageDesc(file_nomos_kernel_v1_kernel, 91);
608
657
 
609
658
  /**
610
659
  * Describes the message nomos.kernel.v1.OpenRequest.
611
660
  * Use `create(OpenRequestSchema)` to create a new message.
612
661
  */
613
662
  export const OpenRequestSchema = /*@__PURE__*/
614
- messageDesc(file_nomos_kernel_v1_kernel, 85);
663
+ messageDesc(file_nomos_kernel_v1_kernel, 92);
615
664
 
616
665
  /**
617
666
  * Describes the message nomos.kernel.v1.GenesisOffer.
618
667
  * Use `create(GenesisOfferSchema)` to create a new message.
619
668
  */
620
669
  export const GenesisOfferSchema = /*@__PURE__*/
621
- messageDesc(file_nomos_kernel_v1_kernel, 86);
670
+ messageDesc(file_nomos_kernel_v1_kernel, 93);
622
671
 
623
672
  /**
624
673
  * Describes the message nomos.kernel.v1.DirectiveCall.
625
674
  * Use `create(DirectiveCallSchema)` to create a new message.
626
675
  */
627
676
  export const DirectiveCallSchema = /*@__PURE__*/
628
- messageDesc(file_nomos_kernel_v1_kernel, 87);
677
+ messageDesc(file_nomos_kernel_v1_kernel, 94);
629
678
 
630
679
  /**
631
680
  * Describes the message nomos.kernel.v1.AuthoringOptions.
632
681
  * Use `create(AuthoringOptionsSchema)` to create a new message.
633
682
  */
634
683
  export const AuthoringOptionsSchema = /*@__PURE__*/
635
- messageDesc(file_nomos_kernel_v1_kernel, 88);
684
+ messageDesc(file_nomos_kernel_v1_kernel, 95);
636
685
 
637
686
  /**
638
687
  * Describes the message nomos.kernel.v1.CapturedClock.
639
688
  * Use `create(CapturedClockSchema)` to create a new message.
640
689
  */
641
690
  export const CapturedClockSchema = /*@__PURE__*/
642
- messageDesc(file_nomos_kernel_v1_kernel, 89);
691
+ messageDesc(file_nomos_kernel_v1_kernel, 96);
643
692
 
644
693
  /**
645
694
  * Describes the message nomos.kernel.v1.BirthCertificate.
646
695
  * Use `create(BirthCertificateSchema)` to create a new message.
647
696
  */
648
697
  export const BirthCertificateSchema = /*@__PURE__*/
649
- messageDesc(file_nomos_kernel_v1_kernel, 90);
698
+ messageDesc(file_nomos_kernel_v1_kernel, 97);
650
699
 
651
700
  /**
652
701
  * Describes the message nomos.kernel.v1.SignBirthCertificateRequest.
653
702
  * Use `create(SignBirthCertificateRequestSchema)` to create a new message.
654
703
  */
655
704
  export const SignBirthCertificateRequestSchema = /*@__PURE__*/
656
- messageDesc(file_nomos_kernel_v1_kernel, 91);
705
+ messageDesc(file_nomos_kernel_v1_kernel, 98);
657
706
 
658
707
  /**
659
708
  * Describes the message nomos.kernel.v1.SignBirthCertificateResponse.
660
709
  * Use `create(SignBirthCertificateResponseSchema)` to create a new message.
661
710
  */
662
711
  export const SignBirthCertificateResponseSchema = /*@__PURE__*/
663
- messageDesc(file_nomos_kernel_v1_kernel, 92);
712
+ messageDesc(file_nomos_kernel_v1_kernel, 99);
664
713
 
665
714
  /**
666
715
  * Describes the message nomos.kernel.v1.ModelLifecycleIntent.
667
716
  * Use `create(ModelLifecycleIntentSchema)` to create a new message.
668
717
  */
669
718
  export const ModelLifecycleIntentSchema = /*@__PURE__*/
670
- messageDesc(file_nomos_kernel_v1_kernel, 93);
719
+ messageDesc(file_nomos_kernel_v1_kernel, 100);
671
720
 
672
721
  /**
673
722
  * Describes the message nomos.kernel.v1.IdentityProviderWitnessAdoption.
674
723
  * Use `create(IdentityProviderWitnessAdoptionSchema)` to create a new message.
675
724
  */
676
725
  export const IdentityProviderWitnessAdoptionSchema = /*@__PURE__*/
677
- messageDesc(file_nomos_kernel_v1_kernel, 94);
726
+ messageDesc(file_nomos_kernel_v1_kernel, 101);
678
727
 
679
728
  /**
680
729
  * Describes the message nomos.kernel.v1.OfferRequest.
681
730
  * Use `create(OfferRequestSchema)` to create a new message.
682
731
  */
683
732
  export const OfferRequestSchema = /*@__PURE__*/
684
- messageDesc(file_nomos_kernel_v1_kernel, 95);
733
+ messageDesc(file_nomos_kernel_v1_kernel, 102);
685
734
 
686
735
  /**
687
736
  * Describes the message nomos.kernel.v1.LawUnit.
688
737
  * Use `create(LawUnitSchema)` to create a new message.
689
738
  */
690
739
  export const LawUnitSchema = /*@__PURE__*/
691
- messageDesc(file_nomos_kernel_v1_kernel, 96);
740
+ messageDesc(file_nomos_kernel_v1_kernel, 103);
692
741
 
693
742
  /**
694
743
  * Describes the message nomos.kernel.v1.LawUnitFile.
695
744
  * Use `create(LawUnitFileSchema)` to create a new message.
696
745
  */
697
746
  export const LawUnitFileSchema = /*@__PURE__*/
698
- messageDesc(file_nomos_kernel_v1_kernel, 97);
747
+ messageDesc(file_nomos_kernel_v1_kernel, 104);
699
748
 
700
749
  /**
701
750
  * Describes the message nomos.kernel.v1.AttestedRead.
702
751
  * Use `create(AttestedReadSchema)` to create a new message.
703
752
  */
704
753
  export const AttestedReadSchema = /*@__PURE__*/
705
- messageDesc(file_nomos_kernel_v1_kernel, 98);
754
+ messageDesc(file_nomos_kernel_v1_kernel, 105);
706
755
 
707
756
  /**
708
757
  * Describes the message nomos.kernel.v1.ReadAttestation.
709
758
  * Use `create(ReadAttestationSchema)` to create a new message.
710
759
  */
711
760
  export const ReadAttestationSchema = /*@__PURE__*/
712
- messageDesc(file_nomos_kernel_v1_kernel, 99);
761
+ messageDesc(file_nomos_kernel_v1_kernel, 106);
713
762
 
714
763
  /**
715
764
  * Describes the message nomos.kernel.v1.ConflictSnapshot.
716
765
  * Use `create(ConflictSnapshotSchema)` to create a new message.
717
766
  */
718
767
  export const ConflictSnapshotSchema = /*@__PURE__*/
719
- messageDesc(file_nomos_kernel_v1_kernel, 100);
768
+ messageDesc(file_nomos_kernel_v1_kernel, 107);
720
769
 
721
770
  /**
722
771
  * Describes the message nomos.kernel.v1.QueryRequest.
723
772
  * Use `create(QueryRequestSchema)` to create a new message.
724
773
  */
725
774
  export const QueryRequestSchema = /*@__PURE__*/
726
- messageDesc(file_nomos_kernel_v1_kernel, 101);
775
+ messageDesc(file_nomos_kernel_v1_kernel, 108);
727
776
 
728
777
  /**
729
778
  * Describes the message nomos.kernel.v1.WorkspaceEffectReceiptQuery.
730
779
  * Use `create(WorkspaceEffectReceiptQuerySchema)` to create a new message.
731
780
  */
732
781
  export const WorkspaceEffectReceiptQuerySchema = /*@__PURE__*/
733
- messageDesc(file_nomos_kernel_v1_kernel, 102);
782
+ messageDesc(file_nomos_kernel_v1_kernel, 109);
734
783
 
735
784
  /**
736
785
  * Describes the message nomos.kernel.v1.WorkspaceEffectReceiptResponse.
737
786
  * Use `create(WorkspaceEffectReceiptResponseSchema)` to create a new message.
738
787
  */
739
788
  export const WorkspaceEffectReceiptResponseSchema = /*@__PURE__*/
740
- messageDesc(file_nomos_kernel_v1_kernel, 103);
789
+ messageDesc(file_nomos_kernel_v1_kernel, 110);
741
790
 
742
791
  /**
743
792
  * Describes the message nomos.kernel.v1.FullHistoryAuditQuery.
744
793
  * Use `create(FullHistoryAuditQuerySchema)` to create a new message.
745
794
  */
746
795
  export const FullHistoryAuditQuerySchema = /*@__PURE__*/
747
- messageDesc(file_nomos_kernel_v1_kernel, 104);
796
+ messageDesc(file_nomos_kernel_v1_kernel, 111);
748
797
 
749
798
  /**
750
799
  * Describes the message nomos.kernel.v1.FullHistoryAuditResponse.
751
800
  * Use `create(FullHistoryAuditResponseSchema)` to create a new message.
752
801
  */
753
802
  export const FullHistoryAuditResponseSchema = /*@__PURE__*/
754
- messageDesc(file_nomos_kernel_v1_kernel, 105);
803
+ messageDesc(file_nomos_kernel_v1_kernel, 112);
755
804
 
756
805
  /**
757
806
  * Describes the message nomos.kernel.v1.IdentityProviderWitnessQuery.
758
807
  * Use `create(IdentityProviderWitnessQuerySchema)` to create a new message.
759
808
  */
760
809
  export const IdentityProviderWitnessQuerySchema = /*@__PURE__*/
761
- messageDesc(file_nomos_kernel_v1_kernel, 106);
810
+ messageDesc(file_nomos_kernel_v1_kernel, 113);
762
811
 
763
812
  /**
764
813
  * Describes the message nomos.kernel.v1.IdentityProviderWitnessKey.
765
814
  * Use `create(IdentityProviderWitnessKeySchema)` to create a new message.
766
815
  */
767
816
  export const IdentityProviderWitnessKeySchema = /*@__PURE__*/
768
- messageDesc(file_nomos_kernel_v1_kernel, 107);
817
+ messageDesc(file_nomos_kernel_v1_kernel, 114);
769
818
 
770
819
  /**
771
820
  * Describes the message nomos.kernel.v1.IdentityProviderWitnessCertificate.
772
821
  * Use `create(IdentityProviderWitnessCertificateSchema)` to create a new message.
773
822
  */
774
823
  export const IdentityProviderWitnessCertificateSchema = /*@__PURE__*/
775
- messageDesc(file_nomos_kernel_v1_kernel, 108);
824
+ messageDesc(file_nomos_kernel_v1_kernel, 115);
776
825
 
777
826
  /**
778
827
  * Describes the message nomos.kernel.v1.IdentityProviderWitnessResponse.
779
828
  * Use `create(IdentityProviderWitnessResponseSchema)` to create a new message.
780
829
  */
781
830
  export const IdentityProviderWitnessResponseSchema = /*@__PURE__*/
782
- messageDesc(file_nomos_kernel_v1_kernel, 109);
831
+ messageDesc(file_nomos_kernel_v1_kernel, 116);
783
832
 
784
833
  /**
785
834
  * Describes the message nomos.kernel.v1.ChildWorkspaceQuery.
786
835
  * Use `create(ChildWorkspaceQuerySchema)` to create a new message.
787
836
  */
788
837
  export const ChildWorkspaceQuerySchema = /*@__PURE__*/
789
- messageDesc(file_nomos_kernel_v1_kernel, 110);
838
+ messageDesc(file_nomos_kernel_v1_kernel, 117);
790
839
 
791
840
  /**
792
841
  * Describes the message nomos.kernel.v1.ChildWorkspaceQueryRecord.
793
842
  * Use `create(ChildWorkspaceQueryRecordSchema)` to create a new message.
794
843
  */
795
844
  export const ChildWorkspaceQueryRecordSchema = /*@__PURE__*/
796
- messageDesc(file_nomos_kernel_v1_kernel, 111);
845
+ messageDesc(file_nomos_kernel_v1_kernel, 118);
797
846
 
798
847
  /**
799
848
  * Describes the message nomos.kernel.v1.ChildWorkspaceQueryResponse.
800
849
  * Use `create(ChildWorkspaceQueryResponseSchema)` to create a new message.
801
850
  */
802
851
  export const ChildWorkspaceQueryResponseSchema = /*@__PURE__*/
803
- messageDesc(file_nomos_kernel_v1_kernel, 112);
852
+ messageDesc(file_nomos_kernel_v1_kernel, 119);
804
853
 
805
854
  /**
806
855
  * Describes the message nomos.kernel.v1.InstalledLawDeclarationsQuery.
807
856
  * Use `create(InstalledLawDeclarationsQuerySchema)` to create a new message.
808
857
  */
809
858
  export const InstalledLawDeclarationsQuerySchema = /*@__PURE__*/
810
- messageDesc(file_nomos_kernel_v1_kernel, 113);
859
+ messageDesc(file_nomos_kernel_v1_kernel, 120);
811
860
 
812
861
  /**
813
862
  * Describes the message nomos.kernel.v1.InstalledLawUnit.
814
863
  * Use `create(InstalledLawUnitSchema)` to create a new message.
815
864
  */
816
865
  export const InstalledLawUnitSchema = /*@__PURE__*/
817
- messageDesc(file_nomos_kernel_v1_kernel, 114);
866
+ messageDesc(file_nomos_kernel_v1_kernel, 121);
818
867
 
819
868
  /**
820
869
  * Describes the message nomos.kernel.v1.InstalledLawUnitSet.
821
870
  * Use `create(InstalledLawUnitSetSchema)` to create a new message.
822
871
  */
823
872
  export const InstalledLawUnitSetSchema = /*@__PURE__*/
824
- messageDesc(file_nomos_kernel_v1_kernel, 115);
873
+ messageDesc(file_nomos_kernel_v1_kernel, 122);
825
874
 
826
875
  /**
827
876
  * Describes the message nomos.kernel.v1.DeclaredAuthenticationProvider.
828
877
  * Use `create(DeclaredAuthenticationProviderSchema)` to create a new message.
829
878
  */
830
879
  export const DeclaredAuthenticationProviderSchema = /*@__PURE__*/
831
- messageDesc(file_nomos_kernel_v1_kernel, 116);
880
+ messageDesc(file_nomos_kernel_v1_kernel, 123);
832
881
 
833
882
  /**
834
883
  * Describes the message nomos.kernel.v1.InstalledLawClosureDeclarations.
835
884
  * Use `create(InstalledLawClosureDeclarationsSchema)` to create a new message.
836
885
  */
837
886
  export const InstalledLawClosureDeclarationsSchema = /*@__PURE__*/
838
- messageDesc(file_nomos_kernel_v1_kernel, 117);
887
+ messageDesc(file_nomos_kernel_v1_kernel, 124);
839
888
 
840
889
  /**
841
890
  * Describes the message nomos.kernel.v1.InstalledLawDeclarationsResponse.
842
891
  * Use `create(InstalledLawDeclarationsResponseSchema)` to create a new message.
843
892
  */
844
893
  export const InstalledLawDeclarationsResponseSchema = /*@__PURE__*/
845
- messageDesc(file_nomos_kernel_v1_kernel, 118);
894
+ messageDesc(file_nomos_kernel_v1_kernel, 125);
846
895
 
847
896
  /**
848
897
  * Describes the message nomos.kernel.v1.DirectiveAuthoringRequirementsQuery.
849
898
  * Use `create(DirectiveAuthoringRequirementsQuerySchema)` to create a new message.
850
899
  */
851
900
  export const DirectiveAuthoringRequirementsQuerySchema = /*@__PURE__*/
852
- messageDesc(file_nomos_kernel_v1_kernel, 119);
901
+ messageDesc(file_nomos_kernel_v1_kernel, 126);
853
902
 
854
903
  /**
855
904
  * Describes the message nomos.kernel.v1.DirectiveAuthoringRequirementsResponse.
856
905
  * Use `create(DirectiveAuthoringRequirementsResponseSchema)` to create a new message.
857
906
  */
858
907
  export const DirectiveAuthoringRequirementsResponseSchema = /*@__PURE__*/
859
- messageDesc(file_nomos_kernel_v1_kernel, 120);
908
+ messageDesc(file_nomos_kernel_v1_kernel, 127);
860
909
 
861
910
  /**
862
911
  * Describes the message nomos.kernel.v1.AuthenticationPostureQuery.
863
912
  * Use `create(AuthenticationPostureQuerySchema)` to create a new message.
864
913
  */
865
914
  export const AuthenticationPostureQuerySchema = /*@__PURE__*/
866
- messageDesc(file_nomos_kernel_v1_kernel, 121);
915
+ messageDesc(file_nomos_kernel_v1_kernel, 128);
867
916
 
868
917
  /**
869
918
  * Describes the message nomos.kernel.v1.AuthenticationPostureResponse.
870
919
  * Use `create(AuthenticationPostureResponseSchema)` to create a new message.
871
920
  */
872
921
  export const AuthenticationPostureResponseSchema = /*@__PURE__*/
873
- messageDesc(file_nomos_kernel_v1_kernel, 122);
922
+ messageDesc(file_nomos_kernel_v1_kernel, 129);
874
923
 
875
924
  /**
876
925
  * Describes the message nomos.kernel.v1.BirthEvidenceReadiness.
877
926
  * Use `create(BirthEvidenceReadinessSchema)` to create a new message.
878
927
  */
879
928
  export const BirthEvidenceReadinessSchema = /*@__PURE__*/
880
- messageDesc(file_nomos_kernel_v1_kernel, 123);
929
+ messageDesc(file_nomos_kernel_v1_kernel, 130);
881
930
 
882
931
  /**
883
932
  * Describes the message nomos.kernel.v1.OwnedDeviceRequestQuery.
884
933
  * Use `create(OwnedDeviceRequestQuerySchema)` to create a new message.
885
934
  */
886
935
  export const OwnedDeviceRequestQuerySchema = /*@__PURE__*/
887
- messageDesc(file_nomos_kernel_v1_kernel, 124);
936
+ messageDesc(file_nomos_kernel_v1_kernel, 131);
888
937
 
889
938
  /**
890
939
  * Describes the message nomos.kernel.v1.OwnedDeviceRequestResponse.
891
940
  * Use `create(OwnedDeviceRequestResponseSchema)` to create a new message.
892
941
  */
893
942
  export const OwnedDeviceRequestResponseSchema = /*@__PURE__*/
894
- messageDesc(file_nomos_kernel_v1_kernel, 125);
943
+ messageDesc(file_nomos_kernel_v1_kernel, 132);
895
944
 
896
945
  /**
897
946
  * Describes the message nomos.kernel.v1.OwnedPrepareApprovalQuery.
898
947
  * Use `create(OwnedPrepareApprovalQuerySchema)` to create a new message.
899
948
  */
900
949
  export const OwnedPrepareApprovalQuerySchema = /*@__PURE__*/
901
- messageDesc(file_nomos_kernel_v1_kernel, 126);
950
+ messageDesc(file_nomos_kernel_v1_kernel, 133);
902
951
 
903
952
  /**
904
953
  * Describes the message nomos.kernel.v1.OwnedPrepareApprovalResponse.
905
954
  * Use `create(OwnedPrepareApprovalResponseSchema)` to create a new message.
906
955
  */
907
956
  export const OwnedPrepareApprovalResponseSchema = /*@__PURE__*/
908
- messageDesc(file_nomos_kernel_v1_kernel, 127);
957
+ messageDesc(file_nomos_kernel_v1_kernel, 134);
909
958
 
910
959
  /**
911
960
  * Describes the message nomos.kernel.v1.QueryAuthority.
912
961
  * Use `create(QueryAuthoritySchema)` to create a new message.
913
962
  */
914
963
  export const QueryAuthoritySchema = /*@__PURE__*/
915
- messageDesc(file_nomos_kernel_v1_kernel, 128);
964
+ messageDesc(file_nomos_kernel_v1_kernel, 135);
916
965
 
917
966
  /**
918
967
  * Describes the message nomos.kernel.v1.InjectedKey.
919
968
  * Use `create(InjectedKeySchema)` to create a new message.
920
969
  */
921
970
  export const InjectedKeySchema = /*@__PURE__*/
922
- messageDesc(file_nomos_kernel_v1_kernel, 129);
971
+ messageDesc(file_nomos_kernel_v1_kernel, 136);
923
972
 
924
973
  /**
925
974
  * Describes the message nomos.kernel.v1.RowsQuery.
926
975
  * Use `create(RowsQuerySchema)` to create a new message.
927
976
  */
928
977
  export const RowsQuerySchema = /*@__PURE__*/
929
- messageDesc(file_nomos_kernel_v1_kernel, 130);
978
+ messageDesc(file_nomos_kernel_v1_kernel, 137);
930
979
 
931
980
  /**
932
981
  * Describes the message nomos.kernel.v1.PageQuery.
933
982
  * Use `create(PageQuerySchema)` to create a new message.
934
983
  */
935
984
  export const PageQuerySchema = /*@__PURE__*/
936
- messageDesc(file_nomos_kernel_v1_kernel, 131);
985
+ messageDesc(file_nomos_kernel_v1_kernel, 138);
937
986
 
938
987
  /**
939
988
  * Describes the message nomos.kernel.v1.ByIdQuery.
940
989
  * Use `create(ByIdQuerySchema)` to create a new message.
941
990
  */
942
991
  export const ByIdQuerySchema = /*@__PURE__*/
943
- messageDesc(file_nomos_kernel_v1_kernel, 132);
992
+ messageDesc(file_nomos_kernel_v1_kernel, 139);
944
993
 
945
994
  /**
946
995
  * Describes the message nomos.kernel.v1.ByTypeQuery.
947
996
  * Use `create(ByTypeQuerySchema)` to create a new message.
948
997
  */
949
998
  export const ByTypeQuerySchema = /*@__PURE__*/
950
- messageDesc(file_nomos_kernel_v1_kernel, 133);
999
+ messageDesc(file_nomos_kernel_v1_kernel, 140);
951
1000
 
952
1001
  /**
953
1002
  * Describes the message nomos.kernel.v1.NomosRef.
954
1003
  * Use `create(NomosRefSchema)` to create a new message.
955
1004
  */
956
1005
  export const NomosRefSchema = /*@__PURE__*/
957
- messageDesc(file_nomos_kernel_v1_kernel, 134);
1006
+ messageDesc(file_nomos_kernel_v1_kernel, 141);
958
1007
 
959
1008
  /**
960
1009
  * Describes the message nomos.kernel.v1.ResolveRefsQuery.
961
1010
  * Use `create(ResolveRefsQuerySchema)` to create a new message.
962
1011
  */
963
1012
  export const ResolveRefsQuerySchema = /*@__PURE__*/
964
- messageDesc(file_nomos_kernel_v1_kernel, 135);
1013
+ messageDesc(file_nomos_kernel_v1_kernel, 142);
965
1014
 
966
1015
  /**
967
1016
  * Describes the message nomos.kernel.v1.ReferenceVersionsQuery.
968
1017
  * Use `create(ReferenceVersionsQuerySchema)` to create a new message.
969
1018
  */
970
1019
  export const ReferenceVersionsQuerySchema = /*@__PURE__*/
971
- messageDesc(file_nomos_kernel_v1_kernel, 136);
1020
+ messageDesc(file_nomos_kernel_v1_kernel, 143);
972
1021
 
973
1022
  /**
974
1023
  * Describes the message nomos.kernel.v1.ReferenceVersionCheck.
975
1024
  * Use `create(ReferenceVersionCheckSchema)` to create a new message.
976
1025
  */
977
1026
  export const ReferenceVersionCheckSchema = /*@__PURE__*/
978
- messageDesc(file_nomos_kernel_v1_kernel, 137);
1027
+ messageDesc(file_nomos_kernel_v1_kernel, 144);
979
1028
 
980
1029
  /**
981
1030
  * Describes the message nomos.kernel.v1.TallyQuery.
982
1031
  * Use `create(TallyQuerySchema)` to create a new message.
983
1032
  */
984
1033
  export const TallyQuerySchema = /*@__PURE__*/
985
- messageDesc(file_nomos_kernel_v1_kernel, 138);
1034
+ messageDesc(file_nomos_kernel_v1_kernel, 145);
986
1035
 
987
1036
  /**
988
1037
  * Describes the message nomos.kernel.v1.SpatialQuery.
989
1038
  * Use `create(SpatialQuerySchema)` to create a new message.
990
1039
  */
991
1040
  export const SpatialQuerySchema = /*@__PURE__*/
992
- messageDesc(file_nomos_kernel_v1_kernel, 139);
1041
+ messageDesc(file_nomos_kernel_v1_kernel, 146);
993
1042
 
994
1043
  /**
995
1044
  * Describes the message nomos.kernel.v1.PendingConflictsQuery.
996
1045
  * Use `create(PendingConflictsQuerySchema)` to create a new message.
997
1046
  */
998
1047
  export const PendingConflictsQuerySchema = /*@__PURE__*/
999
- messageDesc(file_nomos_kernel_v1_kernel, 140);
1048
+ messageDesc(file_nomos_kernel_v1_kernel, 147);
1000
1049
 
1001
1050
  /**
1002
1051
  * Describes the message nomos.kernel.v1.PendingConflictSummaryQuery.
1003
1052
  * Use `create(PendingConflictSummaryQuerySchema)` to create a new message.
1004
1053
  */
1005
1054
  export const PendingConflictSummaryQuerySchema = /*@__PURE__*/
1006
- messageDesc(file_nomos_kernel_v1_kernel, 141);
1055
+ messageDesc(file_nomos_kernel_v1_kernel, 148);
1007
1056
 
1008
1057
  /**
1009
1058
  * Describes the message nomos.kernel.v1.NamedQuery.
1010
1059
  * Use `create(NamedQuerySchema)` to create a new message.
1011
1060
  */
1012
1061
  export const NamedQuerySchema = /*@__PURE__*/
1013
- messageDesc(file_nomos_kernel_v1_kernel, 142);
1062
+ messageDesc(file_nomos_kernel_v1_kernel, 149);
1014
1063
 
1015
1064
  /**
1016
1065
  * Describes the message nomos.kernel.v1.FrontierTransitionRequest.
1017
1066
  * Use `create(FrontierTransitionRequestSchema)` to create a new message.
1018
1067
  */
1019
1068
  export const FrontierTransitionRequestSchema = /*@__PURE__*/
1020
- messageDesc(file_nomos_kernel_v1_kernel, 143);
1069
+ messageDesc(file_nomos_kernel_v1_kernel, 150);
1021
1070
 
1022
1071
  /**
1023
1072
  * Describes the message nomos.kernel.v1.FrontierTransitionDispositionMapEntry.
1024
1073
  * Use `create(FrontierTransitionDispositionMapEntrySchema)` to create a new message.
1025
1074
  */
1026
1075
  export const FrontierTransitionDispositionMapEntrySchema = /*@__PURE__*/
1027
- messageDesc(file_nomos_kernel_v1_kernel, 144);
1076
+ messageDesc(file_nomos_kernel_v1_kernel, 151);
1028
1077
 
1029
1078
  /**
1030
1079
  * Describes the message nomos.kernel.v1.FrontierTransitionDispositions.
1031
1080
  * Use `create(FrontierTransitionDispositionsSchema)` to create a new message.
1032
1081
  */
1033
1082
  export const FrontierTransitionDispositionsSchema = /*@__PURE__*/
1034
- messageDesc(file_nomos_kernel_v1_kernel, 145);
1083
+ messageDesc(file_nomos_kernel_v1_kernel, 152);
1035
1084
 
1036
1085
  /**
1037
1086
  * Describes the message nomos.kernel.v1.FrontierTransitionViolation.
1038
1087
  * Use `create(FrontierTransitionViolationSchema)` to create a new message.
1039
1088
  */
1040
1089
  export const FrontierTransitionViolationSchema = /*@__PURE__*/
1041
- messageDesc(file_nomos_kernel_v1_kernel, 146);
1090
+ messageDesc(file_nomos_kernel_v1_kernel, 153);
1042
1091
 
1043
1092
  /**
1044
1093
  * Describes the message nomos.kernel.v1.FrontierTransitionResponse.
1045
1094
  * Use `create(FrontierTransitionResponseSchema)` to create a new message.
1046
1095
  */
1047
1096
  export const FrontierTransitionResponseSchema = /*@__PURE__*/
1048
- messageDesc(file_nomos_kernel_v1_kernel, 147);
1097
+ messageDesc(file_nomos_kernel_v1_kernel, 154);
1049
1098
 
1050
1099
  /**
1051
1100
  * Describes the message nomos.kernel.v1.AuthorizationObject.
1052
1101
  * Use `create(AuthorizationObjectSchema)` to create a new message.
1053
1102
  */
1054
1103
  export const AuthorizationObjectSchema = /*@__PURE__*/
1055
- messageDesc(file_nomos_kernel_v1_kernel, 148);
1104
+ messageDesc(file_nomos_kernel_v1_kernel, 155);
1056
1105
 
1057
1106
  /**
1058
1107
  * Describes the message nomos.kernel.v1.AuthorizationSubject.
1059
1108
  * Use `create(AuthorizationSubjectSchema)` to create a new message.
1060
1109
  */
1061
1110
  export const AuthorizationSubjectSchema = /*@__PURE__*/
1062
- messageDesc(file_nomos_kernel_v1_kernel, 149);
1111
+ messageDesc(file_nomos_kernel_v1_kernel, 156);
1063
1112
 
1064
1113
  /**
1065
1114
  * Describes the message nomos.kernel.v1.RelationshipTupleAddress.
1066
1115
  * Use `create(RelationshipTupleAddressSchema)` to create a new message.
1067
1116
  */
1068
1117
  export const RelationshipTupleAddressSchema = /*@__PURE__*/
1069
- messageDesc(file_nomos_kernel_v1_kernel, 150);
1118
+ messageDesc(file_nomos_kernel_v1_kernel, 157);
1070
1119
 
1071
1120
  /**
1072
1121
  * Describes the message nomos.kernel.v1.AuthorizationConsistency.
1073
1122
  * Use `create(AuthorizationConsistencySchema)` to create a new message.
1074
1123
  */
1075
1124
  export const AuthorizationConsistencySchema = /*@__PURE__*/
1076
- messageDesc(file_nomos_kernel_v1_kernel, 151);
1125
+ messageDesc(file_nomos_kernel_v1_kernel, 158);
1077
1126
 
1078
1127
  /**
1079
1128
  * Describes the message nomos.kernel.v1.AuthorizationConditionContext.
1080
1129
  * Use `create(AuthorizationConditionContextSchema)` to create a new message.
1081
1130
  */
1082
1131
  export const AuthorizationConditionContextSchema = /*@__PURE__*/
1083
- messageDesc(file_nomos_kernel_v1_kernel, 152);
1132
+ messageDesc(file_nomos_kernel_v1_kernel, 159);
1084
1133
 
1085
1134
  /**
1086
1135
  * Describes the message nomos.kernel.v1.AuthorizationCheckRequest.
1087
1136
  * Use `create(AuthorizationCheckRequestSchema)` to create a new message.
1088
1137
  */
1089
1138
  export const AuthorizationCheckRequestSchema = /*@__PURE__*/
1090
- messageDesc(file_nomos_kernel_v1_kernel, 153);
1139
+ messageDesc(file_nomos_kernel_v1_kernel, 160);
1091
1140
 
1092
1141
  /**
1093
1142
  * Describes the message nomos.kernel.v1.AuthorizationExpandRequest.
1094
1143
  * Use `create(AuthorizationExpandRequestSchema)` to create a new message.
1095
1144
  */
1096
1145
  export const AuthorizationExpandRequestSchema = /*@__PURE__*/
1097
- messageDesc(file_nomos_kernel_v1_kernel, 154);
1146
+ messageDesc(file_nomos_kernel_v1_kernel, 161);
1098
1147
 
1099
1148
  /**
1100
1149
  * Describes the message nomos.kernel.v1.RelationshipTupleEvidence.
1101
1150
  * Use `create(RelationshipTupleEvidenceSchema)` to create a new message.
1102
1151
  */
1103
1152
  export const RelationshipTupleEvidenceSchema = /*@__PURE__*/
1104
- messageDesc(file_nomos_kernel_v1_kernel, 155);
1153
+ messageDesc(file_nomos_kernel_v1_kernel, 162);
1105
1154
 
1106
1155
  /**
1107
1156
  * Describes the message nomos.kernel.v1.AuthorizationExplanation.
1108
1157
  * Use `create(AuthorizationExplanationSchema)` to create a new message.
1109
1158
  */
1110
1159
  export const AuthorizationExplanationSchema = /*@__PURE__*/
1111
- messageDesc(file_nomos_kernel_v1_kernel, 156);
1160
+ messageDesc(file_nomos_kernel_v1_kernel, 163);
1112
1161
 
1113
1162
  /**
1114
1163
  * Describes the enum nomos.kernel.v1.AuthorizationExplanation.Operation.
1115
1164
  */
1116
1165
  export const AuthorizationExplanation_OperationSchema = /*@__PURE__*/
1117
- enumDesc(file_nomos_kernel_v1_kernel, 156, 0);
1166
+ enumDesc(file_nomos_kernel_v1_kernel, 163, 0);
1118
1167
 
1119
1168
  /**
1120
1169
  * @generated from enum nomos.kernel.v1.AuthorizationExplanation.Operation
@@ -1127,727 +1176,741 @@ export const AuthorizationExplanation_Operation = /*@__PURE__*/
1127
1176
  * Use `create(AuthorizationDecisionBasisSchema)` to create a new message.
1128
1177
  */
1129
1178
  export const AuthorizationDecisionBasisSchema = /*@__PURE__*/
1130
- messageDesc(file_nomos_kernel_v1_kernel, 157);
1179
+ messageDesc(file_nomos_kernel_v1_kernel, 164);
1131
1180
 
1132
1181
  /**
1133
1182
  * Describes the message nomos.kernel.v1.AuthorizationCheckResponse.
1134
1183
  * Use `create(AuthorizationCheckResponseSchema)` to create a new message.
1135
1184
  */
1136
1185
  export const AuthorizationCheckResponseSchema = /*@__PURE__*/
1137
- messageDesc(file_nomos_kernel_v1_kernel, 158);
1186
+ messageDesc(file_nomos_kernel_v1_kernel, 165);
1138
1187
 
1139
1188
  /**
1140
1189
  * Describes the message nomos.kernel.v1.AuthorizationExpandResponse.
1141
1190
  * Use `create(AuthorizationExpandResponseSchema)` to create a new message.
1142
1191
  */
1143
1192
  export const AuthorizationExpandResponseSchema = /*@__PURE__*/
1144
- messageDesc(file_nomos_kernel_v1_kernel, 159);
1193
+ messageDesc(file_nomos_kernel_v1_kernel, 166);
1145
1194
 
1146
1195
  /**
1147
1196
  * Describes the message nomos.kernel.v1.OutboxRequest.
1148
1197
  * Use `create(OutboxRequestSchema)` to create a new message.
1149
1198
  */
1150
1199
  export const OutboxRequestSchema = /*@__PURE__*/
1151
- messageDesc(file_nomos_kernel_v1_kernel, 160);
1200
+ messageDesc(file_nomos_kernel_v1_kernel, 167);
1152
1201
 
1153
1202
  /**
1154
1203
  * Describes the message nomos.kernel.v1.SyncRequest.
1155
1204
  * Use `create(SyncRequestSchema)` to create a new message.
1156
1205
  */
1157
1206
  export const SyncRequestSchema = /*@__PURE__*/
1158
- messageDesc(file_nomos_kernel_v1_kernel, 161);
1207
+ messageDesc(file_nomos_kernel_v1_kernel, 168);
1159
1208
 
1160
1209
  /**
1161
1210
  * Describes the message nomos.kernel.v1.KernelConfigurationRequest.
1162
1211
  * Use `create(KernelConfigurationRequestSchema)` to create a new message.
1163
1212
  */
1164
1213
  export const KernelConfigurationRequestSchema = /*@__PURE__*/
1165
- messageDesc(file_nomos_kernel_v1_kernel, 162);
1214
+ messageDesc(file_nomos_kernel_v1_kernel, 169);
1166
1215
 
1167
1216
  /**
1168
1217
  * Describes the message nomos.kernel.v1.KernelConfigurationResponse.
1169
1218
  * Use `create(KernelConfigurationResponseSchema)` to create a new message.
1170
1219
  */
1171
1220
  export const KernelConfigurationResponseSchema = /*@__PURE__*/
1172
- messageDesc(file_nomos_kernel_v1_kernel, 163);
1221
+ messageDesc(file_nomos_kernel_v1_kernel, 170);
1173
1222
 
1174
1223
  /**
1175
1224
  * Describes the message nomos.kernel.v1.CustodyRequest.
1176
1225
  * Use `create(CustodyRequestSchema)` to create a new message.
1177
1226
  */
1178
1227
  export const CustodyRequestSchema = /*@__PURE__*/
1179
- messageDesc(file_nomos_kernel_v1_kernel, 164);
1228
+ messageDesc(file_nomos_kernel_v1_kernel, 171);
1180
1229
 
1181
1230
  /**
1182
1231
  * Describes the message nomos.kernel.v1.AggregateCensusRequest.
1183
1232
  * Use `create(AggregateCensusRequestSchema)` to create a new message.
1184
1233
  */
1185
1234
  export const AggregateCensusRequestSchema = /*@__PURE__*/
1186
- messageDesc(file_nomos_kernel_v1_kernel, 165);
1235
+ messageDesc(file_nomos_kernel_v1_kernel, 172);
1187
1236
 
1188
1237
  /**
1189
1238
  * Describes the message nomos.kernel.v1.AggregateTypeCount.
1190
1239
  * Use `create(AggregateTypeCountSchema)` to create a new message.
1191
1240
  */
1192
1241
  export const AggregateTypeCountSchema = /*@__PURE__*/
1193
- messageDesc(file_nomos_kernel_v1_kernel, 166);
1242
+ messageDesc(file_nomos_kernel_v1_kernel, 173);
1194
1243
 
1195
1244
  /**
1196
1245
  * Describes the message nomos.kernel.v1.AggregateCensusResponse.
1197
1246
  * Use `create(AggregateCensusResponseSchema)` to create a new message.
1198
1247
  */
1199
1248
  export const AggregateCensusResponseSchema = /*@__PURE__*/
1200
- messageDesc(file_nomos_kernel_v1_kernel, 167);
1249
+ messageDesc(file_nomos_kernel_v1_kernel, 174);
1201
1250
 
1202
1251
  /**
1203
1252
  * Describes the message nomos.kernel.v1.ResidentFootprintRequest.
1204
1253
  * Use `create(ResidentFootprintRequestSchema)` to create a new message.
1205
1254
  */
1206
1255
  export const ResidentFootprintRequestSchema = /*@__PURE__*/
1207
- messageDesc(file_nomos_kernel_v1_kernel, 168);
1256
+ messageDesc(file_nomos_kernel_v1_kernel, 175);
1208
1257
 
1209
1258
  /**
1210
1259
  * Describes the message nomos.kernel.v1.ResidentFootprint.
1211
1260
  * Use `create(ResidentFootprintSchema)` to create a new message.
1212
1261
  */
1213
1262
  export const ResidentFootprintSchema = /*@__PURE__*/
1214
- messageDesc(file_nomos_kernel_v1_kernel, 169);
1263
+ messageDesc(file_nomos_kernel_v1_kernel, 176);
1215
1264
 
1216
1265
  /**
1217
1266
  * Describes the message nomos.kernel.v1.ResidentComponent.
1218
1267
  * Use `create(ResidentComponentSchema)` to create a new message.
1219
1268
  */
1220
1269
  export const ResidentComponentSchema = /*@__PURE__*/
1221
- messageDesc(file_nomos_kernel_v1_kernel, 170);
1270
+ messageDesc(file_nomos_kernel_v1_kernel, 177);
1222
1271
 
1223
1272
  /**
1224
1273
  * Describes the message nomos.kernel.v1.ResidentFootprintResponse.
1225
1274
  * Use `create(ResidentFootprintResponseSchema)` to create a new message.
1226
1275
  */
1227
1276
  export const ResidentFootprintResponseSchema = /*@__PURE__*/
1228
- messageDesc(file_nomos_kernel_v1_kernel, 171);
1277
+ messageDesc(file_nomos_kernel_v1_kernel, 178);
1229
1278
 
1230
1279
  /**
1231
1280
  * Describes the message nomos.kernel.v1.PackDeltaRequest.
1232
1281
  * Use `create(PackDeltaRequestSchema)` to create a new message.
1233
1282
  */
1234
1283
  export const PackDeltaRequestSchema = /*@__PURE__*/
1235
- messageDesc(file_nomos_kernel_v1_kernel, 172);
1284
+ messageDesc(file_nomos_kernel_v1_kernel, 179);
1236
1285
 
1237
1286
  /**
1238
1287
  * Describes the message nomos.kernel.v1.ApplyPackRequest.
1239
1288
  * Use `create(ApplyPackRequestSchema)` to create a new message.
1240
1289
  */
1241
1290
  export const ApplyPackRequestSchema = /*@__PURE__*/
1242
- messageDesc(file_nomos_kernel_v1_kernel, 173);
1291
+ messageDesc(file_nomos_kernel_v1_kernel, 180);
1243
1292
 
1244
1293
  /**
1245
1294
  * Describes the message nomos.kernel.v1.RepoStatsRequest.
1246
1295
  * Use `create(RepoStatsRequestSchema)` to create a new message.
1247
1296
  */
1248
1297
  export const RepoStatsRequestSchema = /*@__PURE__*/
1249
- messageDesc(file_nomos_kernel_v1_kernel, 174);
1298
+ messageDesc(file_nomos_kernel_v1_kernel, 181);
1250
1299
 
1251
1300
  /**
1252
1301
  * Describes the message nomos.kernel.v1.IntentsAboveRequest.
1253
1302
  * Use `create(IntentsAboveRequestSchema)` to create a new message.
1254
1303
  */
1255
1304
  export const IntentsAboveRequestSchema = /*@__PURE__*/
1256
- messageDesc(file_nomos_kernel_v1_kernel, 175);
1305
+ messageDesc(file_nomos_kernel_v1_kernel, 182);
1257
1306
 
1258
1307
  /**
1259
1308
  * Describes the message nomos.kernel.v1.HistorySummaryRequest.
1260
1309
  * Use `create(HistorySummaryRequestSchema)` to create a new message.
1261
1310
  */
1262
1311
  export const HistorySummaryRequestSchema = /*@__PURE__*/
1263
- messageDesc(file_nomos_kernel_v1_kernel, 176);
1312
+ messageDesc(file_nomos_kernel_v1_kernel, 183);
1264
1313
 
1265
1314
  /**
1266
1315
  * Describes the message nomos.kernel.v1.InspectChangeRequest.
1267
1316
  * Use `create(InspectChangeRequestSchema)` to create a new message.
1268
1317
  */
1269
1318
  export const InspectChangeRequestSchema = /*@__PURE__*/
1270
- messageDesc(file_nomos_kernel_v1_kernel, 177);
1319
+ messageDesc(file_nomos_kernel_v1_kernel, 184);
1271
1320
 
1272
1321
  /**
1273
1322
  * Describes the message nomos.kernel.v1.RefusalVerdict.
1274
1323
  * Use `create(RefusalVerdictSchema)` to create a new message.
1275
1324
  */
1276
1325
  export const RefusalVerdictSchema = /*@__PURE__*/
1277
- messageDesc(file_nomos_kernel_v1_kernel, 178);
1326
+ messageDesc(file_nomos_kernel_v1_kernel, 185);
1278
1327
 
1279
1328
  /**
1280
1329
  * Describes the message nomos.kernel.v1.EncodeRefusalVerdictRequest.
1281
1330
  * Use `create(EncodeRefusalVerdictRequestSchema)` to create a new message.
1282
1331
  */
1283
1332
  export const EncodeRefusalVerdictRequestSchema = /*@__PURE__*/
1284
- messageDesc(file_nomos_kernel_v1_kernel, 179);
1333
+ messageDesc(file_nomos_kernel_v1_kernel, 186);
1285
1334
 
1286
1335
  /**
1287
1336
  * Describes the message nomos.kernel.v1.InspectRefusalVerdictRequest.
1288
1337
  * Use `create(InspectRefusalVerdictRequestSchema)` to create a new message.
1289
1338
  */
1290
1339
  export const InspectRefusalVerdictRequestSchema = /*@__PURE__*/
1291
- messageDesc(file_nomos_kernel_v1_kernel, 180);
1340
+ messageDesc(file_nomos_kernel_v1_kernel, 187);
1292
1341
 
1293
1342
  /**
1294
1343
  * Describes the message nomos.kernel.v1.CompactionEquivalence.
1295
1344
  * Use `create(CompactionEquivalenceSchema)` to create a new message.
1296
1345
  */
1297
1346
  export const CompactionEquivalenceSchema = /*@__PURE__*/
1298
- messageDesc(file_nomos_kernel_v1_kernel, 181);
1347
+ messageDesc(file_nomos_kernel_v1_kernel, 188);
1299
1348
 
1300
1349
  /**
1301
1350
  * Describes the message nomos.kernel.v1.ProveCompactionEquivalenceRequest.
1302
1351
  * Use `create(ProveCompactionEquivalenceRequestSchema)` to create a new message.
1303
1352
  */
1304
1353
  export const ProveCompactionEquivalenceRequestSchema = /*@__PURE__*/
1305
- messageDesc(file_nomos_kernel_v1_kernel, 182);
1354
+ messageDesc(file_nomos_kernel_v1_kernel, 189);
1306
1355
 
1307
1356
  /**
1308
1357
  * Describes the message nomos.kernel.v1.ReadBlobRequest.
1309
1358
  * Use `create(ReadBlobRequestSchema)` to create a new message.
1310
1359
  */
1311
1360
  export const ReadBlobRequestSchema = /*@__PURE__*/
1312
- messageDesc(file_nomos_kernel_v1_kernel, 183);
1361
+ messageDesc(file_nomos_kernel_v1_kernel, 190);
1313
1362
 
1314
1363
  /**
1315
1364
  * Describes the message nomos.kernel.v1.ResolveRefRequest.
1316
1365
  * Use `create(ResolveRefRequestSchema)` to create a new message.
1317
1366
  */
1318
1367
  export const ResolveRefRequestSchema = /*@__PURE__*/
1319
- messageDesc(file_nomos_kernel_v1_kernel, 184);
1368
+ messageDesc(file_nomos_kernel_v1_kernel, 191);
1320
1369
 
1321
1370
  /**
1322
1371
  * Describes the message nomos.kernel.v1.PhysicalRefFile.
1323
1372
  * Use `create(PhysicalRefFileSchema)` to create a new message.
1324
1373
  */
1325
1374
  export const PhysicalRefFileSchema = /*@__PURE__*/
1326
- messageDesc(file_nomos_kernel_v1_kernel, 185);
1375
+ messageDesc(file_nomos_kernel_v1_kernel, 192);
1327
1376
 
1328
1377
  /**
1329
1378
  * Describes the message nomos.kernel.v1.ListRefsRequest.
1330
1379
  * Use `create(ListRefsRequestSchema)` to create a new message.
1331
1380
  */
1332
1381
  export const ListRefsRequestSchema = /*@__PURE__*/
1333
- messageDesc(file_nomos_kernel_v1_kernel, 186);
1382
+ messageDesc(file_nomos_kernel_v1_kernel, 193);
1334
1383
 
1335
1384
  /**
1336
1385
  * Describes the message nomos.kernel.v1.WriteRefRequest.
1337
1386
  * Use `create(WriteRefRequestSchema)` to create a new message.
1338
1387
  */
1339
1388
  export const WriteRefRequestSchema = /*@__PURE__*/
1340
- messageDesc(file_nomos_kernel_v1_kernel, 187);
1389
+ messageDesc(file_nomos_kernel_v1_kernel, 194);
1341
1390
 
1342
1391
  /**
1343
1392
  * Describes the message nomos.kernel.v1.DeleteRefRequest.
1344
1393
  * Use `create(DeleteRefRequestSchema)` to create a new message.
1345
1394
  */
1346
1395
  export const DeleteRefRequestSchema = /*@__PURE__*/
1347
- messageDesc(file_nomos_kernel_v1_kernel, 188);
1396
+ messageDesc(file_nomos_kernel_v1_kernel, 195);
1348
1397
 
1349
1398
  /**
1350
1399
  * Describes the message nomos.kernel.v1.MetaFile.
1351
1400
  * Use `create(MetaFileSchema)` to create a new message.
1352
1401
  */
1353
1402
  export const MetaFileSchema = /*@__PURE__*/
1354
- messageDesc(file_nomos_kernel_v1_kernel, 189);
1403
+ messageDesc(file_nomos_kernel_v1_kernel, 196);
1355
1404
 
1356
1405
  /**
1357
1406
  * Describes the message nomos.kernel.v1.WriteMetaCommitRequest.
1358
1407
  * Use `create(WriteMetaCommitRequestSchema)` to create a new message.
1359
1408
  */
1360
1409
  export const WriteMetaCommitRequestSchema = /*@__PURE__*/
1361
- messageDesc(file_nomos_kernel_v1_kernel, 190);
1410
+ messageDesc(file_nomos_kernel_v1_kernel, 197);
1362
1411
 
1363
1412
  /**
1364
1413
  * Describes the message nomos.kernel.v1.LawClosureInfoRequest.
1365
1414
  * Use `create(LawClosureInfoRequestSchema)` to create a new message.
1366
1415
  */
1367
1416
  export const LawClosureInfoRequestSchema = /*@__PURE__*/
1368
- messageDesc(file_nomos_kernel_v1_kernel, 191);
1417
+ messageDesc(file_nomos_kernel_v1_kernel, 198);
1369
1418
 
1370
1419
  /**
1371
1420
  * Describes the message nomos.kernel.v1.CheckpointExportRequest.
1372
1421
  * Use `create(CheckpointExportRequestSchema)` to create a new message.
1373
1422
  */
1374
1423
  export const CheckpointExportRequestSchema = /*@__PURE__*/
1375
- messageDesc(file_nomos_kernel_v1_kernel, 192);
1424
+ messageDesc(file_nomos_kernel_v1_kernel, 199);
1376
1425
 
1377
1426
  /**
1378
1427
  * Describes the message nomos.kernel.v1.FrontierHlc.
1379
1428
  * Use `create(FrontierHlcSchema)` to create a new message.
1380
1429
  */
1381
1430
  export const FrontierHlcSchema = /*@__PURE__*/
1382
- messageDesc(file_nomos_kernel_v1_kernel, 193);
1431
+ messageDesc(file_nomos_kernel_v1_kernel, 200);
1383
1432
 
1384
1433
  /**
1385
1434
  * Describes the message nomos.kernel.v1.VerifiedFrontierReceipt.
1386
1435
  * Use `create(VerifiedFrontierReceiptSchema)` to create a new message.
1387
1436
  */
1388
1437
  export const VerifiedFrontierReceiptSchema = /*@__PURE__*/
1389
- messageDesc(file_nomos_kernel_v1_kernel, 194);
1438
+ messageDesc(file_nomos_kernel_v1_kernel, 201);
1390
1439
 
1391
1440
  /**
1392
1441
  * Describes the message nomos.kernel.v1.FoldFrontierAggregate.
1393
1442
  * Use `create(FoldFrontierAggregateSchema)` to create a new message.
1394
1443
  */
1395
1444
  export const FoldFrontierAggregateSchema = /*@__PURE__*/
1396
- messageDesc(file_nomos_kernel_v1_kernel, 195);
1445
+ messageDesc(file_nomos_kernel_v1_kernel, 202);
1397
1446
 
1398
1447
  /**
1399
1448
  * Describes the message nomos.kernel.v1.FoldFrontierFingerprint.
1400
1449
  * Use `create(FoldFrontierFingerprintSchema)` to create a new message.
1401
1450
  */
1402
1451
  export const FoldFrontierFingerprintSchema = /*@__PURE__*/
1403
- messageDesc(file_nomos_kernel_v1_kernel, 196);
1452
+ messageDesc(file_nomos_kernel_v1_kernel, 203);
1404
1453
 
1405
1454
  /**
1406
1455
  * Describes the message nomos.kernel.v1.FoldFrontierSnapshot.
1407
1456
  * Use `create(FoldFrontierSnapshotSchema)` to create a new message.
1408
1457
  */
1409
1458
  export const FoldFrontierSnapshotSchema = /*@__PURE__*/
1410
- messageDesc(file_nomos_kernel_v1_kernel, 197);
1459
+ messageDesc(file_nomos_kernel_v1_kernel, 204);
1411
1460
 
1412
1461
  /**
1413
1462
  * Describes the message nomos.kernel.v1.StoredCheckpointManifest.
1414
1463
  * Use `create(StoredCheckpointManifestSchema)` to create a new message.
1415
1464
  */
1416
1465
  export const StoredCheckpointManifestSchema = /*@__PURE__*/
1417
- messageDesc(file_nomos_kernel_v1_kernel, 198);
1466
+ messageDesc(file_nomos_kernel_v1_kernel, 205);
1418
1467
 
1419
1468
  /**
1420
1469
  * Describes the message nomos.kernel.v1.CheckpointImportRequest.
1421
1470
  * Use `create(CheckpointImportRequestSchema)` to create a new message.
1422
1471
  */
1423
1472
  export const CheckpointImportRequestSchema = /*@__PURE__*/
1424
- messageDesc(file_nomos_kernel_v1_kernel, 199);
1473
+ messageDesc(file_nomos_kernel_v1_kernel, 206);
1425
1474
 
1426
1475
  /**
1427
1476
  * Describes the message nomos.kernel.v1.CapacityReserveRequest.
1428
1477
  * Use `create(CapacityReserveRequestSchema)` to create a new message.
1429
1478
  */
1430
1479
  export const CapacityReserveRequestSchema = /*@__PURE__*/
1431
- messageDesc(file_nomos_kernel_v1_kernel, 200);
1480
+ messageDesc(file_nomos_kernel_v1_kernel, 207);
1432
1481
 
1433
1482
  /**
1434
1483
  * Describes the message nomos.kernel.v1.RestoreMainRequest.
1435
1484
  * Use `create(RestoreMainRequestSchema)` to create a new message.
1436
1485
  */
1437
1486
  export const RestoreMainRequestSchema = /*@__PURE__*/
1438
- messageDesc(file_nomos_kernel_v1_kernel, 201);
1487
+ messageDesc(file_nomos_kernel_v1_kernel, 208);
1439
1488
 
1440
1489
  /**
1441
1490
  * Describes the message nomos.kernel.v1.AuditCustodyRequest.
1442
1491
  * Use `create(AuditCustodyRequestSchema)` to create a new message.
1443
1492
  */
1444
1493
  export const AuditCustodyRequestSchema = /*@__PURE__*/
1445
- messageDesc(file_nomos_kernel_v1_kernel, 202);
1494
+ messageDesc(file_nomos_kernel_v1_kernel, 209);
1446
1495
 
1447
1496
  /**
1448
1497
  * Describes the message nomos.kernel.v1.AuditCustodyResponse.
1449
1498
  * Use `create(AuditCustodyResponseSchema)` to create a new message.
1450
1499
  */
1451
1500
  export const AuditCustodyResponseSchema = /*@__PURE__*/
1452
- messageDesc(file_nomos_kernel_v1_kernel, 203);
1501
+ messageDesc(file_nomos_kernel_v1_kernel, 210);
1453
1502
 
1454
1503
  /**
1455
1504
  * Describes the message nomos.kernel.v1.LawProducts.
1456
1505
  * Use `create(LawProductsSchema)` to create a new message.
1457
1506
  */
1458
1507
  export const LawProductsSchema = /*@__PURE__*/
1459
- messageDesc(file_nomos_kernel_v1_kernel, 204);
1508
+ messageDesc(file_nomos_kernel_v1_kernel, 211);
1460
1509
 
1461
1510
  /**
1462
1511
  * Describes the message nomos.kernel.v1.ExportLawProductsRequest.
1463
1512
  * Use `create(ExportLawProductsRequestSchema)` to create a new message.
1464
1513
  */
1465
1514
  export const ExportLawProductsRequestSchema = /*@__PURE__*/
1466
- messageDesc(file_nomos_kernel_v1_kernel, 205);
1515
+ messageDesc(file_nomos_kernel_v1_kernel, 212);
1467
1516
 
1468
1517
  /**
1469
1518
  * Describes the message nomos.kernel.v1.ExportLawProductsResponse.
1470
1519
  * Use `create(ExportLawProductsResponseSchema)` to create a new message.
1471
1520
  */
1472
1521
  export const ExportLawProductsResponseSchema = /*@__PURE__*/
1473
- messageDesc(file_nomos_kernel_v1_kernel, 206);
1522
+ messageDesc(file_nomos_kernel_v1_kernel, 213);
1474
1523
 
1475
1524
  /**
1476
1525
  * Describes the message nomos.kernel.v1.ImportLawProductsRequest.
1477
1526
  * Use `create(ImportLawProductsRequestSchema)` to create a new message.
1478
1527
  */
1479
1528
  export const ImportLawProductsRequestSchema = /*@__PURE__*/
1480
- messageDesc(file_nomos_kernel_v1_kernel, 207);
1529
+ messageDesc(file_nomos_kernel_v1_kernel, 214);
1481
1530
 
1482
1531
  /**
1483
1532
  * Describes the message nomos.kernel.v1.ImportLawProductsResponse.
1484
1533
  * Use `create(ImportLawProductsResponseSchema)` to create a new message.
1485
1534
  */
1486
1535
  export const ImportLawProductsResponseSchema = /*@__PURE__*/
1487
- messageDesc(file_nomos_kernel_v1_kernel, 208);
1536
+ messageDesc(file_nomos_kernel_v1_kernel, 215);
1488
1537
 
1489
1538
  /**
1490
1539
  * Describes the message nomos.kernel.v1.CustodyCertificate.
1491
1540
  * Use `create(CustodyCertificateSchema)` to create a new message.
1492
1541
  */
1493
1542
  export const CustodyCertificateSchema = /*@__PURE__*/
1494
- messageDesc(file_nomos_kernel_v1_kernel, 209);
1543
+ messageDesc(file_nomos_kernel_v1_kernel, 216);
1495
1544
 
1496
1545
  /**
1497
1546
  * Describes the message nomos.kernel.v1.OpenGitStateRequest.
1498
1547
  * Use `create(OpenGitStateRequestSchema)` to create a new message.
1499
1548
  */
1500
1549
  export const OpenGitStateRequestSchema = /*@__PURE__*/
1501
- messageDesc(file_nomos_kernel_v1_kernel, 210);
1550
+ messageDesc(file_nomos_kernel_v1_kernel, 217);
1502
1551
 
1503
1552
  /**
1504
1553
  * Describes the message nomos.kernel.v1.AttachLocalFrontierRequest.
1505
1554
  * Use `create(AttachLocalFrontierRequestSchema)` to create a new message.
1506
1555
  */
1507
1556
  export const AttachLocalFrontierRequestSchema = /*@__PURE__*/
1508
- messageDesc(file_nomos_kernel_v1_kernel, 211);
1557
+ messageDesc(file_nomos_kernel_v1_kernel, 218);
1509
1558
 
1510
1559
  /**
1511
1560
  * Describes the message nomos.kernel.v1.CustodyRemote.
1512
1561
  * Use `create(CustodyRemoteSchema)` to create a new message.
1513
1562
  */
1514
1563
  export const CustodyRemoteSchema = /*@__PURE__*/
1515
- messageDesc(file_nomos_kernel_v1_kernel, 212);
1564
+ messageDesc(file_nomos_kernel_v1_kernel, 219);
1516
1565
 
1517
1566
  /**
1518
1567
  * Describes the message nomos.kernel.v1.CustodyPlacementRule.
1519
1568
  * Use `create(CustodyPlacementRuleSchema)` to create a new message.
1520
1569
  */
1521
1570
  export const CustodyPlacementRuleSchema = /*@__PURE__*/
1522
- messageDesc(file_nomos_kernel_v1_kernel, 213);
1571
+ messageDesc(file_nomos_kernel_v1_kernel, 220);
1523
1572
 
1524
1573
  /**
1525
1574
  * Describes the message nomos.kernel.v1.CustodyPlacementPolicy.
1526
1575
  * Use `create(CustodyPlacementPolicySchema)` to create a new message.
1527
1576
  */
1528
1577
  export const CustodyPlacementPolicySchema = /*@__PURE__*/
1529
- messageDesc(file_nomos_kernel_v1_kernel, 214);
1578
+ messageDesc(file_nomos_kernel_v1_kernel, 221);
1530
1579
 
1531
1580
  /**
1532
1581
  * Describes the message nomos.kernel.v1.CustodyPlacementExpectation.
1533
1582
  * Use `create(CustodyPlacementExpectationSchema)` to create a new message.
1534
1583
  */
1535
1584
  export const CustodyPlacementExpectationSchema = /*@__PURE__*/
1536
- messageDesc(file_nomos_kernel_v1_kernel, 215);
1585
+ messageDesc(file_nomos_kernel_v1_kernel, 222);
1537
1586
 
1538
1587
  /**
1539
1588
  * Describes the message nomos.kernel.v1.ReadCustodyPlacementRequest.
1540
1589
  * Use `create(ReadCustodyPlacementRequestSchema)` to create a new message.
1541
1590
  */
1542
1591
  export const ReadCustodyPlacementRequestSchema = /*@__PURE__*/
1543
- messageDesc(file_nomos_kernel_v1_kernel, 216);
1592
+ messageDesc(file_nomos_kernel_v1_kernel, 223);
1544
1593
 
1545
1594
  /**
1546
1595
  * Describes the message nomos.kernel.v1.InspectCustodyPlacementRequest.
1547
1596
  * Use `create(InspectCustodyPlacementRequestSchema)` to create a new message.
1548
1597
  */
1549
1598
  export const InspectCustodyPlacementRequestSchema = /*@__PURE__*/
1550
- messageDesc(file_nomos_kernel_v1_kernel, 217);
1599
+ messageDesc(file_nomos_kernel_v1_kernel, 224);
1551
1600
 
1552
1601
  /**
1553
1602
  * Describes the message nomos.kernel.v1.PlacementOffer.
1554
1603
  * Use `create(PlacementOfferSchema)` to create a new message.
1555
1604
  */
1556
1605
  export const PlacementOfferSchema = /*@__PURE__*/
1557
- messageDesc(file_nomos_kernel_v1_kernel, 218);
1606
+ messageDesc(file_nomos_kernel_v1_kernel, 225);
1558
1607
 
1559
1608
  /**
1560
1609
  * Describes the message nomos.kernel.v1.ResolveStatePositionRequest.
1561
1610
  * Use `create(ResolveStatePositionRequestSchema)` to create a new message.
1562
1611
  */
1563
1612
  export const ResolveStatePositionRequestSchema = /*@__PURE__*/
1564
- messageDesc(file_nomos_kernel_v1_kernel, 219);
1613
+ messageDesc(file_nomos_kernel_v1_kernel, 226);
1565
1614
 
1566
1615
  /**
1567
1616
  * Describes the message nomos.kernel.v1.CustodyResponse.
1568
1617
  * Use `create(CustodyResponseSchema)` to create a new message.
1569
1618
  */
1570
1619
  export const CustodyResponseSchema = /*@__PURE__*/
1571
- messageDesc(file_nomos_kernel_v1_kernel, 220);
1620
+ messageDesc(file_nomos_kernel_v1_kernel, 227);
1572
1621
 
1573
1622
  /**
1574
1623
  * Describes the message nomos.kernel.v1.PackDeltaResponse.
1575
1624
  * Use `create(PackDeltaResponseSchema)` to create a new message.
1576
1625
  */
1577
1626
  export const PackDeltaResponseSchema = /*@__PURE__*/
1578
- messageDesc(file_nomos_kernel_v1_kernel, 221);
1627
+ messageDesc(file_nomos_kernel_v1_kernel, 228);
1579
1628
 
1580
1629
  /**
1581
1630
  * Describes the message nomos.kernel.v1.ApplyPackResponse.
1582
1631
  * Use `create(ApplyPackResponseSchema)` to create a new message.
1583
1632
  */
1584
1633
  export const ApplyPackResponseSchema = /*@__PURE__*/
1585
- messageDesc(file_nomos_kernel_v1_kernel, 222);
1634
+ messageDesc(file_nomos_kernel_v1_kernel, 229);
1586
1635
 
1587
1636
  /**
1588
1637
  * Describes the message nomos.kernel.v1.PhysicalClosureCheck.
1589
1638
  * Use `create(PhysicalClosureCheckSchema)` to create a new message.
1590
1639
  */
1591
1640
  export const PhysicalClosureCheckSchema = /*@__PURE__*/
1592
- messageDesc(file_nomos_kernel_v1_kernel, 223);
1641
+ messageDesc(file_nomos_kernel_v1_kernel, 230);
1593
1642
 
1594
1643
  /**
1595
1644
  * Describes the message nomos.kernel.v1.RepoStatsResponse.
1596
1645
  * Use `create(RepoStatsResponseSchema)` to create a new message.
1597
1646
  */
1598
1647
  export const RepoStatsResponseSchema = /*@__PURE__*/
1599
- messageDesc(file_nomos_kernel_v1_kernel, 224);
1648
+ messageDesc(file_nomos_kernel_v1_kernel, 231);
1600
1649
 
1601
1650
  /**
1602
1651
  * Describes the message nomos.kernel.v1.IntentRecord.
1603
1652
  * Use `create(IntentRecordSchema)` to create a new message.
1604
1653
  */
1605
1654
  export const IntentRecordSchema = /*@__PURE__*/
1606
- messageDesc(file_nomos_kernel_v1_kernel, 225);
1655
+ messageDesc(file_nomos_kernel_v1_kernel, 232);
1607
1656
 
1608
1657
  /**
1609
1658
  * Describes the message nomos.kernel.v1.IntentsAboveResponse.
1610
1659
  * Use `create(IntentsAboveResponseSchema)` to create a new message.
1611
1660
  */
1612
1661
  export const IntentsAboveResponseSchema = /*@__PURE__*/
1613
- messageDesc(file_nomos_kernel_v1_kernel, 226);
1662
+ messageDesc(file_nomos_kernel_v1_kernel, 233);
1614
1663
 
1615
1664
  /**
1616
1665
  * Describes the message nomos.kernel.v1.HistorySummaryResponse.
1617
1666
  * Use `create(HistorySummaryResponseSchema)` to create a new message.
1618
1667
  */
1619
1668
  export const HistorySummaryResponseSchema = /*@__PURE__*/
1620
- messageDesc(file_nomos_kernel_v1_kernel, 227);
1669
+ messageDesc(file_nomos_kernel_v1_kernel, 234);
1621
1670
 
1622
1671
  /**
1623
1672
  * Describes the message nomos.kernel.v1.NominalCallIdentity.
1624
1673
  * Use `create(NominalCallIdentitySchema)` to create a new message.
1625
1674
  */
1626
1675
  export const NominalCallIdentitySchema = /*@__PURE__*/
1627
- messageDesc(file_nomos_kernel_v1_kernel, 228);
1676
+ messageDesc(file_nomos_kernel_v1_kernel, 235);
1628
1677
 
1629
1678
  /**
1630
1679
  * Describes the message nomos.kernel.v1.LifecycleInstallIdentity.
1631
1680
  * Use `create(LifecycleInstallIdentitySchema)` to create a new message.
1632
1681
  */
1633
1682
  export const LifecycleInstallIdentitySchema = /*@__PURE__*/
1634
- messageDesc(file_nomos_kernel_v1_kernel, 229);
1683
+ messageDesc(file_nomos_kernel_v1_kernel, 236);
1635
1684
 
1636
1685
  /**
1637
1686
  * Describes the message nomos.kernel.v1.WorkspaceResidencyRequirement.
1638
1687
  * Use `create(WorkspaceResidencyRequirementSchema)` to create a new message.
1639
1688
  */
1640
1689
  export const WorkspaceResidencyRequirementSchema = /*@__PURE__*/
1641
- messageDesc(file_nomos_kernel_v1_kernel, 230);
1690
+ messageDesc(file_nomos_kernel_v1_kernel, 237);
1642
1691
 
1643
1692
  /**
1644
1693
  * Describes the message nomos.kernel.v1.InspectChangeResponse.
1645
1694
  * Use `create(InspectChangeResponseSchema)` to create a new message.
1646
1695
  */
1647
1696
  export const InspectChangeResponseSchema = /*@__PURE__*/
1648
- messageDesc(file_nomos_kernel_v1_kernel, 231);
1697
+ messageDesc(file_nomos_kernel_v1_kernel, 238);
1649
1698
 
1650
1699
  /**
1651
1700
  * Describes the message nomos.kernel.v1.ResolveStatePositionResponse.
1652
1701
  * Use `create(ResolveStatePositionResponseSchema)` to create a new message.
1653
1702
  */
1654
1703
  export const ResolveStatePositionResponseSchema = /*@__PURE__*/
1655
- messageDesc(file_nomos_kernel_v1_kernel, 232);
1704
+ messageDesc(file_nomos_kernel_v1_kernel, 239);
1656
1705
 
1657
1706
  /**
1658
1707
  * Describes the message nomos.kernel.v1.EncodeRefusalVerdictResponse.
1659
1708
  * Use `create(EncodeRefusalVerdictResponseSchema)` to create a new message.
1660
1709
  */
1661
1710
  export const EncodeRefusalVerdictResponseSchema = /*@__PURE__*/
1662
- messageDesc(file_nomos_kernel_v1_kernel, 233);
1711
+ messageDesc(file_nomos_kernel_v1_kernel, 240);
1663
1712
 
1664
1713
  /**
1665
1714
  * Describes the message nomos.kernel.v1.InspectRefusalVerdictResponse.
1666
1715
  * Use `create(InspectRefusalVerdictResponseSchema)` to create a new message.
1667
1716
  */
1668
1717
  export const InspectRefusalVerdictResponseSchema = /*@__PURE__*/
1669
- messageDesc(file_nomos_kernel_v1_kernel, 234);
1718
+ messageDesc(file_nomos_kernel_v1_kernel, 241);
1670
1719
 
1671
1720
  /**
1672
1721
  * Describes the message nomos.kernel.v1.ProveCompactionEquivalenceResponse.
1673
1722
  * Use `create(ProveCompactionEquivalenceResponseSchema)` to create a new message.
1674
1723
  */
1675
1724
  export const ProveCompactionEquivalenceResponseSchema = /*@__PURE__*/
1676
- messageDesc(file_nomos_kernel_v1_kernel, 235);
1725
+ messageDesc(file_nomos_kernel_v1_kernel, 242);
1677
1726
 
1678
1727
  /**
1679
1728
  * Describes the message nomos.kernel.v1.ReadBlobResponse.
1680
1729
  * Use `create(ReadBlobResponseSchema)` to create a new message.
1681
1730
  */
1682
1731
  export const ReadBlobResponseSchema = /*@__PURE__*/
1683
- messageDesc(file_nomos_kernel_v1_kernel, 236);
1732
+ messageDesc(file_nomos_kernel_v1_kernel, 243);
1684
1733
 
1685
1734
  /**
1686
1735
  * Describes the message nomos.kernel.v1.ResolveRefResponse.
1687
1736
  * Use `create(ResolveRefResponseSchema)` to create a new message.
1688
1737
  */
1689
1738
  export const ResolveRefResponseSchema = /*@__PURE__*/
1690
- messageDesc(file_nomos_kernel_v1_kernel, 237);
1739
+ messageDesc(file_nomos_kernel_v1_kernel, 244);
1691
1740
 
1692
1741
  /**
1693
1742
  * Describes the message nomos.kernel.v1.RefRecord.
1694
1743
  * Use `create(RefRecordSchema)` to create a new message.
1695
1744
  */
1696
1745
  export const RefRecordSchema = /*@__PURE__*/
1697
- messageDesc(file_nomos_kernel_v1_kernel, 238);
1746
+ messageDesc(file_nomos_kernel_v1_kernel, 245);
1698
1747
 
1699
1748
  /**
1700
1749
  * Describes the message nomos.kernel.v1.ListRefsResponse.
1701
1750
  * Use `create(ListRefsResponseSchema)` to create a new message.
1702
1751
  */
1703
1752
  export const ListRefsResponseSchema = /*@__PURE__*/
1704
- messageDesc(file_nomos_kernel_v1_kernel, 239);
1753
+ messageDesc(file_nomos_kernel_v1_kernel, 246);
1705
1754
 
1706
1755
  /**
1707
1756
  * Describes the message nomos.kernel.v1.Acknowledged.
1708
1757
  * Use `create(AcknowledgedSchema)` to create a new message.
1709
1758
  */
1710
1759
  export const AcknowledgedSchema = /*@__PURE__*/
1711
- messageDesc(file_nomos_kernel_v1_kernel, 240);
1760
+ messageDesc(file_nomos_kernel_v1_kernel, 247);
1712
1761
 
1713
1762
  /**
1714
1763
  * Describes the message nomos.kernel.v1.WriteMetaCommitResponse.
1715
1764
  * Use `create(WriteMetaCommitResponseSchema)` to create a new message.
1716
1765
  */
1717
1766
  export const WriteMetaCommitResponseSchema = /*@__PURE__*/
1718
- messageDesc(file_nomos_kernel_v1_kernel, 241);
1767
+ messageDesc(file_nomos_kernel_v1_kernel, 248);
1719
1768
 
1720
1769
  /**
1721
1770
  * Describes the message nomos.kernel.v1.LawClosureInfoResponse.
1722
1771
  * Use `create(LawClosureInfoResponseSchema)` to create a new message.
1723
1772
  */
1724
1773
  export const LawClosureInfoResponseSchema = /*@__PURE__*/
1725
- messageDesc(file_nomos_kernel_v1_kernel, 242);
1774
+ messageDesc(file_nomos_kernel_v1_kernel, 249);
1726
1775
 
1727
1776
  /**
1728
1777
  * Describes the message nomos.kernel.v1.CheckpointExportResponse.
1729
1778
  * Use `create(CheckpointExportResponseSchema)` to create a new message.
1730
1779
  */
1731
1780
  export const CheckpointExportResponseSchema = /*@__PURE__*/
1732
- messageDesc(file_nomos_kernel_v1_kernel, 243);
1781
+ messageDesc(file_nomos_kernel_v1_kernel, 250);
1733
1782
 
1734
1783
  /**
1735
1784
  * Describes the message nomos.kernel.v1.CheckpointImportResponse.
1736
1785
  * Use `create(CheckpointImportResponseSchema)` to create a new message.
1737
1786
  */
1738
1787
  export const CheckpointImportResponseSchema = /*@__PURE__*/
1739
- messageDesc(file_nomos_kernel_v1_kernel, 244);
1788
+ messageDesc(file_nomos_kernel_v1_kernel, 251);
1740
1789
 
1741
1790
  /**
1742
1791
  * Describes the message nomos.kernel.v1.OpenGitStateResponse.
1743
1792
  * Use `create(OpenGitStateResponseSchema)` to create a new message.
1744
1793
  */
1745
1794
  export const OpenGitStateResponseSchema = /*@__PURE__*/
1746
- messageDesc(file_nomos_kernel_v1_kernel, 245);
1795
+ messageDesc(file_nomos_kernel_v1_kernel, 252);
1747
1796
 
1748
1797
  /**
1749
1798
  * Describes the message nomos.kernel.v1.AttachLocalFrontierResponse.
1750
1799
  * Use `create(AttachLocalFrontierResponseSchema)` to create a new message.
1751
1800
  */
1752
1801
  export const AttachLocalFrontierResponseSchema = /*@__PURE__*/
1753
- messageDesc(file_nomos_kernel_v1_kernel, 246);
1802
+ messageDesc(file_nomos_kernel_v1_kernel, 253);
1754
1803
 
1755
1804
  /**
1756
1805
  * Describes the message nomos.kernel.v1.ReleaseWorkspaceStateRequest.
1757
1806
  * Use `create(ReleaseWorkspaceStateRequestSchema)` to create a new message.
1758
1807
  */
1759
1808
  export const ReleaseWorkspaceStateRequestSchema = /*@__PURE__*/
1760
- messageDesc(file_nomos_kernel_v1_kernel, 247);
1809
+ messageDesc(file_nomos_kernel_v1_kernel, 254);
1761
1810
 
1762
1811
  /**
1763
1812
  * Describes the message nomos.kernel.v1.ReleaseWorkspaceStateResponse.
1764
1813
  * Use `create(ReleaseWorkspaceStateResponseSchema)` to create a new message.
1765
1814
  */
1766
1815
  export const ReleaseWorkspaceStateResponseSchema = /*@__PURE__*/
1767
- messageDesc(file_nomos_kernel_v1_kernel, 248);
1816
+ messageDesc(file_nomos_kernel_v1_kernel, 255);
1768
1817
 
1769
1818
  /**
1770
1819
  * Describes the message nomos.kernel.v1.ReadCustodyPlacementResponse.
1771
1820
  * Use `create(ReadCustodyPlacementResponseSchema)` to create a new message.
1772
1821
  */
1773
1822
  export const ReadCustodyPlacementResponseSchema = /*@__PURE__*/
1774
- messageDesc(file_nomos_kernel_v1_kernel, 249);
1823
+ messageDesc(file_nomos_kernel_v1_kernel, 256);
1775
1824
 
1776
1825
  /**
1777
1826
  * Describes the message nomos.kernel.v1.PlacementAdopted.
1778
1827
  * Use `create(PlacementAdoptedSchema)` to create a new message.
1779
1828
  */
1780
1829
  export const PlacementAdoptedSchema = /*@__PURE__*/
1781
- messageDesc(file_nomos_kernel_v1_kernel, 250);
1830
+ messageDesc(file_nomos_kernel_v1_kernel, 257);
1782
1831
 
1783
1832
  /**
1784
1833
  * Describes the message nomos.kernel.v1.InspectCustodyPlacementResponse.
1785
1834
  * Use `create(InspectCustodyPlacementResponseSchema)` to create a new message.
1786
1835
  */
1787
1836
  export const InspectCustodyPlacementResponseSchema = /*@__PURE__*/
1788
- messageDesc(file_nomos_kernel_v1_kernel, 251);
1837
+ messageDesc(file_nomos_kernel_v1_kernel, 258);
1789
1838
 
1790
1839
  /**
1791
1840
  * Describes the message nomos.kernel.v1.CapacityReserveResponse.
1792
1841
  * Use `create(CapacityReserveResponseSchema)` to create a new message.
1793
1842
  */
1794
1843
  export const CapacityReserveResponseSchema = /*@__PURE__*/
1795
- messageDesc(file_nomos_kernel_v1_kernel, 252);
1844
+ messageDesc(file_nomos_kernel_v1_kernel, 259);
1796
1845
 
1797
1846
  /**
1798
1847
  * Describes the message nomos.kernel.v1.RestoreMainSpans.
1799
1848
  * Use `create(RestoreMainSpansSchema)` to create a new message.
1800
1849
  */
1801
1850
  export const RestoreMainSpansSchema = /*@__PURE__*/
1802
- messageDesc(file_nomos_kernel_v1_kernel, 253);
1851
+ messageDesc(file_nomos_kernel_v1_kernel, 260);
1803
1852
 
1804
1853
  /**
1805
1854
  * Describes the message nomos.kernel.v1.RestoreMainResponse.
1806
1855
  * Use `create(RestoreMainResponseSchema)` to create a new message.
1807
1856
  */
1808
1857
  export const RestoreMainResponseSchema = /*@__PURE__*/
1809
- messageDesc(file_nomos_kernel_v1_kernel, 254);
1858
+ messageDesc(file_nomos_kernel_v1_kernel, 261);
1810
1859
 
1811
1860
  /**
1812
1861
  * Describes the message nomos.kernel.v1.NomosValue.
1813
1862
  * Use `create(NomosValueSchema)` to create a new message.
1814
1863
  */
1815
1864
  export const NomosValueSchema = /*@__PURE__*/
1816
- messageDesc(file_nomos_kernel_v1_kernel, 255);
1865
+ messageDesc(file_nomos_kernel_v1_kernel, 262);
1817
1866
 
1818
1867
  /**
1819
1868
  * Describes the message nomos.kernel.v1.Null.
1820
1869
  * Use `create(NullSchema)` to create a new message.
1821
1870
  */
1822
1871
  export const NullSchema = /*@__PURE__*/
1823
- messageDesc(file_nomos_kernel_v1_kernel, 256);
1872
+ messageDesc(file_nomos_kernel_v1_kernel, 263);
1824
1873
 
1825
1874
  /**
1826
1875
  * Describes the message nomos.kernel.v1.NomosList.
1827
1876
  * Use `create(NomosListSchema)` to create a new message.
1828
1877
  */
1829
1878
  export const NomosListSchema = /*@__PURE__*/
1830
- messageDesc(file_nomos_kernel_v1_kernel, 257);
1879
+ messageDesc(file_nomos_kernel_v1_kernel, 264);
1831
1880
 
1832
1881
  /**
1833
1882
  * Describes the message nomos.kernel.v1.NomosStruct.
1834
1883
  * Use `create(NomosStructSchema)` to create a new message.
1835
1884
  */
1836
1885
  export const NomosStructSchema = /*@__PURE__*/
1837
- messageDesc(file_nomos_kernel_v1_kernel, 258);
1886
+ messageDesc(file_nomos_kernel_v1_kernel, 265);
1838
1887
 
1839
1888
  /**
1840
1889
  * Describes the message nomos.kernel.v1.HistoryRequired.
1841
1890
  * Use `create(HistoryRequiredSchema)` to create a new message.
1842
1891
  */
1843
1892
  export const HistoryRequiredSchema = /*@__PURE__*/
1844
- messageDesc(file_nomos_kernel_v1_kernel, 259);
1893
+ messageDesc(file_nomos_kernel_v1_kernel, 266);
1894
+
1895
+ /**
1896
+ * Describes the enum nomos.kernel.v1.LawVersionOrder.
1897
+ */
1898
+ export const LawVersionOrderSchema = /*@__PURE__*/
1899
+ enumDesc(file_nomos_kernel_v1_kernel, 0);
1900
+
1901
+ /**
1902
+ * How an installed claim orders against the claim already served for its identity (CAP-811).
1903
+ *
1904
+ * @generated from enum nomos.kernel.v1.LawVersionOrder
1905
+ */
1906
+ export const LawVersionOrder = /*@__PURE__*/
1907
+ tsEnum(LawVersionOrderSchema);
1845
1908
 
1846
1909
  /**
1847
1910
  * Describes the enum nomos.kernel.v1.BirthOutcomeStatus.
1848
1911
  */
1849
1912
  export const BirthOutcomeStatusSchema = /*@__PURE__*/
1850
- enumDesc(file_nomos_kernel_v1_kernel, 0);
1913
+ enumDesc(file_nomos_kernel_v1_kernel, 1);
1851
1914
 
1852
1915
  /**
1853
1916
  * @generated from enum nomos.kernel.v1.BirthOutcomeStatus
@@ -1859,7 +1922,7 @@ export const BirthOutcomeStatus = /*@__PURE__*/
1859
1922
  * Describes the enum nomos.kernel.v1.KernelRefusalCode.
1860
1923
  */
1861
1924
  export const KernelRefusalCodeSchema = /*@__PURE__*/
1862
- enumDesc(file_nomos_kernel_v1_kernel, 1);
1925
+ enumDesc(file_nomos_kernel_v1_kernel, 2);
1863
1926
 
1864
1927
  /**
1865
1928
  * This list mirrors nomos_executor::Reason. The Rust conversion is an exhaustive
@@ -1870,11 +1933,25 @@ export const KernelRefusalCodeSchema = /*@__PURE__*/
1870
1933
  export const KernelRefusalCode = /*@__PURE__*/
1871
1934
  tsEnum(KernelRefusalCodeSchema);
1872
1935
 
1936
+ /**
1937
+ * Describes the enum nomos.kernel.v1.FullResultReason.
1938
+ */
1939
+ export const FullResultReasonSchema = /*@__PURE__*/
1940
+ enumDesc(file_nomos_kernel_v1_kernel, 3);
1941
+
1942
+ /**
1943
+ * Typed premise for answering a delta request with the complete result.
1944
+ *
1945
+ * @generated from enum nomos.kernel.v1.FullResultReason
1946
+ */
1947
+ export const FullResultReason = /*@__PURE__*/
1948
+ tsEnum(FullResultReasonSchema);
1949
+
1873
1950
  /**
1874
1951
  * Describes the enum nomos.kernel.v1.InterfaceMemberKind.
1875
1952
  */
1876
1953
  export const InterfaceMemberKindSchema = /*@__PURE__*/
1877
- enumDesc(file_nomos_kernel_v1_kernel, 2);
1954
+ enumDesc(file_nomos_kernel_v1_kernel, 4);
1878
1955
 
1879
1956
  /**
1880
1957
  * VINTF-inspired compatibility algebra over Nomos's canonical OpenUSD law.
@@ -1890,7 +1967,7 @@ export const InterfaceMemberKind = /*@__PURE__*/
1890
1967
  * Describes the enum nomos.kernel.v1.InterfaceCompatibilityStatus.
1891
1968
  */
1892
1969
  export const InterfaceCompatibilityStatusSchema = /*@__PURE__*/
1893
- enumDesc(file_nomos_kernel_v1_kernel, 3);
1970
+ enumDesc(file_nomos_kernel_v1_kernel, 5);
1894
1971
 
1895
1972
  /**
1896
1973
  * @generated from enum nomos.kernel.v1.InterfaceCompatibilityStatus
@@ -1902,7 +1979,7 @@ export const InterfaceCompatibilityStatus = /*@__PURE__*/
1902
1979
  * Describes the enum nomos.kernel.v1.InterfaceCompatibilityReason.
1903
1980
  */
1904
1981
  export const InterfaceCompatibilityReasonSchema = /*@__PURE__*/
1905
- enumDesc(file_nomos_kernel_v1_kernel, 4);
1982
+ enumDesc(file_nomos_kernel_v1_kernel, 6);
1906
1983
 
1907
1984
  /**
1908
1985
  * @generated from enum nomos.kernel.v1.InterfaceCompatibilityReason
@@ -1914,7 +1991,7 @@ export const InterfaceCompatibilityReason = /*@__PURE__*/
1914
1991
  * Describes the enum nomos.kernel.v1.MaintenancePhase.
1915
1992
  */
1916
1993
  export const MaintenancePhaseSchema = /*@__PURE__*/
1917
- enumDesc(file_nomos_kernel_v1_kernel, 5);
1994
+ enumDesc(file_nomos_kernel_v1_kernel, 7);
1918
1995
 
1919
1996
  /**
1920
1997
  * @generated from enum nomos.kernel.v1.MaintenancePhase
@@ -1926,7 +2003,7 @@ export const MaintenancePhase = /*@__PURE__*/
1926
2003
  * Describes the enum nomos.kernel.v1.VerifyChainWalk.
1927
2004
  */
1928
2005
  export const VerifyChainWalkSchema = /*@__PURE__*/
1929
- enumDesc(file_nomos_kernel_v1_kernel, 6);
2006
+ enumDesc(file_nomos_kernel_v1_kernel, 8);
1930
2007
 
1931
2008
  /**
1932
2009
  * @generated from enum nomos.kernel.v1.VerifyChainWalk
@@ -1938,7 +2015,7 @@ export const VerifyChainWalk = /*@__PURE__*/
1938
2015
  * Describes the enum nomos.kernel.v1.EffectExecutionPlacement.
1939
2016
  */
1940
2017
  export const EffectExecutionPlacementSchema = /*@__PURE__*/
1941
- enumDesc(file_nomos_kernel_v1_kernel, 7);
2018
+ enumDesc(file_nomos_kernel_v1_kernel, 9);
1942
2019
 
1943
2020
  /**
1944
2021
  * @generated from enum nomos.kernel.v1.EffectExecutionPlacement
@@ -1950,7 +2027,7 @@ export const EffectExecutionPlacement = /*@__PURE__*/
1950
2027
  * Describes the enum nomos.kernel.v1.EffectExecutionCardinality.
1951
2028
  */
1952
2029
  export const EffectExecutionCardinalitySchema = /*@__PURE__*/
1953
- enumDesc(file_nomos_kernel_v1_kernel, 8);
2030
+ enumDesc(file_nomos_kernel_v1_kernel, 10);
1954
2031
 
1955
2032
  /**
1956
2033
  * @generated from enum nomos.kernel.v1.EffectExecutionCardinality
@@ -1962,7 +2039,7 @@ export const EffectExecutionCardinality = /*@__PURE__*/
1962
2039
  * Describes the enum nomos.kernel.v1.ModelLifecycleOperation.
1963
2040
  */
1964
2041
  export const ModelLifecycleOperationSchema = /*@__PURE__*/
1965
- enumDesc(file_nomos_kernel_v1_kernel, 9);
2042
+ enumDesc(file_nomos_kernel_v1_kernel, 11);
1966
2043
 
1967
2044
  /**
1968
2045
  * Exact framework lifecycle authoring. The candidate itself remains the opaque, content-addressed
@@ -1979,7 +2056,7 @@ export const ModelLifecycleOperation = /*@__PURE__*/
1979
2056
  * Describes the enum nomos.kernel.v1.ChildWorkspaceLifecycleStatus.
1980
2057
  */
1981
2058
  export const ChildWorkspaceLifecycleStatusSchema = /*@__PURE__*/
1982
- enumDesc(file_nomos_kernel_v1_kernel, 10);
2059
+ enumDesc(file_nomos_kernel_v1_kernel, 12);
1983
2060
 
1984
2061
  /**
1985
2062
  * @generated from enum nomos.kernel.v1.ChildWorkspaceLifecycleStatus
@@ -1991,7 +2068,7 @@ export const ChildWorkspaceLifecycleStatus = /*@__PURE__*/
1991
2068
  * Describes the enum nomos.kernel.v1.DeclaredAuthenticationProviderKind.
1992
2069
  */
1993
2070
  export const DeclaredAuthenticationProviderKindSchema = /*@__PURE__*/
1994
- enumDesc(file_nomos_kernel_v1_kernel, 11);
2071
+ enumDesc(file_nomos_kernel_v1_kernel, 13);
1995
2072
 
1996
2073
  /**
1997
2074
  * @generated from enum nomos.kernel.v1.DeclaredAuthenticationProviderKind
@@ -2003,7 +2080,7 @@ export const DeclaredAuthenticationProviderKind = /*@__PURE__*/
2003
2080
  * Describes the enum nomos.kernel.v1.DeclaredLawMemberKind.
2004
2081
  */
2005
2082
  export const DeclaredLawMemberKindSchema = /*@__PURE__*/
2006
- enumDesc(file_nomos_kernel_v1_kernel, 12);
2083
+ enumDesc(file_nomos_kernel_v1_kernel, 14);
2007
2084
 
2008
2085
  /**
2009
2086
  * @generated from enum nomos.kernel.v1.DeclaredLawMemberKind
@@ -2015,7 +2092,7 @@ export const DeclaredLawMemberKind = /*@__PURE__*/
2015
2092
  * Describes the enum nomos.kernel.v1.ProviderTokenVerificationStatus.
2016
2093
  */
2017
2094
  export const ProviderTokenVerificationStatusSchema = /*@__PURE__*/
2018
- enumDesc(file_nomos_kernel_v1_kernel, 13);
2095
+ enumDesc(file_nomos_kernel_v1_kernel, 15);
2019
2096
 
2020
2097
  /**
2021
2098
  * @generated from enum nomos.kernel.v1.ProviderTokenVerificationStatus
@@ -2027,7 +2104,7 @@ export const ProviderTokenVerificationStatus = /*@__PURE__*/
2027
2104
  * Describes the enum nomos.kernel.v1.DeviceSignerStatus.
2028
2105
  */
2029
2106
  export const DeviceSignerStatusSchema = /*@__PURE__*/
2030
- enumDesc(file_nomos_kernel_v1_kernel, 14);
2107
+ enumDesc(file_nomos_kernel_v1_kernel, 16);
2031
2108
 
2032
2109
  /**
2033
2110
  * A device credential is not the account. In particular, a revoked credential
@@ -2043,7 +2120,7 @@ export const DeviceSignerStatus = /*@__PURE__*/
2043
2120
  * Describes the enum nomos.kernel.v1.BirthEvidenceStatus.
2044
2121
  */
2045
2122
  export const BirthEvidenceStatusSchema = /*@__PURE__*/
2046
- enumDesc(file_nomos_kernel_v1_kernel, 15);
2123
+ enumDesc(file_nomos_kernel_v1_kernel, 17);
2047
2124
 
2048
2125
  /**
2049
2126
  * @generated from enum nomos.kernel.v1.BirthEvidenceStatus
@@ -2055,7 +2132,7 @@ export const BirthEvidenceStatus = /*@__PURE__*/
2055
2132
  * Describes the enum nomos.kernel.v1.QueryResultFormat.
2056
2133
  */
2057
2134
  export const QueryResultFormatSchema = /*@__PURE__*/
2058
- enumDesc(file_nomos_kernel_v1_kernel, 16);
2135
+ enumDesc(file_nomos_kernel_v1_kernel, 18);
2059
2136
 
2060
2137
  /**
2061
2138
  * @generated from enum nomos.kernel.v1.QueryResultFormat
@@ -2067,7 +2144,7 @@ export const QueryResultFormat = /*@__PURE__*/
2067
2144
  * Describes the enum nomos.kernel.v1.QueryOperation.
2068
2145
  */
2069
2146
  export const QueryOperationSchema = /*@__PURE__*/
2070
- enumDesc(file_nomos_kernel_v1_kernel, 17);
2147
+ enumDesc(file_nomos_kernel_v1_kernel, 19);
2071
2148
 
2072
2149
  /**
2073
2150
  * @generated from enum nomos.kernel.v1.QueryOperation
@@ -2079,7 +2156,7 @@ export const QueryOperation = /*@__PURE__*/
2079
2156
  * Describes the enum nomos.kernel.v1.ReadProjectionStorageKind.
2080
2157
  */
2081
2158
  export const ReadProjectionStorageKindSchema = /*@__PURE__*/
2082
- enumDesc(file_nomos_kernel_v1_kernel, 18);
2159
+ enumDesc(file_nomos_kernel_v1_kernel, 20);
2083
2160
 
2084
2161
  /**
2085
2162
  * @generated from enum nomos.kernel.v1.ReadProjectionStorageKind
@@ -2091,7 +2168,7 @@ export const ReadProjectionStorageKind = /*@__PURE__*/
2091
2168
  * Describes the enum nomos.kernel.v1.ResidentComponentKind.
2092
2169
  */
2093
2170
  export const ResidentComponentKindSchema = /*@__PURE__*/
2094
- enumDesc(file_nomos_kernel_v1_kernel, 19);
2171
+ enumDesc(file_nomos_kernel_v1_kernel, 21);
2095
2172
 
2096
2173
  /**
2097
2174
  * @generated from enum nomos.kernel.v1.ResidentComponentKind
@@ -2103,7 +2180,7 @@ export const ResidentComponentKind = /*@__PURE__*/
2103
2180
  * Describes the enum nomos.kernel.v1.KernelLawCapability.
2104
2181
  */
2105
2182
  export const KernelLawCapabilitySchema = /*@__PURE__*/
2106
- enumDesc(file_nomos_kernel_v1_kernel, 20);
2183
+ enumDesc(file_nomos_kernel_v1_kernel, 22);
2107
2184
 
2108
2185
  /**
2109
2186
  * @generated from enum nomos.kernel.v1.KernelLawCapability
@@ -2115,7 +2192,7 @@ export const KernelLawCapability = /*@__PURE__*/
2115
2192
  * Describes the enum nomos.kernel.v1.CheckpointCompression.
2116
2193
  */
2117
2194
  export const CheckpointCompressionSchema = /*@__PURE__*/
2118
- enumDesc(file_nomos_kernel_v1_kernel, 21);
2195
+ enumDesc(file_nomos_kernel_v1_kernel, 23);
2119
2196
 
2120
2197
  /**
2121
2198
  * @generated from enum nomos.kernel.v1.CheckpointCompression
@@ -2127,7 +2204,7 @@ export const CheckpointCompression = /*@__PURE__*/
2127
2204
  * Describes the enum nomos.kernel.v1.CheckpointVerificationPolicy.
2128
2205
  */
2129
2206
  export const CheckpointVerificationPolicySchema = /*@__PURE__*/
2130
- enumDesc(file_nomos_kernel_v1_kernel, 22);
2207
+ enumDesc(file_nomos_kernel_v1_kernel, 24);
2131
2208
 
2132
2209
  /**
2133
2210
  * @generated from enum nomos.kernel.v1.CheckpointVerificationPolicy
@@ -2139,7 +2216,7 @@ export const CheckpointVerificationPolicy = /*@__PURE__*/
2139
2216
  * Describes the enum nomos.kernel.v1.CheckpointAssurance.
2140
2217
  */
2141
2218
  export const CheckpointAssuranceSchema = /*@__PURE__*/
2142
- enumDesc(file_nomos_kernel_v1_kernel, 23);
2219
+ enumDesc(file_nomos_kernel_v1_kernel, 25);
2143
2220
 
2144
2221
  /**
2145
2222
  * @generated from enum nomos.kernel.v1.CheckpointAssurance
@@ -2151,7 +2228,7 @@ export const CheckpointAssurance = /*@__PURE__*/
2151
2228
  * Describes the enum nomos.kernel.v1.KernelResidencyIntent.
2152
2229
  */
2153
2230
  export const KernelResidencyIntentSchema = /*@__PURE__*/
2154
- enumDesc(file_nomos_kernel_v1_kernel, 24);
2231
+ enumDesc(file_nomos_kernel_v1_kernel, 26);
2155
2232
 
2156
2233
  /**
2157
2234
  * Peer-relative kernel-memory intent. This does not promise durable Git custody
@@ -2166,7 +2243,7 @@ export const KernelResidencyIntent = /*@__PURE__*/
2166
2243
  * Describes the enum nomos.kernel.v1.CustodyRetentionIntent.
2167
2244
  */
2168
2245
  export const CustodyRetentionIntentSchema = /*@__PURE__*/
2169
- enumDesc(file_nomos_kernel_v1_kernel, 25);
2246
+ enumDesc(file_nomos_kernel_v1_kernel, 27);
2170
2247
 
2171
2248
  /**
2172
2249
  * Peer-relative durable Git-custody intent, independent of whether the kernel
@@ -2181,7 +2258,7 @@ export const CustodyRetentionIntent = /*@__PURE__*/
2181
2258
  * Describes the enum nomos.kernel.v1.IntentTransportRequirement.
2182
2259
  */
2183
2260
  export const IntentTransportRequirementSchema = /*@__PURE__*/
2184
- enumDesc(file_nomos_kernel_v1_kernel, 26);
2261
+ enumDesc(file_nomos_kernel_v1_kernel, 28);
2185
2262
 
2186
2263
  /**
2187
2264
  * A sealed change is self-contained and may take the low-latency offer lane. A commit-tree
@@ -2198,7 +2275,7 @@ export const IntentTransportRequirement = /*@__PURE__*/
2198
2275
  * Describes the enum nomos.kernel.v1.LifecycleInstallPhase.
2199
2276
  */
2200
2277
  export const LifecycleInstallPhaseSchema = /*@__PURE__*/
2201
- enumDesc(file_nomos_kernel_v1_kernel, 27);
2278
+ enumDesc(file_nomos_kernel_v1_kernel, 29);
2202
2279
 
2203
2280
  /**
2204
2281
  * @generated from enum nomos.kernel.v1.LifecycleInstallPhase