@alphauspkgs/blue-sdk-ts 1.0.27 → 1.0.29

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.
@@ -10,7 +10,7 @@ import type { RecommendationData } from "../../api/cover/recommendation/recommen
10
10
  import { file_api_cover_recommendation_recommendation } from "../../api/cover/recommendation/recommendation_pb";
11
11
  import type { Category, Result } from "../../api/cover/attribute_pb";
12
12
  import { file_api_cover_attribute } from "../../api/cover/attribute_pb";
13
- import type { MemberCostGroup, UserData } from "../../api/cover/user_pb";
13
+ import type { MemberCostGroup, User, UserData } from "../../api/cover/user_pb";
14
14
  import { file_api_cover_user } from "../../api/cover/user_pb";
15
15
  import type { Favorites, LayoutRequests, SideMenuState, ViewData, ViewLayout, ViewList, WidgetData } from "../../api/cover/view_pb";
16
16
  import { file_api_cover_view } from "../../api/cover/view_pb";
@@ -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,130 +48,71 @@ 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("ChRjb3Zlci92MS9jb3Zlci5wcm90bxIQYmx1ZWFwaS5jb3Zlci52MSITChFHZXRNeVJvbGVzUmVxdWVzdCI8ChJHZXRNeVJvbGVzUmVzcG9uc2USJgoFcm9sZXMYASADKAsyFy5ibHVlYXBpLmFwaS5jb3Zlci5Sb2xlIhwKDkdldFVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIjgKD0dldFVzZXJSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuYmx1ZWFwaS5hcGkuY292ZXIuVXNlciIhChNSZWludml0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFFJlaW52aXRlVXNlclJlc3BvbnNlIhIKEExpc3RVc2Vyc1JlcXVlc3Qi0gEKEUxpc3RVc2Vyc1Jlc3BvbnNlEj4KBXVzZXJzGAEgAygLMi8uYmx1ZWFwaS5jb3Zlci52MS5MaXN0VXNlcnNSZXNwb25zZS5Vc2VyU3VtbWFyeRp9CgtVc2VyU3VtbWFyeRIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIMCgRuYW1lGAMgASgJEg0KBXJvbGVzGAQgAygJEhEKCWFjdGl2YXRlZBgFIAEoCBIOCgZhdmF0YXIYBiABKAkSEwoLY29sb3JfdGhlbWUYByABKAkiUgoVVXBkYXRlVXNlclJvbGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEAoIcm9sZV9pZHMYAiADKAkSFgoOY29zdF9ncm91cF9pZHMYAyADKAkiPwoWVXBkYXRlVXNlclJvbGVSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuYmx1ZWFwaS5hcGkuY292ZXIuVXNlciIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiTQoSSW52aXRlVXNlcnNSZXF1ZXN0Eg4KBmVtYWlscxgBIAMoCRIPCgdyb2xlX2lkGAIgASgJEhYKDmNvc3RfZ3JvdXBfaWRzGAMgAygJIhUKE0ludml0ZVVzZXJzUmVzcG9uc2Ui7QEKHkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdBILCgNpZHMYASADKAkSUQoLZXhlY3V0ZVR5cGUYAiABKA4yPC5ibHVlYXBpLmNvdmVyLnYxLkV4ZWN1dGVSZWNvbW1lbmRhdGlvblYzUmVxdWVzdC5FeGVjdXRlVHlwZSJrCgtFeGVjdXRlVHlwZRILCgdERUZBVUxUEAASFAoQTUFSS19BU19FWEVDVVRFRBABEhEKDVVORE9fRVhFQ1VURUQQAhITCg9TVUJNSVRfVEVNUExBVEUQAxIRCg1SRVRSWV9FWEVDVVRFEAQiSgofRXhlY3V0ZVJlY29tbWVuZGF0aW9uVjNSZXNwb25zZRInCgZyZXN1bHQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsMBChxMaXN0UmVjb21tZW5kYXRpb25zVjNSZXF1ZXN0EhMKC2Nvc3Rncm91cElkGAEgASgJEhAKCHN0YXR1c2VzGAIgAygJEkwKB2ZpbHRlcnMYAyADKAsyOy5ibHVlYXBpLmNvdmVyLnYxLkxpc3RSZWNvbW1lbmRhdGlvbnNWM1JlcXVlc3QuRmlsdGVyc0VudHJ5Gi4KDEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvUDChVSZWNvbW1lbmRhdGlvblN1bW1hcnkSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZ0YXJnZXQYAyABKAkSEgoKdGFyZ2V0TmFtZRgSIAEoCRIQCghjYXRlZ29yeRgEIAEoCRIMCgR0eXBlGAUgASgJEg4KBnZlbmRvchgNIAEoCRIOCgZzb3VyY2UYEyABKAkSDAoEY29kZRgOIAEoCRIUCgdzZXJ2aWNlGA8gASgJSACIAQESEwoGcmVnaW9uGBAgASgJSAGIAQESFwoKcmVzb3VyY2VJZBgRIAEoCUgCiAEBEh8KF2VzdGltYXRlZE1vbnRobHlTYXZpbmdzGAYgASgBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAcgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYCCABKAESEQoEcmlzaxgJIAEoCUgDiAEBEhMKBmVmZm9ydBgKIAEoCUgEiAEBEg4KBnN0YXR1cxgLIAEoCRIyChFhZGRpdGlvbmFsRGV0YWlscxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCCgoIX3NlcnZpY2VCCQoHX3JlZ2lvbkINCgtfcmVzb3VyY2VJZEIHCgVfcmlza0IJCgdfZWZmb3J0IikKGkdldFJlY29tbWVuZGF0aW9uVjNSZXF1ZXN0EgsKA2lkcxgBIAMoCSKSBQobR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlElsKD3JlY29tbWVuZGF0aW9ucxgBIAMoCzJCLmJsdWVhcGkuY292ZXIudjEuR2V0UmVjb21tZW5kYXRpb25WM1Jlc3BvbnNlLlJlY29tbWVuZGF0aW9uRGV0YWlsGpUEChRSZWNvbW1lbmRhdGlvbkRldGFpbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAkgASgJEg4KBnZlbmRvchgCIAEoCRIOCgZzb3VyY2UYAyABKAkSDAoEY29kZRgEIAEoCRIUCgdzZXJ2aWNlGAUgASgJSACIAQESDgoGdGFyZ2V0GAcgASgJEhIKCnRhcmdldE5hbWUYCCABKAkSFAoMZGF0ZURldGVjdGVkGAYgASgJEhMKBnJlZ2lvbhgKIAEoCUgBiAEBEiIKGmVzdGltYXRlZE1vbnRobHlCZWZvcmVDb3N0GAsgASgBEiEKGWVzdGltYXRlZE1vbnRobHlBZnRlckNvc3QYDCABKAESHwoXZXN0aW1hdGVkTW9udGhseVNhdmluZ3MYDSABKAESFwoKcmVzb3VyY2VJZBgOIAEoCUgCiAEBEhAKCGNhdGVnb3J5GA8gASgJEgwKBHR5cGUYECABKAkSEwoLbGFzdFVwZGF0ZWQYESABKAkSDgoGc3RhdHVzGBIgASgJEhEKBHJpc2sYEyABKAlIA4gBARITCgZlZmZvcnQYFCABKAlIBIgBARIoCgdkZXRhaWxzGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIKCghfc2VydmljZUIJCgdfcmVnaW9uQg0KC19yZXNvdXJjZUlkQgcKBV9yaXNrQgkKB19lZmZvcnQi6gEKG0dldENvc3RGb3JlY2FzdHNEYXRhUmVxdWVzdBITCgtjb3N0R3JvdXBJZBgBIAEoCRIRCglzdGFydFRpbWUYAiABKAkSDwoHZW5kVGltZRgDIAEoCRJOCgtncmFudWxhcml0eRgEIAEoDjI5LmJsdWVhcGkuY292ZXIudjEuR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXF1ZXN0LkdyYW51bGFyaXR5IkIKC0dyYW51bGFyaXR5EhsKF0dSQU5VTEFSSVRZX1VOU1BFQ0lGSUVEEAASCQoFREFJTFkQARILCgdNT05USExZEAIiagocR2V0Q29zdEZvcmVjYXN0c0RhdGFSZXNwb25zZRIMCgRkYXRlGAEgASgJEhQKDGZvcmVjYXN0Q29zdBgCIAEoARISCgp1cHBlckJvdW5kGAMgASgBEhIKCmxvd2VyQm91bmQYBCABKAEiFgoUTGlzdEZvcmVjYXN0c1JlcXVlc3QiXAoVTGlzdEZvcmVjYXN0c1Jlc3BvbnNlEkMKE2Nvc3RGb3JlY2FzdERldGFpbHMYASADKAsyJi5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0Rm9yZWNhc3REZXRhaWxzIvMBChlDcmVhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0EhQKDGZvcmVjYXN0TmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIvCgljb3N0R3JvdXAYAyABKAsyHC5ibHVlYXBpLmFwaS5jb3Zlci5Db3N0R3JvdXASGwoTcGFzdEFjdHVhbENvc3RSYW5nZRgEIAEoAxIZChFsb29rRm9yd2FyZFBlcmlvZBgFIAEoAxJCChNleHRlcm5hbEFkanVzdG1lbnRzGAYgAygLMiUuYmx1ZWFwaS5hcGkuY292ZXIuRXh0ZXJuYWxBZGp1c3RtZW50IoACChpDcmVhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudCIkChZHZXRDb3N0Rm9yZWNhc3RSZXF1ZXN0EgoKAmlkGAEgASgJIr8CChdHZXRDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxmb3JlY2FzdE5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSLwoJY29zdEdyb3VwGAQgASgLMhwuYmx1ZWFwaS5hcGkuY292ZXIuQ29zdEdyb3VwEhsKE3Bhc3RBY3R1YWxDb3N0UmFuZ2UYBSABKAMSGQoRbG9va0ZvcndhcmRQZXJpb2QYBiABKAMSQgoTZXh0ZXJuYWxBZGp1c3RtZW50cxgHIAMoCzIlLmJsdWVhcGkuYXBpLmNvdmVyLkV4dGVybmFsQWRqdXN0bWVudBIRCgljcmVhdGVkQnkYCCABKAkSFAoMY3JlYXRpb25EYXRlGAkgASgJEhcKD2xhc3RVcGRhdGVkRGF0ZRgKIAEoCSL/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]);
50
52
 
51
53
  /**
52
- * @generated from message blueapi.cover.v1.GetUserRequest
54
+ * @generated from message blueapi.cover.v1.GetMyRolesRequest
53
55
  */
54
- export type GetUserRequest = Message<"blueapi.cover.v1.GetUserRequest"> & {
55
- /**
56
- * @generated from field: string id = 1;
57
- */
58
- id: string;
56
+ export type GetMyRolesRequest = Message<"blueapi.cover.v1.GetMyRolesRequest"> & {
59
57
  };
60
58
 
61
59
  /**
62
- * Describes the message blueapi.cover.v1.GetUserRequest.
63
- * Use `create(GetUserRequestSchema)` to create a new message.
60
+ * Describes the message blueapi.cover.v1.GetMyRolesRequest.
61
+ * Use `create(GetMyRolesRequestSchema)` to create a new message.
64
62
  */
65
- export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
63
+ export const GetMyRolesRequestSchema: GenMessage<GetMyRolesRequest> = /*@__PURE__*/
66
64
  messageDesc(file_cover_v1_cover, 0);
67
65
 
68
66
  /**
69
- * @generated from message blueapi.cover.v1.GetUserResponse
67
+ * @generated from message blueapi.cover.v1.GetMyRolesResponse
70
68
  */
71
- export type GetUserResponse = Message<"blueapi.cover.v1.GetUserResponse"> & {
72
- /**
73
- * @generated from field: string id = 1;
74
- */
75
- id: string;
76
-
77
- /**
78
- * @generated from field: string name = 2;
79
- */
80
- name: string;
81
-
82
- /**
83
- * @generated from field: string email = 3;
84
- */
85
- email: string;
86
-
87
- /**
88
- * @generated from field: repeated blueapi.cover.v1.GetUserResponse.Role roles = 4;
89
- */
90
- roles: GetUserResponse_Role[];
91
-
92
- /**
93
- * @generated from field: google.protobuf.Struct invited_by = 5;
94
- */
95
- invitedBy?: JsonObject;
96
-
97
- /**
98
- * @generated from field: string last_updated = 6;
99
- */
100
- lastUpdated: string;
101
-
102
- /**
103
- * @generated from field: string created_on = 7;
104
- */
105
- createdOn: string;
106
-
107
- /**
108
- * @generated from field: string avatar = 8;
109
- */
110
- avatar: string;
111
-
69
+ export type GetMyRolesResponse = Message<"blueapi.cover.v1.GetMyRolesResponse"> & {
112
70
  /**
113
- * @generated from field: bool activated = 9;
71
+ * @generated from field: repeated blueapi.api.cover.Role roles = 1;
114
72
  */
115
- activated: boolean;
73
+ roles: Role[];
116
74
  };
117
75
 
118
76
  /**
119
- * Describes the message blueapi.cover.v1.GetUserResponse.
120
- * Use `create(GetUserResponseSchema)` to create a new message.
77
+ * Describes the message blueapi.cover.v1.GetMyRolesResponse.
78
+ * Use `create(GetMyRolesResponseSchema)` to create a new message.
121
79
  */
122
- export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
80
+ export const GetMyRolesResponseSchema: GenMessage<GetMyRolesResponse> = /*@__PURE__*/
123
81
  messageDesc(file_cover_v1_cover, 1);
124
82
 
125
83
  /**
126
- * @generated from message blueapi.cover.v1.GetUserResponse.Role
84
+ * @generated from message blueapi.cover.v1.GetUserRequest
127
85
  */
128
- export type GetUserResponse_Role = Message<"blueapi.cover.v1.GetUserResponse.Role"> & {
86
+ export type GetUserRequest = Message<"blueapi.cover.v1.GetUserRequest"> & {
129
87
  /**
130
88
  * @generated from field: string id = 1;
131
89
  */
132
90
  id: string;
133
-
134
- /**
135
- * @generated from field: string name = 2;
136
- */
137
- name: string;
138
-
139
- /**
140
- * @generated from field: repeated blueapi.cover.v1.GetUserResponse.Role.CostGroup costgroups = 3;
141
- */
142
- costgroups: GetUserResponse_Role_CostGroup[];
143
91
  };
144
92
 
145
93
  /**
146
- * Describes the message blueapi.cover.v1.GetUserResponse.Role.
147
- * Use `create(GetUserResponse_RoleSchema)` to create a new message.
94
+ * Describes the message blueapi.cover.v1.GetUserRequest.
95
+ * Use `create(GetUserRequestSchema)` to create a new message.
148
96
  */
149
- export const GetUserResponse_RoleSchema: GenMessage<GetUserResponse_Role> = /*@__PURE__*/
150
- messageDesc(file_cover_v1_cover, 1, 0);
97
+ export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
98
+ messageDesc(file_cover_v1_cover, 2);
151
99
 
152
100
  /**
153
- * @generated from message blueapi.cover.v1.GetUserResponse.Role.CostGroup
101
+ * @generated from message blueapi.cover.v1.GetUserResponse
154
102
  */
155
- export type GetUserResponse_Role_CostGroup = Message<"blueapi.cover.v1.GetUserResponse.Role.CostGroup"> & {
156
- /**
157
- * @generated from field: string id = 1;
158
- */
159
- id: string;
160
-
103
+ export type GetUserResponse = Message<"blueapi.cover.v1.GetUserResponse"> & {
161
104
  /**
162
- * @generated from field: string name = 2;
105
+ * @generated from field: blueapi.api.cover.User user = 1;
163
106
  */
164
- name: string;
107
+ user?: User;
165
108
  };
166
109
 
167
110
  /**
168
- * Describes the message blueapi.cover.v1.GetUserResponse.Role.CostGroup.
169
- * Use `create(GetUserResponse_Role_CostGroupSchema)` to create a new message.
111
+ * Describes the message blueapi.cover.v1.GetUserResponse.
112
+ * Use `create(GetUserResponseSchema)` to create a new message.
170
113
  */
171
- export const GetUserResponse_Role_CostGroupSchema: GenMessage<GetUserResponse_Role_CostGroup> = /*@__PURE__*/
172
- messageDesc(file_cover_v1_cover, 1, 0, 0);
114
+ export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
115
+ messageDesc(file_cover_v1_cover, 3);
173
116
 
174
117
  /**
175
118
  * @generated from message blueapi.cover.v1.ReinviteUserRequest
@@ -186,7 +129,7 @@ export type ReinviteUserRequest = Message<"blueapi.cover.v1.ReinviteUserRequest"
186
129
  * Use `create(ReinviteUserRequestSchema)` to create a new message.
187
130
  */
188
131
  export const ReinviteUserRequestSchema: GenMessage<ReinviteUserRequest> = /*@__PURE__*/
189
- messageDesc(file_cover_v1_cover, 2);
132
+ messageDesc(file_cover_v1_cover, 4);
190
133
 
191
134
  /**
192
135
  * @generated from message blueapi.cover.v1.ReinviteUserResponse
@@ -199,7 +142,7 @@ export type ReinviteUserResponse = Message<"blueapi.cover.v1.ReinviteUserRespons
199
142
  * Use `create(ReinviteUserResponseSchema)` to create a new message.
200
143
  */
201
144
  export const ReinviteUserResponseSchema: GenMessage<ReinviteUserResponse> = /*@__PURE__*/
202
- messageDesc(file_cover_v1_cover, 3);
145
+ messageDesc(file_cover_v1_cover, 5);
203
146
 
204
147
  /**
205
148
  * @generated from message blueapi.cover.v1.ListUsersRequest
@@ -212,7 +155,7 @@ export type ListUsersRequest = Message<"blueapi.cover.v1.ListUsersRequest"> & {
212
155
  * Use `create(ListUsersRequestSchema)` to create a new message.
213
156
  */
214
157
  export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
215
- messageDesc(file_cover_v1_cover, 4);
158
+ messageDesc(file_cover_v1_cover, 6);
216
159
 
217
160
  /**
218
161
  * @generated from message blueapi.cover.v1.ListUsersResponse
@@ -229,7 +172,7 @@ export type ListUsersResponse = Message<"blueapi.cover.v1.ListUsersResponse"> &
229
172
  * Use `create(ListUsersResponseSchema)` to create a new message.
230
173
  */
231
174
  export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
232
- messageDesc(file_cover_v1_cover, 5);
175
+ messageDesc(file_cover_v1_cover, 7);
233
176
 
234
177
  /**
235
178
  * @generated from message blueapi.cover.v1.ListUsersResponse.UserSummary
@@ -276,7 +219,7 @@ export type ListUsersResponse_UserSummary = Message<"blueapi.cover.v1.ListUsersR
276
219
  * Use `create(ListUsersResponse_UserSummarySchema)` to create a new message.
277
220
  */
278
221
  export const ListUsersResponse_UserSummarySchema: GenMessage<ListUsersResponse_UserSummary> = /*@__PURE__*/
279
- messageDesc(file_cover_v1_cover, 5, 0);
222
+ messageDesc(file_cover_v1_cover, 7, 0);
280
223
 
281
224
  /**
282
225
  * @generated from message blueapi.cover.v1.UpdateUserRoleRequest
@@ -303,12 +246,16 @@ export type UpdateUserRoleRequest = Message<"blueapi.cover.v1.UpdateUserRoleRequ
303
246
  * Use `create(UpdateUserRoleRequestSchema)` to create a new message.
304
247
  */
305
248
  export const UpdateUserRoleRequestSchema: GenMessage<UpdateUserRoleRequest> = /*@__PURE__*/
306
- messageDesc(file_cover_v1_cover, 6);
249
+ messageDesc(file_cover_v1_cover, 8);
307
250
 
308
251
  /**
309
252
  * @generated from message blueapi.cover.v1.UpdateUserRoleResponse
310
253
  */
311
254
  export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleResponse"> & {
255
+ /**
256
+ * @generated from field: blueapi.api.cover.User user = 1;
257
+ */
258
+ user?: User;
312
259
  };
313
260
 
314
261
  /**
@@ -316,7 +263,7 @@ export type UpdateUserRoleResponse = Message<"blueapi.cover.v1.UpdateUserRoleRes
316
263
  * Use `create(UpdateUserRoleResponseSchema)` to create a new message.
317
264
  */
318
265
  export const UpdateUserRoleResponseSchema: GenMessage<UpdateUserRoleResponse> = /*@__PURE__*/
319
- messageDesc(file_cover_v1_cover, 7);
266
+ messageDesc(file_cover_v1_cover, 9);
320
267
 
321
268
  /**
322
269
  * @generated from message blueapi.cover.v1.DeleteUserRequest
@@ -333,7 +280,7 @@ export type DeleteUserRequest = Message<"blueapi.cover.v1.DeleteUserRequest"> &
333
280
  * Use `create(DeleteUserRequestSchema)` to create a new message.
334
281
  */
335
282
  export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
336
- messageDesc(file_cover_v1_cover, 8);
283
+ messageDesc(file_cover_v1_cover, 10);
337
284
 
338
285
  /**
339
286
  * @generated from message blueapi.cover.v1.DeleteUserResponse
@@ -346,7 +293,7 @@ export type DeleteUserResponse = Message<"blueapi.cover.v1.DeleteUserResponse">
346
293
  * Use `create(DeleteUserResponseSchema)` to create a new message.
347
294
  */
348
295
  export const DeleteUserResponseSchema: GenMessage<DeleteUserResponse> = /*@__PURE__*/
349
- messageDesc(file_cover_v1_cover, 9);
296
+ messageDesc(file_cover_v1_cover, 11);
350
297
 
351
298
  /**
352
299
  * @generated from message blueapi.cover.v1.InviteUsersRequest
@@ -373,7 +320,7 @@ export type InviteUsersRequest = Message<"blueapi.cover.v1.InviteUsersRequest">
373
320
  * Use `create(InviteUsersRequestSchema)` to create a new message.
374
321
  */
375
322
  export const InviteUsersRequestSchema: GenMessage<InviteUsersRequest> = /*@__PURE__*/
376
- messageDesc(file_cover_v1_cover, 10);
323
+ messageDesc(file_cover_v1_cover, 12);
377
324
 
378
325
  /**
379
326
  * @generated from message blueapi.cover.v1.InviteUsersResponse
@@ -386,7 +333,7 @@ export type InviteUsersResponse = Message<"blueapi.cover.v1.InviteUsersResponse"
386
333
  * Use `create(InviteUsersResponseSchema)` to create a new message.
387
334
  */
388
335
  export const InviteUsersResponseSchema: GenMessage<InviteUsersResponse> = /*@__PURE__*/
389
- messageDesc(file_cover_v1_cover, 11);
336
+ messageDesc(file_cover_v1_cover, 13);
390
337
 
391
338
  /**
392
339
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Request
@@ -408,7 +355,7 @@ export type ExecuteRecommendationV3Request = Message<"blueapi.cover.v1.ExecuteRe
408
355
  * Use `create(ExecuteRecommendationV3RequestSchema)` to create a new message.
409
356
  */
410
357
  export const ExecuteRecommendationV3RequestSchema: GenMessage<ExecuteRecommendationV3Request> = /*@__PURE__*/
411
- messageDesc(file_cover_v1_cover, 12);
358
+ messageDesc(file_cover_v1_cover, 14);
412
359
 
413
360
  /**
414
361
  * @generated from enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType
@@ -444,7 +391,7 @@ export enum ExecuteRecommendationV3Request_ExecuteType {
444
391
  * Describes the enum blueapi.cover.v1.ExecuteRecommendationV3Request.ExecuteType.
445
392
  */
446
393
  export const ExecuteRecommendationV3Request_ExecuteTypeSchema: GenEnum<ExecuteRecommendationV3Request_ExecuteType> = /*@__PURE__*/
447
- enumDesc(file_cover_v1_cover, 12, 0);
394
+ enumDesc(file_cover_v1_cover, 14, 0);
448
395
 
449
396
  /**
450
397
  * @generated from message blueapi.cover.v1.ExecuteRecommendationV3Response
@@ -461,7 +408,7 @@ export type ExecuteRecommendationV3Response = Message<"blueapi.cover.v1.ExecuteR
461
408
  * Use `create(ExecuteRecommendationV3ResponseSchema)` to create a new message.
462
409
  */
463
410
  export const ExecuteRecommendationV3ResponseSchema: GenMessage<ExecuteRecommendationV3Response> = /*@__PURE__*/
464
- messageDesc(file_cover_v1_cover, 13);
411
+ messageDesc(file_cover_v1_cover, 15);
465
412
 
466
413
  /**
467
414
  * @generated from message blueapi.cover.v1.ListRecommendationsV3Request
@@ -488,7 +435,7 @@ export type ListRecommendationsV3Request = Message<"blueapi.cover.v1.ListRecomme
488
435
  * Use `create(ListRecommendationsV3RequestSchema)` to create a new message.
489
436
  */
490
437
  export const ListRecommendationsV3RequestSchema: GenMessage<ListRecommendationsV3Request> = /*@__PURE__*/
491
- messageDesc(file_cover_v1_cover, 14);
438
+ messageDesc(file_cover_v1_cover, 16);
492
439
 
493
440
  /**
494
441
  * @generated from message blueapi.cover.v1.RecommendationSummary
@@ -595,7 +542,7 @@ export type RecommendationSummary = Message<"blueapi.cover.v1.RecommendationSumm
595
542
  * Use `create(RecommendationSummarySchema)` to create a new message.
596
543
  */
597
544
  export const RecommendationSummarySchema: GenMessage<RecommendationSummary> = /*@__PURE__*/
598
- messageDesc(file_cover_v1_cover, 15);
545
+ messageDesc(file_cover_v1_cover, 17);
599
546
 
600
547
  /**
601
548
  * @generated from message blueapi.cover.v1.GetRecommendationV3Request
@@ -612,7 +559,7 @@ export type GetRecommendationV3Request = Message<"blueapi.cover.v1.GetRecommenda
612
559
  * Use `create(GetRecommendationV3RequestSchema)` to create a new message.
613
560
  */
614
561
  export const GetRecommendationV3RequestSchema: GenMessage<GetRecommendationV3Request> = /*@__PURE__*/
615
- messageDesc(file_cover_v1_cover, 16);
562
+ messageDesc(file_cover_v1_cover, 18);
616
563
 
617
564
  /**
618
565
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response
@@ -629,7 +576,7 @@ export type GetRecommendationV3Response = Message<"blueapi.cover.v1.GetRecommend
629
576
  * Use `create(GetRecommendationV3ResponseSchema)` to create a new message.
630
577
  */
631
578
  export const GetRecommendationV3ResponseSchema: GenMessage<GetRecommendationV3Response> = /*@__PURE__*/
632
- messageDesc(file_cover_v1_cover, 17);
579
+ messageDesc(file_cover_v1_cover, 19);
633
580
 
634
581
  /**
635
582
  * @generated from message blueapi.cover.v1.GetRecommendationV3Response.RecommendationDetail
@@ -746,7 +693,7 @@ export type GetRecommendationV3Response_RecommendationDetail = Message<"blueapi.
746
693
  * Use `create(GetRecommendationV3Response_RecommendationDetailSchema)` to create a new message.
747
694
  */
748
695
  export const GetRecommendationV3Response_RecommendationDetailSchema: GenMessage<GetRecommendationV3Response_RecommendationDetail> = /*@__PURE__*/
749
- messageDesc(file_cover_v1_cover, 17, 0);
696
+ messageDesc(file_cover_v1_cover, 19, 0);
750
697
 
751
698
  /**
752
699
  * @generated from message blueapi.cover.v1.GetCostForecastsDataRequest
@@ -784,7 +731,7 @@ export type GetCostForecastsDataRequest = Message<"blueapi.cover.v1.GetCostForec
784
731
  * Use `create(GetCostForecastsDataRequestSchema)` to create a new message.
785
732
  */
786
733
  export const GetCostForecastsDataRequestSchema: GenMessage<GetCostForecastsDataRequest> = /*@__PURE__*/
787
- messageDesc(file_cover_v1_cover, 18);
734
+ messageDesc(file_cover_v1_cover, 20);
788
735
 
789
736
  /**
790
737
  * @generated from enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity
@@ -810,7 +757,7 @@ export enum GetCostForecastsDataRequest_Granularity {
810
757
  * Describes the enum blueapi.cover.v1.GetCostForecastsDataRequest.Granularity.
811
758
  */
812
759
  export const GetCostForecastsDataRequest_GranularitySchema: GenEnum<GetCostForecastsDataRequest_Granularity> = /*@__PURE__*/
813
- enumDesc(file_cover_v1_cover, 18, 0);
760
+ enumDesc(file_cover_v1_cover, 20, 0);
814
761
 
815
762
  /**
816
763
  * @generated from message blueapi.cover.v1.GetCostForecastsDataResponse
@@ -842,7 +789,7 @@ export type GetCostForecastsDataResponse = Message<"blueapi.cover.v1.GetCostFore
842
789
  * Use `create(GetCostForecastsDataResponseSchema)` to create a new message.
843
790
  */
844
791
  export const GetCostForecastsDataResponseSchema: GenMessage<GetCostForecastsDataResponse> = /*@__PURE__*/
845
- messageDesc(file_cover_v1_cover, 19);
792
+ messageDesc(file_cover_v1_cover, 21);
846
793
 
847
794
  /**
848
795
  * @generated from message blueapi.cover.v1.ListForecastsRequest
@@ -855,7 +802,7 @@ export type ListForecastsRequest = Message<"blueapi.cover.v1.ListForecastsReques
855
802
  * Use `create(ListForecastsRequestSchema)` to create a new message.
856
803
  */
857
804
  export const ListForecastsRequestSchema: GenMessage<ListForecastsRequest> = /*@__PURE__*/
858
- messageDesc(file_cover_v1_cover, 20);
805
+ messageDesc(file_cover_v1_cover, 22);
859
806
 
860
807
  /**
861
808
  * @generated from message blueapi.cover.v1.ListForecastsResponse
@@ -872,7 +819,7 @@ export type ListForecastsResponse = Message<"blueapi.cover.v1.ListForecastsRespo
872
819
  * Use `create(ListForecastsResponseSchema)` to create a new message.
873
820
  */
874
821
  export const ListForecastsResponseSchema: GenMessage<ListForecastsResponse> = /*@__PURE__*/
875
- messageDesc(file_cover_v1_cover, 21);
822
+ messageDesc(file_cover_v1_cover, 23);
876
823
 
877
824
  /**
878
825
  * @generated from message blueapi.cover.v1.CreateCostForecastRequest
@@ -926,7 +873,7 @@ export type CreateCostForecastRequest = Message<"blueapi.cover.v1.CreateCostFore
926
873
  * Use `create(CreateCostForecastRequestSchema)` to create a new message.
927
874
  */
928
875
  export const CreateCostForecastRequestSchema: GenMessage<CreateCostForecastRequest> = /*@__PURE__*/
929
- messageDesc(file_cover_v1_cover, 22);
876
+ messageDesc(file_cover_v1_cover, 24);
930
877
 
931
878
  /**
932
879
  * @generated from message blueapi.cover.v1.CreateCostForecastResponse
@@ -973,7 +920,7 @@ export type CreateCostForecastResponse = Message<"blueapi.cover.v1.CreateCostFor
973
920
  * Use `create(CreateCostForecastResponseSchema)` to create a new message.
974
921
  */
975
922
  export const CreateCostForecastResponseSchema: GenMessage<CreateCostForecastResponse> = /*@__PURE__*/
976
- messageDesc(file_cover_v1_cover, 23);
923
+ messageDesc(file_cover_v1_cover, 25);
977
924
 
978
925
  /**
979
926
  * @generated from message blueapi.cover.v1.GetCostForecastRequest
@@ -992,7 +939,7 @@ export type GetCostForecastRequest = Message<"blueapi.cover.v1.GetCostForecastRe
992
939
  * Use `create(GetCostForecastRequestSchema)` to create a new message.
993
940
  */
994
941
  export const GetCostForecastRequestSchema: GenMessage<GetCostForecastRequest> = /*@__PURE__*/
995
- messageDesc(file_cover_v1_cover, 24);
942
+ messageDesc(file_cover_v1_cover, 26);
996
943
 
997
944
  /**
998
945
  * @generated from message blueapi.cover.v1.GetCostForecastResponse
@@ -1054,7 +1001,7 @@ export type GetCostForecastResponse = Message<"blueapi.cover.v1.GetCostForecastR
1054
1001
  * Use `create(GetCostForecastResponseSchema)` to create a new message.
1055
1002
  */
1056
1003
  export const GetCostForecastResponseSchema: GenMessage<GetCostForecastResponse> = /*@__PURE__*/
1057
- messageDesc(file_cover_v1_cover, 25);
1004
+ messageDesc(file_cover_v1_cover, 27);
1058
1005
 
1059
1006
  /**
1060
1007
  * @generated from message blueapi.cover.v1.UpdateCostForecastRequest
@@ -1115,7 +1062,7 @@ export type UpdateCostForecastRequest = Message<"blueapi.cover.v1.UpdateCostFore
1115
1062
  * Use `create(UpdateCostForecastRequestSchema)` to create a new message.
1116
1063
  */
1117
1064
  export const UpdateCostForecastRequestSchema: GenMessage<UpdateCostForecastRequest> = /*@__PURE__*/
1118
- messageDesc(file_cover_v1_cover, 26);
1065
+ messageDesc(file_cover_v1_cover, 28);
1119
1066
 
1120
1067
  /**
1121
1068
  * @generated from message blueapi.cover.v1.UpdateCostForecastResponse
@@ -1177,7 +1124,7 @@ export type UpdateCostForecastResponse = Message<"blueapi.cover.v1.UpdateCostFor
1177
1124
  * Use `create(UpdateCostForecastResponseSchema)` to create a new message.
1178
1125
  */
1179
1126
  export const UpdateCostForecastResponseSchema: GenMessage<UpdateCostForecastResponse> = /*@__PURE__*/
1180
- messageDesc(file_cover_v1_cover, 27);
1127
+ messageDesc(file_cover_v1_cover, 29);
1181
1128
 
1182
1129
  /**
1183
1130
  * @generated from message blueapi.cover.v1.DeleteCostForecastRequest
@@ -1196,7 +1143,7 @@ export type DeleteCostForecastRequest = Message<"blueapi.cover.v1.DeleteCostFore
1196
1143
  * Use `create(DeleteCostForecastRequestSchema)` to create a new message.
1197
1144
  */
1198
1145
  export const DeleteCostForecastRequestSchema: GenMessage<DeleteCostForecastRequest> = /*@__PURE__*/
1199
- messageDesc(file_cover_v1_cover, 28);
1146
+ messageDesc(file_cover_v1_cover, 30);
1200
1147
 
1201
1148
  /**
1202
1149
  * @generated from message blueapi.cover.v1.DeleteCostForecastResponse
@@ -1213,7 +1160,7 @@ export type DeleteCostForecastResponse = Message<"blueapi.cover.v1.DeleteCostFor
1213
1160
  * Use `create(DeleteCostForecastResponseSchema)` to create a new message.
1214
1161
  */
1215
1162
  export const DeleteCostForecastResponseSchema: GenMessage<DeleteCostForecastResponse> = /*@__PURE__*/
1216
- messageDesc(file_cover_v1_cover, 29);
1163
+ messageDesc(file_cover_v1_cover, 31);
1217
1164
 
1218
1165
  /**
1219
1166
  * @generated from message blueapi.cover.v1.GetCostUsageV2Response
@@ -1245,7 +1192,7 @@ export type GetCostUsageV2Response = Message<"blueapi.cover.v1.GetCostUsageV2Res
1245
1192
  * Use `create(GetCostUsageV2ResponseSchema)` to create a new message.
1246
1193
  */
1247
1194
  export const GetCostUsageV2ResponseSchema: GenMessage<GetCostUsageV2Response> = /*@__PURE__*/
1248
- messageDesc(file_cover_v1_cover, 30);
1195
+ messageDesc(file_cover_v1_cover, 32);
1249
1196
 
1250
1197
  /**
1251
1198
  * @generated from message blueapi.cover.v1.GetCostUsageV2Request
@@ -1307,7 +1254,7 @@ export type GetCostUsageV2Request = Message<"blueapi.cover.v1.GetCostUsageV2Requ
1307
1254
  * Use `create(GetCostUsageV2RequestSchema)` to create a new message.
1308
1255
  */
1309
1256
  export const GetCostUsageV2RequestSchema: GenMessage<GetCostUsageV2Request> = /*@__PURE__*/
1310
- messageDesc(file_cover_v1_cover, 31);
1257
+ messageDesc(file_cover_v1_cover, 33);
1311
1258
 
1312
1259
  /**
1313
1260
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Granularity
@@ -1333,7 +1280,7 @@ export enum GetCostUsageV2Request_Granularity {
1333
1280
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Granularity.
1334
1281
  */
1335
1282
  export const GetCostUsageV2Request_GranularitySchema: GenEnum<GetCostUsageV2Request_Granularity> = /*@__PURE__*/
1336
- enumDesc(file_cover_v1_cover, 31, 0);
1283
+ enumDesc(file_cover_v1_cover, 33, 0);
1337
1284
 
1338
1285
  /**
1339
1286
  * @generated from enum blueapi.cover.v1.GetCostUsageV2Request.Category
@@ -1359,7 +1306,7 @@ export enum GetCostUsageV2Request_Category {
1359
1306
  * Describes the enum blueapi.cover.v1.GetCostUsageV2Request.Category.
1360
1307
  */
1361
1308
  export const GetCostUsageV2Request_CategorySchema: GenEnum<GetCostUsageV2Request_Category> = /*@__PURE__*/
1362
- enumDesc(file_cover_v1_cover, 31, 1);
1309
+ enumDesc(file_cover_v1_cover, 33, 1);
1363
1310
 
1364
1311
  /**
1365
1312
  * @generated from message blueapi.cover.v1.PopulateDemoDataRequest
@@ -1372,7 +1319,7 @@ export type PopulateDemoDataRequest = Message<"blueapi.cover.v1.PopulateDemoData
1372
1319
  * Use `create(PopulateDemoDataRequestSchema)` to create a new message.
1373
1320
  */
1374
1321
  export const PopulateDemoDataRequestSchema: GenMessage<PopulateDemoDataRequest> = /*@__PURE__*/
1375
- messageDesc(file_cover_v1_cover, 32);
1322
+ messageDesc(file_cover_v1_cover, 34);
1376
1323
 
1377
1324
  /**
1378
1325
  * @generated from message blueapi.cover.v1.PopulateDemoDataResponse
@@ -1385,7 +1332,7 @@ export type PopulateDemoDataResponse = Message<"blueapi.cover.v1.PopulateDemoDat
1385
1332
  * Use `create(PopulateDemoDataResponseSchema)` to create a new message.
1386
1333
  */
1387
1334
  export const PopulateDemoDataResponseSchema: GenMessage<PopulateDemoDataResponse> = /*@__PURE__*/
1388
- messageDesc(file_cover_v1_cover, 33);
1335
+ messageDesc(file_cover_v1_cover, 35);
1389
1336
 
1390
1337
  /**
1391
1338
  * @generated from message blueapi.cover.v1.ResetDemoDataRequest
@@ -1398,7 +1345,7 @@ export type ResetDemoDataRequest = Message<"blueapi.cover.v1.ResetDemoDataReques
1398
1345
  * Use `create(ResetDemoDataRequestSchema)` to create a new message.
1399
1346
  */
1400
1347
  export const ResetDemoDataRequestSchema: GenMessage<ResetDemoDataRequest> = /*@__PURE__*/
1401
- messageDesc(file_cover_v1_cover, 34);
1348
+ messageDesc(file_cover_v1_cover, 36);
1402
1349
 
1403
1350
  /**
1404
1351
  * @generated from message blueapi.cover.v1.ResetDemoDataResponse
@@ -1411,7 +1358,7 @@ export type ResetDemoDataResponse = Message<"blueapi.cover.v1.ResetDemoDataRespo
1411
1358
  * Use `create(ResetDemoDataResponseSchema)` to create a new message.
1412
1359
  */
1413
1360
  export const ResetDemoDataResponseSchema: GenMessage<ResetDemoDataResponse> = /*@__PURE__*/
1414
- messageDesc(file_cover_v1_cover, 35);
1361
+ messageDesc(file_cover_v1_cover, 37);
1415
1362
 
1416
1363
  /**
1417
1364
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest
@@ -1468,7 +1415,7 @@ export type ContainerCostUsageRequest = Message<"blueapi.cover.v1.ContainerCostU
1468
1415
  * Use `create(ContainerCostUsageRequestSchema)` to create a new message.
1469
1416
  */
1470
1417
  export const ContainerCostUsageRequestSchema: GenMessage<ContainerCostUsageRequest> = /*@__PURE__*/
1471
- messageDesc(file_cover_v1_cover, 36);
1418
+ messageDesc(file_cover_v1_cover, 38);
1472
1419
 
1473
1420
  /**
1474
1421
  * @generated from message blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria
@@ -1495,7 +1442,7 @@ export type ContainerCostUsageRequest_FilterCriteria = Message<"blueapi.cover.v1
1495
1442
  * Use `create(ContainerCostUsageRequest_FilterCriteriaSchema)` to create a new message.
1496
1443
  */
1497
1444
  export const ContainerCostUsageRequest_FilterCriteriaSchema: GenMessage<ContainerCostUsageRequest_FilterCriteria> = /*@__PURE__*/
1498
- messageDesc(file_cover_v1_cover, 36, 0);
1445
+ messageDesc(file_cover_v1_cover, 38, 0);
1499
1446
 
1500
1447
  /**
1501
1448
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator
@@ -1521,7 +1468,7 @@ export enum ContainerCostUsageRequest_FilterCriteria_FilterOperator {
1521
1468
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.FilterCriteria.FilterOperator.
1522
1469
  */
1523
1470
  export const ContainerCostUsageRequest_FilterCriteria_FilterOperatorSchema: GenEnum<ContainerCostUsageRequest_FilterCriteria_FilterOperator> = /*@__PURE__*/
1524
- enumDesc(file_cover_v1_cover, 36, 0, 0);
1471
+ enumDesc(file_cover_v1_cover, 38, 0, 0);
1525
1472
 
1526
1473
  /**
1527
1474
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity
@@ -1547,7 +1494,7 @@ export enum ContainerCostUsageRequest_TimeGranularity {
1547
1494
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.TimeGranularity.
1548
1495
  */
1549
1496
  export const ContainerCostUsageRequest_TimeGranularitySchema: GenEnum<ContainerCostUsageRequest_TimeGranularity> = /*@__PURE__*/
1550
- enumDesc(file_cover_v1_cover, 36, 0);
1497
+ enumDesc(file_cover_v1_cover, 38, 0);
1551
1498
 
1552
1499
  /**
1553
1500
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType
@@ -1583,7 +1530,7 @@ export enum ContainerCostUsageRequest_MetricType {
1583
1530
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.MetricType.
1584
1531
  */
1585
1532
  export const ContainerCostUsageRequest_MetricTypeSchema: GenEnum<ContainerCostUsageRequest_MetricType> = /*@__PURE__*/
1586
- enumDesc(file_cover_v1_cover, 36, 1);
1533
+ enumDesc(file_cover_v1_cover, 38, 1);
1587
1534
 
1588
1535
  /**
1589
1536
  * @generated from enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType
@@ -1609,7 +1556,7 @@ export enum ContainerCostUsageRequest_ServiceType {
1609
1556
  * Describes the enum blueapi.cover.v1.ContainerCostUsageRequest.ServiceType.
1610
1557
  */
1611
1558
  export const ContainerCostUsageRequest_ServiceTypeSchema: GenEnum<ContainerCostUsageRequest_ServiceType> = /*@__PURE__*/
1612
- enumDesc(file_cover_v1_cover, 36, 2);
1559
+ enumDesc(file_cover_v1_cover, 38, 2);
1613
1560
 
1614
1561
  /**
1615
1562
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse
@@ -1641,7 +1588,7 @@ export type ContainerCostUsageResponse = Message<"blueapi.cover.v1.ContainerCost
1641
1588
  * Use `create(ContainerCostUsageResponseSchema)` to create a new message.
1642
1589
  */
1643
1590
  export const ContainerCostUsageResponseSchema: GenMessage<ContainerCostUsageResponse> = /*@__PURE__*/
1644
- messageDesc(file_cover_v1_cover, 37);
1591
+ messageDesc(file_cover_v1_cover, 39);
1645
1592
 
1646
1593
  /**
1647
1594
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.CostMetric
@@ -1668,7 +1615,7 @@ export type ContainerCostUsageResponse_CostMetric = Message<"blueapi.cover.v1.Co
1668
1615
  * Use `create(ContainerCostUsageResponse_CostMetricSchema)` to create a new message.
1669
1616
  */
1670
1617
  export const ContainerCostUsageResponse_CostMetricSchema: GenMessage<ContainerCostUsageResponse_CostMetric> = /*@__PURE__*/
1671
- messageDesc(file_cover_v1_cover, 37, 0);
1618
+ messageDesc(file_cover_v1_cover, 39, 0);
1672
1619
 
1673
1620
  /**
1674
1621
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.UsageMetric
@@ -1710,7 +1657,7 @@ export type ContainerCostUsageResponse_UsageMetric = Message<"blueapi.cover.v1.C
1710
1657
  * Use `create(ContainerCostUsageResponse_UsageMetricSchema)` to create a new message.
1711
1658
  */
1712
1659
  export const ContainerCostUsageResponse_UsageMetricSchema: GenMessage<ContainerCostUsageResponse_UsageMetric> = /*@__PURE__*/
1713
- messageDesc(file_cover_v1_cover, 37, 1);
1660
+ messageDesc(file_cover_v1_cover, 39, 1);
1714
1661
 
1715
1662
  /**
1716
1663
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.MetricDataPoint
@@ -1744,7 +1691,7 @@ export type ContainerCostUsageResponse_MetricDataPoint = Message<"blueapi.cover.
1744
1691
  * Use `create(ContainerCostUsageResponse_MetricDataPointSchema)` to create a new message.
1745
1692
  */
1746
1693
  export const ContainerCostUsageResponse_MetricDataPointSchema: GenMessage<ContainerCostUsageResponse_MetricDataPoint> = /*@__PURE__*/
1747
- messageDesc(file_cover_v1_cover, 37, 2);
1694
+ messageDesc(file_cover_v1_cover, 39, 2);
1748
1695
 
1749
1696
  /**
1750
1697
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlight
@@ -1771,7 +1718,7 @@ export type ContainerCostUsageResponse_ResourceHighlight = Message<"blueapi.cove
1771
1718
  * Use `create(ContainerCostUsageResponse_ResourceHighlightSchema)` to create a new message.
1772
1719
  */
1773
1720
  export const ContainerCostUsageResponse_ResourceHighlightSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlight> = /*@__PURE__*/
1774
- messageDesc(file_cover_v1_cover, 37, 3);
1721
+ messageDesc(file_cover_v1_cover, 39, 3);
1775
1722
 
1776
1723
  /**
1777
1724
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.ResourceHighlights
@@ -1803,7 +1750,7 @@ export type ContainerCostUsageResponse_ResourceHighlights = Message<"blueapi.cov
1803
1750
  * Use `create(ContainerCostUsageResponse_ResourceHighlightsSchema)` to create a new message.
1804
1751
  */
1805
1752
  export const ContainerCostUsageResponse_ResourceHighlightsSchema: GenMessage<ContainerCostUsageResponse_ResourceHighlights> = /*@__PURE__*/
1806
- messageDesc(file_cover_v1_cover, 37, 4);
1753
+ messageDesc(file_cover_v1_cover, 39, 4);
1807
1754
 
1808
1755
  /**
1809
1756
  * @generated from message blueapi.cover.v1.ContainerCostUsageResponse.GroupedResult
@@ -1825,7 +1772,7 @@ export type ContainerCostUsageResponse_GroupedResult = Message<"blueapi.cover.v1
1825
1772
  * Use `create(ContainerCostUsageResponse_GroupedResultSchema)` to create a new message.
1826
1773
  */
1827
1774
  export const ContainerCostUsageResponse_GroupedResultSchema: GenMessage<ContainerCostUsageResponse_GroupedResult> = /*@__PURE__*/
1828
- messageDesc(file_cover_v1_cover, 37, 5);
1775
+ messageDesc(file_cover_v1_cover, 39, 5);
1829
1776
 
1830
1777
  /**
1831
1778
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest
@@ -1872,7 +1819,7 @@ export type GetAICostAndUsageRequest = Message<"blueapi.cover.v1.GetAICostAndUsa
1872
1819
  * Use `create(GetAICostAndUsageRequestSchema)` to create a new message.
1873
1820
  */
1874
1821
  export const GetAICostAndUsageRequestSchema: GenMessage<GetAICostAndUsageRequest> = /*@__PURE__*/
1875
- messageDesc(file_cover_v1_cover, 38);
1822
+ messageDesc(file_cover_v1_cover, 40);
1876
1823
 
1877
1824
  /**
1878
1825
  * @generated from message blueapi.cover.v1.GetAICostAndUsageRequest.Filter
@@ -1907,7 +1854,7 @@ export type GetAICostAndUsageRequest_Filter = Message<"blueapi.cover.v1.GetAICos
1907
1854
  * Use `create(GetAICostAndUsageRequest_FilterSchema)` to create a new message.
1908
1855
  */
1909
1856
  export const GetAICostAndUsageRequest_FilterSchema: GenMessage<GetAICostAndUsageRequest_Filter> = /*@__PURE__*/
1910
- messageDesc(file_cover_v1_cover, 38, 0);
1857
+ messageDesc(file_cover_v1_cover, 40, 0);
1911
1858
 
1912
1859
  /**
1913
1860
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator
@@ -1933,7 +1880,7 @@ export enum GetAICostAndUsageRequest_Filter_Operator {
1933
1880
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Filter.Operator.
1934
1881
  */
1935
1882
  export const GetAICostAndUsageRequest_Filter_OperatorSchema: GenEnum<GetAICostAndUsageRequest_Filter_Operator> = /*@__PURE__*/
1936
- enumDesc(file_cover_v1_cover, 38, 0, 0);
1883
+ enumDesc(file_cover_v1_cover, 40, 0, 0);
1937
1884
 
1938
1885
  /**
1939
1886
  * @generated from enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity
@@ -1959,7 +1906,7 @@ export enum GetAICostAndUsageRequest_Granularity {
1959
1906
  * Describes the enum blueapi.cover.v1.GetAICostAndUsageRequest.Granularity.
1960
1907
  */
1961
1908
  export const GetAICostAndUsageRequest_GranularitySchema: GenEnum<GetAICostAndUsageRequest_Granularity> = /*@__PURE__*/
1962
- enumDesc(file_cover_v1_cover, 38, 0);
1909
+ enumDesc(file_cover_v1_cover, 40, 0);
1963
1910
 
1964
1911
  /**
1965
1912
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse
@@ -1976,7 +1923,7 @@ export type GetAICostAndUsageResponse = Message<"blueapi.cover.v1.GetAICostAndUs
1976
1923
  * Use `create(GetAICostAndUsageResponseSchema)` to create a new message.
1977
1924
  */
1978
1925
  export const GetAICostAndUsageResponseSchema: GenMessage<GetAICostAndUsageResponse> = /*@__PURE__*/
1979
- messageDesc(file_cover_v1_cover, 39);
1926
+ messageDesc(file_cover_v1_cover, 41);
1980
1927
 
1981
1928
  /**
1982
1929
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Cost
@@ -1998,7 +1945,7 @@ export type GetAICostAndUsageResponse_Cost = Message<"blueapi.cover.v1.GetAICost
1998
1945
  * Use `create(GetAICostAndUsageResponse_CostSchema)` to create a new message.
1999
1946
  */
2000
1947
  export const GetAICostAndUsageResponse_CostSchema: GenMessage<GetAICostAndUsageResponse_Cost> = /*@__PURE__*/
2001
- messageDesc(file_cover_v1_cover, 39, 0);
1948
+ messageDesc(file_cover_v1_cover, 41, 0);
2002
1949
 
2003
1950
  /**
2004
1951
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Usage
@@ -2020,7 +1967,7 @@ export type GetAICostAndUsageResponse_Usage = Message<"blueapi.cover.v1.GetAICos
2020
1967
  * Use `create(GetAICostAndUsageResponse_UsageSchema)` to create a new message.
2021
1968
  */
2022
1969
  export const GetAICostAndUsageResponse_UsageSchema: GenMessage<GetAICostAndUsageResponse_Usage> = /*@__PURE__*/
2023
- messageDesc(file_cover_v1_cover, 39, 1);
1970
+ messageDesc(file_cover_v1_cover, 41, 1);
2024
1971
 
2025
1972
  /**
2026
1973
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Metric
@@ -2047,7 +1994,7 @@ export type GetAICostAndUsageResponse_Metric = Message<"blueapi.cover.v1.GetAICo
2047
1994
  * Use `create(GetAICostAndUsageResponse_MetricSchema)` to create a new message.
2048
1995
  */
2049
1996
  export const GetAICostAndUsageResponse_MetricSchema: GenMessage<GetAICostAndUsageResponse_Metric> = /*@__PURE__*/
2050
- messageDesc(file_cover_v1_cover, 39, 2);
1997
+ messageDesc(file_cover_v1_cover, 41, 2);
2051
1998
 
2052
1999
  /**
2053
2000
  * @generated from message blueapi.cover.v1.GetAICostAndUsageResponse.Result
@@ -2069,7 +2016,7 @@ export type GetAICostAndUsageResponse_Result = Message<"blueapi.cover.v1.GetAICo
2069
2016
  * Use `create(GetAICostAndUsageResponse_ResultSchema)` to create a new message.
2070
2017
  */
2071
2018
  export const GetAICostAndUsageResponse_ResultSchema: GenMessage<GetAICostAndUsageResponse_Result> = /*@__PURE__*/
2072
- messageDesc(file_cover_v1_cover, 39, 3);
2019
+ messageDesc(file_cover_v1_cover, 41, 3);
2073
2020
 
2074
2021
  /**
2075
2022
  * @generated from message blueapi.cover.v1.GetExecutionStatusRequest
@@ -2082,7 +2029,7 @@ export type GetExecutionStatusRequest = Message<"blueapi.cover.v1.GetExecutionSt
2082
2029
  * Use `create(GetExecutionStatusRequestSchema)` to create a new message.
2083
2030
  */
2084
2031
  export const GetExecutionStatusRequestSchema: GenMessage<GetExecutionStatusRequest> = /*@__PURE__*/
2085
- messageDesc(file_cover_v1_cover, 40);
2032
+ messageDesc(file_cover_v1_cover, 42);
2086
2033
 
2087
2034
  /**
2088
2035
  * @generated from message blueapi.cover.v1.GetExecutionStatusResponse
@@ -2109,7 +2056,7 @@ export type GetExecutionStatusResponse = Message<"blueapi.cover.v1.GetExecutionS
2109
2056
  * Use `create(GetExecutionStatusResponseSchema)` to create a new message.
2110
2057
  */
2111
2058
  export const GetExecutionStatusResponseSchema: GenMessage<GetExecutionStatusResponse> = /*@__PURE__*/
2112
- messageDesc(file_cover_v1_cover, 41);
2059
+ messageDesc(file_cover_v1_cover, 43);
2113
2060
 
2114
2061
  /**
2115
2062
  * Only supports gcp for now.
@@ -2137,7 +2084,7 @@ export type VerifyAPIAccessRequest = Message<"blueapi.cover.v1.VerifyAPIAccessRe
2137
2084
  * Use `create(VerifyAPIAccessRequestSchema)` to create a new message.
2138
2085
  */
2139
2086
  export const VerifyAPIAccessRequestSchema: GenMessage<VerifyAPIAccessRequest> = /*@__PURE__*/
2140
- messageDesc(file_cover_v1_cover, 42);
2087
+ messageDesc(file_cover_v1_cover, 44);
2141
2088
 
2142
2089
  /**
2143
2090
  * @generated from message blueapi.cover.v1.VerifyAPIAccessResponse
@@ -2154,7 +2101,7 @@ export type VerifyAPIAccessResponse = Message<"blueapi.cover.v1.VerifyAPIAccessR
2154
2101
  * Use `create(VerifyAPIAccessResponseSchema)` to create a new message.
2155
2102
  */
2156
2103
  export const VerifyAPIAccessResponseSchema: GenMessage<VerifyAPIAccessResponse> = /*@__PURE__*/
2157
- messageDesc(file_cover_v1_cover, 43);
2104
+ messageDesc(file_cover_v1_cover, 45);
2158
2105
 
2159
2106
  /**
2160
2107
  * @generated from message blueapi.cover.v1.GetRecommendationV2Request
@@ -2186,7 +2133,7 @@ export type GetRecommendationV2Request = Message<"blueapi.cover.v1.GetRecommenda
2186
2133
  * Use `create(GetRecommendationV2RequestSchema)` to create a new message.
2187
2134
  */
2188
2135
  export const GetRecommendationV2RequestSchema: GenMessage<GetRecommendationV2Request> = /*@__PURE__*/
2189
- messageDesc(file_cover_v1_cover, 44);
2136
+ messageDesc(file_cover_v1_cover, 46);
2190
2137
 
2191
2138
  /**
2192
2139
  * @generated from message blueapi.cover.v1.GetRecommendationV2Response
@@ -2203,7 +2150,7 @@ export type GetRecommendationV2Response = Message<"blueapi.cover.v1.GetRecommend
2203
2150
  * Use `create(GetRecommendationV2ResponseSchema)` to create a new message.
2204
2151
  */
2205
2152
  export const GetRecommendationV2ResponseSchema: GenMessage<GetRecommendationV2Response> = /*@__PURE__*/
2206
- messageDesc(file_cover_v1_cover, 45);
2153
+ messageDesc(file_cover_v1_cover, 47);
2207
2154
 
2208
2155
  /**
2209
2156
  * Request message for OnboardOrg
@@ -2237,7 +2184,7 @@ export type OnboardOrgRequest = Message<"blueapi.cover.v1.OnboardOrgRequest"> &
2237
2184
  * Use `create(OnboardOrgRequestSchema)` to create a new message.
2238
2185
  */
2239
2186
  export const OnboardOrgRequestSchema: GenMessage<OnboardOrgRequest> = /*@__PURE__*/
2240
- messageDesc(file_cover_v1_cover, 46);
2187
+ messageDesc(file_cover_v1_cover, 48);
2241
2188
 
2242
2189
  /**
2243
2190
  * Response message for OnboardOrg
@@ -2256,7 +2203,7 @@ export type OnboardOrgResponse = Message<"blueapi.cover.v1.OnboardOrgResponse">
2256
2203
  * Use `create(OnboardOrgResponseSchema)` to create a new message.
2257
2204
  */
2258
2205
  export const OnboardOrgResponseSchema: GenMessage<OnboardOrgResponse> = /*@__PURE__*/
2259
- messageDesc(file_cover_v1_cover, 47);
2206
+ messageDesc(file_cover_v1_cover, 49);
2260
2207
 
2261
2208
  /**
2262
2209
  * Request message for InviteMember
@@ -2285,7 +2232,7 @@ export type InviteMemberRequest = Message<"blueapi.cover.v1.InviteMemberRequest"
2285
2232
  * Use `create(InviteMemberRequestSchema)` to create a new message.
2286
2233
  */
2287
2234
  export const InviteMemberRequestSchema: GenMessage<InviteMemberRequest> = /*@__PURE__*/
2288
- messageDesc(file_cover_v1_cover, 48);
2235
+ messageDesc(file_cover_v1_cover, 50);
2289
2236
 
2290
2237
  /**
2291
2238
  * Response message for InviteMember
@@ -2304,7 +2251,7 @@ export type InviteMemberResponse = Message<"blueapi.cover.v1.InviteMemberRespons
2304
2251
  * Use `create(InviteMemberResponseSchema)` to create a new message.
2305
2252
  */
2306
2253
  export const InviteMemberResponseSchema: GenMessage<InviteMemberResponse> = /*@__PURE__*/
2307
- messageDesc(file_cover_v1_cover, 49);
2254
+ messageDesc(file_cover_v1_cover, 51);
2308
2255
 
2309
2256
  /**
2310
2257
  * Request message for ActivateUser
@@ -2362,7 +2309,7 @@ export type ActivateUserRequest = Message<"blueapi.cover.v1.ActivateUserRequest"
2362
2309
  * Use `create(ActivateUserRequestSchema)` to create a new message.
2363
2310
  */
2364
2311
  export const ActivateUserRequestSchema: GenMessage<ActivateUserRequest> = /*@__PURE__*/
2365
- messageDesc(file_cover_v1_cover, 50);
2312
+ messageDesc(file_cover_v1_cover, 52);
2366
2313
 
2367
2314
  /**
2368
2315
  * Response message for ActivateUser
@@ -2381,7 +2328,7 @@ export type ActivateUserResponse = Message<"blueapi.cover.v1.ActivateUserRespons
2381
2328
  * Use `create(ActivateUserResponseSchema)` to create a new message.
2382
2329
  */
2383
2330
  export const ActivateUserResponseSchema: GenMessage<ActivateUserResponse> = /*@__PURE__*/
2384
- messageDesc(file_cover_v1_cover, 51);
2331
+ messageDesc(file_cover_v1_cover, 53);
2385
2332
 
2386
2333
  /**
2387
2334
  * Request message for CreateMember
@@ -2415,7 +2362,7 @@ export type CreateMemberRequest = Message<"blueapi.cover.v1.CreateMemberRequest"
2415
2362
  * Use `create(CreateMemberRequestSchema)` to create a new message.
2416
2363
  */
2417
2364
  export const CreateMemberRequestSchema: GenMessage<CreateMemberRequest> = /*@__PURE__*/
2418
- messageDesc(file_cover_v1_cover, 52);
2365
+ messageDesc(file_cover_v1_cover, 54);
2419
2366
 
2420
2367
  /**
2421
2368
  * Response message for CreateMember
@@ -2434,7 +2381,7 @@ export type CreateMemberResponse = Message<"blueapi.cover.v1.CreateMemberRespons
2434
2381
  * Use `create(CreateMemberResponseSchema)` to create a new message.
2435
2382
  */
2436
2383
  export const CreateMemberResponseSchema: GenMessage<CreateMemberResponse> = /*@__PURE__*/
2437
- messageDesc(file_cover_v1_cover, 53);
2384
+ messageDesc(file_cover_v1_cover, 55);
2438
2385
 
2439
2386
  /**
2440
2387
  * Request message for GetMembers
@@ -2449,7 +2396,7 @@ export type GetMembersRequest = Message<"blueapi.cover.v1.GetMembersRequest"> &
2449
2396
  * Use `create(GetMembersRequestSchema)` to create a new message.
2450
2397
  */
2451
2398
  export const GetMembersRequestSchema: GenMessage<GetMembersRequest> = /*@__PURE__*/
2452
- messageDesc(file_cover_v1_cover, 54);
2399
+ messageDesc(file_cover_v1_cover, 56);
2453
2400
 
2454
2401
  /**
2455
2402
  * Response message for GetMembers
@@ -2468,7 +2415,7 @@ export type GetMembersResponse = Message<"blueapi.cover.v1.GetMembersResponse">
2468
2415
  * Use `create(GetMembersResponseSchema)` to create a new message.
2469
2416
  */
2470
2417
  export const GetMembersResponseSchema: GenMessage<GetMembersResponse> = /*@__PURE__*/
2471
- messageDesc(file_cover_v1_cover, 55);
2418
+ messageDesc(file_cover_v1_cover, 57);
2472
2419
 
2473
2420
  /**
2474
2421
  * Request message for GetMemberDetails
@@ -2489,7 +2436,7 @@ export type GetMemberDetailsRequest = Message<"blueapi.cover.v1.GetMemberDetails
2489
2436
  * Use `create(GetMemberDetailsRequestSchema)` to create a new message.
2490
2437
  */
2491
2438
  export const GetMemberDetailsRequestSchema: GenMessage<GetMemberDetailsRequest> = /*@__PURE__*/
2492
- messageDesc(file_cover_v1_cover, 56);
2439
+ messageDesc(file_cover_v1_cover, 58);
2493
2440
 
2494
2441
  /**
2495
2442
  * Response message for GetMemberDetails
@@ -2508,7 +2455,7 @@ export type GetMemberDetailsResponse = Message<"blueapi.cover.v1.GetMemberDetail
2508
2455
  * Use `create(GetMemberDetailsResponseSchema)` to create a new message.
2509
2456
  */
2510
2457
  export const GetMemberDetailsResponseSchema: GenMessage<GetMemberDetailsResponse> = /*@__PURE__*/
2511
- messageDesc(file_cover_v1_cover, 57);
2458
+ messageDesc(file_cover_v1_cover, 59);
2512
2459
 
2513
2460
  /**
2514
2461
  * Request message for GetMemberCostGroup
@@ -2529,7 +2476,7 @@ export type GetMemberCostGroupRequest = Message<"blueapi.cover.v1.GetMemberCostG
2529
2476
  * Use `create(GetMemberCostGroupRequestSchema)` to create a new message.
2530
2477
  */
2531
2478
  export const GetMemberCostGroupRequestSchema: GenMessage<GetMemberCostGroupRequest> = /*@__PURE__*/
2532
- messageDesc(file_cover_v1_cover, 58);
2479
+ messageDesc(file_cover_v1_cover, 60);
2533
2480
 
2534
2481
  /**
2535
2482
  * Response message for GetMemberCostGroup
@@ -2548,7 +2495,7 @@ export type GetMemberCostGroupResponse = Message<"blueapi.cover.v1.GetMemberCost
2548
2495
  * Use `create(GetMemberCostGroupResponseSchema)` to create a new message.
2549
2496
  */
2550
2497
  export const GetMemberCostGroupResponseSchema: GenMessage<GetMemberCostGroupResponse> = /*@__PURE__*/
2551
- messageDesc(file_cover_v1_cover, 59);
2498
+ messageDesc(file_cover_v1_cover, 61);
2552
2499
 
2553
2500
  /**
2554
2501
  * Request message for UpdateMemberPermission
@@ -2576,7 +2523,7 @@ export type UpdateMemberPermissionRequest = Message<"blueapi.cover.v1.UpdateMemb
2576
2523
  * Use `create(UpdateMemberPermissionRequestSchema)` to create a new message.
2577
2524
  */
2578
2525
  export const UpdateMemberPermissionRequestSchema: GenMessage<UpdateMemberPermissionRequest> = /*@__PURE__*/
2579
- messageDesc(file_cover_v1_cover, 60);
2526
+ messageDesc(file_cover_v1_cover, 62);
2580
2527
 
2581
2528
  /**
2582
2529
  * Response message for UpdateMemberPermission
@@ -2595,7 +2542,7 @@ export type UpdateMemberPermissionResponse = Message<"blueapi.cover.v1.UpdateMem
2595
2542
  * Use `create(UpdateMemberPermissionResponseSchema)` to create a new message.
2596
2543
  */
2597
2544
  export const UpdateMemberPermissionResponseSchema: GenMessage<UpdateMemberPermissionResponse> = /*@__PURE__*/
2598
- messageDesc(file_cover_v1_cover, 61);
2545
+ messageDesc(file_cover_v1_cover, 63);
2599
2546
 
2600
2547
  /**
2601
2548
  * Request message for GetUserDetails
@@ -2610,7 +2557,7 @@ export type GetUserDetailsRequest = Message<"blueapi.cover.v1.GetUserDetailsRequ
2610
2557
  * Use `create(GetUserDetailsRequestSchema)` to create a new message.
2611
2558
  */
2612
2559
  export const GetUserDetailsRequestSchema: GenMessage<GetUserDetailsRequest> = /*@__PURE__*/
2613
- messageDesc(file_cover_v1_cover, 62);
2560
+ messageDesc(file_cover_v1_cover, 64);
2614
2561
 
2615
2562
  /**
2616
2563
  * Response message for GetUserDetails
@@ -2629,7 +2576,7 @@ export type GetUserDetailsResponse = Message<"blueapi.cover.v1.GetUserDetailsRes
2629
2576
  * Use `create(GetUserDetailsResponseSchema)` to create a new message.
2630
2577
  */
2631
2578
  export const GetUserDetailsResponseSchema: GenMessage<GetUserDetailsResponse> = /*@__PURE__*/
2632
- messageDesc(file_cover_v1_cover, 63);
2579
+ messageDesc(file_cover_v1_cover, 65);
2633
2580
 
2634
2581
  /**
2635
2582
  * Request message for UpdateUserAvatar
@@ -2648,7 +2595,7 @@ export type UpdateUserAvatarRequest = Message<"blueapi.cover.v1.UpdateUserAvatar
2648
2595
  * Use `create(UpdateUserAvatarRequestSchema)` to create a new message.
2649
2596
  */
2650
2597
  export const UpdateUserAvatarRequestSchema: GenMessage<UpdateUserAvatarRequest> = /*@__PURE__*/
2651
- messageDesc(file_cover_v1_cover, 64);
2598
+ messageDesc(file_cover_v1_cover, 66);
2652
2599
 
2653
2600
  /**
2654
2601
  * Response message for UpdateUserAvatar
@@ -2667,7 +2614,7 @@ export type UpdateUserAvatarResponse = Message<"blueapi.cover.v1.UpdateUserAvata
2667
2614
  * Use `create(UpdateUserAvatarResponseSchema)` to create a new message.
2668
2615
  */
2669
2616
  export const UpdateUserAvatarResponseSchema: GenMessage<UpdateUserAvatarResponse> = /*@__PURE__*/
2670
- messageDesc(file_cover_v1_cover, 65);
2617
+ messageDesc(file_cover_v1_cover, 67);
2671
2618
 
2672
2619
  /**
2673
2620
  * Request message for UpdateUserIcon
@@ -2686,7 +2633,7 @@ export type UpdateUserIconRequest = Message<"blueapi.cover.v1.UpdateUserIconRequ
2686
2633
  * Use `create(UpdateUserIconRequestSchema)` to create a new message.
2687
2634
  */
2688
2635
  export const UpdateUserIconRequestSchema: GenMessage<UpdateUserIconRequest> = /*@__PURE__*/
2689
- messageDesc(file_cover_v1_cover, 66);
2636
+ messageDesc(file_cover_v1_cover, 68);
2690
2637
 
2691
2638
  /**
2692
2639
  * Response message for UpdateUserIcon
@@ -2705,7 +2652,7 @@ export type UpdateUserIconResponse = Message<"blueapi.cover.v1.UpdateUserIconRes
2705
2652
  * Use `create(UpdateUserIconResponseSchema)` to create a new message.
2706
2653
  */
2707
2654
  export const UpdateUserIconResponseSchema: GenMessage<UpdateUserIconResponse> = /*@__PURE__*/
2708
- messageDesc(file_cover_v1_cover, 67);
2655
+ messageDesc(file_cover_v1_cover, 69);
2709
2656
 
2710
2657
  /**
2711
2658
  * Request message for UpdateUserColorTheme
@@ -2724,7 +2671,7 @@ export type UpdateUserColorThemeRequest = Message<"blueapi.cover.v1.UpdateUserCo
2724
2671
  * Use `create(UpdateUserColorThemeRequestSchema)` to create a new message.
2725
2672
  */
2726
2673
  export const UpdateUserColorThemeRequestSchema: GenMessage<UpdateUserColorThemeRequest> = /*@__PURE__*/
2727
- messageDesc(file_cover_v1_cover, 68);
2674
+ messageDesc(file_cover_v1_cover, 70);
2728
2675
 
2729
2676
  /**
2730
2677
  * Response message for UpdateUserColorTheme
@@ -2743,7 +2690,7 @@ export type UpdateUserColorThemeResponse = Message<"blueapi.cover.v1.UpdateUserC
2743
2690
  * Use `create(UpdateUserColorThemeResponseSchema)` to create a new message.
2744
2691
  */
2745
2692
  export const UpdateUserColorThemeResponseSchema: GenMessage<UpdateUserColorThemeResponse> = /*@__PURE__*/
2746
- messageDesc(file_cover_v1_cover, 69);
2693
+ messageDesc(file_cover_v1_cover, 71);
2747
2694
 
2748
2695
  /**
2749
2696
  * Request message for UpdateUserName
@@ -2762,7 +2709,7 @@ export type UpdateUserNameRequest = Message<"blueapi.cover.v1.UpdateUserNameRequ
2762
2709
  * Use `create(UpdateUserNameRequestSchema)` to create a new message.
2763
2710
  */
2764
2711
  export const UpdateUserNameRequestSchema: GenMessage<UpdateUserNameRequest> = /*@__PURE__*/
2765
- messageDesc(file_cover_v1_cover, 70);
2712
+ messageDesc(file_cover_v1_cover, 72);
2766
2713
 
2767
2714
  /**
2768
2715
  * Response message for UpdateUserName
@@ -2781,7 +2728,7 @@ export type UpdateUserNameResponse = Message<"blueapi.cover.v1.UpdateUserNameRes
2781
2728
  * Use `create(UpdateUserNameResponseSchema)` to create a new message.
2782
2729
  */
2783
2730
  export const UpdateUserNameResponseSchema: GenMessage<UpdateUserNameResponse> = /*@__PURE__*/
2784
- messageDesc(file_cover_v1_cover, 71);
2731
+ messageDesc(file_cover_v1_cover, 73);
2785
2732
 
2786
2733
  /**
2787
2734
  * Request message for UpdateUserEmail
@@ -2800,7 +2747,7 @@ export type UpdateUserEmailRequest = Message<"blueapi.cover.v1.UpdateUserEmailRe
2800
2747
  * Use `create(UpdateUserEmailRequestSchema)` to create a new message.
2801
2748
  */
2802
2749
  export const UpdateUserEmailRequestSchema: GenMessage<UpdateUserEmailRequest> = /*@__PURE__*/
2803
- messageDesc(file_cover_v1_cover, 72);
2750
+ messageDesc(file_cover_v1_cover, 74);
2804
2751
 
2805
2752
  /**
2806
2753
  * Response message for UpdateUserEmail
@@ -2819,7 +2766,7 @@ export type UpdateUserEmailResponse = Message<"blueapi.cover.v1.UpdateUserEmailR
2819
2766
  * Use `create(UpdateUserEmailResponseSchema)` to create a new message.
2820
2767
  */
2821
2768
  export const UpdateUserEmailResponseSchema: GenMessage<UpdateUserEmailResponse> = /*@__PURE__*/
2822
- messageDesc(file_cover_v1_cover, 73);
2769
+ messageDesc(file_cover_v1_cover, 75);
2823
2770
 
2824
2771
  /**
2825
2772
  * Request message for UpdateUserMainView
@@ -2838,7 +2785,7 @@ export type UpdateUserMainViewRequest = Message<"blueapi.cover.v1.UpdateUserMain
2838
2785
  * Use `create(UpdateUserMainViewRequestSchema)` to create a new message.
2839
2786
  */
2840
2787
  export const UpdateUserMainViewRequestSchema: GenMessage<UpdateUserMainViewRequest> = /*@__PURE__*/
2841
- messageDesc(file_cover_v1_cover, 74);
2788
+ messageDesc(file_cover_v1_cover, 76);
2842
2789
 
2843
2790
  /**
2844
2791
  * Response message for UpdateUserMainView
@@ -2857,7 +2804,7 @@ export type UpdateUserMainViewResponse = Message<"blueapi.cover.v1.UpdateUserMai
2857
2804
  * Use `create(UpdateUserMainViewResponseSchema)` to create a new message.
2858
2805
  */
2859
2806
  export const UpdateUserMainViewResponseSchema: GenMessage<UpdateUserMainViewResponse> = /*@__PURE__*/
2860
- messageDesc(file_cover_v1_cover, 75);
2807
+ messageDesc(file_cover_v1_cover, 77);
2861
2808
 
2862
2809
  /**
2863
2810
  * Request message for ResetUserPassword
@@ -2881,7 +2828,7 @@ export type ResetUserPasswordRequest = Message<"blueapi.cover.v1.ResetUserPasswo
2881
2828
  * Use `create(ResetUserPasswordRequestSchema)` to create a new message.
2882
2829
  */
2883
2830
  export const ResetUserPasswordRequestSchema: GenMessage<ResetUserPasswordRequest> = /*@__PURE__*/
2884
- messageDesc(file_cover_v1_cover, 76);
2831
+ messageDesc(file_cover_v1_cover, 78);
2885
2832
 
2886
2833
  /**
2887
2834
  * Response message for ResetUserPassword
@@ -2900,7 +2847,7 @@ export type ResetUserPasswordResponse = Message<"blueapi.cover.v1.ResetUserPassw
2900
2847
  * Use `create(ResetUserPasswordResponseSchema)` to create a new message.
2901
2848
  */
2902
2849
  export const ResetUserPasswordResponseSchema: GenMessage<ResetUserPasswordResponse> = /*@__PURE__*/
2903
- messageDesc(file_cover_v1_cover, 77);
2850
+ messageDesc(file_cover_v1_cover, 79);
2904
2851
 
2905
2852
  /**
2906
2853
  * Request message for UpdateUserLocale
@@ -2919,7 +2866,7 @@ export type UpdateUserLocaleRequest = Message<"blueapi.cover.v1.UpdateUserLocale
2919
2866
  * Use `create(UpdateUserLocaleRequestSchema)` to create a new message.
2920
2867
  */
2921
2868
  export const UpdateUserLocaleRequestSchema: GenMessage<UpdateUserLocaleRequest> = /*@__PURE__*/
2922
- messageDesc(file_cover_v1_cover, 78);
2869
+ messageDesc(file_cover_v1_cover, 80);
2923
2870
 
2924
2871
  /**
2925
2872
  * Response message for UpdateUserLocale
@@ -2938,7 +2885,7 @@ export type UpdateUserLocaleResponse = Message<"blueapi.cover.v1.UpdateUserLocal
2938
2885
  * Use `create(UpdateUserLocaleResponseSchema)` to create a new message.
2939
2886
  */
2940
2887
  export const UpdateUserLocaleResponseSchema: GenMessage<UpdateUserLocaleResponse> = /*@__PURE__*/
2941
- messageDesc(file_cover_v1_cover, 79);
2888
+ messageDesc(file_cover_v1_cover, 81);
2942
2889
 
2943
2890
  /**
2944
2891
  * Request message for UpdateUserAppTheme
@@ -2957,7 +2904,7 @@ export type UpdateUserAppThemeRequest = Message<"blueapi.cover.v1.UpdateUserAppT
2957
2904
  * Use `create(UpdateUserAppThemeRequestSchema)` to create a new message.
2958
2905
  */
2959
2906
  export const UpdateUserAppThemeRequestSchema: GenMessage<UpdateUserAppThemeRequest> = /*@__PURE__*/
2960
- messageDesc(file_cover_v1_cover, 80);
2907
+ messageDesc(file_cover_v1_cover, 82);
2961
2908
 
2962
2909
  /**
2963
2910
  * Response message for UpdateUserAppTheme
@@ -2976,7 +2923,7 @@ export type UpdateUserAppThemeResponse = Message<"blueapi.cover.v1.UpdateUserApp
2976
2923
  * Use `create(UpdateUserAppThemeResponseSchema)` to create a new message.
2977
2924
  */
2978
2925
  export const UpdateUserAppThemeResponseSchema: GenMessage<UpdateUserAppThemeResponse> = /*@__PURE__*/
2979
- messageDesc(file_cover_v1_cover, 81);
2926
+ messageDesc(file_cover_v1_cover, 83);
2980
2927
 
2981
2928
  /**
2982
2929
  * Request message for UpdateUserTimezone
@@ -3000,7 +2947,7 @@ export type UpdateUserTimezoneRequest = Message<"blueapi.cover.v1.UpdateUserTime
3000
2947
  * Use `create(UpdateUserTimezoneRequestSchema)` to create a new message.
3001
2948
  */
3002
2949
  export const UpdateUserTimezoneRequestSchema: GenMessage<UpdateUserTimezoneRequest> = /*@__PURE__*/
3003
- messageDesc(file_cover_v1_cover, 82);
2950
+ messageDesc(file_cover_v1_cover, 84);
3004
2951
 
3005
2952
  /**
3006
2953
  * Response message for UpdateUserTimezone
@@ -3019,7 +2966,7 @@ export type UpdateUserTimezoneResponse = Message<"blueapi.cover.v1.UpdateUserTim
3019
2966
  * Use `create(UpdateUserTimezoneResponseSchema)` to create a new message.
3020
2967
  */
3021
2968
  export const UpdateUserTimezoneResponseSchema: GenMessage<UpdateUserTimezoneResponse> = /*@__PURE__*/
3022
- messageDesc(file_cover_v1_cover, 83);
2969
+ messageDesc(file_cover_v1_cover, 85);
3023
2970
 
3024
2971
  /**
3025
2972
  * Request message for UpdateUserAttributes
@@ -3038,7 +2985,7 @@ export type UpdateUserAttributesRequest = Message<"blueapi.cover.v1.UpdateUserAt
3038
2985
  * Use `create(UpdateUserAttributesRequestSchema)` to create a new message.
3039
2986
  */
3040
2987
  export const UpdateUserAttributesRequestSchema: GenMessage<UpdateUserAttributesRequest> = /*@__PURE__*/
3041
- messageDesc(file_cover_v1_cover, 84);
2988
+ messageDesc(file_cover_v1_cover, 86);
3042
2989
 
3043
2990
  /**
3044
2991
  * Response message for UpdateUserAttributes
@@ -3057,7 +3004,7 @@ export type UpdateUserAttributesResponse = Message<"blueapi.cover.v1.UpdateUserA
3057
3004
  * Use `create(UpdateUserAttributesResponseSchema)` to create a new message.
3058
3005
  */
3059
3006
  export const UpdateUserAttributesResponseSchema: GenMessage<UpdateUserAttributesResponse> = /*@__PURE__*/
3060
- messageDesc(file_cover_v1_cover, 85);
3007
+ messageDesc(file_cover_v1_cover, 87);
3061
3008
 
3062
3009
  /**
3063
3010
  * Request message for DeleteMember
@@ -3078,7 +3025,7 @@ export type DeleteMemberRequest = Message<"blueapi.cover.v1.DeleteMemberRequest"
3078
3025
  * Use `create(DeleteMemberRequestSchema)` to create a new message.
3079
3026
  */
3080
3027
  export const DeleteMemberRequestSchema: GenMessage<DeleteMemberRequest> = /*@__PURE__*/
3081
- messageDesc(file_cover_v1_cover, 86);
3028
+ messageDesc(file_cover_v1_cover, 88);
3082
3029
 
3083
3030
  /**
3084
3031
  * Response message for DeleteMember
@@ -3097,7 +3044,7 @@ export type DeleteMemberResponse = Message<"blueapi.cover.v1.DeleteMemberRespons
3097
3044
  * Use `create(DeleteMemberResponseSchema)` to create a new message.
3098
3045
  */
3099
3046
  export const DeleteMemberResponseSchema: GenMessage<DeleteMemberResponse> = /*@__PURE__*/
3100
- messageDesc(file_cover_v1_cover, 87);
3047
+ messageDesc(file_cover_v1_cover, 89);
3101
3048
 
3102
3049
  /**
3103
3050
  * Request message for ResetPassword
@@ -3118,7 +3065,7 @@ export type ResetPasswordRequest = Message<"blueapi.cover.v1.ResetPasswordReques
3118
3065
  * Use `create(ResetPasswordRequestSchema)` to create a new message.
3119
3066
  */
3120
3067
  export const ResetPasswordRequestSchema: GenMessage<ResetPasswordRequest> = /*@__PURE__*/
3121
- messageDesc(file_cover_v1_cover, 88);
3068
+ messageDesc(file_cover_v1_cover, 90);
3122
3069
 
3123
3070
  /**
3124
3071
  * Response message for ResetPassword
@@ -3137,7 +3084,7 @@ export type ResetPasswordResponse = Message<"blueapi.cover.v1.ResetPasswordRespo
3137
3084
  * Use `create(ResetPasswordResponseSchema)` to create a new message.
3138
3085
  */
3139
3086
  export const ResetPasswordResponseSchema: GenMessage<ResetPasswordResponse> = /*@__PURE__*/
3140
- messageDesc(file_cover_v1_cover, 89);
3087
+ messageDesc(file_cover_v1_cover, 91);
3141
3088
 
3142
3089
  /**
3143
3090
  * Request message for CreateView
@@ -3196,7 +3143,7 @@ export type CreateViewRequest = Message<"blueapi.cover.v1.CreateViewRequest"> &
3196
3143
  * Use `create(CreateViewRequestSchema)` to create a new message.
3197
3144
  */
3198
3145
  export const CreateViewRequestSchema: GenMessage<CreateViewRequest> = /*@__PURE__*/
3199
- messageDesc(file_cover_v1_cover, 90);
3146
+ messageDesc(file_cover_v1_cover, 92);
3200
3147
 
3201
3148
  /**
3202
3149
  * Response message for CreateView
@@ -3215,7 +3162,7 @@ export type CreateViewResponse = Message<"blueapi.cover.v1.CreateViewResponse">
3215
3162
  * Use `create(CreateViewResponseSchema)` to create a new message.
3216
3163
  */
3217
3164
  export const CreateViewResponseSchema: GenMessage<CreateViewResponse> = /*@__PURE__*/
3218
- messageDesc(file_cover_v1_cover, 91);
3165
+ messageDesc(file_cover_v1_cover, 93);
3219
3166
 
3220
3167
  /**
3221
3168
  * Request message for GetViews
@@ -3230,7 +3177,7 @@ export type GetViewsRequest = Message<"blueapi.cover.v1.GetViewsRequest"> & {
3230
3177
  * Use `create(GetViewsRequestSchema)` to create a new message.
3231
3178
  */
3232
3179
  export const GetViewsRequestSchema: GenMessage<GetViewsRequest> = /*@__PURE__*/
3233
- messageDesc(file_cover_v1_cover, 92);
3180
+ messageDesc(file_cover_v1_cover, 94);
3234
3181
 
3235
3182
  /**
3236
3183
  * Response message for GetViews
@@ -3249,7 +3196,7 @@ export type GetViewsResponse = Message<"blueapi.cover.v1.GetViewsResponse"> & {
3249
3196
  * Use `create(GetViewsResponseSchema)` to create a new message.
3250
3197
  */
3251
3198
  export const GetViewsResponseSchema: GenMessage<GetViewsResponse> = /*@__PURE__*/
3252
- messageDesc(file_cover_v1_cover, 93);
3199
+ messageDesc(file_cover_v1_cover, 95);
3253
3200
 
3254
3201
  /**
3255
3202
  * Request message for GetCurrentView
@@ -3270,7 +3217,7 @@ export type GetCurrentViewRequest = Message<"blueapi.cover.v1.GetCurrentViewRequ
3270
3217
  * Use `create(GetCurrentViewRequestSchema)` to create a new message.
3271
3218
  */
3272
3219
  export const GetCurrentViewRequestSchema: GenMessage<GetCurrentViewRequest> = /*@__PURE__*/
3273
- messageDesc(file_cover_v1_cover, 94);
3220
+ messageDesc(file_cover_v1_cover, 96);
3274
3221
 
3275
3222
  /**
3276
3223
  * Response message for GetCurrentView
@@ -3289,7 +3236,7 @@ export type GetCurrentViewResponse = Message<"blueapi.cover.v1.GetCurrentViewRes
3289
3236
  * Use `create(GetCurrentViewResponseSchema)` to create a new message.
3290
3237
  */
3291
3238
  export const GetCurrentViewResponseSchema: GenMessage<GetCurrentViewResponse> = /*@__PURE__*/
3292
- messageDesc(file_cover_v1_cover, 95);
3239
+ messageDesc(file_cover_v1_cover, 97);
3293
3240
 
3294
3241
  /**
3295
3242
  * Request message for GetFavoriteViews
@@ -3304,7 +3251,7 @@ export type GetFavoriteViewsRequest = Message<"blueapi.cover.v1.GetFavoriteViews
3304
3251
  * Use `create(GetFavoriteViewsRequestSchema)` to create a new message.
3305
3252
  */
3306
3253
  export const GetFavoriteViewsRequestSchema: GenMessage<GetFavoriteViewsRequest> = /*@__PURE__*/
3307
- messageDesc(file_cover_v1_cover, 96);
3254
+ messageDesc(file_cover_v1_cover, 98);
3308
3255
 
3309
3256
  /**
3310
3257
  * Response message for GetFavoriteViews
@@ -3323,7 +3270,7 @@ export type GetFavoriteViewsResponse = Message<"blueapi.cover.v1.GetFavoriteView
3323
3270
  * Use `create(GetFavoriteViewsResponseSchema)` to create a new message.
3324
3271
  */
3325
3272
  export const GetFavoriteViewsResponseSchema: GenMessage<GetFavoriteViewsResponse> = /*@__PURE__*/
3326
- messageDesc(file_cover_v1_cover, 97);
3273
+ messageDesc(file_cover_v1_cover, 99);
3327
3274
 
3328
3275
  /**
3329
3276
  * Request message for PublishView
@@ -3344,7 +3291,7 @@ export type PublishViewRequest = Message<"blueapi.cover.v1.PublishViewRequest">
3344
3291
  * Use `create(PublishViewRequestSchema)` to create a new message.
3345
3292
  */
3346
3293
  export const PublishViewRequestSchema: GenMessage<PublishViewRequest> = /*@__PURE__*/
3347
- messageDesc(file_cover_v1_cover, 98);
3294
+ messageDesc(file_cover_v1_cover, 100);
3348
3295
 
3349
3296
  /**
3350
3297
  * Response message for PublishView
@@ -3363,7 +3310,7 @@ export type PublishViewResponse = Message<"blueapi.cover.v1.PublishViewResponse"
3363
3310
  * Use `create(PublishViewResponseSchema)` to create a new message.
3364
3311
  */
3365
3312
  export const PublishViewResponseSchema: GenMessage<PublishViewResponse> = /*@__PURE__*/
3366
- messageDesc(file_cover_v1_cover, 99);
3313
+ messageDesc(file_cover_v1_cover, 101);
3367
3314
 
3368
3315
  /**
3369
3316
  * Request message for AddFavorite
@@ -3384,7 +3331,7 @@ export type AddFavoriteRequest = Message<"blueapi.cover.v1.AddFavoriteRequest">
3384
3331
  * Use `create(AddFavoriteRequestSchema)` to create a new message.
3385
3332
  */
3386
3333
  export const AddFavoriteRequestSchema: GenMessage<AddFavoriteRequest> = /*@__PURE__*/
3387
- messageDesc(file_cover_v1_cover, 100);
3334
+ messageDesc(file_cover_v1_cover, 102);
3388
3335
 
3389
3336
  /**
3390
3337
  * Response message for AddFavorite
@@ -3403,7 +3350,7 @@ export type AddFavoriteResponse = Message<"blueapi.cover.v1.AddFavoriteResponse"
3403
3350
  * Use `create(AddFavoriteResponseSchema)` to create a new message.
3404
3351
  */
3405
3352
  export const AddFavoriteResponseSchema: GenMessage<AddFavoriteResponse> = /*@__PURE__*/
3406
- messageDesc(file_cover_v1_cover, 101);
3353
+ messageDesc(file_cover_v1_cover, 103);
3407
3354
 
3408
3355
  /**
3409
3356
  * Request message for RemoveFavorite
@@ -3424,7 +3371,7 @@ export type RemoveFavoriteRequest = Message<"blueapi.cover.v1.RemoveFavoriteRequ
3424
3371
  * Use `create(RemoveFavoriteRequestSchema)` to create a new message.
3425
3372
  */
3426
3373
  export const RemoveFavoriteRequestSchema: GenMessage<RemoveFavoriteRequest> = /*@__PURE__*/
3427
- messageDesc(file_cover_v1_cover, 102);
3374
+ messageDesc(file_cover_v1_cover, 104);
3428
3375
 
3429
3376
  /**
3430
3377
  * Response message for RemoveFavorite
@@ -3443,7 +3390,7 @@ export type RemoveFavoriteResponse = Message<"blueapi.cover.v1.RemoveFavoriteRes
3443
3390
  * Use `create(RemoveFavoriteResponseSchema)` to create a new message.
3444
3391
  */
3445
3392
  export const RemoveFavoriteResponseSchema: GenMessage<RemoveFavoriteResponse> = /*@__PURE__*/
3446
- messageDesc(file_cover_v1_cover, 103);
3393
+ messageDesc(file_cover_v1_cover, 105);
3447
3394
 
3448
3395
  /**
3449
3396
  * Request message for UpdateView
@@ -3494,7 +3441,7 @@ export type UpdateViewRequest = Message<"blueapi.cover.v1.UpdateViewRequest"> &
3494
3441
  * Use `create(UpdateViewRequestSchema)` to create a new message.
3495
3442
  */
3496
3443
  export const UpdateViewRequestSchema: GenMessage<UpdateViewRequest> = /*@__PURE__*/
3497
- messageDesc(file_cover_v1_cover, 104);
3444
+ messageDesc(file_cover_v1_cover, 106);
3498
3445
 
3499
3446
  /**
3500
3447
  * Response message for UpdateView
@@ -3513,7 +3460,7 @@ export type UpdateViewResponse = Message<"blueapi.cover.v1.UpdateViewResponse">
3513
3460
  * Use `create(UpdateViewResponseSchema)` to create a new message.
3514
3461
  */
3515
3462
  export const UpdateViewResponseSchema: GenMessage<UpdateViewResponse> = /*@__PURE__*/
3516
- messageDesc(file_cover_v1_cover, 105);
3463
+ messageDesc(file_cover_v1_cover, 107);
3517
3464
 
3518
3465
  /**
3519
3466
  * Request message for UpdateViewLayout
@@ -3539,7 +3486,7 @@ export type UpdateViewLayoutRequest = Message<"blueapi.cover.v1.UpdateViewLayout
3539
3486
  * Use `create(UpdateViewLayoutRequestSchema)` to create a new message.
3540
3487
  */
3541
3488
  export const UpdateViewLayoutRequestSchema: GenMessage<UpdateViewLayoutRequest> = /*@__PURE__*/
3542
- messageDesc(file_cover_v1_cover, 106);
3489
+ messageDesc(file_cover_v1_cover, 108);
3543
3490
 
3544
3491
  /**
3545
3492
  * Response message for UpdateViewLayout
@@ -3558,7 +3505,7 @@ export type UpdateViewLayoutResponse = Message<"blueapi.cover.v1.UpdateViewLayou
3558
3505
  * Use `create(UpdateViewLayoutResponseSchema)` to create a new message.
3559
3506
  */
3560
3507
  export const UpdateViewLayoutResponseSchema: GenMessage<UpdateViewLayoutResponse> = /*@__PURE__*/
3561
- messageDesc(file_cover_v1_cover, 107);
3508
+ messageDesc(file_cover_v1_cover, 109);
3562
3509
 
3563
3510
  /**
3564
3511
  * Request message for UpdateViewWidget
@@ -3596,7 +3543,7 @@ export type UpdateViewWidgetRequest = Message<"blueapi.cover.v1.UpdateViewWidget
3596
3543
  * Use `create(UpdateViewWidgetRequestSchema)` to create a new message.
3597
3544
  */
3598
3545
  export const UpdateViewWidgetRequestSchema: GenMessage<UpdateViewWidgetRequest> = /*@__PURE__*/
3599
- messageDesc(file_cover_v1_cover, 108);
3546
+ messageDesc(file_cover_v1_cover, 110);
3600
3547
 
3601
3548
  /**
3602
3549
  * Response message for UpdateViewWidget
@@ -3620,7 +3567,7 @@ export type UpdateViewWidgetResponse = Message<"blueapi.cover.v1.UpdateViewWidge
3620
3567
  * Use `create(UpdateViewWidgetResponseSchema)` to create a new message.
3621
3568
  */
3622
3569
  export const UpdateViewWidgetResponseSchema: GenMessage<UpdateViewWidgetResponse> = /*@__PURE__*/
3623
- messageDesc(file_cover_v1_cover, 109);
3570
+ messageDesc(file_cover_v1_cover, 111);
3624
3571
 
3625
3572
  /**
3626
3573
  * Request message for UpdateViewColorTheme
@@ -3644,7 +3591,7 @@ export type UpdateViewColorThemeRequest = Message<"blueapi.cover.v1.UpdateViewCo
3644
3591
  * Use `create(UpdateViewColorThemeRequestSchema)` to create a new message.
3645
3592
  */
3646
3593
  export const UpdateViewColorThemeRequestSchema: GenMessage<UpdateViewColorThemeRequest> = /*@__PURE__*/
3647
- messageDesc(file_cover_v1_cover, 110);
3594
+ messageDesc(file_cover_v1_cover, 112);
3648
3595
 
3649
3596
  /**
3650
3597
  * Response message for UpdateViewColorTheme
@@ -3663,7 +3610,7 @@ export type UpdateViewColorThemeResponse = Message<"blueapi.cover.v1.UpdateViewC
3663
3610
  * Use `create(UpdateViewColorThemeResponseSchema)` to create a new message.
3664
3611
  */
3665
3612
  export const UpdateViewColorThemeResponseSchema: GenMessage<UpdateViewColorThemeResponse> = /*@__PURE__*/
3666
- messageDesc(file_cover_v1_cover, 111);
3613
+ messageDesc(file_cover_v1_cover, 113);
3667
3614
 
3668
3615
  /**
3669
3616
  * Request message for UpdateViewCurrency
@@ -3687,7 +3634,7 @@ export type UpdateViewCurrencyRequest = Message<"blueapi.cover.v1.UpdateViewCurr
3687
3634
  * Use `create(UpdateViewCurrencyRequestSchema)` to create a new message.
3688
3635
  */
3689
3636
  export const UpdateViewCurrencyRequestSchema: GenMessage<UpdateViewCurrencyRequest> = /*@__PURE__*/
3690
- messageDesc(file_cover_v1_cover, 112);
3637
+ messageDesc(file_cover_v1_cover, 114);
3691
3638
 
3692
3639
  /**
3693
3640
  * Response message for UpdateViewCurrency
@@ -3706,7 +3653,7 @@ export type UpdateViewCurrencyResponse = Message<"blueapi.cover.v1.UpdateViewCur
3706
3653
  * Use `create(UpdateViewCurrencyResponseSchema)` to create a new message.
3707
3654
  */
3708
3655
  export const UpdateViewCurrencyResponseSchema: GenMessage<UpdateViewCurrencyResponse> = /*@__PURE__*/
3709
- messageDesc(file_cover_v1_cover, 113);
3656
+ messageDesc(file_cover_v1_cover, 115);
3710
3657
 
3711
3658
  /**
3712
3659
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyRequest
@@ -3725,7 +3672,7 @@ export type SetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.SetOrgUpdate
3725
3672
  * Use `create(SetOrgUpdateCurrencyRequestSchema)` to create a new message.
3726
3673
  */
3727
3674
  export const SetOrgUpdateCurrencyRequestSchema: GenMessage<SetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3728
- messageDesc(file_cover_v1_cover, 114);
3675
+ messageDesc(file_cover_v1_cover, 116);
3729
3676
 
3730
3677
  /**
3731
3678
  * @generated from message blueapi.cover.v1.SetOrgUpdateCurrencyResponse
@@ -3742,7 +3689,7 @@ export type SetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.SetOrgUpdat
3742
3689
  * Use `create(SetOrgUpdateCurrencyResponseSchema)` to create a new message.
3743
3690
  */
3744
3691
  export const SetOrgUpdateCurrencyResponseSchema: GenMessage<SetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3745
- messageDesc(file_cover_v1_cover, 115);
3692
+ messageDesc(file_cover_v1_cover, 117);
3746
3693
 
3747
3694
  /**
3748
3695
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyRequest
@@ -3755,7 +3702,7 @@ export type GetOrgUpdateCurrencyRequest = Message<"blueapi.cover.v1.GetOrgUpdate
3755
3702
  * Use `create(GetOrgUpdateCurrencyRequestSchema)` to create a new message.
3756
3703
  */
3757
3704
  export const GetOrgUpdateCurrencyRequestSchema: GenMessage<GetOrgUpdateCurrencyRequest> = /*@__PURE__*/
3758
- messageDesc(file_cover_v1_cover, 116);
3705
+ messageDesc(file_cover_v1_cover, 118);
3759
3706
 
3760
3707
  /**
3761
3708
  * @generated from message blueapi.cover.v1.GetOrgUpdateCurrencyResponse
@@ -3782,7 +3729,7 @@ export type GetOrgUpdateCurrencyResponse = Message<"blueapi.cover.v1.GetOrgUpdat
3782
3729
  * Use `create(GetOrgUpdateCurrencyResponseSchema)` to create a new message.
3783
3730
  */
3784
3731
  export const GetOrgUpdateCurrencyResponseSchema: GenMessage<GetOrgUpdateCurrencyResponse> = /*@__PURE__*/
3785
- messageDesc(file_cover_v1_cover, 117);
3732
+ messageDesc(file_cover_v1_cover, 119);
3786
3733
 
3787
3734
  /**
3788
3735
  * Request message for ListExchangeRates
@@ -3810,7 +3757,7 @@ export type ListExchangeRatesRequest = Message<"blueapi.cover.v1.ListExchangeRat
3810
3757
  * Use `create(ListExchangeRatesRequestSchema)` to create a new message.
3811
3758
  */
3812
3759
  export const ListExchangeRatesRequestSchema: GenMessage<ListExchangeRatesRequest> = /*@__PURE__*/
3813
- messageDesc(file_cover_v1_cover, 118);
3760
+ messageDesc(file_cover_v1_cover, 120);
3814
3761
 
3815
3762
  /**
3816
3763
  * Response message for ListExchangeRates
@@ -3834,7 +3781,7 @@ export type ListExchangeRatesResponse = Message<"blueapi.cover.v1.ListExchangeRa
3834
3781
  * Use `create(ListExchangeRatesResponseSchema)` to create a new message.
3835
3782
  */
3836
3783
  export const ListExchangeRatesResponseSchema: GenMessage<ListExchangeRatesResponse> = /*@__PURE__*/
3837
- messageDesc(file_cover_v1_cover, 119);
3784
+ messageDesc(file_cover_v1_cover, 121);
3838
3785
 
3839
3786
  /**
3840
3787
  * @generated from message blueapi.cover.v1.ExchangeRates
@@ -3861,7 +3808,7 @@ export type ExchangeRates = Message<"blueapi.cover.v1.ExchangeRates"> & {
3861
3808
  * Use `create(ExchangeRatesSchema)` to create a new message.
3862
3809
  */
3863
3810
  export const ExchangeRatesSchema: GenMessage<ExchangeRates> = /*@__PURE__*/
3864
- messageDesc(file_cover_v1_cover, 120);
3811
+ messageDesc(file_cover_v1_cover, 122);
3865
3812
 
3866
3813
  /**
3867
3814
  * Request message for DeleteView
@@ -3882,7 +3829,7 @@ export type DeleteViewRequest = Message<"blueapi.cover.v1.DeleteViewRequest"> &
3882
3829
  * Use `create(DeleteViewRequestSchema)` to create a new message.
3883
3830
  */
3884
3831
  export const DeleteViewRequestSchema: GenMessage<DeleteViewRequest> = /*@__PURE__*/
3885
- messageDesc(file_cover_v1_cover, 121);
3832
+ messageDesc(file_cover_v1_cover, 123);
3886
3833
 
3887
3834
  /**
3888
3835
  * Response message for DeleteView
@@ -3901,7 +3848,7 @@ export type DeleteViewResponse = Message<"blueapi.cover.v1.DeleteViewResponse">
3901
3848
  * Use `create(DeleteViewResponseSchema)` to create a new message.
3902
3849
  */
3903
3850
  export const DeleteViewResponseSchema: GenMessage<DeleteViewResponse> = /*@__PURE__*/
3904
- messageDesc(file_cover_v1_cover, 122);
3851
+ messageDesc(file_cover_v1_cover, 124);
3905
3852
 
3906
3853
  /**
3907
3854
  * Request message for UpdateSideMenuState
@@ -3927,7 +3874,7 @@ export type UpdateSideMenuStateRequest = Message<"blueapi.cover.v1.UpdateSideMen
3927
3874
  * Use `create(UpdateSideMenuStateRequestSchema)` to create a new message.
3928
3875
  */
3929
3876
  export const UpdateSideMenuStateRequestSchema: GenMessage<UpdateSideMenuStateRequest> = /*@__PURE__*/
3930
- messageDesc(file_cover_v1_cover, 123);
3877
+ messageDesc(file_cover_v1_cover, 125);
3931
3878
 
3932
3879
  /**
3933
3880
  * Response message for UpdateSideMenuState
@@ -3946,7 +3893,7 @@ export type UpdateSideMenuStateResponse = Message<"blueapi.cover.v1.UpdateSideMe
3946
3893
  * Use `create(UpdateSideMenuStateResponseSchema)` to create a new message.
3947
3894
  */
3948
3895
  export const UpdateSideMenuStateResponseSchema: GenMessage<UpdateSideMenuStateResponse> = /*@__PURE__*/
3949
- messageDesc(file_cover_v1_cover, 124);
3896
+ messageDesc(file_cover_v1_cover, 126);
3950
3897
 
3951
3898
  /**
3952
3899
  * Request message for AddSideMenuFavorite
@@ -3972,7 +3919,7 @@ export type AddSideMenuFavoriteRequest = Message<"blueapi.cover.v1.AddSideMenuFa
3972
3919
  * Use `create(AddSideMenuFavoriteRequestSchema)` to create a new message.
3973
3920
  */
3974
3921
  export const AddSideMenuFavoriteRequestSchema: GenMessage<AddSideMenuFavoriteRequest> = /*@__PURE__*/
3975
- messageDesc(file_cover_v1_cover, 125);
3922
+ messageDesc(file_cover_v1_cover, 127);
3976
3923
 
3977
3924
  /**
3978
3925
  * Response message for AddSideMenuFavorite
@@ -3991,7 +3938,7 @@ export type AddSideMenuFavoriteResponse = Message<"blueapi.cover.v1.AddSideMenuF
3991
3938
  * Use `create(AddSideMenuFavoriteResponseSchema)` to create a new message.
3992
3939
  */
3993
3940
  export const AddSideMenuFavoriteResponseSchema: GenMessage<AddSideMenuFavoriteResponse> = /*@__PURE__*/
3994
- messageDesc(file_cover_v1_cover, 126);
3941
+ messageDesc(file_cover_v1_cover, 128);
3995
3942
 
3996
3943
  /**
3997
3944
  * Request message for RemoveSideMenuFavorite
@@ -4017,7 +3964,7 @@ export type RemoveSideMenuFavoriteRequest = Message<"blueapi.cover.v1.RemoveSide
4017
3964
  * Use `create(RemoveSideMenuFavoriteRequestSchema)` to create a new message.
4018
3965
  */
4019
3966
  export const RemoveSideMenuFavoriteRequestSchema: GenMessage<RemoveSideMenuFavoriteRequest> = /*@__PURE__*/
4020
- messageDesc(file_cover_v1_cover, 127);
3967
+ messageDesc(file_cover_v1_cover, 129);
4021
3968
 
4022
3969
  /**
4023
3970
  * Response message for RemoveSideMenuFavorite
@@ -4036,7 +3983,7 @@ export type RemoveSideMenuFavoriteResponse = Message<"blueapi.cover.v1.RemoveSid
4036
3983
  * Use `create(RemoveSideMenuFavoriteResponseSchema)` to create a new message.
4037
3984
  */
4038
3985
  export const RemoveSideMenuFavoriteResponseSchema: GenMessage<RemoveSideMenuFavoriteResponse> = /*@__PURE__*/
4039
- messageDesc(file_cover_v1_cover, 128);
3986
+ messageDesc(file_cover_v1_cover, 130);
4040
3987
 
4041
3988
  /**
4042
3989
  * Request message for CreateCostGroup
@@ -4085,7 +4032,7 @@ export type CreateCostGroupRequest = Message<"blueapi.cover.v1.CreateCostGroupRe
4085
4032
  * Use `create(CreateCostGroupRequestSchema)` to create a new message.
4086
4033
  */
4087
4034
  export const CreateCostGroupRequestSchema: GenMessage<CreateCostGroupRequest> = /*@__PURE__*/
4088
- messageDesc(file_cover_v1_cover, 129);
4035
+ messageDesc(file_cover_v1_cover, 131);
4089
4036
 
4090
4037
  /**
4091
4038
  * Response message for CreateCostGroup
@@ -4104,7 +4051,7 @@ export type CreateCostGroupResponse = Message<"blueapi.cover.v1.CreateCostGroupR
4104
4051
  * Use `create(CreateCostGroupResponseSchema)` to create a new message.
4105
4052
  */
4106
4053
  export const CreateCostGroupResponseSchema: GenMessage<CreateCostGroupResponse> = /*@__PURE__*/
4107
- messageDesc(file_cover_v1_cover, 130);
4054
+ messageDesc(file_cover_v1_cover, 132);
4108
4055
 
4109
4056
  /**
4110
4057
  * Request message for GetCostGroups
@@ -4119,7 +4066,7 @@ export type GetCostGroupsRequest = Message<"blueapi.cover.v1.GetCostGroupsReques
4119
4066
  * Use `create(GetCostGroupsRequestSchema)` to create a new message.
4120
4067
  */
4121
4068
  export const GetCostGroupsRequestSchema: GenMessage<GetCostGroupsRequest> = /*@__PURE__*/
4122
- messageDesc(file_cover_v1_cover, 131);
4069
+ messageDesc(file_cover_v1_cover, 133);
4123
4070
 
4124
4071
  /**
4125
4072
  * Response message for GetCostGroups
@@ -4138,7 +4085,7 @@ export type GetCostGroupsResponse = Message<"blueapi.cover.v1.GetCostGroupsRespo
4138
4085
  * Use `create(GetCostGroupsResponseSchema)` to create a new message.
4139
4086
  */
4140
4087
  export const GetCostGroupsResponseSchema: GenMessage<GetCostGroupsResponse> = /*@__PURE__*/
4141
- messageDesc(file_cover_v1_cover, 132);
4088
+ messageDesc(file_cover_v1_cover, 134);
4142
4089
 
4143
4090
  /**
4144
4091
  * Request message for GetCostGroupDetails
@@ -4159,7 +4106,7 @@ export type GetCostGroupDetailsRequest = Message<"blueapi.cover.v1.GetCostGroupD
4159
4106
  * Use `create(GetCostGroupDetailsRequestSchema)` to create a new message.
4160
4107
  */
4161
4108
  export const GetCostGroupDetailsRequestSchema: GenMessage<GetCostGroupDetailsRequest> = /*@__PURE__*/
4162
- messageDesc(file_cover_v1_cover, 133);
4109
+ messageDesc(file_cover_v1_cover, 135);
4163
4110
 
4164
4111
  /**
4165
4112
  * Response message for GetCostGroupDetails
@@ -4178,7 +4125,7 @@ export type GetCostGroupDetailsResponse = Message<"blueapi.cover.v1.GetCostGroup
4178
4125
  * Use `create(GetCostGroupDetailsResponseSchema)` to create a new message.
4179
4126
  */
4180
4127
  export const GetCostGroupDetailsResponseSchema: GenMessage<GetCostGroupDetailsResponse> = /*@__PURE__*/
4181
- messageDesc(file_cover_v1_cover, 134);
4128
+ messageDesc(file_cover_v1_cover, 136);
4182
4129
 
4183
4130
  /**
4184
4131
  * Request message for UpdateCostGroupName
@@ -4206,7 +4153,7 @@ export type UpdateCostGroupNameRequest = Message<"blueapi.cover.v1.UpdateCostGro
4206
4153
  * Use `create(UpdateCostGroupNameRequestSchema)` to create a new message.
4207
4154
  */
4208
4155
  export const UpdateCostGroupNameRequestSchema: GenMessage<UpdateCostGroupNameRequest> = /*@__PURE__*/
4209
- messageDesc(file_cover_v1_cover, 135);
4156
+ messageDesc(file_cover_v1_cover, 137);
4210
4157
 
4211
4158
  /**
4212
4159
  * Response message for UpdateCostGroupName
@@ -4225,7 +4172,7 @@ export type UpdateCostGroupNameResponse = Message<"blueapi.cover.v1.UpdateCostGr
4225
4172
  * Use `create(UpdateCostGroupNameResponseSchema)` to create a new message.
4226
4173
  */
4227
4174
  export const UpdateCostGroupNameResponseSchema: GenMessage<UpdateCostGroupNameResponse> = /*@__PURE__*/
4228
- messageDesc(file_cover_v1_cover, 136);
4175
+ messageDesc(file_cover_v1_cover, 138);
4229
4176
 
4230
4177
  /**
4231
4178
  * Request message for UpdateCostGroupDescription
@@ -4253,7 +4200,7 @@ export type UpdateCostGroupDescriptionRequest = Message<"blueapi.cover.v1.Update
4253
4200
  * Use `create(UpdateCostGroupDescriptionRequestSchema)` to create a new message.
4254
4201
  */
4255
4202
  export const UpdateCostGroupDescriptionRequestSchema: GenMessage<UpdateCostGroupDescriptionRequest> = /*@__PURE__*/
4256
- messageDesc(file_cover_v1_cover, 137);
4203
+ messageDesc(file_cover_v1_cover, 139);
4257
4204
 
4258
4205
  /**
4259
4206
  * Response message for UpdateCostGroupDescription
@@ -4272,7 +4219,7 @@ export type UpdateCostGroupDescriptionResponse = Message<"blueapi.cover.v1.Updat
4272
4219
  * Use `create(UpdateCostGroupDescriptionResponseSchema)` to create a new message.
4273
4220
  */
4274
4221
  export const UpdateCostGroupDescriptionResponseSchema: GenMessage<UpdateCostGroupDescriptionResponse> = /*@__PURE__*/
4275
- messageDesc(file_cover_v1_cover, 138);
4222
+ messageDesc(file_cover_v1_cover, 140);
4276
4223
 
4277
4224
  /**
4278
4225
  * Request message for UpdateCostGroupImage
@@ -4300,7 +4247,7 @@ export type UpdateCostGroupImageRequest = Message<"blueapi.cover.v1.UpdateCostGr
4300
4247
  * Use `create(UpdateCostGroupImageRequestSchema)` to create a new message.
4301
4248
  */
4302
4249
  export const UpdateCostGroupImageRequestSchema: GenMessage<UpdateCostGroupImageRequest> = /*@__PURE__*/
4303
- messageDesc(file_cover_v1_cover, 139);
4250
+ messageDesc(file_cover_v1_cover, 141);
4304
4251
 
4305
4252
  /**
4306
4253
  * Response message for UpdateCostGroupImage
@@ -4319,7 +4266,7 @@ export type UpdateCostGroupImageResponse = Message<"blueapi.cover.v1.UpdateCostG
4319
4266
  * Use `create(UpdateCostGroupImageResponseSchema)` to create a new message.
4320
4267
  */
4321
4268
  export const UpdateCostGroupImageResponseSchema: GenMessage<UpdateCostGroupImageResponse> = /*@__PURE__*/
4322
- messageDesc(file_cover_v1_cover, 140);
4269
+ messageDesc(file_cover_v1_cover, 142);
4323
4270
 
4324
4271
  /**
4325
4272
  * Request message for UpdateCostGroupIcon
@@ -4347,7 +4294,7 @@ export type UpdateCostGroupIconRequest = Message<"blueapi.cover.v1.UpdateCostGro
4347
4294
  * Use `create(UpdateCostGroupIconRequestSchema)` to create a new message.
4348
4295
  */
4349
4296
  export const UpdateCostGroupIconRequestSchema: GenMessage<UpdateCostGroupIconRequest> = /*@__PURE__*/
4350
- messageDesc(file_cover_v1_cover, 141);
4297
+ messageDesc(file_cover_v1_cover, 143);
4351
4298
 
4352
4299
  /**
4353
4300
  * Response message for UpdateCostGroupIcon
@@ -4366,7 +4313,7 @@ export type UpdateCostGroupIconResponse = Message<"blueapi.cover.v1.UpdateCostGr
4366
4313
  * Use `create(UpdateCostGroupIconResponseSchema)` to create a new message.
4367
4314
  */
4368
4315
  export const UpdateCostGroupIconResponseSchema: GenMessage<UpdateCostGroupIconResponse> = /*@__PURE__*/
4369
- messageDesc(file_cover_v1_cover, 142);
4316
+ messageDesc(file_cover_v1_cover, 144);
4370
4317
 
4371
4318
  /**
4372
4319
  * Request message for UpdateCostGroupColorTheme
@@ -4394,7 +4341,7 @@ export type UpdateCostGroupColorThemeRequest = Message<"blueapi.cover.v1.UpdateC
4394
4341
  * Use `create(UpdateCostGroupColorThemeRequestSchema)` to create a new message.
4395
4342
  */
4396
4343
  export const UpdateCostGroupColorThemeRequestSchema: GenMessage<UpdateCostGroupColorThemeRequest> = /*@__PURE__*/
4397
- messageDesc(file_cover_v1_cover, 143);
4344
+ messageDesc(file_cover_v1_cover, 145);
4398
4345
 
4399
4346
  /**
4400
4347
  * Response message for UpdateCostGroupColorTheme
@@ -4413,7 +4360,7 @@ export type UpdateCostGroupColorThemeResponse = Message<"blueapi.cover.v1.Update
4413
4360
  * Use `create(UpdateCostGroupColorThemeResponseSchema)` to create a new message.
4414
4361
  */
4415
4362
  export const UpdateCostGroupColorThemeResponseSchema: GenMessage<UpdateCostGroupColorThemeResponse> = /*@__PURE__*/
4416
- messageDesc(file_cover_v1_cover, 144);
4363
+ messageDesc(file_cover_v1_cover, 146);
4417
4364
 
4418
4365
  /**
4419
4366
  * Request message for UpdateCostGroupCombinations
@@ -4439,7 +4386,7 @@ export type UpdateCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Updat
4439
4386
  * Use `create(UpdateCostGroupCombinationsRequestSchema)` to create a new message.
4440
4387
  */
4441
4388
  export const UpdateCostGroupCombinationsRequestSchema: GenMessage<UpdateCostGroupCombinationsRequest> = /*@__PURE__*/
4442
- messageDesc(file_cover_v1_cover, 145);
4389
+ messageDesc(file_cover_v1_cover, 147);
4443
4390
 
4444
4391
  /**
4445
4392
  * Response message for UpdateCostGroupCombinations
@@ -4458,7 +4405,7 @@ export type UpdateCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Upda
4458
4405
  * Use `create(UpdateCostGroupCombinationsResponseSchema)` to create a new message.
4459
4406
  */
4460
4407
  export const UpdateCostGroupCombinationsResponseSchema: GenMessage<UpdateCostGroupCombinationsResponse> = /*@__PURE__*/
4461
- messageDesc(file_cover_v1_cover, 146);
4408
+ messageDesc(file_cover_v1_cover, 148);
4462
4409
 
4463
4410
  /**
4464
4411
  * Request message for AssignCostGroupMember
@@ -4486,7 +4433,7 @@ export type AssignCostGroupMemberRequest = Message<"blueapi.cover.v1.AssignCostG
4486
4433
  * Use `create(AssignCostGroupMemberRequestSchema)` to create a new message.
4487
4434
  */
4488
4435
  export const AssignCostGroupMemberRequestSchema: GenMessage<AssignCostGroupMemberRequest> = /*@__PURE__*/
4489
- messageDesc(file_cover_v1_cover, 147);
4436
+ messageDesc(file_cover_v1_cover, 149);
4490
4437
 
4491
4438
  /**
4492
4439
  * Response message for AssignCostGroupMember
@@ -4510,7 +4457,7 @@ export type AssignCostGroupMemberResponse = Message<"blueapi.cover.v1.AssignCost
4510
4457
  * Use `create(AssignCostGroupMemberResponseSchema)` to create a new message.
4511
4458
  */
4512
4459
  export const AssignCostGroupMemberResponseSchema: GenMessage<AssignCostGroupMemberResponse> = /*@__PURE__*/
4513
- messageDesc(file_cover_v1_cover, 148);
4460
+ messageDesc(file_cover_v1_cover, 150);
4514
4461
 
4515
4462
  /**
4516
4463
  * Request message for RemoveCostGroupMember
@@ -4538,7 +4485,7 @@ export type RemoveCostGroupMemberRequest = Message<"blueapi.cover.v1.RemoveCostG
4538
4485
  * Use `create(RemoveCostGroupMemberRequestSchema)` to create a new message.
4539
4486
  */
4540
4487
  export const RemoveCostGroupMemberRequestSchema: GenMessage<RemoveCostGroupMemberRequest> = /*@__PURE__*/
4541
- messageDesc(file_cover_v1_cover, 149);
4488
+ messageDesc(file_cover_v1_cover, 151);
4542
4489
 
4543
4490
  /**
4544
4491
  * Response message for RemoveCostGroupMember
@@ -4562,7 +4509,7 @@ export type RemoveCostGroupMemberResponse = Message<"blueapi.cover.v1.RemoveCost
4562
4509
  * Use `create(RemoveCostGroupMemberResponseSchema)` to create a new message.
4563
4510
  */
4564
4511
  export const RemoveCostGroupMemberResponseSchema: GenMessage<RemoveCostGroupMemberResponse> = /*@__PURE__*/
4565
- messageDesc(file_cover_v1_cover, 150);
4512
+ messageDesc(file_cover_v1_cover, 152);
4566
4513
 
4567
4514
  /**
4568
4515
  * Request message for DeleteCostGroup
@@ -4583,7 +4530,7 @@ export type DeleteCostGroupRequest = Message<"blueapi.cover.v1.DeleteCostGroupRe
4583
4530
  * Use `create(DeleteCostGroupRequestSchema)` to create a new message.
4584
4531
  */
4585
4532
  export const DeleteCostGroupRequestSchema: GenMessage<DeleteCostGroupRequest> = /*@__PURE__*/
4586
- messageDesc(file_cover_v1_cover, 151);
4533
+ messageDesc(file_cover_v1_cover, 153);
4587
4534
 
4588
4535
  /**
4589
4536
  * Response message for DeleteCostGroup
@@ -4602,7 +4549,7 @@ export type DeleteCostGroupResponse = Message<"blueapi.cover.v1.DeleteCostGroupR
4602
4549
  * Use `create(DeleteCostGroupResponseSchema)` to create a new message.
4603
4550
  */
4604
4551
  export const DeleteCostGroupResponseSchema: GenMessage<DeleteCostGroupResponse> = /*@__PURE__*/
4605
- messageDesc(file_cover_v1_cover, 152);
4552
+ messageDesc(file_cover_v1_cover, 154);
4606
4553
 
4607
4554
  /**
4608
4555
  * Request message for the GetAccountAccessTemplateUrlRequest rpc.
@@ -4623,7 +4570,7 @@ export type GetAccountAccessTemplateUrlRequest = Message<"blueapi.cover.v1.GetAc
4623
4570
  * Use `create(GetAccountAccessTemplateUrlRequestSchema)` to create a new message.
4624
4571
  */
4625
4572
  export const GetAccountAccessTemplateUrlRequestSchema: GenMessage<GetAccountAccessTemplateUrlRequest> = /*@__PURE__*/
4626
- messageDesc(file_cover_v1_cover, 153);
4573
+ messageDesc(file_cover_v1_cover, 155);
4627
4574
 
4628
4575
  /**
4629
4576
  * Response message for the GetAccountAccessTemplateUrlResponse rpc.
@@ -4677,7 +4624,7 @@ export type GetAccountAccessTemplateUrlResponse = Message<"blueapi.cover.v1.GetA
4677
4624
  * Use `create(GetAccountAccessTemplateUrlResponseSchema)` to create a new message.
4678
4625
  */
4679
4626
  export const GetAccountAccessTemplateUrlResponseSchema: GenMessage<GetAccountAccessTemplateUrlResponse> = /*@__PURE__*/
4680
- messageDesc(file_cover_v1_cover, 154);
4627
+ messageDesc(file_cover_v1_cover, 156);
4681
4628
 
4682
4629
  /**
4683
4630
  * Request message for the ListAccountAccess rpc.
@@ -4692,7 +4639,7 @@ export type ListAccountAccessRequest = Message<"blueapi.cover.v1.ListAccountAcce
4692
4639
  * Use `create(ListAccountAccessRequestSchema)` to create a new message.
4693
4640
  */
4694
4641
  export const ListAccountAccessRequestSchema: GenMessage<ListAccountAccessRequest> = /*@__PURE__*/
4695
- messageDesc(file_cover_v1_cover, 155);
4642
+ messageDesc(file_cover_v1_cover, 157);
4696
4643
 
4697
4644
  /**
4698
4645
  * Request message for the GetAccountAccess rpc.
@@ -4713,7 +4660,7 @@ export type GetAccountAccessRequest = Message<"blueapi.cover.v1.GetAccountAccess
4713
4660
  * Use `create(GetAccountAccessRequestSchema)` to create a new message.
4714
4661
  */
4715
4662
  export const GetAccountAccessRequestSchema: GenMessage<GetAccountAccessRequest> = /*@__PURE__*/
4716
- messageDesc(file_cover_v1_cover, 156);
4663
+ messageDesc(file_cover_v1_cover, 158);
4717
4664
 
4718
4665
  /**
4719
4666
  * Response message for GetAccountAccess, CreateAccountAccess rpc.
@@ -4832,7 +4779,7 @@ export type AccountAccess = Message<"blueapi.cover.v1.AccountAccess"> & {
4832
4779
  * Use `create(AccountAccessSchema)` to create a new message.
4833
4780
  */
4834
4781
  export const AccountAccessSchema: GenMessage<AccountAccess> = /*@__PURE__*/
4835
- messageDesc(file_cover_v1_cover, 157);
4782
+ messageDesc(file_cover_v1_cover, 159);
4836
4783
 
4837
4784
  /**
4838
4785
  * Request message for the CreateAccountAccess rpc.
@@ -4860,7 +4807,7 @@ export type CreateAccountAccessRequest = Message<"blueapi.cover.v1.CreateAccount
4860
4807
  * Use `create(CreateAccountAccessRequestSchema)` to create a new message.
4861
4808
  */
4862
4809
  export const CreateAccountAccessRequestSchema: GenMessage<CreateAccountAccessRequest> = /*@__PURE__*/
4863
- messageDesc(file_cover_v1_cover, 158);
4810
+ messageDesc(file_cover_v1_cover, 160);
4864
4811
 
4865
4812
  /**
4866
4813
  * Request message for the CreateAccountAccessStackset rpc.
@@ -4888,7 +4835,7 @@ export type CreateAccountAccessStacksetRequest = Message<"blueapi.cover.v1.Creat
4888
4835
  * Use `create(CreateAccountAccessStacksetRequestSchema)` to create a new message.
4889
4836
  */
4890
4837
  export const CreateAccountAccessStacksetRequestSchema: GenMessage<CreateAccountAccessStacksetRequest> = /*@__PURE__*/
4891
- messageDesc(file_cover_v1_cover, 159);
4838
+ messageDesc(file_cover_v1_cover, 161);
4892
4839
 
4893
4840
  /**
4894
4841
  * Request message for the UpdateAccountAccess rpc.
@@ -4909,7 +4856,7 @@ export type UpdateAccountAccessRequest = Message<"blueapi.cover.v1.UpdateAccount
4909
4856
  * Use `create(UpdateAccountAccessRequestSchema)` to create a new message.
4910
4857
  */
4911
4858
  export const UpdateAccountAccessRequestSchema: GenMessage<UpdateAccountAccessRequest> = /*@__PURE__*/
4912
- messageDesc(file_cover_v1_cover, 160);
4859
+ messageDesc(file_cover_v1_cover, 162);
4913
4860
 
4914
4861
  /**
4915
4862
  * Request message for the DeleteAccountAccess rpc.
@@ -4935,7 +4882,7 @@ export type DeleteAccountAccessRequest = Message<"blueapi.cover.v1.DeleteAccount
4935
4882
  * Use `create(DeleteAccountAccessRequestSchema)` to create a new message.
4936
4883
  */
4937
4884
  export const DeleteAccountAccessRequestSchema: GenMessage<DeleteAccountAccessRequest> = /*@__PURE__*/
4938
- messageDesc(file_cover_v1_cover, 161);
4885
+ messageDesc(file_cover_v1_cover, 163);
4939
4886
 
4940
4887
  /**
4941
4888
  * Response message for the DeleteAccountAccess rpc.
@@ -4954,7 +4901,7 @@ export type DeleteAccountAccessResponse = Message<"blueapi.cover.v1.DeleteAccoun
4954
4901
  * Use `create(DeleteAccountAccessResponseSchema)` to create a new message.
4955
4902
  */
4956
4903
  export const DeleteAccountAccessResponseSchema: GenMessage<DeleteAccountAccessResponse> = /*@__PURE__*/
4957
- messageDesc(file_cover_v1_cover, 162);
4904
+ messageDesc(file_cover_v1_cover, 164);
4958
4905
 
4959
4906
  /**
4960
4907
  * Request message for the RegisterAccount rpc.
@@ -4989,7 +4936,7 @@ export type RegisterAccountRequest = Message<"blueapi.cover.v1.RegisterAccountRe
4989
4936
  * Use `create(RegisterAccountRequestSchema)` to create a new message.
4990
4937
  */
4991
4938
  export const RegisterAccountRequestSchema: GenMessage<RegisterAccountRequest> = /*@__PURE__*/
4992
- messageDesc(file_cover_v1_cover, 163);
4939
+ messageDesc(file_cover_v1_cover, 165);
4993
4940
 
4994
4941
  /**
4995
4942
  * Request message for the Asset.ListResources rpc.
@@ -5045,7 +4992,7 @@ export type ListAssetsRequest = Message<"blueapi.cover.v1.ListAssetsRequest"> &
5045
4992
  * Use `create(ListAssetsRequestSchema)` to create a new message.
5046
4993
  */
5047
4994
  export const ListAssetsRequestSchema: GenMessage<ListAssetsRequest> = /*@__PURE__*/
5048
- messageDesc(file_cover_v1_cover, 164);
4995
+ messageDesc(file_cover_v1_cover, 166);
5049
4996
 
5050
4997
  /**
5051
4998
  * @generated from message blueapi.cover.v1.ListAssetsFilters
@@ -5062,7 +5009,7 @@ export type ListAssetsFilters = Message<"blueapi.cover.v1.ListAssetsFilters"> &
5062
5009
  * Use `create(ListAssetsFiltersSchema)` to create a new message.
5063
5010
  */
5064
5011
  export const ListAssetsFiltersSchema: GenMessage<ListAssetsFilters> = /*@__PURE__*/
5065
- messageDesc(file_cover_v1_cover, 165);
5012
+ messageDesc(file_cover_v1_cover, 167);
5066
5013
 
5067
5014
  /**
5068
5015
  * @generated from message blueapi.cover.v1.Resource
@@ -5144,7 +5091,7 @@ export type Resource = Message<"blueapi.cover.v1.Resource"> & {
5144
5091
  * Use `create(ResourceSchema)` to create a new message.
5145
5092
  */
5146
5093
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
5147
- messageDesc(file_cover_v1_cover, 166);
5094
+ messageDesc(file_cover_v1_cover, 168);
5148
5095
 
5149
5096
  /**
5150
5097
  * @generated from message blueapi.cover.v1.GetAssetsSummaryRequest
@@ -5198,7 +5145,7 @@ export type GetAssetsSummaryRequest = Message<"blueapi.cover.v1.GetAssetsSummary
5198
5145
  * Use `create(GetAssetsSummaryRequestSchema)` to create a new message.
5199
5146
  */
5200
5147
  export const GetAssetsSummaryRequestSchema: GenMessage<GetAssetsSummaryRequest> = /*@__PURE__*/
5201
- messageDesc(file_cover_v1_cover, 167);
5148
+ messageDesc(file_cover_v1_cover, 169);
5202
5149
 
5203
5150
  /**
5204
5151
  * @generated from message blueapi.cover.v1.GetAssetsSummaryResponse
@@ -5222,7 +5169,7 @@ export type GetAssetsSummaryResponse = Message<"blueapi.cover.v1.GetAssetsSummar
5222
5169
  * Use `create(GetAssetsSummaryResponseSchema)` to create a new message.
5223
5170
  */
5224
5171
  export const GetAssetsSummaryResponseSchema: GenMessage<GetAssetsSummaryResponse> = /*@__PURE__*/
5225
- messageDesc(file_cover_v1_cover, 168);
5172
+ messageDesc(file_cover_v1_cover, 170);
5226
5173
 
5227
5174
  /**
5228
5175
  * @generated from message blueapi.cover.v1.AssetsSummary
@@ -5262,7 +5209,7 @@ export type AssetsSummary = Message<"blueapi.cover.v1.AssetsSummary"> & {
5262
5209
  * Use `create(AssetsSummarySchema)` to create a new message.
5263
5210
  */
5264
5211
  export const AssetsSummarySchema: GenMessage<AssetsSummary> = /*@__PURE__*/
5265
- messageDesc(file_cover_v1_cover, 169);
5212
+ messageDesc(file_cover_v1_cover, 171);
5266
5213
 
5267
5214
  /**
5268
5215
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsRequest
@@ -5281,7 +5228,7 @@ export type ResolveCostGroupCombinationsRequest = Message<"blueapi.cover.v1.Reso
5281
5228
  * Use `create(ResolveCostGroupCombinationsRequestSchema)` to create a new message.
5282
5229
  */
5283
5230
  export const ResolveCostGroupCombinationsRequestSchema: GenMessage<ResolveCostGroupCombinationsRequest> = /*@__PURE__*/
5284
- messageDesc(file_cover_v1_cover, 170);
5231
+ messageDesc(file_cover_v1_cover, 172);
5285
5232
 
5286
5233
  /**
5287
5234
  * @generated from message blueapi.cover.v1.ResolveCostGroupCombinationsResponse
@@ -5303,7 +5250,7 @@ export type ResolveCostGroupCombinationsResponse = Message<"blueapi.cover.v1.Res
5303
5250
  * Use `create(ResolveCostGroupCombinationsResponseSchema)` to create a new message.
5304
5251
  */
5305
5252
  export const ResolveCostGroupCombinationsResponseSchema: GenMessage<ResolveCostGroupCombinationsResponse> = /*@__PURE__*/
5306
- messageDesc(file_cover_v1_cover, 171);
5253
+ messageDesc(file_cover_v1_cover, 173);
5307
5254
 
5308
5255
  /**
5309
5256
  * @generated from message blueapi.cover.v1.GetCostUsageRequest
@@ -5427,7 +5374,7 @@ export type GetCostUsageRequest = Message<"blueapi.cover.v1.GetCostUsageRequest"
5427
5374
  * Use `create(GetCostUsageRequestSchema)` to create a new message.
5428
5375
  */
5429
5376
  export const GetCostUsageRequestSchema: GenMessage<GetCostUsageRequest> = /*@__PURE__*/
5430
- messageDesc(file_cover_v1_cover, 172);
5377
+ messageDesc(file_cover_v1_cover, 174);
5431
5378
 
5432
5379
  /**
5433
5380
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAwsOptions
@@ -5481,7 +5428,7 @@ export type GetCostUsageRequestAwsOptions = Message<"blueapi.cover.v1.GetCostUsa
5481
5428
  * Use `create(GetCostUsageRequestAwsOptionsSchema)` to create a new message.
5482
5429
  */
5483
5430
  export const GetCostUsageRequestAwsOptionsSchema: GenMessage<GetCostUsageRequestAwsOptions> = /*@__PURE__*/
5484
- messageDesc(file_cover_v1_cover, 173);
5431
+ messageDesc(file_cover_v1_cover, 175);
5485
5432
 
5486
5433
  /**
5487
5434
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureOptions
@@ -5527,7 +5474,7 @@ export type GetCostUsageRequestAzureOptions = Message<"blueapi.cover.v1.GetCostU
5527
5474
  * Use `create(GetCostUsageRequestAzureOptionsSchema)` to create a new message.
5528
5475
  */
5529
5476
  export const GetCostUsageRequestAzureOptionsSchema: GenMessage<GetCostUsageRequestAzureOptions> = /*@__PURE__*/
5530
- messageDesc(file_cover_v1_cover, 174);
5477
+ messageDesc(file_cover_v1_cover, 176);
5531
5478
 
5532
5479
  /**
5533
5480
  * @generated from message blueapi.cover.v1.GetCostUsageRequestGcpOptions
@@ -5589,7 +5536,7 @@ export type GetCostUsageRequestGcpOptions = Message<"blueapi.cover.v1.GetCostUsa
5589
5536
  * Use `create(GetCostUsageRequestGcpOptionsSchema)` to create a new message.
5590
5537
  */
5591
5538
  export const GetCostUsageRequestGcpOptionsSchema: GenMessage<GetCostUsageRequestGcpOptions> = /*@__PURE__*/
5592
- messageDesc(file_cover_v1_cover, 175);
5539
+ messageDesc(file_cover_v1_cover, 177);
5593
5540
 
5594
5541
  /**
5595
5542
  * @generated from message blueapi.cover.v1.GetCostUsageRequestAzureCspOptions
@@ -5641,7 +5588,7 @@ export type GetCostUsageRequestAzureCspOptions = Message<"blueapi.cover.v1.GetCo
5641
5588
  * Use `create(GetCostUsageRequestAzureCspOptionsSchema)` to create a new message.
5642
5589
  */
5643
5590
  export const GetCostUsageRequestAzureCspOptionsSchema: GenMessage<GetCostUsageRequestAzureCspOptions> = /*@__PURE__*/
5644
- messageDesc(file_cover_v1_cover, 176);
5591
+ messageDesc(file_cover_v1_cover, 178);
5645
5592
 
5646
5593
  /**
5647
5594
  * @generated from message blueapi.cover.v1.GetCostUsageRequestCustomOptions
@@ -5703,7 +5650,7 @@ export type GetCostUsageRequestCustomOptions = Message<"blueapi.cover.v1.GetCost
5703
5650
  * Use `create(GetCostUsageRequestCustomOptionsSchema)` to create a new message.
5704
5651
  */
5705
5652
  export const GetCostUsageRequestCustomOptionsSchema: GenMessage<GetCostUsageRequestCustomOptions> = /*@__PURE__*/
5706
- messageDesc(file_cover_v1_cover, 177);
5653
+ messageDesc(file_cover_v1_cover, 179);
5707
5654
 
5708
5655
  /**
5709
5656
  * 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 +5671,7 @@ export type ReadCostsRequestOptionsFilters = Message<"blueapi.cover.v1.ReadCosts
5724
5671
  * Use `create(ReadCostsRequestOptionsFiltersSchema)` to create a new message.
5725
5672
  */
5726
5673
  export const ReadCostsRequestOptionsFiltersSchema: GenMessage<ReadCostsRequestOptionsFilters> = /*@__PURE__*/
5727
- messageDesc(file_cover_v1_cover, 178);
5674
+ messageDesc(file_cover_v1_cover, 180);
5728
5675
 
5729
5676
  /**
5730
5677
  * Response message wrapper for cloud costs.
@@ -5862,7 +5809,7 @@ export type CostItem = Message<"blueapi.cover.v1.CostItem"> & {
5862
5809
  * Use `create(CostItemSchema)` to create a new message.
5863
5810
  */
5864
5811
  export const CostItemSchema: GenMessage<CostItem> = /*@__PURE__*/
5865
- messageDesc(file_cover_v1_cover, 179);
5812
+ messageDesc(file_cover_v1_cover, 181);
5866
5813
 
5867
5814
  /**
5868
5815
  * Request message for GetRightSizingRecommendation
@@ -5883,7 +5830,7 @@ export type GetRightSizingRecommendationRequest = Message<"blueapi.cover.v1.GetR
5883
5830
  * Use `create(GetRightSizingRecommendationRequestSchema)` to create a new message.
5884
5831
  */
5885
5832
  export const GetRightSizingRecommendationRequestSchema: GenMessage<GetRightSizingRecommendationRequest> = /*@__PURE__*/
5886
- messageDesc(file_cover_v1_cover, 180);
5833
+ messageDesc(file_cover_v1_cover, 182);
5887
5834
 
5888
5835
  /**
5889
5836
  * Response message for GetRightSizingRecommendation
@@ -5902,7 +5849,7 @@ export type GetRightSizingRecommendationResponse = Message<"blueapi.cover.v1.Get
5902
5849
  * Use `create(GetRightSizingRecommendationResponseSchema)` to create a new message.
5903
5850
  */
5904
5851
  export const GetRightSizingRecommendationResponseSchema: GenMessage<GetRightSizingRecommendationResponse> = /*@__PURE__*/
5905
- messageDesc(file_cover_v1_cover, 181);
5852
+ messageDesc(file_cover_v1_cover, 183);
5906
5853
 
5907
5854
  /**
5908
5855
  * Request message for ModifyResourceType
@@ -5951,7 +5898,7 @@ export type ModifyResourceTypeRequest = Message<"blueapi.cover.v1.ModifyResource
5951
5898
  * Use `create(ModifyResourceTypeRequestSchema)` to create a new message.
5952
5899
  */
5953
5900
  export const ModifyResourceTypeRequestSchema: GenMessage<ModifyResourceTypeRequest> = /*@__PURE__*/
5954
- messageDesc(file_cover_v1_cover, 182);
5901
+ messageDesc(file_cover_v1_cover, 184);
5955
5902
 
5956
5903
  /**
5957
5904
  * Response message for ModifyResourceType
@@ -5985,7 +5932,7 @@ export type ModifyResourceTypeResponse = Message<"blueapi.cover.v1.ModifyResourc
5985
5932
  * Use `create(ModifyResourceTypeResponseSchema)` to create a new message.
5986
5933
  */
5987
5934
  export const ModifyResourceTypeResponseSchema: GenMessage<ModifyResourceTypeResponse> = /*@__PURE__*/
5988
- messageDesc(file_cover_v1_cover, 183);
5935
+ messageDesc(file_cover_v1_cover, 185);
5989
5936
 
5990
5937
  /**
5991
5938
  * Request message for TerminateResource
@@ -6027,7 +5974,7 @@ export type TerminateResourceRequest = Message<"blueapi.cover.v1.TerminateResour
6027
5974
  * Use `create(TerminateResourceRequestSchema)` to create a new message.
6028
5975
  */
6029
5976
  export const TerminateResourceRequestSchema: GenMessage<TerminateResourceRequest> = /*@__PURE__*/
6030
- messageDesc(file_cover_v1_cover, 184);
5977
+ messageDesc(file_cover_v1_cover, 186);
6031
5978
 
6032
5979
  /**
6033
5980
  * Response message for TerminateResource
@@ -6056,7 +6003,7 @@ export type TerminateResourceResponse = Message<"blueapi.cover.v1.TerminateResou
6056
6003
  * Use `create(TerminateResourceResponseSchema)` to create a new message.
6057
6004
  */
6058
6005
  export const TerminateResourceResponseSchema: GenMessage<TerminateResourceResponse> = /*@__PURE__*/
6059
- messageDesc(file_cover_v1_cover, 185);
6006
+ messageDesc(file_cover_v1_cover, 187);
6060
6007
 
6061
6008
  /**
6062
6009
  * (WIP): Request message for Upload Charge Code
@@ -6097,7 +6044,7 @@ export type UploadChargeCodeRequest = Message<"blueapi.cover.v1.UploadChargeCode
6097
6044
  * Use `create(UploadChargeCodeRequestSchema)` to create a new message.
6098
6045
  */
6099
6046
  export const UploadChargeCodeRequestSchema: GenMessage<UploadChargeCodeRequest> = /*@__PURE__*/
6100
- messageDesc(file_cover_v1_cover, 186);
6047
+ messageDesc(file_cover_v1_cover, 188);
6101
6048
 
6102
6049
  /**
6103
6050
  * (WIP): Response message for Upload Charge Code
@@ -6125,7 +6072,7 @@ export type UploadChargeCodeResponse = Message<"blueapi.cover.v1.UploadChargeCod
6125
6072
  * Use `create(UploadChargeCodeResponseSchema)` to create a new message.
6126
6073
  */
6127
6074
  export const UploadChargeCodeResponseSchema: GenMessage<UploadChargeCodeResponse> = /*@__PURE__*/
6128
- messageDesc(file_cover_v1_cover, 187);
6075
+ messageDesc(file_cover_v1_cover, 189);
6129
6076
 
6130
6077
  /**
6131
6078
  * Request message for AssignPayer
@@ -6160,7 +6107,7 @@ export type AssignPayerRequest = Message<"blueapi.cover.v1.AssignPayerRequest">
6160
6107
  * Use `create(AssignPayerRequestSchema)` to create a new message.
6161
6108
  */
6162
6109
  export const AssignPayerRequestSchema: GenMessage<AssignPayerRequest> = /*@__PURE__*/
6163
- messageDesc(file_cover_v1_cover, 188);
6110
+ messageDesc(file_cover_v1_cover, 190);
6164
6111
 
6165
6112
  /**
6166
6113
  * Response message for AssignPayer
@@ -6184,7 +6131,7 @@ export type AssignPayerResponse = Message<"blueapi.cover.v1.AssignPayerResponse"
6184
6131
  * Use `create(AssignPayerResponseSchema)` to create a new message.
6185
6132
  */
6186
6133
  export const AssignPayerResponseSchema: GenMessage<AssignPayerResponse> = /*@__PURE__*/
6187
- messageDesc(file_cover_v1_cover, 189);
6134
+ messageDesc(file_cover_v1_cover, 191);
6188
6135
 
6189
6136
  /**
6190
6137
  * Request message for GetPayers
@@ -6205,7 +6152,7 @@ export type GetPayersRequest = Message<"blueapi.cover.v1.GetPayersRequest"> & {
6205
6152
  * Use `create(GetPayersRequestSchema)` to create a new message.
6206
6153
  */
6207
6154
  export const GetPayersRequestSchema: GenMessage<GetPayersRequest> = /*@__PURE__*/
6208
- messageDesc(file_cover_v1_cover, 190);
6155
+ messageDesc(file_cover_v1_cover, 192);
6209
6156
 
6210
6157
  /**
6211
6158
  * Response message for GetPayers
@@ -6224,7 +6171,7 @@ export type GetPayersResponse = Message<"blueapi.cover.v1.GetPayersResponse"> &
6224
6171
  * Use `create(GetPayersResponseSchema)` to create a new message.
6225
6172
  */
6226
6173
  export const GetPayersResponseSchema: GenMessage<GetPayersResponse> = /*@__PURE__*/
6227
- messageDesc(file_cover_v1_cover, 191);
6174
+ messageDesc(file_cover_v1_cover, 193);
6228
6175
 
6229
6176
  /**
6230
6177
  * Request message for GetAccounts
@@ -6250,7 +6197,7 @@ export type GetAccountsRequest = Message<"blueapi.cover.v1.GetAccountsRequest">
6250
6197
  * Use `create(GetAccountsRequestSchema)` to create a new message.
6251
6198
  */
6252
6199
  export const GetAccountsRequestSchema: GenMessage<GetAccountsRequest> = /*@__PURE__*/
6253
- messageDesc(file_cover_v1_cover, 192);
6200
+ messageDesc(file_cover_v1_cover, 194);
6254
6201
 
6255
6202
  /**
6256
6203
  * Response message for GetAccounts
@@ -6269,7 +6216,7 @@ export type GetAccountsResponse = Message<"blueapi.cover.v1.GetAccountsResponse"
6269
6216
  * Use `create(GetAccountsResponseSchema)` to create a new message.
6270
6217
  */
6271
6218
  export const GetAccountsResponseSchema: GenMessage<GetAccountsResponse> = /*@__PURE__*/
6272
- messageDesc(file_cover_v1_cover, 193);
6219
+ messageDesc(file_cover_v1_cover, 195);
6273
6220
 
6274
6221
  /**
6275
6222
  * Request message for GetServices
@@ -6295,7 +6242,7 @@ export type GetServicesRequest = Message<"blueapi.cover.v1.GetServicesRequest">
6295
6242
  * Use `create(GetServicesRequestSchema)` to create a new message.
6296
6243
  */
6297
6244
  export const GetServicesRequestSchema: GenMessage<GetServicesRequest> = /*@__PURE__*/
6298
- messageDesc(file_cover_v1_cover, 194);
6245
+ messageDesc(file_cover_v1_cover, 196);
6299
6246
 
6300
6247
  /**
6301
6248
  * Response message for GetServices
@@ -6314,7 +6261,7 @@ export type GetServicesResponse = Message<"blueapi.cover.v1.GetServicesResponse"
6314
6261
  * Use `create(GetServicesResponseSchema)` to create a new message.
6315
6262
  */
6316
6263
  export const GetServicesResponseSchema: GenMessage<GetServicesResponse> = /*@__PURE__*/
6317
- messageDesc(file_cover_v1_cover, 195);
6264
+ messageDesc(file_cover_v1_cover, 197);
6318
6265
 
6319
6266
  /**
6320
6267
  * Request message for GetRegions
@@ -6340,7 +6287,7 @@ export type GetRegionsRequest = Message<"blueapi.cover.v1.GetRegionsRequest"> &
6340
6287
  * Use `create(GetRegionsRequestSchema)` to create a new message.
6341
6288
  */
6342
6289
  export const GetRegionsRequestSchema: GenMessage<GetRegionsRequest> = /*@__PURE__*/
6343
- messageDesc(file_cover_v1_cover, 196);
6290
+ messageDesc(file_cover_v1_cover, 198);
6344
6291
 
6345
6292
  /**
6346
6293
  * Response message for GetRegions
@@ -6359,7 +6306,7 @@ export type GetRegionsResponse = Message<"blueapi.cover.v1.GetRegionsResponse">
6359
6306
  * Use `create(GetRegionsResponseSchema)` to create a new message.
6360
6307
  */
6361
6308
  export const GetRegionsResponseSchema: GenMessage<GetRegionsResponse> = /*@__PURE__*/
6362
- messageDesc(file_cover_v1_cover, 197);
6309
+ messageDesc(file_cover_v1_cover, 199);
6363
6310
 
6364
6311
  /**
6365
6312
  * Request message for GetTags
@@ -6385,7 +6332,7 @@ export type GetTagsRequest = Message<"blueapi.cover.v1.GetTagsRequest"> & {
6385
6332
  * Use `create(GetTagsRequestSchema)` to create a new message.
6386
6333
  */
6387
6334
  export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
6388
- messageDesc(file_cover_v1_cover, 198);
6335
+ messageDesc(file_cover_v1_cover, 200);
6389
6336
 
6390
6337
  /**
6391
6338
  * Response message for GetTags
@@ -6404,7 +6351,7 @@ export type GetTagsResponse = Message<"blueapi.cover.v1.GetTagsResponse"> & {
6404
6351
  * Use `create(GetTagsResponseSchema)` to create a new message.
6405
6352
  */
6406
6353
  export const GetTagsResponseSchema: GenMessage<GetTagsResponse> = /*@__PURE__*/
6407
- messageDesc(file_cover_v1_cover, 199);
6354
+ messageDesc(file_cover_v1_cover, 201);
6408
6355
 
6409
6356
  /**
6410
6357
  * Request message for the ListFees rpc.
@@ -6423,7 +6370,7 @@ export type ListFeesRequest = Message<"blueapi.cover.v1.ListFeesRequest"> & {
6423
6370
  * Use `create(ListFeesRequestSchema)` to create a new message.
6424
6371
  */
6425
6372
  export const ListFeesRequestSchema: GenMessage<ListFeesRequest> = /*@__PURE__*/
6426
- messageDesc(file_cover_v1_cover, 200);
6373
+ messageDesc(file_cover_v1_cover, 202);
6427
6374
 
6428
6375
  /**
6429
6376
  * Response message for GetFeeDetails, CreateFeeReallocation rpc.
@@ -6532,7 +6479,7 @@ export type FeeDetails = Message<"blueapi.cover.v1.FeeDetails"> & {
6532
6479
  * Use `create(FeeDetailsSchema)` to create a new message.
6533
6480
  */
6534
6481
  export const FeeDetailsSchema: GenMessage<FeeDetails> = /*@__PURE__*/
6535
- messageDesc(file_cover_v1_cover, 201);
6482
+ messageDesc(file_cover_v1_cover, 203);
6536
6483
 
6537
6484
  /**
6538
6485
  * Request message for the RestoreFee rpc.
@@ -6553,7 +6500,7 @@ export type RestoreFeeRequest = Message<"blueapi.cover.v1.RestoreFeeRequest"> &
6553
6500
  * Use `create(RestoreFeeRequestSchema)` to create a new message.
6554
6501
  */
6555
6502
  export const RestoreFeeRequestSchema: GenMessage<RestoreFeeRequest> = /*@__PURE__*/
6556
- messageDesc(file_cover_v1_cover, 202);
6503
+ messageDesc(file_cover_v1_cover, 204);
6557
6504
 
6558
6505
  /**
6559
6506
  * Request message for the GetCostGroupFee rpc.
@@ -6584,7 +6531,7 @@ export type GetCostGroupFeeRequest = Message<"blueapi.cover.v1.GetCostGroupFeeRe
6584
6531
  * Use `create(GetCostGroupFeeRequestSchema)` to create a new message.
6585
6532
  */
6586
6533
  export const GetCostGroupFeeRequestSchema: GenMessage<GetCostGroupFeeRequest> = /*@__PURE__*/
6587
- messageDesc(file_cover_v1_cover, 203);
6534
+ messageDesc(file_cover_v1_cover, 205);
6588
6535
 
6589
6536
  /**
6590
6537
  * Response message wrapper for cost group fees.
@@ -6628,7 +6575,7 @@ export type FeeItem = Message<"blueapi.cover.v1.FeeItem"> & {
6628
6575
  * Use `create(FeeItemSchema)` to create a new message.
6629
6576
  */
6630
6577
  export const FeeItemSchema: GenMessage<FeeItem> = /*@__PURE__*/
6631
- messageDesc(file_cover_v1_cover, 204);
6578
+ messageDesc(file_cover_v1_cover, 206);
6632
6579
 
6633
6580
  /**
6634
6581
  * @generated from message blueapi.cover.v1.Allocator
@@ -6668,7 +6615,7 @@ export type Allocator = Message<"blueapi.cover.v1.Allocator"> & {
6668
6615
  * Use `create(AllocatorSchema)` to create a new message.
6669
6616
  */
6670
6617
  export const AllocatorSchema: GenMessage<Allocator> = /*@__PURE__*/
6671
- messageDesc(file_cover_v1_cover, 205);
6618
+ messageDesc(file_cover_v1_cover, 207);
6672
6619
 
6673
6620
  /**
6674
6621
  * 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 +6634,7 @@ export type Criteria = Message<"blueapi.cover.v1.Criteria"> & {
6687
6634
  * Use `create(CriteriaSchema)` to create a new message.
6688
6635
  */
6689
6636
  export const CriteriaSchema: GenMessage<Criteria> = /*@__PURE__*/
6690
- messageDesc(file_cover_v1_cover, 206);
6637
+ messageDesc(file_cover_v1_cover, 208);
6691
6638
 
6692
6639
  /**
6693
6640
  * @generated from message blueapi.cover.v1.CostAllocatorDetails
@@ -6760,7 +6707,7 @@ export type CostAllocatorDetails = Message<"blueapi.cover.v1.CostAllocatorDetail
6760
6707
  * Use `create(CostAllocatorDetailsSchema)` to create a new message.
6761
6708
  */
6762
6709
  export const CostAllocatorDetailsSchema: GenMessage<CostAllocatorDetails> = /*@__PURE__*/
6763
- messageDesc(file_cover_v1_cover, 207);
6710
+ messageDesc(file_cover_v1_cover, 209);
6764
6711
 
6765
6712
  /**
6766
6713
  * @generated from message blueapi.cover.v1.CostAllocatorRequest
@@ -6823,7 +6770,7 @@ export type CostAllocatorRequest = Message<"blueapi.cover.v1.CostAllocatorReques
6823
6770
  * Use `create(CostAllocatorRequestSchema)` to create a new message.
6824
6771
  */
6825
6772
  export const CostAllocatorRequestSchema: GenMessage<CostAllocatorRequest> = /*@__PURE__*/
6826
- messageDesc(file_cover_v1_cover, 208);
6773
+ messageDesc(file_cover_v1_cover, 210);
6827
6774
 
6828
6775
  /**
6829
6776
  * Request message for the ListAllocators rpc.
@@ -6838,7 +6785,7 @@ export type ListAllocatorsRequest = Message<"blueapi.cover.v1.ListAllocatorsRequ
6838
6785
  * Use `create(ListAllocatorsRequestSchema)` to create a new message.
6839
6786
  */
6840
6787
  export const ListAllocatorsRequestSchema: GenMessage<ListAllocatorsRequest> = /*@__PURE__*/
6841
- messageDesc(file_cover_v1_cover, 209);
6788
+ messageDesc(file_cover_v1_cover, 211);
6842
6789
 
6843
6790
  /**
6844
6791
  * Request message for the CreateAllocator rpc.
@@ -6900,7 +6847,7 @@ export type CreateAllocatorRequest = Message<"blueapi.cover.v1.CreateAllocatorRe
6900
6847
  * Use `create(CreateAllocatorRequestSchema)` to create a new message.
6901
6848
  */
6902
6849
  export const CreateAllocatorRequestSchema: GenMessage<CreateAllocatorRequest> = /*@__PURE__*/
6903
- messageDesc(file_cover_v1_cover, 210);
6850
+ messageDesc(file_cover_v1_cover, 212);
6904
6851
 
6905
6852
  /**
6906
6853
  * Request message for the GetAllocationAttributes rpc.
@@ -6919,7 +6866,7 @@ export type GetAllocationAttributesRequest = Message<"blueapi.cover.v1.GetAlloca
6919
6866
  * Use `create(GetAllocationAttributesRequestSchema)` to create a new message.
6920
6867
  */
6921
6868
  export const GetAllocationAttributesRequestSchema: GenMessage<GetAllocationAttributesRequest> = /*@__PURE__*/
6922
- messageDesc(file_cover_v1_cover, 211);
6869
+ messageDesc(file_cover_v1_cover, 213);
6923
6870
 
6924
6871
  /**
6925
6872
  * Response message for the GetAllocationAttributes rpc.
@@ -6938,7 +6885,7 @@ export type GetAllocationAttributesResponse = Message<"blueapi.cover.v1.GetAlloc
6938
6885
  * Use `create(GetAllocationAttributesResponseSchema)` to create a new message.
6939
6886
  */
6940
6887
  export const GetAllocationAttributesResponseSchema: GenMessage<GetAllocationAttributesResponse> = /*@__PURE__*/
6941
- messageDesc(file_cover_v1_cover, 212);
6888
+ messageDesc(file_cover_v1_cover, 214);
6942
6889
 
6943
6890
  /**
6944
6891
  * @generated from message blueapi.cover.v1.GetAllocationAttributesResponse.AllocationAttribute
@@ -6960,7 +6907,7 @@ export type GetAllocationAttributesResponse_AllocationAttribute = Message<"bluea
6960
6907
  * Use `create(GetAllocationAttributesResponse_AllocationAttributeSchema)` to create a new message.
6961
6908
  */
6962
6909
  export const GetAllocationAttributesResponse_AllocationAttributeSchema: GenMessage<GetAllocationAttributesResponse_AllocationAttribute> = /*@__PURE__*/
6963
- messageDesc(file_cover_v1_cover, 212, 0);
6910
+ messageDesc(file_cover_v1_cover, 214, 0);
6964
6911
 
6965
6912
  /**
6966
6913
  * Request message for the GetAllocationSources rpc.
@@ -6984,7 +6931,7 @@ export type GetAllocationSourcesRequest = Message<"blueapi.cover.v1.GetAllocatio
6984
6931
  * Use `create(GetAllocationSourcesRequestSchema)` to create a new message.
6985
6932
  */
6986
6933
  export const GetAllocationSourcesRequestSchema: GenMessage<GetAllocationSourcesRequest> = /*@__PURE__*/
6987
- messageDesc(file_cover_v1_cover, 213);
6934
+ messageDesc(file_cover_v1_cover, 215);
6988
6935
 
6989
6936
  /**
6990
6937
  * Response message for the GetAllocationSources rpc.
@@ -7008,7 +6955,7 @@ export type GetAllocationSourcesResponse = Message<"blueapi.cover.v1.GetAllocati
7008
6955
  * Use `create(GetAllocationSourcesResponseSchema)` to create a new message.
7009
6956
  */
7010
6957
  export const GetAllocationSourcesResponseSchema: GenMessage<GetAllocationSourcesResponse> = /*@__PURE__*/
7011
- messageDesc(file_cover_v1_cover, 214);
6958
+ messageDesc(file_cover_v1_cover, 216);
7012
6959
 
7013
6960
  /**
7014
6961
  * @generated from message blueapi.cover.v1.GetAllocationSourcesResponse.AllocationSources
@@ -7035,7 +6982,7 @@ export type GetAllocationSourcesResponse_AllocationSources = Message<"blueapi.co
7035
6982
  * Use `create(GetAllocationSourcesResponse_AllocationSourcesSchema)` to create a new message.
7036
6983
  */
7037
6984
  export const GetAllocationSourcesResponse_AllocationSourcesSchema: GenMessage<GetAllocationSourcesResponse_AllocationSources> = /*@__PURE__*/
7038
- messageDesc(file_cover_v1_cover, 214, 0);
6985
+ messageDesc(file_cover_v1_cover, 216, 0);
7039
6986
 
7040
6987
  /**
7041
6988
  * Request message for the DeleteAllocator rpc.
@@ -7056,7 +7003,7 @@ export type DeleteAllocatorRequest = Message<"blueapi.cover.v1.DeleteAllocatorRe
7056
7003
  * Use `create(DeleteAllocatorRequestSchema)` to create a new message.
7057
7004
  */
7058
7005
  export const DeleteAllocatorRequestSchema: GenMessage<DeleteAllocatorRequest> = /*@__PURE__*/
7059
- messageDesc(file_cover_v1_cover, 215);
7006
+ messageDesc(file_cover_v1_cover, 217);
7060
7007
 
7061
7008
  /**
7062
7009
  * Request message for the ProxyCreateCompletion rpc.
@@ -7075,7 +7022,7 @@ export type ProxyCreateCompletionRequest = Message<"blueapi.cover.v1.ProxyCreate
7075
7022
  * Use `create(ProxyCreateCompletionRequestSchema)` to create a new message.
7076
7023
  */
7077
7024
  export const ProxyCreateCompletionRequestSchema: GenMessage<ProxyCreateCompletionRequest> = /*@__PURE__*/
7078
- messageDesc(file_cover_v1_cover, 216);
7025
+ messageDesc(file_cover_v1_cover, 218);
7079
7026
 
7080
7027
  /**
7081
7028
  * Response message for the ProxyCreateCompletion rpc.
@@ -7094,7 +7041,7 @@ export type ProxyCreateCompletionResponse = Message<"blueapi.cover.v1.ProxyCreat
7094
7041
  * Use `create(ProxyCreateCompletionResponseSchema)` to create a new message.
7095
7042
  */
7096
7043
  export const ProxyCreateCompletionResponseSchema: GenMessage<ProxyCreateCompletionResponse> = /*@__PURE__*/
7097
- messageDesc(file_cover_v1_cover, 217);
7044
+ messageDesc(file_cover_v1_cover, 219);
7098
7045
 
7099
7046
  /**
7100
7047
  * Response message for SimulateAccountCostAllocator rpc.
@@ -7253,7 +7200,7 @@ export type AccountUsageDetails = Message<"blueapi.cover.v1.AccountUsageDetails"
7253
7200
  * Use `create(AccountUsageDetailsSchema)` to create a new message.
7254
7201
  */
7255
7202
  export const AccountUsageDetailsSchema: GenMessage<AccountUsageDetails> = /*@__PURE__*/
7256
- messageDesc(file_cover_v1_cover, 218);
7203
+ messageDesc(file_cover_v1_cover, 220);
7257
7204
 
7258
7205
  /**
7259
7206
  * Request message for the RestoreAccountUsage rpc.
@@ -7277,7 +7224,7 @@ export type ListAccountUsageRequest = Message<"blueapi.cover.v1.ListAccountUsage
7277
7224
  * Use `create(ListAccountUsageRequestSchema)` to create a new message.
7278
7225
  */
7279
7226
  export const ListAccountUsageRequestSchema: GenMessage<ListAccountUsageRequest> = /*@__PURE__*/
7280
- messageDesc(file_cover_v1_cover, 219);
7227
+ messageDesc(file_cover_v1_cover, 221);
7281
7228
 
7282
7229
  /**
7283
7230
  * Request message for the RestoreAccountUsage rpc.
@@ -7298,7 +7245,7 @@ export type RestoreAccountUsageRequest = Message<"blueapi.cover.v1.RestoreAccoun
7298
7245
  * Use `create(RestoreAccountUsageRequestSchema)` to create a new message.
7299
7246
  */
7300
7247
  export const RestoreAccountUsageRequestSchema: GenMessage<RestoreAccountUsageRequest> = /*@__PURE__*/
7301
- messageDesc(file_cover_v1_cover, 220);
7248
+ messageDesc(file_cover_v1_cover, 222);
7302
7249
 
7303
7250
  /**
7304
7251
  * Request message for the RestoreSavings rpc.
@@ -7319,7 +7266,7 @@ export type RestoreSavingsRequest = Message<"blueapi.cover.v1.RestoreSavingsRequ
7319
7266
  * Use `create(RestoreSavingsRequestSchema)` to create a new message.
7320
7267
  */
7321
7268
  export const RestoreSavingsRequestSchema: GenMessage<RestoreSavingsRequest> = /*@__PURE__*/
7322
- messageDesc(file_cover_v1_cover, 221);
7269
+ messageDesc(file_cover_v1_cover, 223);
7323
7270
 
7324
7271
  /**
7325
7272
  * Response message for ListSavings, RestoreSavings, SimulateSavings rpc.
@@ -7418,7 +7365,7 @@ export type SavingsDetails = Message<"blueapi.cover.v1.SavingsDetails"> & {
7418
7365
  * Use `create(SavingsDetailsSchema)` to create a new message.
7419
7366
  */
7420
7367
  export const SavingsDetailsSchema: GenMessage<SavingsDetails> = /*@__PURE__*/
7421
- messageDesc(file_cover_v1_cover, 222);
7368
+ messageDesc(file_cover_v1_cover, 224);
7422
7369
 
7423
7370
  /**
7424
7371
  * Request message for the GetCostGroupAllocation rpc.
@@ -7456,7 +7403,7 @@ export type GetCostGroupAllocationRequest = Message<"blueapi.cover.v1.GetCostGro
7456
7403
  * Use `create(GetCostGroupAllocationRequestSchema)` to create a new message.
7457
7404
  */
7458
7405
  export const GetCostGroupAllocationRequestSchema: GenMessage<GetCostGroupAllocationRequest> = /*@__PURE__*/
7459
- messageDesc(file_cover_v1_cover, 223);
7406
+ messageDesc(file_cover_v1_cover, 225);
7460
7407
 
7461
7408
  /**
7462
7409
  * Response message wrapper for cost group allocations.
@@ -7505,7 +7452,7 @@ export type AllocationItem = Message<"blueapi.cover.v1.AllocationItem"> & {
7505
7452
  * Use `create(AllocationItemSchema)` to create a new message.
7506
7453
  */
7507
7454
  export const AllocationItemSchema: GenMessage<AllocationItem> = /*@__PURE__*/
7508
- messageDesc(file_cover_v1_cover, 224);
7455
+ messageDesc(file_cover_v1_cover, 226);
7509
7456
 
7510
7457
  /**
7511
7458
  * Request message for AddUserFromAuth0asRoot rpc
@@ -7539,7 +7486,7 @@ export type ProcessAuth0UserRequest = Message<"blueapi.cover.v1.ProcessAuth0User
7539
7486
  * Use `create(ProcessAuth0UserRequestSchema)` to create a new message.
7540
7487
  */
7541
7488
  export const ProcessAuth0UserRequestSchema: GenMessage<ProcessAuth0UserRequest> = /*@__PURE__*/
7542
- messageDesc(file_cover_v1_cover, 225);
7489
+ messageDesc(file_cover_v1_cover, 227);
7543
7490
 
7544
7491
  /**
7545
7492
  * Response message wrapper for adding user from Auth0 as root
@@ -7558,7 +7505,7 @@ export type ProcessAuth0UserResponse = Message<"blueapi.cover.v1.ProcessAuth0Use
7558
7505
  * Use `create(ProcessAuth0UserResponseSchema)` to create a new message.
7559
7506
  */
7560
7507
  export const ProcessAuth0UserResponseSchema: GenMessage<ProcessAuth0UserResponse> = /*@__PURE__*/
7561
- messageDesc(file_cover_v1_cover, 226);
7508
+ messageDesc(file_cover_v1_cover, 228);
7562
7509
 
7563
7510
  /**
7564
7511
  * Message Response for GetDataAccess. For Azure and GCP
@@ -7631,7 +7578,7 @@ export type DataAccess = Message<"blueapi.cover.v1.DataAccess"> & {
7631
7578
  * Use `create(DataAccessSchema)` to create a new message.
7632
7579
  */
7633
7580
  export const DataAccessSchema: GenMessage<DataAccess> = /*@__PURE__*/
7634
- messageDesc(file_cover_v1_cover, 227);
7581
+ messageDesc(file_cover_v1_cover, 229);
7635
7582
 
7636
7583
  /**
7637
7584
  * Request message for Register Data Access. For azure and gcp.
@@ -7687,7 +7634,7 @@ export type RegisterDataAccessRequest = Message<"blueapi.cover.v1.RegisterDataAc
7687
7634
  * Use `create(RegisterDataAccessRequestSchema)` to create a new message.
7688
7635
  */
7689
7636
  export const RegisterDataAccessRequestSchema: GenMessage<RegisterDataAccessRequest> = /*@__PURE__*/
7690
- messageDesc(file_cover_v1_cover, 228);
7637
+ messageDesc(file_cover_v1_cover, 230);
7691
7638
 
7692
7639
  /**
7693
7640
  * Request message for UpdateDataAccess (GCP/Azure)
@@ -7743,7 +7690,7 @@ export type UpdateDataAccessRequest = Message<"blueapi.cover.v1.UpdateDataAccess
7743
7690
  * Use `create(UpdateDataAccessRequestSchema)` to create a new message.
7744
7691
  */
7745
7692
  export const UpdateDataAccessRequestSchema: GenMessage<UpdateDataAccessRequest> = /*@__PURE__*/
7746
- messageDesc(file_cover_v1_cover, 229);
7693
+ messageDesc(file_cover_v1_cover, 231);
7747
7694
 
7748
7695
  /**
7749
7696
  * Request message for ListDataAccess
@@ -7758,7 +7705,7 @@ export type ListDataAccessRequest = Message<"blueapi.cover.v1.ListDataAccessRequ
7758
7705
  * Use `create(ListDataAccessRequestSchema)` to create a new message.
7759
7706
  */
7760
7707
  export const ListDataAccessRequestSchema: GenMessage<ListDataAccessRequest> = /*@__PURE__*/
7761
- messageDesc(file_cover_v1_cover, 230);
7708
+ messageDesc(file_cover_v1_cover, 232);
7762
7709
 
7763
7710
  /**
7764
7711
  * Request message for ListUnregisteredAccounts
@@ -7773,7 +7720,7 @@ export type ListUnregisteredAccountsRequest = Message<"blueapi.cover.v1.ListUnre
7773
7720
  * Use `create(ListUnregisteredAccountsRequestSchema)` to create a new message.
7774
7721
  */
7775
7722
  export const ListUnregisteredAccountsRequestSchema: GenMessage<ListUnregisteredAccountsRequest> = /*@__PURE__*/
7776
- messageDesc(file_cover_v1_cover, 231);
7723
+ messageDesc(file_cover_v1_cover, 233);
7777
7724
 
7778
7725
  /**
7779
7726
  * Response message for ListUnregisteredAccounts
@@ -7797,7 +7744,7 @@ export type ListUnregisteredAccountsResponse = Message<"blueapi.cover.v1.ListUnr
7797
7744
  * Use `create(ListUnregisteredAccountsResponseSchema)` to create a new message.
7798
7745
  */
7799
7746
  export const ListUnregisteredAccountsResponseSchema: GenMessage<ListUnregisteredAccountsResponse> = /*@__PURE__*/
7800
- messageDesc(file_cover_v1_cover, 232);
7747
+ messageDesc(file_cover_v1_cover, 234);
7801
7748
 
7802
7749
  /**
7803
7750
  * @generated from message blueapi.cover.v1.UnregisteredAccts
@@ -7831,7 +7778,7 @@ export type UnregisteredAccts = Message<"blueapi.cover.v1.UnregisteredAccts"> &
7831
7778
  * Use `create(UnregisteredAcctsSchema)` to create a new message.
7832
7779
  */
7833
7780
  export const UnregisteredAcctsSchema: GenMessage<UnregisteredAccts> = /*@__PURE__*/
7834
- messageDesc(file_cover_v1_cover, 233);
7781
+ messageDesc(file_cover_v1_cover, 235);
7835
7782
 
7836
7783
  /**
7837
7784
  * Request message for AddBillingAccount
@@ -7880,7 +7827,7 @@ export type BillingAccountRequest = Message<"blueapi.cover.v1.BillingAccountRequ
7880
7827
  * Use `create(BillingAccountRequestSchema)` to create a new message.
7881
7828
  */
7882
7829
  export const BillingAccountRequestSchema: GenMessage<BillingAccountRequest> = /*@__PURE__*/
7883
- messageDesc(file_cover_v1_cover, 234);
7830
+ messageDesc(file_cover_v1_cover, 236);
7884
7831
 
7885
7832
  /**
7886
7833
  * @generated from message blueapi.cover.v1.GetAndDeleteDataAccessRequest
@@ -7913,7 +7860,7 @@ export type GetAndDeleteDataAccessRequest = Message<"blueapi.cover.v1.GetAndDele
7913
7860
  * Use `create(GetAndDeleteDataAccessRequestSchema)` to create a new message.
7914
7861
  */
7915
7862
  export const GetAndDeleteDataAccessRequestSchema: GenMessage<GetAndDeleteDataAccessRequest> = /*@__PURE__*/
7916
- messageDesc(file_cover_v1_cover, 235);
7863
+ messageDesc(file_cover_v1_cover, 237);
7917
7864
 
7918
7865
  /**
7919
7866
  * Request message for AddPartnerCenterCredentials
@@ -7948,7 +7895,7 @@ export type AddPartnerCenterCredentialsRequest = Message<"blueapi.cover.v1.AddPa
7948
7895
  * Use `create(AddPartnerCenterCredentialsRequestSchema)` to create a new message.
7949
7896
  */
7950
7897
  export const AddPartnerCenterCredentialsRequestSchema: GenMessage<AddPartnerCenterCredentialsRequest> = /*@__PURE__*/
7951
- messageDesc(file_cover_v1_cover, 236);
7898
+ messageDesc(file_cover_v1_cover, 238);
7952
7899
 
7953
7900
  /**
7954
7901
  * Request message for AddMpnSetting
@@ -7969,7 +7916,7 @@ export type AddMpnSettingRequest = Message<"blueapi.cover.v1.AddMpnSettingReques
7969
7916
  * Use `create(AddMpnSettingRequestSchema)` to create a new message.
7970
7917
  */
7971
7918
  export const AddMpnSettingRequestSchema: GenMessage<AddMpnSettingRequest> = /*@__PURE__*/
7972
- messageDesc(file_cover_v1_cover, 237);
7919
+ messageDesc(file_cover_v1_cover, 239);
7973
7920
 
7974
7921
  /**
7975
7922
  * Request message for GetCostGroupAttribute
@@ -8015,7 +7962,7 @@ export type GetCostGroupAttributeRequest = Message<"blueapi.cover.v1.GetCostGrou
8015
7962
  * Use `create(GetCostGroupAttributeRequestSchema)` to create a new message.
8016
7963
  */
8017
7964
  export const GetCostGroupAttributeRequestSchema: GenMessage<GetCostGroupAttributeRequest> = /*@__PURE__*/
8018
- messageDesc(file_cover_v1_cover, 238);
7965
+ messageDesc(file_cover_v1_cover, 240);
8019
7966
 
8020
7967
  /**
8021
7968
  * Response message for GetCostGroupAttribute
@@ -8039,7 +7986,7 @@ export type GetCostGroupAttributeResponse = Message<"blueapi.cover.v1.GetCostGro
8039
7986
  * Use `create(GetCostGroupAttributeResponseSchema)` to create a new message.
8040
7987
  */
8041
7988
  export const GetCostGroupAttributeResponseSchema: GenMessage<GetCostGroupAttributeResponse> = /*@__PURE__*/
8042
- messageDesc(file_cover_v1_cover, 239);
7989
+ messageDesc(file_cover_v1_cover, 241);
8043
7990
 
8044
7991
  /**
8045
7992
  * @generated from message blueapi.cover.v1.GetCategoriesRequest
@@ -8056,7 +8003,7 @@ export type GetCategoriesRequest = Message<"blueapi.cover.v1.GetCategoriesReques
8056
8003
  * Use `create(GetCategoriesRequestSchema)` to create a new message.
8057
8004
  */
8058
8005
  export const GetCategoriesRequestSchema: GenMessage<GetCategoriesRequest> = /*@__PURE__*/
8059
- messageDesc(file_cover_v1_cover, 240);
8006
+ messageDesc(file_cover_v1_cover, 242);
8060
8007
 
8061
8008
  /**
8062
8009
  * @generated from message blueapi.cover.v1.GetCategoriesResponse
@@ -8073,7 +8020,7 @@ export type GetCategoriesResponse = Message<"blueapi.cover.v1.GetCategoriesRespo
8073
8020
  * Use `create(GetCategoriesResponseSchema)` to create a new message.
8074
8021
  */
8075
8022
  export const GetCategoriesResponseSchema: GenMessage<GetCategoriesResponse> = /*@__PURE__*/
8076
- messageDesc(file_cover_v1_cover, 241);
8023
+ messageDesc(file_cover_v1_cover, 243);
8077
8024
 
8078
8025
  /**
8079
8026
  * Request message for GetAlerts
@@ -8088,7 +8035,7 @@ export type GetAlertsRequest = Message<"blueapi.cover.v1.GetAlertsRequest"> & {
8088
8035
  * Use `create(GetAlertsRequestSchema)` to create a new message.
8089
8036
  */
8090
8037
  export const GetAlertsRequestSchema: GenMessage<GetAlertsRequest> = /*@__PURE__*/
8091
- messageDesc(file_cover_v1_cover, 242);
8038
+ messageDesc(file_cover_v1_cover, 244);
8092
8039
 
8093
8040
  /**
8094
8041
  * Response message for GetAlerts
@@ -8107,7 +8054,7 @@ export type GetAlertsResponse = Message<"blueapi.cover.v1.GetAlertsResponse"> &
8107
8054
  * Use `create(GetAlertsResponseSchema)` to create a new message.
8108
8055
  */
8109
8056
  export const GetAlertsResponseSchema: GenMessage<GetAlertsResponse> = /*@__PURE__*/
8110
- messageDesc(file_cover_v1_cover, 243);
8057
+ messageDesc(file_cover_v1_cover, 245);
8111
8058
 
8112
8059
  /**
8113
8060
  * Request message for CreateAlert
@@ -8161,7 +8108,7 @@ export type CreateAlertRequest = Message<"blueapi.cover.v1.CreateAlertRequest">
8161
8108
  * Use `create(CreateAlertRequestSchema)` to create a new message.
8162
8109
  */
8163
8110
  export const CreateAlertRequestSchema: GenMessage<CreateAlertRequest> = /*@__PURE__*/
8164
- messageDesc(file_cover_v1_cover, 244);
8111
+ messageDesc(file_cover_v1_cover, 246);
8165
8112
 
8166
8113
  /**
8167
8114
  * Response message for CreateAlert
@@ -8180,7 +8127,7 @@ export type CreateAlertResponse = Message<"blueapi.cover.v1.CreateAlertResponse"
8180
8127
  * Use `create(CreateAlertResponseSchema)` to create a new message.
8181
8128
  */
8182
8129
  export const CreateAlertResponseSchema: GenMessage<CreateAlertResponse> = /*@__PURE__*/
8183
- messageDesc(file_cover_v1_cover, 245);
8130
+ messageDesc(file_cover_v1_cover, 247);
8184
8131
 
8185
8132
  /**
8186
8133
  * Request message for GetAlertDetails
@@ -8201,7 +8148,7 @@ export type GetAlertDetailsRequest = Message<"blueapi.cover.v1.GetAlertDetailsRe
8201
8148
  * Use `create(GetAlertDetailsRequestSchema)` to create a new message.
8202
8149
  */
8203
8150
  export const GetAlertDetailsRequestSchema: GenMessage<GetAlertDetailsRequest> = /*@__PURE__*/
8204
- messageDesc(file_cover_v1_cover, 246);
8151
+ messageDesc(file_cover_v1_cover, 248);
8205
8152
 
8206
8153
  /**
8207
8154
  * Response message for GetAlertDetails
@@ -8220,7 +8167,7 @@ export type GetAlertDetailsResponse = Message<"blueapi.cover.v1.GetAlertDetailsR
8220
8167
  * Use `create(GetAlertDetailsResponseSchema)` to create a new message.
8221
8168
  */
8222
8169
  export const GetAlertDetailsResponseSchema: GenMessage<GetAlertDetailsResponse> = /*@__PURE__*/
8223
- messageDesc(file_cover_v1_cover, 247);
8170
+ messageDesc(file_cover_v1_cover, 249);
8224
8171
 
8225
8172
  /**
8226
8173
  * Request message for DeleteAlert
@@ -8241,7 +8188,7 @@ export type DeleteAlertRequest = Message<"blueapi.cover.v1.DeleteAlertRequest">
8241
8188
  * Use `create(DeleteAlertRequestSchema)` to create a new message.
8242
8189
  */
8243
8190
  export const DeleteAlertRequestSchema: GenMessage<DeleteAlertRequest> = /*@__PURE__*/
8244
- messageDesc(file_cover_v1_cover, 248);
8191
+ messageDesc(file_cover_v1_cover, 250);
8245
8192
 
8246
8193
  /**
8247
8194
  * Response message for DeleteAlert
@@ -8260,7 +8207,7 @@ export type DeleteAlertResponse = Message<"blueapi.cover.v1.DeleteAlertResponse"
8260
8207
  * Use `create(DeleteAlertResponseSchema)` to create a new message.
8261
8208
  */
8262
8209
  export const DeleteAlertResponseSchema: GenMessage<DeleteAlertResponse> = /*@__PURE__*/
8263
- messageDesc(file_cover_v1_cover, 249);
8210
+ messageDesc(file_cover_v1_cover, 251);
8264
8211
 
8265
8212
  /**
8266
8213
  * Request message for UpdateAlertDetails
@@ -8322,7 +8269,7 @@ export type UpdateAlertDetailsRequest = Message<"blueapi.cover.v1.UpdateAlertDet
8322
8269
  * Use `create(UpdateAlertDetailsRequestSchema)` to create a new message.
8323
8270
  */
8324
8271
  export const UpdateAlertDetailsRequestSchema: GenMessage<UpdateAlertDetailsRequest> = /*@__PURE__*/
8325
- messageDesc(file_cover_v1_cover, 250);
8272
+ messageDesc(file_cover_v1_cover, 252);
8326
8273
 
8327
8274
  /**
8328
8275
  * Response message for UpdateAlertDetails
@@ -8341,7 +8288,7 @@ export type UpdateAlertDetailsResponse = Message<"blueapi.cover.v1.UpdateAlertDe
8341
8288
  * Use `create(UpdateAlertDetailsResponseSchema)` to create a new message.
8342
8289
  */
8343
8290
  export const UpdateAlertDetailsResponseSchema: GenMessage<UpdateAlertDetailsResponse> = /*@__PURE__*/
8344
- messageDesc(file_cover_v1_cover, 251);
8291
+ messageDesc(file_cover_v1_cover, 253);
8345
8292
 
8346
8293
  /**
8347
8294
  * Request message for GetChannels
@@ -8363,7 +8310,7 @@ export type GetChannelsRequest = Message<"blueapi.cover.v1.GetChannelsRequest">
8363
8310
  * Use `create(GetChannelsRequestSchema)` to create a new message.
8364
8311
  */
8365
8312
  export const GetChannelsRequestSchema: GenMessage<GetChannelsRequest> = /*@__PURE__*/
8366
- messageDesc(file_cover_v1_cover, 252);
8313
+ messageDesc(file_cover_v1_cover, 254);
8367
8314
 
8368
8315
  /**
8369
8316
  * Response message for GetChannels
@@ -8382,7 +8329,7 @@ export type GetChannelsResponse = Message<"blueapi.cover.v1.GetChannelsResponse"
8382
8329
  * Use `create(GetChannelsResponseSchema)` to create a new message.
8383
8330
  */
8384
8331
  export const GetChannelsResponseSchema: GenMessage<GetChannelsResponse> = /*@__PURE__*/
8385
- messageDesc(file_cover_v1_cover, 253);
8332
+ messageDesc(file_cover_v1_cover, 255);
8386
8333
 
8387
8334
  /**
8388
8335
  * Request message for CreateChannel
@@ -8417,7 +8364,7 @@ export type CreateChannelRequest = Message<"blueapi.cover.v1.CreateChannelReques
8417
8364
  * Use `create(CreateChannelRequestSchema)` to create a new message.
8418
8365
  */
8419
8366
  export const CreateChannelRequestSchema: GenMessage<CreateChannelRequest> = /*@__PURE__*/
8420
- messageDesc(file_cover_v1_cover, 254);
8367
+ messageDesc(file_cover_v1_cover, 256);
8421
8368
 
8422
8369
  /**
8423
8370
  * Response message for CreateChannel
@@ -8436,7 +8383,7 @@ export type CreateChannelResponse = Message<"blueapi.cover.v1.CreateChannelRespo
8436
8383
  * Use `create(CreateChannelResponseSchema)` to create a new message.
8437
8384
  */
8438
8385
  export const CreateChannelResponseSchema: GenMessage<CreateChannelResponse> = /*@__PURE__*/
8439
- messageDesc(file_cover_v1_cover, 255);
8386
+ messageDesc(file_cover_v1_cover, 257);
8440
8387
 
8441
8388
  /**
8442
8389
  * Request message for GetChannelDetails
@@ -8457,7 +8404,7 @@ export type GetChannelDetailsRequest = Message<"blueapi.cover.v1.GetChannelDetai
8457
8404
  * Use `create(GetChannelDetailsRequestSchema)` to create a new message.
8458
8405
  */
8459
8406
  export const GetChannelDetailsRequestSchema: GenMessage<GetChannelDetailsRequest> = /*@__PURE__*/
8460
- messageDesc(file_cover_v1_cover, 256);
8407
+ messageDesc(file_cover_v1_cover, 258);
8461
8408
 
8462
8409
  /**
8463
8410
  * Response message for GetChannelDetails
@@ -8476,7 +8423,7 @@ export type GetChannelDetailsResponse = Message<"blueapi.cover.v1.GetChannelDeta
8476
8423
  * Use `create(GetChannelDetailsResponseSchema)` to create a new message.
8477
8424
  */
8478
8425
  export const GetChannelDetailsResponseSchema: GenMessage<GetChannelDetailsResponse> = /*@__PURE__*/
8479
- messageDesc(file_cover_v1_cover, 257);
8426
+ messageDesc(file_cover_v1_cover, 259);
8480
8427
 
8481
8428
  /**
8482
8429
  * Request message for DeleteChannel
@@ -8497,7 +8444,7 @@ export type DeleteChannelRequest = Message<"blueapi.cover.v1.DeleteChannelReques
8497
8444
  * Use `create(DeleteChannelRequestSchema)` to create a new message.
8498
8445
  */
8499
8446
  export const DeleteChannelRequestSchema: GenMessage<DeleteChannelRequest> = /*@__PURE__*/
8500
- messageDesc(file_cover_v1_cover, 258);
8447
+ messageDesc(file_cover_v1_cover, 260);
8501
8448
 
8502
8449
  /**
8503
8450
  * Response message for DeleteChannel
@@ -8516,7 +8463,7 @@ export type DeleteChannelResponse = Message<"blueapi.cover.v1.DeleteChannelRespo
8516
8463
  * Use `create(DeleteChannelResponseSchema)` to create a new message.
8517
8464
  */
8518
8465
  export const DeleteChannelResponseSchema: GenMessage<DeleteChannelResponse> = /*@__PURE__*/
8519
- messageDesc(file_cover_v1_cover, 259);
8466
+ messageDesc(file_cover_v1_cover, 261);
8520
8467
 
8521
8468
  /**
8522
8469
  * Request message for UpdateChannelDetails
@@ -8559,7 +8506,7 @@ export type UpdateChannelDetailsRequest = Message<"blueapi.cover.v1.UpdateChanne
8559
8506
  * Use `create(UpdateChannelDetailsRequestSchema)` to create a new message.
8560
8507
  */
8561
8508
  export const UpdateChannelDetailsRequestSchema: GenMessage<UpdateChannelDetailsRequest> = /*@__PURE__*/
8562
- messageDesc(file_cover_v1_cover, 260);
8509
+ messageDesc(file_cover_v1_cover, 262);
8563
8510
 
8564
8511
  /**
8565
8512
  * Response message for UpdateChannelDetails
@@ -8578,7 +8525,7 @@ export type UpdateChannelDetailsResponse = Message<"blueapi.cover.v1.UpdateChann
8578
8525
  * Use `create(UpdateChannelDetailsResponseSchema)` to create a new message.
8579
8526
  */
8580
8527
  export const UpdateChannelDetailsResponseSchema: GenMessage<UpdateChannelDetailsResponse> = /*@__PURE__*/
8581
- messageDesc(file_cover_v1_cover, 261);
8528
+ messageDesc(file_cover_v1_cover, 263);
8582
8529
 
8583
8530
  /**
8584
8531
  * Request message for GetDiscountRecomemendations
@@ -8620,7 +8567,7 @@ export type GetDiscountRecommendationsRequest = Message<"blueapi.cover.v1.GetDis
8620
8567
  * Use `create(GetDiscountRecommendationsRequestSchema)` to create a new message.
8621
8568
  */
8622
8569
  export const GetDiscountRecommendationsRequestSchema: GenMessage<GetDiscountRecommendationsRequest> = /*@__PURE__*/
8623
- messageDesc(file_cover_v1_cover, 262);
8570
+ messageDesc(file_cover_v1_cover, 264);
8624
8571
 
8625
8572
  /**
8626
8573
  * Response message for GetDiscountRecommendations
@@ -8649,7 +8596,7 @@ export type GetDiscountRecommendationsResponse = Message<"blueapi.cover.v1.GetDi
8649
8596
  * Use `create(GetDiscountRecommendationsResponseSchema)` to create a new message.
8650
8597
  */
8651
8598
  export const GetDiscountRecommendationsResponseSchema: GenMessage<GetDiscountRecommendationsResponse> = /*@__PURE__*/
8652
- messageDesc(file_cover_v1_cover, 263);
8599
+ messageDesc(file_cover_v1_cover, 265);
8653
8600
 
8654
8601
  /**
8655
8602
  * Request message for getting anomaly
@@ -8682,7 +8629,7 @@ export type GetAnomalyinCostGroupRequest = Message<"blueapi.cover.v1.GetAnomalyi
8682
8629
  * Use `create(GetAnomalyinCostGroupRequestSchema)` to create a new message.
8683
8630
  */
8684
8631
  export const GetAnomalyinCostGroupRequestSchema: GenMessage<GetAnomalyinCostGroupRequest> = /*@__PURE__*/
8685
- messageDesc(file_cover_v1_cover, 264);
8632
+ messageDesc(file_cover_v1_cover, 266);
8686
8633
 
8687
8634
  /**
8688
8635
  * Message response for anomaly detection
@@ -8761,7 +8708,7 @@ export type AnomalyData = Message<"blueapi.cover.v1.AnomalyData"> & {
8761
8708
  * Use `create(AnomalyDataSchema)` to create a new message.
8762
8709
  */
8763
8710
  export const AnomalyDataSchema: GenMessage<AnomalyData> = /*@__PURE__*/
8764
- messageDesc(file_cover_v1_cover, 265);
8711
+ messageDesc(file_cover_v1_cover, 267);
8765
8712
 
8766
8713
  /**
8767
8714
  * Request message for CreateDiscountExpirationAlert
@@ -8812,7 +8759,7 @@ export type CreateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Cre
8812
8759
  * Use `create(CreateDiscountExpirationAlertRequestSchema)` to create a new message.
8813
8760
  */
8814
8761
  export const CreateDiscountExpirationAlertRequestSchema: GenMessage<CreateDiscountExpirationAlertRequest> = /*@__PURE__*/
8815
- messageDesc(file_cover_v1_cover, 266);
8762
+ messageDesc(file_cover_v1_cover, 268);
8816
8763
 
8817
8764
  /**
8818
8765
  * @generated from message blueapi.cover.v1.ManipulateDiscountExpirationAlertRequest
@@ -8831,7 +8778,7 @@ export type ManipulateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1
8831
8778
  * Use `create(ManipulateDiscountExpirationAlertRequestSchema)` to create a new message.
8832
8779
  */
8833
8780
  export const ManipulateDiscountExpirationAlertRequestSchema: GenMessage<ManipulateDiscountExpirationAlertRequest> = /*@__PURE__*/
8834
- messageDesc(file_cover_v1_cover, 267);
8781
+ messageDesc(file_cover_v1_cover, 269);
8835
8782
 
8836
8783
  /**
8837
8784
  * @generated from message blueapi.cover.v1.UpdateDiscountExpirationAlertRequest
@@ -8885,7 +8832,7 @@ export type UpdateDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.Upd
8885
8832
  * Use `create(UpdateDiscountExpirationAlertRequestSchema)` to create a new message.
8886
8833
  */
8887
8834
  export const UpdateDiscountExpirationAlertRequestSchema: GenMessage<UpdateDiscountExpirationAlertRequest> = /*@__PURE__*/
8888
- messageDesc(file_cover_v1_cover, 268);
8835
+ messageDesc(file_cover_v1_cover, 270);
8889
8836
 
8890
8837
  /**
8891
8838
  * @generated from message blueapi.cover.v1.DiscountExpiryAlertData
@@ -8937,7 +8884,7 @@ export type DiscountExpiryAlertData = Message<"blueapi.cover.v1.DiscountExpiryAl
8937
8884
  * Use `create(DiscountExpiryAlertDataSchema)` to create a new message.
8938
8885
  */
8939
8886
  export const DiscountExpiryAlertDataSchema: GenMessage<DiscountExpiryAlertData> = /*@__PURE__*/
8940
- messageDesc(file_cover_v1_cover, 269);
8887
+ messageDesc(file_cover_v1_cover, 271);
8941
8888
 
8942
8889
  /**
8943
8890
  * Request message for ListDiscountExpirationAlert
@@ -8952,7 +8899,7 @@ export type ListDiscountExpirationAlertRequest = Message<"blueapi.cover.v1.ListD
8952
8899
  * Use `create(ListDiscountExpirationAlertRequestSchema)` to create a new message.
8953
8900
  */
8954
8901
  export const ListDiscountExpirationAlertRequestSchema: GenMessage<ListDiscountExpirationAlertRequest> = /*@__PURE__*/
8955
- messageDesc(file_cover_v1_cover, 270);
8902
+ messageDesc(file_cover_v1_cover, 272);
8956
8903
 
8957
8904
  /**
8958
8905
  * Rquest message for CreateAnomalyAlert
@@ -9001,7 +8948,7 @@ export type CreateAnomalyAlertRequest = Message<"blueapi.cover.v1.CreateAnomalyA
9001
8948
  * Use `create(CreateAnomalyAlertRequestSchema)` to create a new message.
9002
8949
  */
9003
8950
  export const CreateAnomalyAlertRequestSchema: GenMessage<CreateAnomalyAlertRequest> = /*@__PURE__*/
9004
- messageDesc(file_cover_v1_cover, 271);
8951
+ messageDesc(file_cover_v1_cover, 273);
9005
8952
 
9006
8953
  /**
9007
8954
  * @generated from message blueapi.cover.v1.ManipulateAnomalyAlertRequest
@@ -9020,7 +8967,7 @@ export type ManipulateAnomalyAlertRequest = Message<"blueapi.cover.v1.Manipulate
9020
8967
  * Use `create(ManipulateAnomalyAlertRequestSchema)` to create a new message.
9021
8968
  */
9022
8969
  export const ManipulateAnomalyAlertRequestSchema: GenMessage<ManipulateAnomalyAlertRequest> = /*@__PURE__*/
9023
- messageDesc(file_cover_v1_cover, 272);
8970
+ messageDesc(file_cover_v1_cover, 274);
9024
8971
 
9025
8972
  /**
9026
8973
  * @generated from message blueapi.cover.v1.AnomalyAlertData
@@ -9067,7 +9014,7 @@ export type AnomalyAlertData = Message<"blueapi.cover.v1.AnomalyAlertData"> & {
9067
9014
  * Use `create(AnomalyAlertDataSchema)` to create a new message.
9068
9015
  */
9069
9016
  export const AnomalyAlertDataSchema: GenMessage<AnomalyAlertData> = /*@__PURE__*/
9070
- messageDesc(file_cover_v1_cover, 273);
9017
+ messageDesc(file_cover_v1_cover, 275);
9071
9018
 
9072
9019
  /**
9073
9020
  * Request message for ListAnomalyAlert
@@ -9082,7 +9029,7 @@ export type ListAnomalyAlertRequest = Message<"blueapi.cover.v1.ListAnomalyAlert
9082
9029
  * Use `create(ListAnomalyAlertRequestSchema)` to create a new message.
9083
9030
  */
9084
9031
  export const ListAnomalyAlertRequestSchema: GenMessage<ListAnomalyAlertRequest> = /*@__PURE__*/
9085
- messageDesc(file_cover_v1_cover, 274);
9032
+ messageDesc(file_cover_v1_cover, 276);
9086
9033
 
9087
9034
  /**
9088
9035
  * @generated from message blueapi.cover.v1.UpdateAnomalyAlertRequest
@@ -9136,7 +9083,7 @@ export type UpdateAnomalyAlertRequest = Message<"blueapi.cover.v1.UpdateAnomalyA
9136
9083
  * Use `create(UpdateAnomalyAlertRequestSchema)` to create a new message.
9137
9084
  */
9138
9085
  export const UpdateAnomalyAlertRequestSchema: GenMessage<UpdateAnomalyAlertRequest> = /*@__PURE__*/
9139
- messageDesc(file_cover_v1_cover, 275);
9086
+ messageDesc(file_cover_v1_cover, 277);
9140
9087
 
9141
9088
  /**
9142
9089
  * Request message for RegisterNewUser
@@ -9199,7 +9146,7 @@ export type RegisterNewUserRequest = Message<"blueapi.cover.v1.RegisterNewUserRe
9199
9146
  * Use `create(RegisterNewUserRequestSchema)` to create a new message.
9200
9147
  */
9201
9148
  export const RegisterNewUserRequestSchema: GenMessage<RegisterNewUserRequest> = /*@__PURE__*/
9202
- messageDesc(file_cover_v1_cover, 276);
9149
+ messageDesc(file_cover_v1_cover, 278);
9203
9150
 
9204
9151
  /**
9205
9152
  * @generated from message blueapi.cover.v1.RegisterNewUserResponse
@@ -9216,7 +9163,7 @@ export type RegisterNewUserResponse = Message<"blueapi.cover.v1.RegisterNewUserR
9216
9163
  * Use `create(RegisterNewUserResponseSchema)` to create a new message.
9217
9164
  */
9218
9165
  export const RegisterNewUserResponseSchema: GenMessage<RegisterNewUserResponse> = /*@__PURE__*/
9219
- messageDesc(file_cover_v1_cover, 277);
9166
+ messageDesc(file_cover_v1_cover, 279);
9220
9167
 
9221
9168
  /**
9222
9169
  * Request message for GetUserProfile
@@ -9237,7 +9184,7 @@ export type GetUserProfileRequest = Message<"blueapi.cover.v1.GetUserProfileRequ
9237
9184
  * Use `create(GetUserProfileRequestSchema)` to create a new message.
9238
9185
  */
9239
9186
  export const GetUserProfileRequestSchema: GenMessage<GetUserProfileRequest> = /*@__PURE__*/
9240
- messageDesc(file_cover_v1_cover, 278);
9187
+ messageDesc(file_cover_v1_cover, 280);
9241
9188
 
9242
9189
  /**
9243
9190
  * @generated from message blueapi.cover.v1.GetUserProfileResponse
@@ -9294,7 +9241,7 @@ export type GetUserProfileResponse = Message<"blueapi.cover.v1.GetUserProfileRes
9294
9241
  * Use `create(GetUserProfileResponseSchema)` to create a new message.
9295
9242
  */
9296
9243
  export const GetUserProfileResponseSchema: GenMessage<GetUserProfileResponse> = /*@__PURE__*/
9297
- messageDesc(file_cover_v1_cover, 279);
9244
+ messageDesc(file_cover_v1_cover, 281);
9298
9245
 
9299
9246
  /**
9300
9247
  * Request message for UpdateUserProfile
@@ -9350,7 +9297,7 @@ export type UpdateUserProfileRequest = Message<"blueapi.cover.v1.UpdateUserProfi
9350
9297
  * Use `create(UpdateUserProfileRequestSchema)` to create a new message.
9351
9298
  */
9352
9299
  export const UpdateUserProfileRequestSchema: GenMessage<UpdateUserProfileRequest> = /*@__PURE__*/
9353
- messageDesc(file_cover_v1_cover, 280);
9300
+ messageDesc(file_cover_v1_cover, 282);
9354
9301
 
9355
9302
  /**
9356
9303
  * @generated from message blueapi.cover.v1.UpdateUserProfileResponse
@@ -9402,7 +9349,7 @@ export type UpdateUserProfileResponse = Message<"blueapi.cover.v1.UpdateUserProf
9402
9349
  * Use `create(UpdateUserProfileResponseSchema)` to create a new message.
9403
9350
  */
9404
9351
  export const UpdateUserProfileResponseSchema: GenMessage<UpdateUserProfileResponse> = /*@__PURE__*/
9405
- messageDesc(file_cover_v1_cover, 281);
9352
+ messageDesc(file_cover_v1_cover, 283);
9406
9353
 
9407
9354
  /**
9408
9355
  * @generated from message blueapi.cover.v1.ListBudgetsRequest
@@ -9428,7 +9375,7 @@ export type ListBudgetsRequest = Message<"blueapi.cover.v1.ListBudgetsRequest">
9428
9375
  * Use `create(ListBudgetsRequestSchema)` to create a new message.
9429
9376
  */
9430
9377
  export const ListBudgetsRequestSchema: GenMessage<ListBudgetsRequest> = /*@__PURE__*/
9431
- messageDesc(file_cover_v1_cover, 282);
9378
+ messageDesc(file_cover_v1_cover, 284);
9432
9379
 
9433
9380
  /**
9434
9381
  * @generated from message blueapi.cover.v1.ListBudgetsResponse
@@ -9445,7 +9392,7 @@ export type ListBudgetsResponse = Message<"blueapi.cover.v1.ListBudgetsResponse"
9445
9392
  * Use `create(ListBudgetsResponseSchema)` to create a new message.
9446
9393
  */
9447
9394
  export const ListBudgetsResponseSchema: GenMessage<ListBudgetsResponse> = /*@__PURE__*/
9448
- messageDesc(file_cover_v1_cover, 283);
9395
+ messageDesc(file_cover_v1_cover, 285);
9449
9396
 
9450
9397
  /**
9451
9398
  * @generated from message blueapi.cover.v1.GetBudgetRequest
@@ -9464,7 +9411,7 @@ export type GetBudgetRequest = Message<"blueapi.cover.v1.GetBudgetRequest"> & {
9464
9411
  * Use `create(GetBudgetRequestSchema)` to create a new message.
9465
9412
  */
9466
9413
  export const GetBudgetRequestSchema: GenMessage<GetBudgetRequest> = /*@__PURE__*/
9467
- messageDesc(file_cover_v1_cover, 284);
9414
+ messageDesc(file_cover_v1_cover, 286);
9468
9415
 
9469
9416
  /**
9470
9417
  * @generated from message blueapi.cover.v1.GetBudgetResponse
@@ -9481,7 +9428,7 @@ export type GetBudgetResponse = Message<"blueapi.cover.v1.GetBudgetResponse"> &
9481
9428
  * Use `create(GetBudgetResponseSchema)` to create a new message.
9482
9429
  */
9483
9430
  export const GetBudgetResponseSchema: GenMessage<GetBudgetResponse> = /*@__PURE__*/
9484
- messageDesc(file_cover_v1_cover, 285);
9431
+ messageDesc(file_cover_v1_cover, 287);
9485
9432
 
9486
9433
  /**
9487
9434
  * @generated from message blueapi.cover.v1.CreateBudgetRequest
@@ -9498,7 +9445,7 @@ export type CreateBudgetRequest = Message<"blueapi.cover.v1.CreateBudgetRequest"
9498
9445
  * Use `create(CreateBudgetRequestSchema)` to create a new message.
9499
9446
  */
9500
9447
  export const CreateBudgetRequestSchema: GenMessage<CreateBudgetRequest> = /*@__PURE__*/
9501
- messageDesc(file_cover_v1_cover, 286);
9448
+ messageDesc(file_cover_v1_cover, 288);
9502
9449
 
9503
9450
  /**
9504
9451
  * @generated from message blueapi.cover.v1.CreateBudgetResponse
@@ -9515,7 +9462,7 @@ export type CreateBudgetResponse = Message<"blueapi.cover.v1.CreateBudgetRespons
9515
9462
  * Use `create(CreateBudgetResponseSchema)` to create a new message.
9516
9463
  */
9517
9464
  export const CreateBudgetResponseSchema: GenMessage<CreateBudgetResponse> = /*@__PURE__*/
9518
- messageDesc(file_cover_v1_cover, 287);
9465
+ messageDesc(file_cover_v1_cover, 289);
9519
9466
 
9520
9467
  /**
9521
9468
  * @generated from message blueapi.cover.v1.DeleteBudgetRequest
@@ -9534,7 +9481,7 @@ export type DeleteBudgetRequest = Message<"blueapi.cover.v1.DeleteBudgetRequest"
9534
9481
  * Use `create(DeleteBudgetRequestSchema)` to create a new message.
9535
9482
  */
9536
9483
  export const DeleteBudgetRequestSchema: GenMessage<DeleteBudgetRequest> = /*@__PURE__*/
9537
- messageDesc(file_cover_v1_cover, 288);
9484
+ messageDesc(file_cover_v1_cover, 290);
9538
9485
 
9539
9486
  /**
9540
9487
  * @generated from message blueapi.cover.v1.DeleteBudgetResponse
@@ -9551,7 +9498,7 @@ export type DeleteBudgetResponse = Message<"blueapi.cover.v1.DeleteBudgetRespons
9551
9498
  * Use `create(DeleteBudgetResponseSchema)` to create a new message.
9552
9499
  */
9553
9500
  export const DeleteBudgetResponseSchema: GenMessage<DeleteBudgetResponse> = /*@__PURE__*/
9554
- messageDesc(file_cover_v1_cover, 289);
9501
+ messageDesc(file_cover_v1_cover, 291);
9555
9502
 
9556
9503
  /**
9557
9504
  * @generated from message blueapi.cover.v1.UpdateBudgetRequest
@@ -9575,7 +9522,7 @@ export type UpdateBudgetRequest = Message<"blueapi.cover.v1.UpdateBudgetRequest"
9575
9522
  * Use `create(UpdateBudgetRequestSchema)` to create a new message.
9576
9523
  */
9577
9524
  export const UpdateBudgetRequestSchema: GenMessage<UpdateBudgetRequest> = /*@__PURE__*/
9578
- messageDesc(file_cover_v1_cover, 290);
9525
+ messageDesc(file_cover_v1_cover, 292);
9579
9526
 
9580
9527
  /**
9581
9528
  * @generated from message blueapi.cover.v1.UpdateBudgetResponse
@@ -9592,7 +9539,7 @@ export type UpdateBudgetResponse = Message<"blueapi.cover.v1.UpdateBudgetRespons
9592
9539
  * Use `create(UpdateBudgetResponseSchema)` to create a new message.
9593
9540
  */
9594
9541
  export const UpdateBudgetResponseSchema: GenMessage<UpdateBudgetResponse> = /*@__PURE__*/
9595
- messageDesc(file_cover_v1_cover, 291);
9542
+ messageDesc(file_cover_v1_cover, 293);
9596
9543
 
9597
9544
  /**
9598
9545
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingRequest
@@ -9609,7 +9556,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingRequest = Message<"blueapi.co
9609
9556
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingRequestSchema)` to create a new message.
9610
9557
  */
9611
9558
  export const ResolveAWSMarketplaceTokenForOnboardingRequestSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingRequest> = /*@__PURE__*/
9612
- messageDesc(file_cover_v1_cover, 292);
9559
+ messageDesc(file_cover_v1_cover, 294);
9613
9560
 
9614
9561
  /**
9615
9562
  * @generated from message blueapi.cover.v1.ResolveAWSMarketplaceTokenForOnboardingResponse
@@ -9631,7 +9578,7 @@ export type ResolveAWSMarketplaceTokenForOnboardingResponse = Message<"blueapi.c
9631
9578
  * Use `create(ResolveAWSMarketplaceTokenForOnboardingResponseSchema)` to create a new message.
9632
9579
  */
9633
9580
  export const ResolveAWSMarketplaceTokenForOnboardingResponseSchema: GenMessage<ResolveAWSMarketplaceTokenForOnboardingResponse> = /*@__PURE__*/
9634
- messageDesc(file_cover_v1_cover, 293);
9581
+ messageDesc(file_cover_v1_cover, 295);
9635
9582
 
9636
9583
  /**
9637
9584
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusRequest
@@ -9644,7 +9591,7 @@ export type GetCustomerSubscriptionStatusRequest = Message<"blueapi.cover.v1.Get
9644
9591
  * Use `create(GetCustomerSubscriptionStatusRequestSchema)` to create a new message.
9645
9592
  */
9646
9593
  export const GetCustomerSubscriptionStatusRequestSchema: GenMessage<GetCustomerSubscriptionStatusRequest> = /*@__PURE__*/
9647
- messageDesc(file_cover_v1_cover, 294);
9594
+ messageDesc(file_cover_v1_cover, 296);
9648
9595
 
9649
9596
  /**
9650
9597
  * @generated from message blueapi.cover.v1.GetCustomerSubscriptionStatusResponse
@@ -9706,7 +9653,7 @@ export type GetCustomerSubscriptionStatusResponse = Message<"blueapi.cover.v1.Ge
9706
9653
  * Use `create(GetCustomerSubscriptionStatusResponseSchema)` to create a new message.
9707
9654
  */
9708
9655
  export const GetCustomerSubscriptionStatusResponseSchema: GenMessage<GetCustomerSubscriptionStatusResponse> = /*@__PURE__*/
9709
- messageDesc(file_cover_v1_cover, 295);
9656
+ messageDesc(file_cover_v1_cover, 297);
9710
9657
 
9711
9658
  /**
9712
9659
  * @generated from message blueapi.cover.v1.CreateProfilingRequest
@@ -9758,7 +9705,7 @@ export type CreateProfilingRequest = Message<"blueapi.cover.v1.CreateProfilingRe
9758
9705
  * Use `create(CreateProfilingRequestSchema)` to create a new message.
9759
9706
  */
9760
9707
  export const CreateProfilingRequestSchema: GenMessage<CreateProfilingRequest> = /*@__PURE__*/
9761
- messageDesc(file_cover_v1_cover, 296);
9708
+ messageDesc(file_cover_v1_cover, 298);
9762
9709
 
9763
9710
  /**
9764
9711
  * @generated from message blueapi.cover.v1.CreateProfilingResponse
@@ -9771,7 +9718,7 @@ export type CreateProfilingResponse = Message<"blueapi.cover.v1.CreateProfilingR
9771
9718
  * Use `create(CreateProfilingResponseSchema)` to create a new message.
9772
9719
  */
9773
9720
  export const CreateProfilingResponseSchema: GenMessage<CreateProfilingResponse> = /*@__PURE__*/
9774
- messageDesc(file_cover_v1_cover, 297);
9721
+ messageDesc(file_cover_v1_cover, 299);
9775
9722
 
9776
9723
  /**
9777
9724
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceRequest
@@ -9788,7 +9735,7 @@ export type AddInfotoMarketplaceRequest = Message<"blueapi.cover.v1.AddInfotoMar
9788
9735
  * Use `create(AddInfotoMarketplaceRequestSchema)` to create a new message.
9789
9736
  */
9790
9737
  export const AddInfotoMarketplaceRequestSchema: GenMessage<AddInfotoMarketplaceRequest> = /*@__PURE__*/
9791
- messageDesc(file_cover_v1_cover, 298);
9738
+ messageDesc(file_cover_v1_cover, 300);
9792
9739
 
9793
9740
  /**
9794
9741
  * @generated from message blueapi.cover.v1.AddInfotoMarketplaceResponse
@@ -9801,7 +9748,7 @@ export type AddInfotoMarketplaceResponse = Message<"blueapi.cover.v1.AddInfotoMa
9801
9748
  * Use `create(AddInfotoMarketplaceResponseSchema)` to create a new message.
9802
9749
  */
9803
9750
  export const AddInfotoMarketplaceResponseSchema: GenMessage<AddInfotoMarketplaceResponse> = /*@__PURE__*/
9804
- messageDesc(file_cover_v1_cover, 299);
9751
+ messageDesc(file_cover_v1_cover, 301);
9805
9752
 
9806
9753
  /**
9807
9754
  * @generated from message blueapi.cover.v1.GetReportSummaryRequest
@@ -9848,7 +9795,7 @@ export type GetReportSummaryRequest = Message<"blueapi.cover.v1.GetReportSummary
9848
9795
  * Use `create(GetReportSummaryRequestSchema)` to create a new message.
9849
9796
  */
9850
9797
  export const GetReportSummaryRequestSchema: GenMessage<GetReportSummaryRequest> = /*@__PURE__*/
9851
- messageDesc(file_cover_v1_cover, 300);
9798
+ messageDesc(file_cover_v1_cover, 302);
9852
9799
 
9853
9800
  /**
9854
9801
  * @generated from message blueapi.cover.v1.GetReportSummaryResponse
@@ -9890,7 +9837,7 @@ export type GetReportSummaryResponse = Message<"blueapi.cover.v1.GetReportSummar
9890
9837
  * Use `create(GetReportSummaryResponseSchema)` to create a new message.
9891
9838
  */
9892
9839
  export const GetReportSummaryResponseSchema: GenMessage<GetReportSummaryResponse> = /*@__PURE__*/
9893
- messageDesc(file_cover_v1_cover, 301);
9840
+ messageDesc(file_cover_v1_cover, 303);
9894
9841
 
9895
9842
  /**
9896
9843
  * @generated from message blueapi.cover.v1.ListRecommendationRequest
@@ -9988,7 +9935,7 @@ export type ListRecommendationRequest = Message<"blueapi.cover.v1.ListRecommenda
9988
9935
  * Use `create(ListRecommendationRequestSchema)` to create a new message.
9989
9936
  */
9990
9937
  export const ListRecommendationRequestSchema: GenMessage<ListRecommendationRequest> = /*@__PURE__*/
9991
- messageDesc(file_cover_v1_cover, 302);
9938
+ messageDesc(file_cover_v1_cover, 304);
9992
9939
 
9993
9940
  /**
9994
9941
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request
@@ -10027,7 +9974,7 @@ export type ListRecommendationV2Request = Message<"blueapi.cover.v1.ListRecommen
10027
9974
  * Use `create(ListRecommendationV2RequestSchema)` to create a new message.
10028
9975
  */
10029
9976
  export const ListRecommendationV2RequestSchema: GenMessage<ListRecommendationV2Request> = /*@__PURE__*/
10030
- messageDesc(file_cover_v1_cover, 303);
9977
+ messageDesc(file_cover_v1_cover, 305);
10031
9978
 
10032
9979
  /**
10033
9980
  * @generated from message blueapi.cover.v1.ListRecommendationV2Request.RateSettings
@@ -10074,7 +10021,7 @@ export type ListRecommendationV2Request_RateSettings = Message<"blueapi.cover.v1
10074
10021
  * Use `create(ListRecommendationV2Request_RateSettingsSchema)` to create a new message.
10075
10022
  */
10076
10023
  export const ListRecommendationV2Request_RateSettingsSchema: GenMessage<ListRecommendationV2Request_RateSettings> = /*@__PURE__*/
10077
- messageDesc(file_cover_v1_cover, 303, 0);
10024
+ messageDesc(file_cover_v1_cover, 305, 0);
10078
10025
 
10079
10026
  /**
10080
10027
  * @generated from message blueapi.cover.v1.ListRecommendationResponse
@@ -10216,7 +10163,7 @@ export type ListRecommendationResponse = Message<"blueapi.cover.v1.ListRecommend
10216
10163
  * Use `create(ListRecommendationResponseSchema)` to create a new message.
10217
10164
  */
10218
10165
  export const ListRecommendationResponseSchema: GenMessage<ListRecommendationResponse> = /*@__PURE__*/
10219
- messageDesc(file_cover_v1_cover, 304);
10166
+ messageDesc(file_cover_v1_cover, 306);
10220
10167
 
10221
10168
  /**
10222
10169
  * @generated from message blueapi.cover.v1.ListRecommendationResponse.PurchaseOption
@@ -10273,7 +10220,7 @@ export type ListRecommendationResponse_PurchaseOption = Message<"blueapi.cover.v
10273
10220
  * Use `create(ListRecommendationResponse_PurchaseOptionSchema)` to create a new message.
10274
10221
  */
10275
10222
  export const ListRecommendationResponse_PurchaseOptionSchema: GenMessage<ListRecommendationResponse_PurchaseOption> = /*@__PURE__*/
10276
- messageDesc(file_cover_v1_cover, 304, 0);
10223
+ messageDesc(file_cover_v1_cover, 306, 0);
10277
10224
 
10278
10225
  /**
10279
10226
  * @generated from message blueapi.cover.v1.GetRecommendationRequest
@@ -10302,7 +10249,7 @@ export type GetRecommendationRequest = Message<"blueapi.cover.v1.GetRecommendati
10302
10249
  * Use `create(GetRecommendationRequestSchema)` to create a new message.
10303
10250
  */
10304
10251
  export const GetRecommendationRequestSchema: GenMessage<GetRecommendationRequest> = /*@__PURE__*/
10305
- messageDesc(file_cover_v1_cover, 305);
10252
+ messageDesc(file_cover_v1_cover, 307);
10306
10253
 
10307
10254
  /**
10308
10255
  * @generated from message blueapi.cover.v1.GetRecommendationResponse
@@ -10319,7 +10266,7 @@ export type GetRecommendationResponse = Message<"blueapi.cover.v1.GetRecommendat
10319
10266
  * Use `create(GetRecommendationResponseSchema)` to create a new message.
10320
10267
  */
10321
10268
  export const GetRecommendationResponseSchema: GenMessage<GetRecommendationResponse> = /*@__PURE__*/
10322
- messageDesc(file_cover_v1_cover, 306);
10269
+ messageDesc(file_cover_v1_cover, 308);
10323
10270
 
10324
10271
  /**
10325
10272
  * @generated from message blueapi.cover.v1.ExecuteOptimizationRequest
@@ -10341,7 +10288,7 @@ export type ExecuteOptimizationRequest = Message<"blueapi.cover.v1.ExecuteOptimi
10341
10288
  * Use `create(ExecuteOptimizationRequestSchema)` to create a new message.
10342
10289
  */
10343
10290
  export const ExecuteOptimizationRequestSchema: GenMessage<ExecuteOptimizationRequest> = /*@__PURE__*/
10344
- messageDesc(file_cover_v1_cover, 307);
10291
+ messageDesc(file_cover_v1_cover, 309);
10345
10292
 
10346
10293
  /**
10347
10294
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse
@@ -10376,7 +10323,7 @@ export type ExecuteOptimizationResponse = Message<"blueapi.cover.v1.ExecuteOptim
10376
10323
  * Use `create(ExecuteOptimizationResponseSchema)` to create a new message.
10377
10324
  */
10378
10325
  export const ExecuteOptimizationResponseSchema: GenMessage<ExecuteOptimizationResponse> = /*@__PURE__*/
10379
- messageDesc(file_cover_v1_cover, 308);
10326
+ messageDesc(file_cover_v1_cover, 310);
10380
10327
 
10381
10328
  /**
10382
10329
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AWSOption
@@ -10403,7 +10350,7 @@ export type ExecuteOptimizationResponse_AWSOption = Message<"blueapi.cover.v1.Ex
10403
10350
  * Use `create(ExecuteOptimizationResponse_AWSOptionSchema)` to create a new message.
10404
10351
  */
10405
10352
  export const ExecuteOptimizationResponse_AWSOptionSchema: GenMessage<ExecuteOptimizationResponse_AWSOption> = /*@__PURE__*/
10406
- messageDesc(file_cover_v1_cover, 308, 0);
10353
+ messageDesc(file_cover_v1_cover, 310, 0);
10407
10354
 
10408
10355
  /**
10409
10356
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.GCPOption
@@ -10416,7 +10363,7 @@ export type ExecuteOptimizationResponse_GCPOption = Message<"blueapi.cover.v1.Ex
10416
10363
  * Use `create(ExecuteOptimizationResponse_GCPOptionSchema)` to create a new message.
10417
10364
  */
10418
10365
  export const ExecuteOptimizationResponse_GCPOptionSchema: GenMessage<ExecuteOptimizationResponse_GCPOption> = /*@__PURE__*/
10419
- messageDesc(file_cover_v1_cover, 308, 1);
10366
+ messageDesc(file_cover_v1_cover, 310, 1);
10420
10367
 
10421
10368
  /**
10422
10369
  * @generated from message blueapi.cover.v1.ExecuteOptimizationResponse.AzureCSPOption
@@ -10429,7 +10376,7 @@ export type ExecuteOptimizationResponse_AzureCSPOption = Message<"blueapi.cover.
10429
10376
  * Use `create(ExecuteOptimizationResponse_AzureCSPOptionSchema)` to create a new message.
10430
10377
  */
10431
10378
  export const ExecuteOptimizationResponse_AzureCSPOptionSchema: GenMessage<ExecuteOptimizationResponse_AzureCSPOption> = /*@__PURE__*/
10432
- messageDesc(file_cover_v1_cover, 308, 2);
10379
+ messageDesc(file_cover_v1_cover, 310, 2);
10433
10380
 
10434
10381
  /**
10435
10382
  * @generated from message blueapi.cover.v1.MarkAsExecutedRequest
@@ -10446,7 +10393,7 @@ export type MarkAsExecutedRequest = Message<"blueapi.cover.v1.MarkAsExecutedRequ
10446
10393
  * Use `create(MarkAsExecutedRequestSchema)` to create a new message.
10447
10394
  */
10448
10395
  export const MarkAsExecutedRequestSchema: GenMessage<MarkAsExecutedRequest> = /*@__PURE__*/
10449
- messageDesc(file_cover_v1_cover, 309);
10396
+ messageDesc(file_cover_v1_cover, 311);
10450
10397
 
10451
10398
  /**
10452
10399
  * @generated from message blueapi.cover.v1.MarkAsExecutedResponse
@@ -10459,7 +10406,7 @@ export type MarkAsExecutedResponse = Message<"blueapi.cover.v1.MarkAsExecutedRes
10459
10406
  * Use `create(MarkAsExecutedResponseSchema)` to create a new message.
10460
10407
  */
10461
10408
  export const MarkAsExecutedResponseSchema: GenMessage<MarkAsExecutedResponse> = /*@__PURE__*/
10462
- messageDesc(file_cover_v1_cover, 310);
10409
+ messageDesc(file_cover_v1_cover, 312);
10463
10410
 
10464
10411
  /**
10465
10412
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationRequest
@@ -10476,7 +10423,7 @@ export type UndoExecutedRecommendationRequest = Message<"blueapi.cover.v1.UndoEx
10476
10423
  * Use `create(UndoExecutedRecommendationRequestSchema)` to create a new message.
10477
10424
  */
10478
10425
  export const UndoExecutedRecommendationRequestSchema: GenMessage<UndoExecutedRecommendationRequest> = /*@__PURE__*/
10479
- messageDesc(file_cover_v1_cover, 311);
10426
+ messageDesc(file_cover_v1_cover, 313);
10480
10427
 
10481
10428
  /**
10482
10429
  * @generated from message blueapi.cover.v1.UndoExecutedRecommendationResponse
@@ -10489,7 +10436,7 @@ export type UndoExecutedRecommendationResponse = Message<"blueapi.cover.v1.UndoE
10489
10436
  * Use `create(UndoExecutedRecommendationResponseSchema)` to create a new message.
10490
10437
  */
10491
10438
  export const UndoExecutedRecommendationResponseSchema: GenMessage<UndoExecutedRecommendationResponse> = /*@__PURE__*/
10492
- messageDesc(file_cover_v1_cover, 312);
10439
+ messageDesc(file_cover_v1_cover, 314);
10493
10440
 
10494
10441
  /**
10495
10442
  * @generated from message blueapi.cover.v1.OptimizationHistoryRequest
@@ -10550,7 +10497,7 @@ export type OptimizationHistoryRequest = Message<"blueapi.cover.v1.OptimizationH
10550
10497
  * Use `create(OptimizationHistoryRequestSchema)` to create a new message.
10551
10498
  */
10552
10499
  export const OptimizationHistoryRequestSchema: GenMessage<OptimizationHistoryRequest> = /*@__PURE__*/
10553
- messageDesc(file_cover_v1_cover, 313);
10500
+ messageDesc(file_cover_v1_cover, 315);
10554
10501
 
10555
10502
  /**
10556
10503
  * @generated from message blueapi.cover.v1.OptimizationHistoryResponse
@@ -10567,7 +10514,7 @@ export type OptimizationHistoryResponse = Message<"blueapi.cover.v1.Optimization
10567
10514
  * Use `create(OptimizationHistoryResponseSchema)` to create a new message.
10568
10515
  */
10569
10516
  export const OptimizationHistoryResponseSchema: GenMessage<OptimizationHistoryResponse> = /*@__PURE__*/
10570
- messageDesc(file_cover_v1_cover, 314);
10517
+ messageDesc(file_cover_v1_cover, 316);
10571
10518
 
10572
10519
  /**
10573
10520
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorRequest
@@ -10600,7 +10547,7 @@ export type SetCostGroupEventIndicatorRequest = Message<"blueapi.cover.v1.SetCos
10600
10547
  * Use `create(SetCostGroupEventIndicatorRequestSchema)` to create a new message.
10601
10548
  */
10602
10549
  export const SetCostGroupEventIndicatorRequestSchema: GenMessage<SetCostGroupEventIndicatorRequest> = /*@__PURE__*/
10603
- messageDesc(file_cover_v1_cover, 315);
10550
+ messageDesc(file_cover_v1_cover, 317);
10604
10551
 
10605
10552
  /**
10606
10553
  * @generated from message blueapi.cover.v1.SetCostGroupEventIndicatorResponse
@@ -10622,7 +10569,7 @@ export type SetCostGroupEventIndicatorResponse = Message<"blueapi.cover.v1.SetCo
10622
10569
  * Use `create(SetCostGroupEventIndicatorResponseSchema)` to create a new message.
10623
10570
  */
10624
10571
  export const SetCostGroupEventIndicatorResponseSchema: GenMessage<SetCostGroupEventIndicatorResponse> = /*@__PURE__*/
10625
- messageDesc(file_cover_v1_cover, 316);
10572
+ messageDesc(file_cover_v1_cover, 318);
10626
10573
 
10627
10574
  /**
10628
10575
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsRequest
@@ -10662,7 +10609,7 @@ export type SetCostGroupAnomalyOptionsRequest = Message<"blueapi.cover.v1.SetCos
10662
10609
  * Use `create(SetCostGroupAnomalyOptionsRequestSchema)` to create a new message.
10663
10610
  */
10664
10611
  export const SetCostGroupAnomalyOptionsRequestSchema: GenMessage<SetCostGroupAnomalyOptionsRequest> = /*@__PURE__*/
10665
- messageDesc(file_cover_v1_cover, 317);
10612
+ messageDesc(file_cover_v1_cover, 319);
10666
10613
 
10667
10614
  /**
10668
10615
  * @generated from message blueapi.cover.v1.SetCostGroupAnomalyOptionsResponse
@@ -10684,7 +10631,7 @@ export type SetCostGroupAnomalyOptionsResponse = Message<"blueapi.cover.v1.SetCo
10684
10631
  * Use `create(SetCostGroupAnomalyOptionsResponseSchema)` to create a new message.
10685
10632
  */
10686
10633
  export const SetCostGroupAnomalyOptionsResponseSchema: GenMessage<SetCostGroupAnomalyOptionsResponse> = /*@__PURE__*/
10687
- messageDesc(file_cover_v1_cover, 318);
10634
+ messageDesc(file_cover_v1_cover, 320);
10688
10635
 
10689
10636
  /**
10690
10637
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthRequest
@@ -10703,7 +10650,7 @@ export type SetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.SetOrgFiscalMon
10703
10650
  * Use `create(SetOrgFiscalMonthRequestSchema)` to create a new message.
10704
10651
  */
10705
10652
  export const SetOrgFiscalMonthRequestSchema: GenMessage<SetOrgFiscalMonthRequest> = /*@__PURE__*/
10706
- messageDesc(file_cover_v1_cover, 319);
10653
+ messageDesc(file_cover_v1_cover, 321);
10707
10654
 
10708
10655
  /**
10709
10656
  * @generated from message blueapi.cover.v1.SetOrgFiscalMonthResponse
@@ -10720,7 +10667,7 @@ export type SetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.SetOrgFiscalMo
10720
10667
  * Use `create(SetOrgFiscalMonthResponseSchema)` to create a new message.
10721
10668
  */
10722
10669
  export const SetOrgFiscalMonthResponseSchema: GenMessage<SetOrgFiscalMonthResponse> = /*@__PURE__*/
10723
- messageDesc(file_cover_v1_cover, 320);
10670
+ messageDesc(file_cover_v1_cover, 322);
10724
10671
 
10725
10672
  /**
10726
10673
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthRequest
@@ -10733,7 +10680,7 @@ export type GetOrgFiscalMonthRequest = Message<"blueapi.cover.v1.GetOrgFiscalMon
10733
10680
  * Use `create(GetOrgFiscalMonthRequestSchema)` to create a new message.
10734
10681
  */
10735
10682
  export const GetOrgFiscalMonthRequestSchema: GenMessage<GetOrgFiscalMonthRequest> = /*@__PURE__*/
10736
- messageDesc(file_cover_v1_cover, 321);
10683
+ messageDesc(file_cover_v1_cover, 323);
10737
10684
 
10738
10685
  /**
10739
10686
  * @generated from message blueapi.cover.v1.GetOrgFiscalMonthResponse
@@ -10755,7 +10702,7 @@ export type GetOrgFiscalMonthResponse = Message<"blueapi.cover.v1.GetOrgFiscalMo
10755
10702
  * Use `create(GetOrgFiscalMonthResponseSchema)` to create a new message.
10756
10703
  */
10757
10704
  export const GetOrgFiscalMonthResponseSchema: GenMessage<GetOrgFiscalMonthResponse> = /*@__PURE__*/
10758
- messageDesc(file_cover_v1_cover, 322);
10705
+ messageDesc(file_cover_v1_cover, 324);
10759
10706
 
10760
10707
  /**
10761
10708
  * @generated from message blueapi.cover.v1.TransferOrganizationRequest
@@ -10795,7 +10742,7 @@ export type TransferOrganizationRequest = Message<"blueapi.cover.v1.TransferOrga
10795
10742
  * Use `create(TransferOrganizationRequestSchema)` to create a new message.
10796
10743
  */
10797
10744
  export const TransferOrganizationRequestSchema: GenMessage<TransferOrganizationRequest> = /*@__PURE__*/
10798
- messageDesc(file_cover_v1_cover, 323);
10745
+ messageDesc(file_cover_v1_cover, 325);
10799
10746
 
10800
10747
  /**
10801
10748
  * @generated from message blueapi.cover.v1.TransferOrganizationResponse
@@ -10812,7 +10759,7 @@ export type TransferOrganizationResponse = Message<"blueapi.cover.v1.TransferOrg
10812
10759
  * Use `create(TransferOrganizationResponseSchema)` to create a new message.
10813
10760
  */
10814
10761
  export const TransferOrganizationResponseSchema: GenMessage<TransferOrganizationResponse> = /*@__PURE__*/
10815
- messageDesc(file_cover_v1_cover, 324);
10762
+ messageDesc(file_cover_v1_cover, 326);
10816
10763
 
10817
10764
  /**
10818
10765
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIRequest
@@ -10829,7 +10776,7 @@ export type UpdateCostGroupCreationUIRequest = Message<"blueapi.cover.v1.UpdateC
10829
10776
  * Use `create(UpdateCostGroupCreationUIRequestSchema)` to create a new message.
10830
10777
  */
10831
10778
  export const UpdateCostGroupCreationUIRequestSchema: GenMessage<UpdateCostGroupCreationUIRequest> = /*@__PURE__*/
10832
- messageDesc(file_cover_v1_cover, 325);
10779
+ messageDesc(file_cover_v1_cover, 327);
10833
10780
 
10834
10781
  /**
10835
10782
  * @generated from message blueapi.cover.v1.UpdateCostGroupCreationUIResponse
@@ -10846,7 +10793,7 @@ export type UpdateCostGroupCreationUIResponse = Message<"blueapi.cover.v1.Update
10846
10793
  * Use `create(UpdateCostGroupCreationUIResponseSchema)` to create a new message.
10847
10794
  */
10848
10795
  export const UpdateCostGroupCreationUIResponseSchema: GenMessage<UpdateCostGroupCreationUIResponse> = /*@__PURE__*/
10849
- messageDesc(file_cover_v1_cover, 326);
10796
+ messageDesc(file_cover_v1_cover, 328);
10850
10797
 
10851
10798
  /**
10852
10799
  * @generated from message blueapi.cover.v1.ListUnitTypesRequest
@@ -10859,7 +10806,7 @@ export type ListUnitTypesRequest = Message<"blueapi.cover.v1.ListUnitTypesReques
10859
10806
  * Use `create(ListUnitTypesRequestSchema)` to create a new message.
10860
10807
  */
10861
10808
  export const ListUnitTypesRequestSchema: GenMessage<ListUnitTypesRequest> = /*@__PURE__*/
10862
- messageDesc(file_cover_v1_cover, 327);
10809
+ messageDesc(file_cover_v1_cover, 329);
10863
10810
 
10864
10811
  /**
10865
10812
  * @generated from message blueapi.cover.v1.ListUnitTypesResponse
@@ -10876,7 +10823,7 @@ export type ListUnitTypesResponse = Message<"blueapi.cover.v1.ListUnitTypesRespo
10876
10823
  * Use `create(ListUnitTypesResponseSchema)` to create a new message.
10877
10824
  */
10878
10825
  export const ListUnitTypesResponseSchema: GenMessage<ListUnitTypesResponse> = /*@__PURE__*/
10879
- messageDesc(file_cover_v1_cover, 328);
10826
+ messageDesc(file_cover_v1_cover, 330);
10880
10827
 
10881
10828
  /**
10882
10829
  * @generated from message blueapi.cover.v1.CreateUnitTypeRequest
@@ -10908,7 +10855,7 @@ export type CreateUnitTypeRequest = Message<"blueapi.cover.v1.CreateUnitTypeRequ
10908
10855
  * Use `create(CreateUnitTypeRequestSchema)` to create a new message.
10909
10856
  */
10910
10857
  export const CreateUnitTypeRequestSchema: GenMessage<CreateUnitTypeRequest> = /*@__PURE__*/
10911
- messageDesc(file_cover_v1_cover, 329);
10858
+ messageDesc(file_cover_v1_cover, 331);
10912
10859
 
10913
10860
  /**
10914
10861
  * @generated from message blueapi.cover.v1.CreateUnitTypeResponse
@@ -10925,7 +10872,7 @@ export type CreateUnitTypeResponse = Message<"blueapi.cover.v1.CreateUnitTypeRes
10925
10872
  * Use `create(CreateUnitTypeResponseSchema)` to create a new message.
10926
10873
  */
10927
10874
  export const CreateUnitTypeResponseSchema: GenMessage<CreateUnitTypeResponse> = /*@__PURE__*/
10928
- messageDesc(file_cover_v1_cover, 330);
10875
+ messageDesc(file_cover_v1_cover, 332);
10929
10876
 
10930
10877
  /**
10931
10878
  * @generated from message blueapi.cover.v1.GetUnitTypeRequest
@@ -10944,7 +10891,7 @@ export type GetUnitTypeRequest = Message<"blueapi.cover.v1.GetUnitTypeRequest">
10944
10891
  * Use `create(GetUnitTypeRequestSchema)` to create a new message.
10945
10892
  */
10946
10893
  export const GetUnitTypeRequestSchema: GenMessage<GetUnitTypeRequest> = /*@__PURE__*/
10947
- messageDesc(file_cover_v1_cover, 331);
10894
+ messageDesc(file_cover_v1_cover, 333);
10948
10895
 
10949
10896
  /**
10950
10897
  * @generated from message blueapi.cover.v1.GetUnitTypeResponse
@@ -10961,7 +10908,7 @@ export type GetUnitTypeResponse = Message<"blueapi.cover.v1.GetUnitTypeResponse"
10961
10908
  * Use `create(GetUnitTypeResponseSchema)` to create a new message.
10962
10909
  */
10963
10910
  export const GetUnitTypeResponseSchema: GenMessage<GetUnitTypeResponse> = /*@__PURE__*/
10964
- messageDesc(file_cover_v1_cover, 332);
10911
+ messageDesc(file_cover_v1_cover, 334);
10965
10912
 
10966
10913
  /**
10967
10914
  * @generated from message blueapi.cover.v1.UpdateUnitTypeRequest
@@ -11008,7 +10955,7 @@ export type UpdateUnitTypeRequest = Message<"blueapi.cover.v1.UpdateUnitTypeRequ
11008
10955
  * Use `create(UpdateUnitTypeRequestSchema)` to create a new message.
11009
10956
  */
11010
10957
  export const UpdateUnitTypeRequestSchema: GenMessage<UpdateUnitTypeRequest> = /*@__PURE__*/
11011
- messageDesc(file_cover_v1_cover, 333);
10958
+ messageDesc(file_cover_v1_cover, 335);
11012
10959
 
11013
10960
  /**
11014
10961
  * @generated from message blueapi.cover.v1.UpdateUnitTypeResponse
@@ -11025,7 +10972,7 @@ export type UpdateUnitTypeResponse = Message<"blueapi.cover.v1.UpdateUnitTypeRes
11025
10972
  * Use `create(UpdateUnitTypeResponseSchema)` to create a new message.
11026
10973
  */
11027
10974
  export const UpdateUnitTypeResponseSchema: GenMessage<UpdateUnitTypeResponse> = /*@__PURE__*/
11028
- messageDesc(file_cover_v1_cover, 334);
10975
+ messageDesc(file_cover_v1_cover, 336);
11029
10976
 
11030
10977
  /**
11031
10978
  * @generated from message blueapi.cover.v1.DeleteUnitTypeRequest
@@ -11044,7 +10991,7 @@ export type DeleteUnitTypeRequest = Message<"blueapi.cover.v1.DeleteUnitTypeRequ
11044
10991
  * Use `create(DeleteUnitTypeRequestSchema)` to create a new message.
11045
10992
  */
11046
10993
  export const DeleteUnitTypeRequestSchema: GenMessage<DeleteUnitTypeRequest> = /*@__PURE__*/
11047
- messageDesc(file_cover_v1_cover, 335);
10994
+ messageDesc(file_cover_v1_cover, 337);
11048
10995
 
11049
10996
  /**
11050
10997
  * @generated from message blueapi.cover.v1.DeleteUnitTypeResponse
@@ -11061,7 +11008,7 @@ export type DeleteUnitTypeResponse = Message<"blueapi.cover.v1.DeleteUnitTypeRes
11061
11008
  * Use `create(DeleteUnitTypeResponseSchema)` to create a new message.
11062
11009
  */
11063
11010
  export const DeleteUnitTypeResponseSchema: GenMessage<DeleteUnitTypeResponse> = /*@__PURE__*/
11064
- messageDesc(file_cover_v1_cover, 336);
11011
+ messageDesc(file_cover_v1_cover, 338);
11065
11012
 
11066
11013
  /**
11067
11014
  * @generated from message blueapi.cover.v1.MergeUnitsRequest
@@ -11088,7 +11035,7 @@ export type MergeUnitsRequest = Message<"blueapi.cover.v1.MergeUnitsRequest"> &
11088
11035
  * Use `create(MergeUnitsRequestSchema)` to create a new message.
11089
11036
  */
11090
11037
  export const MergeUnitsRequestSchema: GenMessage<MergeUnitsRequest> = /*@__PURE__*/
11091
- messageDesc(file_cover_v1_cover, 337);
11038
+ messageDesc(file_cover_v1_cover, 339);
11092
11039
 
11093
11040
  /**
11094
11041
  * @generated from message blueapi.cover.v1.MergeUnitsResponse
@@ -11105,7 +11052,7 @@ export type MergeUnitsResponse = Message<"blueapi.cover.v1.MergeUnitsResponse">
11105
11052
  * Use `create(MergeUnitsResponseSchema)` to create a new message.
11106
11053
  */
11107
11054
  export const MergeUnitsResponseSchema: GenMessage<MergeUnitsResponse> = /*@__PURE__*/
11108
- messageDesc(file_cover_v1_cover, 338);
11055
+ messageDesc(file_cover_v1_cover, 340);
11109
11056
 
11110
11057
  /**
11111
11058
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsRequest
@@ -11118,7 +11065,7 @@ export type ListSuggestedUnitsRequest = Message<"blueapi.cover.v1.ListSuggestedU
11118
11065
  * Use `create(ListSuggestedUnitsRequestSchema)` to create a new message.
11119
11066
  */
11120
11067
  export const ListSuggestedUnitsRequestSchema: GenMessage<ListSuggestedUnitsRequest> = /*@__PURE__*/
11121
- messageDesc(file_cover_v1_cover, 339);
11068
+ messageDesc(file_cover_v1_cover, 341);
11122
11069
 
11123
11070
  /**
11124
11071
  * @generated from message blueapi.cover.v1.ListSuggestedUnitsResponse
@@ -11135,7 +11082,7 @@ export type ListSuggestedUnitsResponse = Message<"blueapi.cover.v1.ListSuggested
11135
11082
  * Use `create(ListSuggestedUnitsResponseSchema)` to create a new message.
11136
11083
  */
11137
11084
  export const ListSuggestedUnitsResponseSchema: GenMessage<ListSuggestedUnitsResponse> = /*@__PURE__*/
11138
- messageDesc(file_cover_v1_cover, 340);
11085
+ messageDesc(file_cover_v1_cover, 342);
11139
11086
 
11140
11087
  /**
11141
11088
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsRequest
@@ -11167,7 +11114,7 @@ export type MergeSuggestedUnitsRequest = Message<"blueapi.cover.v1.MergeSuggeste
11167
11114
  * Use `create(MergeSuggestedUnitsRequestSchema)` to create a new message.
11168
11115
  */
11169
11116
  export const MergeSuggestedUnitsRequestSchema: GenMessage<MergeSuggestedUnitsRequest> = /*@__PURE__*/
11170
- messageDesc(file_cover_v1_cover, 341);
11117
+ messageDesc(file_cover_v1_cover, 343);
11171
11118
 
11172
11119
  /**
11173
11120
  * @generated from message blueapi.cover.v1.MergeSuggestedUnitsResponse
@@ -11184,7 +11131,7 @@ export type MergeSuggestedUnitsResponse = Message<"blueapi.cover.v1.MergeSuggest
11184
11131
  * Use `create(MergeSuggestedUnitsResponseSchema)` to create a new message.
11185
11132
  */
11186
11133
  export const MergeSuggestedUnitsResponseSchema: GenMessage<MergeSuggestedUnitsResponse> = /*@__PURE__*/
11187
- messageDesc(file_cover_v1_cover, 342);
11134
+ messageDesc(file_cover_v1_cover, 344);
11188
11135
 
11189
11136
  /**
11190
11137
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedRequest
@@ -11201,7 +11148,7 @@ export type CreateUnitFromSuggestedRequest = Message<"blueapi.cover.v1.CreateUni
11201
11148
  * Use `create(CreateUnitFromSuggestedRequestSchema)` to create a new message.
11202
11149
  */
11203
11150
  export const CreateUnitFromSuggestedRequestSchema: GenMessage<CreateUnitFromSuggestedRequest> = /*@__PURE__*/
11204
- messageDesc(file_cover_v1_cover, 343);
11151
+ messageDesc(file_cover_v1_cover, 345);
11205
11152
 
11206
11153
  /**
11207
11154
  * @generated from message blueapi.cover.v1.CreateUnitFromSuggestedResponse
@@ -11218,7 +11165,7 @@ export type CreateUnitFromSuggestedResponse = Message<"blueapi.cover.v1.CreateUn
11218
11165
  * Use `create(CreateUnitFromSuggestedResponseSchema)` to create a new message.
11219
11166
  */
11220
11167
  export const CreateUnitFromSuggestedResponseSchema: GenMessage<CreateUnitFromSuggestedResponse> = /*@__PURE__*/
11221
- messageDesc(file_cover_v1_cover, 344);
11168
+ messageDesc(file_cover_v1_cover, 346);
11222
11169
 
11223
11170
  /**
11224
11171
  * @generated from message blueapi.cover.v1.ListSharedResourcesRequest
@@ -11231,7 +11178,7 @@ export type ListSharedResourcesRequest = Message<"blueapi.cover.v1.ListSharedRes
11231
11178
  * Use `create(ListSharedResourcesRequestSchema)` to create a new message.
11232
11179
  */
11233
11180
  export const ListSharedResourcesRequestSchema: GenMessage<ListSharedResourcesRequest> = /*@__PURE__*/
11234
- messageDesc(file_cover_v1_cover, 345);
11181
+ messageDesc(file_cover_v1_cover, 347);
11235
11182
 
11236
11183
  /**
11237
11184
  * @generated from message blueapi.cover.v1.ListSharedResourcesResponse
@@ -11248,7 +11195,7 @@ export type ListSharedResourcesResponse = Message<"blueapi.cover.v1.ListSharedRe
11248
11195
  * Use `create(ListSharedResourcesResponseSchema)` to create a new message.
11249
11196
  */
11250
11197
  export const ListSharedResourcesResponseSchema: GenMessage<ListSharedResourcesResponse> = /*@__PURE__*/
11251
- messageDesc(file_cover_v1_cover, 346);
11198
+ messageDesc(file_cover_v1_cover, 348);
11252
11199
 
11253
11200
  /**
11254
11201
  * @generated from message blueapi.cover.v1.CreateSharedResourcesRequest
@@ -11292,7 +11239,7 @@ export type CreateSharedResourcesRequest = Message<"blueapi.cover.v1.CreateShare
11292
11239
  * Use `create(CreateSharedResourcesRequestSchema)` to create a new message.
11293
11240
  */
11294
11241
  export const CreateSharedResourcesRequestSchema: GenMessage<CreateSharedResourcesRequest> = /*@__PURE__*/
11295
- messageDesc(file_cover_v1_cover, 347);
11242
+ messageDesc(file_cover_v1_cover, 349);
11296
11243
 
11297
11244
  /**
11298
11245
  * @generated from message blueapi.cover.v1.CreateSharedResourcesResponse
@@ -11309,7 +11256,7 @@ export type CreateSharedResourcesResponse = Message<"blueapi.cover.v1.CreateShar
11309
11256
  * Use `create(CreateSharedResourcesResponseSchema)` to create a new message.
11310
11257
  */
11311
11258
  export const CreateSharedResourcesResponseSchema: GenMessage<CreateSharedResourcesResponse> = /*@__PURE__*/
11312
- messageDesc(file_cover_v1_cover, 348);
11259
+ messageDesc(file_cover_v1_cover, 350);
11313
11260
 
11314
11261
  /**
11315
11262
  * @generated from message blueapi.cover.v1.GetSharedResourcesRequest
@@ -11328,7 +11275,7 @@ export type GetSharedResourcesRequest = Message<"blueapi.cover.v1.GetSharedResou
11328
11275
  * Use `create(GetSharedResourcesRequestSchema)` to create a new message.
11329
11276
  */
11330
11277
  export const GetSharedResourcesRequestSchema: GenMessage<GetSharedResourcesRequest> = /*@__PURE__*/
11331
- messageDesc(file_cover_v1_cover, 349);
11278
+ messageDesc(file_cover_v1_cover, 351);
11332
11279
 
11333
11280
  /**
11334
11281
  * @generated from message blueapi.cover.v1.GetSharedResourcesResponse
@@ -11345,7 +11292,7 @@ export type GetSharedResourcesResponse = Message<"blueapi.cover.v1.GetSharedReso
11345
11292
  * Use `create(GetSharedResourcesResponseSchema)` to create a new message.
11346
11293
  */
11347
11294
  export const GetSharedResourcesResponseSchema: GenMessage<GetSharedResourcesResponse> = /*@__PURE__*/
11348
- messageDesc(file_cover_v1_cover, 350);
11295
+ messageDesc(file_cover_v1_cover, 352);
11349
11296
 
11350
11297
  /**
11351
11298
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesRequest
@@ -11406,7 +11353,7 @@ export type UpdateSharedResourcesRequest = Message<"blueapi.cover.v1.UpdateShare
11406
11353
  * Use `create(UpdateSharedResourcesRequestSchema)` to create a new message.
11407
11354
  */
11408
11355
  export const UpdateSharedResourcesRequestSchema: GenMessage<UpdateSharedResourcesRequest> = /*@__PURE__*/
11409
- messageDesc(file_cover_v1_cover, 351);
11356
+ messageDesc(file_cover_v1_cover, 353);
11410
11357
 
11411
11358
  /**
11412
11359
  * @generated from message blueapi.cover.v1.UpdateSharedResourcesResponse
@@ -11423,7 +11370,7 @@ export type UpdateSharedResourcesResponse = Message<"blueapi.cover.v1.UpdateShar
11423
11370
  * Use `create(UpdateSharedResourcesResponseSchema)` to create a new message.
11424
11371
  */
11425
11372
  export const UpdateSharedResourcesResponseSchema: GenMessage<UpdateSharedResourcesResponse> = /*@__PURE__*/
11426
- messageDesc(file_cover_v1_cover, 352);
11373
+ messageDesc(file_cover_v1_cover, 354);
11427
11374
 
11428
11375
  /**
11429
11376
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesRequest
@@ -11442,7 +11389,7 @@ export type DeleteSharedResourcesRequest = Message<"blueapi.cover.v1.DeleteShare
11442
11389
  * Use `create(DeleteSharedResourcesRequestSchema)` to create a new message.
11443
11390
  */
11444
11391
  export const DeleteSharedResourcesRequestSchema: GenMessage<DeleteSharedResourcesRequest> = /*@__PURE__*/
11445
- messageDesc(file_cover_v1_cover, 353);
11392
+ messageDesc(file_cover_v1_cover, 355);
11446
11393
 
11447
11394
  /**
11448
11395
  * @generated from message blueapi.cover.v1.DeleteSharedResourcesResponse
@@ -11459,7 +11406,7 @@ export type DeleteSharedResourcesResponse = Message<"blueapi.cover.v1.DeleteShar
11459
11406
  * Use `create(DeleteSharedResourcesResponseSchema)` to create a new message.
11460
11407
  */
11461
11408
  export const DeleteSharedResourcesResponseSchema: GenMessage<DeleteSharedResourcesResponse> = /*@__PURE__*/
11462
- messageDesc(file_cover_v1_cover, 354);
11409
+ messageDesc(file_cover_v1_cover, 356);
11463
11410
 
11464
11411
  /**
11465
11412
  * @generated from message blueapi.cover.v1.ListUnitMetricsRequest
@@ -11492,7 +11439,7 @@ export type ListUnitMetricsRequest = Message<"blueapi.cover.v1.ListUnitMetricsRe
11492
11439
  * Use `create(ListUnitMetricsRequestSchema)` to create a new message.
11493
11440
  */
11494
11441
  export const ListUnitMetricsRequestSchema: GenMessage<ListUnitMetricsRequest> = /*@__PURE__*/
11495
- messageDesc(file_cover_v1_cover, 355);
11442
+ messageDesc(file_cover_v1_cover, 357);
11496
11443
 
11497
11444
  /**
11498
11445
  * @generated from message blueapi.cover.v1.ListUnitMetricsResponse
@@ -11509,7 +11456,7 @@ export type ListUnitMetricsResponse = Message<"blueapi.cover.v1.ListUnitMetricsR
11509
11456
  * Use `create(ListUnitMetricsResponseSchema)` to create a new message.
11510
11457
  */
11511
11458
  export const ListUnitMetricsResponseSchema: GenMessage<ListUnitMetricsResponse> = /*@__PURE__*/
11512
- messageDesc(file_cover_v1_cover, 356);
11459
+ messageDesc(file_cover_v1_cover, 358);
11513
11460
 
11514
11461
  /**
11515
11462
  * @generated from message blueapi.cover.v1.CreateUnitMetricRequest
@@ -11553,7 +11500,7 @@ export type CreateUnitMetricRequest = Message<"blueapi.cover.v1.CreateUnitMetric
11553
11500
  * Use `create(CreateUnitMetricRequestSchema)` to create a new message.
11554
11501
  */
11555
11502
  export const CreateUnitMetricRequestSchema: GenMessage<CreateUnitMetricRequest> = /*@__PURE__*/
11556
- messageDesc(file_cover_v1_cover, 357);
11503
+ messageDesc(file_cover_v1_cover, 359);
11557
11504
 
11558
11505
  /**
11559
11506
  * @generated from message blueapi.cover.v1.CreateUnitMetricResponse
@@ -11570,7 +11517,7 @@ export type CreateUnitMetricResponse = Message<"blueapi.cover.v1.CreateUnitMetri
11570
11517
  * Use `create(CreateUnitMetricResponseSchema)` to create a new message.
11571
11518
  */
11572
11519
  export const CreateUnitMetricResponseSchema: GenMessage<CreateUnitMetricResponse> = /*@__PURE__*/
11573
- messageDesc(file_cover_v1_cover, 358);
11520
+ messageDesc(file_cover_v1_cover, 360);
11574
11521
 
11575
11522
  /**
11576
11523
  * @generated from message blueapi.cover.v1.GetUnitMetricRequest
@@ -11589,7 +11536,7 @@ export type GetUnitMetricRequest = Message<"blueapi.cover.v1.GetUnitMetricReques
11589
11536
  * Use `create(GetUnitMetricRequestSchema)` to create a new message.
11590
11537
  */
11591
11538
  export const GetUnitMetricRequestSchema: GenMessage<GetUnitMetricRequest> = /*@__PURE__*/
11592
- messageDesc(file_cover_v1_cover, 359);
11539
+ messageDesc(file_cover_v1_cover, 361);
11593
11540
 
11594
11541
  /**
11595
11542
  * @generated from message blueapi.cover.v1.GetUnitMetricResponse
@@ -11606,7 +11553,7 @@ export type GetUnitMetricResponse = Message<"blueapi.cover.v1.GetUnitMetricRespo
11606
11553
  * Use `create(GetUnitMetricResponseSchema)` to create a new message.
11607
11554
  */
11608
11555
  export const GetUnitMetricResponseSchema: GenMessage<GetUnitMetricResponse> = /*@__PURE__*/
11609
- messageDesc(file_cover_v1_cover, 360);
11556
+ messageDesc(file_cover_v1_cover, 362);
11610
11557
 
11611
11558
  /**
11612
11559
  * @generated from message blueapi.cover.v1.UpdateUnitMetricRequest
@@ -11667,7 +11614,7 @@ export type UpdateUnitMetricRequest = Message<"blueapi.cover.v1.UpdateUnitMetric
11667
11614
  * Use `create(UpdateUnitMetricRequestSchema)` to create a new message.
11668
11615
  */
11669
11616
  export const UpdateUnitMetricRequestSchema: GenMessage<UpdateUnitMetricRequest> = /*@__PURE__*/
11670
- messageDesc(file_cover_v1_cover, 361);
11617
+ messageDesc(file_cover_v1_cover, 363);
11671
11618
 
11672
11619
  /**
11673
11620
  * @generated from message blueapi.cover.v1.UpdateUnitMetricResponse
@@ -11684,7 +11631,7 @@ export type UpdateUnitMetricResponse = Message<"blueapi.cover.v1.UpdateUnitMetri
11684
11631
  * Use `create(UpdateUnitMetricResponseSchema)` to create a new message.
11685
11632
  */
11686
11633
  export const UpdateUnitMetricResponseSchema: GenMessage<UpdateUnitMetricResponse> = /*@__PURE__*/
11687
- messageDesc(file_cover_v1_cover, 362);
11634
+ messageDesc(file_cover_v1_cover, 364);
11688
11635
 
11689
11636
  /**
11690
11637
  * @generated from message blueapi.cover.v1.DeleteUnitMetricRequest
@@ -11703,7 +11650,7 @@ export type DeleteUnitMetricRequest = Message<"blueapi.cover.v1.DeleteUnitMetric
11703
11650
  * Use `create(DeleteUnitMetricRequestSchema)` to create a new message.
11704
11651
  */
11705
11652
  export const DeleteUnitMetricRequestSchema: GenMessage<DeleteUnitMetricRequest> = /*@__PURE__*/
11706
- messageDesc(file_cover_v1_cover, 363);
11653
+ messageDesc(file_cover_v1_cover, 365);
11707
11654
 
11708
11655
  /**
11709
11656
  * @generated from message blueapi.cover.v1.DeleteUnitMetricResponse
@@ -11720,7 +11667,7 @@ export type DeleteUnitMetricResponse = Message<"blueapi.cover.v1.DeleteUnitMetri
11720
11667
  * Use `create(DeleteUnitMetricResponseSchema)` to create a new message.
11721
11668
  */
11722
11669
  export const DeleteUnitMetricResponseSchema: GenMessage<DeleteUnitMetricResponse> = /*@__PURE__*/
11723
- messageDesc(file_cover_v1_cover, 364);
11670
+ messageDesc(file_cover_v1_cover, 366);
11724
11671
 
11725
11672
  /**
11726
11673
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetRequest
@@ -11764,7 +11711,7 @@ export type PreviewGoogleSheetRequest = Message<"blueapi.cover.v1.PreviewGoogleS
11764
11711
  * Use `create(PreviewGoogleSheetRequestSchema)` to create a new message.
11765
11712
  */
11766
11713
  export const PreviewGoogleSheetRequestSchema: GenMessage<PreviewGoogleSheetRequest> = /*@__PURE__*/
11767
- messageDesc(file_cover_v1_cover, 365);
11714
+ messageDesc(file_cover_v1_cover, 367);
11768
11715
 
11769
11716
  /**
11770
11717
  * @generated from message blueapi.cover.v1.PreviewGoogleSheetResponse
@@ -11790,7 +11737,7 @@ export type PreviewGoogleSheetResponse = Message<"blueapi.cover.v1.PreviewGoogle
11790
11737
  * Use `create(PreviewGoogleSheetResponseSchema)` to create a new message.
11791
11738
  */
11792
11739
  export const PreviewGoogleSheetResponseSchema: GenMessage<PreviewGoogleSheetResponse> = /*@__PURE__*/
11793
- messageDesc(file_cover_v1_cover, 366);
11740
+ messageDesc(file_cover_v1_cover, 368);
11794
11741
 
11795
11742
  /**
11796
11743
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessRequest
@@ -11810,7 +11757,7 @@ export type ConfirmGoogleSheetAccessRequest = Message<"blueapi.cover.v1.ConfirmG
11810
11757
  * Use `create(ConfirmGoogleSheetAccessRequestSchema)` to create a new message.
11811
11758
  */
11812
11759
  export const ConfirmGoogleSheetAccessRequestSchema: GenMessage<ConfirmGoogleSheetAccessRequest> = /*@__PURE__*/
11813
- messageDesc(file_cover_v1_cover, 367);
11760
+ messageDesc(file_cover_v1_cover, 369);
11814
11761
 
11815
11762
  /**
11816
11763
  * @generated from message blueapi.cover.v1.ConfirmGoogleSheetAccessResponse
@@ -11838,7 +11785,7 @@ export type ConfirmGoogleSheetAccessResponse = Message<"blueapi.cover.v1.Confirm
11838
11785
  * Use `create(ConfirmGoogleSheetAccessResponseSchema)` to create a new message.
11839
11786
  */
11840
11787
  export const ConfirmGoogleSheetAccessResponseSchema: GenMessage<ConfirmGoogleSheetAccessResponse> = /*@__PURE__*/
11841
- messageDesc(file_cover_v1_cover, 368);
11788
+ messageDesc(file_cover_v1_cover, 370);
11842
11789
 
11843
11790
  /**
11844
11791
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataRequest
@@ -11890,7 +11837,7 @@ export type GetCloudwatchMetadataRequest = Message<"blueapi.cover.v1.GetCloudwat
11890
11837
  * Use `create(GetCloudwatchMetadataRequestSchema)` to create a new message.
11891
11838
  */
11892
11839
  export const GetCloudwatchMetadataRequestSchema: GenMessage<GetCloudwatchMetadataRequest> = /*@__PURE__*/
11893
- messageDesc(file_cover_v1_cover, 369);
11840
+ messageDesc(file_cover_v1_cover, 371);
11894
11841
 
11895
11842
  /**
11896
11843
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse
@@ -11917,7 +11864,7 @@ export type GetCloudwatchMetadataResponse = Message<"blueapi.cover.v1.GetCloudwa
11917
11864
  * Use `create(GetCloudwatchMetadataResponseSchema)` to create a new message.
11918
11865
  */
11919
11866
  export const GetCloudwatchMetadataResponseSchema: GenMessage<GetCloudwatchMetadataResponse> = /*@__PURE__*/
11920
- messageDesc(file_cover_v1_cover, 370);
11867
+ messageDesc(file_cover_v1_cover, 372);
11921
11868
 
11922
11869
  /**
11923
11870
  * @generated from message blueapi.cover.v1.GetCloudwatchMetadataResponse.Dimension
@@ -11939,7 +11886,7 @@ export type GetCloudwatchMetadataResponse_Dimension = Message<"blueapi.cover.v1.
11939
11886
  * Use `create(GetCloudwatchMetadataResponse_DimensionSchema)` to create a new message.
11940
11887
  */
11941
11888
  export const GetCloudwatchMetadataResponse_DimensionSchema: GenMessage<GetCloudwatchMetadataResponse_Dimension> = /*@__PURE__*/
11942
- messageDesc(file_cover_v1_cover, 370, 0);
11889
+ messageDesc(file_cover_v1_cover, 372, 0);
11943
11890
 
11944
11891
  /**
11945
11892
  * Request message for GetDiscountPlan
@@ -12037,7 +11984,7 @@ export type GetDiscountPlanRequest = Message<"blueapi.cover.v1.GetDiscountPlanRe
12037
11984
  * Use `create(GetDiscountPlanRequestSchema)` to create a new message.
12038
11985
  */
12039
11986
  export const GetDiscountPlanRequestSchema: GenMessage<GetDiscountPlanRequest> = /*@__PURE__*/
12040
- messageDesc(file_cover_v1_cover, 371);
11987
+ messageDesc(file_cover_v1_cover, 373);
12041
11988
 
12042
11989
  /**
12043
11990
  * Response message for GetDiscountPlan
@@ -12061,7 +12008,7 @@ export type GetDiscountPlanResponse = Message<"blueapi.cover.v1.GetDiscountPlanR
12061
12008
  * Use `create(GetDiscountPlanResponseSchema)` to create a new message.
12062
12009
  */
12063
12010
  export const GetDiscountPlanResponseSchema: GenMessage<GetDiscountPlanResponse> = /*@__PURE__*/
12064
- messageDesc(file_cover_v1_cover, 372);
12011
+ messageDesc(file_cover_v1_cover, 374);
12065
12012
 
12066
12013
  /**
12067
12014
  * Request message for ListNonperformingRate
@@ -12110,7 +12057,7 @@ export type ListNonperformingRateRequest = Message<"blueapi.cover.v1.ListNonperf
12110
12057
  * Use `create(ListNonperformingRateRequestSchema)` to create a new message.
12111
12058
  */
12112
12059
  export const ListNonperformingRateRequestSchema: GenMessage<ListNonperformingRateRequest> = /*@__PURE__*/
12113
- messageDesc(file_cover_v1_cover, 373);
12060
+ messageDesc(file_cover_v1_cover, 375);
12114
12061
 
12115
12062
  /**
12116
12063
  * Response message for ListNonperformingRate
@@ -12129,7 +12076,7 @@ export type ListNonperformingRateResponse = Message<"blueapi.cover.v1.ListNonper
12129
12076
  * Use `create(ListNonperformingRateResponseSchema)` to create a new message.
12130
12077
  */
12131
12078
  export const ListNonperformingRateResponseSchema: GenMessage<ListNonperformingRateResponse> = /*@__PURE__*/
12132
- messageDesc(file_cover_v1_cover, 374);
12079
+ messageDesc(file_cover_v1_cover, 376);
12133
12080
 
12134
12081
  /**
12135
12082
  * @generated from message blueapi.cover.v1.ListNonperformingRateResponse.Nonperforming
@@ -12161,7 +12108,7 @@ export type ListNonperformingRateResponse_Nonperforming = Message<"blueapi.cover
12161
12108
  * Use `create(ListNonperformingRateResponse_NonperformingSchema)` to create a new message.
12162
12109
  */
12163
12110
  export const ListNonperformingRateResponse_NonperformingSchema: GenMessage<ListNonperformingRateResponse_Nonperforming> = /*@__PURE__*/
12164
- messageDesc(file_cover_v1_cover, 374, 0);
12111
+ messageDesc(file_cover_v1_cover, 376, 0);
12165
12112
 
12166
12113
  /**
12167
12114
  * Request message for ListUntaggedResources
@@ -12210,7 +12157,7 @@ export type ListUntaggedResourcesRequest = Message<"blueapi.cover.v1.ListUntagge
12210
12157
  * Use `create(ListUntaggedResourcesRequestSchema)` to create a new message.
12211
12158
  */
12212
12159
  export const ListUntaggedResourcesRequestSchema: GenMessage<ListUntaggedResourcesRequest> = /*@__PURE__*/
12213
- messageDesc(file_cover_v1_cover, 375);
12160
+ messageDesc(file_cover_v1_cover, 377);
12214
12161
 
12215
12162
  /**
12216
12163
  * Response message for ListUntaggedResources
@@ -12229,7 +12176,7 @@ export type ListUntaggedResourcesResponse = Message<"blueapi.cover.v1.ListUntagg
12229
12176
  * Use `create(ListUntaggedResourcesResponseSchema)` to create a new message.
12230
12177
  */
12231
12178
  export const ListUntaggedResourcesResponseSchema: GenMessage<ListUntaggedResourcesResponse> = /*@__PURE__*/
12232
- messageDesc(file_cover_v1_cover, 376);
12179
+ messageDesc(file_cover_v1_cover, 378);
12233
12180
 
12234
12181
  /**
12235
12182
  * @generated from message blueapi.cover.v1.ListUntaggedResourcesResponse.UntaggedResources
@@ -12271,7 +12218,7 @@ export type ListUntaggedResourcesResponse_UntaggedResources = Message<"blueapi.c
12271
12218
  * Use `create(ListUntaggedResourcesResponse_UntaggedResourcesSchema)` to create a new message.
12272
12219
  */
12273
12220
  export const ListUntaggedResourcesResponse_UntaggedResourcesSchema: GenMessage<ListUntaggedResourcesResponse_UntaggedResources> = /*@__PURE__*/
12274
- messageDesc(file_cover_v1_cover, 376, 0);
12221
+ messageDesc(file_cover_v1_cover, 378, 0);
12275
12222
 
12276
12223
  /**
12277
12224
  * Status of upload file
@@ -14306,6 +14253,16 @@ export const Cover: GenService<{
14306
14253
  input: typeof GetUserRequestSchema;
14307
14254
  output: typeof GetUserResponseSchema;
14308
14255
  },
14256
+ /**
14257
+ * Lists the roles and cost groups assigned to the authenticated user.
14258
+ *
14259
+ * @generated from rpc blueapi.cover.v1.Cover.GetMyRoles
14260
+ */
14261
+ getMyRoles: {
14262
+ methodKind: "unary";
14263
+ input: typeof GetMyRolesRequestSchema;
14264
+ output: typeof GetMyRolesResponseSchema;
14265
+ },
14309
14266
  }> = /*@__PURE__*/
14310
14267
  serviceDesc(file_cover_v1_cover, 0);
14311
14268