@alphauspkgs/blue-sdk-ts 1.0.27 → 1.0.28

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.
@@ -39,6 +39,8 @@ import { file_protos_operation } from "../../protos/operation_pb";
39
39
  import { file_google_api_annotations } from "../../google/api/annotations_pb";
40
40
  import type { EmptySchema } from "@bufbuild/protobuf/wkt";
41
41
  import { file_google_protobuf_empty, file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
42
+ import type { Role } from "../../api/cover/role_pb";
43
+ import { file_api_cover_role } from "../../api/cover/role_pb";
42
44
  import { file_protoc_gen_openapiv2_options_annotations } from "../../protoc-gen-openapiv2/options/annotations_pb";
43
45
  import type { JsonObject, Message } from "@bufbuild/protobuf";
44
46
 
@@ -46,7 +48,37 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
46
48
  * Describes the file cover/v1/cover.proto.
47
49
  */
48
50
  export const file_cover_v1_cover: GenFile = /*@__PURE__*/
49
- fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSIcCg5HZXRVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSL7AgoPR2V0VXNlclJlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFZW1haWwYAyABKAkSNQoFcm9sZXMYBCADKAsyJi5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJSZXNwb25zZS5Sb2xlEisKCmludml0ZWRfYnkYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGxhc3RfdXBkYXRlZBgGIAEoCRISCgpjcmVhdGVkX29uGAcgASgJEg4KBmF2YXRhchgIIAEoCRIRCglhY3RpdmF0ZWQYCSABKAgajQEKBFJvbGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRJECgpjb3N0Z3JvdXBzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUmVzcG9uc2UuUm9sZS5Db3N0R3JvdXAaJQoJQ29zdEdyb3VwEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkiIQoTUmVpbnZpdGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIWChRSZWludml0ZVVzZXJSZXNwb25zZSISChBMaXN0VXNlcnNSZXF1ZXN0ItIBChFMaXN0VXNlcnNSZXNwb25zZRI+CgV1c2VycxgBIAMoCzIvLmJsdWVhcGkuY292ZXIudjEuTGlzdFVzZXJzUmVzcG9uc2UuVXNlclN1bW1hcnkafQoLVXNlclN1bW1hcnkSCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVyb2xlcxgEIAMoCRIRCglhY3RpdmF0ZWQYBSABKAgSDgoGYXZhdGFyGAYgASgJEhMKC2NvbG9yX3RoZW1lGAcgASgJIlIKFVVwZGF0ZVVzZXJSb2xlUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhAKCHJvbGVfaWRzGAIgAygJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhgKFlVwZGF0ZVVzZXJSb2xlUmVzcG9uc2UiHwoRRGVsZXRlVXNlclJlcXVlc3QSCgoCaWQYASABKAkiFAoSRGVsZXRlVXNlclJlc3BvbnNlIk0KEkludml0ZVVzZXJzUmVxdWVzdBIOCgZlbWFpbHMYASADKAkSDwoHcm9sZV9pZBgCIAEoCRIWCg5jb3N0X2dyb3VwX2lkcxgDIAMoCSIVChNJbnZpdGVVc2Vyc1Jlc3BvbnNlIu0BCh5FeGVjdXRlUmVjb21tZW5kYXRpb25WM1JlcXVlc3QSCwoDaWRzGAEgAygJElEKC2V4ZWN1dGVUeXBlGAIgASgOMjwuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlUmVjb21tZW5kYXRpb25WM1JlcXVlc3QuRXhlY3V0ZVR5cGUiawoLRXhlY3V0ZVR5cGUSCwoHREVGQVVMVBAAEhQKEE1BUktfQVNfRVhFQ1VURUQQARIRCg1VTkRPX0VYRUNVVEVEEAISEwoPU1VCTUlUX1RFTVBMQVRFEAMSEQoNUkVUUllfRVhFQ1VURRAEIkoKH0V4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2USJwoGcmVzdWx0GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLDAQocTGlzdFJlY29tbWVuZGF0aW9uc1YzUmVxdWVzdBITCgtjb3N0Z3JvdXBJZBgBIAEoCRIQCghzdGF0dXNlcxgCIAMoCRJMCgdmaWx0ZXJzGAMgAygLMjsuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0LkZpbHRlcnNFbnRyeRouCgxGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL1AwoVUmVjb21tZW5kYXRpb25TdW1tYXJ5EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGdGFyZ2V0GAMgASgJEhIKCnRhcmdldE5hbWUYEiABKAkSEAoIY2F0ZWdvcnkYBCABKAkSDAoEdHlwZRgFIAEoCRIOCgZ2ZW5kb3IYDSABKAkSDgoGc291cmNlGBMgASgJEgwKBGNvZGUYDiABKAkSFAoHc2VydmljZRgPIAEoCUgAiAEBEhMKBnJlZ2lvbhgQIAEoCUgBiAEBEhcKCnJlc291cmNlSWQYESABKAlIAogBARIfChdlc3RpbWF0ZWRNb250aGx5U2F2aW5ncxgGIAEoARIiChplc3RpbWF0ZWRNb250aGx5QmVmb3JlQ29zdBgHIAEoARIhChllc3RpbWF0ZWRNb250aGx5QWZ0ZXJDb3N0GAggASgBEhEKBHJpc2sYCSABKAlIA4gBARITCgZlZmZvcnQYCiABKAlIBIgBARIOCgZzdGF0dXMYCyABKAkSMgoRYWRkaXRpb25hbERldGFpbHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QgoKCF9zZXJ2aWNlQgkKB19yZWdpb25CDQoLX3Jlc291cmNlSWRCBwoFX3Jpc2tCCQoHX2VmZm9ydCIpChpHZXRSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkikgUKG0dldFJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRJbCg9yZWNvbW1lbmRhdGlvbnMYASADKAsyQi5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXNwb25zZS5SZWNvbW1lbmRhdGlvbkRldGFpbBqVBAoUUmVjb21tZW5kYXRpb25EZXRhaWwSCgoCaWQYASABKAkSDAoEbmFtZRgJIAEoCRIOCgZ2ZW5kb3IYAiABKAkSDgoGc291cmNlGAMgASgJEgwKBGNvZGUYBCABKAkSFAoHc2VydmljZRgFIAEoCUgAiAEBEg4KBnRhcmdldBgHIAEoCRISCgp0YXJnZXROYW1lGAggASgJEhQKDGRhdGVEZXRlY3RlZBgGIAEoCRITCgZyZWdpb24YCiABKAlIAYgBARIiChplc3RpbWF0ZWRNb250aGx5QmVmb3JlQ29zdBgLIAEoARIhChllc3RpbWF0ZWRNb250aGx5QWZ0ZXJDb3N0GAwgASgBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGA0gASgBEhcKCnJlc291cmNlSWQYDiABKAlIAogBARIQCghjYXRlZ29yeRgPIAEoCRIMCgR0eXBlGBAgASgJEhMKC2xhc3RVcGRhdGVkGBEgASgJEg4KBnN0YXR1cxgSIAEoCRIRCgRyaXNrGBMgASgJSAOIAQESEwoGZWZmb3J0GBQgASgJSASIAQESKAoHZGV0YWlscxgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IuoBChtHZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSTgoLZ3JhbnVsYXJpdHkYBCABKA4yOS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdC5HcmFudWxhcml0eSJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACImoKHEdldENvc3RGb3JlY2FzdHNEYXRhUmVzcG9uc2USDAoEZGF0ZRgBIAEoCRIUCgxmb3JlY2FzdENvc3QYAiABKAESEgoKdXBwZXJCb3VuZBgDIAEoARISCgpsb3dlckJvdW5kGAQgASgBIhYKFExpc3RGb3JlY2FzdHNSZXF1ZXN0IlwKFUxpc3RGb3JlY2FzdHNSZXNwb25zZRJDChNjb3N0Rm9yZWNhc3REZXRhaWxzGAEgAygLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEZvcmVjYXN0RGV0YWlscyLzAQoZQ3JlYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIUCgxmb3JlY2FzdE5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSLwoJY29zdEdyb3VwGAMgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBCABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBSABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgGIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCKAAgoaQ3JlYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQiJAoWR2V0Q29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCSK/AgoXR2V0Q29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQSEQoJY3JlYXRlZEJ5GAggASgJEhQKDGNyZWF0aW9uRGF0ZRgJIAEoCRIXCg9sYXN0VXBkYXRlZERhdGUYCiABKAki/wEKGVVwZGF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQiwgIKGlVwZGF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGZvcmVjYXN0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIvCgljb3N0R3JvdXAYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgFIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgGIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAcgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50EhEKCWNyZWF0ZWRCeRgIIAEoCRIUCgxjcmVhdGlvbkRhdGUYCSABKAkSFwoPbGFzdFVwZGF0ZWREYXRlGAogASgJIicKGURlbGV0ZUNvc3RGb3JlY2FzdFJlcXVlc3QSCgoCaWQYASABKAkiKAoaRGVsZXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkibwoWR2V0Q29zdFVzYWdlVjJSZXNwb25zZRINCgV2YWx1ZRgBIAEoARIMCgRkYXRlGAIgASgJEg4KBnZlbmRvchgDIAEoCRIoCgdkZXRhaWxzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK/BAoVR2V0Q29zdFVzYWdlVjJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJEkgKC2dyYW51bGFyaXR5GAQgASgOMjMuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QuR3JhbnVsYXJpdHkSEAoIZ3JvdXBCeXMYBSADKAkSQgoIY2F0ZWdvcnkYBiABKA4yMC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdC5DYXRlZ29yeRIQCghjdXJyZW5jeRgHIAEoCRI6Cgphd3NPcHRpb25zGAggASgLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwQXdzT3B0aW9ucxJECg9henVyZWNzcE9wdGlvbnMYCSABKAsyKy5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBBenVyZUNzcE9wdGlvbnMSOgoKZ2NwT3B0aW9ucxgKIAEoCzImLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEdjcE9wdGlvbnMiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiI5CghDYXRlZ29yeRIYChRDYXRlZ29yeV9VTlNQRUNJRklFRBAAEggKBENPU1QQARIJCgVVU0FHRRACIhkKF1BvcHVsYXRlRGVtb0RhdGFSZXF1ZXN0IhoKGFBvcHVsYXRlRGVtb0RhdGFSZXNwb25zZSIWChRSZXNldERlbW9EYXRhUmVxdWVzdCIXChVSZXNldERlbW9EYXRhUmVzcG9uc2Ui3wYKGUNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEkoKCm1ldHJpY1R5cGUYAyABKA4yNi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuTWV0cmljVHlwZRIRCglzdGFydFRpbWUYBCABKAkSDwoHZW5kVGltZRgFIAEoCRJQCgtncmFudWxhcml0eRgGIAEoDjI7LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5UaW1lR3JhbnVsYXJpdHkSEAoIZ3JvdXBCeXMYByADKAkSSwoHZmlsdGVycxgIIAMoCzI6LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5GaWx0ZXJDcml0ZXJpYRJMCgtzZXJ2aWNlVHlwZRgJIAEoDjI3LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5TZXJ2aWNlVHlwZRrPAQoORmlsdGVyQ3JpdGVyaWESCwoDa2V5GAEgASgJElsKCG9wZXJhdG9yGAIgASgOMkkuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LkZpbHRlckNyaXRlcmlhLkZpbHRlck9wZXJhdG9yEg0KBXZhbHVlGAMgASgJIkQKDkZpbHRlck9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASCQoFRVFVQUwQARINCglOT1RfRVFVQUwQAiJGCg9UaW1lR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiJaCgpNZXRyaWNUeXBlEhYKEk1FVFJJQ19VTlNQRUNJRklFRBAAEggKBENPU1QQARIJCgVVU0FHRRACEg4KCkVGRklDSUVOQ1kQAxIPCgtVTlVTRURfQ09TVBAEIjgKC1NlcnZpY2VUeXBlEhcKE1NFUlZJQ0VfVU5TUEVDSUZJRUQQABIHCgNFQ1MQARIHCgNFS1MQAiLXCgoaQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2USSwoHcmVzdWx0cxgBIAMoCzI6LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuR3JvdXBlZFJlc3VsdBJTCgpoaWdobGlnaHRzGAIgASgLMj8uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodHMSEQoJdG90YWxDb3N0GAMgASgBEhUKDWF2Z0VmZmljaWVuY3kYBCABKAEaRAoKQ29zdE1ldHJpYxIOCgZhbW91bnQYASABKAESEAoIY3VycmVuY3kYAiABKAkSFAoMdW51c2VkQW1vdW50GAMgASgBGpABCgtVc2FnZU1ldHJpYxIMCgR1bml0GAEgASgJEhYKDnJlc2VydmVkQW1vdW50GAIgASgBEhQKDGFjdHVhbEFtb3VudBgDIAEoARISCgplZmZpY2llbmN5GAQgASgBEhYKDmNwdVV0aWxpemF0aW9uGAUgASgBEhkKEW1lbW9yeVV0aWxpemF0aW9uGAYgASgBGsEBCg9NZXRyaWNEYXRhUG9pbnQSDAoEZGF0ZRgBIAEoCRJHCgRjb3N0GAIgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Db3N0TWV0cmljSAASSQoFdXNhZ2UYAyABKAsyOC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlVzYWdlTWV0cmljSABCDAoKbWV0cmljRGF0YRpMChFSZXNvdXJjZUhpZ2hsaWdodBISCgpyZXNvdXJjZUlkGAEgASgJEhQKDHJlc291cmNlTmFtZRgCIAEoCRINCgV2YWx1ZRgDIAEoARqEAwoSUmVzb3VyY2VIaWdobGlnaHRzEloKEmhpZ2hlc3RDbHVzdGVyQ29zdBgBIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWQoRaGlnaGVzdFVudXNlZENvc3QYAiABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0ElsKE2hpZ2hlc3RXb3JrbG9hZENvc3QYAyABKAsyPi5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0EloKEmhpZ2hlc3RDb21wdXRlQ29zdBgEIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQa+gEKDUdyb3VwZWRSZXN1bHQSXgoKYXR0cmlidXRlcxgBIAMoCzJKLmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuR3JvdXBlZFJlc3VsdC5BdHRyaWJ1dGVzRW50cnkSVgoQbWV0cmljRGF0YVBvaW50cxgCIAMoCzI8LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuTWV0cmljRGF0YVBvaW50GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo8EChhHZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEksKC2dyYW51bGFyaXR5GAUgASgOMjYuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuR3JhbnVsYXJpdHkSEAoIZ3JvdXBCeXMYBiADKAkSQgoHZmlsdGVycxgHIAMoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0LkZpbHRlchrCAQoGRmlsdGVyEgsKA2tleRgBIAEoCRJMCghvcGVyYXRvchgCIAEoDjI6LmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXF1ZXN0LkZpbHRlci5PcGVyYXRvchIOCgZ2YWx1ZXMYAyADKAkSDQoFdmFsdWUYBCABKAkiPgoIT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIJCgVFUVVBTBABEg0KCU5PVF9FUVVBTBACIkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIipwQKGUdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2USQwoHcmVzdWx0cxgBIAMoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5SZXN1bHQaKAoEQ29zdBIOCgZhbW91bnQYASABKAESEAoIY3VycmVuY3kYAiABKAkaJQoFVXNhZ2USDAoEdW5pdBgBIAEoCRIOCgZhbW91bnQYAiABKAEamAEKBk1ldHJpYxIMCgRkYXRlGAEgASgJEj4KBGNvc3QYAiABKAsyMC5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuQ29zdBJACgV1c2FnZRgDIAEoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5Vc2FnZRrYAQoGUmVzdWx0ElYKCmF0dHJpYnV0ZXMYASADKAsyQi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuUmVzdWx0LkF0dHJpYnV0ZXNFbnRyeRJDCgdtZXRyaWNzGAIgAygLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLk1ldHJpYxoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIbChlHZXRFeGVjdXRpb25TdGF0dXNSZXF1ZXN0IlcKGkdldEV4ZWN1dGlvblN0YXR1c1Jlc3BvbnNlEhgKEHJlY29tbWVuZGF0aW9uSWQYASABKAkSDgoGc3RhdHVzGAIgASgJEg8KB21lc3NhZ2UYAyABKAkiOAoWVmVyaWZ5QVBJQWNjZXNzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDgoGdGFyZ2V0GAIgASgJIikKF1ZlcmlmeUFQSUFjY2Vzc1Jlc3BvbnNlEg4KBnJlc3VsdBgBIAEoCCJlChpHZXRSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBIKCgJpZBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIUCgxwZXJpb2RPcHRpb24YAyABKAkSEAoIY3VycmVuY3kYBCABKAkiYQobR2V0UmVjb21tZW5kYXRpb25WMlJlc3BvbnNlEkIKBGRhdGEYASABKAsyNC5ibHVlYXBpLmFwaS5jb3Zlci5yZWNvbW1lbmRhdGlvbi5SZWNvbW1lbmRhdGlvbkRhdGEiUQoRT25ib2FyZE9yZ1JlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRINCgVvcmdJZBgEIAEoCSJDChJPbmJvYXJkT3JnUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJNChNJbnZpdGVNZW1iZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgAygJEhAKCGlzUmVzZW5kGAIgASgIEhUKDWludml0ZUFzQWRtaW4YAyABKAgiJQoUSW52aXRlTWVtYmVyUmVzcG9uc2USDQoFZW1haWwYASADKAkipAEKE0FjdGl2YXRlVXNlclJlcXVlc3QSDgoGdXNlcklkGAEgASgJEhgKEHByZXZpb3VzUGFzc3dvcmQYAiABKAkSEAoIcGFzc3dvcmQYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZsb2NhbGUYBSABKAkSDQoFZW1haWwYBiABKAkSDwoHaXNBdXRoMBgHIAEoCBITCgthdXRoMFVzZXJJZBgIIAEoCSJFChRBY3RpdmF0ZVVzZXJSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIlgKE0NyZWF0ZU1lbWJlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRISCgpjb3N0Z3JvdXBzGAQgAygJIkUKFENyZWF0ZU1lbWJlclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiEwoRR2V0TWVtYmVyc1JlcXVlc3QiQwoSR2V0TWVtYmVyc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXR2V0TWVtYmVyRGV0YWlsc1JlcXVlc3QSDgoGdXNlcklkGAEgASgJIkkKGEdldE1lbWJlckRldGFpbHNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIisKGUdldE1lbWJlckNvc3RHcm91cFJlcXVlc3QSDgoGdXNlcklkGAEgASgJIlQKGkdldE1lbWJlckNvc3RHcm91cFJlc3BvbnNlEjYKCmNvc3RHcm91cHMYASADKAsyIi5ibHVlYXBpLmFwaS5jb3Zlci5NZW1iZXJDb3N0R3JvdXAiQAodVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlcXVlc3QSDgoGdXNlcklkGAEgASgJEg8KB2lzQWRtaW4YAiABKAgiTwoeVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiFwoVR2V0VXNlckRldGFpbHNSZXF1ZXN0IkcKFkdldFVzZXJEZXRhaWxzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdVcGRhdGVVc2VyQXZhdGFyUmVxdWVzdBIOCgZhdmF0YXIYASABKAkiSQoYVXBkYXRlVXNlckF2YXRhclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJQoVVXBkYXRlVXNlckljb25SZXF1ZXN0EgwKBGljb24YASABKAkiRwoWVXBkYXRlVXNlckljb25SZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIjEKG1VwZGF0ZVVzZXJDb2xvclRoZW1lUmVxdWVzdBISCgpjb2xvclRoZW1lGAEgASgJIk0KHFVwZGF0ZVVzZXJDb2xvclRoZW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChVVcGRhdGVVc2VyTmFtZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSJHChZVcGRhdGVVc2VyTmFtZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJwoWVXBkYXRlVXNlckVtYWlsUmVxdWVzdBINCgVlbWFpbBgBIAEoCSJIChdVcGRhdGVVc2VyRW1haWxSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIisKGVVwZGF0ZVVzZXJNYWluVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIksKGlVwZGF0ZVVzZXJNYWluVmlld1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiSQoYUmVzZXRVc2VyUGFzc3dvcmRSZXF1ZXN0EhgKEHByZXZpb3VzUGFzc3dvcmQYASABKAkSEwoLbmV3UGFzc3dvcmQYAiABKAkiSgoZUmVzZXRVc2VyUGFzc3dvcmRSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF1VwZGF0ZVVzZXJMb2NhbGVSZXF1ZXN0Eg4KBmxvY2FsZRgBIAEoCSJJChhVcGRhdGVVc2VyTG9jYWxlUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSItChlVcGRhdGVVc2VyQXBwVGhlbWVSZXF1ZXN0EhAKCGFwcFRoZW1lGAEgASgJIksKGlVwZGF0ZVVzZXJBcHBUaGVtZVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiQwoZVXBkYXRlVXNlclRpbWV6b25lUmVxdWVzdBIQCgh0aW1lWm9uZRgBIAEoCRIUCgxhdXRvVGltZVpvbmUYAiABKAgiSwoaVXBkYXRlVXNlclRpbWV6b25lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIxChtVcGRhdGVVc2VyQXR0cmlidXRlc1JlcXVlc3QSEgoKYXR0cmlidXRlcxgBIAMoCSJNChxVcGRhdGVVc2VyQXR0cmlidXRlc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiJQoTRGVsZXRlTWVtYmVyUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiJgoURGVsZXRlTWVtYmVyUmVzcG9uc2USDgoGdXNlcklkGAEgASgJIiYKFFJlc2V0UGFzc3dvcmRSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSInChVSZXNldFBhc3N3b3JkUmVzcG9uc2USDgoGdXNlcklkGAEgASgJIrsBChFDcmVhdGVWaWV3UmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhEKCWlzUHJpdmF0ZRgDIAEoCBISCgppc0VkaXRhYmxlGAQgASgIEgwKBGljb24YBSABKAkSEgoKcmVwb3J0VHlwZRgGIAEoCRISCgpjb2xvclRoZW1lGAcgASgJEhQKDHJlcG9ydFBlcmlvZBgIIAEoCRIQCghjdXJyZW5jeRgJIAEoCSJDChJDcmVhdGVWaWV3UmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSIRCg9HZXRWaWV3c1JlcXVlc3QiQQoQR2V0Vmlld3NSZXNwb25zZRItCgh2aWV3TGlzdBgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdMaXN0IicKFUdldEN1cnJlbnRWaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiRwoWR2V0Q3VycmVudFZpZXdSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIhkKF0dldEZhdm9yaXRlVmlld3NSZXF1ZXN0IksKGEdldEZhdm9yaXRlVmlld3NSZXNwb25zZRIvCglmYXZvcml0ZXMYASADKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5GYXZvcml0ZXMiJAoSUHVibGlzaFZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIiChNQdWJsaXNoVmlld1Jlc3BvbnNlEgsKA3VybBgBIAEoCSIkChJBZGRGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJIiUKE0FkZEZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIicKFVJlbW92ZUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiKAoWUmVtb3ZlRmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkijwEKEVVwZGF0ZVZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBGljb24YBCABKAkSEQoJaXNQcml2YXRlGAUgASgIEhIKCmlzRWRpdGFibGUYBiABKAgSEgoKY29sb3JUaGVtZRgHIAEoCSIkChJVcGRhdGVWaWV3UmVzcG9uc2USDgoGdmlld0lkGAEgASgJIlgKF1VwZGF0ZVZpZXdMYXlvdXRSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRItCgZsYXlvdXQYAiADKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5XaWRnZXREYXRhIkkKGFVwZGF0ZVZpZXdMYXlvdXRSZXNwb25zZRItCgZsYXlvdXQYASADKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3TGF5b3V0IpoBChdVcGRhdGVWaWV3V2lkZ2V0UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEAoId2lkZ2V0SWQYAiABKAkSKAoHb3B0aW9ucxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMwoIcmVxdWVzdHMYBCADKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5MYXlvdXRSZXF1ZXN0cyJfChhVcGRhdGVWaWV3V2lkZ2V0UmVzcG9uc2USEAoId2lkZ2V0SWQYASABKAkSMQoKd2lkZ2V0RGF0YRgCIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLldpZGdldERhdGEiQQobVXBkYXRlVmlld0NvbG9yVGhlbWVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRISCgpjb2xvclRoZW1lGAIgASgJIk0KHFVwZGF0ZVZpZXdDb2xvclRoZW1lUmVzcG9uc2USLQoIdmlld0RhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5WaWV3RGF0YSI9ChlVcGRhdGVWaWV3Q3VycmVuY3lSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIQCghjdXJyZW5jeRgCIAEoCSJLChpVcGRhdGVWaWV3Q3VycmVuY3lSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIjUKG1NldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdBIWCg51cGRhdGVDdXJyZW5jeRgBIAEoAyI2ChxTZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlEhYKDnVwZGF0ZUN1cnJlbmN5GAEgASgDIh0KG0dldE9yZ1VwZGF0ZUN1cnJlbmN5UmVxdWVzdCJZChxHZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEhYKDnVwZGF0ZUN1cnJlbmN5GAIgASgDEhIKCmxhc3RVcGRhdGUYAyABKAkiPgoYTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0EhEKCXN0YXJ0RGF0ZRgBIAEoCRIPCgdlbmREYXRlGAIgASgJImIKGUxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2USDQoFb3JnSWQYASABKAkSNgoNZXhjaGFuZ2VSYXRlcxgCIAMoCzIfLmJsdWVhcGkuY292ZXIudjEuRXhjaGFuZ2VSYXRlcyJCCg1FeGNoYW5nZVJhdGVzEg0KBW1vbnRoGAEgASgJEhQKDGV4Y2hhbmdlUmF0ZRgCIAEoAhIMCgRkYXRlGAMgASgJIiMKEURlbGV0ZVZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIkChJEZWxldGVWaWV3UmVzcG9uc2USDgoGdmlld0lkGAEgASgJImUKGlVwZGF0ZVNpZGVNZW51U3RhdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRI3Cg1zaWRlbWVudXN0YXRlGAIgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuU2lkZU1lbnVTdGF0ZSItChtVcGRhdGVTaWRlTWVudVN0YXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJIkAKGkFkZFNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRISCgptZW51SXRlbUlkGAIgASgJIi0KG0FkZFNpZGVNZW51RmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiQwodUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCm1lbnVJdGVtSWQYAiABKAkiMAoeUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSLTAQoWQ3JlYXRlQ29zdEdyb3VwUmVxdWVzdBIMCgRuYW1lGAEgASgJEi4KBHR5cGUYByABKA4yIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBUeXBlEhMKC2Rlc2NyaXB0aW9uGAIgASgJEg0KBWltYWdlGAMgASgJEgwKBGljb24YBCABKAkSEgoKY29sb3JUaGVtZRgFIAEoCRI1Cgxjb21iaW5hdGlvbnMYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMiUgoXQ3JlYXRlQ29zdEdyb3VwUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiFgoUR2V0Q29zdEdyb3Vwc1JlcXVlc3QiUAoVR2V0Q29zdEdyb3Vwc1Jlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIjEKGkdldENvc3RHcm91cERldGFpbHNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJIlYKG0dldENvc3RHcm91cERldGFpbHNSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSI/ChpVcGRhdGVDb3N0R3JvdXBOYW1lUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIMCgRuYW1lGAIgASgJIisKG1VwZGF0ZUNvc3RHcm91cE5hbWVSZXNwb25zZRIMCgRuYW1lGAEgASgJIk0KIVVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCSI5CiJVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlc3BvbnNlEhMKC2Rlc2NyaXB0aW9uGAEgASgJIkEKG1VwZGF0ZUNvc3RHcm91cEltYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRINCgVpbWFnZRgCIAEoCSItChxVcGRhdGVDb3N0R3JvdXBJbWFnZVJlc3BvbnNlEg0KBWltYWdlGAEgASgJIj8KGlVwZGF0ZUNvc3RHcm91cEljb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEgwKBGljb24YAiABKAkiKwobVXBkYXRlQ29zdEdyb3VwSWNvblJlc3BvbnNlEgwKBGljb24YASABKAkiSwogVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEgoKY29sb3JUaGVtZRgCIAEoCSI3CiFVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVzcG9uc2USEgoKY29sb3JUaGVtZRgBIAEoCSJwCiJVcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEjUKDGNvbWJpbmF0aW9ucxgCIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJcCiNVcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZRI1Cgxjb21iaW5hdGlvbnMYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMiQwocQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiRAodQXNzaWduQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIkMKHFJlbW92ZUNvc3RHcm91cE1lbWJlclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIkQKHVJlbW92ZUNvc3RHcm91cE1lbWJlclJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSItChZEZWxldGVDb3N0R3JvdXBSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJIi4KF0RlbGV0ZUNvc3RHcm91cFJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJIjIKIkdldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybFJlcXVlc3QSDAoEdHlwZRgBIAEoCSKgAQojR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVzcG9uc2USEQoJbGF1bmNoVXJsGAEgASgJEhMKC3RlbXBsYXRlVXJsGAIgASgJEhEKCXN0YWNrTmFtZRgDIAEoCRIRCglwcmluY2lwYWwYBCABKAkSEgoKZXh0ZXJuYWxJZBgFIAEoCRIXCg90ZW1wbGF0ZVZlcnNpb24YBiABKAkiGgoYTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0IikKF0dldEFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSLaAgoNQWNjb3VudEFjY2VzcxIOCgZ0YXJnZXQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSDwoHcGF5ZXJJZBgEIAEoCRIPCgdyb2xlQXJuGAUgASgJEhIKCmV4dGVybmFsSWQYBiABKAkSDwoHc3RhY2tJZBgHIAEoCRITCgtzdGFja1JlZ2lvbhgIIAEoCRITCgt0ZW1wbGF0ZVVybBgJIAEoCRISCgpidWNrZXROYW1lGAogASgJEg4KBnByZWZpeBgLIAEoCRISCgpyZXBvcnROYW1lGAwgASgJEkEKEnJlZ2lzdHJhdGlvblN0YXR1cxgNIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLlJlZ2lzdHJhdGlvblN0YXR1cxIOCgZzdGF0dXMYDiABKAkSEwoLbGFzdFVwZGF0ZWQYDyABKAkiQwoaQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEhUKDWZyb21UZXJyYWZvcm0YAiABKAgiRAoiQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0UmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJIiwKGlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCSI8ChpEZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJIi8KG0RlbGV0ZUFjY291bnRBY2Nlc3NSZXNwb25zZRIQCgh0YXJnZXRJZBgBIAEoCSJQChZSZWdpc3RlckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEwoLYWNjb3VudE5hbWUYAyABKAki5gEKEUxpc3RBc3NldHNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSGgoSd2l0aFJlY29tbWVuZGF0aW9uGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyKPAQoRTGlzdEFzc2V0c0ZpbHRlcnMSRwoKYW5kRmlsdGVycxgBIAMoCzIzLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIr0BCghSZXNvdXJjZRIMCgRkYXRlGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEg8KB3NlcnZpY2UYBSABKAkSEgoKcmVzb3VyY2VJZBgGIAEoCRIUCgxyZXNvdXJjZVR5cGUYByABKAkSDAoEY29zdBgIIAEoARISCgpwcm9wZXJ0aWVzGAkgASgJEhYKDnJlY29tbWVuZGF0aW9uGAogASgJIuYBChdHZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpzdGFydE1vbnRoGAIgASgJEhAKCGVuZE1vbnRoGAMgASgJEhQKDGNvbWJpbmVEYXRlcxgEIAEoCBI3Cgphd3NPcHRpb25zGAUgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycxJBChRhd3NQcm9wZXJ0aWVzT3B0aW9ucxgGIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMiawoYR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlEjAKB3N1bW1hcnkYASADKAsyHy5ibHVlYXBpLmNvdmVyLnYxLkFzc2V0c1N1bW1hcnkSHQoVcmVjb21tZW5kYXRpb25TdW1tYXJ5GAIgASgJIlgKDUFzc2V0c1N1bW1hcnkSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSFgoOdG90YWxSZXNvdXJjZXMYAyABKAMSEQoJdG90YWxDb3N0GAQgASgBIjoKI1Jlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJImkKJFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIsCghhY2NvdW50cxgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLkFjY291bnQixwQKE0dldENvc3RVc2FnZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSFAoMZ3JvdXBCeU1vbnRoGAQgASgIEg0KBWxpbWl0GAUgASgDEhAKCGNhdGVnb3J5GAYgASgJEg8KB2dyb3VwQnkYByABKAkSFwoPaW5jbHVkZVplcm9Db3N0GAggASgIEkMKCmF3c09wdGlvbnMYCSABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEkcKDGF6dXJlT3B0aW9ucxgKIAEoCzIxLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlT3B0aW9ucxJDCgpnY3BPcHRpb25zGAsgASgLMi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxJNCg9henVyZWNzcE9wdGlvbnMYDCABKAsyNC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSSQoNY3VzdG9tT3B0aW9ucxgNIAEoCzIyLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFwoPaW5jbHVkZUZvcmVjYXN0GA4gASgIEhAKCGN1cnJlbmN5GA8gASgJIucBCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0QXdzT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJItkBCh9HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycyL+AgodR2V0Q29zdFVzYWdlUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAki7AEKIkdldENvc3RVc2FnZVJlcXVlc3RBenVyZUNzcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgFIAEoCSKBAwogR2V0Q29zdFVzYWdlUmVxdWVzdEN1c3RvbU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkYKDGxhYmVsRmlsdGVycxgFIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEk0KE3Byb2plY3RMYWJlbEZpbHRlcnMYBiADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYByABKAkiqQEKHlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJUCgphbmRGaWx0ZXJzGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvYDCghDb3N0SXRlbRIOCgZ2ZW5kb3IYASABKAkSDAoEZGF0ZRgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSEQoJdXNhZ2VUeXBlGBAgASgJEhIKCmNoYXJnZVR5cGUYESABKAkSDAoEY29zdBgFIAEoARIPCgdkZXRhaWxzGAYgASgJEjQKCGZvcmVjYXN0GAcgASgLMiIuYmx1ZWFwaS5hcGkuY292ZXIuQXdzQ29zdEZvcmVjYXN0Eg4KBnJlZ2lvbhgIIAEoCRIWCg5iaWxsaW5nQWNjb3VudBgJIAEoCRIQCgh0YWdWYWx1ZRgKIAEoCRISCgpsYXN0VXBkYXRlGAsgASgJEgwKBHVuaXQYDCABKAkSEAoIY2F0ZWdvcnkYDSABKAkSDgoGdGFnZ2VkGA4gASgIEhUKDW51bWJlck9mVW5pdHMYEiABKAESRgoOdW5pdGNvc3RtZXRyaWMYDyADKAsyLi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtLlVuaXRjb3N0bWV0cmljRW50cnkSGgoSYWxsb2NhdGlvbkNhdGVnb3J5GBMgASgJGjUKE1VuaXRjb3N0bWV0cmljRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASI6CiNHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCSJZCiRHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2USMQoIcmVzb3VyY2UYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZURhdGEieAoZTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSFAoMcmVzb3VyY2VUeXBlGAQgASgJEg4KBnJlZ2lvbhgFIAEoCSJpChpNb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIUCgxyZXNvdXJjZVR5cGUYAyABKAkSDgoGcmVnaW9uGAQgASgJImEKGFRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhIKCnJlc291cmNlSWQYAyABKAkSDgoGcmVnaW9uGAQgASgJIlIKGVRlcm1pbmF0ZVJlc291cmNlUmVzcG9uc2USEQoJYWNjb3VudElkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSDgoGcmVnaW9uGAMgASgJIkMKF1VwbG9hZENoYXJnZUNvZGVSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIMCgRmaWxlGAMgASgMIlIKGFVwbG9hZENoYXJnZUNvZGVSZXNwb25zZRIMCgRuYW1lGAEgASgJEigKBnN0YXR1cxgCIAEoDjIYLmJsdWVhcGkuY292ZXIudjEuU3RhdHVzIkgKEkFzc2lnblBheWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg8KB3BheWVySWQYAyABKAkiOQoTQXNzaWduUGF5ZXJSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCSIiChBHZXRQYXllcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIjChFHZXRQYXllcnNSZXNwb25zZRIOCgZwYXllcnMYASADKAkiOQoSR2V0QWNjb3VudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRBY2NvdW50c1Jlc3BvbnNlEhAKCGFjY291bnRzGAEgAygJIjkKEkdldFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJwoTR2V0U2VydmljZXNSZXNwb25zZRIQCghzZXJ2aWNlcxgBIAMoCSI4ChFHZXRSZWdpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiJQoSR2V0UmVnaW9uc1Jlc3BvbnNlEg8KB3JlZ2lvbnMYASADKAkiNQoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIj4KD0dldFRhZ3NSZXNwb25zZRIrCgd0YWdEYXRhGAEgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSIgCg9MaXN0RmVlc1JlcXVlc3QSDQoFbW9udGgYASABKAki7QIKCkZlZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSEAoIbGluZVR5cGUYBiABKAkSDwoHZmVlVHlwZRgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRITCgtkZXNjcmlwdGlvbhgJIAEoCRIPCgdzdGFydGVkGAogASgJEhQKDHRpbWVJbnRlcnZhbBgLIAEoCRITCgtwcm9kdWN0TmFtZRgMIAEoCRIQCghjdXJyZW5jeRgNIAEoCRITCgtzcGxpdFN0YXR1cxgOIAEoCRITCgtpc0FsbG9jYXRlZBgPIAEoCBIRCglpc0FwcGxpZWQYECABKAgSFQoNdW5ibGVuZGVkQ29zdBgRIAEoARIRCglzb3VyY2VGZWUYEiABKAkSEgoKbGFzdFVwZGF0ZRgTIAEoCSIiChFSZXN0b3JlRmVlUmVxdWVzdBINCgVmZWVJZBgBIAEoCSJRChZHZXRDb3N0R3JvdXBGZWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0VGltZRgCIAEoCRIPCgdlbmRUaW1lGAMgASgJImYKB0ZlZUl0ZW0SDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIMCgR0eXBlGAUgASgJEgwKBGNvc3QYBiABKAEiSQoJQWxsb2NhdG9yEgwKBHR5cGUYASABKAkSDQoFdmFsdWUYAiABKAkSDwoHZm9ybXVsYRgDIAEoCRIOCgZtb250aHMYBCABKAMiaAoIQ3JpdGVyaWESMAoDYW5kGAEgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5Dcml0ZXJpYS5BbmRFbnRyeRoqCghBbmRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqICChRDb3N0QWxsb2NhdG9yRGV0YWlscxIKCgJpZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRISCgpleHBpcmF0aW9uGAMgASgDEhIKCnN0YXJ0TW9udGgYBCABKAkSFgoOZGVmYXVsdEFjY291bnQYBSABKAkSMQoIY3JpdGVyaWEYBiABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAcgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISEgoKY3JlYXRlVGltZRgIIAEoCRISCgp1cGRhdGVUaW1lGAkgASgJEgwKBG5hbWUYCiABKAkSEwoLZGVzY3JpcHRpb24YCyABKAki+gEKFENvc3RBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJIhcKFUxpc3RBbGxvY2F0b3JzUmVxdWVzdCLwAQoWQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCRISCgpleHBpcmF0aW9uGAIgASgDEhIKCnN0YXJ0TW9udGgYAyABKAkSFgoOZGVmYXVsdEFjY291bnQYBCABKAkSMQoIY3JpdGVyaWEYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSLgoJYWxsb2NhdG9yGAYgAygLMhsuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0b3ISDAoEbmFtZRgHIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCSIyCh5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1JlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkisQEKH0dldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2USWAoJYXR0cmlidXRlGAEgAygLMkUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlLkFsbG9jYXRpb25BdHRyaWJ1dGUaNAoTQWxsb2NhdGlvbkF0dHJpYnV0ZRIMCgR0eXBlGAEgASgJEg8KB3NlcnZpY2UYAiADKAkiPgobR2V0QWxsb2NhdGlvblNvdXJjZXNSZXF1ZXN0EgwKBHR5cGUYASABKAkSEQoJYWNjb3VudElkGAIgASgJIusBChxHZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlElAKBnNvdXJjZRgBIAMoCzJALmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZS5BbGxvY2F0aW9uU291cmNlcxIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YRpMChFBbGxvY2F0aW9uU291cmNlcxITCgthY2NvdW50TmFtZRgBIAEoCRIPCgdzZXJ2aWNlGAIgASgJEhEKCWNvc3RHcm91cBgDIAEoCSIkChZEZWxldGVBbGxvY2F0b3JSZXF1ZXN0EgoKAmlkGAEgASgJIkcKHFByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QSJwoGcGFyYW1zGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItCh1Qcm94eUNyZWF0ZUNvbXBsZXRpb25SZXNwb25zZRIMCgRsaW5lGAEgASgJItQEChNBY2NvdW50VXNhZ2VEZXRhaWxzEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBGRhdGUYBSABKAkSEwoLcHJvZHVjdENvZGUYBiABKAkSEwoLc2VydmljZUNvZGUYByABKAkSDgoGcmVnaW9uGAggASgJEgwKBHpvbmUYCSABKAkSEQoJdXNhZ2VUeXBlGAogASgJEhQKDGluc3RhbmNlVHlwZRgLIAEoCRIRCglvcGVyYXRpb24YDCABKAkSEQoJaW52b2ljZUlkGA0gASgJEhMKC2Rlc2NyaXB0aW9uGA4gASgJEhIKCnJlc291cmNlSWQYDyABKAkSDAoEdGFncxgQIAEoCRIWCg5jb3N0Q2F0ZWdvcmllcxgRIAEoCRITCgt1c2FnZUFtb3VudBgSIAEoARIZChF0cnVlVW5ibGVuZGVkQ29zdBgTIAEoARIVCg11bmJsZW5kZWRDb3N0GBQgASgBEhUKDWVmZmVjdGl2ZUNvc3QYFSABKAESFQoNYW1vcnRpemVkQ29zdBgWIAEoARIaChJwdWJsaWNPbkRlbWFuZENvc3QYFyABKAESGwoTdW51c2VkQW1vcnRpemVkQ29zdBgYIAEoARISCgpsYXN0VXBkYXRlGBkgASgJEhMKC3NwbGl0U3RhdHVzGBogASgJEhMKC2lzQWxsb2NhdGVkGBsgASgIEhEKCWlzQXBwbGllZBgcIAEoCBIOCgZzb3VyY2UYHSABKAkiPQoXTGlzdEFjY291bnRVc2FnZVJlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiMgoaUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QSFAoMYWxsb2NhdGlvbklkGAEgASgJIiMKFVJlc3RvcmVTYXZpbmdzUmVxdWVzdBIKCgJpZBgBIAEoCSK6AgoOU2F2aW5nc0RldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDQoFbW9udGgYBSABKAkSDAoEdHlwZRgGIAEoCRILCgNhcm4YByABKAkSEwoLcHJvZHVjdENvZGUYCCABKAkSEgoKb2ZmZXJDbGFzcxgJIAEoCRIQCghvbmRlbWFuZBgKIAEoARIVCg1lZmZlY3RpdmVDb3N0GAsgASgBEg8KB3NhdmluZ3MYDCABKAESEwoLc3BsaXRTdGF0dXMYDSABKAkSEwoLaXNBbGxvY2F0ZWQYDiABKAgSEQoJaXNBcHBsaWVkGA8gASgIEg4KBnNvdXJjZRgQIAEoCRISCgpsYXN0VXBkYXRlGBEgASgJImoKHUdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhEKCXN0YXJ0RGF0ZRgDIAEoCRIPCgdlbmREYXRlGAQgASgJIoABCg5BbGxvY2F0aW9uSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoARIRCgljb3N0R3JvdXAYByABKAkiXwoXUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QSDgoGc291cmNlGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSDQoFZW1haWwYAyABKAkSEQoJc3VidXNlcklkGAQgASgJIjAKGFByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgilQIKCkRhdGFBY2Nlc3MSDgoGdGFyZ2V0GAEgASgJEg0KBW9yZ0lkGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCRISCgpsYXN0VXBkYXRlGAcgASgJEhIKCmNyZWF0ZVRpbWUYCCABKAkSDgoGdmVuZG9yGAkgASgJIu0BChlSZWdpc3RlckRhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkSMQoKZ2NwT3B0aW9ucxgEIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zIusBChdVcGRhdGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEjEKCmdjcE9wdGlvbnMYAyABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BPcHRpb25zEjUKDGF6dXJlT3B0aW9ucxgEIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkF6dXJlT3B0aW9ucxIxCgphd3NPcHRpb25zGAUgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzT3B0aW9ucxITCgthY2NvdW50VHlwZRgGIAEoCSIXChVMaXN0RGF0YUFjY2Vzc1JlcXVlc3QiIQofTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdCJxCiBMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI+ChF1bnJlZ2lzdGVyZWRBY2N0cxgCIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuVW5yZWdpc3RlcmVkQWNjdHMiVAoRVW5yZWdpc3RlcmVkQWNjdHMSCgoCaWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEgoKbGFzdFVwZGF0ZRgEIAEoCSJ8ChVCaWxsaW5nQWNjb3VudFJlcXVlc3QSEQoJYmlsbGluZ0lkGAEgASgJEhEKCWRhdGFzZXRJZBgCIAEoCRIVCg1kYXRhc2V0UmVnaW9uGAMgASgJEhEKCXByb2plY3RJZBgEIAEoCRITCgtiaWxsaW5nTmFtZRgFIAEoCSJUCh1HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGdmVuZG9yGAIgASgJEhMKC2FjY291bnRUeXBlGAMgASgJImEKIkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEhUKDWFwcGxpY2F0aW9uSWQYAiABKAkSEQoJc2VjcmV0S2V5GAMgASgJIiUKFEFkZE1wblNldHRpbmdSZXF1ZXN0Eg0KBW1wbklkGAEgASgJItYBChxHZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIVCg1hdHRyaWJ1dGVUeXBlGAIgASgJEhMKC2Nvc3RHcm91cElkGAMgASgJEj0KFGV4aXN0aW5nQ29tYmluYXRpb25zGAQgAygLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEjsKEmN1cnJlbnRDb21iaW5hdGlvbhgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJ3Ch1HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZRIpCgZyZXN1bHQYASADKAsyGS5ibHVlYXBpLmFwaS5jb3Zlci5SZXN1bHQSKwoHdGFnRGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlRhZ0RhdGEiJgoUR2V0Q2F0ZWdvcmllc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIkYKFUdldENhdGVnb3JpZXNSZXNwb25zZRItCghjYXRlZ29yeRgBIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLkNhdGVnb3J5IhIKEEdldEFsZXJ0c1JlcXVlc3QiRAoRR2V0QWxlcnRzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIoYBChJDcmVhdGVBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtmaXhlZEFtb3VudBgCIAEoAhISCgpwZXJjZW50YWdlGAMgASgCEhMKC2dyYW51bGFyaXR5GAQgASgJEhIKCmNvc3RHcm91cHMYBSADKAkSEAoIY2hhbm5lbHMYBiADKAkiRgoTQ3JlYXRlQWxlcnRSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiJAoWR2V0QWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJKChdHZXRBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIAoSRGVsZXRlQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIiEKE0RlbGV0ZUFsZXJ0UmVzcG9uc2USCgoCaWQYASABKAkimQEKGVVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtmaXhlZEFtb3VudBgDIAEoAhISCgpwZXJjZW50YWdlGAQgASgCEhMKC2dyYW51bGFyaXR5GAUgASgJEhIKCmNvc3RHcm91cHMYBiADKAkSEAoIY2hhbm5lbHMYByADKAkiTQoaVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2USLwoJYWxlcnREYXRhGAEgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnREYXRhIiIKEkdldENoYW5uZWxzUmVxdWVzdBIMCgR0eXBlGAEgASgJIkoKE0dldENoYW5uZWxzUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSJGChRDcmVhdGVDaGFubmVsUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSEgoKd2ViaG9va1VybBgDIAEoCSJMChVDcmVhdGVDaGFubmVsUmVzcG9uc2USMwoLY2hhbm5lbERhdGEYASABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5DaGFubmVsRGF0YSImChhHZXRDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkiUAoZR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiIKFERlbGV0ZUNoYW5uZWxSZXF1ZXN0EgoKAmlkGAEgASgJIiMKFURlbGV0ZUNoYW5uZWxSZXNwb25zZRIKCgJpZBgBIAEoCSJZChtVcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEhIKCndlYmhvb2tVcmwYBCABKAkiUwocVXBkYXRlQ2hhbm5lbERldGFpbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIs8BCiFHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSLwoJYXdzSW5wdXRzGAIgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQXdzSW5wdXRzEjMKC2F6dXJlSW5wdXRzGAMgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVJbnB1dHMSLwoJZ2NwSW5wdXRzGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuR2NwSW5wdXRzIokCCiJHZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEkkKEmF3c1JlY29tbWVuZGF0aW9ucxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UmVjb21tZW5kYXRpb25zEk0KFGF6dXJlUmVjb21tZW5kYXRpb25zGAIgASgLMi8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVEaXNjb3VudFJlY29tbWVuZGF0aW9ucxJJChJnY3BSZWNvbW1lbmRhdGlvbnMYAyABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5HY3BEaXNjb3VudFJlY29tbWVuZGF0aW9ucyJXChxHZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJIuEBCgtBbm9tYWx5RGF0YRIPCgdhY2NvdW50GAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdwcm9kdWN0GAQgASgJEgwKBGRhdGUYBSABKAkSEQoJdG90YWxDb3N0GAYgASgCEhEKCWlzQW5vbWFseRgHIAEoCBISCgpsb3dlckxpbWl0GAggASgCEhIKCnVwcGVyTGltaXQYCSABKAISEwoLYW5vbWFseUNvc3QYCiABKAISGgoSYW5vbWFseVByb2JhYmlsaXR5GAsgASgCIoUBCiRDcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSEwoLZnJlcXVlbmNpZXMYASADKAMSEgoKY29zdEdyb3VwcxgCIAMoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEAoIY2hhbm5lbHMYBCADKAkSDAoEbmFtZRgFIAEoCSI2CihNYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJIpEBCiRVcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkSFAoMYWxlcnRFbmFibGVkGAIgASgIEhAKCGNoYW5uZWxzGAMgAygJEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEhIKCmNvc3RHcm91cHMYBSADKAkSDAoEbmFtZRgGIAEoCSLpAQoXRGlzY291bnRFeHBpcnlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhMKC2ZyZXF1ZW5jaWVzGAQgAygDEjUKCmNvc3RHcm91cHMYBSADKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENvc3RHcm91cBIPCgdkZXRhaWxzGAYgASgJEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscxIMCgRuYW1lGAggASgJIiQKIkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QihQEKGUNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEQoJZnJlcXVlbmN5GAMgASgJEhMKC2Nvc3RHcm91cElkGAQgASgJEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAUgAygJIisKHU1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJItABChBBbm9tYWx5QWxlcnREYXRhEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBG5hbWUYAyABKAkSFAoMYWxlcnRFbmFibGVkGAQgASgIEhEKCWZyZXF1ZW5jeRgFIAEoCRI2Cgtjb3N0R3JvdXBJZBgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEjIKCGNoYW5uZWxzGAcgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDaGFubmVscyIZChdMaXN0QW5vbWFseUFsZXJ0UmVxdWVzdCKRAQoZVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIcChRub3RpZmljYXRpb25DaGFubmVscxgEIAMoCRIRCglmcmVxdWVuY3kYBSABKAkSEwoLY29zdEdyb3VwSWQYBiABKAkiiQEKFlJlZ2lzdGVyTmV3VXNlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjb21wYW55GAQgASgJEgwKBHJvbGUYBSABKAkSDgoGYW1vdW50GAYgASgJEhEKCWludGVudGlvbhgHIAEoCSIvChdSZWdpc3Rlck5ld1VzZXJSZXNwb25zZRIUCgxpc0F1dGhvcml6ZWQYASABKAgiJgoVR2V0VXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIs4BChZHZXRVc2VyUHJvZmlsZVJlc3BvbnNlEhkKEWhhc0NyZWF0ZWRQcm9maWxlGAEgASgIEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSFAoMZW1haWxBZGRyZXNzGAcgASgJEhIKCmxpbmtTb3VyY2UYCCABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCSABKAgirgEKGFVwZGF0ZVVzZXJQcm9maWxlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgirwEKGVVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2USDQoFZW1haWwYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIkgKEkxpc3RCdWRnZXRzUmVxdWVzdBIfChdpbmNsdWRlU3BlbmRBbmRGb3JlY2FzdBgBIAEoCBIRCgljb3N0R3JvdXAYAiABKAkiSAoTTGlzdEJ1ZGdldHNSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIeChBHZXRCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIkYKEUdldEJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkgKE0NyZWF0ZUJ1ZGdldFJlcXVlc3QSMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUQ3JlYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiIQoTRGVsZXRlQnVkZ2V0UmVxdWVzdBIKCgJpZBgBIAEoCSIiChREZWxldGVCdWRnZXRSZXNwb25zZRIKCgJpZBgBIAEoCSJUChNVcGRhdGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJEjEKCmJ1ZGdldERhdGEYAiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIkkKFFVwZGF0ZUJ1ZGdldFJlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIksKLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QSGQoRcmVnaXN0cmF0aW9uVG9rZW4YASABKAkiYQovUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVzcG9uc2USGgoSaXNBbGxvd2VkVG9PbmJvYXJkGAEgASgIEhIKCmN1c3RvbWVySWQYAiABKAkiJgokR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0IvIBCiVHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlEhYKDmRhdGVSZWdpc3RlcmVkGAEgASgJEhoKEnN1YnNjcmlwdGlvbkV4cGlyeRgCIAEoCRIQCghkYXlzTGVmdBgDIAEoBRIUCgxpc1N1YnNjcmliZWQYBCABKAgSEQoJaXNFeHBpcmVkGAUgASgIEgwKBHBsYW4YBiABKAkSDgoGYW1vdW50GAcgASgJEhUKDXBheW1lbnRPcHRpb24YCCABKAkSFQoNcGF5bWVudE1ldGhvZBgJIAEoCRIOCgZjcmVkaXQYCiABKAEiswEKFkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgRyb2xlGAIgASgJEg0KBXVzYWdlGAMgASgJEhEKCWludGVudGlvbhgEIAEoCRITCgtjb21wYW55TmFtZRgFIAEoCRIUCgxlbWFpbEFkZHJlc3MYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCIZChdDcmVhdGVQcm9maWxpbmdSZXNwb25zZSI5ChtBZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QSGgoSY3VzdG9tZXJJZGVudGlmaWVyGAEgASgJIh4KHEFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UieAoXR2V0UmVwb3J0U3VtbWFyeVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSEgoKcmVwb3J0VHlwZRgEIAEoCRIQCghjdXJyZW5jeRgFIAEoCSKuAgoYR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEj0KEGV4ZWN1dGl2ZVN1bW1hcnkYBCABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRpdmVTdW1tYXJ5El8KIW9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRgFIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLk9wdGltaXphdGlvblJlY29tbWVuZGF0aW9uU3VtbWFyeRI5Cg5zYXZpbmdzU3VtbWFyeRgGIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLlNhdmluZ3NTdW1tYXJ5IqoCChlMaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgHIAEoCRIMCgR0eXBlGAggASgJEg4KBnNwVHlwZRgJIAEoCRIRCglyYXRlTW9kZWwYCiABKAkSFQoNcGF5bWVudE9wdGlvbhgLIAEoCRIMCgR0ZXJtGAwgASgJEg8KB3NlcnZpY2UYDSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgOIAEoCRIQCghjdXJyZW5jeRgPIAEoCSLVAgobTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRJQCgxyYXRlU2V0dGluZ3MYBCABKAsyOi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdC5SYXRlU2V0dGluZ3MSEAoIY3VycmVuY3kYBSABKAkajgEKDFJhdGVTZXR0aW5ncxIOCgZzcFR5cGUYASABKAkSEQoJcmF0ZU1vZGVsGAIgASgJEhUKDXBheW1lbnRPcHRpb24YAyABKAkSDAoEdGVybRgEIAEoCRIPCgdzZXJ2aWNlGAUgASgJEhUKDW9mZmVyaW5nQ2xhc3MYBiABKAkSDgoGdmVuZG9yGAcgASgJItoGChpMaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZRIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEhYKDnJlY29tbWVuZGF0aW9uGAIgASgJEg8KB3NlcnZpY2UYAyABKAkSHgoWZXN0aW1hdGVkTW9udGhseVNhdmluZxgEIAEoARIcChRlc3RpbWF0ZWRNb250aGx5Q29zdBgFIAEoARIPCgdzY29yaW5nGAYgASgJEg4KBnZlbmRvchgHIAEoCRIQCghjYXRlZ29yeRgIIAEoCRIaChJvcHRpbWl6YXRpb25TdGF0dXMYCSABKAkSFAoMZXJyb3JNZXNzYWdlGAogASgJEhEKCWFjY291bnRJZBgLIAEoCRITCgthY2NvdW50TmFtZRgMIAEoCRIUCgxpbnN0YW5jZU5hbWUYDSABKAkSEgoKaW5zdGFuY2VJZBgOIAEoCRIUCgxpbnN0YW5jZVR5cGUYDyABKAkSDgoGcmVnaW9uGBAgASgJEhIKCmNvbW1pdG1lbnQYESABKAESDgoGc3BUeXBlGBIgASgJEhgKEG51bWJlclRvUHVyY2hhc2UYEyABKAMSDgoGcmlUeXBlGBQgASgJEgwKBHR5cGUYFSABKAkSDgoGc291cmNlGBYgASgJEhcKD2RhdGVSZWNvbW1lbmRlZBgXIAEoCRIbChNyZWNvbW1lbmRhdGlvbkdyb3VwGBggASgJEhUKDWxhc3RVcGRhdGVkQXQYGSABKAkSUwoOcHVyY2hhc2VPcHRpb24YGiABKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlLlB1cmNoYXNlT3B0aW9uGs8BCg5QdXJjaGFzZU9wdGlvbhIOCgZzcFR5cGUYASABKAkSFQoNb2ZmZXJpbmdDbGFzcxgCIAEoCRISCgpjb21taXRtZW50GAMgASgBEhgKEG51bWJlclRvUHVyY2hhc2UYBCABKAMSFQoNcGF5bWVudE9wdGlvbhgFIAEoCRIMCgR0ZXJtGAYgASgJEhkKEWN1cnJlbnRHZW5lcmF0aW9uGAcgASgIEhMKC3NlcnZpY2VUeXBlGAggASgJEhMKC3VwZnJvbnRDb3N0GAkgASgBIlEKGEdldFJlY29tbWVuZGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCRIUCgxwZXJpb2RPcHRpb24YAyABKAkiXgoZR2V0UmVjb21tZW5kYXRpb25SZXNwb25zZRJBChJyZWNvbW1lbmRhdGlvbkRhdGEYASABKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5BV1NSZWNvbW1lbmRhdGlvbnMiRAoaRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QSGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIMCgR0eXBlGAIgASgJIpQDChtFeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2USTAoJYXdzT3B0aW9uGAEgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuQVdTT3B0aW9uSAASTAoJZ2NwT3B0aW9uGAIgASgLMjcuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UuR0NQT3B0aW9uSAASVgoOYXp1cmVDc3BPcHRpb24YAyABKAsyPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BenVyZUNTUE9wdGlvbkgAGlgKCUFXU09wdGlvbhIaChJhcHByb3ZlVGVtcGxhdGVVcmwYASABKAkSGAoQcmVjb21tZW5kYXRpb25JZBgCIAEoCRIVCg1jdXJyZW50U3RhdHVzGAMgASgJGgsKCUdDUE9wdGlvbhoQCg5BenVyZUNTUE9wdGlvbkIICgZWZW5kb3IiIwoVTWFya0FzRXhlY3V0ZWRSZXF1ZXN0EgoKAmlkGAEgAygJIhgKFk1hcmtBc0V4ZWN1dGVkUmVzcG9uc2UiLwohVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgAygJIiQKIlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVzcG9uc2UipwEKGk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhYKDmRhdGVSYW5nZVN0YXJ0GAIgASgJEhQKDGRhdGVSYW5nZUVuZBgDIAEoCRIOCgZ2ZW5kb3IYBCABKAkSDgoGc291cmNlGAUgASgJEhQKDHBlcmlvZE9wdGlvbhgGIAEoCRIQCghjdXJyZW5jeRgHIAEoCSJ2ChtPcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2USVwodZXhlY3V0ZWRSZWNvbW1lbmRhdGlvbkRldGFpbHMYAiADKAsyMC5ibHVlYXBpLmFwaS5jb3Zlci5FeGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscyJgCiFTZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDwoHYW5vbWFseRgCIAEoCBIVCg12aXN1YWxCdWlsZGVyGAMgASgIInQKIlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOZXZlbnRJbmRpY2F0b3IYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5FdmVudEluZGljYXRvciJ7CiFTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJdGhyZXNob2xkGAIgASgCEhQKDGlzUGVyY2VudGFnZRgDIAEoCBIYChBwYXN0RGF0YUluTW9udGhzGAQgASgDInQKIlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSOQoOYW5vbWFseU9wdGlvbnMYAiABKAsyIS5ibHVlYXBpLmFwaS5jb3Zlci5Bbm9tYWx5T3B0aW9ucyIvChhTZXRPcmdGaXNjYWxNb250aFJlcXVlc3QSEwoLZmlzY2FsTW9udGgYASABKAkiMAoZU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCSIaChhHZXRPcmdGaXNjYWxNb250aFJlcXVlc3QiSAoZR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZRITCgtmaXNjYWxNb250aBgBIAEoCRIWCg5kYXRlUmVnaXN0ZXJlZBgCIAEoCSJbChtUcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEg4KBnJlZ2lvbhgCIAEoCRINCgVwYXllchgDIAEoCRINCgVvcmdJZBgEIAEoCSIuChxUcmFuc2Zlck9yZ2FuaXphdGlvblJlc3BvbnNlEg4KBnRhcmdldBgBIAEoCSJFCiBVcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVxdWVzdBIhChl1c2VOZXdDb3N0R3JvdXBDcmVhdGlvblVJGAEgASgIIlIKIVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIhYKFExpc3RVbml0VHlwZXNSZXF1ZXN0Ik4KFUxpc3RVbml0VHlwZXNSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEitgEKFUNyZWF0ZVVuaXRUeXBlUmVxdWVzdBIQCgh1bml0TmFtZRgBIAEoCRIuCgl1bml0SXRlbXMYAiADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYAyADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgEIAEoCSJPChZDcmVhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIgChJHZXRVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiTAoTR2V0VW5pdFR5cGVSZXNwb25zZRI1Cgx1bml0Q29zdERhdGEYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiwgEKFVVwZGF0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgh1bml0TmFtZRgCIAEoCRIuCgl1bml0SXRlbXMYAyADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0SXRlbRJGCg9zaGFyZWRSZXNvdXJjZXMYBCADKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbhITCgtkZXNjcmlwdGlvbhgFIAEoCSJPChZVcGRhdGVVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIjChVEZWxldGVVbml0VHlwZVJlcXVlc3QSCgoCaWQYASABKAkiJAoWRGVsZXRlVW5pdFR5cGVSZXNwb25zZRIKCgJpZBgBIAEoCSJPChFNZXJnZVVuaXRzUmVxdWVzdBITCgt1bml0Q29zdElkcxgBIAMoCRIQCgh1bml0TmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCSJNChJNZXJnZVVuaXRzUmVzcG9uc2USNwoObWVyZ2VkVW5pdENvc3QYASABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0Q29zdERhdGEiGwoZTGlzdFN1Z2dlc3RlZFVuaXRzUmVxdWVzdCJWChpMaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI4Cg5zdWdnZXN0ZWRVbml0cxgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQicgoaTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QSGAoQc3VnZ2VzdGVkVW5pdElkcxgBIAMoCRITCgt1bml0SXRlbUlkcxgCIAMoCRIQCgh1bml0TmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCSJdChtNZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2USPgoUbWVyZ2VkU3VnZ2VzdGVkVW5pdHMYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TdWdnZXN0ZWRVbml0IjoKHkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJIjYKH0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2USEwoLdW5pdENvc3RJZHMYASADKAkiHAoaTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QiZQobTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uItMCChxDcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EhoKEnNoYXJlZFJlc291cmNlTmFtZRgBIAEoCRJNChtzaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbnMYAiABKAsyKC5ibHVlYXBpLmFwaS5jb3Zlci5SZXNvdXJjZXNDb21iaW5hdGlvbnMSVgoMZGlzdHJpYnV0aW9uGAMgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LkRpc3RyaWJ1dGlvbkVudHJ5EhEKCWFsbG9jYXRlZBgEIAEoARITCgt1bmFsbG9jYXRlZBgFIAEoARITCgtkZXNjcmlwdGlvbhgGIAEoCRozChFEaXN0cmlidXRpb25FbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBImcKHUNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEkYKD3NoYXJlZFJlc291cmNlcxgBIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uIicKGUdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkiZAoaR2V0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i3wIKHFVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAIgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgDIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YBCADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAUgASgBEhMKC3VuYWxsb2NhdGVkGAYgASgBEhMKC2Rlc2NyaXB0aW9uGAcgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iKgocRGVsZXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSIrCh1EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRIKCgJpZBgBIAEoCSJXChZMaXN0VW5pdE1ldHJpY3NSZXF1ZXN0EhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAEgASgJEhIKCmRhdGFTb3VyY2UYAiABKAkSDgoGc3RhdHVzGAMgASgJIk0KF0xpc3RVbml0TWV0cmljc1Jlc3BvbnNlEjIKC3VuaXRNZXRyaWNzGAEgAygLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyK5AQoXQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QSEgoKbWV0cmljTmFtZRgBIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgCIAEoCRISCgpkYXRhU291cmNlGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhMKC2Nvc3Rncm91cElkGAUgAygJEjEKCnNvdXJjZUluZm8YBiABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGENyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIiChRHZXRVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSJKChVHZXRVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMixQEKF1VwZGF0ZVVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJEhIKCm1ldHJpY05hbWUYAiABKAkSGQoRYWdncmVnYXRpb25NZXRob2QYAyABKAkSEgoKZGF0YVNvdXJjZRgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRITCgtjb3N0Z3JvdXBJZBgGIAMoCRIxCgpzb3VyY2VJbmZvGAcgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuU291cmNlSW5mbyJNChhVcGRhdGVVbml0TWV0cmljUmVzcG9uc2USMQoKdW5pdE1ldHJpYxgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRNZXRyaWMiJQoXRGVsZXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkiJgoYRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlEgoKAmlkGAEgASgJImYKGVByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QSFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRIQCghzaGVldFVybBgCIAEoCRIRCglzaGVldE5hbWUYAyABKAkSDQoFcmFuZ2UYBCABKAkiWQoaUHJldmlld0dvb2dsZVNoZWV0UmVzcG9uc2USDgoGaGVhZGVyGAEgAygJEisKB3Jvd0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5Sb3dEYXRhIjMKH0NvbmZpcm1Hb29nbGVTaGVldEFjY2Vzc1JlcXVlc3QSEAoIc2hlZXRVcmwYASABKAkiTQogQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2USFQoNZ29vZ2xlU2hlZXRJZBgBIAEoCRISCgpzaGVldE5hbWVzGAIgAygJInYKHEdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QSEQoJYWNjb3VudElkGAEgASgJEg4KBnJlZ2lvbhgCIAEoCRIMCgR0eXBlGAMgASgJEhEKCW5hbWVzcGFjZRgEIAEoCRISCgptZXRyaWNOYW1lGAUgASgJIr4BCh1HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZRISCgpuYW1lc3BhY2VzGAEgAygJEg8KB21ldHJpY3MYAiADKAkSTQoKZGltZW5zaW9ucxgDIAMoCzI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UuRGltZW5zaW9uGikKCURpbWVuc2lvbhIMCgRuYW1lGAEgASgJEg4KBnZhbHVlcxgCIAMoCSKBAgoWR2V0RGlzY291bnRQbGFuUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSGAoQcmVkdWN0aW9uRGlzcGxheRgDIAEoCRIWCg5pbmNsdWRlRGV0YWlscxgEIAEoCBIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkSDwoHcGF5ZXJJZBgHIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgIIAEoCRIPCgdncm91cElkGAkgASgJEhMKC2Nvc3RHcm91cElkGAogASgJEhAKCGFjY291bnRzGAsgAygJEhAKCHNlcnZpY2VzGAwgAygJImcKF0dldERpc2NvdW50UGxhblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEGF3c0Rpc2NvdW50UGxhbnMYAiABKAsyIy5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NEaXNjb3VudFBsYW5zInMKHExpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRIMCgR0eXBlGAUgASgJIskBCh1MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZRJUCg1ub25wZXJmb3JtaW5nGAEgAygLMj0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZS5Ob25wZXJmb3JtaW5nGlIKDU5vbnBlcmZvcm1pbmcSDAoEdHlwZRgBIAEoCRIPCgdhY2NvdW50GAIgASgJEhMKC3V0aWxpemF0aW9uGAMgASgBEg0KBXdhc3RlGAQgASgBInQKHExpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhAKCGZyb21EYXRlGAMgASgJEg4KBnRvRGF0ZRgEIAEoCRINCgVsaW1pdBgFIAEoAyL5AQodTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2USXAoRdW50YWdnZWRSZXNvdXJjZXMYASADKAsyQS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlLlVudGFnZ2VkUmVzb3VyY2VzGnoKEVVudGFnZ2VkUmVzb3VyY2VzEhAKCHJlc291cmNlGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCWNvc3RHcm91cBgEIAEoCRIMCgRjb3N0GAUgASgBEg4KBnZlbmRvchgGIAEoCSo/CgZTdGF0dXMSCwoHUEVORElORxAAEg8KC0lOX1BST0dSRVNTEAESCwoHU1VDQ0VTUxACEgoKBkZBSUxFRBADMtDjAQoFQ292ZXISdwoKT25ib2FyZE9yZxIjLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLk9uYm9hcmRPcmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9vbmJvYXJkEn8KDEludml0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuSW52aXRlTWVtYmVyUmVzcG9uc2UiIIgCAYLT5JMCFzoBKiISL3YxL21lbWJlcnMvaW52aXRlEn4KDEFjdGl2YXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQWN0aXZhdGVVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvYWN0aXZhdGUSeAoMQ3JlYXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVNZW1iZXJSZXNwb25zZSIZiAIBgtPkkwIQOgEqIgsvdjEvbWVtYmVycxJvCgpHZXRNZW1iZXJzEiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyc1Jlc3BvbnNlIhaIAgGC0+STAg0SCy92MS9tZW1iZXJzEooBChBHZXRNZW1iZXJEZXRhaWxzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlIh+IAgGC0+STAhYSFC92MS9tZW1iZXJzL3t1c2VySWR9EpoBChJHZXRNZW1iZXJDb3N0R3JvdXASKy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckNvc3RHcm91cFJlc3BvbnNlIimIAgGC0+STAiASHi92MS9tZW1iZXJzL3t1c2VySWR9L2Nvc3Rncm91cBKnAQoWVXBkYXRlTWVtYmVyUGVybWlzc2lvbhIvLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlcXVlc3QaMC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZU1lbWJlclBlcm1pc3Npb25SZXNwb25zZSIqiAIBgtPkkwIhOgEqGhwvdjEvbWVtYmVycy97dXNlcklkfS9pc2FkbWluEnMKDkdldFVzZXJEZXRhaWxzEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyRGV0YWlsc1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVzcG9uc2UiDoLT5JMCCBIGL3YxL21lEoMBChBVcGRhdGVVc2VyQXZhdGFyEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF2YXRhclJlc3BvbnNlIhiC0+STAhI6ASoaDS92MS9tZS9hdmF0YXISewoOVXBkYXRlVXNlckljb24SJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJJY29uUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckljb25SZXNwb25zZSIWgtPkkwIQOgEqGgsvdjEvbWUvaWNvbhKTAQoUVXBkYXRlVXNlckNvbG9yVGhlbWUSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJDb2xvclRoZW1lUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvbWUvY29sb3J0aGVtZRJ7Cg5VcGRhdGVVc2VyTmFtZRInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck5hbWVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTmFtZVJlc3BvbnNlIhaC0+STAhA6ASoaCy92MS9tZS9uYW1lEn8KD1VwZGF0ZVVzZXJFbWFpbBIoLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckVtYWlsUmVzcG9uc2UiF4LT5JMCEToBKhoML3YxL21lL2VtYWlsEosBChJVcGRhdGVVc2VyTWFpblZpZXcSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJNYWluVmlld1Jlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS9tYWludmlldxKIAQoRUmVzZXRVc2VyUGFzc3dvcmQSKi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0VXNlclBhc3N3b3JkUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuUmVzZXRVc2VyUGFzc3dvcmRSZXNwb25zZSIagtPkkwIUOgEqIg8vdjEvbWUvcGFzc3dvcmQSgwEKEFVwZGF0ZVVzZXJMb2NhbGUSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJMb2NhbGVSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTG9jYWxlUmVzcG9uc2UiGILT5JMCEjoBKhoNL3YxL21lL2xvY2FsZRKLAQoSVXBkYXRlVXNlckFwcFRoZW1lEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXBwVGhlbWVSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvYXBwdGhlbWUSiwEKElVwZGF0ZVVzZXJUaW1lem9uZRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclRpbWV6b25lUmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL3RpbWV6b25lEpMBChRVcGRhdGVVc2VyQXR0cmlidXRlcxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckF0dHJpYnV0ZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXR0cmlidXRlc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9tZS9hdHRyaWJ1dGVzEnsKDERlbGV0ZU1lbWJlchIlLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlTWVtYmVyUmVzcG9uc2UiHILT5JMCFioUL3YxL21lbWJlcnMve3VzZXJJZH0ShgEKDVJlc2V0UGFzc3dvcmQSJi5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0UGFzc3dvcmRSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFBhc3N3b3JkUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL21lbWJlcnMvcmVzZXRwYXNzd29yZBJtCgpDcmVhdGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVmlld1Jlc3BvbnNlIhSC0+STAg46ASoiCS92MS92aWV3cxJkCghHZXRWaWV3cxIhLmJsdWVhcGkuY292ZXIudjEuR2V0Vmlld3NSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRWaWV3c1Jlc3BvbnNlIhGC0+STAgsSCS92MS92aWV3cxJ/Cg5HZXRDdXJyZW50VmlldxInLmJsdWVhcGkuY292ZXIudjEuR2V0Q3VycmVudFZpZXdSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXJyZW50Vmlld1Jlc3BvbnNlIhqC0+STAhQSEi92MS92aWV3cy97dmlld0lkfRKGAQoQR2V0RmF2b3JpdGVWaWV3cxIpLmJsdWVhcGkuY292ZXIudjEuR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEZhdm9yaXRlVmlld3NSZXNwb25zZSIbgtPkkwIVEhMvdjEvdmlld3MvZmF2b3JpdGVzEngKC1B1Ymxpc2hWaWV3EiQuYmx1ZWFwaS5jb3Zlci52MS5QdWJsaXNoVmlld1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLlB1Ymxpc2hWaWV3UmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL3ZpZXdzL3B1Ymxpc2gSfQoLQWRkRmF2b3JpdGUSJC5ibHVlYXBpLmNvdmVyLnYxLkFkZEZhdm9yaXRlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWRkRmF2b3JpdGVSZXNwb25zZSIhgtPkkwIbOgEqGhYvdjEvdmlld3MvZmF2b3JpdGUvYWRkEokBCg5SZW1vdmVGYXZvcml0ZRInLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVGYXZvcml0ZVJlc3BvbnNlIiSC0+STAh46ASoaGS92MS92aWV3cy9mYXZvcml0ZS9yZW1vdmUSdgoKVXBkYXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvdmlld3Mve3ZpZXdJZH0SjwEKEFVwZGF0ZVZpZXdMYXlvdXQSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdMYXlvdXRSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3TGF5b3V0UmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3ZpZXdzL2xheW91dC97dmlld0lkfRKaAQoQVXBkYXRlVmlld1dpZGdldBIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1dpZGdldFJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZSIvgtPkkwIpOgEqGiQvdjEvdmlld3MvbGF5b3V0L3t2aWV3SWR9L3t3aWRnZXRJZH0SnwEKFFVwZGF0ZVZpZXdDb2xvclRoZW1lEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDb2xvclRoZW1lUmVzcG9uc2UiKILT5JMCIjoBKhodL3YxL3ZpZXdzL3t2aWV3SWR9L2NvbG9ydGhlbWUSlwEKElVwZGF0ZVZpZXdDdXJyZW5jeRIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0N1cnJlbmN5UmVzcG9uc2UiJoLT5JMCIDoBKhobL3YxL3ZpZXdzL3t2aWV3SWR9L2N1cnJlbmN5EpwBChRTZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiWC0+STAh86ASoiGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5EpkBChRHZXRPcmdVcGRhdGVDdXJyZW5jeRItLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdVcGRhdGVDdXJyZW5jeVJlc3BvbnNlIiKC0+STAhwSGi92MS9vcmdhbml6YXRpb25zL2N1cnJlbmN5Eo0BChFMaXN0RXhjaGFuZ2VSYXRlcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlIh+C0+STAhkSFy92MS9vcmdhbml6YXRpb25zL3JhdGVzEnMKCkRlbGV0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVWaWV3UmVzcG9uc2UiGoLT5JMCFCoSL3YxL3ZpZXdzL3t2aWV3SWR9Ep8BChNVcGRhdGVTaWRlTWVudVN0YXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaWRlTWVudVN0YXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2lkZU1lbnVTdGF0ZVJlc3BvbnNlIiuC0+STAiU6ASoaIC92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXN0YXRlEqIBChNBZGRTaWRlTWVudUZhdm9yaXRlEiwuYmx1ZWFwaS5jb3Zlci52MS5BZGRTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIi6C0+STAig6ASoiIy92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudWZhdm9yaXRlEq0BChZSZW1vdmVTaWRlTWVudUZhdm9yaXRlEi8uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBowLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlIjCC0+STAio6ASoiJS92MS92aWV3cy97dmlld0lkfS9zaWRlbWVudXVuZmF2b3JpdGUSgQEKD0NyZWF0ZUNvc3RHcm91cBIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ29zdEdyb3VwUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2Nvc3Rncm91cHMSeAoNR2V0Q29zdEdyb3VwcxImLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3Vwc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cHNSZXNwb25zZSIWgtPkkwIQEg4vdjEvY29zdGdyb3VwcxJ4Cg1HZXRDYXRlZ29yaWVzEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDYXRlZ29yaWVzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0Q2F0ZWdvcmllc1Jlc3BvbnNlIhaC0+STAhASDi92MS9jYXRlZ29yaWVzEpgBChNHZXRDb3N0R3JvdXBEZXRhaWxzEiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBEZXRhaWxzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlIiSC0+STAh4SHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SoAEKE1VwZGF0ZUNvc3RHcm91cE5hbWUSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBOYW1lUmVzcG9uc2UiLILT5JMCJjoBKhohL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9uYW1lErwBChpVcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvbhIzLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlc3BvbnNlIjOC0+STAi06ASoaKC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vZGVzY3JpcHRpb24SpAEKFFVwZGF0ZUNvc3RHcm91cEltYWdlEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJbWFnZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2UiLYLT5JMCJzoBKhoiL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9pbWFnZRKgAQoTVXBkYXRlQ29zdEdyb3VwSWNvbhIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEljb25SZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2ljb24SuAEKGVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWUSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVzcG9uc2UiMoLT5JMCLDoBKhonL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9jb2xvcnRoZW1lEsABChtVcGRhdGVDb3N0R3JvdXBDb21iaW5hdGlvbnMSNC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QaNS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoaKS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vY29tYmluYXRpb25zErsBChxSZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zEjUuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlIiyC0+STAiYSJC92MS9jb3N0Z3JvdXBzL3Jlc29sdmUve2Nvc3RHcm91cElkfRKsAQoVQXNzaWduQ29zdEdyb3VwTWVtYmVyEi4uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZSIygtPkkwIsOgEqIicvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L21lbWJlci9hZGQSrwEKFVJlbW92ZUNvc3RHcm91cE1lbWJlchIuLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2UiNYLT5JMCLzoBKiIqL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9tZW1iZXIvcmVtb3ZlEowBCg9EZWxldGVDb3N0R3JvdXASKC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNvc3RHcm91cFJlc3BvbnNlIiSC0+STAh4qHC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0SpgEKG0dldEFjY291bnRBY2Nlc3NUZW1wbGF0ZVVybBI0LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBo1LmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVzcG9uc2UiGoLT5JMCFBISL3YxL2F3cy9hY2N0YWNjZXNzEooBChFMaXN0QWNjb3VudEFjY2VzcxIqLmJsdWVhcGkuY292ZXIudjEuTGlzdEFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9hbGw6cmVhZDABEoMBChBHZXRBY2NvdW50QWNjZXNzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIjgtPkkwIdEhsvdjEvYXdzL2FjY3RhY2Nlc3Mve3RhcmdldH0SfAoNR2V0RGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkRhdGFBY2Nlc3MiHILT5JMCFhIUL3YxL2FjY291bnQve3RhcmdldH0SeQoQRGVsZXRlRGF0YUFjY2VzcxIvLmJsdWVhcGkuY292ZXIudjEuR2V0QW5kRGVsZXRlRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFioUL3YxL2FjY291bnQve3RhcmdldH0SgwEKE0NyZWF0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIh2C0+STAhc6ASoiEi92MS9hd3MvYWNjdGFjY2VzcxKcAQobQ3JlYXRlQWNjb3VudEFjY2Vzc1N0YWNrc2V0EjQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXRSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiaC0+STAiA6ASoiGy92MS9hd3MvYWNjdGFjY2Vzcy9zdGFja3NldBKKAQoWQ3JlYXRlQWNjb3VudEFjY2Vzc0N1chIsLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiIYLT5JMCGzoBKiIWL3YxL2F3cy9hY2N0YWNjZXNzL2N1chJ7ChNVcGRhdGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iI4LT5JMCHRobL3YxL2F3cy9hY2N0YWNjZXNzL3t0YXJnZXR9EpMBChNEZWxldGVBY2NvdW50QWNjZXNzEiwuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBY2NvdW50QWNjZXNzUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWNjb3VudEFjY2Vzc1Jlc3BvbnNlIh+C0+STAhkqFy92MS9hY2N0YWNjZXNzL3t0YXJnZXR9EnQKD1JlZ2lzdGVyQWNjb3VudBIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIfgtPkkwIZOgEqIhQvdjEve3ZlbmRvcn0vYWNjb3VudBJxChJSZWdpc3RlckRhdGFBY2Nlc3MSKy5ibHVlYXBpLmNvdmVyLnYxLlJlZ2lzdGVyRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiFoLT5JMCEDoBKiILL3YxL2FjY291bnQScAoRQWRkQmlsbGluZ0FjY291bnQSJy5ibHVlYXBpLmNvdmVyLnYxLkJpbGxpbmdBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUOgEqIg8vdjEvYmlsbGluZ2FjY3QSdwoOTGlzdERhdGFBY2Nlc3MSJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3REYXRhQWNjZXNzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRGF0YUFjY2VzcyIcgtPkkwIWIhQvdjEvYWNjb3VudC9hbGw6cmVhZDABEqgBChhMaXN0VW5yZWdpc3RlcmVkQWNjb3VudHMSMS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1Jlc3BvbnNlIiWC0+STAh8iHS92MS9hY2NvdW50L3VucmVnaXN0ZXJlZDpyZWFkEnYKEFVwZGF0ZURhdGFBY2Nlc3MSKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZURhdGFBY2Nlc3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhk6ASoaFC92MS9hY2NvdW50L3t0YXJnZXR9EmsKCkxpc3RBc3NldHMSIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNSZXF1ZXN0GhouYmx1ZWFwaS5jb3Zlci52MS5SZXNvdXJjZSIagtPkkwIUOgEqIg8vdjEvYXNzZXRzOnJlYWQwARKTAQoQR2V0QXNzZXRzU3VtbWFyeRIpLmJsdWVhcGkuY292ZXIudjEuR2V0QXNzZXRzU3VtbWFyeVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkdldEFzc2V0c1N1bW1hcnlSZXNwb25zZSIogtPkkwIiEiAvdjEvYXNzZXRzL3N1bW1hcnkve2Nvc3RHcm91cElkfRJyCgxHZXRDb3N0VXNhZ2USJS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3QaGi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RJdGVtIh2C0+STAhc6ASoiEi92MS9jb3N0dXNhZ2U6cmVhZDABEsIBChxHZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uEjUuYmx1ZWFwaS5jb3Zlci52MS5HZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVxdWVzdBo2LmJsdWVhcGkuY292ZXIudjEuR2V0UmlnaHRTaXppbmdSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjOC0+STAi0SKy92MS9yaWdodHNpemluZ3JlY29tbWVuZGF0aW9uL3tjb3N0R3JvdXBJZH0SmAEKEk1vZGlmeVJlc291cmNlVHlwZRIrLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTW9kaWZ5UmVzb3VyY2VUeXBlUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L3Jlc291cmNlL21vZGlmeRKYAQoRVGVybWluYXRlUmVzb3VyY2USKi5ibHVlYXBpLmNvdmVyLnYxLlRlcm1pbmF0ZVJlc291cmNlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuVGVybWluYXRlUmVzb3VyY2VSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEve3ZlbmRvcn0vcmVzb3VyY2UvdGVybWluYXRlEo0BChBVcGxvYWRDaGFyZ2VDb2RlEikuYmx1ZWFwaS5jb3Zlci52MS5VcGxvYWRDaGFyZ2VDb2RlUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBsb2FkQ2hhcmdlQ29kZVJlc3BvbnNlIiCC0+STAho6ASoiFS92MS9jaGFyZ2Vjb2RlL3VwbG9hZCgBEnoKC0Fzc2lnblBheWVyEiQuYmx1ZWFwaS5jb3Zlci52MS5Bc3NpZ25QYXllclJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnblBheWVyUmVzcG9uc2UiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxJxCglHZXRQYXllcnMSIi5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldFBheWVyc1Jlc3BvbnNlIhuC0+STAhUSEy92MS97dmVuZG9yfS9wYXllcnMShwEKC0dldEFjY291bnRzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L2FjY291bnRzL3tjb3N0R3JvdXBJZH0ShwEKC0dldFNlcnZpY2VzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRTZXJ2aWNlc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFNlcnZpY2VzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L3NlcnZpY2VzL3tjb3N0R3JvdXBJZH0SgwEKCkdldFJlZ2lvbnMSIy5ibHVlYXBpLmNvdmVyLnYxLkdldFJlZ2lvbnNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWdpb25zUmVzcG9uc2UiKoLT5JMCJBIiL3YxL3t2ZW5kb3J9L3JlZ2lvbnMve2Nvc3RHcm91cElkfRJ3CgdHZXRUYWdzEiAuYmx1ZWFwaS5jb3Zlci52MS5HZXRUYWdzUmVxdWVzdBohLmJsdWVhcGkuY292ZXIudjEuR2V0VGFnc1Jlc3BvbnNlIieC0+STAiESHy92MS97dmVuZG9yfS90YWdzL3tjb3N0R3JvdXBJZH0SdwoITGlzdEZlZXMSIS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGZWVzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9hbGw6cmVhZDABEnoKClJlc3RvcmVGZWUSIy5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVGZWVSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIieC0+STAiE6ASoiHC92MS9hbGxvY2F0aW9ucy9mZWVzL3Jlc3RvcmUwARJ+Cg9HZXRDb3N0R3JvdXBGZWUSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEZlZVJlcXVlc3QaGS5ibHVlYXBpLmNvdmVyLnYxLkZlZUl0ZW0iJILT5JMCHjoBKiIZL3YxL2FsbG9jYXRpb25zL2ZlZXM6cmVhZDABEnsKDkxpc3RBbGxvY2F0b3JzEicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWxsb2NhdG9yc1JlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIhaC0+STAhASDi92MS9hbGxvY2F0b3JzMAESfgoPQ3JlYXRlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIZgtPkkwITOgEqIg4vdjEvYWxsb2NhdG9ycxKgAQoXR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXMSMC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZSIggtPkkwIaEhgvdjEvYWxsb2NhdG9ycy9hdHRyaWJ1dGUSlAEKFEdldEFsbG9jYXRpb25Tb3VyY2VzEi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL2FsbG9jYXRvcnMvc291cmNlEoEBCg9VcGRhdGVBbGxvY2F0b3ISJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5Db3N0QWxsb2NhdG9yRGV0YWlscyIegtPkkwIYOgEqGhMvdjEvYWxsb2NhdG9ycy97aWR9EnAKD0RlbGV0ZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxsb2NhdG9yUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIbgtPkkwIVKhMvdjEvYWxsb2NhdG9ycy97aWR9EpABChVQcm94eUNyZWF0ZUNvbXBsZXRpb24SLi5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlByb3h5Q3JlYXRlQ29tcGxldGlvblJlc3BvbnNlIhSC0+STAg46ASoiCS92MS94L3BjYzABEooBChRTaW11bGF0ZUZlZUFsbG9jYXRvchIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRmVlRGV0YWlscyIogtPkkwIiOgEqIh0vdjEvYWxsb2NhdGlvbnMvZmVlcy9zaW11bGF0ZTABEpgBChBMaXN0QWNjb3VudFVzYWdlEikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWNjb3VudFVzYWdlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL2FsbDpyZWFkMAESnQEKE1Jlc3RvcmVBY2NvdW50VXNhZ2USLC5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVBY2NvdW50VXNhZ2VSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIi+C0+STAik6ASoiJC92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2UvcmVzdG9yZTABEpsBChRTaW11bGF0ZUFjY291bnRVc2FnZRIoLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxsb2NhdG9yUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudFVzYWdlRGV0YWlscyIwgtPkkwIqOgEqIiUvdjEvYWxsb2NhdGlvbnMvYWNjb3VudHVzYWdlL3NpbXVsYXRlMAESgQEKC0xpc3RTYXZpbmdzEiEuYmx1ZWFwaS5jb3Zlci52MS5MaXN0RmVlc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiuC0+STAiU6ASoiIC92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL2FsbDpyZWFkMAESiQEKDlJlc3RvcmVTYXZpbmdzEicuYmx1ZWFwaS5jb3Zlci52MS5SZXN0b3JlU2F2aW5nc1JlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiqC0+STAiQ6ASoiHy92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL3Jlc3RvcmUwARKMAQoPU2ltdWxhdGVTYXZpbmdzEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5TYXZpbmdzRGV0YWlscyIrgtPkkwIlOgEqIiAvdjEvYWxsb2NhdGlvbnMvc2F2aW5ncy9zaW11bGF0ZTABEo4BChZHZXRDb3N0R3JvdXBBbGxvY2F0aW9uEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBbGxvY2F0aW9uUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdGlvbkl0ZW0iH4LT5JMCGToBKiIUL3YxL2FsbG9jYXRpb25zOnJlYWQwARKHAQoQUHJvY2Vzc0F1dGgwVXNlchIpLmJsdWVhcGkuY292ZXIudjEuUHJvY2Vzc0F1dGgwVXNlclJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlByb2Nlc3NBdXRoMFVzZXJSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvbWVtYmVycy9hdXRoMBKbAQobQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzEjQuYmx1ZWFwaS5jb3Zlci52MS5BZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAig6ASoiIy92MS9henVyZS9jcmVkZW50aWFscy9wYXJ0bmVyY2VudGVyEnUKDUFkZE1wblNldHRpbmcSJi5ibHVlYXBpLmNvdmVyLnYxLkFkZE1wblNldHRpbmdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh46ASoiGS92MS9henVyZS9jcmVkZW50aWFscy9tcG4SkwEKFUdldENvc3RHcm91cEF0dHJpYnV0ZRIuLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwQXR0cmlidXRlUmVzcG9uc2UiGYLT5JMCEzoBKiIOL3YxL2F0dHJpYnV0ZXMSbwoJR2V0QWxlcnRzEiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydHNSZXNwb25zZSIXgtPkkwIREg8vdjEvYWxlcnRzL2Nvc3QwARJ2CgtDcmVhdGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGVydFJlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9hbGVydHMvY29zdBKEAQoPR2V0QWxlcnREZXRhaWxzEiguYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGVydERldGFpbHNSZXNwb25zZSIcgtPkkwIWEhQvdjEvYWxlcnRzL2Nvc3Qve2lkfRJ4CgtEZWxldGVBbGVydBIkLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQWxlcnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGVydFJlc3BvbnNlIhyC0+STAhYqFC92MS9hbGVydHMvY29zdC97aWR9EpABChJVcGRhdGVBbGVydERldGFpbHMSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFsZXJ0RGV0YWlsc1Jlc3BvbnNlIh+C0+STAhk6ASoaFC92MS9hbGVydHMvY29zdC97aWR9EnoKC0dldENoYW5uZWxzEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxzUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2NoYW5uZWxzOnJlYWQwARJ5Cg1DcmVhdGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQ2hhbm5lbFJlc3BvbnNlIheC0+STAhE6ASoiDC92MS9jaGFubmVscxKHAQoRR2V0Q2hhbm5lbERldGFpbHMSKi5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxEZXRhaWxzUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbERldGFpbHNSZXNwb25zZSIZgtPkkwITEhEvdjEvY2hhbm5lbHMve2lkfRJ7Cg1EZWxldGVDaGFubmVsEiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDaGFubmVsUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ2hhbm5lbFJlc3BvbnNlIhmC0+STAhMqES92MS9jaGFubmVscy97aWR9EpMBChRVcGRhdGVDaGFubmVsRGV0YWlscxItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ2hhbm5lbERldGFpbHNSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDaGFubmVsRGV0YWlsc1Jlc3BvbnNlIhyC0+STAhY6ASoaES92MS9jaGFubmVscy97aWR9EqABChpHZXREaXNjb3VudFJlY29tbWVuZGF0aW9ucxIzLmJsdWVhcGkuY292ZXIudjEuR2V0RGlzY291bnRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIheC0+STAhE6ASoiDC92MS9kaXNjb3VudBKAAQoVR2V0QW5vbWFseWluQ29zdEdyb3VwEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbm9tYWx5aW5Db3N0R3JvdXBSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5RGF0YSIWgtPkkwIQOgEqIgsvdjEvYW5vbWFseTABEpYBCh1DcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiWC0+STAh86ASoiGi92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50EpsBCh1VcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydBI2LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoaHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SrAEKGkdldERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5EaXNjb3VudEV4cGlyeUFsZXJ0RGF0YSIngtPkkwIhEh8vdjEvYWxlcnRzL2V4cGlyZS9kaXNjb3VudC97aWR9Eq0BChtMaXN0RGlzY291bnRFeHBpcmF0aW9uQWxlcnQSNC5ibHVlYXBpLmNvdmVyLnYxLkxpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRpc2NvdW50RXhwaXJ5QWxlcnREYXRhIiuC0+STAiUiIy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L2FsbDpyZWFkMAESnAEKHURlbGV0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjouYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiEqHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SeAoSQ3JlYXRlQW5vbWFseUFsZXJ0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhc6ASoiEi92MS9hbGVydHMvYW5vbWFseRJ+ChJEZWxldGVBbm9tYWx5QWxlcnQSLy5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhkqFy92MS9hbGVydHMvYW5vbWFseS97aWR9EogBChBMaXN0QW5vbWFseUFsZXJ0EikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIjgtPkkwIdIhsvdjEvYWxlcnRzL2Fub21hbHkvYWxsOnJlYWQwARKHAQoPR2V0QW5vbWFseUFsZXJ0Ei8uYmx1ZWFwaS5jb3Zlci52MS5NYW5pcHVsYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoiLmJsdWVhcGkuY292ZXIudjEuQW5vbWFseUFsZXJ0RGF0YSIfgtPkkwIZEhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRJ9ChJVcGRhdGVBbm9tYWx5QWxlcnQSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHDoBKhoXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0ShwEKD1JlZ2lzdGVyTmV3VXNlchIoLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJOZXdVc2VyUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21lbWJlcnMvcmVnaXN0ZXISiAEKDkdldFVzZXJQcm9maWxlEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUHJvZmlsZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJQcm9maWxlUmVzcG9uc2UiI4LT5JMCHRIbL3YxL21lbWJlcnMvcHJvZmlsZS97ZW1haWx9EpQBChFVcGRhdGVVc2VyUHJvZmlsZRIqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclByb2ZpbGVSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUHJvZmlsZVJlc3BvbnNlIiaC0+STAiA6ASoaGy92MS9tZW1iZXJzL3Byb2ZpbGUve2VtYWlsfRJ4CgtMaXN0QnVkZ2V0cxIkLmJsdWVhcGkuY292ZXIudjEuTGlzdEJ1ZGdldHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QnVkZ2V0c1Jlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9idWRnZXQ6cmVhZDABEm0KCUdldEJ1ZGdldBIiLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0QnVkZ2V0UmVzcG9uc2UiF4LT5JMCERIPL3YxL2J1ZGdldC97aWR9EnQKDENyZWF0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQnVkZ2V0UmVzcG9uc2UiFYLT5JMCDzoBKiIKL3YxL2J1ZGdldBJ2CgxEZWxldGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUJ1ZGdldFJlc3BvbnNlIheC0+STAhEqDy92MS9idWRnZXQve2lkfRJ5CgxVcGRhdGVCdWRnZXQSJS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUJ1ZGdldFJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9idWRnZXQve2lkfRLXAQonUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nEkAuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXF1ZXN0GkEuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvbWVtYmVycy9hd3Mvc3Vic2NyaXB0aW9uEqwBCh1HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1cxI2LmJsdWVhcGkuY292ZXIudjEuR2V0Q3VzdG9tZXJTdWJzY3JpcHRpb25TdGF0dXNSZXF1ZXN0GjcuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1Jlc3BvbnNlIhqC0+STAhQSEi92MS9iaWxsaW5nL3N0YXR1cxKGAQoPQ3JlYXRlUHJvZmlsaW5nEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVQcm9maWxpbmdSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEvbWVtYmVycy9wcm9maWxlEpYBChRBZGRJbmZvdG9NYXJrZXRwbGFjZRItLmJsdWVhcGkuY292ZXIudjEuQWRkSW5mb3RvTWFya2V0cGxhY2VSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5BZGRJbmZvdG9NYXJrZXRwbGFjZVJlc3BvbnNlIh+C0+STAhk6ASoiFC92MS9tYXJrZXRwbGFjZS9pbmZvEpwBChBHZXRSZXBvcnRTdW1tYXJ5EikuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZXBvcnRTdW1tYXJ5UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVwb3J0U3VtbWFyeVJlc3BvbnNlIjGC0+STAisSKS92MS9yZXBvcnRzL2luc2lnaHQvc3VtbWFyeS97Y29zdEdyb3VwSWR9EpwBChNMaXN0UmVjb21tZW5kYXRpb25zEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZSIogtPkkwIiEiAvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbjABEp8BChVMaXN0UmVjb21tZW5kYXRpb25zVjISLS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblYyUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3JlY29tbWVuZGF0aW9ucy9hbGw6cmVhZDABEpsBChFHZXRSZWNvbW1lbmRhdGlvbhIqLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25SZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIi2C0+STAicSJS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL3tpZH0SnAEKE0dldFJlY29tbWVuZGF0aW9uVjISLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2UiKILT5JMCIhIgL3YxL3JlY29tbWVuZGF0aW9ucy9kZXRhaWxzL3tpZH0SmgEKE0V4ZWN1dGVPcHRpbWl6YXRpb24SLC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlT3B0aW1pemF0aW9uUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL3JlY29tbWVuZGF0aW9ucy9leGVjdXRlEp0BChJHZXRFeGVjdXRpb25TdGF0dXMSKy5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldEV4ZWN1dGlvblN0YXR1c1Jlc3BvbnNlIiqC0+STAiQSIi92MS9yZWNvbW1lbmRhdGlvbnMvZXhlY3V0ZS9zdGF0dXMwARKZAQoOTWFya0FzRXhlY3V0ZWQSJy5ibHVlYXBpLmNvdmVyLnYxLk1hcmtBc0V4ZWN1dGVkUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuTWFya0FzRXhlY3V0ZWRSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi9leGVjdXRlZBK5AQoaVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb24SMy5ibHVlYXBpLmNvdmVyLnYxLlVuZG9FeGVjdXRlZFJlY29tbWVuZGF0aW9uUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXNwb25zZSIwgtPkkwIqOgEqIiUvdjEvcmVjb21tZW5kYXRpb25zL29wdGltaXphdGlvbi91bmRvEqQBChNPcHRpbWl6YXRpb25IaXN0b3J5EiwuYmx1ZWFwaS5jb3Zlci52MS5PcHRpbWl6YXRpb25IaXN0b3J5UmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuT3B0aW1pemF0aW9uSGlzdG9yeVJlc3BvbnNlIjCC0+STAioSKC92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL2hpc3RvcnkSvwEKGlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yEjMuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBFdmVudEluZGljYXRvclJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVzcG9uc2UiNoLT5JMCMDoBKiIrL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9ldmVudEluZGljYXRvchK4AQoaU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnMSMy5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2Fub21hbHkSkAEKEVNldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSjQEKEUdldE9yZ0Zpc2NhbE1vbnRoEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdGaXNjYWxNb250aFJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ0Zpc2NhbE1vbnRoUmVzcG9uc2UiH4LT5JMCGRIXL3YxL3JlcG9ydHMvZmlzY2FsbW9udGgSogEKFFRyYW5zZmVyT3JnYW5pemF0aW9uEi0uYmx1ZWFwaS5jb3Zlci52MS5UcmFuc2Zlck9yZ2FuaXphdGlvblJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlRyYW5zZmVyT3JnYW5pemF0aW9uUmVzcG9uc2UiK4LT5JMCJRIjL3YxL29yZ2FuaXphdGlvbnMvdHJhbnNmZXIve3RhcmdldH0SqQEKGVVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUkSMi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXF1ZXN0GjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBDcmVhdGlvblVJUmVzcG9uc2UiI4LT5JMCHToBKhoYL3YxL21lL2Nvc3Rncm91cGNyZWF0aW9uEnYKDUxpc3RVbml0VHlwZXMSJi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0VHlwZXNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdFR5cGVzUmVzcG9uc2UiFILT5JMCDhIML3YxL3VuaXRjb3N0EnwKDkNyZWF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRUeXBlUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL3VuaXRjb3N0EnUKC0dldFVuaXRUeXBlEiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0VHlwZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRUeXBlUmVzcG9uc2UiGYLT5JMCExIRL3YxL3VuaXRjb3N0L3tpZH0SgQEKDlVwZGF0ZVVuaXRUeXBlEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0VHlwZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRUeXBlUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL3VuaXRjb3N0L3tpZH0SfgoORGVsZXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdFR5cGVSZXNwb25zZSIZgtPkkwITKhEvdjEvdW5pdGNvc3Qve2lkfRJ2CgpNZXJnZVVuaXRzEiMuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVVuaXRzUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VVbml0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS91bml0Y29zdC9tZXJnZRKRAQoSTGlzdFN1Z2dlc3RlZFVuaXRzEisuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0U3VnZ2VzdGVkVW5pdHNSZXNwb25zZSIggtPkkwIaEhgvdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QSnQEKE01lcmdlU3VnZ2VzdGVkVW5pdHMSLC5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVN1Z2dlc3RlZFVuaXRzUmVzcG9uc2UiKYLT5JMCIzoBKiIeL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0L21lcmdlEqoBChdDcmVhdGVVbml0RnJvbVN1Z2dlc3RlZBIwLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS91bml0Y29zdC9hdXRvc3VnZ2VzdC9jcmVhdGUSmAEKE0xpc3RTaGFyZWRSZXNvdXJjZXMSLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiJILT5JMCHhIcL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcxKgAQoUQ3JlYXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMSmQEKEUdldFNoYXJlZFJlc291cmNlEisuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5HZXRTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjEiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SpQEKFFVwZGF0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0SogEKFERlbGV0ZVNoYXJlZFJlc291cmNlEi4uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIpgtPkkwIjKiEvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzL3tpZH0ShAEKD0xpc3RVbml0TWV0cmljcxIoLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRNZXRyaWNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL3VuaXRjb3N0L21ldHJpY3MSigEKEENyZWF0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0TWV0cmljUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL3VuaXRjb3N0L21ldHJpY3MSgwEKDUdldFVuaXRNZXRyaWMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRNZXRyaWNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRVbml0TWV0cmljUmVzcG9uc2UiIYLT5JMCGxIZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRKPAQoQVXBkYXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRNZXRyaWNSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9EowBChBEZWxldGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdE1ldHJpY1Jlc3BvbnNlIiGC0+STAhsqGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0StgEKGENvbmZpcm1Hb29nbGVTaGVldEFjY2VzcxIxLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVxdWVzdBoyLmJsdWVhcGkuY292ZXIudjEuQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL3VuaXRjb3N0L21ldHJpY3MvZ29vZ2xlc2hlZXQvY29uZmlybRKkAQoSUHJldmlld0dvb2dsZVNoZWV0EisuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5QcmV2aWV3R29vZ2xlU2hlZXRSZXNwb25zZSIzgtPkkwItOgEqIigvdjEvdW5pdGNvc3QvbWV0cmljcy9nb29nbGVzaGVldC9wcmV2aWV3EqoBChVHZXRDbG91ZHdhdGNoTWV0YWRhdGESLi5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlIjCC0+STAioSKC92MS91bml0Y29zdC9tZXRyaWNzL2Nsb3Vkd2F0Y2gvbWV0YWRhdGEShAEKD1ZlcmlmeUFQSUFjY2VzcxIoLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2UiHILT5JMCFhIUL3YxL2FwaWFjY2Vzcy92ZXJpZnkSiQEKEUdldEFJQ29zdEFuZFVzYWdlEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UiG4LT5JMCFToBKiIQL3YxL2FpL2Nvc3R1c2FnZRKXAQoVR2V0Q29udGFpbmVyQ29zdFVzYWdlEisuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEvY29udGFpbmVycy9jb3N0dXNhZ2UShwEKEFBvcHVsYXRlRGVtb0RhdGESKS5ibHVlYXBpLmNvdmVyLnYxLlBvcHVsYXRlRGVtb0RhdGFSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5Qb3B1bGF0ZURlbW9EYXRhUmVzcG9uc2UiHILT5JMCFjoBKiIRL3YxL2RlbW8vcG9wdWxhdGUSewoNUmVzZXREZW1vRGF0YRImLmJsdWVhcGkuY292ZXIudjEuUmVzZXREZW1vRGF0YVJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0RGVtb0RhdGFSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvZGVtby9yZXNldBKZAQoPR2V0RGlzY291bnRQbGFuEiguYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFBsYW5SZXNwb25zZSIxgtPkkwIrOgEqIiYvdjEve3ZlbmRvcn0vZGlzY291bnRwbGFuL3tvcmdJZH06cmVhZBJ/Cg5HZXRDb3N0VXNhZ2VWMhInLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlc3BvbnNlIhiC0+STAhI6ASoiDS92MS9jb3N0dXNhZ2UwARKoAQoVTGlzdE5vbnBlcmZvcm1pbmdSYXRlEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0Tm9ucGVyZm9ybWluZ1JhdGVSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yYXRlL25vbnBlcmZvcm1pbmc6cmVhZBKoAQoVTGlzdFVudGFnZ2VkUmVzb3VyY2VzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZSIugtPkkwIoOgEqIiMvdjEvcmVwb3J0cy9yZXNvdXJjZXMvdW50YWdnZWQ6cmVhZBJ/Cg1MaXN0Rm9yZWNhc3RzEiYuYmx1ZWFwaS5jb3Zlci52MS5MaXN0Rm9yZWNhc3RzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuTGlzdEZvcmVjYXN0c1Jlc3BvbnNlIh2C0+STAhc6ASoiEi92MS9mb3JlY2FzdHM6cmVhZBKJAQoSQ3JlYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIYgtPkkwISOgEqIg0vdjEvZm9yZWNhc3RzEoIBCg9HZXRDb3N0Rm9yZWNhc3QSKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdFJlc3BvbnNlIhqC0+STAhQSEi92MS9mb3JlY2FzdHMve2lkfRKOAQoSVXBkYXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvZm9yZWNhc3RzL3tpZH0SiwEKEkRlbGV0ZUNvc3RGb3JlY2FzdBIrLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiGoLT5JMCFCoSL3YxL2ZvcmVjYXN0cy97aWR9EpsBChRHZXRDb3N0Rm9yZWNhc3RzRGF0YRItLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9mb3JlY2FzdHMvZGF0YTpyZWFkMAESjwEKE0dldFJlY29tbWVuZGF0aW9uVjMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblYzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3JlY29tbWVuZGF0aW9ucxKcAQoVTGlzdFJlY29tbWVuZGF0aW9uc1YzEi4uYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5SZWNvbW1lbmRhdGlvblN1bW1hcnkiKILT5JMCIjoBKiIdL3YxL3JlY29tbWVuZGF0aW9ucy9zdW1tYXJpZXMwARKlAQoXRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjMSMC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBoxLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvcmVjb21tZW5kYXRpb24vZXhlY3V0ZRJ2CgtJbnZpdGVVc2VycxIkLmJsdWVhcGkuY292ZXIudjEuSW52aXRlVXNlcnNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVVc2Vyc1Jlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS91c2VyL2ludml0ZRJuCgpEZWxldGVVc2VyEiMuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVc2VyUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVXNlclJlc3BvbnNlIhWC0+STAg8qDS92MS91c2VyL3tpZH0SggEKDlVwZGF0ZVVzZXJSb2xlEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUm9sZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJSb2xlUmVzcG9uc2UiHYLT5JMCFzoBKhoSL3YxL3VzZXIve3VzZXJfaWR9EmcKCUxpc3RVc2VycxIiLmJsdWVhcGkuY292ZXIudjEuTGlzdFVzZXJzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuTGlzdFVzZXJzUmVzcG9uc2UiEYLT5JMCCxIJL3YxL3VzZXJzEoABCgxSZWludml0ZVVzZXISJS5ibHVlYXBpLmNvdmVyLnYxLlJlaW52aXRlVXNlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLlJlaW52aXRlVXNlclJlc3BvbnNlIiGC0+STAhs6ASoiFi92MS91c2VyL3tpZH0vcmVpbnZpdGUSZQoHR2V0VXNlchIgLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclJlcXVlc3QaIS5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJSZXNwb25zZSIVgtPkkwIPEg0vdjEvdXNlci97aWR9GpcBkkGTARJCKEJFVEEpIENvdmVyIEFQSS4gQmFzZSBVUkw6IGh0dHBzOi8vYXBpLmFscGhhdXMuY2xvdWQvbS9ibHVlL2NvdmVyGk0KElNlcnZpY2UgZGVmaW5pdGlvbhI3aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvdHJlZS9tYWluL2NvdmVyL0JLChdjbG91ZC5hbHBoYXVzLmFwaS5jb3ZlckIKQ292ZXJQcm90b1okZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2NvdmVyYgZwcm90bzM", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
51
+ fileDesc("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSITChFHZXRNeVJvbGVzUmVxdWVzdCI8ChJHZXRNeVJvbGVzUmVzcG9uc2USJgoFcm9sZXMYASADKAsyFy5ibHVlYXBpLmFwaS5jb3Zlci5Sb2xlIhwKDkdldFVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIvsCCg9HZXRVc2VyUmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVlbWFpbBgDIAEoCRI1CgVyb2xlcxgEIAMoCzImLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclJlc3BvbnNlLlJvbGUSKwoKaW52aXRlZF9ieRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMbGFzdF91cGRhdGVkGAYgASgJEhIKCmNyZWF0ZWRfb24YByABKAkSDgoGYXZhdGFyGAggASgJEhEKCWFjdGl2YXRlZBgJIAEoCBqNAQoEUm9sZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEkQKCmNvc3Rncm91cHMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJSZXNwb25zZS5Sb2xlLkNvc3RHcm91cBolCglDb3N0R3JvdXASCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCSIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3Qi0gEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRp9CgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCBIOCgZhdmF0YXIYBiABKAkSEwoLY29sb3JfdGhlbWUYByABKAkiUgoVVXBkYXRlVXNlclJvbGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEAoIcm9sZV9pZHMYAiADKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiGAoWVXBkYXRlVXNlclJvbGVSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiTQoSSW52aXRlVXNlcnNSZXF1ZXN0Eg4KBmVtYWlscxgBIAMoCRIPCgdyb2xlX2lkGAIgASgJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhUKE0ludml0ZVVzZXJzUmVzcG9uc2Ui7QEKHkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkSUQoLZXhlY3V0ZVR5cGUYAiABKA4yPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdC5FeGVjdXRlVHlwZSJrCgtFeGVjdXRlVHlwZRILCgdERUZBVUxUEAASFAoQTUFSS19BU19FWEVDVVRFRBABEhEKDVVORE9fRVhFQ1VURUQQAhITCg9TVUJNSVRfVEVNUExBVEUQAxIRCg1SRVRSWV9FWEVDVVRFEAQiSgofRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRInCgZyZXN1bHQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsMBChxMaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhAKCHN0YXR1c2VzGAIgAygJEkwKB2ZpbHRlcnMYAyADKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QuRmlsdGVyc0VudHJ5Gi4KDEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/AQoZVXBkYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCLCAgoaVXBkYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2USCgoCaWQYASABKAkSFAoMZm9yZWNhc3ROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEi8KCWNvc3RHcm91cBgEIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cBIbChNwYXN0QWN0dWFsQ29zdFJhbmdlGAUgASgDEhkKEWxvb2tGb3J3YXJkUGVyaW9kGAYgASgDEkIKE2V4dGVybmFsQWRqdXN0bWVudHMYByADKAsyJS5ibHVlYXBpLmFwaS5jb3Zlci5FeHRlcm5hbEFkanVzdG1lbnQSEQoJY3JlYXRlZEJ5GAggASgJEhQKDGNyZWF0aW9uRGF0ZRgJIAEoCRIXCg9sYXN0VXBkYXRlZERhdGUYCiABKAkiJwoZRGVsZXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChpEZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCSJvChZHZXRDb3N0VXNhZ2VWMlJlc3BvbnNlEg0KBXZhbHVlGAEgASgBEgwKBGRhdGUYAiABKAkSDgoGdmVuZG9yGAMgASgJEigKB2RldGFpbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ir8EChVHZXRDb3N0VXNhZ2VWMlJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkSSAoLZ3JhbnVsYXJpdHkYBCABKA4yMy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgFIAMoCRJCCghjYXRlZ29yeRgGIAEoDjIwLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlVjJSZXF1ZXN0LkNhdGVnb3J5EhAKCGN1cnJlbmN5GAcgASgJEjoKCmF3c09wdGlvbnMYCCABKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBBd3NPcHRpb25zEkQKD2F6dXJlY3NwT3B0aW9ucxgJIAEoCzIrLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cEF6dXJlQ3NwT3B0aW9ucxI6CgpnY3BPcHRpb25zGAogASgLMiYuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwR2NwT3B0aW9ucyJCCgtHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIjkKCENhdGVnb3J5EhgKFENhdGVnb3J5X1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAIiGQoXUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QiGgoYUG9wdWxhdGVEZW1vRGF0YVJlc3BvbnNlIhYKFFJlc2V0RGVtb0RhdGFSZXF1ZXN0IhcKFVJlc2V0RGVtb0RhdGFSZXNwb25zZSLfBgoZQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSSgoKbWV0cmljVHlwZRgDIAEoDjI2LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVxdWVzdC5NZXRyaWNUeXBlEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJElAKC2dyYW51bGFyaXR5GAYgASgOMjsuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlRpbWVHcmFudWxhcml0eRIQCghncm91cEJ5cxgHIAMoCRJLCgdmaWx0ZXJzGAggAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LkZpbHRlckNyaXRlcmlhEkwKC3NlcnZpY2VUeXBlGAkgASgOMjcuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXF1ZXN0LlNlcnZpY2VUeXBlGs8BCg5GaWx0ZXJDcml0ZXJpYRILCgNrZXkYASABKAkSWwoIb3BlcmF0b3IYAiABKA4ySS5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QuRmlsdGVyQ3JpdGVyaWEuRmlsdGVyT3BlcmF0b3ISDQoFdmFsdWUYAyABKAkiRAoORmlsdGVyT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIJCgVFUVVBTBABEg0KCU5PVF9FUVVBTBACIkYKD1RpbWVHcmFudWxhcml0eRIbChdHUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEgkKBURBSUxZEAESCwoHTU9OVEhMWRACIloKCk1ldHJpY1R5cGUSFgoSTUVUUklDX1VOU1BFQ0lGSUVEEAASCAoEQ09TVBABEgkKBVVTQUdFEAISDgoKRUZGSUNJRU5DWRADEg8KC1VOVVNFRF9DT1NUEAQiOAoLU2VydmljZVR5cGUSFwoTU0VSVklDRV9VTlNQRUNJRklFRBAAEgcKA0VDUxABEgcKA0VLUxACItcKChpDb250YWluZXJDb3N0VXNhZ2VSZXNwb25zZRJLCgdyZXN1bHRzGAEgAygLMjouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0ElMKCmhpZ2hsaWdodHMYAiABKAsyPy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLlJlc291cmNlSGlnaGxpZ2h0cxIRCgl0b3RhbENvc3QYAyABKAESFQoNYXZnRWZmaWNpZW5jeRgEIAEoARpECgpDb3N0TWV0cmljEg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRIUCgx1bnVzZWRBbW91bnQYAyABKAEakAEKC1VzYWdlTWV0cmljEgwKBHVuaXQYASABKAkSFgoOcmVzZXJ2ZWRBbW91bnQYAiABKAESFAoMYWN0dWFsQW1vdW50GAMgASgBEhIKCmVmZmljaWVuY3kYBCABKAESFgoOY3B1VXRpbGl6YXRpb24YBSABKAESGQoRbWVtb3J5VXRpbGl6YXRpb24YBiABKAEawQEKD01ldHJpY0RhdGFQb2ludBIMCgRkYXRlGAEgASgJEkcKBGNvc3QYAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlLkNvc3RNZXRyaWNIABJJCgV1c2FnZRgDIAEoCzI4LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuVXNhZ2VNZXRyaWNIAEIMCgptZXRyaWNEYXRhGkwKEVJlc291cmNlSGlnaGxpZ2h0EhIKCnJlc291cmNlSWQYASABKAkSFAoMcmVzb3VyY2VOYW1lGAIgASgJEg0KBXZhbHVlGAMgASgBGoQDChJSZXNvdXJjZUhpZ2hsaWdodHMSWgoSaGlnaGVzdENsdXN0ZXJDb3N0GAEgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBJZChFoaWdoZXN0VW51c2VkQ29zdBgCIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWwoTaGlnaGVzdFdvcmtsb2FkQ29zdBgDIAEoCzI+LmJsdWVhcGkuY292ZXIudjEuQ29udGFpbmVyQ29zdFVzYWdlUmVzcG9uc2UuUmVzb3VyY2VIaWdobGlnaHQSWgoSaGlnaGVzdENvbXB1dGVDb3N0GAQgASgLMj4uYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5SZXNvdXJjZUhpZ2hsaWdodBr6AQoNR3JvdXBlZFJlc3VsdBJeCgphdHRyaWJ1dGVzGAEgAygLMkouYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5Hcm91cGVkUmVzdWx0LkF0dHJpYnV0ZXNFbnRyeRJWChBtZXRyaWNEYXRhUG9pbnRzGAIgAygLMjwuYmx1ZWFwaS5jb3Zlci52MS5Db250YWluZXJDb3N0VXNhZ2VSZXNwb25zZS5NZXRyaWNEYXRhUG9pbnQaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEijwQKGEdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSSwoLZ3JhbnVsYXJpdHkYBSABKA4yNi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdC5HcmFudWxhcml0eRIQCghncm91cEJ5cxgGIAMoCRJCCgdmaWx0ZXJzGAcgAygLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyGsIBCgZGaWx0ZXISCwoDa2V5GAEgASgJEkwKCG9wZXJhdG9yGAIgASgOMjouYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlcXVlc3QuRmlsdGVyLk9wZXJhdG9yEg4KBnZhbHVlcxgDIAMoCRINCgV2YWx1ZRgEIAEoCSI+CghPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEgkKBUVRVUFMEAESDQoJTk9UX0VRVUFMEAIiQgoLR3JhbnVsYXJpdHkSGwoXR1JBTlVMQVJJVFlfVU5TUEVDSUZJRUQQABIJCgVEQUlMWRABEgsKB01PTlRITFkQAiKnBAoZR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZRJDCgdyZXN1bHRzGAEgAygLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlJlc3VsdBooCgRDb3N0Eg4KBmFtb3VudBgBIAEoARIQCghjdXJyZW5jeRgCIAEoCRolCgVVc2FnZRIMCgR1bml0GAEgASgJEg4KBmFtb3VudBgCIAEoARqYAQoGTWV0cmljEgwKBGRhdGUYASABKAkSPgoEY29zdBgCIAEoCzIwLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5Db3N0EkAKBXVzYWdlGAMgASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBSUNvc3RBbmRVc2FnZVJlc3BvbnNlLlVzYWdlGtgBCgZSZXN1bHQSVgoKYXR0cmlidXRlcxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZS5SZXN1bHQuQXR0cmlidXRlc0VudHJ5EkMKB21ldHJpY3MYAiADKAsyMi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVzcG9uc2UuTWV0cmljGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIhsKGUdldEV4ZWN1dGlvblN0YXR1c1JlcXVlc3QiVwoaR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2USGAoQcmVjb21tZW5kYXRpb25JZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSI4ChZWZXJpZnlBUElBY2Nlc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIOCgZ0YXJnZXQYAiABKAkiKQoXVmVyaWZ5QVBJQWNjZXNzUmVzcG9uc2USDgoGcmVzdWx0GAEgASgIImUKGkdldFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCRIQCghjdXJyZW5jeRgEIAEoCSJhChtHZXRSZWNvbW1lbmRhdGlvblYyUmVzcG9uc2USQgoEZGF0YRgBIAEoCzI0LmJsdWVhcGkuYXBpLmNvdmVyLnJlY29tbWVuZGF0aW9uLlJlY29tbWVuZGF0aW9uRGF0YSJRChFPbmJvYXJkT3JnUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBW9yZ0lkGAQgASgJIkMKEk9uYm9hcmRPcmdSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIk0KE0ludml0ZU1lbWJlclJlcXVlc3QSDQoFZW1haWwYASADKAkSEAoIaXNSZXNlbmQYAiABKAgSFQoNaW52aXRlQXNBZG1pbhgDIAEoCCIlChRJbnZpdGVNZW1iZXJSZXNwb25zZRINCgVlbWFpbBgBIAMoCSKkAQoTQWN0aXZhdGVVc2VyUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSGAoQcHJldmlvdXNQYXNzd29yZBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBmxvY2FsZRgFIAEoCRINCgVlbWFpbBgGIAEoCRIPCgdpc0F1dGgwGAcgASgIEhMKC2F1dGgwVXNlcklkGAggASgJIkUKFEFjdGl2YXRlVXNlclJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiWAoTQ3JlYXRlTWVtYmVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNvc3Rncm91cHMYBCADKAkiRQoUQ3JlYXRlTWVtYmVyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSITChFHZXRNZW1iZXJzUmVxdWVzdCJDChJHZXRNZW1iZXJzUmVzcG9uc2USLQoIdXNlckRhdGEYASADKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIpChdHZXRNZW1iZXJEZXRhaWxzUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiSQoYR2V0TWVtYmVyRGV0YWlsc1Jlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBIOCgZ1c2VySWQYASABKAkiVAoaR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2USNgoKY29zdEdyb3VwcxgBIAMoCzIiLmJsdWVhcGkuYXBpLmNvdmVyLk1lbWJlckNvc3RHcm91cCJACh1VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBIOCgZ1c2VySWQYASABKAkSDwoHaXNBZG1pbhgCIAEoCCJPCh5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIXChVHZXRVc2VyRGV0YWlsc1JlcXVlc3QiRwoWR2V0VXNlckRldGFpbHNSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIikKF1VwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0Eg4KBmF2YXRhchgBIAEoCSJJChhVcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChVVcGRhdGVVc2VySWNvblJlcXVlc3QSDAoEaWNvbhgBIAEoCSJHChZVcGRhdGVVc2VySWNvblJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiMQobVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0EhIKCmNvbG9yVGhlbWUYASABKAkiTQocVXBkYXRlVXNlckNvbG9yVGhlbWVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIiUKFVVwZGF0ZVVzZXJOYW1lUmVxdWVzdBIMCgRuYW1lGAEgASgJIkcKFlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSInChZVcGRhdGVVc2VyRW1haWxSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIkgKF1VwZGF0ZVVzZXJFbWFpbFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKwoZVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiSwoaVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJJChhSZXNldFVzZXJQYXNzd29yZFJlcXVlc3QSGAoQcHJldmlvdXNQYXNzd29yZBgBIAEoCRITCgtuZXdQYXNzd29yZBgCIAEoCSJKChlSZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiKQoXVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJIkkKGFVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIi0KGVVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QSEAoIYXBwVGhlbWUYASABKAkiSwoaVXBkYXRlVXNlckFwcFRoZW1lUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSJDChlVcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0EhAKCHRpbWVab25lGAEgASgJEhQKDGF1dG9UaW1lWm9uZRgCIAEoCCJLChpVcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZRItCgh1c2VyRGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVzZXJEYXRhIjEKG1VwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVxdWVzdBISCgphdHRyaWJ1dGVzGAEgAygJIk0KHFVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2USLQoIdXNlckRhdGEYASABKAsyGy5ibHVlYXBpLmFwaS5jb3Zlci5Vc2VyRGF0YSIlChNEZWxldGVNZW1iZXJSZXF1ZXN0Eg4KBnVzZXJJZBgBIAEoCSImChREZWxldGVNZW1iZXJSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiJgoUUmVzZXRQYXNzd29yZFJlcXVlc3QSDgoGdXNlcklkGAEgASgJIicKFVJlc2V0UGFzc3dvcmRSZXNwb25zZRIOCgZ1c2VySWQYASABKAkiuwEKEUNyZWF0ZVZpZXdSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEQoJaXNQcml2YXRlGAMgASgIEhIKCmlzRWRpdGFibGUYBCABKAgSDAoEaWNvbhgFIAEoCRISCgpyZXBvcnRUeXBlGAYgASgJEhIKCmNvbG9yVGhlbWUYByABKAkSFAoMcmVwb3J0UGVyaW9kGAggASgJEhAKCGN1cnJlbmN5GAkgASgJIkMKEkNyZWF0ZVZpZXdSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIhEKD0dldFZpZXdzUmVxdWVzdCJBChBHZXRWaWV3c1Jlc3BvbnNlEi0KCHZpZXdMaXN0GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0xpc3QiJwoVR2V0Q3VycmVudFZpZXdSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSJHChZHZXRDdXJyZW50Vmlld1Jlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiGQoXR2V0RmF2b3JpdGVWaWV3c1JlcXVlc3QiSwoYR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlEi8KCWZhdm9yaXRlcxgBIAMoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkZhdm9yaXRlcyIkChJQdWJsaXNoVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiIKE1B1Ymxpc2hWaWV3UmVzcG9uc2USCwoDdXJsGAEgASgJIiQKEkFkZEZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkiJQoTQWRkRmF2b3JpdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiJwoVUmVtb3ZlRmF2b3JpdGVSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCSIoChZSZW1vdmVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSKPAQoRVXBkYXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDAoEaWNvbhgEIAEoCRIRCglpc1ByaXZhdGUYBSABKAgSEgoKaXNFZGl0YWJsZRgGIAEoCBISCgpjb2xvclRoZW1lGAcgASgJIiQKElVwZGF0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiWAoXVXBkYXRlVmlld0xheW91dFJlcXVlc3QSDgoGdmlld0lkGAEgASgJEi0KBmxheW91dBgCIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLldpZGdldERhdGEiSQoYVXBkYXRlVmlld0xheW91dFJlc3BvbnNlEi0KBmxheW91dBgBIAMoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdMYXlvdXQimgEKF1VwZGF0ZVZpZXdXaWRnZXRSZXF1ZXN0Eg4KBnZpZXdJZBgBIAEoCRIQCgh3aWRnZXRJZBgCIAEoCRIoCgdvcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIzCghyZXF1ZXN0cxgEIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkxheW91dFJlcXVlc3RzIl8KGFVwZGF0ZVZpZXdXaWRnZXRSZXNwb25zZRIQCgh3aWRnZXRJZBgBIAEoCRIxCgp3aWRnZXREYXRhGAIgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuV2lkZ2V0RGF0YSJBChtVcGRhdGVWaWV3Q29sb3JUaGVtZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCmNvbG9yVGhlbWUYAiABKAkiTQocVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZRItCgh2aWV3RGF0YRgBIAEoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlZpZXdEYXRhIj0KGVVwZGF0ZVZpZXdDdXJyZW5jeVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhAKCGN1cnJlbmN5GAIgASgJIksKGlVwZGF0ZVZpZXdDdXJyZW5jeVJlc3BvbnNlEi0KCHZpZXdEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVmlld0RhdGEiNQobU2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0EhYKDnVwZGF0ZUN1cnJlbmN5GAEgASgDIjYKHFNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USFgoOdXBkYXRlQ3VycmVuY3kYASABKAMiHQobR2V0T3JnVXBkYXRlQ3VycmVuY3lSZXF1ZXN0IlkKHEdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2USDQoFb3JnSWQYASABKAkSFgoOdXBkYXRlQ3VycmVuY3kYAiABKAMSEgoKbGFzdFVwZGF0ZRgDIAEoCSI+ChhMaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QSEQoJc3RhcnREYXRlGAEgASgJEg8KB2VuZERhdGUYAiABKAkiYgoZTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI2Cg1leGNoYW5nZVJhdGVzGAIgAygLMh8uYmx1ZWFwaS5jb3Zlci52MS5FeGNoYW5nZVJhdGVzIkIKDUV4Y2hhbmdlUmF0ZXMSDQoFbW9udGgYASABKAkSFAoMZXhjaGFuZ2VSYXRlGAIgASgCEgwKBGRhdGUYAyABKAkiIwoRRGVsZXRlVmlld1JlcXVlc3QSDgoGdmlld0lkGAEgASgJIiQKEkRlbGV0ZVZpZXdSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiZQoaVXBkYXRlU2lkZU1lbnVTdGF0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEjcKDXNpZGVtZW51c3RhdGUYAiADKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5TaWRlTWVudVN0YXRlIi0KG1VwZGF0ZVNpZGVNZW51U3RhdGVSZXNwb25zZRIOCgZ2aWV3SWQYASABKAkiQAoaQWRkU2lkZU1lbnVGYXZvcml0ZVJlcXVlc3QSDgoGdmlld0lkGAEgASgJEhIKCm1lbnVJdGVtSWQYAiABKAkiLQobQWRkU2lkZU1lbnVGYXZvcml0ZVJlc3BvbnNlEg4KBnZpZXdJZBgBIAEoCSJDCh1SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVxdWVzdBIOCgZ2aWV3SWQYASABKAkSEgoKbWVudUl0ZW1JZBgCIAEoCSIwCh5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2USDgoGdmlld0lkGAEgASgJItMBChZDcmVhdGVDb3N0R3JvdXBSZXF1ZXN0EgwKBG5hbWUYASABKAkSLgoEdHlwZRgHIAEoDjIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cFR5cGUSEwoLZGVzY3JpcHRpb24YAiABKAkSDQoFaW1hZ2UYAyABKAkSDAoEaWNvbhgEIAEoCRISCgpjb2xvclRoZW1lGAUgASgJEjUKDGNvbWJpbmF0aW9ucxgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJSChdDcmVhdGVDb3N0R3JvdXBSZXNwb25zZRI3Cg1jb3N0R3JvdXBEYXRhGAEgASgLMiAuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwRGF0YSIWChRHZXRDb3N0R3JvdXBzUmVxdWVzdCJQChVHZXRDb3N0R3JvdXBzUmVzcG9uc2USNwoNY29zdEdyb3VwRGF0YRgBIAMoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLkNvc3RHcm91cERhdGEiMQoaR2V0Q29zdEdyb3VwRGV0YWlsc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiVgobR2V0Q29zdEdyb3VwRGV0YWlsc1Jlc3BvbnNlEjcKDWNvc3RHcm91cERhdGEYASABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXBEYXRhIj8KGlVwZGF0ZUNvc3RHcm91cE5hbWVSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEgwKBG5hbWUYAiABKAkiKwobVXBkYXRlQ29zdEdyb3VwTmFtZVJlc3BvbnNlEgwKBG5hbWUYASABKAkiTQohVXBkYXRlQ29zdEdyb3VwRGVzY3JpcHRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIjkKIlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2USEwoLZGVzY3JpcHRpb24YASABKAkiQQobVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg0KBWltYWdlGAIgASgJIi0KHFVwZGF0ZUNvc3RHcm91cEltYWdlUmVzcG9uc2USDQoFaW1hZ2UYASABKAkiPwoaVXBkYXRlQ29zdEdyb3VwSWNvblJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSDAoEaWNvbhgCIAEoCSIrChtVcGRhdGVDb3N0R3JvdXBJY29uUmVzcG9uc2USDAoEaWNvbhgBIAEoCSJLCiBVcGRhdGVDb3N0R3JvdXBDb2xvclRoZW1lUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRISCgpjb2xvclRoZW1lGAIgASgJIjcKIVVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZRISCgpjb2xvclRoZW1lGAEgASgJInAKIlVwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSNQoMY29tYmluYXRpb25zGAIgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIlwKI1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEjUKDGNvbWJpbmF0aW9ucxgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucyJDChxBc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEg4KBnVzZXJJZBgCIAEoCSJECh1Bc3NpZ25Db3N0R3JvdXBNZW1iZXJSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiQwocUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIOCgZ1c2VySWQYAiABKAkiRAodUmVtb3ZlQ29zdEdyb3VwTWVtYmVyUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSDgoGdXNlcklkGAIgASgJIi0KFkRlbGV0ZUNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiLgoXRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkiMgoiR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsUmVxdWVzdBIMCgR0eXBlGAEgASgJIqABCiNHZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZRIRCglsYXVuY2hVcmwYASABKAkSEwoLdGVtcGxhdGVVcmwYAiABKAkSEQoJc3RhY2tOYW1lGAMgASgJEhEKCXByaW5jaXBhbBgEIAEoCRISCgpleHRlcm5hbElkGAUgASgJEhcKD3RlbXBsYXRlVmVyc2lvbhgGIAEoCSIaChhMaXN0QWNjb3VudEFjY2Vzc1JlcXVlc3QiKQoXR2V0QWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJItoCCg1BY2NvdW50QWNjZXNzEg4KBnRhcmdldBgBIAEoCRITCgthY2NvdW50TmFtZRgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCRIPCgdwYXllcklkGAQgASgJEg8KB3JvbGVBcm4YBSABKAkSEgoKZXh0ZXJuYWxJZBgGIAEoCRIPCgdzdGFja0lkGAcgASgJEhMKC3N0YWNrUmVnaW9uGAggASgJEhMKC3RlbXBsYXRlVXJsGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSQQoScmVnaXN0cmF0aW9uU3RhdHVzGA0gASgLMiUuYmx1ZWFwaS5hcGkuY292ZXIuUmVnaXN0cmF0aW9uU3RhdHVzEg4KBnN0YXR1cxgOIAEoCRITCgtsYXN0VXBkYXRlZBgPIAEoCSJDChpDcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSFQoNZnJvbVRlcnJhZm9ybRgCIAEoCCJECiJDcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXRSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZyZWdpb24YAiABKAkiLAoaVXBkYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJIjwKGkRlbGV0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkiLwobRGVsZXRlQWNjb3VudEFjY2Vzc1Jlc3BvbnNlEhAKCHRhcmdldElkGAEgASgJIlAKFlJlZ2lzdGVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRITCgthY2NvdW50TmFtZRgDIAEoCSLmAQoRTGlzdEFzc2V0c1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEgoKc3RhcnRNb250aBgCIAEoCRIQCghlbmRNb250aBgDIAEoCRIaChJ3aXRoUmVjb21tZW5kYXRpb24YBCABKAgSNwoKYXdzT3B0aW9ucxgFIAMoCzIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c0ZpbHRlcnMSQQoUYXdzUHJvcGVydGllc09wdGlvbnMYBiADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzIo8BChFMaXN0QXNzZXRzRmlsdGVycxJHCgphbmRGaWx0ZXJzGAEgAygLMjMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEivQEKCFJlc291cmNlEgwKBGRhdGUYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDwoHc2VydmljZRgFIAEoCRISCgpyZXNvdXJjZUlkGAYgASgJEhQKDHJlc291cmNlVHlwZRgHIAEoCRIMCgRjb3N0GAggASgBEhIKCnByb3BlcnRpZXMYCSABKAkSFgoOcmVjb21tZW5kYXRpb24YCiABKAki5gEKF0dldEFzc2V0c1N1bW1hcnlSZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJEhIKCnN0YXJ0TW9udGgYAiABKAkSEAoIZW5kTW9udGgYAyABKAkSFAoMY29tYmluZURhdGVzGAQgASgIEjcKCmF3c09wdGlvbnMYBSADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBc3NldHNGaWx0ZXJzEkEKFGF3c1Byb3BlcnRpZXNPcHRpb25zGAYgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QXNzZXRzRmlsdGVycyJrChhHZXRBc3NldHNTdW1tYXJ5UmVzcG9uc2USMAoHc3VtbWFyeRgBIAMoCzIfLmJsdWVhcGkuY292ZXIudjEuQXNzZXRzU3VtbWFyeRIdChVyZWNvbW1lbmRhdGlvblN1bW1hcnkYAiABKAkiWAoNQXNzZXRzU3VtbWFyeRIMCgRkYXRlGAEgASgJEg4KBnZlbmRvchgCIAEoCRIWCg50b3RhbFJlc291cmNlcxgDIAEoAxIRCgl0b3RhbENvc3QYBCABKAEiOgojUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1JlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkiaQokUmVzb2x2ZUNvc3RHcm91cENvbWJpbmF0aW9uc1Jlc3BvbnNlEhMKC2Nvc3RHcm91cElkGAEgASgJEiwKCGFjY291bnRzGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuQWNjb3VudCLHBAoTR2V0Q29zdFVzYWdlUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRIUCgxncm91cEJ5TW9udGgYBCABKAgSDQoFbGltaXQYBSABKAMSEAoIY2F0ZWdvcnkYBiABKAkSDwoHZ3JvdXBCeRgHIAEoCRIXCg9pbmNsdWRlWmVyb0Nvc3QYCCABKAgSQwoKYXdzT3B0aW9ucxgJIAEoCzIvLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF3c09wdGlvbnMSRwoMYXp1cmVPcHRpb25zGAogASgLMjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0QXp1cmVPcHRpb25zEkMKCmdjcE9wdGlvbnMYCyABKAsyLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVJlcXVlc3RHY3BPcHRpb25zEk0KD2F6dXJlY3NwT3B0aW9ucxgMIAEoCzI0LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlQ3NwT3B0aW9ucxJJCg1jdXN0b21PcHRpb25zGA0gASgLMjIuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VSZXF1ZXN0Q3VzdG9tT3B0aW9ucxIXCg9pbmNsdWRlRm9yZWNhc3QYDiABKAgSEAoIY3VycmVuY3kYDyABKAki5wEKHUdldENvc3RVc2FnZVJlcXVlc3RBd3NPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhUKDWdyb3VwQWNjb3VudHMYAiABKAgSQQoHZmlsdGVycxgDIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEkQKCnRhZ0ZpbHRlcnMYBCADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxIOCgZ0YWdLZXkYBSABKAki2QEKH0dldENvc3RVc2FnZVJlcXVlc3RBenVyZU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFQoNZ3JvdXBBY2NvdW50cxgCIAEoCBJBCgdmaWx0ZXJzGAMgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRAoKdGFnRmlsdGVycxgEIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzIv4CCh1HZXRDb3N0VXNhZ2VSZXF1ZXN0R2NwT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRgoMbGFiZWxGaWx0ZXJzGAUgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSTQoTcHJvamVjdExhYmVsRmlsdGVycxgGIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgHIAEoCSLsAQoiR2V0Q29zdFVzYWdlUmVxdWVzdEF6dXJlQ3NwT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSDgoGdGFnS2V5GAUgASgJIoEDCiBHZXRDb3N0VXNhZ2VSZXF1ZXN0Q3VzdG9tT3B0aW9ucxIWCg5ncm91cEJ5Q29sdW1ucxgBIAEoCRIVCg1ncm91cEFjY291bnRzGAIgASgIEkEKB2ZpbHRlcnMYAyADKAsyMC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycxJECgp0YWdGaWx0ZXJzGAQgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSRgoMbGFiZWxGaWx0ZXJzGAUgAygLMjAuYmx1ZWFwaS5jb3Zlci52MS5SZWFkQ29zdHNSZXF1ZXN0T3B0aW9uc0ZpbHRlcnMSTQoTcHJvamVjdExhYmVsRmlsdGVycxgGIAMoCzIwLmJsdWVhcGkuY292ZXIudjEuUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzEg4KBnRhZ0tleRgHIAEoCSKpAQoeUmVhZENvc3RzUmVxdWVzdE9wdGlvbnNGaWx0ZXJzElQKCmFuZEZpbHRlcnMYASADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLlJlYWRDb3N0c1JlcXVlc3RPcHRpb25zRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9gMKCENvc3RJdGVtEg4KBnZlbmRvchgBIAEoCRIMCgRkYXRlGAIgASgJEg8KB3Byb2R1Y3QYAyABKAkSDwoHYWNjb3VudBgEIAEoCRIRCgl1c2FnZVR5cGUYECABKAkSEgoKY2hhcmdlVHlwZRgRIAEoCRIMCgRjb3N0GAUgASgBEg8KB2RldGFpbHMYBiABKAkSNAoIZm9yZWNhc3QYByABKAsyIi5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NDb3N0Rm9yZWNhc3QSDgoGcmVnaW9uGAggASgJEhYKDmJpbGxpbmdBY2NvdW50GAkgASgJEhAKCHRhZ1ZhbHVlGAogASgJEhIKCmxhc3RVcGRhdGUYCyABKAkSDAoEdW5pdBgMIAEoCRIQCghjYXRlZ29yeRgNIAEoCRIOCgZ0YWdnZWQYDiABKAgSFQoNbnVtYmVyT2ZVbml0cxgSIAEoARJGCg51bml0Y29zdG1ldHJpYxgPIAMoCzIuLmJsdWVhcGkuY292ZXIudjEuQ29zdEl0ZW0uVW5pdGNvc3RtZXRyaWNFbnRyeRIaChJhbGxvY2F0aW9uQ2F0ZWdvcnkYEyABKAkaNQoTVW5pdGNvc3RtZXRyaWNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBIjoKI0dldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0EhMKC2Nvc3RHcm91cElkGAEgASgJIlkKJEdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXNwb25zZRIxCghyZXNvdXJjZRgBIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlRGF0YSJ4ChlNb2RpZnlSZXNvdXJjZVR5cGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEgoKcmVzb3VyY2VJZBgDIAEoCRIUCgxyZXNvdXJjZVR5cGUYBCABKAkSDgoGcmVnaW9uGAUgASgJImkKGk1vZGlmeVJlc291cmNlVHlwZVJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRISCgpyZXNvdXJjZUlkGAIgASgJEhQKDHJlc291cmNlVHlwZRgDIAEoCRIOCgZyZWdpb24YBCABKAkiYQoYVGVybWluYXRlUmVzb3VyY2VSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSEgoKcmVzb3VyY2VJZBgDIAEoCRIOCgZyZWdpb24YBCABKAkiUgoZVGVybWluYXRlUmVzb3VyY2VSZXNwb25zZRIRCglhY2NvdW50SWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIOCgZyZWdpb24YAyABKAkiQwoXVXBsb2FkQ2hhcmdlQ29kZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIMCgR0eXBlGAIgASgJEgwKBGZpbGUYAyABKAwiUgoYVXBsb2FkQ2hhcmdlQ29kZVJlc3BvbnNlEgwKBG5hbWUYASABKAkSKAoGc3RhdHVzGAIgASgOMhguYmx1ZWFwaS5jb3Zlci52MS5TdGF0dXMiSAoSQXNzaWduUGF5ZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCSI5ChNBc3NpZ25QYXllclJlc3BvbnNlEhEKCWFjY291bnRJZBgBIAEoCRIPCgdwYXllcklkGAIgASgJIiIKEEdldFBheWVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIiMKEUdldFBheWVyc1Jlc3BvbnNlEg4KBnBheWVycxgBIAMoCSI5ChJHZXRBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJIicKE0dldEFjY291bnRzUmVzcG9uc2USEAoIYWNjb3VudHMYASADKAkiOQoSR2V0U2VydmljZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSInChNHZXRTZXJ2aWNlc1Jlc3BvbnNlEhAKCHNlcnZpY2VzGAEgAygJIjgKEUdldFJlZ2lvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgtjb3N0R3JvdXBJZBgCIAEoCSIlChJHZXRSZWdpb25zUmVzcG9uc2USDwoHcmVnaW9ucxgBIAMoCSI1Cg5HZXRUYWdzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkiPgoPR2V0VGFnc1Jlc3BvbnNlEisKB3RhZ0RhdGEYASADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhIiAKD0xpc3RGZWVzUmVxdWVzdBINCgVtb250aBgBIAEoCSLtAgoKRmVlRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRINCgVtb250aBgFIAEoCRIQCghsaW5lVHlwZRgGIAEoCRIPCgdmZWVUeXBlGAcgASgJEhMKC3Byb2R1Y3RDb2RlGAggASgJEhMKC2Rlc2NyaXB0aW9uGAkgASgJEg8KB3N0YXJ0ZWQYCiABKAkSFAoMdGltZUludGVydmFsGAsgASgJEhMKC3Byb2R1Y3ROYW1lGAwgASgJEhAKCGN1cnJlbmN5GA0gASgJEhMKC3NwbGl0U3RhdHVzGA4gASgJEhMKC2lzQWxsb2NhdGVkGA8gASgIEhEKCWlzQXBwbGllZBgQIAEoCBIVCg11bmJsZW5kZWRDb3N0GBEgASgBEhEKCXNvdXJjZUZlZRgSIAEoCRISCgpsYXN0VXBkYXRlGBMgASgJIiIKEVJlc3RvcmVGZWVSZXF1ZXN0Eg0KBWZlZUlkGAEgASgJIlEKFkdldENvc3RHcm91cEZlZVJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnRUaW1lGAIgASgJEg8KB2VuZFRpbWUYAyABKAkiZgoHRmVlSXRlbRIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSDwoHcHJvZHVjdBgDIAEoCRIPCgdhY2NvdW50GAQgASgJEgwKBHR5cGUYBSABKAkSDAoEY29zdBgGIAEoASJJCglBbGxvY2F0b3ISDAoEdHlwZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIPCgdmb3JtdWxhGAMgASgJEg4KBm1vbnRocxgEIAEoAyJoCghDcml0ZXJpYRIwCgNhbmQYASADKAsyIy5ibHVlYXBpLmNvdmVyLnYxLkNyaXRlcmlhLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiogIKFENvc3RBbGxvY2F0b3JEZXRhaWxzEgoKAmlkGAEgASgJEhAKCGNhdGVnb3J5GAIgASgJEhIKCmV4cGlyYXRpb24YAyABKAMSEgoKc3RhcnRNb250aBgEIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgFIAEoCRIxCghjcml0ZXJpYRgGIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYByADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchISCgpjcmVhdGVUaW1lGAggASgJEhIKCnVwZGF0ZVRpbWUYCSABKAkSDAoEbmFtZRgKIAEoCRITCgtkZXNjcmlwdGlvbhgLIAEoCSL6AQoUQ29zdEFsbG9jYXRvclJlcXVlc3QSCgoCaWQYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSEgoKZXhwaXJhdGlvbhgDIAEoAxISCgpzdGFydE1vbnRoGAQgASgJEhYKDmRlZmF1bHRBY2NvdW50GAUgASgJEjEKCGNyaXRlcmlhGAYgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zEi4KCWFsbG9jYXRvchgHIAMoCzIbLmJsdWVhcGkuY292ZXIudjEuQWxsb2NhdG9yEgwKBG5hbWUYCCABKAkSEwoLZGVzY3JpcHRpb24YCSABKAkiFwoVTGlzdEFsbG9jYXRvcnNSZXF1ZXN0IvABChZDcmVhdGVBbGxvY2F0b3JSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJEhIKCmV4cGlyYXRpb24YAiABKAMSEgoKc3RhcnRNb250aBgDIAEoCRIWCg5kZWZhdWx0QWNjb3VudBgEIAEoCRIxCghjcml0ZXJpYRgFIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLkNvbWJpbmF0aW9ucxIuCglhbGxvY2F0b3IYBiADKAsyGy5ibHVlYXBpLmNvdmVyLnYxLkFsbG9jYXRvchIMCgRuYW1lGAcgASgJEhMKC2Rlc2NyaXB0aW9uGAggASgJIjIKHkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSKxAQofR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJYCglhdHRyaWJ1dGUYASADKAsyRS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25BdHRyaWJ1dGVzUmVzcG9uc2UuQWxsb2NhdGlvbkF0dHJpYnV0ZRo0ChNBbGxvY2F0aW9uQXR0cmlidXRlEgwKBHR5cGUYASABKAkSDwoHc2VydmljZRgCIAMoCSI+ChtHZXRBbGxvY2F0aW9uU291cmNlc1JlcXVlc3QSDAoEdHlwZRgBIAEoCRIRCglhY2NvdW50SWQYAiABKAki6wEKHEdldEFsbG9jYXRpb25Tb3VyY2VzUmVzcG9uc2USUAoGc291cmNlGAEgAygLMkAuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uU291cmNlc1Jlc3BvbnNlLkFsbG9jYXRpb25Tb3VyY2VzEisKB3RhZ0RhdGEYAiADKAsyGi5ibHVlYXBpLmFwaS5jb3Zlci5UYWdEYXRhGkwKEUFsbG9jYXRpb25Tb3VyY2VzEhMKC2FjY291bnROYW1lGAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJY29zdEdyb3VwGAMgASgJIiQKFkRlbGV0ZUFsbG9jYXRvclJlcXVlc3QSCgoCaWQYASABKAkiRwocUHJveHlDcmVhdGVDb21wbGV0aW9uUmVxdWVzdBInCgZwYXJhbXMYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ii0KHVByb3h5Q3JlYXRlQ29tcGxldGlvblJlc3BvbnNlEgwKBGxpbmUYASABKAki1AQKE0FjY291bnRVc2FnZURldGFpbHMSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEZGF0ZRgFIAEoCRITCgtwcm9kdWN0Q29kZRgGIAEoCRITCgtzZXJ2aWNlQ29kZRgHIAEoCRIOCgZyZWdpb24YCCABKAkSDAoEem9uZRgJIAEoCRIRCgl1c2FnZVR5cGUYCiABKAkSFAoMaW5zdGFuY2VUeXBlGAsgASgJEhEKCW9wZXJhdGlvbhgMIAEoCRIRCglpbnZvaWNlSWQYDSABKAkSEwoLZGVzY3JpcHRpb24YDiABKAkSEgoKcmVzb3VyY2VJZBgPIAEoCRIMCgR0YWdzGBAgASgJEhYKDmNvc3RDYXRlZ29yaWVzGBEgASgJEhMKC3VzYWdlQW1vdW50GBIgASgBEhkKEXRydWVVbmJsZW5kZWRDb3N0GBMgASgBEhUKDXVuYmxlbmRlZENvc3QYFCABKAESFQoNZWZmZWN0aXZlQ29zdBgVIAEoARIVCg1hbW9ydGl6ZWRDb3N0GBYgASgBEhoKEnB1YmxpY09uRGVtYW5kQ29zdBgXIAEoARIbChN1bnVzZWRBbW9ydGl6ZWRDb3N0GBggASgBEhIKCmxhc3RVcGRhdGUYGSABKAkSEwoLc3BsaXRTdGF0dXMYGiABKAkSEwoLaXNBbGxvY2F0ZWQYGyABKAgSEQoJaXNBcHBsaWVkGBwgASgIEg4KBnNvdXJjZRgdIAEoCSI9ChdMaXN0QWNjb3VudFVzYWdlUmVxdWVzdBIRCglzdGFydERhdGUYASABKAkSDwoHZW5kRGF0ZRgCIAEoCSIyChpSZXN0b3JlQWNjb3VudFVzYWdlUmVxdWVzdBIUCgxhbGxvY2F0aW9uSWQYASABKAkiIwoVUmVzdG9yZVNhdmluZ3NSZXF1ZXN0EgoKAmlkGAEgASgJIroCCg5TYXZpbmdzRGV0YWlscxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHYWNjb3VudBgEIAEoCRINCgVtb250aBgFIAEoCRIMCgR0eXBlGAYgASgJEgsKA2FybhgHIAEoCRITCgtwcm9kdWN0Q29kZRgIIAEoCRISCgpvZmZlckNsYXNzGAkgASgJEhAKCG9uZGVtYW5kGAogASgBEhUKDWVmZmVjdGl2ZUNvc3QYCyABKAESDwoHc2F2aW5ncxgMIAEoARITCgtzcGxpdFN0YXR1cxgNIAEoCRITCgtpc0FsbG9jYXRlZBgOIAEoCBIRCglpc0FwcGxpZWQYDyABKAgSDgoGc291cmNlGBAgASgJEhIKCmxhc3RVcGRhdGUYESABKAkiagodR2V0Q29zdEdyb3VwQWxsb2NhdGlvblJlcXVlc3QSEAoIY2F0ZWdvcnkYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEQoJc3RhcnREYXRlGAMgASgJEg8KB2VuZERhdGUYBCABKAkigAEKDkFsbG9jYXRpb25JdGVtEg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdwcm9kdWN0GAMgASgJEg8KB2FjY291bnQYBCABKAkSDAoEdHlwZRgFIAEoCRIMCgRjb3N0GAYgASgBEhEKCWNvc3RHcm91cBgHIAEoCSJfChdQcm9jZXNzQXV0aDBVc2VyUmVxdWVzdBIOCgZzb3VyY2UYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRINCgVlbWFpbBgDIAEoCRIRCglzdWJ1c2VySWQYBCABKAkiMAoYUHJvY2Vzc0F1dGgwVXNlclJlc3BvbnNlEhQKDGlzQXV0aG9yaXplZBgBIAEoCCKVAgoKRGF0YUFjY2VzcxIOCgZ0YXJnZXQYASABKAkSDQoFb3JnSWQYAiABKAkSMQoKZ2NwT3B0aW9ucxgDIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAQgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBSABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zEhMKC2FjY291bnRUeXBlGAYgASgJEhIKCmxhc3RVcGRhdGUYByABKAkSEgoKY3JlYXRlVGltZRgIIAEoCRIOCgZ2ZW5kb3IYCSABKAki7QEKGVJlZ2lzdGVyRGF0YUFjY2Vzc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg4KBnRhcmdldBgCIAEoCRITCgthY2NvdW50VHlwZRgDIAEoCRIxCgpnY3BPcHRpb25zGAQgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuR2NwT3B0aW9ucxI1CgxhenVyZU9wdGlvbnMYBSABKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZU9wdGlvbnMSMQoKYXdzT3B0aW9ucxgGIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkF3c09wdGlvbnMi6wEKF1VwZGF0ZURhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSMQoKZ2NwT3B0aW9ucxgDIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkdjcE9wdGlvbnMSNQoMYXp1cmVPcHRpb25zGAQgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQXp1cmVPcHRpb25zEjEKCmF3c09wdGlvbnMYBSABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NPcHRpb25zEhMKC2FjY291bnRUeXBlGAYgASgJIhcKFUxpc3REYXRhQWNjZXNzUmVxdWVzdCIhCh9MaXN0VW5yZWdpc3RlcmVkQWNjb3VudHNSZXF1ZXN0InEKIExpc3RVbnJlZ2lzdGVyZWRBY2NvdW50c1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj4KEXVucmVnaXN0ZXJlZEFjY3RzGAIgAygLMiMuYmx1ZWFwaS5jb3Zlci52MS5VbnJlZ2lzdGVyZWRBY2N0cyJUChFVbnJlZ2lzdGVyZWRBY2N0cxIKCgJpZBgBIAEoCRIPCgdwYXllcklkGAIgASgJEg4KBnN0YXR1cxgDIAEoCRISCgpsYXN0VXBkYXRlGAQgASgJInwKFUJpbGxpbmdBY2NvdW50UmVxdWVzdBIRCgliaWxsaW5nSWQYASABKAkSEQoJZGF0YXNldElkGAIgASgJEhUKDWRhdGFzZXRSZWdpb24YAyABKAkSEQoJcHJvamVjdElkGAQgASgJEhMKC2JpbGxpbmdOYW1lGAUgASgJIlQKHUdldEFuZERlbGV0ZURhdGFBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEwoLYWNjb3VudFR5cGUYAyABKAkiYQoiQWRkUGFydG5lckNlbnRlckNyZWRlbnRpYWxzUmVxdWVzdBIRCglhY2NvdW50SWQYASABKAkSFQoNYXBwbGljYXRpb25JZBgCIAEoCRIRCglzZWNyZXRLZXkYAyABKAkiJQoUQWRkTXBuU2V0dGluZ1JlcXVlc3QSDQoFbXBuSWQYASABKAki1gEKHEdldENvc3RHcm91cEF0dHJpYnV0ZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhUKDWF0dHJpYnV0ZVR5cGUYAiABKAkSEwoLY29zdEdyb3VwSWQYAyABKAkSPQoUZXhpc3RpbmdDb21iaW5hdGlvbnMYBCADKAsyHy5ibHVlYXBpLmFwaS5jb3Zlci5Db21iaW5hdGlvbnMSOwoSY3VycmVudENvbWJpbmF0aW9uGAUgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuQ29tYmluYXRpb25zIncKHUdldENvc3RHcm91cEF0dHJpYnV0ZVJlc3BvbnNlEikKBnJlc3VsdBgBIAMoCzIZLmJsdWVhcGkuYXBpLmNvdmVyLlJlc3VsdBIrCgd0YWdEYXRhGAIgAygLMhouYmx1ZWFwaS5hcGkuY292ZXIuVGFnRGF0YSImChRHZXRDYXRlZ29yaWVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiRgoVR2V0Q2F0ZWdvcmllc1Jlc3BvbnNlEi0KCGNhdGVnb3J5GAEgAygLMhsuYmx1ZWFwaS5hcGkuY292ZXIuQ2F0ZWdvcnkiEgoQR2V0QWxlcnRzUmVxdWVzdCJEChFHZXRBbGVydHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEihgEKEkNyZWF0ZUFsZXJ0UmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2ZpeGVkQW1vdW50GAIgASgCEhIKCnBlcmNlbnRhZ2UYAyABKAISEwoLZ3JhbnVsYXJpdHkYBCABKAkSEgoKY29zdEdyb3VwcxgFIAMoCRIQCghjaGFubmVscxgGIAMoCSJGChNDcmVhdGVBbGVydFJlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIkChZHZXRBbGVydERldGFpbHNSZXF1ZXN0EgoKAmlkGAEgASgJIkoKF0dldEFsZXJ0RGV0YWlsc1Jlc3BvbnNlEi8KCWFsZXJ0RGF0YRgBIAEoCzIcLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0RGF0YSIgChJEZWxldGVBbGVydFJlcXVlc3QSCgoCaWQYASABKAkiIQoTRGVsZXRlQWxlcnRSZXNwb25zZRIKCgJpZBgBIAEoCSKZAQoZVXBkYXRlQWxlcnREZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2ZpeGVkQW1vdW50GAMgASgCEhIKCnBlcmNlbnRhZ2UYBCABKAISEwoLZ3JhbnVsYXJpdHkYBSABKAkSEgoKY29zdEdyb3VwcxgGIAMoCRIQCghjaGFubmVscxgHIAMoCSJNChpVcGRhdGVBbGVydERldGFpbHNSZXNwb25zZRIvCglhbGVydERhdGEYASABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydERhdGEiIgoSR2V0Q2hhbm5lbHNSZXF1ZXN0EgwKBHR5cGUYASABKAkiSgoTR2V0Q2hhbm5lbHNSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIkYKFENyZWF0ZUNoYW5uZWxSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRISCgp3ZWJob29rVXJsGAMgASgJIkwKFUNyZWF0ZUNoYW5uZWxSZXNwb25zZRIzCgtjaGFubmVsRGF0YRgBIAEoCzIeLmJsdWVhcGkuYXBpLmNvdmVyLkNoYW5uZWxEYXRhIiYKGEdldENoYW5uZWxEZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCSJQChlHZXRDaGFubmVsRGV0YWlsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEiIgoURGVsZXRlQ2hhbm5lbFJlcXVlc3QSCgoCaWQYASABKAkiIwoVRGVsZXRlQ2hhbm5lbFJlc3BvbnNlEgoKAmlkGAEgASgJIlkKG1VwZGF0ZUNoYW5uZWxEZXRhaWxzUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSEgoKd2ViaG9va1VybBgEIAEoCSJTChxVcGRhdGVDaGFubmVsRGV0YWlsc1Jlc3BvbnNlEjMKC2NoYW5uZWxEYXRhGAEgASgLMh4uYmx1ZWFwaS5hcGkuY292ZXIuQ2hhbm5lbERhdGEizwEKIUdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIvCglhd3NJbnB1dHMYAiABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Bd3NJbnB1dHMSMwoLYXp1cmVJbnB1dHMYAyABKAsyHi5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZUlucHV0cxIvCglnY3BJbnB1dHMYBCABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5HY3BJbnB1dHMiiQIKIkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVzcG9uc2USSQoSYXdzUmVjb21tZW5kYXRpb25zGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuQXdzRGlzY291bnRSZWNvbW1lbmRhdGlvbnMSTQoUYXp1cmVSZWNvbW1lbmRhdGlvbnMYAiABKAsyLy5ibHVlYXBpLmFwaS5jb3Zlci5BenVyZURpc2NvdW50UmVjb21tZW5kYXRpb25zEkkKEmdjcFJlY29tbWVuZGF0aW9ucxgDIAEoCzItLmJsdWVhcGkuYXBpLmNvdmVyLkdjcERpc2NvdW50UmVjb21tZW5kYXRpb25zIlcKHEdldEFub21hbHlpbkNvc3RHcm91cFJlcXVlc3QSEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAki4QEKC0Fub21hbHlEYXRhEg8KB2FjY291bnQYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSDgoGdmVuZG9yGAMgASgJEg8KB3Byb2R1Y3QYBCABKAkSDAoEZGF0ZRgFIAEoCRIRCgl0b3RhbENvc3QYBiABKAISEQoJaXNBbm9tYWx5GAcgASgIEhIKCmxvd2VyTGltaXQYCCABKAISEgoKdXBwZXJMaW1pdBgJIAEoAhITCgthbm9tYWx5Q29zdBgKIAEoAhIaChJhbm9tYWx5UHJvYmFiaWxpdHkYCyABKAIihQEKJENyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBITCgtmcmVxdWVuY2llcxgBIAMoAxISCgpjb3N0R3JvdXBzGAIgAygJEhQKDGFsZXJ0RW5hYmxlZBgDIAEoCBIQCghjaGFubmVscxgEIAMoCRIMCgRuYW1lGAUgASgJIjYKKE1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QSCgoCaWQYASABKAkikQEKJFVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxhbGVydEVuYWJsZWQYAiABKAgSEAoIY2hhbm5lbHMYAyADKAkSEwoLZnJlcXVlbmNpZXMYBCADKAMSEgoKY29zdEdyb3VwcxgFIAMoCRIMCgRuYW1lGAYgASgJIukBChdEaXNjb3VudEV4cGlyeUFsZXJ0RGF0YRIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIUCgxhbGVydEVuYWJsZWQYAyABKAgSEwoLZnJlcXVlbmNpZXMYBCADKAMSNQoKY29zdEdyb3VwcxgFIAMoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFsZXJ0Q29zdEdyb3VwEg8KB2RldGFpbHMYBiABKAkSMgoIY2hhbm5lbHMYByABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENoYW5uZWxzEgwKBG5hbWUYCCABKAkiJAoiTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdCKFAQoZQ3JlYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBIMCgRuYW1lGAEgASgJEhQKDGFsZXJ0RW5hYmxlZBgCIAEoCBIRCglmcmVxdWVuY3kYAyABKAkSEwoLY29zdEdyb3VwSWQYBCABKAkSHAoUbm90aWZpY2F0aW9uQ2hhbm5lbHMYBSADKAkiKwodTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QSCgoCaWQYASABKAki0AEKEEFub21hbHlBbGVydERhdGESCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSDAoEbmFtZRgDIAEoCRIUCgxhbGVydEVuYWJsZWQYBCABKAgSEQoJZnJlcXVlbmN5GAUgASgJEjYKC2Nvc3RHcm91cElkGAYgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuQWxlcnRDb3N0R3JvdXASMgoIY2hhbm5lbHMYByABKAsyIC5ibHVlYXBpLmFwaS5jb3Zlci5BbGVydENoYW5uZWxzIhkKF0xpc3RBbm9tYWx5QWxlcnRSZXF1ZXN0IpEBChlVcGRhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFAoMYWxlcnRFbmFibGVkGAMgASgIEhwKFG5vdGlmaWNhdGlvbkNoYW5uZWxzGAQgAygJEhEKCWZyZXF1ZW5jeRgFIAEoCRITCgtjb3N0R3JvdXBJZBgGIAEoCSKJAQoWUmVnaXN0ZXJOZXdVc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIMCgRuYW1lGAMgASgJEg8KB2NvbXBhbnkYBCABKAkSDAoEcm9sZRgFIAEoCRIOCgZhbW91bnQYBiABKAkSEQoJaW50ZW50aW9uGAcgASgJIi8KF1JlZ2lzdGVyTmV3VXNlclJlc3BvbnNlEhQKDGlzQXV0aG9yaXplZBgBIAEoCCImChVHZXRVc2VyUHJvZmlsZVJlcXVlc3QSDQoFZW1haWwYASABKAkizgEKFkdldFVzZXJQcm9maWxlUmVzcG9uc2USGQoRaGFzQ3JlYXRlZFByb2ZpbGUYASABKAgSDAoEbmFtZRgCIAEoCRIMCgRyb2xlGAMgASgJEg0KBXVzYWdlGAQgASgJEhEKCWludGVudGlvbhgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRIUCgxlbWFpbEFkZHJlc3MYByABKAkSEgoKbGlua1NvdXJjZRgIIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgJIAEoCCKuAQoYVXBkYXRlVXNlclByb2ZpbGVSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEgwKBG5hbWUYAiABKAkSDAoEcm9sZRgDIAEoCRINCgV1c2FnZRgEIAEoCRIRCglpbnRlbnRpb24YBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSEgoKbGlua1NvdXJjZRgHIAEoCRIcChRoYXNTdWJzY3JpYmVkVXBkYXRlcxgIIAEoCCKvAQoZVXBkYXRlVXNlclByb2ZpbGVSZXNwb25zZRINCgVlbWFpbBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHJvbGUYAyABKAkSDQoFdXNhZ2UYBCABKAkSEQoJaW50ZW50aW9uGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhIKCmxpbmtTb3VyY2UYByABKAkSHAoUaGFzU3Vic2NyaWJlZFVwZGF0ZXMYCCABKAgiSAoSTGlzdEJ1ZGdldHNSZXF1ZXN0Eh8KF2luY2x1ZGVTcGVuZEFuZEZvcmVjYXN0GAEgASgIEhEKCWNvc3RHcm91cBgCIAEoCSJIChNMaXN0QnVkZ2V0c1Jlc3BvbnNlEjEKCmJ1ZGdldERhdGEYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5CdWRnZXREYXRhIh4KEEdldEJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkiRgoRR2V0QnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSAoTQ3JlYXRlQnVkZ2V0UmVxdWVzdBIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSJJChRDcmVhdGVCdWRnZXRSZXNwb25zZRIxCgpidWRnZXREYXRhGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuQnVkZ2V0RGF0YSIhChNEZWxldGVCdWRnZXRSZXF1ZXN0EgoKAmlkGAEgASgJIiIKFERlbGV0ZUJ1ZGdldFJlc3BvbnNlEgoKAmlkGAEgASgJIlQKE1VwZGF0ZUJ1ZGdldFJlcXVlc3QSCgoCaWQYASABKAkSMQoKYnVkZ2V0RGF0YRgCIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSQoUVXBkYXRlQnVkZ2V0UmVzcG9uc2USMQoKYnVkZ2V0RGF0YRgBIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLkJ1ZGdldERhdGEiSwouUmVzb2x2ZUFXU01hcmtldHBsYWNlVG9rZW5Gb3JPbmJvYXJkaW5nUmVxdWVzdBIZChFyZWdpc3RyYXRpb25Ub2tlbhgBIAEoCSJhCi9SZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmdSZXNwb25zZRIaChJpc0FsbG93ZWRUb09uYm9hcmQYASABKAgSEgoKY3VzdG9tZXJJZBgCIAEoCSImCiRHZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1JlcXVlc3Qi8gEKJUdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVzcG9uc2USFgoOZGF0ZVJlZ2lzdGVyZWQYASABKAkSGgoSc3Vic2NyaXB0aW9uRXhwaXJ5GAIgASgJEhAKCGRheXNMZWZ0GAMgASgFEhQKDGlzU3Vic2NyaWJlZBgEIAEoCBIRCglpc0V4cGlyZWQYBSABKAgSDAoEcGxhbhgGIAEoCRIOCgZhbW91bnQYByABKAkSFQoNcGF5bWVudE9wdGlvbhgIIAEoCRIVCg1wYXltZW50TWV0aG9kGAkgASgJEg4KBmNyZWRpdBgKIAEoASKzAQoWQ3JlYXRlUHJvZmlsaW5nUmVxdWVzdBIMCgRuYW1lGAEgASgJEgwKBHJvbGUYAiABKAkSDQoFdXNhZ2UYAyABKAkSEQoJaW50ZW50aW9uGAQgASgJEhMKC2NvbXBhbnlOYW1lGAUgASgJEhQKDGVtYWlsQWRkcmVzcxgGIAEoCRISCgpsaW5rU291cmNlGAcgASgJEhwKFGhhc1N1YnNjcmliZWRVcGRhdGVzGAggASgIIhkKF0NyZWF0ZVByb2ZpbGluZ1Jlc3BvbnNlIjkKG0FkZEluZm90b01hcmtldHBsYWNlUmVxdWVzdBIaChJjdXN0b21lcklkZW50aWZpZXIYASABKAkiHgocQWRkSW5mb3RvTWFya2V0cGxhY2VSZXNwb25zZSJ4ChdHZXRSZXBvcnRTdW1tYXJ5UmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRISCgpyZXBvcnRUeXBlGAQgASgJEhAKCGN1cnJlbmN5GAUgASgJIq4CChhHZXRSZXBvcnRTdW1tYXJ5UmVzcG9uc2USEwoLY29zdEdyb3VwSWQYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSPQoQZXhlY3V0aXZlU3VtbWFyeRgEIAEoCzIjLmJsdWVhcGkuYXBpLmNvdmVyLkV4ZWN1dGl2ZVN1bW1hcnkSXwohb3B0aW1pemF0aW9uUmVjb21tZW5kYXRpb25TdW1tYXJ5GAUgASgLMjQuYmx1ZWFwaS5hcGkuY292ZXIuT3B0aW1pemF0aW9uUmVjb21tZW5kYXRpb25TdW1tYXJ5EjkKDnNhdmluZ3NTdW1tYXJ5GAYgASgLMiEuYmx1ZWFwaS5hcGkuY292ZXIuU2F2aW5nc1N1bW1hcnkiqgIKGUxpc3RSZWNvbW1lbmRhdGlvblJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJEg4KBnZlbmRvchgEIAEoCRIOCgZzb3VyY2UYBSABKAkSGgoSb3B0aW1pemF0aW9uU3RhdHVzGAcgASgJEgwKBHR5cGUYCCABKAkSDgoGc3BUeXBlGAkgASgJEhEKCXJhdGVNb2RlbBgKIAEoCRIVCg1wYXltZW50T3B0aW9uGAsgASgJEgwKBHRlcm0YDCABKAkSDwoHc2VydmljZRgNIAEoCRIVCg1vZmZlcmluZ0NsYXNzGA4gASgJEhAKCGN1cnJlbmN5GA8gASgJItUCChtMaXN0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJElAKDHJhdGVTZXR0aW5ncxgEIAEoCzI6LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0LlJhdGVTZXR0aW5ncxIQCghjdXJyZW5jeRgFIAEoCRqOAQoMUmF0ZVNldHRpbmdzEg4KBnNwVHlwZRgBIAEoCRIRCglyYXRlTW9kZWwYAiABKAkSFQoNcGF5bWVudE9wdGlvbhgDIAEoCRIMCgR0ZXJtGAQgASgJEg8KB3NlcnZpY2UYBSABKAkSFQoNb2ZmZXJpbmdDbGFzcxgGIAEoCRIOCgZ2ZW5kb3IYByABKAki2gYKGkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlEhgKEHJlY29tbWVuZGF0aW9uSWQYASABKAkSFgoOcmVjb21tZW5kYXRpb24YAiABKAkSDwoHc2VydmljZRgDIAEoCRIeChZlc3RpbWF0ZWRNb250aGx5U2F2aW5nGAQgASgBEhwKFGVzdGltYXRlZE1vbnRobHlDb3N0GAUgASgBEg8KB3Njb3JpbmcYBiABKAkSDgoGdmVuZG9yGAcgASgJEhAKCGNhdGVnb3J5GAggASgJEhoKEm9wdGltaXphdGlvblN0YXR1cxgJIAEoCRIUCgxlcnJvck1lc3NhZ2UYCiABKAkSEQoJYWNjb3VudElkGAsgASgJEhMKC2FjY291bnROYW1lGAwgASgJEhQKDGluc3RhbmNlTmFtZRgNIAEoCRISCgppbnN0YW5jZUlkGA4gASgJEhQKDGluc3RhbmNlVHlwZRgPIAEoCRIOCgZyZWdpb24YECABKAkSEgoKY29tbWl0bWVudBgRIAEoARIOCgZzcFR5cGUYEiABKAkSGAoQbnVtYmVyVG9QdXJjaGFzZRgTIAEoAxIOCgZyaVR5cGUYFCABKAkSDAoEdHlwZRgVIAEoCRIOCgZzb3VyY2UYFiABKAkSFwoPZGF0ZVJlY29tbWVuZGVkGBcgASgJEhsKE3JlY29tbWVuZGF0aW9uR3JvdXAYGCABKAkSFQoNbGFzdFVwZGF0ZWRBdBgZIAEoCRJTCg5wdXJjaGFzZU9wdGlvbhgaIAEoCzI7LmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uUmVzcG9uc2UuUHVyY2hhc2VPcHRpb24azwEKDlB1cmNoYXNlT3B0aW9uEg4KBnNwVHlwZRgBIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAIgASgJEhIKCmNvbW1pdG1lbnQYAyABKAESGAoQbnVtYmVyVG9QdXJjaGFzZRgEIAEoAxIVCg1wYXltZW50T3B0aW9uGAUgASgJEgwKBHRlcm0YBiABKAkSGQoRY3VycmVudEdlbmVyYXRpb24YByABKAgSEwoLc2VydmljZVR5cGUYCCABKAkSEwoLdXBmcm9udENvc3QYCSABKAEiUQoYR2V0UmVjb21tZW5kYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhMKC2Nvc3RHcm91cElkGAIgASgJEhQKDHBlcmlvZE9wdGlvbhgDIAEoCSJeChlHZXRSZWNvbW1lbmRhdGlvblJlc3BvbnNlEkEKEnJlY29tbWVuZGF0aW9uRGF0YRgBIAEoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkFXU1JlY29tbWVuZGF0aW9ucyJEChpFeGVjdXRlT3B0aW1pemF0aW9uUmVxdWVzdBIYChByZWNvbW1lbmRhdGlvbklkGAEgASgJEgwKBHR5cGUYAiABKAkilAMKG0V4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZRJMCglhd3NPcHRpb24YASABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5BV1NPcHRpb25IABJMCglnY3BPcHRpb24YAiABKAsyNy5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZS5HQ1BPcHRpb25IABJWCg5henVyZUNzcE9wdGlvbhgDIAEoCzI8LmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlc3BvbnNlLkF6dXJlQ1NQT3B0aW9uSAAaWAoJQVdTT3B0aW9uEhoKEmFwcHJvdmVUZW1wbGF0ZVVybBgBIAEoCRIYChByZWNvbW1lbmRhdGlvbklkGAIgASgJEhUKDWN1cnJlbnRTdGF0dXMYAyABKAkaCwoJR0NQT3B0aW9uGhAKDkF6dXJlQ1NQT3B0aW9uQggKBlZlbmRvciIjChVNYXJrQXNFeGVjdXRlZFJlcXVlc3QSCgoCaWQYASADKAkiGAoWTWFya0FzRXhlY3V0ZWRSZXNwb25zZSIvCiFVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlcXVlc3QSCgoCaWQYASADKAkiJAoiVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXNwb25zZSKnAQoaT3B0aW1pemF0aW9uSGlzdG9yeVJlcXVlc3QSEwoLY29zdGdyb3VwSWQYASABKAkSFgoOZGF0ZVJhbmdlU3RhcnQYAiABKAkSFAoMZGF0ZVJhbmdlRW5kGAMgASgJEg4KBnZlbmRvchgEIAEoCRIOCgZzb3VyY2UYBSABKAkSFAoMcGVyaW9kT3B0aW9uGAYgASgJEhAKCGN1cnJlbmN5GAcgASgJInYKG09wdGltaXphdGlvbkhpc3RvcnlSZXNwb25zZRJXCh1leGVjdXRlZFJlY29tbWVuZGF0aW9uRGV0YWlscxgCIAMoCzIwLmJsdWVhcGkuYXBpLmNvdmVyLkV4ZWN1dGVkUmVjb21tZW5kYXRpb25EZXRhaWxzImAKIVNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIPCgdhbm9tYWx5GAIgASgIEhUKDXZpc3VhbEJ1aWxkZXIYAyABKAgidAoiU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRI5Cg5ldmVudEluZGljYXRvchgCIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkV2ZW50SW5kaWNhdG9yInsKIVNldENvc3RHcm91cEFub21hbHlPcHRpb25zUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCgl0aHJlc2hvbGQYAiABKAISFAoMaXNQZXJjZW50YWdlGAMgASgIEhgKEHBhc3REYXRhSW5Nb250aHMYBCABKAMidAoiU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXNwb25zZRITCgtjb3N0R3JvdXBJZBgBIAEoCRI5Cg5hbm9tYWx5T3B0aW9ucxgCIAEoCzIhLmJsdWVhcGkuYXBpLmNvdmVyLkFub21hbHlPcHRpb25zIi8KGFNldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBITCgtmaXNjYWxNb250aBgBIAEoCSIwChlTZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlEhMKC2Zpc2NhbE1vbnRoGAEgASgJIhoKGEdldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdCJIChlHZXRPcmdGaXNjYWxNb250aFJlc3BvbnNlEhMKC2Zpc2NhbE1vbnRoGAEgASgJEhYKDmRhdGVSZWdpc3RlcmVkGAIgASgJIlsKG1RyYW5zZmVyT3JnYW5pemF0aW9uUmVxdWVzdBIOCgZ0YXJnZXQYASABKAkSDgoGcmVnaW9uGAIgASgJEg0KBXBheWVyGAMgASgJEg0KBW9yZ0lkGAQgASgJIi4KHFRyYW5zZmVyT3JnYW5pemF0aW9uUmVzcG9uc2USDgoGdGFyZ2V0GAEgASgJIkUKIFVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXF1ZXN0EiEKGXVzZU5ld0Nvc3RHcm91cENyZWF0aW9uVUkYASABKAgiUgohVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlc3BvbnNlEi0KCHVzZXJEYXRhGAEgASgLMhsuYmx1ZWFwaS5hcGkuY292ZXIuVXNlckRhdGEiFgoUTGlzdFVuaXRUeXBlc1JlcXVlc3QiTgoVTGlzdFVuaXRUeXBlc1Jlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAMoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSK2AQoVQ3JlYXRlVW5pdFR5cGVSZXF1ZXN0EhAKCHVuaXROYW1lGAEgASgJEi4KCXVuaXRJdGVtcxgCIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRJdGVtEkYKD3NoYXJlZFJlc291cmNlcxgDIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uEhMKC2Rlc2NyaXB0aW9uGAQgASgJIk8KFkNyZWF0ZVVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIiAKEkdldFVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCSJMChNHZXRVbml0VHlwZVJlc3BvbnNlEjUKDHVuaXRDb3N0RGF0YRgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSLCAQoVVXBkYXRlVW5pdFR5cGVSZXF1ZXN0EgoKAmlkGAEgASgJEhAKCHVuaXROYW1lGAIgASgJEi4KCXVuaXRJdGVtcxgDIAMoCzIbLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRJdGVtEkYKD3NoYXJlZFJlc291cmNlcxgEIAMoCzItLmJsdWVhcGkuYXBpLmNvdmVyLlNoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9uEhMKC2Rlc2NyaXB0aW9uGAUgASgJIk8KFlVwZGF0ZVVuaXRUeXBlUmVzcG9uc2USNQoMdW5pdENvc3REYXRhGAEgASgLMh8uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdENvc3REYXRhIiMKFURlbGV0ZVVuaXRUeXBlUmVxdWVzdBIKCgJpZBgBIAEoCSIkChZEZWxldGVVbml0VHlwZVJlc3BvbnNlEgoKAmlkGAEgASgJIk8KEU1lcmdlVW5pdHNSZXF1ZXN0EhMKC3VuaXRDb3N0SWRzGAEgAygJEhAKCHVuaXROYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIk0KEk1lcmdlVW5pdHNSZXNwb25zZRI3Cg5tZXJnZWRVbml0Q29zdBgBIAEoCzIfLmJsdWVhcGkuYXBpLmNvdmVyLlVuaXRDb3N0RGF0YSIbChlMaXN0U3VnZ2VzdGVkVW5pdHNSZXF1ZXN0IlYKGkxpc3RTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlEjgKDnN1Z2dlc3RlZFVuaXRzGAEgAygLMiAuYmx1ZWFwaS5hcGkuY292ZXIuU3VnZ2VzdGVkVW5pdCJyChpNZXJnZVN1Z2dlc3RlZFVuaXRzUmVxdWVzdBIYChBzdWdnZXN0ZWRVbml0SWRzGAEgAygJEhMKC3VuaXRJdGVtSWRzGAIgAygJEhAKCHVuaXROYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJIl0KG01lcmdlU3VnZ2VzdGVkVW5pdHNSZXNwb25zZRI+ChRtZXJnZWRTdWdnZXN0ZWRVbml0cxgBIAEoCzIgLmJsdWVhcGkuYXBpLmNvdmVyLlN1Z2dlc3RlZFVuaXQiOgoeQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXF1ZXN0EhgKEHN1Z2dlc3RlZFVuaXRJZHMYASADKAkiNgofQ3JlYXRlVW5pdEZyb21TdWdnZXN0ZWRSZXNwb25zZRITCgt1bml0Q29zdElkcxgBIAMoCSIcChpMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCJlChtMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgAygLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24i0wIKHENyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QSGgoSc2hhcmVkUmVzb3VyY2VOYW1lGAEgASgJEk0KG3NoYXJlZFJlc291cmNlc0NvbWJpbmF0aW9ucxgCIAEoCzIoLmJsdWVhcGkuYXBpLmNvdmVyLlJlc291cmNlc0NvbWJpbmF0aW9ucxJWCgxkaXN0cmlidXRpb24YAyADKAsyQC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QuRGlzdHJpYnV0aW9uRW50cnkSEQoJYWxsb2NhdGVkGAQgASgBEhMKC3VuYWxsb2NhdGVkGAUgASgBEhMKC2Rlc2NyaXB0aW9uGAYgASgJGjMKEURpc3RyaWJ1dGlvbkVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiZwodQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2USRgoPc2hhcmVkUmVzb3VyY2VzGAEgASgLMi0uYmx1ZWFwaS5hcGkuY292ZXIuU2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb24iJwoZR2V0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCSJkChpHZXRTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiLfAgocVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCRIaChJzaGFyZWRSZXNvdXJjZU5hbWUYAiABKAkSTQobc2hhcmVkUmVzb3VyY2VzQ29tYmluYXRpb25zGAMgASgLMiguYmx1ZWFwaS5hcGkuY292ZXIuUmVzb3VyY2VzQ29tYmluYXRpb25zElYKDGRpc3RyaWJ1dGlvbhgEIAMoCzJALmJsdWVhcGkuY292ZXIudjEuVXBkYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5EaXN0cmlidXRpb25FbnRyeRIRCglhbGxvY2F0ZWQYBSABKAESEwoLdW5hbGxvY2F0ZWQYBiABKAESEwoLZGVzY3JpcHRpb24YByABKAkaMwoRRGlzdHJpYnV0aW9uRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJnCh1VcGRhdGVTaGFyZWRSZXNvdXJjZXNSZXNwb25zZRJGCg9zaGFyZWRSZXNvdXJjZXMYASABKAsyLS5ibHVlYXBpLmFwaS5jb3Zlci5TaGFyZWRSZXNvdXJjZXNDb21iaW5hdGlvbiIqChxEZWxldGVTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJIisKHURlbGV0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlEgoKAmlkGAEgASgJIlcKFkxpc3RVbml0TWV0cmljc1JlcXVlc3QSGQoRYWdncmVnYXRpb25NZXRob2QYASABKAkSEgoKZGF0YVNvdXJjZRgCIAEoCRIOCgZzdGF0dXMYAyABKAkiTQoXTGlzdFVuaXRNZXRyaWNzUmVzcG9uc2USMgoLdW5pdE1ldHJpY3MYASADKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIrkBChdDcmVhdGVVbml0TWV0cmljUmVxdWVzdBISCgptZXRyaWNOYW1lGAEgASgJEhkKEWFnZ3JlZ2F0aW9uTWV0aG9kGAIgASgJEhIKCmRhdGFTb3VyY2UYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSEwoLY29zdGdyb3VwSWQYBSADKAkSMQoKc291cmNlSW5mbxgGIAEoCzIdLmJsdWVhcGkuYXBpLmNvdmVyLlNvdXJjZUluZm8iTQoYQ3JlYXRlVW5pdE1ldHJpY1Jlc3BvbnNlEjEKCnVuaXRNZXRyaWMYASABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Vbml0TWV0cmljIiIKFEdldFVuaXRNZXRyaWNSZXF1ZXN0EgoKAmlkGAEgASgJIkoKFUdldFVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyLFAQoXVXBkYXRlVW5pdE1ldHJpY1JlcXVlc3QSCgoCaWQYASABKAkSEgoKbWV0cmljTmFtZRgCIAEoCRIZChFhZ2dyZWdhdGlvbk1ldGhvZBgDIAEoCRISCgpkYXRhU291cmNlGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEhMKC2Nvc3Rncm91cElkGAYgAygJEjEKCnNvdXJjZUluZm8YByABKAsyHS5ibHVlYXBpLmFwaS5jb3Zlci5Tb3VyY2VJbmZvIk0KGFVwZGF0ZVVuaXRNZXRyaWNSZXNwb25zZRIxCgp1bml0TWV0cmljGAEgASgLMh0uYmx1ZWFwaS5hcGkuY292ZXIuVW5pdE1ldHJpYyIlChdEZWxldGVVbml0TWV0cmljUmVxdWVzdBIKCgJpZBgBIAEoCSImChhEZWxldGVVbml0TWV0cmljUmVzcG9uc2USCgoCaWQYASABKAkiZgoZUHJldmlld0dvb2dsZVNoZWV0UmVxdWVzdBIVCg1nb29nbGVTaGVldElkGAEgASgJEhAKCHNoZWV0VXJsGAIgASgJEhEKCXNoZWV0TmFtZRgDIAEoCRINCgVyYW5nZRgEIAEoCSJZChpQcmV2aWV3R29vZ2xlU2hlZXRSZXNwb25zZRIOCgZoZWFkZXIYASADKAkSKwoHcm93RGF0YRgCIAMoCzIaLmJsdWVhcGkuYXBpLmNvdmVyLlJvd0RhdGEiMwofQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzUmVxdWVzdBIQCghzaGVldFVybBgBIAEoCSJNCiBDb25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXNwb25zZRIVCg1nb29nbGVTaGVldElkGAEgASgJEhIKCnNoZWV0TmFtZXMYAiADKAkidgocR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVxdWVzdBIRCglhY2NvdW50SWQYASABKAkSDgoGcmVnaW9uGAIgASgJEgwKBHR5cGUYAyABKAkSEQoJbmFtZXNwYWNlGAQgASgJEhIKCm1ldHJpY05hbWUYBSABKAkivgEKHUdldENsb3Vkd2F0Y2hNZXRhZGF0YVJlc3BvbnNlEhIKCm5hbWVzcGFjZXMYASADKAkSDwoHbWV0cmljcxgCIAMoCRJNCgpkaW1lbnNpb25zGAMgAygLMjkuYmx1ZWFwaS5jb3Zlci52MS5HZXRDbG91ZHdhdGNoTWV0YWRhdGFSZXNwb25zZS5EaW1lbnNpb24aKQoJRGltZW5zaW9uEgwKBG5hbWUYASABKAkSDgoGdmFsdWVzGAIgAygJIoECChZHZXREaXNjb3VudFBsYW5SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiZwoXR2V0RGlzY291bnRQbGFuUmVzcG9uc2USDQoFb3JnSWQYASABKAkSPQoQYXdzRGlzY291bnRQbGFucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmNvdmVyLkF3c0Rpc2NvdW50UGxhbnMicwocTGlzdE5vbnBlcmZvcm1pbmdSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEAoIZnJvbURhdGUYAyABKAkSDgoGdG9EYXRlGAQgASgJEgwKBHR5cGUYBSABKAkiyQEKHUxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlElQKDW5vbnBlcmZvcm1pbmcYASADKAsyPS5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlLk5vbnBlcmZvcm1pbmcaUgoNTm9ucGVyZm9ybWluZxIMCgR0eXBlGAEgASgJEg8KB2FjY291bnQYAiABKAkSEwoLdXRpbGl6YXRpb24YAyABKAESDQoFd2FzdGUYBCABKAEidAocTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEwoLY29zdEdyb3VwSWQYAiABKAkSEAoIZnJvbURhdGUYAyABKAkSDgoGdG9EYXRlGAQgASgJEg0KBWxpbWl0GAUgASgDIvkBCh1MaXN0VW50YWdnZWRSZXNvdXJjZXNSZXNwb25zZRJcChF1bnRhZ2dlZFJlc291cmNlcxgBIAMoCzJBLmJsdWVhcGkuY292ZXIudjEuTGlzdFVudGFnZ2VkUmVzb3VyY2VzUmVzcG9uc2UuVW50YWdnZWRSZXNvdXJjZXMaegoRVW50YWdnZWRSZXNvdXJjZXMSEAoIcmVzb3VyY2UYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJY29zdEdyb3VwGAQgASgJEgwKBGNvc3QYBSABKAESDgoGdmVuZG9yGAYgASgJKj8KBlN0YXR1cxILCgdQRU5ESU5HEAASDwoLSU5fUFJPR1JFU1MQARILCgdTVUNDRVNTEAISCgoGRkFJTEVEEAMyv+QBCgVDb3ZlchJ3CgpPbmJvYXJkT3JnEiMuYmx1ZWFwaS5jb3Zlci52MS5PbmJvYXJkT3JnUmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuT25ib2FyZE9yZ1Jlc3BvbnNlIh6C0+STAhg6ASoiEy92MS9tZW1iZXJzL29uYm9hcmQSfwoMSW52aXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVNZW1iZXJSZXNwb25zZSIgiAIBgtPkkwIXOgEqIhIvdjEvbWVtYmVycy9pbnZpdGUSfgoMQWN0aXZhdGVVc2VyEiUuYmx1ZWFwaS5jb3Zlci52MS5BY3RpdmF0ZVVzZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5BY3RpdmF0ZVVzZXJSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWVtYmVycy9hY3RpdmF0ZRJ4CgxDcmVhdGVNZW1iZXISJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZU1lbWJlclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZU1lbWJlclJlc3BvbnNlIhmIAgGC0+STAhA6ASoiCy92MS9tZW1iZXJzEm8KCkdldE1lbWJlcnMSIy5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlcnNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJzUmVzcG9uc2UiFogCAYLT5JMCDRILL3YxL21lbWJlcnMSigEKEEdldE1lbWJlckRldGFpbHMSKS5ibHVlYXBpLmNvdmVyLnYxLkdldE1lbWJlckRldGFpbHNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRNZW1iZXJEZXRhaWxzUmVzcG9uc2UiH4gCAYLT5JMCFhIUL3YxL21lbWJlcnMve3VzZXJJZH0SmgEKEkdldE1lbWJlckNvc3RHcm91cBIrLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyQ29zdEdyb3VwUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0TWVtYmVyQ29zdEdyb3VwUmVzcG9uc2UiKYgCAYLT5JMCIBIeL3YxL21lbWJlcnMve3VzZXJJZH0vY29zdGdyb3VwEqcBChZVcGRhdGVNZW1iZXJQZXJtaXNzaW9uEi8uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVNZW1iZXJQZXJtaXNzaW9uUmVxdWVzdBowLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlTWVtYmVyUGVybWlzc2lvblJlc3BvbnNlIiqIAgGC0+STAiE6ASoaHC92MS9tZW1iZXJzL3t1c2VySWR9L2lzYWRtaW4ScwoOR2V0VXNlckRldGFpbHMSJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJEZXRhaWxzUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlckRldGFpbHNSZXNwb25zZSIOgtPkkwIIEgYvdjEvbWUSgwEKEFVwZGF0ZVVzZXJBdmF0YXISKS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdmF0YXJSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXZhdGFyUmVzcG9uc2UiGILT5JMCEjoBKhoNL3YxL21lL2F2YXRhchJ7Cg5VcGRhdGVVc2VySWNvbhInLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckljb25SZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VySWNvblJlc3BvbnNlIhaC0+STAhA6ASoaCy92MS9tZS9pY29uEpMBChRVcGRhdGVVc2VyQ29sb3JUaGVtZRItLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckNvbG9yVGhlbWVSZXF1ZXN0Gi4uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQ29sb3JUaGVtZVJlc3BvbnNlIhyC0+STAhY6ASoaES92MS9tZS9jb2xvcnRoZW1lEnsKDlVwZGF0ZVVzZXJOYW1lEicuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyTmFtZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJOYW1lUmVzcG9uc2UiFoLT5JMCEDoBKhoLL3YxL21lL25hbWUSfwoPVXBkYXRlVXNlckVtYWlsEiguYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyRW1haWxSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyRW1haWxSZXNwb25zZSIXgtPkkwIROgEqGgwvdjEvbWUvZW1haWwSiwEKElVwZGF0ZVVzZXJNYWluVmlldxIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck1haW5WaWV3UmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlck1haW5WaWV3UmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL21lL21haW52aWV3EogBChFSZXNldFVzZXJQYXNzd29yZBIqLmJsdWVhcGkuY292ZXIudjEuUmVzZXRVc2VyUGFzc3dvcmRSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5SZXNldFVzZXJQYXNzd29yZFJlc3BvbnNlIhqC0+STAhQ6ASoiDy92MS9tZS9wYXNzd29yZBKDAQoQVXBkYXRlVXNlckxvY2FsZRIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlckxvY2FsZVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJMb2NhbGVSZXNwb25zZSIYgtPkkwISOgEqGg0vdjEvbWUvbG9jYWxlEosBChJVcGRhdGVVc2VyQXBwVGhlbWUSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBcHBUaGVtZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBcHBUaGVtZVJlc3BvbnNlIhqC0+STAhQ6ASoaDy92MS9tZS9hcHB0aGVtZRKLAQoSVXBkYXRlVXNlclRpbWV6b25lEisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyVGltZXpvbmVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyVGltZXpvbmVSZXNwb25zZSIagtPkkwIUOgEqGg8vdjEvbWUvdGltZXpvbmUSkwEKFFVwZGF0ZVVzZXJBdHRyaWJ1dGVzEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyQXR0cmlidXRlc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJBdHRyaWJ1dGVzUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL21lL2F0dHJpYnV0ZXMSewoMRGVsZXRlTWVtYmVyEiUuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVNZW1iZXJSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVNZW1iZXJSZXNwb25zZSIcgtPkkwIWKhQvdjEvbWVtYmVycy97dXNlcklkfRKGAQoNUmVzZXRQYXNzd29yZBImLmJsdWVhcGkuY292ZXIudjEuUmVzZXRQYXNzd29yZFJlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlc2V0UGFzc3dvcmRSZXNwb25zZSIkgtPkkwIeOgEqIhkvdjEvbWVtYmVycy9yZXNldHBhc3N3b3JkEm0KCkNyZWF0ZVZpZXcSIy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVZpZXdSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVWaWV3UmVzcG9uc2UiFILT5JMCDjoBKiIJL3YxL3ZpZXdzEmQKCEdldFZpZXdzEiEuYmx1ZWFwaS5jb3Zlci52MS5HZXRWaWV3c1JlcXVlc3QaIi5ibHVlYXBpLmNvdmVyLnYxLkdldFZpZXdzUmVzcG9uc2UiEYLT5JMCCxIJL3YxL3ZpZXdzEn8KDkdldEN1cnJlbnRWaWV3EicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXJyZW50Vmlld1JlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldEN1cnJlbnRWaWV3UmVzcG9uc2UiGoLT5JMCFBISL3YxL3ZpZXdzL3t2aWV3SWR9EoYBChBHZXRGYXZvcml0ZVZpZXdzEikuYmx1ZWFwaS5jb3Zlci52MS5HZXRGYXZvcml0ZVZpZXdzUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0RmF2b3JpdGVWaWV3c1Jlc3BvbnNlIhuC0+STAhUSEy92MS92aWV3cy9mYXZvcml0ZXMSeAoLUHVibGlzaFZpZXcSJC5ibHVlYXBpLmNvdmVyLnYxLlB1Ymxpc2hWaWV3UmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuUHVibGlzaFZpZXdSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvdmlld3MvcHVibGlzaBJ9CgtBZGRGYXZvcml0ZRIkLmJsdWVhcGkuY292ZXIudjEuQWRkRmF2b3JpdGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BZGRGYXZvcml0ZVJlc3BvbnNlIiGC0+STAhs6ASoaFi92MS92aWV3cy9mYXZvcml0ZS9hZGQSiQEKDlJlbW92ZUZhdm9yaXRlEicuYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVGYXZvcml0ZVJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZUZhdm9yaXRlUmVzcG9uc2UiJILT5JMCHjoBKhoZL3YxL3ZpZXdzL2Zhdm9yaXRlL3JlbW92ZRJ2CgpVcGRhdGVWaWV3EiMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3UmVxdWVzdBokLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1Jlc3BvbnNlIh2C0+STAhc6ASoaEi92MS92aWV3cy97dmlld0lkfRKPAQoQVXBkYXRlVmlld0xheW91dBIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0xheW91dFJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdMYXlvdXRSZXNwb25zZSIkgtPkkwIeOgEqGhkvdjEvdmlld3MvbGF5b3V0L3t2aWV3SWR9EpoBChBVcGRhdGVWaWV3V2lkZ2V0EikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3V2lkZ2V0UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld1dpZGdldFJlc3BvbnNlIi+C0+STAik6ASoaJC92MS92aWV3cy9sYXlvdXQve3ZpZXdJZH0ve3dpZGdldElkfRKfAQoUVXBkYXRlVmlld0NvbG9yVGhlbWUSLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVZpZXdDb2xvclRoZW1lUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVmlld0NvbG9yVGhlbWVSZXNwb25zZSIogtPkkwIiOgEqGh0vdjEvdmlld3Mve3ZpZXdJZH0vY29sb3J0aGVtZRKXAQoSVXBkYXRlVmlld0N1cnJlbmN5EisuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q3VycmVuY3lSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVWaWV3Q3VycmVuY3lSZXNwb25zZSImgtPkkwIgOgEqGhsvdjEvdmlld3Mve3ZpZXdJZH0vY3VycmVuY3kSnAEKFFNldE9yZ1VwZGF0ZUN1cnJlbmN5Ei0uYmx1ZWFwaS5jb3Zlci52MS5TZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL29yZ2FuaXphdGlvbnMvY3VycmVuY3kSmQEKFEdldE9yZ1VwZGF0ZUN1cnJlbmN5Ei0uYmx1ZWFwaS5jb3Zlci52MS5HZXRPcmdVcGRhdGVDdXJyZW5jeVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ1VwZGF0ZUN1cnJlbmN5UmVzcG9uc2UiIoLT5JMCHBIaL3YxL29yZ2FuaXphdGlvbnMvY3VycmVuY3kSjQEKEUxpc3RFeGNoYW5nZVJhdGVzEiouYmx1ZWFwaS5jb3Zlci52MS5MaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2UiH4LT5JMCGRIXL3YxL29yZ2FuaXphdGlvbnMvcmF0ZXMScwoKRGVsZXRlVmlldxIjLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVmlld1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVZpZXdSZXNwb25zZSIagtPkkwIUKhIvdjEvdmlld3Mve3ZpZXdJZH0SnwEKE1VwZGF0ZVNpZGVNZW51U3RhdGUSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNpZGVNZW51U3RhdGVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVTaWRlTWVudVN0YXRlUmVzcG9uc2UiK4LT5JMCJToBKhogL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51c3RhdGUSogEKE0FkZFNpZGVNZW51RmF2b3JpdGUSLC5ibHVlYXBpLmNvdmVyLnYxLkFkZFNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5BZGRTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51ZmF2b3JpdGUSrQEKFlJlbW92ZVNpZGVNZW51RmF2b3JpdGUSLy5ibHVlYXBpLmNvdmVyLnYxLlJlbW92ZVNpZGVNZW51RmF2b3JpdGVSZXF1ZXN0GjAuYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVTaWRlTWVudUZhdm9yaXRlUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL3ZpZXdzL3t2aWV3SWR9L3NpZGVtZW51dW5mYXZvcml0ZRKBAQoPQ3JlYXRlQ29zdEdyb3VwEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0R3JvdXBSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDb3N0R3JvdXBSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvY29zdGdyb3VwcxJ4Cg1HZXRDb3N0R3JvdXBzEiYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBzUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3Vwc1Jlc3BvbnNlIhaC0+STAhASDi92MS9jb3N0Z3JvdXBzEngKDUdldENhdGVnb3JpZXMSJi5ibHVlYXBpLmNvdmVyLnYxLkdldENhdGVnb3JpZXNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDYXRlZ29yaWVzUmVzcG9uc2UiFoLT5JMCEBIOL3YxL2NhdGVnb3JpZXMSmAEKE0dldENvc3RHcm91cERldGFpbHMSLC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cERldGFpbHNSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBEZXRhaWxzUmVzcG9uc2UiJILT5JMCHhIcL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfRKgAQoTVXBkYXRlQ29zdEdyb3VwTmFtZRIsLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwTmFtZVJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cE5hbWVSZXNwb25zZSIsgtPkkwImOgEqGiEvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L25hbWUSvAEKGlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uEjMuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBEZXNjcmlwdGlvblJlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cERlc2NyaXB0aW9uUmVzcG9uc2UiM4LT5JMCLToBKhooL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9kZXNjcmlwdGlvbhKkAQoUVXBkYXRlQ29zdEdyb3VwSW1hZ2USLS5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cEltYWdlUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSW1hZ2VSZXNwb25zZSItgtPkkwInOgEqGiIvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2ltYWdlEqABChNVcGRhdGVDb3N0R3JvdXBJY29uEiwuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDb3N0R3JvdXBJY29uUmVxdWVzdBotLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwSWNvblJlc3BvbnNlIiyC0+STAiY6ASoaIS92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vaWNvbhK4AQoZVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZRIyLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29sb3JUaGVtZVJlcXVlc3QaMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENvbG9yVGhlbWVSZXNwb25zZSIygtPkkwIsOgEqGicvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2NvbG9ydGhlbWUSwAEKG1VwZGF0ZUNvc3RHcm91cENvbWJpbmF0aW9ucxI0LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVxdWVzdBo1LmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2UiNILT5JMCLjoBKhopL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfS9jb21iaW5hdGlvbnMSuwEKHFJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnMSNS5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVDb3N0R3JvdXBDb21iaW5hdGlvbnNSZXF1ZXN0GjYuYmx1ZWFwaS5jb3Zlci52MS5SZXNvbHZlQ29zdEdyb3VwQ29tYmluYXRpb25zUmVzcG9uc2UiLILT5JMCJhIkL3YxL2Nvc3Rncm91cHMvcmVzb2x2ZS97Y29zdEdyb3VwSWR9EqwBChVBc3NpZ25Db3N0R3JvdXBNZW1iZXISLi5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnbkNvc3RHcm91cE1lbWJlclJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnbkNvc3RHcm91cE1lbWJlclJlc3BvbnNlIjKC0+STAiw6ASoiJy92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vbWVtYmVyL2FkZBKvAQoVUmVtb3ZlQ29zdEdyb3VwTWVtYmVyEi4uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5SZW1vdmVDb3N0R3JvdXBNZW1iZXJSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L21lbWJlci9yZW1vdmUSjAEKD0RlbGV0ZUNvc3RHcm91cBIoLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEdyb3VwUmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQ29zdEdyb3VwUmVzcG9uc2UiJILT5JMCHiocL3YxL2Nvc3Rncm91cHMve2Nvc3RHcm91cElkfRKmAQobR2V0QWNjb3VudEFjY2Vzc1RlbXBsYXRlVXJsEjQuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXF1ZXN0GjUuYmx1ZWFwaS5jb3Zlci52MS5HZXRBY2NvdW50QWNjZXNzVGVtcGxhdGVVcmxSZXNwb25zZSIagtPkkwIUEhIvdjEvYXdzL2FjY3RhY2Nlc3MSigEKEUxpc3RBY2NvdW50QWNjZXNzEiouYmx1ZWFwaS5jb3Zlci52MS5MaXN0QWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiJoLT5JMCIDoBKiIbL3YxL2F3cy9hY2N0YWNjZXNzL2FsbDpyZWFkMAESgwEKEEdldEFjY291bnRBY2Nlc3MSKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRBY2Nlc3NSZXF1ZXN0Gh8uYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50QWNjZXNzIiOC0+STAh0SGy92MS9hd3MvYWNjdGFjY2Vzcy97dGFyZ2V0fRJ8Cg1HZXREYXRhQWNjZXNzEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBocLmJsdWVhcGkuY292ZXIudjEuRGF0YUFjY2VzcyIcgtPkkwIWEhQvdjEvYWNjb3VudC97dGFyZ2V0fRJ5ChBEZWxldGVEYXRhQWNjZXNzEi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRBbmREZWxldGVEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIcgtPkkwIWKhQvdjEvYWNjb3VudC97dGFyZ2V0fRKDAQoTQ3JlYXRlQWNjb3VudEFjY2VzcxIsLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlQWNjb3VudEFjY2Vzc1JlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiHYLT5JMCFzoBKiISL3YxL2F3cy9hY2N0YWNjZXNzEpwBChtDcmVhdGVBY2NvdW50QWNjZXNzU3RhY2tzZXQSNC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFjY291bnRBY2Nlc3NTdGFja3NldFJlcXVlc3QaHy5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRBY2Nlc3MiJoLT5JMCIDoBKiIbL3YxL2F3cy9hY2N0YWNjZXNzL3N0YWNrc2V0EooBChZDcmVhdGVBY2NvdW50QWNjZXNzQ3VyEiwuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBY2NvdW50QWNjZXNzUmVxdWVzdBofLmJsdWVhcGkuY292ZXIudjEuQWNjb3VudEFjY2VzcyIhgtPkkwIbOgEqIhYvdjEvYXdzL2FjY3RhY2Nlc3MvY3VyEnsKE1VwZGF0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIjgtPkkwIdGhsvdjEvYXdzL2FjY3RhY2Nlc3Mve3RhcmdldH0SkwEKE0RlbGV0ZUFjY291bnRBY2Nlc3MSLC5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFjY291bnRBY2Nlc3NSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBY2NvdW50QWNjZXNzUmVzcG9uc2UiH4LT5JMCGSoXL3YxL2FjY3RhY2Nlc3Mve3RhcmdldH0SdAoPUmVnaXN0ZXJBY2NvdW50EiguYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3RlckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih+C0+STAhk6ASoiFC92MS97dmVuZG9yfS9hY2NvdW50EnEKElJlZ2lzdGVyRGF0YUFjY2VzcxIrLmJsdWVhcGkuY292ZXIudjEuUmVnaXN0ZXJEYXRhQWNjZXNzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIWgtPkkwIQOgEqIgsvdjEvYWNjb3VudBJwChFBZGRCaWxsaW5nQWNjb3VudBInLmJsdWVhcGkuY292ZXIudjEuQmlsbGluZ0FjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhqC0+STAhQ6ASoiDy92MS9iaWxsaW5nYWNjdBJ3Cg5MaXN0RGF0YUFjY2VzcxInLmJsdWVhcGkuY292ZXIudjEuTGlzdERhdGFBY2Nlc3NSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5EYXRhQWNjZXNzIhyC0+STAhYiFC92MS9hY2NvdW50L2FsbDpyZWFkMAESqAEKGExpc3RVbnJlZ2lzdGVyZWRBY2NvdW50cxIxLmJsdWVhcGkuY292ZXIudjEuTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuY292ZXIudjEuTGlzdFVucmVnaXN0ZXJlZEFjY291bnRzUmVzcG9uc2UiJYLT5JMCHyIdL3YxL2FjY291bnQvdW5yZWdpc3RlcmVkOnJlYWQSdgoQVXBkYXRlRGF0YUFjY2VzcxIpLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlRGF0YUFjY2Vzc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGToBKhoUL3YxL2FjY291bnQve3RhcmdldH0SawoKTGlzdEFzc2V0cxIjLmJsdWVhcGkuY292ZXIudjEuTGlzdEFzc2V0c1JlcXVlc3QaGi5ibHVlYXBpLmNvdmVyLnYxLlJlc291cmNlIhqC0+STAhQ6ASoiDy92MS9hc3NldHM6cmVhZDABEpMBChBHZXRBc3NldHNTdW1tYXJ5EikuYmx1ZWFwaS5jb3Zlci52MS5HZXRBc3NldHNTdW1tYXJ5UmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuR2V0QXNzZXRzU3VtbWFyeVJlc3BvbnNlIiiC0+STAiISIC92MS9hc3NldHMvc3VtbWFyeS97Y29zdEdyb3VwSWR9EnIKDEdldENvc3RVc2FnZRIlLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdFVzYWdlUmVxdWVzdBoaLmJsdWVhcGkuY292ZXIudjEuQ29zdEl0ZW0iHYLT5JMCFzoBKiISL3YxL2Nvc3R1c2FnZTpyZWFkMAESwgEKHEdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb24SNS5ibHVlYXBpLmNvdmVyLnYxLkdldFJpZ2h0U2l6aW5nUmVjb21tZW5kYXRpb25SZXF1ZXN0GjYuYmx1ZWFwaS5jb3Zlci52MS5HZXRSaWdodFNpemluZ1JlY29tbWVuZGF0aW9uUmVzcG9uc2UiM4LT5JMCLRIrL3YxL3JpZ2h0c2l6aW5ncmVjb21tZW5kYXRpb24ve2Nvc3RHcm91cElkfRKYAQoSTW9kaWZ5UmVzb3VyY2VUeXBlEisuYmx1ZWFwaS5jb3Zlci52MS5Nb2RpZnlSZXNvdXJjZVR5cGVSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5Nb2RpZnlSZXNvdXJjZVR5cGVSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEve3ZlbmRvcn0vcmVzb3VyY2UvbW9kaWZ5EpgBChFUZXJtaW5hdGVSZXNvdXJjZRIqLmJsdWVhcGkuY292ZXIudjEuVGVybWluYXRlUmVzb3VyY2VSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5UZXJtaW5hdGVSZXNvdXJjZVJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS97dmVuZG9yfS9yZXNvdXJjZS90ZXJtaW5hdGUSjQEKEFVwbG9hZENoYXJnZUNvZGUSKS5ibHVlYXBpLmNvdmVyLnYxLlVwbG9hZENoYXJnZUNvZGVSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5VcGxvYWRDaGFyZ2VDb2RlUmVzcG9uc2UiIILT5JMCGjoBKiIVL3YxL2NoYXJnZWNvZGUvdXBsb2FkKAESegoLQXNzaWduUGF5ZXISJC5ibHVlYXBpLmNvdmVyLnYxLkFzc2lnblBheWVyUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuQXNzaWduUGF5ZXJSZXNwb25zZSIegtPkkwIYOgEqIhMvdjEve3ZlbmRvcn0vcGF5ZXJzEnEKCUdldFBheWVycxIiLmJsdWVhcGkuY292ZXIudjEuR2V0UGF5ZXJzUmVxdWVzdBojLmJsdWVhcGkuY292ZXIudjEuR2V0UGF5ZXJzUmVzcG9uc2UiG4LT5JMCFRITL3YxL3t2ZW5kb3J9L3BheWVycxKHAQoLR2V0QWNjb3VudHMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldEFjY291bnRzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0QWNjb3VudHNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vYWNjb3VudHMve2Nvc3RHcm91cElkfRKHAQoLR2V0U2VydmljZXMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldFNlcnZpY2VzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0U2VydmljZXNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vc2VydmljZXMve2Nvc3RHcm91cElkfRKDAQoKR2V0UmVnaW9ucxIjLmJsdWVhcGkuY292ZXIudjEuR2V0UmVnaW9uc1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkdldFJlZ2lvbnNSZXNwb25zZSIqgtPkkwIkEiIvdjEve3ZlbmRvcn0vcmVnaW9ucy97Y29zdEdyb3VwSWR9EncKB0dldFRhZ3MSIC5ibHVlYXBpLmNvdmVyLnYxLkdldFRhZ3NSZXF1ZXN0GiEuYmx1ZWFwaS5jb3Zlci52MS5HZXRUYWdzUmVzcG9uc2UiJ4LT5JMCIRIfL3YxL3t2ZW5kb3J9L3RhZ3Mve2Nvc3RHcm91cElkfRJ3CghMaXN0RmVlcxIhLmJsdWVhcGkuY292ZXIudjEuTGlzdEZlZXNSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIiiC0+STAiI6ASoiHS92MS9hbGxvY2F0aW9ucy9mZWVzL2FsbDpyZWFkMAESegoKUmVzdG9yZUZlZRIjLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZUZlZVJlcXVlc3QaHC5ibHVlYXBpLmNvdmVyLnYxLkZlZURldGFpbHMiJ4LT5JMCIToBKiIcL3YxL2FsbG9jYXRpb25zL2ZlZXMvcmVzdG9yZTABEn4KD0dldENvc3RHcm91cEZlZRIoLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEdyb3VwRmVlUmVxdWVzdBoZLmJsdWVhcGkuY292ZXIudjEuRmVlSXRlbSIkgtPkkwIeOgEqIhkvdjEvYWxsb2NhdGlvbnMvZmVlczpyZWFkMAESewoOTGlzdEFsbG9jYXRvcnMSJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBbGxvY2F0b3JzUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvckRldGFpbHMiFoLT5JMCEBIOL3YxL2FsbG9jYXRvcnMwARJ+Cg9DcmVhdGVBbGxvY2F0b3ISKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIhmC0+STAhM6ASoiDi92MS9hbGxvY2F0b3JzEqABChdHZXRBbGxvY2F0aW9uQXR0cmlidXRlcxIwLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvbkF0dHJpYnV0ZXNSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5HZXRBbGxvY2F0aW9uQXR0cmlidXRlc1Jlc3BvbnNlIiCC0+STAhoSGC92MS9hbGxvY2F0b3JzL2F0dHJpYnV0ZRKUAQoUR2V0QWxsb2NhdGlvblNvdXJjZXMSLS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsbG9jYXRpb25Tb3VyY2VzUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuR2V0QWxsb2NhdGlvblNvdXJjZXNSZXNwb25zZSIdgtPkkwIXEhUvdjEvYWxsb2NhdG9ycy9zb3VyY2USgQEKD1VwZGF0ZUFsbG9jYXRvchImLmJsdWVhcGkuY292ZXIudjEuQ29zdEFsbG9jYXRvclJlcXVlc3QaJi5ibHVlYXBpLmNvdmVyLnYxLkNvc3RBbGxvY2F0b3JEZXRhaWxzIh6C0+STAhg6ASoaEy92MS9hbGxvY2F0b3JzL3tpZH0ScAoPRGVsZXRlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGxvY2F0b3JSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhuC0+STAhUqEy92MS9hbGxvY2F0b3JzL3tpZH0SkAEKFVByb3h5Q3JlYXRlQ29tcGxldGlvbhIuLmJsdWVhcGkuY292ZXIudjEuUHJveHlDcmVhdGVDb21wbGV0aW9uUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuUHJveHlDcmVhdGVDb21wbGV0aW9uUmVzcG9uc2UiFILT5JMCDjoBKiIJL3YxL3gvcGNjMAESigEKFFNpbXVsYXRlRmVlQWxsb2NhdG9yEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GhwuYmx1ZWFwaS5jb3Zlci52MS5GZWVEZXRhaWxzIiiC0+STAiI6ASoiHS92MS9hbGxvY2F0aW9ucy9mZWVzL3NpbXVsYXRlMAESmAEKEExpc3RBY2NvdW50VXNhZ2USKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBY2NvdW50VXNhZ2VSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIjCC0+STAio6ASoiJS92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2UvYWxsOnJlYWQwARKdAQoTUmVzdG9yZUFjY291bnRVc2FnZRIsLmJsdWVhcGkuY292ZXIudjEuUmVzdG9yZUFjY291bnRVc2FnZVJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkFjY291bnRVc2FnZURldGFpbHMiL4LT5JMCKToBKiIkL3YxL2FsbG9jYXRpb25zL2FjY291bnR1c2FnZS9yZXN0b3JlMAESmwEKFFNpbXVsYXRlQWNjb3VudFVzYWdlEiguYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGxvY2F0b3JSZXF1ZXN0GiUuYmx1ZWFwaS5jb3Zlci52MS5BY2NvdW50VXNhZ2VEZXRhaWxzIjCC0+STAio6ASoiJS92MS9hbGxvY2F0aW9ucy9hY2NvdW50dXNhZ2Uvc2ltdWxhdGUwARKBAQoLTGlzdFNhdmluZ3MSIS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGZWVzUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiK4LT5JMCJToBKiIgL3YxL2FsbG9jYXRpb25zL3NhdmluZ3MvYWxsOnJlYWQwARKJAQoOUmVzdG9yZVNhdmluZ3MSJy5ibHVlYXBpLmNvdmVyLnYxLlJlc3RvcmVTYXZpbmdzUmVxdWVzdBogLmJsdWVhcGkuY292ZXIudjEuU2F2aW5nc0RldGFpbHMiKoLT5JMCJDoBKiIfL3YxL2FsbG9jYXRpb25zL3NhdmluZ3MvcmVzdG9yZTABEowBCg9TaW11bGF0ZVNhdmluZ3MSKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsbG9jYXRvclJlcXVlc3QaIC5ibHVlYXBpLmNvdmVyLnYxLlNhdmluZ3NEZXRhaWxzIiuC0+STAiU6ASoiIC92MS9hbGxvY2F0aW9ucy9zYXZpbmdzL3NpbXVsYXRlMAESjgEKFkdldENvc3RHcm91cEFsbG9jYXRpb24SLy5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RHcm91cEFsbG9jYXRpb25SZXF1ZXN0GiAuYmx1ZWFwaS5jb3Zlci52MS5BbGxvY2F0aW9uSXRlbSIfgtPkkwIZOgEqIhQvdjEvYWxsb2NhdGlvbnM6cmVhZDABEocBChBQcm9jZXNzQXV0aDBVc2VyEikuYmx1ZWFwaS5jb3Zlci52MS5Qcm9jZXNzQXV0aDBVc2VyUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuUHJvY2Vzc0F1dGgwVXNlclJlc3BvbnNlIhyC0+STAhY6ASoiES92MS9tZW1iZXJzL2F1dGgwEpsBChtBZGRQYXJ0bmVyQ2VudGVyQ3JlZGVudGlhbHMSNC5ibHVlYXBpLmNvdmVyLnYxLkFkZFBhcnRuZXJDZW50ZXJDcmVkZW50aWFsc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKDoBKiIjL3YxL2F6dXJlL2NyZWRlbnRpYWxzL3BhcnRuZXJjZW50ZXISdQoNQWRkTXBuU2V0dGluZxImLmJsdWVhcGkuY292ZXIudjEuQWRkTXBuU2V0dGluZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHjoBKiIZL3YxL2F6dXJlL2NyZWRlbnRpYWxzL21wbhKTAQoVR2V0Q29zdEdyb3VwQXR0cmlidXRlEi4uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0R3JvdXBBdHRyaWJ1dGVSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvYXR0cmlidXRlcxJvCglHZXRBbGVydHMSIi5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0c1JlcXVlc3QaIy5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0c1Jlc3BvbnNlIheC0+STAhESDy92MS9hbGVydHMvY29zdDABEnYKC0NyZWF0ZUFsZXJ0EiQuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVBbGVydFJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFsZXJ0UmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL2FsZXJ0cy9jb3N0EoQBCg9HZXRBbGVydERldGFpbHMSKC5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0RGV0YWlsc1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldEFsZXJ0RGV0YWlsc1Jlc3BvbnNlIhyC0+STAhYSFC92MS9hbGVydHMvY29zdC97aWR9EngKC0RlbGV0ZUFsZXJ0EiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVBbGVydFJlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUFsZXJ0UmVzcG9uc2UiHILT5JMCFioUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SkAEKElVwZGF0ZUFsZXJ0RGV0YWlscxIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWxlcnREZXRhaWxzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQWxlcnREZXRhaWxzUmVzcG9uc2UiH4LT5JMCGToBKhoUL3YxL2FsZXJ0cy9jb3N0L3tpZH0SegoLR2V0Q2hhbm5lbHMSJC5ibHVlYXBpLmNvdmVyLnYxLkdldENoYW5uZWxzUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbHNSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvY2hhbm5lbHM6cmVhZDABEnkKDUNyZWF0ZUNoYW5uZWwSJi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNoYW5uZWxSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVDaGFubmVsUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL2NoYW5uZWxzEocBChFHZXRDaGFubmVsRGV0YWlscxIqLmJsdWVhcGkuY292ZXIudjEuR2V0Q2hhbm5lbERldGFpbHNSZXF1ZXN0GisuYmx1ZWFwaS5jb3Zlci52MS5HZXRDaGFubmVsRGV0YWlsc1Jlc3BvbnNlIhmC0+STAhMSES92MS9jaGFubmVscy97aWR9EnsKDURlbGV0ZUNoYW5uZWwSJi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZUNoYW5uZWxSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDaGFubmVsUmVzcG9uc2UiGYLT5JMCEyoRL3YxL2NoYW5uZWxzL3tpZH0SkwEKFFVwZGF0ZUNoYW5uZWxEZXRhaWxzEi0uYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVDaGFubmVsRGV0YWlsc1JlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNoYW5uZWxEZXRhaWxzUmVzcG9uc2UiHILT5JMCFjoBKhoRL3YxL2NoYW5uZWxzL3tpZH0SoAEKGkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zEjMuYmx1ZWFwaS5jb3Zlci52MS5HZXREaXNjb3VudFJlY29tbWVuZGF0aW9uc1JlcXVlc3QaNC5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UmVjb21tZW5kYXRpb25zUmVzcG9uc2UiF4LT5JMCEToBKiIML3YxL2Rpc2NvdW50EoABChVHZXRBbm9tYWx5aW5Db3N0R3JvdXASLi5ibHVlYXBpLmNvdmVyLnYxLkdldEFub21hbHlpbkNvc3RHcm91cFJlcXVlc3QaHS5ibHVlYXBpLmNvdmVyLnYxLkFub21hbHlEYXRhIhaC0+STAhA6ASoiCy92MS9hbm9tYWx5MAESlgEKHUNyZWF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJYLT5JMCHzoBKiIaL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQSmwEKHVVwZGF0ZURpc2NvdW50RXhwaXJhdGlvbkFsZXJ0EjYuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRKsAQoaR2V0RGlzY291bnRFeHBpcmF0aW9uQWxlcnQSOi5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkRpc2NvdW50RXhwaXJ5QWxlcnREYXRhIieC0+STAiESHy92MS9hbGVydHMvZXhwaXJlL2Rpc2NvdW50L3tpZH0SrQEKG0xpc3REaXNjb3VudEV4cGlyYXRpb25BbGVydBI0LmJsdWVhcGkuY292ZXIudjEuTGlzdERpc2NvdW50RXhwaXJhdGlvbkFsZXJ0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuRGlzY291bnRFeHBpcnlBbGVydERhdGEiK4LT5JMCJSIjL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQvYWxsOnJlYWQwARKcAQodRGVsZXRlRGlzY291bnRFeHBpcmF0aW9uQWxlcnQSOi5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVEaXNjb3VudEV4cGlyYXRpb25BbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJ4LT5JMCISofL3YxL2FsZXJ0cy9leHBpcmUvZGlzY291bnQve2lkfRJ4ChJDcmVhdGVBbm9tYWx5QWxlcnQSKy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFzoBKiISL3YxL2FsZXJ0cy9hbm9tYWx5En4KEkRlbGV0ZUFub21hbHlBbGVydBIvLmJsdWVhcGkuY292ZXIudjEuTWFuaXB1bGF0ZUFub21hbHlBbGVydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiH4LT5JMCGSoXL3YxL2FsZXJ0cy9hbm9tYWx5L3tpZH0SiAEKEExpc3RBbm9tYWx5QWxlcnQSKS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RBbm9tYWx5QWxlcnRSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5QWxlcnREYXRhIiOC0+STAh0iGy92MS9hbGVydHMvYW5vbWFseS9hbGw6cmVhZDABEocBCg9HZXRBbm9tYWx5QWxlcnQSLy5ibHVlYXBpLmNvdmVyLnYxLk1hbmlwdWxhdGVBbm9tYWx5QWxlcnRSZXF1ZXN0GiIuYmx1ZWFwaS5jb3Zlci52MS5Bbm9tYWx5QWxlcnREYXRhIh+C0+STAhkSFy92MS9hbGVydHMvYW5vbWFseS97aWR9En0KElVwZGF0ZUFub21hbHlBbGVydBIrLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQW5vbWFseUFsZXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcOgEqGhcvdjEvYWxlcnRzL2Fub21hbHkve2lkfRKHAQoPUmVnaXN0ZXJOZXdVc2VyEiguYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3Rlck5ld1VzZXJSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5SZWdpc3Rlck5ld1VzZXJSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvbWVtYmVycy9yZWdpc3RlchKIAQoOR2V0VXNlclByb2ZpbGUSJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVzZXJQcm9maWxlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclByb2ZpbGVSZXNwb25zZSIjgtPkkwIdEhsvdjEvbWVtYmVycy9wcm9maWxlL3tlbWFpbH0SlAEKEVVwZGF0ZVVzZXJQcm9maWxlEiouYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVc2VyUHJvZmlsZVJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJQcm9maWxlUmVzcG9uc2UiJoLT5JMCIDoBKhobL3YxL21lbWJlcnMvcHJvZmlsZS97ZW1haWx9EngKC0xpc3RCdWRnZXRzEiQuYmx1ZWFwaS5jb3Zlci52MS5MaXN0QnVkZ2V0c1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RCdWRnZXRzUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL2J1ZGdldDpyZWFkMAESbQoJR2V0QnVkZ2V0EiIuYmx1ZWFwaS5jb3Zlci52MS5HZXRCdWRnZXRSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5HZXRCdWRnZXRSZXNwb25zZSIXgtPkkwIREg8vdjEvYnVkZ2V0L3tpZH0SdAoMQ3JlYXRlQnVkZ2V0EiUuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVCdWRnZXRSZXF1ZXN0GiYuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVCdWRnZXRSZXNwb25zZSIVgtPkkwIPOgEqIgovdjEvYnVkZ2V0EnYKDERlbGV0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlQnVkZ2V0UmVzcG9uc2UiF4LT5JMCESoPL3YxL2J1ZGdldC97aWR9EnkKDFVwZGF0ZUJ1ZGdldBIlLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQnVkZ2V0UmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQnVkZ2V0UmVzcG9uc2UiGoLT5JMCFDoBKhoPL3YxL2J1ZGdldC97aWR9EtcBCidSZXNvbHZlQVdTTWFya2V0cGxhY2VUb2tlbkZvck9uYm9hcmRpbmcSQC5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1JlcXVlc3QaQS5ibHVlYXBpLmNvdmVyLnYxLlJlc29sdmVBV1NNYXJrZXRwbGFjZVRva2VuRm9yT25ib2FyZGluZ1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS9tZW1iZXJzL2F3cy9zdWJzY3JpcHRpb24SrAEKHUdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzEjYuYmx1ZWFwaS5jb3Zlci52MS5HZXRDdXN0b21lclN1YnNjcmlwdGlvblN0YXR1c1JlcXVlc3QaNy5ibHVlYXBpLmNvdmVyLnYxLkdldEN1c3RvbWVyU3Vic2NyaXB0aW9uU3RhdHVzUmVzcG9uc2UiGoLT5JMCFBISL3YxL2JpbGxpbmcvc3RhdHVzEoYBCg9DcmVhdGVQcm9maWxpbmcSKC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVByb2ZpbGluZ1JlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVByb2ZpbGluZ1Jlc3BvbnNlIh6C0+STAhg6ASoiEy92MS9tZW1iZXJzL3Byb2ZpbGUSlgEKFEFkZEluZm90b01hcmtldHBsYWNlEi0uYmx1ZWFwaS5jb3Zlci52MS5BZGRJbmZvdG9NYXJrZXRwbGFjZVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkFkZEluZm90b01hcmtldHBsYWNlUmVzcG9uc2UiH4LT5JMCGToBKiIUL3YxL21hcmtldHBsYWNlL2luZm8SnAEKEEdldFJlcG9ydFN1bW1hcnkSKS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlcG9ydFN1bW1hcnlSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5HZXRSZXBvcnRTdW1tYXJ5UmVzcG9uc2UiMYLT5JMCKxIpL3YxL3JlcG9ydHMvaW5zaWdodC9zdW1tYXJ5L3tjb3N0R3JvdXBJZH0SnAEKE0xpc3RSZWNvbW1lbmRhdGlvbnMSKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvblJlc3BvbnNlIiiC0+STAiISIC92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uMAESnwEKFUxpc3RSZWNvbW1lbmRhdGlvbnNWMhItLmJsdWVhcGkuY292ZXIudjEuTGlzdFJlY29tbWVuZGF0aW9uVjJSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5MaXN0UmVjb21tZW5kYXRpb25SZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvcmVjb21tZW5kYXRpb25zL2FsbDpyZWFkMAESmwEKEUdldFJlY29tbWVuZGF0aW9uEiouYmx1ZWFwaS5jb3Zlci52MS5HZXRSZWNvbW1lbmRhdGlvblJlcXVlc3QaKy5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uUmVzcG9uc2UiLYLT5JMCJxIlL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24ve2lkfRKcAQoTR2V0UmVjb21tZW5kYXRpb25WMhIsLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WMlJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjJSZXNwb25zZSIogtPkkwIiEiAvdjEvcmVjb21tZW5kYXRpb25zL2RldGFpbHMve2lkfRKaAQoTRXhlY3V0ZU9wdGltaXphdGlvbhIsLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZU9wdGltaXphdGlvblJlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVPcHRpbWl6YXRpb25SZXNwb25zZSImgtPkkwIgOgEqIhsvdjEvcmVjb21tZW5kYXRpb25zL2V4ZWN1dGUSnQEKEkdldEV4ZWN1dGlvblN0YXR1cxIrLmJsdWVhcGkuY292ZXIudjEuR2V0RXhlY3V0aW9uU3RhdHVzUmVxdWVzdBosLmJsdWVhcGkuY292ZXIudjEuR2V0RXhlY3V0aW9uU3RhdHVzUmVzcG9uc2UiKoLT5JMCJBIiL3YxL3JlY29tbWVuZGF0aW9ucy9leGVjdXRlL3N0YXR1czABEpkBCg5NYXJrQXNFeGVjdXRlZBInLmJsdWVhcGkuY292ZXIudjEuTWFya0FzRXhlY3V0ZWRSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5NYXJrQXNFeGVjdXRlZFJlc3BvbnNlIjSC0+STAi46ASoiKS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL2V4ZWN1dGVkErkBChpVbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvbhIzLmJsdWVhcGkuY292ZXIudjEuVW5kb0V4ZWN1dGVkUmVjb21tZW5kYXRpb25SZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5VbmRvRXhlY3V0ZWRSZWNvbW1lbmRhdGlvblJlc3BvbnNlIjCC0+STAio6ASoiJS92MS9yZWNvbW1lbmRhdGlvbnMvb3B0aW1pemF0aW9uL3VuZG8SpAEKE09wdGltaXphdGlvbkhpc3RvcnkSLC5ibHVlYXBpLmNvdmVyLnYxLk9wdGltaXphdGlvbkhpc3RvcnlSZXF1ZXN0Gi0uYmx1ZWFwaS5jb3Zlci52MS5PcHRpbWl6YXRpb25IaXN0b3J5UmVzcG9uc2UiMILT5JMCKhIoL3YxL3JlY29tbWVuZGF0aW9ucy9vcHRpbWl6YXRpb24vaGlzdG9yeRK/AQoaU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3ISMy5ibHVlYXBpLmNvdmVyLnYxLlNldENvc3RHcm91cEV2ZW50SW5kaWNhdG9yUmVxdWVzdBo0LmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwRXZlbnRJbmRpY2F0b3JSZXNwb25zZSI2gtPkkwIwOgEqIisvdjEvY29zdGdyb3Vwcy97Y29zdEdyb3VwSWR9L2V2ZW50SW5kaWNhdG9yErgBChpTZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9ucxIzLmJsdWVhcGkuY292ZXIudjEuU2V0Q29zdEdyb3VwQW5vbWFseU9wdGlvbnNSZXF1ZXN0GjQuYmx1ZWFwaS5jb3Zlci52MS5TZXRDb3N0R3JvdXBBbm9tYWx5T3B0aW9uc1Jlc3BvbnNlIi+C0+STAik6ASoiJC92MS9jb3N0Z3JvdXBzL3tjb3N0R3JvdXBJZH0vYW5vbWFseRKQAQoRU2V0T3JnRmlzY2FsTW9udGgSKi5ibHVlYXBpLmNvdmVyLnYxLlNldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuU2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZSIigtPkkwIcOgEqIhcvdjEvcmVwb3J0cy9maXNjYWxtb250aBKNAQoRR2V0T3JnRmlzY2FsTW9udGgSKi5ibHVlYXBpLmNvdmVyLnYxLkdldE9yZ0Zpc2NhbE1vbnRoUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0T3JnRmlzY2FsTW9udGhSZXNwb25zZSIfgtPkkwIZEhcvdjEvcmVwb3J0cy9maXNjYWxtb250aBKiAQoUVHJhbnNmZXJPcmdhbml6YXRpb24SLS5ibHVlYXBpLmNvdmVyLnYxLlRyYW5zZmVyT3JnYW5pemF0aW9uUmVxdWVzdBouLmJsdWVhcGkuY292ZXIudjEuVHJhbnNmZXJPcmdhbml6YXRpb25SZXNwb25zZSIrgtPkkwIlEiMvdjEvb3JnYW5pemF0aW9ucy90cmFuc2Zlci97dGFyZ2V0fRKpAQoZVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSRIyLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlQ29zdEdyb3VwQ3JlYXRpb25VSVJlcXVlc3QaMy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RHcm91cENyZWF0aW9uVUlSZXNwb25zZSIjgtPkkwIdOgEqGhgvdjEvbWUvY29zdGdyb3VwY3JlYXRpb24SdgoNTGlzdFVuaXRUeXBlcxImLmJsdWVhcGkuY292ZXIudjEuTGlzdFVuaXRUeXBlc1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbml0VHlwZXNSZXNwb25zZSIUgtPkkwIOEgwvdjEvdW5pdGNvc3QSfAoOQ3JlYXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdFR5cGVSZXNwb25zZSIXgtPkkwIROgEqIgwvdjEvdW5pdGNvc3QSdQoLR2V0VW5pdFR5cGUSJC5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRUeXBlUmVxdWVzdBolLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdFR5cGVSZXNwb25zZSIZgtPkkwITEhEvdjEvdW5pdGNvc3Qve2lkfRKBAQoOVXBkYXRlVW5pdFR5cGUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVuaXRUeXBlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdFR5cGVSZXNwb25zZSIcgtPkkwIWOgEqGhEvdjEvdW5pdGNvc3Qve2lkfRJ+Cg5EZWxldGVVbml0VHlwZRInLmJsdWVhcGkuY292ZXIudjEuRGVsZXRlVW5pdFR5cGVSZXF1ZXN0GiguYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0VHlwZVJlc3BvbnNlIhmC0+STAhMqES92MS91bml0Y29zdC97aWR9EnYKCk1lcmdlVW5pdHMSIy5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlVW5pdHNSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5NZXJnZVVuaXRzUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL3VuaXRjb3N0L21lcmdlEpEBChJMaXN0U3VnZ2VzdGVkVW5pdHMSKy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTdWdnZXN0ZWRVbml0c1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTdWdnZXN0ZWRVbml0c1Jlc3BvbnNlIiCC0+STAhoSGC92MS91bml0Y29zdC9hdXRvc3VnZ2VzdBKdAQoTTWVyZ2VTdWdnZXN0ZWRVbml0cxIsLmJsdWVhcGkuY292ZXIudjEuTWVyZ2VTdWdnZXN0ZWRVbml0c1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLk1lcmdlU3VnZ2VzdGVkVW5pdHNSZXNwb25zZSIpgtPkkwIjOgEqIh4vdjEvdW5pdGNvc3QvYXV0b3N1Z2dlc3QvbWVyZ2USqgEKF0NyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkEjAuYmx1ZWFwaS5jb3Zlci52MS5DcmVhdGVVbml0RnJvbVN1Z2dlc3RlZFJlcXVlc3QaMS5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRGcm9tU3VnZ2VzdGVkUmVzcG9uc2UiKoLT5JMCJDoBKiIfL3YxL3VuaXRjb3N0L2F1dG9zdWdnZXN0L2NyZWF0ZRKYAQoTTGlzdFNoYXJlZFJlc291cmNlcxIsLmJsdWVhcGkuY292ZXIudjEuTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkxpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSIkgtPkkwIeEhwvdjEvdW5pdGNvc3Qvc2hhcmVkcmVzb3VyY2VzEqABChRDcmVhdGVTaGFyZWRSZXNvdXJjZRIuLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlU2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3VuaXRjb3N0L3NoYXJlZHJlc291cmNlcxKZAQoRR2V0U2hhcmVkUmVzb3VyY2USKy5ibHVlYXBpLmNvdmVyLnYxLkdldFNoYXJlZFJlc291cmNlc1JlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkdldFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIimC0+STAiMSIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKlAQoUVXBkYXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIiyC0+STAiY6ASoaIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKiAQoURGVsZXRlU2hhcmVkUmVzb3VyY2USLi5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVNoYXJlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIimC0+STAiMqIS92MS91bml0Y29zdC9zaGFyZWRyZXNvdXJjZXMve2lkfRKEAQoPTGlzdFVuaXRNZXRyaWNzEiguYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdE1ldHJpY3NSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VW5pdE1ldHJpY3NSZXNwb25zZSIcgtPkkwIWEhQvdjEvdW5pdGNvc3QvbWV0cmljcxKKAQoQQ3JlYXRlVW5pdE1ldHJpYxIpLmJsdWVhcGkuY292ZXIudjEuQ3JlYXRlVW5pdE1ldHJpY1JlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZVVuaXRNZXRyaWNSZXNwb25zZSIfgtPkkwIZOgEqIhQvdjEvdW5pdGNvc3QvbWV0cmljcxKDAQoNR2V0VW5pdE1ldHJpYxImLmJsdWVhcGkuY292ZXIudjEuR2V0VW5pdE1ldHJpY1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLkdldFVuaXRNZXRyaWNSZXNwb25zZSIhgtPkkwIbEhkvdjEvdW5pdGNvc3QvbWV0cmljcy97aWR9Eo8BChBVcGRhdGVVbml0TWV0cmljEikuYmx1ZWFwaS5jb3Zlci52MS5VcGRhdGVVbml0TWV0cmljUmVxdWVzdBoqLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVW5pdE1ldHJpY1Jlc3BvbnNlIiSC0+STAh46ASoaGS92MS91bml0Y29zdC9tZXRyaWNzL3tpZH0SjAEKEERlbGV0ZVVuaXRNZXRyaWMSKS5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVuaXRNZXRyaWNSZXF1ZXN0GiouYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVbml0TWV0cmljUmVzcG9uc2UiIYLT5JMCGyoZL3YxL3VuaXRjb3N0L21ldHJpY3Mve2lkfRK2AQoYQ29uZmlybUdvb2dsZVNoZWV0QWNjZXNzEjEuYmx1ZWFwaS5jb3Zlci52MS5Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXF1ZXN0GjIuYmx1ZWFwaS5jb3Zlci52MS5Db25maXJtR29vZ2xlU2hlZXRBY2Nlc3NSZXNwb25zZSIzgtPkkwItOgEqIigvdjEvdW5pdGNvc3QvbWV0cmljcy9nb29nbGVzaGVldC9jb25maXJtEqQBChJQcmV2aWV3R29vZ2xlU2hlZXQSKy5ibHVlYXBpLmNvdmVyLnYxLlByZXZpZXdHb29nbGVTaGVldFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlByZXZpZXdHb29nbGVTaGVldFJlc3BvbnNlIjOC0+STAi06ASoiKC92MS91bml0Y29zdC9tZXRyaWNzL2dvb2dsZXNoZWV0L3ByZXZpZXcSqgEKFUdldENsb3Vkd2F0Y2hNZXRhZGF0YRIuLmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVxdWVzdBovLmJsdWVhcGkuY292ZXIudjEuR2V0Q2xvdWR3YXRjaE1ldGFkYXRhUmVzcG9uc2UiMILT5JMCKhIoL3YxL3VuaXRjb3N0L21ldHJpY3MvY2xvdWR3YXRjaC9tZXRhZGF0YRKEAQoPVmVyaWZ5QVBJQWNjZXNzEiguYmx1ZWFwaS5jb3Zlci52MS5WZXJpZnlBUElBY2Nlc3NSZXF1ZXN0GikuYmx1ZWFwaS5jb3Zlci52MS5WZXJpZnlBUElBY2Nlc3NSZXNwb25zZSIcgtPkkwIWEhQvdjEvYXBpYWNjZXNzL3ZlcmlmeRKJAQoRR2V0QUlDb3N0QW5kVXNhZ2USKi5ibHVlYXBpLmNvdmVyLnYxLkdldEFJQ29zdEFuZFVzYWdlUmVxdWVzdBorLmJsdWVhcGkuY292ZXIudjEuR2V0QUlDb3N0QW5kVXNhZ2VSZXNwb25zZSIbgtPkkwIVOgEqIhAvdjEvYWkvY29zdHVzYWdlEpcBChVHZXRDb250YWluZXJDb3N0VXNhZ2USKy5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkNvbnRhaW5lckNvc3RVc2FnZVJlc3BvbnNlIiOC0+STAh06ASoiGC92MS9jb250YWluZXJzL2Nvc3R1c2FnZRKHAQoQUG9wdWxhdGVEZW1vRGF0YRIpLmJsdWVhcGkuY292ZXIudjEuUG9wdWxhdGVEZW1vRGF0YVJlcXVlc3QaKi5ibHVlYXBpLmNvdmVyLnYxLlBvcHVsYXRlRGVtb0RhdGFSZXNwb25zZSIcgtPkkwIWOgEqIhEvdjEvZGVtby9wb3B1bGF0ZRJ7Cg1SZXNldERlbW9EYXRhEiYuYmx1ZWFwaS5jb3Zlci52MS5SZXNldERlbW9EYXRhUmVxdWVzdBonLmJsdWVhcGkuY292ZXIudjEuUmVzZXREZW1vRGF0YVJlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9kZW1vL3Jlc2V0EpkBCg9HZXREaXNjb3VudFBsYW4SKC5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UGxhblJlcXVlc3QaKS5ibHVlYXBpLmNvdmVyLnYxLkdldERpc2NvdW50UGxhblJlc3BvbnNlIjGC0+STAis6ASoiJi92MS97dmVuZG9yfS9kaXNjb3VudHBsYW4ve29yZ0lkfTpyZWFkEn8KDkdldENvc3RVc2FnZVYyEicuYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0VXNhZ2VWMlJlcXVlc3QaKC5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RVc2FnZVYyUmVzcG9uc2UiGILT5JMCEjoBKiINL3YxL2Nvc3R1c2FnZTABEqgBChVMaXN0Tm9ucGVyZm9ybWluZ1JhdGUSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkxpc3ROb25wZXJmb3JtaW5nUmF0ZVJlc3BvbnNlIi6C0+STAig6ASoiIy92MS9yZXBvcnRzL3JhdGUvbm9ucGVyZm9ybWluZzpyZWFkEqgBChVMaXN0VW50YWdnZWRSZXNvdXJjZXMSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1JlcXVlc3QaLy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RVbnRhZ2dlZFJlc291cmNlc1Jlc3BvbnNlIi6C0+STAig6ASoiIy92MS9yZXBvcnRzL3Jlc291cmNlcy91bnRhZ2dlZDpyZWFkEn8KDUxpc3RGb3JlY2FzdHMSJi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RGb3JlY2FzdHNSZXF1ZXN0GicuYmx1ZWFwaS5jb3Zlci52MS5MaXN0Rm9yZWNhc3RzUmVzcG9uc2UiHYLT5JMCFzoBKiISL3YxL2ZvcmVjYXN0czpyZWFkEokBChJDcmVhdGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLkNyZWF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIhiC0+STAhI6ASoiDS92MS9mb3JlY2FzdHMSggEKD0dldENvc3RGb3JlY2FzdBIoLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0UmVxdWVzdBopLmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0UmVzcG9uc2UiGoLT5JMCFBISL3YxL2ZvcmVjYXN0cy97aWR9Eo4BChJVcGRhdGVDb3N0Rm9yZWNhc3QSKy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RGb3JlY2FzdFJlcXVlc3QaLC5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIh2C0+STAhc6ASoaEi92MS9mb3JlY2FzdHMve2lkfRKLAQoSRGVsZXRlQ29zdEZvcmVjYXN0EisuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GiwuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVDb3N0Rm9yZWNhc3RSZXNwb25zZSIagtPkkwIUKhIvdjEvZm9yZWNhc3RzL3tpZH0SmwEKFEdldENvc3RGb3JlY2FzdHNEYXRhEi0uYmx1ZWFwaS5jb3Zlci52MS5HZXRDb3N0Rm9yZWNhc3RzRGF0YVJlcXVlc3QaLi5ibHVlYXBpLmNvdmVyLnYxLkdldENvc3RGb3JlY2FzdHNEYXRhUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL2ZvcmVjYXN0cy9kYXRhOnJlYWQwARKPAQoTR2V0UmVjb21tZW5kYXRpb25WMxIsLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1JlcXVlc3QaLS5ibHVlYXBpLmNvdmVyLnYxLkdldFJlY29tbWVuZGF0aW9uVjNSZXNwb25zZSIbgtPkkwIVEhMvdjEvcmVjb21tZW5kYXRpb25zEpwBChVMaXN0UmVjb21tZW5kYXRpb25zVjMSLi5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QaJy5ibHVlYXBpLmNvdmVyLnYxLlJlY29tbWVuZGF0aW9uU3VtbWFyeSIogtPkkwIiOgEqIh0vdjEvcmVjb21tZW5kYXRpb25zL3N1bW1hcmllczABEqUBChdFeGVjdXRlUmVjb21tZW5kYXRpb25WMxIwLmJsdWVhcGkuY292ZXIudjEuRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0GjEuYmx1ZWFwaS5jb3Zlci52MS5FeGVjdXRlUmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlIiWC0+STAh86ASoiGi92MS9yZWNvbW1lbmRhdGlvbi9leGVjdXRlEnYKC0ludml0ZVVzZXJzEiQuYmx1ZWFwaS5jb3Zlci52MS5JbnZpdGVVc2Vyc1JlcXVlc3QaJS5ibHVlYXBpLmNvdmVyLnYxLkludml0ZVVzZXJzUmVzcG9uc2UiGoLT5JMCFDoBKiIPL3YxL3VzZXIvaW52aXRlEm4KCkRlbGV0ZVVzZXISIy5ibHVlYXBpLmNvdmVyLnYxLkRlbGV0ZVVzZXJSZXF1ZXN0GiQuYmx1ZWFwaS5jb3Zlci52MS5EZWxldGVVc2VyUmVzcG9uc2UiFYLT5JMCDyoNL3YxL3VzZXIve2lkfRKCAQoOVXBkYXRlVXNlclJvbGUSJy5ibHVlYXBpLmNvdmVyLnYxLlVwZGF0ZVVzZXJSb2xlUmVxdWVzdBooLmJsdWVhcGkuY292ZXIudjEuVXBkYXRlVXNlclJvbGVSZXNwb25zZSIdgtPkkwIXOgEqGhIvdjEvdXNlci97dXNlcl9pZH0SZwoJTGlzdFVzZXJzEiIuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXF1ZXN0GiMuYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZSIRgtPkkwILEgkvdjEvdXNlcnMSgAEKDFJlaW52aXRlVXNlchIlLmJsdWVhcGkuY292ZXIudjEuUmVpbnZpdGVVc2VyUmVxdWVzdBomLmJsdWVhcGkuY292ZXIudjEuUmVpbnZpdGVVc2VyUmVzcG9uc2UiIYLT5JMCGzoBKiIWL3YxL3VzZXIve2lkfS9yZWludml0ZRJlCgdHZXRVc2VyEiAuYmx1ZWFwaS5jb3Zlci52MS5HZXRVc2VyUmVxdWVzdBohLmJsdWVhcGkuY292ZXIudjEuR2V0VXNlclJlc3BvbnNlIhWC0+STAg8SDS92MS91c2VyL3tpZH0SbQoKR2V0TXlSb2xlcxIjLmJsdWVhcGkuY292ZXIudjEuR2V0TXlSb2xlc1JlcXVlc3QaJC5ibHVlYXBpLmNvdmVyLnYxLkdldE15Um9sZXNSZXNwb25zZSIUgtPkkwIOEgwvdjEvbWUvcm9sZXMalwGSQZMBEkIoQkVUQSkgQ292ZXIgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY292ZXIaTQoSU2VydmljZSBkZWZpbml0aW9uEjdodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vY292ZXIvQksKF2Nsb3VkLmFscGhhdXMuYXBpLmNvdmVyQgpDb3ZlclByb3RvWiRnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY292ZXJiBnByb3RvMw", [file_api_cover_optimizationrecommendation, file_api_cover_recommendation_recommendation, file_api_cover_attribute, file_api_cover_user, file_api_cover_view, file_api_cover_unitcost, file_api_cover_costgroup, file_api_cover_accountaccess, file_api_cover_costforecast, file_api_cover_discountplan, file_api_cover_discountrecommendation, file_api_cover_rightsizingrecommendation, file_api_cover_alert, file_api_cover_budget, file_api_cover_insightreport, file_protos_operation, file_google_api_annotations, file_google_protobuf_empty, file_api_cover_role, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
52
+
53
+ /**
54
+ * @generated from message blueapi.cover.v1.GetMyRolesRequest
55
+ */
56
+ export type GetMyRolesRequest = Message<"blueapi.cover.v1.GetMyRolesRequest"> & {
57
+ };
58
+
59
+ /**
60
+ * Describes the message blueapi.cover.v1.GetMyRolesRequest.
61
+ * Use `create(GetMyRolesRequestSchema)` to create a new message.
62
+ */
63
+ export const GetMyRolesRequestSchema: GenMessage<GetMyRolesRequest> = /*@__PURE__*/
64
+ messageDesc(file_cover_v1_cover, 0);
65
+
66
+ /**
67
+ * @generated from message blueapi.cover.v1.GetMyRolesResponse
68
+ */
69
+ export type GetMyRolesResponse = Message<"blueapi.cover.v1.GetMyRolesResponse"> & {
70
+ /**
71
+ * @generated from field: repeated blueapi.api.cover.Role roles = 1;
72
+ */
73
+ roles: Role[];
74
+ };
75
+
76
+ /**
77
+ * Describes the message blueapi.cover.v1.GetMyRolesResponse.
78
+ * Use `create(GetMyRolesResponseSchema)` to create a new message.
79
+ */
80
+ export const GetMyRolesResponseSchema: GenMessage<GetMyRolesResponse> = /*@__PURE__*/
81
+ messageDesc(file_cover_v1_cover, 1);
50
82
 
51
83
  /**
52
84
  * @generated from message blueapi.cover.v1.GetUserRequest
@@ -63,7 +95,7 @@ export type GetUserRequest = Message<"blueapi.cover.v1.GetUserRequest"> & {
63
95
  * Use `create(GetUserRequestSchema)` to create a new message.
64
96
  */
65
97
  export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
66
- messageDesc(file_cover_v1_cover, 0);
98
+ messageDesc(file_cover_v1_cover, 2);
67
99
 
68
100
  /**
69
101
  * @generated from message blueapi.cover.v1.GetUserResponse
@@ -120,7 +152,7 @@ export type GetUserResponse = Message<"blueapi.cover.v1.GetUserResponse"> & {
120
152
  * Use `create(GetUserResponseSchema)` to create a new message.
121
153
  */
122
154
  export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
123
- messageDesc(file_cover_v1_cover, 1);
155
+ messageDesc(file_cover_v1_cover, 3);
124
156
 
125
157
  /**
126
158
  * @generated from message blueapi.cover.v1.GetUserResponse.Role
@@ -147,7 +179,7 @@ export type GetUserResponse_Role = Message<"blueapi.cover.v1.GetUserResponse.Rol
147
179
  * Use `create(GetUserResponse_RoleSchema)` to create a new message.
148
180
  */
149
181
  export const GetUserResponse_RoleSchema: GenMessage<GetUserResponse_Role> = /*@__PURE__*/
150
- messageDesc(file_cover_v1_cover, 1, 0);
182
+ messageDesc(file_cover_v1_cover, 3, 0);
151
183
 
152
184
  /**
153
185
  * @generated from message blueapi.cover.v1.GetUserResponse.Role.CostGroup
@@ -169,7 +201,7 @@ export type GetUserResponse_Role_CostGroup = Message<"blueapi.cover.v1.GetUserRe
169
201
  * Use `create(GetUserResponse_Role_CostGroupSchema)` to create a new message.
170
202
  */
171
203
  export const GetUserResponse_Role_CostGroupSchema: GenMessage<GetUserResponse_Role_CostGroup> = /*@__PURE__*/
172
- messageDesc(file_cover_v1_cover, 1, 0, 0);
204
+ messageDesc(file_cover_v1_cover, 3, 0, 0);
173
205
 
174
206
  /**
175
207
  * @generated from message blueapi.cover.v1.ReinviteUserRequest
@@ -186,7 +218,7 @@ export type ReinviteUserRequest = Message<"blueapi.cover.v1.ReinviteUserRequest"
186
218
  * Use `create(ReinviteUserRequestSchema)` to create a new message.
187
219
  */
188
220
  export const ReinviteUserRequestSchema: GenMessage<ReinviteUserRequest> = /*@__PURE__*/
189
- messageDesc(file_cover_v1_cover, 2);
221
+ messageDesc(file_cover_v1_cover, 4);
190
222
 
191
223
  /**
192
224
  * @generated from message blueapi.cover.v1.ReinviteUserResponse
@@ -199,7 +231,7 @@ export type ReinviteUserResponse = Message<"blueapi.cover.v1.ReinviteUserRespons
199
231
  * Use `create(ReinviteUserResponseSchema)` to create a new message.
200
232
  */
201
233
  export const ReinviteUserResponseSchema: GenMessage<ReinviteUserResponse> = /*@__PURE__*/
202
- messageDesc(file_cover_v1_cover, 3);
234
+ messageDesc(file_cover_v1_cover, 5);
203
235
 
204
236
  /**
205
237
  * @generated from message blueapi.cover.v1.ListUsersRequest
@@ -212,7 +244,7 @@ export type ListUsersRequest = Message<"blueapi.cover.v1.ListUsersRequest"> & {
212
244
  * Use `create(ListUsersRequestSchema)` to create a new message.
213
245
  */
214
246
  export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
215
- messageDesc(file_cover_v1_cover, 4);
247
+ messageDesc(file_cover_v1_cover, 6);
216
248
 
217
249
  /**
218
250
  * @generated from message blueapi.cover.v1.ListUsersResponse
@@ -229,7 +261,7 @@ export type ListUsersResponse = Message<"blueapi.cover.v1.ListUsersResponse"> &
229
261
  * Use `create(ListUsersResponseSchema)` to create a new message.
230
262
  */
231
263
  export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
232
- messageDesc(file_cover_v1_cover, 5);
264
+ messageDesc(file_cover_v1_cover, 7);
233
265
 
234
266
  /**
235
267
  * @generated from message blueapi.cover.v1.ListUsersResponse.UserSummary
@@ -276,7 +308,7 @@ export type ListUsersResponse_UserSummary = Message<"blueapi.cover.v1.ListUsersR
276
308
  * Use `create(ListUsersResponse_UserSummarySchema)` to create a new message.
277
309
  */
278
310
  export const ListUsersResponse_UserSummarySchema: GenMessage<ListUsersResponse_UserSummary> = /*@__PURE__*/
279
- messageDesc(file_cover_v1_cover, 5, 0);
311
+ messageDesc(file_cover_v1_cover, 7, 0);
280
312
 
281
313
  /**
282
314
  * @generated from message blueapi.cover.v1.UpdateUserRoleRequest
@@ -303,7 +335,7 @@ export type UpdateUserRoleRequest = Message<"blueapi.cover.v1.UpdateUserRoleRequ
303
335
  * Use `create(UpdateUserRoleRequestSchema)` to create a new message.
304
336
  */
305
337
  export const UpdateUserRoleRequestSchema: GenMessage<UpdateUserRoleRequest> = /*@__PURE__*/
306
- messageDesc(file_cover_v1_cover, 6);
338
+ messageDesc(file_cover_v1_cover, 8);
307
339
 
308
340
  /**
309
341
  * @generated from message blueapi.cover.v1.UpdateUserRoleResponse
@@ -316,7 +348,7 @@ export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleRes
316
348
  * Use `create(UpdateUserRoleResponseSchema)` to create a new message.
317
349
  */
318
350
  export const UpdateUserRoleResponseSchema: GenMessage<UpdateUserRoleResponse> = /*@__PURE__*/
319
- messageDesc(file_cover_v1_cover, 7);
351
+ messageDesc(file_cover_v1_cover, 9);
320
352
 
321
353
  /**
322
354
  * @generated from message blueapi.cover.v1.DeleteUserRequest
@@ -333,7 +365,7 @@ export type DeleteUserRequest = Message<"blueapi.cover.v1.DeleteUserRequest"> &
333
365
  * Use `create(DeleteUserRequestSchema)` to create a new message.
334
366
  */
335
367
  export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
336
- messageDesc(file_cover_v1_cover, 8);
368
+ messageDesc(file_cover_v1_cover, 10);
337
369
 
338
370
  /**
339
371
  * @generated from message blueapi.cover.v1.DeleteUserResponse
@@ -346,7 +378,7 @@ export type DeleteUserResponse = Message<"blueapi.cover.v1.DeleteUserResponse">
346
378
  * Use `create(DeleteUserResponseSchema)` to create a new message.
347
379
  */
348
380
  export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
349
- messageDesc(file_cover_v1_cover, 9);
381
+ messageDesc(file_cover_v1_cover, 11);
350
382
 
351
383
  /**
352
384
  * @generated from message blueapi.cover.v1.InviteUsersRequest
@@ -373,7 +405,7 @@ export type InviteUsersRequest = Message<"blueapi.cover.v1.InviteUsersRequest">
373
405
  * Use `create(InviteUsersRequestSchema)` to create a new message.
374
406
  */
375
407
  export const InviteUsersRequestSchema: GenMessage<InviteUsersRequest> = /*@__PURE__*/
376
- messageDesc(file_cover_v1_cover, 10);
408
+ messageDesc(file_cover_v1_cover, 12);
377
409
 
378
410
  /**
379
411
  * @generated from message blueapi.cover.v1.InviteUsersResponse
@@ -386,7 +418,7 @@ export type InviteUsersResponse = Message<"blueapi.cover.v1.InviteUsersResponse"
386
418
  * Use `create(InviteUsersResponseSchema)` to create a new message.
387
419
  */
388
420
  export const InviteUsersResponseSchema: GenMessage<InviteUsersResponse> = /*@__PURE__*/
389
- messageDesc(file_cover_v1_cover, 11);
421
+ messageDesc(file_cover_v1_cover, 13);
390
422
 
391
423
  /**
392
424
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
@@ -408,7 +440,7 @@ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRe
408
440
  * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
409
441
  */
410
442
  export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
411
- messageDesc(file_cover_v1_cover, 12);
443
+ messageDesc(file_cover_v1_cover, 14);
412
444
 
413
445
  /**
414
446
  * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
@@ -444,7 +476,7 @@ export enum ExecuteRecommendationV3Request_ExecuteType {
444
476
  * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
445
477
  */
446
478
  export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
447
- enumDesc(file_cover_v1_cover, 12, 0);
479
+ enumDesc(file_cover_v1_cover, 14, 0);
448
480
 
449
481
  /**
450
482
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
@@ -461,7 +493,7 @@ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteR
461
493
  * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
462
494
  */
463
495
  export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
464
- messageDesc(file_cover_v1_cover, 13);
496
+ messageDesc(file_cover_v1_cover, 15);
465
497
 
466
498
  /**
467
499
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -488,7 +520,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
488
520
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
489
521
  */
490
522
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
491
- messageDesc(file_cover_v1_cover, 14);
523
+ messageDesc(file_cover_v1_cover, 16);
492
524
 
493
525
  /**
494
526
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -595,7 +627,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
595
627
  * Use `create(RecommendationSummarySchema)` to create a new message.
596
628
  */
597
629
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
598
- messageDesc(file_cover_v1_cover, 15);
630
+ messageDesc(file_cover_v1_cover, 17);
599
631
 
600
632
  /**
601
633
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -612,7 +644,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
612
644
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
613
645
  */
614
646
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
615
- messageDesc(file_cover_v1_cover, 16);
647
+ messageDesc(file_cover_v1_cover, 18);
616
648
 
617
649
  /**
618
650
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -629,7 +661,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
629
661
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
630
662
  */
631
663
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
632
- messageDesc(file_cover_v1_cover, 17);
664
+ messageDesc(file_cover_v1_cover, 19);
633
665
 
634
666
  /**
635
667
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -746,7 +778,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
746
778
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
747
779
  */
748
780
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
749
- messageDesc(file_cover_v1_cover, 17, 0);
781
+ messageDesc(file_cover_v1_cover, 19, 0);
750
782
 
751
783
  /**
752
784
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -784,7 +816,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
784
816
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
785
817
  */
786
818
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
787
- messageDesc(file_cover_v1_cover, 18);
819
+ messageDesc(file_cover_v1_cover, 20);
788
820
 
789
821
  /**
790
822
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -810,7 +842,7 @@ export enum GetCostForecastsDataRequest_Granularity {
810
842
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
811
843
  */
812
844
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
813
- enumDesc(file_cover_v1_cover, 18, 0);
845
+ enumDesc(file_cover_v1_cover, 20, 0);
814
846
 
815
847
  /**
816
848
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -842,7 +874,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
842
874
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
843
875
  */
844
876
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
845
- messageDesc(file_cover_v1_cover, 19);
877
+ messageDesc(file_cover_v1_cover, 21);
846
878
 
847
879
  /**
848
880
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -855,7 +887,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
855
887
  * Use `create(ListForecastsRequestSchema)` to create a new message.
856
888
  */
857
889
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
858
- messageDesc(file_cover_v1_cover, 20);
890
+ messageDesc(file_cover_v1_cover, 22);
859
891
 
860
892
  /**
861
893
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -872,7 +904,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
872
904
  * Use `create(ListForecastsResponseSchema)` to create a new message.
873
905
  */
874
906
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
875
- messageDesc(file_cover_v1_cover, 21);
907
+ messageDesc(file_cover_v1_cover, 23);
876
908
 
877
909
  /**
878
910
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -926,7 +958,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
926
958
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
927
959
  */
928
960
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
929
- messageDesc(file_cover_v1_cover, 22);
961
+ messageDesc(file_cover_v1_cover, 24);
930
962
 
931
963
  /**
932
964
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -973,7 +1005,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
973
1005
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
974
1006
  */
975
1007
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
976
- messageDesc(file_cover_v1_cover, 23);
1008
+ messageDesc(file_cover_v1_cover, 25);
977
1009
 
978
1010
  /**
979
1011
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -992,7 +1024,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
992
1024
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
993
1025
  */
994
1026
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
995
- messageDesc(file_cover_v1_cover, 24);
1027
+ messageDesc(file_cover_v1_cover, 26);
996
1028
 
997
1029
  /**
998
1030
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -1054,7 +1086,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
1054
1086
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
1055
1087
  */
1056
1088
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
1057
- messageDesc(file_cover_v1_cover, 25);
1089
+ messageDesc(file_cover_v1_cover, 27);
1058
1090
 
1059
1091
  /**
1060
1092
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -1115,7 +1147,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
1115
1147
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
1116
1148
  */
1117
1149
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
1118
- messageDesc(file_cover_v1_cover, 26);
1150
+ messageDesc(file_cover_v1_cover, 28);
1119
1151
 
1120
1152
  /**
1121
1153
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -1177,7 +1209,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
1177
1209
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
1178
1210
  */
1179
1211
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
1180
- messageDesc(file_cover_v1_cover, 27);
1212
+ messageDesc(file_cover_v1_cover, 29);
1181
1213
 
1182
1214
  /**
1183
1215
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -1196,7 +1228,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
1196
1228
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
1197
1229
  */
1198
1230
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
1199
- messageDesc(file_cover_v1_cover, 28);
1231
+ messageDesc(file_cover_v1_cover, 30);
1200
1232
 
1201
1233
  /**
1202
1234
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -1213,7 +1245,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
1213
1245
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
1214
1246
  */
1215
1247
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
1216
- messageDesc(file_cover_v1_cover, 29);
1248
+ messageDesc(file_cover_v1_cover, 31);
1217
1249
 
1218
1250
  /**
1219
1251
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -1245,7 +1277,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
1245
1277
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
1246
1278
  */
1247
1279
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
1248
- messageDesc(file_cover_v1_cover, 30);
1280
+ messageDesc(file_cover_v1_cover, 32);
1249
1281
 
1250
1282
  /**
1251
1283
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -1307,7 +1339,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
1307
1339
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
1308
1340
  */
1309
1341
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
1310
- messageDesc(file_cover_v1_cover, 31);
1342
+ messageDesc(file_cover_v1_cover, 33);
1311
1343
 
1312
1344
  /**
1313
1345
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -1333,7 +1365,7 @@ export enum GetCostUsageV2Request_Granularity {
1333
1365
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
1334
1366
  */
1335
1367
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
1336
- enumDesc(file_cover_v1_cover, 31, 0);
1368
+ enumDesc(file_cover_v1_cover, 33, 0);
1337
1369
 
1338
1370
  /**
1339
1371
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -1359,7 +1391,7 @@ export enum GetCostUsageV2Request_Category {
1359
1391
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
1360
1392
  */
1361
1393
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
1362
- enumDesc(file_cover_v1_cover, 31, 1);
1394
+ enumDesc(file_cover_v1_cover, 33, 1);
1363
1395
 
1364
1396
  /**
1365
1397
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -1372,7 +1404,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
1372
1404
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
1373
1405
  */
1374
1406
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
1375
- messageDesc(file_cover_v1_cover, 32);
1407
+ messageDesc(file_cover_v1_cover, 34);
1376
1408
 
1377
1409
  /**
1378
1410
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -1385,7 +1417,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
1385
1417
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
1386
1418
  */
1387
1419
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
1388
- messageDesc(file_cover_v1_cover, 33);
1420
+ messageDesc(file_cover_v1_cover, 35);
1389
1421
 
1390
1422
  /**
1391
1423
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -1398,7 +1430,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
1398
1430
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
1399
1431
  */
1400
1432
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
1401
- messageDesc(file_cover_v1_cover, 34);
1433
+ messageDesc(file_cover_v1_cover, 36);
1402
1434
 
1403
1435
  /**
1404
1436
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1411,7 +1443,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1411
1443
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1412
1444
  */
1413
1445
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1414
- messageDesc(file_cover_v1_cover, 35);
1446
+ messageDesc(file_cover_v1_cover, 37);
1415
1447
 
1416
1448
  /**
1417
1449
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1468,7 +1500,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1468
1500
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1469
1501
  */
1470
1502
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1471
- messageDesc(file_cover_v1_cover, 36);
1503
+ messageDesc(file_cover_v1_cover, 38);
1472
1504
 
1473
1505
  /**
1474
1506
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1495,7 +1527,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1495
1527
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1496
1528
  */
1497
1529
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1498
- messageDesc(file_cover_v1_cover, 36, 0);
1530
+ messageDesc(file_cover_v1_cover, 38, 0);
1499
1531
 
1500
1532
  /**
1501
1533
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1521,7 +1553,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1521
1553
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1522
1554
  */
1523
1555
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1524
- enumDesc(file_cover_v1_cover, 36, 0, 0);
1556
+ enumDesc(file_cover_v1_cover, 38, 0, 0);
1525
1557
 
1526
1558
  /**
1527
1559
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1547,7 +1579,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1547
1579
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1548
1580
  */
1549
1581
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1550
- enumDesc(file_cover_v1_cover, 36, 0);
1582
+ enumDesc(file_cover_v1_cover, 38, 0);
1551
1583
 
1552
1584
  /**
1553
1585
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1583,7 +1615,7 @@ export enum ContainerCostUsageRequest_MetricType {
1583
1615
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1584
1616
  */
1585
1617
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1586
- enumDesc(file_cover_v1_cover, 36, 1);
1618
+ enumDesc(file_cover_v1_cover, 38, 1);
1587
1619
 
1588
1620
  /**
1589
1621
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1609,7 +1641,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1609
1641
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1610
1642
  */
1611
1643
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1612
- enumDesc(file_cover_v1_cover, 36, 2);
1644
+ enumDesc(file_cover_v1_cover, 38, 2);
1613
1645
 
1614
1646
  /**
1615
1647
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1641,7 +1673,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1641
1673
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1642
1674
  */
1643
1675
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1644
- messageDesc(file_cover_v1_cover, 37);
1676
+ messageDesc(file_cover_v1_cover, 39);
1645
1677
 
1646
1678
  /**
1647
1679
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1668,7 +1700,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1668
1700
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1669
1701
  */
1670
1702
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1671
- messageDesc(file_cover_v1_cover, 37, 0);
1703
+ messageDesc(file_cover_v1_cover, 39, 0);
1672
1704
 
1673
1705
  /**
1674
1706
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1710,7 +1742,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1710
1742
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1711
1743
  */
1712
1744
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1713
- messageDesc(file_cover_v1_cover, 37, 1);
1745
+ messageDesc(file_cover_v1_cover, 39, 1);
1714
1746
 
1715
1747
  /**
1716
1748
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1744,7 +1776,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1744
1776
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1745
1777
  */
1746
1778
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1747
- messageDesc(file_cover_v1_cover, 37, 2);
1779
+ messageDesc(file_cover_v1_cover, 39, 2);
1748
1780
 
1749
1781
  /**
1750
1782
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1771,7 +1803,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1771
1803
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1772
1804
  */
1773
1805
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1774
- messageDesc(file_cover_v1_cover, 37, 3);
1806
+ messageDesc(file_cover_v1_cover, 39, 3);
1775
1807
 
1776
1808
  /**
1777
1809
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1803,7 +1835,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1803
1835
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1804
1836
  */
1805
1837
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1806
- messageDesc(file_cover_v1_cover, 37, 4);
1838
+ messageDesc(file_cover_v1_cover, 39, 4);
1807
1839
 
1808
1840
  /**
1809
1841
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1825,7 +1857,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1825
1857
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1826
1858
  */
1827
1859
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1828
- messageDesc(file_cover_v1_cover, 37, 5);
1860
+ messageDesc(file_cover_v1_cover, 39, 5);
1829
1861
 
1830
1862
  /**
1831
1863
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1872,7 +1904,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1872
1904
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1873
1905
  */
1874
1906
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1875
- messageDesc(file_cover_v1_cover, 38);
1907
+ messageDesc(file_cover_v1_cover, 40);
1876
1908
 
1877
1909
  /**
1878
1910
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1907,7 +1939,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1907
1939
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1908
1940
  */
1909
1941
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1910
- messageDesc(file_cover_v1_cover, 38, 0);
1942
+ messageDesc(file_cover_v1_cover, 40, 0);
1911
1943
 
1912
1944
  /**
1913
1945
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1933,7 +1965,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1933
1965
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1934
1966
  */
1935
1967
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1936
- enumDesc(file_cover_v1_cover, 38, 0, 0);
1968
+ enumDesc(file_cover_v1_cover, 40, 0, 0);
1937
1969
 
1938
1970
  /**
1939
1971
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1959,7 +1991,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1959
1991
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1960
1992
  */
1961
1993
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1962
- enumDesc(file_cover_v1_cover, 38, 0);
1994
+ enumDesc(file_cover_v1_cover, 40, 0);
1963
1995
 
1964
1996
  /**
1965
1997
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1976,7 +2008,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1976
2008
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1977
2009
  */
1978
2010
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1979
- messageDesc(file_cover_v1_cover, 39);
2011
+ messageDesc(file_cover_v1_cover, 41);
1980
2012
 
1981
2013
  /**
1982
2014
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1998,7 +2030,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1998
2030
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1999
2031
  */
2000
2032
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
2001
- messageDesc(file_cover_v1_cover, 39, 0);
2033
+ messageDesc(file_cover_v1_cover, 41, 0);
2002
2034
 
2003
2035
  /**
2004
2036
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -2020,7 +2052,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
2020
2052
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
2021
2053
  */
2022
2054
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
2023
- messageDesc(file_cover_v1_cover, 39, 1);
2055
+ messageDesc(file_cover_v1_cover, 41, 1);
2024
2056
 
2025
2057
  /**
2026
2058
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -2047,7 +2079,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
2047
2079
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
2048
2080
  */
2049
2081
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
2050
- messageDesc(file_cover_v1_cover, 39, 2);
2082
+ messageDesc(file_cover_v1_cover, 41, 2);
2051
2083
 
2052
2084
  /**
2053
2085
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -2069,7 +2101,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
2069
2101
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
2070
2102
  */
2071
2103
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
2072
- messageDesc(file_cover_v1_cover, 39, 3);
2104
+ messageDesc(file_cover_v1_cover, 41, 3);
2073
2105
 
2074
2106
  /**
2075
2107
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -2082,7 +2114,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
2082
2114
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
2083
2115
  */
2084
2116
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
2085
- messageDesc(file_cover_v1_cover, 40);
2117
+ messageDesc(file_cover_v1_cover, 42);
2086
2118
 
2087
2119
  /**
2088
2120
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -2109,7 +2141,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
2109
2141
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
2110
2142
  */
2111
2143
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
2112
- messageDesc(file_cover_v1_cover, 41);
2144
+ messageDesc(file_cover_v1_cover, 43);
2113
2145
 
2114
2146
  /**
2115
2147
  * Only supports gcp for now.
@@ -2137,7 +2169,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
2137
2169
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
2138
2170
  */
2139
2171
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
2140
- messageDesc(file_cover_v1_cover, 42);
2172
+ messageDesc(file_cover_v1_cover, 44);
2141
2173
 
2142
2174
  /**
2143
2175
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -2154,7 +2186,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
2154
2186
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
2155
2187
  */
2156
2188
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
2157
- messageDesc(file_cover_v1_cover, 43);
2189
+ messageDesc(file_cover_v1_cover, 45);
2158
2190
 
2159
2191
  /**
2160
2192
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -2186,7 +2218,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
2186
2218
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
2187
2219
  */
2188
2220
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
2189
- messageDesc(file_cover_v1_cover, 44);
2221
+ messageDesc(file_cover_v1_cover, 46);
2190
2222
 
2191
2223
  /**
2192
2224
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -2203,7 +2235,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
2203
2235
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
2204
2236
  */
2205
2237
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
2206
- messageDesc(file_cover_v1_cover, 45);
2238
+ messageDesc(file_cover_v1_cover, 47);
2207
2239
 
2208
2240
  /**
2209
2241
  * Request message for OnboardOrg
@@ -2237,7 +2269,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
2237
2269
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
2238
2270
  */
2239
2271
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
2240
- messageDesc(file_cover_v1_cover, 46);
2272
+ messageDesc(file_cover_v1_cover, 48);
2241
2273
 
2242
2274
  /**
2243
2275
  * Response message for OnboardOrg
@@ -2256,7 +2288,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
2256
2288
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
2257
2289
  */
2258
2290
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
2259
- messageDesc(file_cover_v1_cover, 47);
2291
+ messageDesc(file_cover_v1_cover, 49);
2260
2292
 
2261
2293
  /**
2262
2294
  * Request message for InviteMember
@@ -2285,7 +2317,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
2285
2317
  * Use `create(InviteMemberRequestSchema)` to create a new message.
2286
2318
  */
2287
2319
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
2288
- messageDesc(file_cover_v1_cover, 48);
2320
+ messageDesc(file_cover_v1_cover, 50);
2289
2321
 
2290
2322
  /**
2291
2323
  * Response message for InviteMember
@@ -2304,7 +2336,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
2304
2336
  * Use `create(InviteMemberResponseSchema)` to create a new message.
2305
2337
  */
2306
2338
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
2307
- messageDesc(file_cover_v1_cover, 49);
2339
+ messageDesc(file_cover_v1_cover, 51);
2308
2340
 
2309
2341
  /**
2310
2342
  * Request message for ActivateUser
@@ -2362,7 +2394,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
2362
2394
  * Use `create(ActivateUserRequestSchema)` to create a new message.
2363
2395
  */
2364
2396
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
2365
- messageDesc(file_cover_v1_cover, 50);
2397
+ messageDesc(file_cover_v1_cover, 52);
2366
2398
 
2367
2399
  /**
2368
2400
  * Response message for ActivateUser
@@ -2381,7 +2413,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
2381
2413
  * Use `create(ActivateUserResponseSchema)` to create a new message.
2382
2414
  */
2383
2415
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
2384
- messageDesc(file_cover_v1_cover, 51);
2416
+ messageDesc(file_cover_v1_cover, 53);
2385
2417
 
2386
2418
  /**
2387
2419
  * Request message for CreateMember
@@ -2415,7 +2447,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2415
2447
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2416
2448
  */
2417
2449
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2418
- messageDesc(file_cover_v1_cover, 52);
2450
+ messageDesc(file_cover_v1_cover, 54);
2419
2451
 
2420
2452
  /**
2421
2453
  * Response message for CreateMember
@@ -2434,7 +2466,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2434
2466
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2435
2467
  */
2436
2468
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2437
- messageDesc(file_cover_v1_cover, 53);
2469
+ messageDesc(file_cover_v1_cover, 55);
2438
2470
 
2439
2471
  /**
2440
2472
  * Request message for GetMembers
@@ -2449,7 +2481,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2449
2481
  * Use `create(GetMembersRequestSchema)` to create a new message.
2450
2482
  */
2451
2483
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2452
- messageDesc(file_cover_v1_cover, 54);
2484
+ messageDesc(file_cover_v1_cover, 56);
2453
2485
 
2454
2486
  /**
2455
2487
  * Response message for GetMembers
@@ -2468,7 +2500,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2468
2500
  * Use `create(GetMembersResponseSchema)` to create a new message.
2469
2501
  */
2470
2502
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2471
- messageDesc(file_cover_v1_cover, 55);
2503
+ messageDesc(file_cover_v1_cover, 57);
2472
2504
 
2473
2505
  /**
2474
2506
  * Request message for GetMemberDetails
@@ -2489,7 +2521,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2489
2521
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2490
2522
  */
2491
2523
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2492
- messageDesc(file_cover_v1_cover, 56);
2524
+ messageDesc(file_cover_v1_cover, 58);
2493
2525
 
2494
2526
  /**
2495
2527
  * Response message for GetMemberDetails
@@ -2508,7 +2540,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2508
2540
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2509
2541
  */
2510
2542
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2511
- messageDesc(file_cover_v1_cover, 57);
2543
+ messageDesc(file_cover_v1_cover, 59);
2512
2544
 
2513
2545
  /**
2514
2546
  * Request message for GetMemberCostGroup
@@ -2529,7 +2561,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2529
2561
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2530
2562
  */
2531
2563
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2532
- messageDesc(file_cover_v1_cover, 58);
2564
+ messageDesc(file_cover_v1_cover, 60);
2533
2565
 
2534
2566
  /**
2535
2567
  * Response message for GetMemberCostGroup
@@ -2548,7 +2580,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2548
2580
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2549
2581
  */
2550
2582
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2551
- messageDesc(file_cover_v1_cover, 59);
2583
+ messageDesc(file_cover_v1_cover, 61);
2552
2584
 
2553
2585
  /**
2554
2586
  * Request message for UpdateMemberPermission
@@ -2576,7 +2608,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2576
2608
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2577
2609
  */
2578
2610
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2579
- messageDesc(file_cover_v1_cover, 60);
2611
+ messageDesc(file_cover_v1_cover, 62);
2580
2612
 
2581
2613
  /**
2582
2614
  * Response message for UpdateMemberPermission
@@ -2595,7 +2627,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2595
2627
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2596
2628
  */
2597
2629
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2598
- messageDesc(file_cover_v1_cover, 61);
2630
+ messageDesc(file_cover_v1_cover, 63);
2599
2631
 
2600
2632
  /**
2601
2633
  * Request message for GetUserDetails
@@ -2610,7 +2642,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2610
2642
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2611
2643
  */
2612
2644
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2613
- messageDesc(file_cover_v1_cover, 62);
2645
+ messageDesc(file_cover_v1_cover, 64);
2614
2646
 
2615
2647
  /**
2616
2648
  * Response message for GetUserDetails
@@ -2629,7 +2661,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2629
2661
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2630
2662
  */
2631
2663
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2632
- messageDesc(file_cover_v1_cover, 63);
2664
+ messageDesc(file_cover_v1_cover, 65);
2633
2665
 
2634
2666
  /**
2635
2667
  * Request message for UpdateUserAvatar
@@ -2648,7 +2680,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2648
2680
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2649
2681
  */
2650
2682
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2651
- messageDesc(file_cover_v1_cover, 64);
2683
+ messageDesc(file_cover_v1_cover, 66);
2652
2684
 
2653
2685
  /**
2654
2686
  * Response message for UpdateUserAvatar
@@ -2667,7 +2699,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2667
2699
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2668
2700
  */
2669
2701
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2670
- messageDesc(file_cover_v1_cover, 65);
2702
+ messageDesc(file_cover_v1_cover, 67);
2671
2703
 
2672
2704
  /**
2673
2705
  * Request message for UpdateUserIcon
@@ -2686,7 +2718,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2686
2718
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2687
2719
  */
2688
2720
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2689
- messageDesc(file_cover_v1_cover, 66);
2721
+ messageDesc(file_cover_v1_cover, 68);
2690
2722
 
2691
2723
  /**
2692
2724
  * Response message for UpdateUserIcon
@@ -2705,7 +2737,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2705
2737
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2706
2738
  */
2707
2739
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2708
- messageDesc(file_cover_v1_cover, 67);
2740
+ messageDesc(file_cover_v1_cover, 69);
2709
2741
 
2710
2742
  /**
2711
2743
  * Request message for UpdateUserColorTheme
@@ -2724,7 +2756,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2724
2756
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2725
2757
  */
2726
2758
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2727
- messageDesc(file_cover_v1_cover, 68);
2759
+ messageDesc(file_cover_v1_cover, 70);
2728
2760
 
2729
2761
  /**
2730
2762
  * Response message for UpdateUserColorTheme
@@ -2743,7 +2775,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2743
2775
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2744
2776
  */
2745
2777
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2746
- messageDesc(file_cover_v1_cover, 69);
2778
+ messageDesc(file_cover_v1_cover, 71);
2747
2779
 
2748
2780
  /**
2749
2781
  * Request message for UpdateUserName
@@ -2762,7 +2794,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2762
2794
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2763
2795
  */
2764
2796
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2765
- messageDesc(file_cover_v1_cover, 70);
2797
+ messageDesc(file_cover_v1_cover, 72);
2766
2798
 
2767
2799
  /**
2768
2800
  * Response message for UpdateUserName
@@ -2781,7 +2813,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2781
2813
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2782
2814
  */
2783
2815
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2784
- messageDesc(file_cover_v1_cover, 71);
2816
+ messageDesc(file_cover_v1_cover, 73);
2785
2817
 
2786
2818
  /**
2787
2819
  * Request message for UpdateUserEmail
@@ -2800,7 +2832,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2800
2832
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2801
2833
  */
2802
2834
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2803
- messageDesc(file_cover_v1_cover, 72);
2835
+ messageDesc(file_cover_v1_cover, 74);
2804
2836
 
2805
2837
  /**
2806
2838
  * Response message for UpdateUserEmail
@@ -2819,7 +2851,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2819
2851
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2820
2852
  */
2821
2853
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2822
- messageDesc(file_cover_v1_cover, 73);
2854
+ messageDesc(file_cover_v1_cover, 75);
2823
2855
 
2824
2856
  /**
2825
2857
  * Request message for UpdateUserMainView
@@ -2838,7 +2870,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2838
2870
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2839
2871
  */
2840
2872
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2841
- messageDesc(file_cover_v1_cover, 74);
2873
+ messageDesc(file_cover_v1_cover, 76);
2842
2874
 
2843
2875
  /**
2844
2876
  * Response message for UpdateUserMainView
@@ -2857,7 +2889,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2857
2889
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2858
2890
  */
2859
2891
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2860
- messageDesc(file_cover_v1_cover, 75);
2892
+ messageDesc(file_cover_v1_cover, 77);
2861
2893
 
2862
2894
  /**
2863
2895
  * Request message for ResetUserPassword
@@ -2881,7 +2913,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2881
2913
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2882
2914
  */
2883
2915
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2884
- messageDesc(file_cover_v1_cover, 76);
2916
+ messageDesc(file_cover_v1_cover, 78);
2885
2917
 
2886
2918
  /**
2887
2919
  * Response message for ResetUserPassword
@@ -2900,7 +2932,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2900
2932
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2901
2933
  */
2902
2934
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2903
- messageDesc(file_cover_v1_cover, 77);
2935
+ messageDesc(file_cover_v1_cover, 79);
2904
2936
 
2905
2937
  /**
2906
2938
  * Request message for UpdateUserLocale
@@ -2919,7 +2951,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2919
2951
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2920
2952
  */
2921
2953
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2922
- messageDesc(file_cover_v1_cover, 78);
2954
+ messageDesc(file_cover_v1_cover, 80);
2923
2955
 
2924
2956
  /**
2925
2957
  * Response message for UpdateUserLocale
@@ -2938,7 +2970,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2938
2970
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2939
2971
  */
2940
2972
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2941
- messageDesc(file_cover_v1_cover, 79);
2973
+ messageDesc(file_cover_v1_cover, 81);
2942
2974
 
2943
2975
  /**
2944
2976
  * Request message for UpdateUserAppTheme
@@ -2957,7 +2989,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2957
2989
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2958
2990
  */
2959
2991
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2960
- messageDesc(file_cover_v1_cover, 80);
2992
+ messageDesc(file_cover_v1_cover, 82);
2961
2993
 
2962
2994
  /**
2963
2995
  * Response message for UpdateUserAppTheme
@@ -2976,7 +3008,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2976
3008
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2977
3009
  */
2978
3010
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2979
- messageDesc(file_cover_v1_cover, 81);
3011
+ messageDesc(file_cover_v1_cover, 83);
2980
3012
 
2981
3013
  /**
2982
3014
  * Request message for UpdateUserTimezone
@@ -3000,7 +3032,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
3000
3032
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
3001
3033
  */
3002
3034
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
3003
- messageDesc(file_cover_v1_cover, 82);
3035
+ messageDesc(file_cover_v1_cover, 84);
3004
3036
 
3005
3037
  /**
3006
3038
  * Response message for UpdateUserTimezone
@@ -3019,7 +3051,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
3019
3051
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
3020
3052
  */
3021
3053
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
3022
- messageDesc(file_cover_v1_cover, 83);
3054
+ messageDesc(file_cover_v1_cover, 85);
3023
3055
 
3024
3056
  /**
3025
3057
  * Request message for UpdateUserAttributes
@@ -3038,7 +3070,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
3038
3070
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
3039
3071
  */
3040
3072
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
3041
- messageDesc(file_cover_v1_cover, 84);
3073
+ messageDesc(file_cover_v1_cover, 86);
3042
3074
 
3043
3075
  /**
3044
3076
  * Response message for UpdateUserAttributes
@@ -3057,7 +3089,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
3057
3089
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
3058
3090
  */
3059
3091
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
3060
- messageDesc(file_cover_v1_cover, 85);
3092
+ messageDesc(file_cover_v1_cover, 87);
3061
3093
 
3062
3094
  /**
3063
3095
  * Request message for DeleteMember
@@ -3078,7 +3110,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
3078
3110
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
3079
3111
  */
3080
3112
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
3081
- messageDesc(file_cover_v1_cover, 86);
3113
+ messageDesc(file_cover_v1_cover, 88);
3082
3114
 
3083
3115
  /**
3084
3116
  * Response message for DeleteMember
@@ -3097,7 +3129,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
3097
3129
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
3098
3130
  */
3099
3131
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
3100
- messageDesc(file_cover_v1_cover, 87);
3132
+ messageDesc(file_cover_v1_cover, 89);
3101
3133
 
3102
3134
  /**
3103
3135
  * Request message for ResetPassword
@@ -3118,7 +3150,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
3118
3150
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
3119
3151
  */
3120
3152
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
3121
- messageDesc(file_cover_v1_cover, 88);
3153
+ messageDesc(file_cover_v1_cover, 90);
3122
3154
 
3123
3155
  /**
3124
3156
  * Response message for ResetPassword
@@ -3137,7 +3169,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
3137
3169
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
3138
3170
  */
3139
3171
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
3140
- messageDesc(file_cover_v1_cover, 89);
3172
+ messageDesc(file_cover_v1_cover, 91);
3141
3173
 
3142
3174
  /**
3143
3175
  * Request message for CreateView
@@ -3196,7 +3228,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
3196
3228
  * Use `create(CreateViewRequestSchema)` to create a new message.
3197
3229
  */
3198
3230
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
3199
- messageDesc(file_cover_v1_cover, 90);
3231
+ messageDesc(file_cover_v1_cover, 92);
3200
3232
 
3201
3233
  /**
3202
3234
  * Response message for CreateView
@@ -3215,7 +3247,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
3215
3247
  * Use `create(CreateViewResponseSchema)` to create a new message.
3216
3248
  */
3217
3249
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
3218
- messageDesc(file_cover_v1_cover, 91);
3250
+ messageDesc(file_cover_v1_cover, 93);
3219
3251
 
3220
3252
  /**
3221
3253
  * Request message for GetViews
@@ -3230,7 +3262,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
3230
3262
  * Use `create(GetViewsRequestSchema)` to create a new message.
3231
3263
  */
3232
3264
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
3233
- messageDesc(file_cover_v1_cover, 92);
3265
+ messageDesc(file_cover_v1_cover, 94);
3234
3266
 
3235
3267
  /**
3236
3268
  * Response message for GetViews
@@ -3249,7 +3281,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
3249
3281
  * Use `create(GetViewsResponseSchema)` to create a new message.
3250
3282
  */
3251
3283
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
3252
- messageDesc(file_cover_v1_cover, 93);
3284
+ messageDesc(file_cover_v1_cover, 95);
3253
3285
 
3254
3286
  /**
3255
3287
  * Request message for GetCurrentView
@@ -3270,7 +3302,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
3270
3302
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
3271
3303
  */
3272
3304
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
3273
- messageDesc(file_cover_v1_cover, 94);
3305
+ messageDesc(file_cover_v1_cover, 96);
3274
3306
 
3275
3307
  /**
3276
3308
  * Response message for GetCurrentView
@@ -3289,7 +3321,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
3289
3321
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
3290
3322
  */
3291
3323
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
3292
- messageDesc(file_cover_v1_cover, 95);
3324
+ messageDesc(file_cover_v1_cover, 97);
3293
3325
 
3294
3326
  /**
3295
3327
  * Request message for GetFavoriteViews
@@ -3304,7 +3336,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
3304
3336
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
3305
3337
  */
3306
3338
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
3307
- messageDesc(file_cover_v1_cover, 96);
3339
+ messageDesc(file_cover_v1_cover, 98);
3308
3340
 
3309
3341
  /**
3310
3342
  * Response message for GetFavoriteViews
@@ -3323,7 +3355,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
3323
3355
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
3324
3356
  */
3325
3357
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
3326
- messageDesc(file_cover_v1_cover, 97);
3358
+ messageDesc(file_cover_v1_cover, 99);
3327
3359
 
3328
3360
  /**
3329
3361
  * Request message for PublishView
@@ -3344,7 +3376,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
3344
3376
  * Use `create(PublishViewRequestSchema)` to create a new message.
3345
3377
  */
3346
3378
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
3347
- messageDesc(file_cover_v1_cover, 98);
3379
+ messageDesc(file_cover_v1_cover, 100);
3348
3380
 
3349
3381
  /**
3350
3382
  * Response message for PublishView
@@ -3363,7 +3395,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
3363
3395
  * Use `create(PublishViewResponseSchema)` to create a new message.
3364
3396
  */
3365
3397
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
3366
- messageDesc(file_cover_v1_cover, 99);
3398
+ messageDesc(file_cover_v1_cover, 101);
3367
3399
 
3368
3400
  /**
3369
3401
  * Request message for AddFavorite
@@ -3384,7 +3416,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
3384
3416
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
3385
3417
  */
3386
3418
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
3387
- messageDesc(file_cover_v1_cover, 100);
3419
+ messageDesc(file_cover_v1_cover, 102);
3388
3420
 
3389
3421
  /**
3390
3422
  * Response message for AddFavorite
@@ -3403,7 +3435,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
3403
3435
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
3404
3436
  */
3405
3437
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
3406
- messageDesc(file_cover_v1_cover, 101);
3438
+ messageDesc(file_cover_v1_cover, 103);
3407
3439
 
3408
3440
  /**
3409
3441
  * Request message for RemoveFavorite
@@ -3424,7 +3456,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3424
3456
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3425
3457
  */
3426
3458
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3427
- messageDesc(file_cover_v1_cover, 102);
3459
+ messageDesc(file_cover_v1_cover, 104);
3428
3460
 
3429
3461
  /**
3430
3462
  * Response message for RemoveFavorite
@@ -3443,7 +3475,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3443
3475
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3444
3476
  */
3445
3477
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3446
- messageDesc(file_cover_v1_cover, 103);
3478
+ messageDesc(file_cover_v1_cover, 105);
3447
3479
 
3448
3480
  /**
3449
3481
  * Request message for UpdateView
@@ -3494,7 +3526,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3494
3526
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3495
3527
  */
3496
3528
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3497
- messageDesc(file_cover_v1_cover, 104);
3529
+ messageDesc(file_cover_v1_cover, 106);
3498
3530
 
3499
3531
  /**
3500
3532
  * Response message for UpdateView
@@ -3513,7 +3545,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3513
3545
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3514
3546
  */
3515
3547
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3516
- messageDesc(file_cover_v1_cover, 105);
3548
+ messageDesc(file_cover_v1_cover, 107);
3517
3549
 
3518
3550
  /**
3519
3551
  * Request message for UpdateViewLayout
@@ -3539,7 +3571,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3539
3571
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3540
3572
  */
3541
3573
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3542
- messageDesc(file_cover_v1_cover, 106);
3574
+ messageDesc(file_cover_v1_cover, 108);
3543
3575
 
3544
3576
  /**
3545
3577
  * Response message for UpdateViewLayout
@@ -3558,7 +3590,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3558
3590
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3559
3591
  */
3560
3592
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3561
- messageDesc(file_cover_v1_cover, 107);
3593
+ messageDesc(file_cover_v1_cover, 109);
3562
3594
 
3563
3595
  /**
3564
3596
  * Request message for UpdateViewWidget
@@ -3596,7 +3628,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3596
3628
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3597
3629
  */
3598
3630
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3599
- messageDesc(file_cover_v1_cover, 108);
3631
+ messageDesc(file_cover_v1_cover, 110);
3600
3632
 
3601
3633
  /**
3602
3634
  * Response message for UpdateViewWidget
@@ -3620,7 +3652,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3620
3652
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3621
3653
  */
3622
3654
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3623
- messageDesc(file_cover_v1_cover, 109);
3655
+ messageDesc(file_cover_v1_cover, 111);
3624
3656
 
3625
3657
  /**
3626
3658
  * Request message for UpdateViewColorTheme
@@ -3644,7 +3676,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3644
3676
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3645
3677
  */
3646
3678
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3647
- messageDesc(file_cover_v1_cover, 110);
3679
+ messageDesc(file_cover_v1_cover, 112);
3648
3680
 
3649
3681
  /**
3650
3682
  * Response message for UpdateViewColorTheme
@@ -3663,7 +3695,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3663
3695
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3664
3696
  */
3665
3697
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3666
- messageDesc(file_cover_v1_cover, 111);
3698
+ messageDesc(file_cover_v1_cover, 113);
3667
3699
 
3668
3700
  /**
3669
3701
  * Request message for UpdateViewCurrency
@@ -3687,7 +3719,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3687
3719
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3688
3720
  */
3689
3721
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3690
- messageDesc(file_cover_v1_cover, 112);
3722
+ messageDesc(file_cover_v1_cover, 114);
3691
3723
 
3692
3724
  /**
3693
3725
  * Response message for UpdateViewCurrency
@@ -3706,7 +3738,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3706
3738
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3707
3739
  */
3708
3740
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3709
- messageDesc(file_cover_v1_cover, 113);
3741
+ messageDesc(file_cover_v1_cover, 115);
3710
3742
 
3711
3743
  /**
3712
3744
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3725,7 +3757,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3725
3757
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3726
3758
  */
3727
3759
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3728
- messageDesc(file_cover_v1_cover, 114);
3760
+ messageDesc(file_cover_v1_cover, 116);
3729
3761
 
3730
3762
  /**
3731
3763
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3742,7 +3774,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3742
3774
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3743
3775
  */
3744
3776
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3745
- messageDesc(file_cover_v1_cover, 115);
3777
+ messageDesc(file_cover_v1_cover, 117);
3746
3778
 
3747
3779
  /**
3748
3780
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3755,7 +3787,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3755
3787
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3756
3788
  */
3757
3789
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3758
- messageDesc(file_cover_v1_cover, 116);
3790
+ messageDesc(file_cover_v1_cover, 118);
3759
3791
 
3760
3792
  /**
3761
3793
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3782,7 +3814,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3782
3814
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3783
3815
  */
3784
3816
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3785
- messageDesc(file_cover_v1_cover, 117);
3817
+ messageDesc(file_cover_v1_cover, 119);
3786
3818
 
3787
3819
  /**
3788
3820
  * Request message for ListExchangeRates
@@ -3810,7 +3842,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3810
3842
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3811
3843
  */
3812
3844
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3813
- messageDesc(file_cover_v1_cover, 118);
3845
+ messageDesc(file_cover_v1_cover, 120);
3814
3846
 
3815
3847
  /**
3816
3848
  * Response message for ListExchangeRates
@@ -3834,7 +3866,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3834
3866
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3835
3867
  */
3836
3868
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3837
- messageDesc(file_cover_v1_cover, 119);
3869
+ messageDesc(file_cover_v1_cover, 121);
3838
3870
 
3839
3871
  /**
3840
3872
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3861,7 +3893,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3861
3893
  * Use `create(ExchangeRatesSchema)` to create a new message.
3862
3894
  */
3863
3895
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3864
- messageDesc(file_cover_v1_cover, 120);
3896
+ messageDesc(file_cover_v1_cover, 122);
3865
3897
 
3866
3898
  /**
3867
3899
  * Request message for DeleteView
@@ -3882,7 +3914,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3882
3914
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3883
3915
  */
3884
3916
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3885
- messageDesc(file_cover_v1_cover, 121);
3917
+ messageDesc(file_cover_v1_cover, 123);
3886
3918
 
3887
3919
  /**
3888
3920
  * Response message for DeleteView
@@ -3901,7 +3933,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3901
3933
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3902
3934
  */
3903
3935
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3904
- messageDesc(file_cover_v1_cover, 122);
3936
+ messageDesc(file_cover_v1_cover, 124);
3905
3937
 
3906
3938
  /**
3907
3939
  * Request message for UpdateSideMenuState
@@ -3927,7 +3959,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3927
3959
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3928
3960
  */
3929
3961
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3930
- messageDesc(file_cover_v1_cover, 123);
3962
+ messageDesc(file_cover_v1_cover, 125);
3931
3963
 
3932
3964
  /**
3933
3965
  * Response message for UpdateSideMenuState
@@ -3946,7 +3978,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3946
3978
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3947
3979
  */
3948
3980
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3949
- messageDesc(file_cover_v1_cover, 124);
3981
+ messageDesc(file_cover_v1_cover, 126);
3950
3982
 
3951
3983
  /**
3952
3984
  * Request message for AddSideMenuFavorite
@@ -3972,7 +4004,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3972
4004
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3973
4005
  */
3974
4006
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3975
- messageDesc(file_cover_v1_cover, 125);
4007
+ messageDesc(file_cover_v1_cover, 127);
3976
4008
 
3977
4009
  /**
3978
4010
  * Response message for AddSideMenuFavorite
@@ -3991,7 +4023,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3991
4023
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3992
4024
  */
3993
4025
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3994
- messageDesc(file_cover_v1_cover, 126);
4026
+ messageDesc(file_cover_v1_cover, 128);
3995
4027
 
3996
4028
  /**
3997
4029
  * Request message for RemoveSideMenuFavorite
@@ -4017,7 +4049,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
4017
4049
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
4018
4050
  */
4019
4051
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
4020
- messageDesc(file_cover_v1_cover, 127);
4052
+ messageDesc(file_cover_v1_cover, 129);
4021
4053
 
4022
4054
  /**
4023
4055
  * Response message for RemoveSideMenuFavorite
@@ -4036,7 +4068,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
4036
4068
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
4037
4069
  */
4038
4070
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
4039
- messageDesc(file_cover_v1_cover, 128);
4071
+ messageDesc(file_cover_v1_cover, 130);
4040
4072
 
4041
4073
  /**
4042
4074
  * Request message for CreateCostGroup
@@ -4085,7 +4117,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
4085
4117
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
4086
4118
  */
4087
4119
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
4088
- messageDesc(file_cover_v1_cover, 129);
4120
+ messageDesc(file_cover_v1_cover, 131);
4089
4121
 
4090
4122
  /**
4091
4123
  * Response message for CreateCostGroup
@@ -4104,7 +4136,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
4104
4136
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
4105
4137
  */
4106
4138
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
4107
- messageDesc(file_cover_v1_cover, 130);
4139
+ messageDesc(file_cover_v1_cover, 132);
4108
4140
 
4109
4141
  /**
4110
4142
  * Request message for GetCostGroups
@@ -4119,7 +4151,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
4119
4151
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
4120
4152
  */
4121
4153
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
4122
- messageDesc(file_cover_v1_cover, 131);
4154
+ messageDesc(file_cover_v1_cover, 133);
4123
4155
 
4124
4156
  /**
4125
4157
  * Response message for GetCostGroups
@@ -4138,7 +4170,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
4138
4170
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
4139
4171
  */
4140
4172
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
4141
- messageDesc(file_cover_v1_cover, 132);
4173
+ messageDesc(file_cover_v1_cover, 134);
4142
4174
 
4143
4175
  /**
4144
4176
  * Request message for GetCostGroupDetails
@@ -4159,7 +4191,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
4159
4191
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
4160
4192
  */
4161
4193
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
4162
- messageDesc(file_cover_v1_cover, 133);
4194
+ messageDesc(file_cover_v1_cover, 135);
4163
4195
 
4164
4196
  /**
4165
4197
  * Response message for GetCostGroupDetails
@@ -4178,7 +4210,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
4178
4210
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
4179
4211
  */
4180
4212
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
4181
- messageDesc(file_cover_v1_cover, 134);
4213
+ messageDesc(file_cover_v1_cover, 136);
4182
4214
 
4183
4215
  /**
4184
4216
  * Request message for UpdateCostGroupName
@@ -4206,7 +4238,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
4206
4238
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
4207
4239
  */
4208
4240
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
4209
- messageDesc(file_cover_v1_cover, 135);
4241
+ messageDesc(file_cover_v1_cover, 137);
4210
4242
 
4211
4243
  /**
4212
4244
  * Response message for UpdateCostGroupName
@@ -4225,7 +4257,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
4225
4257
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
4226
4258
  */
4227
4259
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
4228
- messageDesc(file_cover_v1_cover, 136);
4260
+ messageDesc(file_cover_v1_cover, 138);
4229
4261
 
4230
4262
  /**
4231
4263
  * Request message for UpdateCostGroupDescription
@@ -4253,7 +4285,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
4253
4285
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
4254
4286
  */
4255
4287
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
4256
- messageDesc(file_cover_v1_cover, 137);
4288
+ messageDesc(file_cover_v1_cover, 139);
4257
4289
 
4258
4290
  /**
4259
4291
  * Response message for UpdateCostGroupDescription
@@ -4272,7 +4304,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
4272
4304
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
4273
4305
  */
4274
4306
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
4275
- messageDesc(file_cover_v1_cover, 138);
4307
+ messageDesc(file_cover_v1_cover, 140);
4276
4308
 
4277
4309
  /**
4278
4310
  * Request message for UpdateCostGroupImage
@@ -4300,7 +4332,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
4300
4332
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
4301
4333
  */
4302
4334
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
4303
- messageDesc(file_cover_v1_cover, 139);
4335
+ messageDesc(file_cover_v1_cover, 141);
4304
4336
 
4305
4337
  /**
4306
4338
  * Response message for UpdateCostGroupImage
@@ -4319,7 +4351,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
4319
4351
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
4320
4352
  */
4321
4353
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
4322
- messageDesc(file_cover_v1_cover, 140);
4354
+ messageDesc(file_cover_v1_cover, 142);
4323
4355
 
4324
4356
  /**
4325
4357
  * Request message for UpdateCostGroupIcon
@@ -4347,7 +4379,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
4347
4379
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
4348
4380
  */
4349
4381
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
4350
- messageDesc(file_cover_v1_cover, 141);
4382
+ messageDesc(file_cover_v1_cover, 143);
4351
4383
 
4352
4384
  /**
4353
4385
  * Response message for UpdateCostGroupIcon
@@ -4366,7 +4398,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
4366
4398
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
4367
4399
  */
4368
4400
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
4369
- messageDesc(file_cover_v1_cover, 142);
4401
+ messageDesc(file_cover_v1_cover, 144);
4370
4402
 
4371
4403
  /**
4372
4404
  * Request message for UpdateCostGroupColorTheme
@@ -4394,7 +4426,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
4394
4426
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
4395
4427
  */
4396
4428
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
4397
- messageDesc(file_cover_v1_cover, 143);
4429
+ messageDesc(file_cover_v1_cover, 145);
4398
4430
 
4399
4431
  /**
4400
4432
  * Response message for UpdateCostGroupColorTheme
@@ -4413,7 +4445,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4413
4445
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4414
4446
  */
4415
4447
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4416
- messageDesc(file_cover_v1_cover, 144);
4448
+ messageDesc(file_cover_v1_cover, 146);
4417
4449
 
4418
4450
  /**
4419
4451
  * Request message for UpdateCostGroupCombinations
@@ -4439,7 +4471,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4439
4471
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4440
4472
  */
4441
4473
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4442
- messageDesc(file_cover_v1_cover, 145);
4474
+ messageDesc(file_cover_v1_cover, 147);
4443
4475
 
4444
4476
  /**
4445
4477
  * Response message for UpdateCostGroupCombinations
@@ -4458,7 +4490,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4458
4490
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4459
4491
  */
4460
4492
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4461
- messageDesc(file_cover_v1_cover, 146);
4493
+ messageDesc(file_cover_v1_cover, 148);
4462
4494
 
4463
4495
  /**
4464
4496
  * Request message for AssignCostGroupMember
@@ -4486,7 +4518,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4486
4518
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4487
4519
  */
4488
4520
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4489
- messageDesc(file_cover_v1_cover, 147);
4521
+ messageDesc(file_cover_v1_cover, 149);
4490
4522
 
4491
4523
  /**
4492
4524
  * Response message for AssignCostGroupMember
@@ -4510,7 +4542,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4510
4542
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4511
4543
  */
4512
4544
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4513
- messageDesc(file_cover_v1_cover, 148);
4545
+ messageDesc(file_cover_v1_cover, 150);
4514
4546
 
4515
4547
  /**
4516
4548
  * Request message for RemoveCostGroupMember
@@ -4538,7 +4570,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4538
4570
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4539
4571
  */
4540
4572
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4541
- messageDesc(file_cover_v1_cover, 149);
4573
+ messageDesc(file_cover_v1_cover, 151);
4542
4574
 
4543
4575
  /**
4544
4576
  * Response message for RemoveCostGroupMember
@@ -4562,7 +4594,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4562
4594
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4563
4595
  */
4564
4596
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4565
- messageDesc(file_cover_v1_cover, 150);
4597
+ messageDesc(file_cover_v1_cover, 152);
4566
4598
 
4567
4599
  /**
4568
4600
  * Request message for DeleteCostGroup
@@ -4583,7 +4615,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4583
4615
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4584
4616
  */
4585
4617
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4586
- messageDesc(file_cover_v1_cover, 151);
4618
+ messageDesc(file_cover_v1_cover, 153);
4587
4619
 
4588
4620
  /**
4589
4621
  * Response message for DeleteCostGroup
@@ -4602,7 +4634,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4602
4634
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4603
4635
  */
4604
4636
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4605
- messageDesc(file_cover_v1_cover, 152);
4637
+ messageDesc(file_cover_v1_cover, 154);
4606
4638
 
4607
4639
  /**
4608
4640
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4623,7 +4655,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4623
4655
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4624
4656
  */
4625
4657
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4626
- messageDesc(file_cover_v1_cover, 153);
4658
+ messageDesc(file_cover_v1_cover, 155);
4627
4659
 
4628
4660
  /**
4629
4661
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4677,7 +4709,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4677
4709
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4678
4710
  */
4679
4711
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4680
- messageDesc(file_cover_v1_cover, 154);
4712
+ messageDesc(file_cover_v1_cover, 156);
4681
4713
 
4682
4714
  /**
4683
4715
  * Request message for the ListAccountAccess rpc.
@@ -4692,7 +4724,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4692
4724
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4693
4725
  */
4694
4726
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4695
- messageDesc(file_cover_v1_cover, 155);
4727
+ messageDesc(file_cover_v1_cover, 157);
4696
4728
 
4697
4729
  /**
4698
4730
  * Request message for the GetAccountAccess rpc.
@@ -4713,7 +4745,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4713
4745
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4714
4746
  */
4715
4747
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4716
- messageDesc(file_cover_v1_cover, 156);
4748
+ messageDesc(file_cover_v1_cover, 158);
4717
4749
 
4718
4750
  /**
4719
4751
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4832,7 +4864,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4832
4864
  * Use `create(AccountAccessSchema)` to create a new message.
4833
4865
  */
4834
4866
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4835
- messageDesc(file_cover_v1_cover, 157);
4867
+ messageDesc(file_cover_v1_cover, 159);
4836
4868
 
4837
4869
  /**
4838
4870
  * Request message for the CreateAccountAccess rpc.
@@ -4860,7 +4892,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4860
4892
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4861
4893
  */
4862
4894
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4863
- messageDesc(file_cover_v1_cover, 158);
4895
+ messageDesc(file_cover_v1_cover, 160);
4864
4896
 
4865
4897
  /**
4866
4898
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4888,7 +4920,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4888
4920
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4889
4921
  */
4890
4922
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4891
- messageDesc(file_cover_v1_cover, 159);
4923
+ messageDesc(file_cover_v1_cover, 161);
4892
4924
 
4893
4925
  /**
4894
4926
  * Request message for the UpdateAccountAccess rpc.
@@ -4909,7 +4941,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4909
4941
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4910
4942
  */
4911
4943
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4912
- messageDesc(file_cover_v1_cover, 160);
4944
+ messageDesc(file_cover_v1_cover, 162);
4913
4945
 
4914
4946
  /**
4915
4947
  * Request message for the DeleteAccountAccess rpc.
@@ -4935,7 +4967,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4935
4967
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4936
4968
  */
4937
4969
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4938
- messageDesc(file_cover_v1_cover, 161);
4970
+ messageDesc(file_cover_v1_cover, 163);
4939
4971
 
4940
4972
  /**
4941
4973
  * Response message for the DeleteAccountAccess rpc.
@@ -4954,7 +4986,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4954
4986
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4955
4987
  */
4956
4988
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4957
- messageDesc(file_cover_v1_cover, 162);
4989
+ messageDesc(file_cover_v1_cover, 164);
4958
4990
 
4959
4991
  /**
4960
4992
  * Request message for the RegisterAccount rpc.
@@ -4989,7 +5021,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4989
5021
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4990
5022
  */
4991
5023
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4992
- messageDesc(file_cover_v1_cover, 163);
5024
+ messageDesc(file_cover_v1_cover, 165);
4993
5025
 
4994
5026
  /**
4995
5027
  * Request message for the Asset.ListResources rpc.
@@ -5045,7 +5077,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
5045
5077
  * Use `create(ListAssetsRequestSchema)` to create a new message.
5046
5078
  */
5047
5079
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
5048
- messageDesc(file_cover_v1_cover, 164);
5080
+ messageDesc(file_cover_v1_cover, 166);
5049
5081
 
5050
5082
  /**
5051
5083
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -5062,7 +5094,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
5062
5094
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
5063
5095
  */
5064
5096
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
5065
- messageDesc(file_cover_v1_cover, 165);
5097
+ messageDesc(file_cover_v1_cover, 167);
5066
5098
 
5067
5099
  /**
5068
5100
  * @generated from message blueapi.cover.v1.Resource
@@ -5144,7 +5176,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
5144
5176
  * Use `create(ResourceSchema)` to create a new message.
5145
5177
  */
5146
5178
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
5147
- messageDesc(file_cover_v1_cover, 166);
5179
+ messageDesc(file_cover_v1_cover, 168);
5148
5180
 
5149
5181
  /**
5150
5182
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -5198,7 +5230,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
5198
5230
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
5199
5231
  */
5200
5232
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
5201
- messageDesc(file_cover_v1_cover, 167);
5233
+ messageDesc(file_cover_v1_cover, 169);
5202
5234
 
5203
5235
  /**
5204
5236
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -5222,7 +5254,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
5222
5254
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
5223
5255
  */
5224
5256
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
5225
- messageDesc(file_cover_v1_cover, 168);
5257
+ messageDesc(file_cover_v1_cover, 170);
5226
5258
 
5227
5259
  /**
5228
5260
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -5262,7 +5294,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
5262
5294
  * Use `create(AssetsSummarySchema)` to create a new message.
5263
5295
  */
5264
5296
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
5265
- messageDesc(file_cover_v1_cover, 169);
5297
+ messageDesc(file_cover_v1_cover, 171);
5266
5298
 
5267
5299
  /**
5268
5300
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -5281,7 +5313,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
5281
5313
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
5282
5314
  */
5283
5315
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
5284
- messageDesc(file_cover_v1_cover, 170);
5316
+ messageDesc(file_cover_v1_cover, 172);
5285
5317
 
5286
5318
  /**
5287
5319
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -5303,7 +5335,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
5303
5335
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
5304
5336
  */
5305
5337
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
5306
- messageDesc(file_cover_v1_cover, 171);
5338
+ messageDesc(file_cover_v1_cover, 173);
5307
5339
 
5308
5340
  /**
5309
5341
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5427,7 +5459,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5427
5459
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5428
5460
  */
5429
5461
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5430
- messageDesc(file_cover_v1_cover, 172);
5462
+ messageDesc(file_cover_v1_cover, 174);
5431
5463
 
5432
5464
  /**
5433
5465
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5481,7 +5513,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5481
5513
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5482
5514
  */
5483
5515
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5484
- messageDesc(file_cover_v1_cover, 173);
5516
+ messageDesc(file_cover_v1_cover, 175);
5485
5517
 
5486
5518
  /**
5487
5519
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5527,7 +5559,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5527
5559
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5528
5560
  */
5529
5561
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5530
- messageDesc(file_cover_v1_cover, 174);
5562
+ messageDesc(file_cover_v1_cover, 176);
5531
5563
 
5532
5564
  /**
5533
5565
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5589,7 +5621,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5589
5621
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5590
5622
  */
5591
5623
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5592
- messageDesc(file_cover_v1_cover, 175);
5624
+ messageDesc(file_cover_v1_cover, 177);
5593
5625
 
5594
5626
  /**
5595
5627
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5641,7 +5673,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5641
5673
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5642
5674
  */
5643
5675
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5644
- messageDesc(file_cover_v1_cover, 176);
5676
+ messageDesc(file_cover_v1_cover, 178);
5645
5677
 
5646
5678
  /**
5647
5679
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5703,7 +5735,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5703
5735
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5704
5736
  */
5705
5737
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5706
- messageDesc(file_cover_v1_cover, 177);
5738
+ messageDesc(file_cover_v1_cover, 179);
5707
5739
 
5708
5740
  /**
5709
5741
  * A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -5724,7 +5756,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5724
5756
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5725
5757
  */
5726
5758
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5727
- messageDesc(file_cover_v1_cover, 178);
5759
+ messageDesc(file_cover_v1_cover, 180);
5728
5760
 
5729
5761
  /**
5730
5762
  * Response message wrapper for cloud costs.
@@ -5862,7 +5894,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5862
5894
  * Use `create(CostItemSchema)` to create a new message.
5863
5895
  */
5864
5896
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5865
- messageDesc(file_cover_v1_cover, 179);
5897
+ messageDesc(file_cover_v1_cover, 181);
5866
5898
 
5867
5899
  /**
5868
5900
  * Request message for GetRightSizingRecommendation
@@ -5883,7 +5915,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5883
5915
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5884
5916
  */
5885
5917
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5886
- messageDesc(file_cover_v1_cover, 180);
5918
+ messageDesc(file_cover_v1_cover, 182);
5887
5919
 
5888
5920
  /**
5889
5921
  * Response message for GetRightSizingRecommendation
@@ -5902,7 +5934,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5902
5934
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5903
5935
  */
5904
5936
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5905
- messageDesc(file_cover_v1_cover, 181);
5937
+ messageDesc(file_cover_v1_cover, 183);
5906
5938
 
5907
5939
  /**
5908
5940
  * Request message for ModifyResourceType
@@ -5951,7 +5983,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5951
5983
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5952
5984
  */
5953
5985
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5954
- messageDesc(file_cover_v1_cover, 182);
5986
+ messageDesc(file_cover_v1_cover, 184);
5955
5987
 
5956
5988
  /**
5957
5989
  * Response message for ModifyResourceType
@@ -5985,7 +6017,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5985
6017
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5986
6018
  */
5987
6019
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5988
- messageDesc(file_cover_v1_cover, 183);
6020
+ messageDesc(file_cover_v1_cover, 185);
5989
6021
 
5990
6022
  /**
5991
6023
  * Request message for TerminateResource
@@ -6027,7 +6059,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
6027
6059
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
6028
6060
  */
6029
6061
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
6030
- messageDesc(file_cover_v1_cover, 184);
6062
+ messageDesc(file_cover_v1_cover, 186);
6031
6063
 
6032
6064
  /**
6033
6065
  * Response message for TerminateResource
@@ -6056,7 +6088,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
6056
6088
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
6057
6089
  */
6058
6090
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
6059
- messageDesc(file_cover_v1_cover, 185);
6091
+ messageDesc(file_cover_v1_cover, 187);
6060
6092
 
6061
6093
  /**
6062
6094
  * (WIP): Request message for Upload Charge Code
@@ -6097,7 +6129,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
6097
6129
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
6098
6130
  */
6099
6131
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
6100
- messageDesc(file_cover_v1_cover, 186);
6132
+ messageDesc(file_cover_v1_cover, 188);
6101
6133
 
6102
6134
  /**
6103
6135
  * (WIP): Response message for Upload Charge Code
@@ -6125,7 +6157,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
6125
6157
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
6126
6158
  */
6127
6159
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
6128
- messageDesc(file_cover_v1_cover, 187);
6160
+ messageDesc(file_cover_v1_cover, 189);
6129
6161
 
6130
6162
  /**
6131
6163
  * Request message for AssignPayer
@@ -6160,7 +6192,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
6160
6192
  * Use `create(AssignPayerRequestSchema)` to create a new message.
6161
6193
  */
6162
6194
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
6163
- messageDesc(file_cover_v1_cover, 188);
6195
+ messageDesc(file_cover_v1_cover, 190);
6164
6196
 
6165
6197
  /**
6166
6198
  * Response message for AssignPayer
@@ -6184,7 +6216,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
6184
6216
  * Use `create(AssignPayerResponseSchema)` to create a new message.
6185
6217
  */
6186
6218
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
6187
- messageDesc(file_cover_v1_cover, 189);
6219
+ messageDesc(file_cover_v1_cover, 191);
6188
6220
 
6189
6221
  /**
6190
6222
  * Request message for GetPayers
@@ -6205,7 +6237,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
6205
6237
  * Use `create(GetPayersRequestSchema)` to create a new message.
6206
6238
  */
6207
6239
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
6208
- messageDesc(file_cover_v1_cover, 190);
6240
+ messageDesc(file_cover_v1_cover, 192);
6209
6241
 
6210
6242
  /**
6211
6243
  * Response message for GetPayers
@@ -6224,7 +6256,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
6224
6256
  * Use `create(GetPayersResponseSchema)` to create a new message.
6225
6257
  */
6226
6258
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
6227
- messageDesc(file_cover_v1_cover, 191);
6259
+ messageDesc(file_cover_v1_cover, 193);
6228
6260
 
6229
6261
  /**
6230
6262
  * Request message for GetAccounts
@@ -6250,7 +6282,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
6250
6282
  * Use `create(GetAccountsRequestSchema)` to create a new message.
6251
6283
  */
6252
6284
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
6253
- messageDesc(file_cover_v1_cover, 192);
6285
+ messageDesc(file_cover_v1_cover, 194);
6254
6286
 
6255
6287
  /**
6256
6288
  * Response message for GetAccounts
@@ -6269,7 +6301,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
6269
6301
  * Use `create(GetAccountsResponseSchema)` to create a new message.
6270
6302
  */
6271
6303
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
6272
- messageDesc(file_cover_v1_cover, 193);
6304
+ messageDesc(file_cover_v1_cover, 195);
6273
6305
 
6274
6306
  /**
6275
6307
  * Request message for GetServices
@@ -6295,7 +6327,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
6295
6327
  * Use `create(GetServicesRequestSchema)` to create a new message.
6296
6328
  */
6297
6329
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
6298
- messageDesc(file_cover_v1_cover, 194);
6330
+ messageDesc(file_cover_v1_cover, 196);
6299
6331
 
6300
6332
  /**
6301
6333
  * Response message for GetServices
@@ -6314,7 +6346,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
6314
6346
  * Use `create(GetServicesResponseSchema)` to create a new message.
6315
6347
  */
6316
6348
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
6317
- messageDesc(file_cover_v1_cover, 195);
6349
+ messageDesc(file_cover_v1_cover, 197);
6318
6350
 
6319
6351
  /**
6320
6352
  * Request message for GetRegions
@@ -6340,7 +6372,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
6340
6372
  * Use `create(GetRegionsRequestSchema)` to create a new message.
6341
6373
  */
6342
6374
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
6343
- messageDesc(file_cover_v1_cover, 196);
6375
+ messageDesc(file_cover_v1_cover, 198);
6344
6376
 
6345
6377
  /**
6346
6378
  * Response message for GetRegions
@@ -6359,7 +6391,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
6359
6391
  * Use `create(GetRegionsResponseSchema)` to create a new message.
6360
6392
  */
6361
6393
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
6362
- messageDesc(file_cover_v1_cover, 197);
6394
+ messageDesc(file_cover_v1_cover, 199);
6363
6395
 
6364
6396
  /**
6365
6397
  * Request message for GetTags
@@ -6385,7 +6417,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
6385
6417
  * Use `create(GetTagsRequestSchema)` to create a new message.
6386
6418
  */
6387
6419
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
6388
- messageDesc(file_cover_v1_cover, 198);
6420
+ messageDesc(file_cover_v1_cover, 200);
6389
6421
 
6390
6422
  /**
6391
6423
  * Response message for GetTags
@@ -6404,7 +6436,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
6404
6436
  * Use `create(GetTagsResponseSchema)` to create a new message.
6405
6437
  */
6406
6438
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
6407
- messageDesc(file_cover_v1_cover, 199);
6439
+ messageDesc(file_cover_v1_cover, 201);
6408
6440
 
6409
6441
  /**
6410
6442
  * Request message for the ListFees rpc.
@@ -6423,7 +6455,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6423
6455
  * Use `create(ListFeesRequestSchema)` to create a new message.
6424
6456
  */
6425
6457
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6426
- messageDesc(file_cover_v1_cover, 200);
6458
+ messageDesc(file_cover_v1_cover, 202);
6427
6459
 
6428
6460
  /**
6429
6461
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6532,7 +6564,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6532
6564
  * Use `create(FeeDetailsSchema)` to create a new message.
6533
6565
  */
6534
6566
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6535
- messageDesc(file_cover_v1_cover, 201);
6567
+ messageDesc(file_cover_v1_cover, 203);
6536
6568
 
6537
6569
  /**
6538
6570
  * Request message for the RestoreFee rpc.
@@ -6553,7 +6585,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6553
6585
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6554
6586
  */
6555
6587
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6556
- messageDesc(file_cover_v1_cover, 202);
6588
+ messageDesc(file_cover_v1_cover, 204);
6557
6589
 
6558
6590
  /**
6559
6591
  * Request message for the GetCostGroupFee rpc.
@@ -6584,7 +6616,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6584
6616
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6585
6617
  */
6586
6618
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6587
- messageDesc(file_cover_v1_cover, 203);
6619
+ messageDesc(file_cover_v1_cover, 205);
6588
6620
 
6589
6621
  /**
6590
6622
  * Response message wrapper for cost group fees.
@@ -6628,7 +6660,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6628
6660
  * Use `create(FeeItemSchema)` to create a new message.
6629
6661
  */
6630
6662
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6631
- messageDesc(file_cover_v1_cover, 204);
6663
+ messageDesc(file_cover_v1_cover, 206);
6632
6664
 
6633
6665
  /**
6634
6666
  * @generated from message blueapi.cover.v1.Allocator
@@ -6668,7 +6700,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6668
6700
  * Use `create(AllocatorSchema)` to create a new message.
6669
6701
  */
6670
6702
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6671
- messageDesc(file_cover_v1_cover, 205);
6703
+ messageDesc(file_cover_v1_cover, 207);
6672
6704
 
6673
6705
  /**
6674
6706
  * A map of "key:value" attribute filters. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -6687,7 +6719,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6687
6719
  * Use `create(CriteriaSchema)` to create a new message.
6688
6720
  */
6689
6721
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6690
- messageDesc(file_cover_v1_cover, 206);
6722
+ messageDesc(file_cover_v1_cover, 208);
6691
6723
 
6692
6724
  /**
6693
6725
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6760,7 +6792,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6760
6792
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6761
6793
  */
6762
6794
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6763
- messageDesc(file_cover_v1_cover, 207);
6795
+ messageDesc(file_cover_v1_cover, 209);
6764
6796
 
6765
6797
  /**
6766
6798
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6823,7 +6855,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6823
6855
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6824
6856
  */
6825
6857
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6826
- messageDesc(file_cover_v1_cover, 208);
6858
+ messageDesc(file_cover_v1_cover, 210);
6827
6859
 
6828
6860
  /**
6829
6861
  * Request message for the ListAllocators rpc.
@@ -6838,7 +6870,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6838
6870
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6839
6871
  */
6840
6872
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6841
- messageDesc(file_cover_v1_cover, 209);
6873
+ messageDesc(file_cover_v1_cover, 211);
6842
6874
 
6843
6875
  /**
6844
6876
  * Request message for the CreateAllocator rpc.
@@ -6900,7 +6932,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6900
6932
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6901
6933
  */
6902
6934
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6903
- messageDesc(file_cover_v1_cover, 210);
6935
+ messageDesc(file_cover_v1_cover, 212);
6904
6936
 
6905
6937
  /**
6906
6938
  * Request message for the GetAllocationAttributes rpc.
@@ -6919,7 +6951,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6919
6951
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6920
6952
  */
6921
6953
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6922
- messageDesc(file_cover_v1_cover, 211);
6954
+ messageDesc(file_cover_v1_cover, 213);
6923
6955
 
6924
6956
  /**
6925
6957
  * Response message for the GetAllocationAttributes rpc.
@@ -6938,7 +6970,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6938
6970
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6939
6971
  */
6940
6972
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6941
- messageDesc(file_cover_v1_cover, 212);
6973
+ messageDesc(file_cover_v1_cover, 214);
6942
6974
 
6943
6975
  /**
6944
6976
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6960,7 +6992,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6960
6992
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6961
6993
  */
6962
6994
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6963
- messageDesc(file_cover_v1_cover, 212, 0);
6995
+ messageDesc(file_cover_v1_cover, 214, 0);
6964
6996
 
6965
6997
  /**
6966
6998
  * Request message for the GetAllocationSources rpc.
@@ -6984,7 +7016,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6984
7016
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6985
7017
  */
6986
7018
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6987
- messageDesc(file_cover_v1_cover, 213);
7019
+ messageDesc(file_cover_v1_cover, 215);
6988
7020
 
6989
7021
  /**
6990
7022
  * Response message for the GetAllocationSources rpc.
@@ -7008,7 +7040,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
7008
7040
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
7009
7041
  */
7010
7042
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
7011
- messageDesc(file_cover_v1_cover, 214);
7043
+ messageDesc(file_cover_v1_cover, 216);
7012
7044
 
7013
7045
  /**
7014
7046
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -7035,7 +7067,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
7035
7067
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
7036
7068
  */
7037
7069
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
7038
- messageDesc(file_cover_v1_cover, 214, 0);
7070
+ messageDesc(file_cover_v1_cover, 216, 0);
7039
7071
 
7040
7072
  /**
7041
7073
  * Request message for the DeleteAllocator rpc.
@@ -7056,7 +7088,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
7056
7088
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
7057
7089
  */
7058
7090
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
7059
- messageDesc(file_cover_v1_cover, 215);
7091
+ messageDesc(file_cover_v1_cover, 217);
7060
7092
 
7061
7093
  /**
7062
7094
  * Request message for the ProxyCreateCompletion rpc.
@@ -7075,7 +7107,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
7075
7107
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
7076
7108
  */
7077
7109
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
7078
- messageDesc(file_cover_v1_cover, 216);
7110
+ messageDesc(file_cover_v1_cover, 218);
7079
7111
 
7080
7112
  /**
7081
7113
  * Response message for the ProxyCreateCompletion rpc.
@@ -7094,7 +7126,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
7094
7126
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
7095
7127
  */
7096
7128
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
7097
- messageDesc(file_cover_v1_cover, 217);
7129
+ messageDesc(file_cover_v1_cover, 219);
7098
7130
 
7099
7131
  /**
7100
7132
  * Response message for SimulateAccountCostAllocator rpc.
@@ -7253,7 +7285,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
7253
7285
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
7254
7286
  */
7255
7287
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
7256
- messageDesc(file_cover_v1_cover, 218);
7288
+ messageDesc(file_cover_v1_cover, 220);
7257
7289
 
7258
7290
  /**
7259
7291
  * Request message for the RestoreAccountUsage rpc.
@@ -7277,7 +7309,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
7277
7309
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
7278
7310
  */
7279
7311
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
7280
- messageDesc(file_cover_v1_cover, 219);
7312
+ messageDesc(file_cover_v1_cover, 221);
7281
7313
 
7282
7314
  /**
7283
7315
  * Request message for the RestoreAccountUsage rpc.
@@ -7298,7 +7330,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
7298
7330
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
7299
7331
  */
7300
7332
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
7301
- messageDesc(file_cover_v1_cover, 220);
7333
+ messageDesc(file_cover_v1_cover, 222);
7302
7334
 
7303
7335
  /**
7304
7336
  * Request message for the RestoreSavings rpc.
@@ -7319,7 +7351,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
7319
7351
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
7320
7352
  */
7321
7353
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
7322
- messageDesc(file_cover_v1_cover, 221);
7354
+ messageDesc(file_cover_v1_cover, 223);
7323
7355
 
7324
7356
  /**
7325
7357
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7418,7 +7450,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7418
7450
  * Use `create(SavingsDetailsSchema)` to create a new message.
7419
7451
  */
7420
7452
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7421
- messageDesc(file_cover_v1_cover, 222);
7453
+ messageDesc(file_cover_v1_cover, 224);
7422
7454
 
7423
7455
  /**
7424
7456
  * Request message for the GetCostGroupAllocation rpc.
@@ -7456,7 +7488,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7456
7488
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7457
7489
  */
7458
7490
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7459
- messageDesc(file_cover_v1_cover, 223);
7491
+ messageDesc(file_cover_v1_cover, 225);
7460
7492
 
7461
7493
  /**
7462
7494
  * Response message wrapper for cost group allocations.
@@ -7505,7 +7537,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7505
7537
  * Use `create(AllocationItemSchema)` to create a new message.
7506
7538
  */
7507
7539
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7508
- messageDesc(file_cover_v1_cover, 224);
7540
+ messageDesc(file_cover_v1_cover, 226);
7509
7541
 
7510
7542
  /**
7511
7543
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7539,7 +7571,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7539
7571
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7540
7572
  */
7541
7573
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7542
- messageDesc(file_cover_v1_cover, 225);
7574
+ messageDesc(file_cover_v1_cover, 227);
7543
7575
 
7544
7576
  /**
7545
7577
  * Response message wrapper for adding user from Auth0 as root
@@ -7558,7 +7590,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7558
7590
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7559
7591
  */
7560
7592
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7561
- messageDesc(file_cover_v1_cover, 226);
7593
+ messageDesc(file_cover_v1_cover, 228);
7562
7594
 
7563
7595
  /**
7564
7596
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7631,7 +7663,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7631
7663
  * Use `create(DataAccessSchema)` to create a new message.
7632
7664
  */
7633
7665
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7634
- messageDesc(file_cover_v1_cover, 227);
7666
+ messageDesc(file_cover_v1_cover, 229);
7635
7667
 
7636
7668
  /**
7637
7669
  * Request message for Register Data Access. For azure and gcp.
@@ -7687,7 +7719,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7687
7719
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7688
7720
  */
7689
7721
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7690
- messageDesc(file_cover_v1_cover, 228);
7722
+ messageDesc(file_cover_v1_cover, 230);
7691
7723
 
7692
7724
  /**
7693
7725
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7743,7 +7775,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7743
7775
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7744
7776
  */
7745
7777
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7746
- messageDesc(file_cover_v1_cover, 229);
7778
+ messageDesc(file_cover_v1_cover, 231);
7747
7779
 
7748
7780
  /**
7749
7781
  * Request message for ListDataAccess
@@ -7758,7 +7790,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7758
7790
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7759
7791
  */
7760
7792
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7761
- messageDesc(file_cover_v1_cover, 230);
7793
+ messageDesc(file_cover_v1_cover, 232);
7762
7794
 
7763
7795
  /**
7764
7796
  * Request message for ListUnregisteredAccounts
@@ -7773,7 +7805,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7773
7805
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7774
7806
  */
7775
7807
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7776
- messageDesc(file_cover_v1_cover, 231);
7808
+ messageDesc(file_cover_v1_cover, 233);
7777
7809
 
7778
7810
  /**
7779
7811
  * Response message for ListUnregisteredAccounts
@@ -7797,7 +7829,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7797
7829
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7798
7830
  */
7799
7831
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7800
- messageDesc(file_cover_v1_cover, 232);
7832
+ messageDesc(file_cover_v1_cover, 234);
7801
7833
 
7802
7834
  /**
7803
7835
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7831,7 +7863,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7831
7863
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7832
7864
  */
7833
7865
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7834
- messageDesc(file_cover_v1_cover, 233);
7866
+ messageDesc(file_cover_v1_cover, 235);
7835
7867
 
7836
7868
  /**
7837
7869
  * Request message for AddBillingAccount
@@ -7880,7 +7912,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7880
7912
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7881
7913
  */
7882
7914
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7883
- messageDesc(file_cover_v1_cover, 234);
7915
+ messageDesc(file_cover_v1_cover, 236);
7884
7916
 
7885
7917
  /**
7886
7918
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7913,7 +7945,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7913
7945
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7914
7946
  */
7915
7947
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7916
- messageDesc(file_cover_v1_cover, 235);
7948
+ messageDesc(file_cover_v1_cover, 237);
7917
7949
 
7918
7950
  /**
7919
7951
  * Request message for AddPartnerCenterCredentials
@@ -7948,7 +7980,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7948
7980
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7949
7981
  */
7950
7982
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7951
- messageDesc(file_cover_v1_cover, 236);
7983
+ messageDesc(file_cover_v1_cover, 238);
7952
7984
 
7953
7985
  /**
7954
7986
  * Request message for AddMpnSetting
@@ -7969,7 +8001,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7969
8001
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7970
8002
  */
7971
8003
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7972
- messageDesc(file_cover_v1_cover, 237);
8004
+ messageDesc(file_cover_v1_cover, 239);
7973
8005
 
7974
8006
  /**
7975
8007
  * Request message for GetCostGroupAttribute
@@ -8015,7 +8047,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
8015
8047
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
8016
8048
  */
8017
8049
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
8018
- messageDesc(file_cover_v1_cover, 238);
8050
+ messageDesc(file_cover_v1_cover, 240);
8019
8051
 
8020
8052
  /**
8021
8053
  * Response message for GetCostGroupAttribute
@@ -8039,7 +8071,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
8039
8071
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
8040
8072
  */
8041
8073
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
8042
- messageDesc(file_cover_v1_cover, 239);
8074
+ messageDesc(file_cover_v1_cover, 241);
8043
8075
 
8044
8076
  /**
8045
8077
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -8056,7 +8088,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
8056
8088
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
8057
8089
  */
8058
8090
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
8059
- messageDesc(file_cover_v1_cover, 240);
8091
+ messageDesc(file_cover_v1_cover, 242);
8060
8092
 
8061
8093
  /**
8062
8094
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -8073,7 +8105,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
8073
8105
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
8074
8106
  */
8075
8107
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
8076
- messageDesc(file_cover_v1_cover, 241);
8108
+ messageDesc(file_cover_v1_cover, 243);
8077
8109
 
8078
8110
  /**
8079
8111
  * Request message for GetAlerts
@@ -8088,7 +8120,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
8088
8120
  * Use `create(GetAlertsRequestSchema)` to create a new message.
8089
8121
  */
8090
8122
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
8091
- messageDesc(file_cover_v1_cover, 242);
8123
+ messageDesc(file_cover_v1_cover, 244);
8092
8124
 
8093
8125
  /**
8094
8126
  * Response message for GetAlerts
@@ -8107,7 +8139,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
8107
8139
  * Use `create(GetAlertsResponseSchema)` to create a new message.
8108
8140
  */
8109
8141
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
8110
- messageDesc(file_cover_v1_cover, 243);
8142
+ messageDesc(file_cover_v1_cover, 245);
8111
8143
 
8112
8144
  /**
8113
8145
  * Request message for CreateAlert
@@ -8161,7 +8193,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
8161
8193
  * Use `create(CreateAlertRequestSchema)` to create a new message.
8162
8194
  */
8163
8195
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
8164
- messageDesc(file_cover_v1_cover, 244);
8196
+ messageDesc(file_cover_v1_cover, 246);
8165
8197
 
8166
8198
  /**
8167
8199
  * Response message for CreateAlert
@@ -8180,7 +8212,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
8180
8212
  * Use `create(CreateAlertResponseSchema)` to create a new message.
8181
8213
  */
8182
8214
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
8183
- messageDesc(file_cover_v1_cover, 245);
8215
+ messageDesc(file_cover_v1_cover, 247);
8184
8216
 
8185
8217
  /**
8186
8218
  * Request message for GetAlertDetails
@@ -8201,7 +8233,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
8201
8233
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
8202
8234
  */
8203
8235
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
8204
- messageDesc(file_cover_v1_cover, 246);
8236
+ messageDesc(file_cover_v1_cover, 248);
8205
8237
 
8206
8238
  /**
8207
8239
  * Response message for GetAlertDetails
@@ -8220,7 +8252,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
8220
8252
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
8221
8253
  */
8222
8254
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
8223
- messageDesc(file_cover_v1_cover, 247);
8255
+ messageDesc(file_cover_v1_cover, 249);
8224
8256
 
8225
8257
  /**
8226
8258
  * Request message for DeleteAlert
@@ -8241,7 +8273,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
8241
8273
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
8242
8274
  */
8243
8275
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
8244
- messageDesc(file_cover_v1_cover, 248);
8276
+ messageDesc(file_cover_v1_cover, 250);
8245
8277
 
8246
8278
  /**
8247
8279
  * Response message for DeleteAlert
@@ -8260,7 +8292,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
8260
8292
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
8261
8293
  */
8262
8294
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
8263
- messageDesc(file_cover_v1_cover, 249);
8295
+ messageDesc(file_cover_v1_cover, 251);
8264
8296
 
8265
8297
  /**
8266
8298
  * Request message for UpdateAlertDetails
@@ -8322,7 +8354,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
8322
8354
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
8323
8355
  */
8324
8356
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
8325
- messageDesc(file_cover_v1_cover, 250);
8357
+ messageDesc(file_cover_v1_cover, 252);
8326
8358
 
8327
8359
  /**
8328
8360
  * Response message for UpdateAlertDetails
@@ -8341,7 +8373,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
8341
8373
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
8342
8374
  */
8343
8375
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
8344
- messageDesc(file_cover_v1_cover, 251);
8376
+ messageDesc(file_cover_v1_cover, 253);
8345
8377
 
8346
8378
  /**
8347
8379
  * Request message for GetChannels
@@ -8363,7 +8395,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
8363
8395
  * Use `create(GetChannelsRequestSchema)` to create a new message.
8364
8396
  */
8365
8397
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
8366
- messageDesc(file_cover_v1_cover, 252);
8398
+ messageDesc(file_cover_v1_cover, 254);
8367
8399
 
8368
8400
  /**
8369
8401
  * Response message for GetChannels
@@ -8382,7 +8414,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
8382
8414
  * Use `create(GetChannelsResponseSchema)` to create a new message.
8383
8415
  */
8384
8416
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
8385
- messageDesc(file_cover_v1_cover, 253);
8417
+ messageDesc(file_cover_v1_cover, 255);
8386
8418
 
8387
8419
  /**
8388
8420
  * Request message for CreateChannel
@@ -8417,7 +8449,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8417
8449
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8418
8450
  */
8419
8451
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8420
- messageDesc(file_cover_v1_cover, 254);
8452
+ messageDesc(file_cover_v1_cover, 256);
8421
8453
 
8422
8454
  /**
8423
8455
  * Response message for CreateChannel
@@ -8436,7 +8468,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8436
8468
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8437
8469
  */
8438
8470
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8439
- messageDesc(file_cover_v1_cover, 255);
8471
+ messageDesc(file_cover_v1_cover, 257);
8440
8472
 
8441
8473
  /**
8442
8474
  * Request message for GetChannelDetails
@@ -8457,7 +8489,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8457
8489
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8458
8490
  */
8459
8491
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8460
- messageDesc(file_cover_v1_cover, 256);
8492
+ messageDesc(file_cover_v1_cover, 258);
8461
8493
 
8462
8494
  /**
8463
8495
  * Response message for GetChannelDetails
@@ -8476,7 +8508,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8476
8508
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8477
8509
  */
8478
8510
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8479
- messageDesc(file_cover_v1_cover, 257);
8511
+ messageDesc(file_cover_v1_cover, 259);
8480
8512
 
8481
8513
  /**
8482
8514
  * Request message for DeleteChannel
@@ -8497,7 +8529,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8497
8529
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8498
8530
  */
8499
8531
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8500
- messageDesc(file_cover_v1_cover, 258);
8532
+ messageDesc(file_cover_v1_cover, 260);
8501
8533
 
8502
8534
  /**
8503
8535
  * Response message for DeleteChannel
@@ -8516,7 +8548,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8516
8548
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8517
8549
  */
8518
8550
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8519
- messageDesc(file_cover_v1_cover, 259);
8551
+ messageDesc(file_cover_v1_cover, 261);
8520
8552
 
8521
8553
  /**
8522
8554
  * Request message for UpdateChannelDetails
@@ -8559,7 +8591,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8559
8591
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8560
8592
  */
8561
8593
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8562
- messageDesc(file_cover_v1_cover, 260);
8594
+ messageDesc(file_cover_v1_cover, 262);
8563
8595
 
8564
8596
  /**
8565
8597
  * Response message for UpdateChannelDetails
@@ -8578,7 +8610,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8578
8610
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8579
8611
  */
8580
8612
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8581
- messageDesc(file_cover_v1_cover, 261);
8613
+ messageDesc(file_cover_v1_cover, 263);
8582
8614
 
8583
8615
  /**
8584
8616
  * Request message for GetDiscountRecomemendations
@@ -8620,7 +8652,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8620
8652
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8621
8653
  */
8622
8654
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8623
- messageDesc(file_cover_v1_cover, 262);
8655
+ messageDesc(file_cover_v1_cover, 264);
8624
8656
 
8625
8657
  /**
8626
8658
  * Response message for GetDiscountRecommendations
@@ -8649,7 +8681,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8649
8681
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8650
8682
  */
8651
8683
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8652
- messageDesc(file_cover_v1_cover, 263);
8684
+ messageDesc(file_cover_v1_cover, 265);
8653
8685
 
8654
8686
  /**
8655
8687
  * Request message for getting anomaly
@@ -8682,7 +8714,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8682
8714
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8683
8715
  */
8684
8716
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8685
- messageDesc(file_cover_v1_cover, 264);
8717
+ messageDesc(file_cover_v1_cover, 266);
8686
8718
 
8687
8719
  /**
8688
8720
  * Message response for anomaly detection
@@ -8761,7 +8793,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8761
8793
  * Use `create(AnomalyDataSchema)` to create a new message.
8762
8794
  */
8763
8795
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8764
- messageDesc(file_cover_v1_cover, 265);
8796
+ messageDesc(file_cover_v1_cover, 267);
8765
8797
 
8766
8798
  /**
8767
8799
  * Request message for CreateDiscountExpirationAlert
@@ -8812,7 +8844,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8812
8844
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8813
8845
  */
8814
8846
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8815
- messageDesc(file_cover_v1_cover, 266);
8847
+ messageDesc(file_cover_v1_cover, 268);
8816
8848
 
8817
8849
  /**
8818
8850
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8831,7 +8863,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8831
8863
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8832
8864
  */
8833
8865
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8834
- messageDesc(file_cover_v1_cover, 267);
8866
+ messageDesc(file_cover_v1_cover, 269);
8835
8867
 
8836
8868
  /**
8837
8869
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8885,7 +8917,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8885
8917
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8886
8918
  */
8887
8919
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8888
- messageDesc(file_cover_v1_cover, 268);
8920
+ messageDesc(file_cover_v1_cover, 270);
8889
8921
 
8890
8922
  /**
8891
8923
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8937,7 +8969,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8937
8969
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8938
8970
  */
8939
8971
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8940
- messageDesc(file_cover_v1_cover, 269);
8972
+ messageDesc(file_cover_v1_cover, 271);
8941
8973
 
8942
8974
  /**
8943
8975
  * Request message for ListDiscountExpirationAlert
@@ -8952,7 +8984,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8952
8984
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8953
8985
  */
8954
8986
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8955
- messageDesc(file_cover_v1_cover, 270);
8987
+ messageDesc(file_cover_v1_cover, 272);
8956
8988
 
8957
8989
  /**
8958
8990
  * Rquest message for CreateAnomalyAlert
@@ -9001,7 +9033,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
9001
9033
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
9002
9034
  */
9003
9035
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
9004
- messageDesc(file_cover_v1_cover, 271);
9036
+ messageDesc(file_cover_v1_cover, 273);
9005
9037
 
9006
9038
  /**
9007
9039
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -9020,7 +9052,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
9020
9052
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
9021
9053
  */
9022
9054
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
9023
- messageDesc(file_cover_v1_cover, 272);
9055
+ messageDesc(file_cover_v1_cover, 274);
9024
9056
 
9025
9057
  /**
9026
9058
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -9067,7 +9099,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
9067
9099
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
9068
9100
  */
9069
9101
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
9070
- messageDesc(file_cover_v1_cover, 273);
9102
+ messageDesc(file_cover_v1_cover, 275);
9071
9103
 
9072
9104
  /**
9073
9105
  * Request message for ListAnomalyAlert
@@ -9082,7 +9114,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
9082
9114
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
9083
9115
  */
9084
9116
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
9085
- messageDesc(file_cover_v1_cover, 274);
9117
+ messageDesc(file_cover_v1_cover, 276);
9086
9118
 
9087
9119
  /**
9088
9120
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -9136,7 +9168,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
9136
9168
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
9137
9169
  */
9138
9170
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
9139
- messageDesc(file_cover_v1_cover, 275);
9171
+ messageDesc(file_cover_v1_cover, 277);
9140
9172
 
9141
9173
  /**
9142
9174
  * Request message for RegisterNewUser
@@ -9199,7 +9231,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
9199
9231
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
9200
9232
  */
9201
9233
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
9202
- messageDesc(file_cover_v1_cover, 276);
9234
+ messageDesc(file_cover_v1_cover, 278);
9203
9235
 
9204
9236
  /**
9205
9237
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -9216,7 +9248,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
9216
9248
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
9217
9249
  */
9218
9250
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
9219
- messageDesc(file_cover_v1_cover, 277);
9251
+ messageDesc(file_cover_v1_cover, 279);
9220
9252
 
9221
9253
  /**
9222
9254
  * Request message for GetUserProfile
@@ -9237,7 +9269,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
9237
9269
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
9238
9270
  */
9239
9271
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
9240
- messageDesc(file_cover_v1_cover, 278);
9272
+ messageDesc(file_cover_v1_cover, 280);
9241
9273
 
9242
9274
  /**
9243
9275
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -9294,7 +9326,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
9294
9326
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
9295
9327
  */
9296
9328
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
9297
- messageDesc(file_cover_v1_cover, 279);
9329
+ messageDesc(file_cover_v1_cover, 281);
9298
9330
 
9299
9331
  /**
9300
9332
  * Request message for UpdateUserProfile
@@ -9350,7 +9382,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
9350
9382
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
9351
9383
  */
9352
9384
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
9353
- messageDesc(file_cover_v1_cover, 280);
9385
+ messageDesc(file_cover_v1_cover, 282);
9354
9386
 
9355
9387
  /**
9356
9388
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -9402,7 +9434,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
9402
9434
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
9403
9435
  */
9404
9436
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
9405
- messageDesc(file_cover_v1_cover, 281);
9437
+ messageDesc(file_cover_v1_cover, 283);
9406
9438
 
9407
9439
  /**
9408
9440
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9428,7 +9460,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9428
9460
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9429
9461
  */
9430
9462
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9431
- messageDesc(file_cover_v1_cover, 282);
9463
+ messageDesc(file_cover_v1_cover, 284);
9432
9464
 
9433
9465
  /**
9434
9466
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9445,7 +9477,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9445
9477
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9446
9478
  */
9447
9479
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9448
- messageDesc(file_cover_v1_cover, 283);
9480
+ messageDesc(file_cover_v1_cover, 285);
9449
9481
 
9450
9482
  /**
9451
9483
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9464,7 +9496,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9464
9496
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9465
9497
  */
9466
9498
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9467
- messageDesc(file_cover_v1_cover, 284);
9499
+ messageDesc(file_cover_v1_cover, 286);
9468
9500
 
9469
9501
  /**
9470
9502
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9481,7 +9513,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9481
9513
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9482
9514
  */
9483
9515
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9484
- messageDesc(file_cover_v1_cover, 285);
9516
+ messageDesc(file_cover_v1_cover, 287);
9485
9517
 
9486
9518
  /**
9487
9519
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9498,7 +9530,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9498
9530
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9499
9531
  */
9500
9532
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9501
- messageDesc(file_cover_v1_cover, 286);
9533
+ messageDesc(file_cover_v1_cover, 288);
9502
9534
 
9503
9535
  /**
9504
9536
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9515,7 +9547,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9515
9547
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9516
9548
  */
9517
9549
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9518
- messageDesc(file_cover_v1_cover, 287);
9550
+ messageDesc(file_cover_v1_cover, 289);
9519
9551
 
9520
9552
  /**
9521
9553
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9534,7 +9566,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9534
9566
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9535
9567
  */
9536
9568
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9537
- messageDesc(file_cover_v1_cover, 288);
9569
+ messageDesc(file_cover_v1_cover, 290);
9538
9570
 
9539
9571
  /**
9540
9572
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9551,7 +9583,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9551
9583
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9552
9584
  */
9553
9585
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9554
- messageDesc(file_cover_v1_cover, 289);
9586
+ messageDesc(file_cover_v1_cover, 291);
9555
9587
 
9556
9588
  /**
9557
9589
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9575,7 +9607,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9575
9607
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9576
9608
  */
9577
9609
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9578
- messageDesc(file_cover_v1_cover, 290);
9610
+ messageDesc(file_cover_v1_cover, 292);
9579
9611
 
9580
9612
  /**
9581
9613
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9592,7 +9624,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9592
9624
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9593
9625
  */
9594
9626
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9595
- messageDesc(file_cover_v1_cover, 291);
9627
+ messageDesc(file_cover_v1_cover, 293);
9596
9628
 
9597
9629
  /**
9598
9630
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9609,7 +9641,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9609
9641
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9610
9642
  */
9611
9643
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9612
- messageDesc(file_cover_v1_cover, 292);
9644
+ messageDesc(file_cover_v1_cover, 294);
9613
9645
 
9614
9646
  /**
9615
9647
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9631,7 +9663,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9631
9663
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9632
9664
  */
9633
9665
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9634
- messageDesc(file_cover_v1_cover, 293);
9666
+ messageDesc(file_cover_v1_cover, 295);
9635
9667
 
9636
9668
  /**
9637
9669
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9644,7 +9676,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9644
9676
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9645
9677
  */
9646
9678
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9647
- messageDesc(file_cover_v1_cover, 294);
9679
+ messageDesc(file_cover_v1_cover, 296);
9648
9680
 
9649
9681
  /**
9650
9682
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9706,7 +9738,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9706
9738
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9707
9739
  */
9708
9740
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9709
- messageDesc(file_cover_v1_cover, 295);
9741
+ messageDesc(file_cover_v1_cover, 297);
9710
9742
 
9711
9743
  /**
9712
9744
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9758,7 +9790,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9758
9790
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9759
9791
  */
9760
9792
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9761
- messageDesc(file_cover_v1_cover, 296);
9793
+ messageDesc(file_cover_v1_cover, 298);
9762
9794
 
9763
9795
  /**
9764
9796
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9771,7 +9803,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9771
9803
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9772
9804
  */
9773
9805
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9774
- messageDesc(file_cover_v1_cover, 297);
9806
+ messageDesc(file_cover_v1_cover, 299);
9775
9807
 
9776
9808
  /**
9777
9809
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9788,7 +9820,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9788
9820
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9789
9821
  */
9790
9822
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9791
- messageDesc(file_cover_v1_cover, 298);
9823
+ messageDesc(file_cover_v1_cover, 300);
9792
9824
 
9793
9825
  /**
9794
9826
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9801,7 +9833,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9801
9833
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9802
9834
  */
9803
9835
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9804
- messageDesc(file_cover_v1_cover, 299);
9836
+ messageDesc(file_cover_v1_cover, 301);
9805
9837
 
9806
9838
  /**
9807
9839
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9848,7 +9880,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9848
9880
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9849
9881
  */
9850
9882
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9851
- messageDesc(file_cover_v1_cover, 300);
9883
+ messageDesc(file_cover_v1_cover, 302);
9852
9884
 
9853
9885
  /**
9854
9886
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9890,7 +9922,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9890
9922
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9891
9923
  */
9892
9924
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9893
- messageDesc(file_cover_v1_cover, 301);
9925
+ messageDesc(file_cover_v1_cover, 303);
9894
9926
 
9895
9927
  /**
9896
9928
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9988,7 +10020,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9988
10020
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9989
10021
  */
9990
10022
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9991
- messageDesc(file_cover_v1_cover, 302);
10023
+ messageDesc(file_cover_v1_cover, 304);
9992
10024
 
9993
10025
  /**
9994
10026
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -10027,7 +10059,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
10027
10059
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
10028
10060
  */
10029
10061
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
10030
- messageDesc(file_cover_v1_cover, 303);
10062
+ messageDesc(file_cover_v1_cover, 305);
10031
10063
 
10032
10064
  /**
10033
10065
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -10074,7 +10106,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
10074
10106
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
10075
10107
  */
10076
10108
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
10077
- messageDesc(file_cover_v1_cover, 303, 0);
10109
+ messageDesc(file_cover_v1_cover, 305, 0);
10078
10110
 
10079
10111
  /**
10080
10112
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -10216,7 +10248,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
10216
10248
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
10217
10249
  */
10218
10250
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
10219
- messageDesc(file_cover_v1_cover, 304);
10251
+ messageDesc(file_cover_v1_cover, 306);
10220
10252
 
10221
10253
  /**
10222
10254
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -10273,7 +10305,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
10273
10305
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
10274
10306
  */
10275
10307
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
10276
- messageDesc(file_cover_v1_cover, 304, 0);
10308
+ messageDesc(file_cover_v1_cover, 306, 0);
10277
10309
 
10278
10310
  /**
10279
10311
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -10302,7 +10334,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
10302
10334
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
10303
10335
  */
10304
10336
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
10305
- messageDesc(file_cover_v1_cover, 305);
10337
+ messageDesc(file_cover_v1_cover, 307);
10306
10338
 
10307
10339
  /**
10308
10340
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -10319,7 +10351,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
10319
10351
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
10320
10352
  */
10321
10353
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
10322
- messageDesc(file_cover_v1_cover, 306);
10354
+ messageDesc(file_cover_v1_cover, 308);
10323
10355
 
10324
10356
  /**
10325
10357
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -10341,7 +10373,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
10341
10373
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
10342
10374
  */
10343
10375
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
10344
- messageDesc(file_cover_v1_cover, 307);
10376
+ messageDesc(file_cover_v1_cover, 309);
10345
10377
 
10346
10378
  /**
10347
10379
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -10376,7 +10408,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
10376
10408
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
10377
10409
  */
10378
10410
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
10379
- messageDesc(file_cover_v1_cover, 308);
10411
+ messageDesc(file_cover_v1_cover, 310);
10380
10412
 
10381
10413
  /**
10382
10414
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -10403,7 +10435,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
10403
10435
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
10404
10436
  */
10405
10437
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
10406
- messageDesc(file_cover_v1_cover, 308, 0);
10438
+ messageDesc(file_cover_v1_cover, 310, 0);
10407
10439
 
10408
10440
  /**
10409
10441
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10416,7 +10448,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10416
10448
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10417
10449
  */
10418
10450
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10419
- messageDesc(file_cover_v1_cover, 308, 1);
10451
+ messageDesc(file_cover_v1_cover, 310, 1);
10420
10452
 
10421
10453
  /**
10422
10454
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10429,7 +10461,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10429
10461
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10430
10462
  */
10431
10463
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10432
- messageDesc(file_cover_v1_cover, 308, 2);
10464
+ messageDesc(file_cover_v1_cover, 310, 2);
10433
10465
 
10434
10466
  /**
10435
10467
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10446,7 +10478,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10446
10478
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10447
10479
  */
10448
10480
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10449
- messageDesc(file_cover_v1_cover, 309);
10481
+ messageDesc(file_cover_v1_cover, 311);
10450
10482
 
10451
10483
  /**
10452
10484
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10459,7 +10491,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10459
10491
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10460
10492
  */
10461
10493
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10462
- messageDesc(file_cover_v1_cover, 310);
10494
+ messageDesc(file_cover_v1_cover, 312);
10463
10495
 
10464
10496
  /**
10465
10497
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10476,7 +10508,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10476
10508
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10477
10509
  */
10478
10510
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10479
- messageDesc(file_cover_v1_cover, 311);
10511
+ messageDesc(file_cover_v1_cover, 313);
10480
10512
 
10481
10513
  /**
10482
10514
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10489,7 +10521,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10489
10521
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10490
10522
  */
10491
10523
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10492
- messageDesc(file_cover_v1_cover, 312);
10524
+ messageDesc(file_cover_v1_cover, 314);
10493
10525
 
10494
10526
  /**
10495
10527
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10550,7 +10582,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10550
10582
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10551
10583
  */
10552
10584
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10553
- messageDesc(file_cover_v1_cover, 313);
10585
+ messageDesc(file_cover_v1_cover, 315);
10554
10586
 
10555
10587
  /**
10556
10588
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10567,7 +10599,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10567
10599
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10568
10600
  */
10569
10601
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10570
- messageDesc(file_cover_v1_cover, 314);
10602
+ messageDesc(file_cover_v1_cover, 316);
10571
10603
 
10572
10604
  /**
10573
10605
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10600,7 +10632,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10600
10632
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10601
10633
  */
10602
10634
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10603
- messageDesc(file_cover_v1_cover, 315);
10635
+ messageDesc(file_cover_v1_cover, 317);
10604
10636
 
10605
10637
  /**
10606
10638
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10622,7 +10654,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10622
10654
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10623
10655
  */
10624
10656
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10625
- messageDesc(file_cover_v1_cover, 316);
10657
+ messageDesc(file_cover_v1_cover, 318);
10626
10658
 
10627
10659
  /**
10628
10660
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10662,7 +10694,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10662
10694
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10663
10695
  */
10664
10696
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10665
- messageDesc(file_cover_v1_cover, 317);
10697
+ messageDesc(file_cover_v1_cover, 319);
10666
10698
 
10667
10699
  /**
10668
10700
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10684,7 +10716,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10684
10716
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10685
10717
  */
10686
10718
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10687
- messageDesc(file_cover_v1_cover, 318);
10719
+ messageDesc(file_cover_v1_cover, 320);
10688
10720
 
10689
10721
  /**
10690
10722
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10703,7 +10735,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10703
10735
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10704
10736
  */
10705
10737
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10706
- messageDesc(file_cover_v1_cover, 319);
10738
+ messageDesc(file_cover_v1_cover, 321);
10707
10739
 
10708
10740
  /**
10709
10741
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10720,7 +10752,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10720
10752
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10721
10753
  */
10722
10754
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10723
- messageDesc(file_cover_v1_cover, 320);
10755
+ messageDesc(file_cover_v1_cover, 322);
10724
10756
 
10725
10757
  /**
10726
10758
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10733,7 +10765,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10733
10765
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10734
10766
  */
10735
10767
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10736
- messageDesc(file_cover_v1_cover, 321);
10768
+ messageDesc(file_cover_v1_cover, 323);
10737
10769
 
10738
10770
  /**
10739
10771
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10755,7 +10787,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10755
10787
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10756
10788
  */
10757
10789
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10758
- messageDesc(file_cover_v1_cover, 322);
10790
+ messageDesc(file_cover_v1_cover, 324);
10759
10791
 
10760
10792
  /**
10761
10793
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10795,7 +10827,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10795
10827
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10796
10828
  */
10797
10829
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10798
- messageDesc(file_cover_v1_cover, 323);
10830
+ messageDesc(file_cover_v1_cover, 325);
10799
10831
 
10800
10832
  /**
10801
10833
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10812,7 +10844,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10812
10844
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10813
10845
  */
10814
10846
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10815
- messageDesc(file_cover_v1_cover, 324);
10847
+ messageDesc(file_cover_v1_cover, 326);
10816
10848
 
10817
10849
  /**
10818
10850
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10829,7 +10861,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10829
10861
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10830
10862
  */
10831
10863
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10832
- messageDesc(file_cover_v1_cover, 325);
10864
+ messageDesc(file_cover_v1_cover, 327);
10833
10865
 
10834
10866
  /**
10835
10867
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10846,7 +10878,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10846
10878
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10847
10879
  */
10848
10880
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10849
- messageDesc(file_cover_v1_cover, 326);
10881
+ messageDesc(file_cover_v1_cover, 328);
10850
10882
 
10851
10883
  /**
10852
10884
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10859,7 +10891,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10859
10891
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10860
10892
  */
10861
10893
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10862
- messageDesc(file_cover_v1_cover, 327);
10894
+ messageDesc(file_cover_v1_cover, 329);
10863
10895
 
10864
10896
  /**
10865
10897
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10876,7 +10908,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10876
10908
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10877
10909
  */
10878
10910
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10879
- messageDesc(file_cover_v1_cover, 328);
10911
+ messageDesc(file_cover_v1_cover, 330);
10880
10912
 
10881
10913
  /**
10882
10914
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10908,7 +10940,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10908
10940
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10909
10941
  */
10910
10942
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10911
- messageDesc(file_cover_v1_cover, 329);
10943
+ messageDesc(file_cover_v1_cover, 331);
10912
10944
 
10913
10945
  /**
10914
10946
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10925,7 +10957,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10925
10957
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10926
10958
  */
10927
10959
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10928
- messageDesc(file_cover_v1_cover, 330);
10960
+ messageDesc(file_cover_v1_cover, 332);
10929
10961
 
10930
10962
  /**
10931
10963
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10944,7 +10976,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10944
10976
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10945
10977
  */
10946
10978
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10947
- messageDesc(file_cover_v1_cover, 331);
10979
+ messageDesc(file_cover_v1_cover, 333);
10948
10980
 
10949
10981
  /**
10950
10982
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10961,7 +10993,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10961
10993
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10962
10994
  */
10963
10995
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10964
- messageDesc(file_cover_v1_cover, 332);
10996
+ messageDesc(file_cover_v1_cover, 334);
10965
10997
 
10966
10998
  /**
10967
10999
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -11008,7 +11040,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
11008
11040
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
11009
11041
  */
11010
11042
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
11011
- messageDesc(file_cover_v1_cover, 333);
11043
+ messageDesc(file_cover_v1_cover, 335);
11012
11044
 
11013
11045
  /**
11014
11046
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -11025,7 +11057,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
11025
11057
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
11026
11058
  */
11027
11059
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
11028
- messageDesc(file_cover_v1_cover, 334);
11060
+ messageDesc(file_cover_v1_cover, 336);
11029
11061
 
11030
11062
  /**
11031
11063
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -11044,7 +11076,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
11044
11076
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
11045
11077
  */
11046
11078
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
11047
- messageDesc(file_cover_v1_cover, 335);
11079
+ messageDesc(file_cover_v1_cover, 337);
11048
11080
 
11049
11081
  /**
11050
11082
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -11061,7 +11093,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
11061
11093
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
11062
11094
  */
11063
11095
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
11064
- messageDesc(file_cover_v1_cover, 336);
11096
+ messageDesc(file_cover_v1_cover, 338);
11065
11097
 
11066
11098
  /**
11067
11099
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -11088,7 +11120,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
11088
11120
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
11089
11121
  */
11090
11122
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
11091
- messageDesc(file_cover_v1_cover, 337);
11123
+ messageDesc(file_cover_v1_cover, 339);
11092
11124
 
11093
11125
  /**
11094
11126
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -11105,7 +11137,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
11105
11137
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
11106
11138
  */
11107
11139
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
11108
- messageDesc(file_cover_v1_cover, 338);
11140
+ messageDesc(file_cover_v1_cover, 340);
11109
11141
 
11110
11142
  /**
11111
11143
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -11118,7 +11150,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
11118
11150
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
11119
11151
  */
11120
11152
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
11121
- messageDesc(file_cover_v1_cover, 339);
11153
+ messageDesc(file_cover_v1_cover, 341);
11122
11154
 
11123
11155
  /**
11124
11156
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -11135,7 +11167,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
11135
11167
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
11136
11168
  */
11137
11169
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
11138
- messageDesc(file_cover_v1_cover, 340);
11170
+ messageDesc(file_cover_v1_cover, 342);
11139
11171
 
11140
11172
  /**
11141
11173
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -11167,7 +11199,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
11167
11199
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
11168
11200
  */
11169
11201
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
11170
- messageDesc(file_cover_v1_cover, 341);
11202
+ messageDesc(file_cover_v1_cover, 343);
11171
11203
 
11172
11204
  /**
11173
11205
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -11184,7 +11216,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
11184
11216
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
11185
11217
  */
11186
11218
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
11187
- messageDesc(file_cover_v1_cover, 342);
11219
+ messageDesc(file_cover_v1_cover, 344);
11188
11220
 
11189
11221
  /**
11190
11222
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -11201,7 +11233,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
11201
11233
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
11202
11234
  */
11203
11235
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
11204
- messageDesc(file_cover_v1_cover, 343);
11236
+ messageDesc(file_cover_v1_cover, 345);
11205
11237
 
11206
11238
  /**
11207
11239
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -11218,7 +11250,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
11218
11250
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
11219
11251
  */
11220
11252
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
11221
- messageDesc(file_cover_v1_cover, 344);
11253
+ messageDesc(file_cover_v1_cover, 346);
11222
11254
 
11223
11255
  /**
11224
11256
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -11231,7 +11263,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
11231
11263
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
11232
11264
  */
11233
11265
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
11234
- messageDesc(file_cover_v1_cover, 345);
11266
+ messageDesc(file_cover_v1_cover, 347);
11235
11267
 
11236
11268
  /**
11237
11269
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -11248,7 +11280,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
11248
11280
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
11249
11281
  */
11250
11282
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
11251
- messageDesc(file_cover_v1_cover, 346);
11283
+ messageDesc(file_cover_v1_cover, 348);
11252
11284
 
11253
11285
  /**
11254
11286
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -11292,7 +11324,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
11292
11324
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
11293
11325
  */
11294
11326
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
11295
- messageDesc(file_cover_v1_cover, 347);
11327
+ messageDesc(file_cover_v1_cover, 349);
11296
11328
 
11297
11329
  /**
11298
11330
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -11309,7 +11341,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
11309
11341
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
11310
11342
  */
11311
11343
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
11312
- messageDesc(file_cover_v1_cover, 348);
11344
+ messageDesc(file_cover_v1_cover, 350);
11313
11345
 
11314
11346
  /**
11315
11347
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -11328,7 +11360,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
11328
11360
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
11329
11361
  */
11330
11362
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
11331
- messageDesc(file_cover_v1_cover, 349);
11363
+ messageDesc(file_cover_v1_cover, 351);
11332
11364
 
11333
11365
  /**
11334
11366
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -11345,7 +11377,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
11345
11377
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
11346
11378
  */
11347
11379
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
11348
- messageDesc(file_cover_v1_cover, 350);
11380
+ messageDesc(file_cover_v1_cover, 352);
11349
11381
 
11350
11382
  /**
11351
11383
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -11406,7 +11438,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
11406
11438
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
11407
11439
  */
11408
11440
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
11409
- messageDesc(file_cover_v1_cover, 351);
11441
+ messageDesc(file_cover_v1_cover, 353);
11410
11442
 
11411
11443
  /**
11412
11444
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11423,7 +11455,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11423
11455
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11424
11456
  */
11425
11457
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11426
- messageDesc(file_cover_v1_cover, 352);
11458
+ messageDesc(file_cover_v1_cover, 354);
11427
11459
 
11428
11460
  /**
11429
11461
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11442,7 +11474,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11442
11474
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11443
11475
  */
11444
11476
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11445
- messageDesc(file_cover_v1_cover, 353);
11477
+ messageDesc(file_cover_v1_cover, 355);
11446
11478
 
11447
11479
  /**
11448
11480
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11459,7 +11491,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11459
11491
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11460
11492
  */
11461
11493
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11462
- messageDesc(file_cover_v1_cover, 354);
11494
+ messageDesc(file_cover_v1_cover, 356);
11463
11495
 
11464
11496
  /**
11465
11497
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11492,7 +11524,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11492
11524
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11493
11525
  */
11494
11526
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11495
- messageDesc(file_cover_v1_cover, 355);
11527
+ messageDesc(file_cover_v1_cover, 357);
11496
11528
 
11497
11529
  /**
11498
11530
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11509,7 +11541,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11509
11541
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11510
11542
  */
11511
11543
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11512
- messageDesc(file_cover_v1_cover, 356);
11544
+ messageDesc(file_cover_v1_cover, 358);
11513
11545
 
11514
11546
  /**
11515
11547
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11553,7 +11585,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11553
11585
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11554
11586
  */
11555
11587
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11556
- messageDesc(file_cover_v1_cover, 357);
11588
+ messageDesc(file_cover_v1_cover, 359);
11557
11589
 
11558
11590
  /**
11559
11591
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11570,7 +11602,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11570
11602
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11571
11603
  */
11572
11604
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11573
- messageDesc(file_cover_v1_cover, 358);
11605
+ messageDesc(file_cover_v1_cover, 360);
11574
11606
 
11575
11607
  /**
11576
11608
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11589,7 +11621,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11589
11621
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11590
11622
  */
11591
11623
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11592
- messageDesc(file_cover_v1_cover, 359);
11624
+ messageDesc(file_cover_v1_cover, 361);
11593
11625
 
11594
11626
  /**
11595
11627
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11606,7 +11638,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11606
11638
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11607
11639
  */
11608
11640
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11609
- messageDesc(file_cover_v1_cover, 360);
11641
+ messageDesc(file_cover_v1_cover, 362);
11610
11642
 
11611
11643
  /**
11612
11644
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11667,7 +11699,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11667
11699
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11668
11700
  */
11669
11701
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11670
- messageDesc(file_cover_v1_cover, 361);
11702
+ messageDesc(file_cover_v1_cover, 363);
11671
11703
 
11672
11704
  /**
11673
11705
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11684,7 +11716,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11684
11716
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11685
11717
  */
11686
11718
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11687
- messageDesc(file_cover_v1_cover, 362);
11719
+ messageDesc(file_cover_v1_cover, 364);
11688
11720
 
11689
11721
  /**
11690
11722
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11703,7 +11735,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11703
11735
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11704
11736
  */
11705
11737
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11706
- messageDesc(file_cover_v1_cover, 363);
11738
+ messageDesc(file_cover_v1_cover, 365);
11707
11739
 
11708
11740
  /**
11709
11741
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11720,7 +11752,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11720
11752
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11721
11753
  */
11722
11754
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11723
- messageDesc(file_cover_v1_cover, 364);
11755
+ messageDesc(file_cover_v1_cover, 366);
11724
11756
 
11725
11757
  /**
11726
11758
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11764,7 +11796,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11764
11796
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11765
11797
  */
11766
11798
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11767
- messageDesc(file_cover_v1_cover, 365);
11799
+ messageDesc(file_cover_v1_cover, 367);
11768
11800
 
11769
11801
  /**
11770
11802
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11790,7 +11822,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11790
11822
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11791
11823
  */
11792
11824
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11793
- messageDesc(file_cover_v1_cover, 366);
11825
+ messageDesc(file_cover_v1_cover, 368);
11794
11826
 
11795
11827
  /**
11796
11828
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11810,7 +11842,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11810
11842
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11811
11843
  */
11812
11844
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11813
- messageDesc(file_cover_v1_cover, 367);
11845
+ messageDesc(file_cover_v1_cover, 369);
11814
11846
 
11815
11847
  /**
11816
11848
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11838,7 +11870,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11838
11870
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11839
11871
  */
11840
11872
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11841
- messageDesc(file_cover_v1_cover, 368);
11873
+ messageDesc(file_cover_v1_cover, 370);
11842
11874
 
11843
11875
  /**
11844
11876
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11890,7 +11922,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11890
11922
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11891
11923
  */
11892
11924
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11893
- messageDesc(file_cover_v1_cover, 369);
11925
+ messageDesc(file_cover_v1_cover, 371);
11894
11926
 
11895
11927
  /**
11896
11928
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11917,7 +11949,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11917
11949
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11918
11950
  */
11919
11951
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11920
- messageDesc(file_cover_v1_cover, 370);
11952
+ messageDesc(file_cover_v1_cover, 372);
11921
11953
 
11922
11954
  /**
11923
11955
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11939,7 +11971,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11939
11971
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11940
11972
  */
11941
11973
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11942
- messageDesc(file_cover_v1_cover, 370, 0);
11974
+ messageDesc(file_cover_v1_cover, 372, 0);
11943
11975
 
11944
11976
  /**
11945
11977
  * Request message for GetDiscountPlan
@@ -12037,7 +12069,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
12037
12069
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
12038
12070
  */
12039
12071
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
12040
- messageDesc(file_cover_v1_cover, 371);
12072
+ messageDesc(file_cover_v1_cover, 373);
12041
12073
 
12042
12074
  /**
12043
12075
  * Response message for GetDiscountPlan
@@ -12061,7 +12093,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
12061
12093
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
12062
12094
  */
12063
12095
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
12064
- messageDesc(file_cover_v1_cover, 372);
12096
+ messageDesc(file_cover_v1_cover, 374);
12065
12097
 
12066
12098
  /**
12067
12099
  * Request message for ListNonperformingRate
@@ -12110,7 +12142,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
12110
12142
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
12111
12143
  */
12112
12144
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
12113
- messageDesc(file_cover_v1_cover, 373);
12145
+ messageDesc(file_cover_v1_cover, 375);
12114
12146
 
12115
12147
  /**
12116
12148
  * Response message for ListNonperformingRate
@@ -12129,7 +12161,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
12129
12161
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
12130
12162
  */
12131
12163
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
12132
- messageDesc(file_cover_v1_cover, 374);
12164
+ messageDesc(file_cover_v1_cover, 376);
12133
12165
 
12134
12166
  /**
12135
12167
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -12161,7 +12193,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
12161
12193
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
12162
12194
  */
12163
12195
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
12164
- messageDesc(file_cover_v1_cover, 374, 0);
12196
+ messageDesc(file_cover_v1_cover, 376, 0);
12165
12197
 
12166
12198
  /**
12167
12199
  * Request message for ListUntaggedResources
@@ -12210,7 +12242,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
12210
12242
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
12211
12243
  */
12212
12244
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
12213
- messageDesc(file_cover_v1_cover, 375);
12245
+ messageDesc(file_cover_v1_cover, 377);
12214
12246
 
12215
12247
  /**
12216
12248
  * Response message for ListUntaggedResources
@@ -12229,7 +12261,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
12229
12261
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
12230
12262
  */
12231
12263
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
12232
- messageDesc(file_cover_v1_cover, 376);
12264
+ messageDesc(file_cover_v1_cover, 378);
12233
12265
 
12234
12266
  /**
12235
12267
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -12271,7 +12303,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
12271
12303
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
12272
12304
  */
12273
12305
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
12274
- messageDesc(file_cover_v1_cover, 376, 0);
12306
+ messageDesc(file_cover_v1_cover, 378, 0);
12275
12307
 
12276
12308
  /**
12277
12309
  * Status of upload file
@@ -14306,6 +14338,16 @@ export const Cover: GenService<{
14306
14338
  input: typeof GetUserRequestSchema;
14307
14339
  output: typeof GetUserResponseSchema;
14308
14340
  },
14341
+ /**
14342
+ * Lists the roles and cost groups assigned to the authenticated user.
14343
+ *
14344
+ * @generated from rpc blueapi.cover.v1.Cover.GetMyRoles
14345
+ */
14346
+ getMyRoles: {
14347
+ methodKind: "unary";
14348
+ input: typeof GetMyRolesRequestSchema;
14349
+ output: typeof GetMyRolesResponseSchema;
14350
+ },
14309
14351
  }> = /*@__PURE__*/
14310
14352
  serviceDesc(file_cover_v1_cover, 0);
14311
14353