@raystack/proton 0.1.0-80ce71da5211fde064d83731a80cee2dffbdf84b → 0.1.0-80fc5ba1e538e38d5ca190386af1e69ee64584ee

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.
@@ -9,7 +9,7 @@ import { file_google_api_field_behavior } from "../../../google/api/field_behavi
9
9
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
10
  import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
11
11
  import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
12
- import type { AuditLog, AuditRecord, AuditRecordActor, AuditRecordResource, AuditRecordTarget, BillingAccount, BillingAccount_Address, BillingAccount_Balance, BillingAccount_Tax, BillingAccountDetails, BillingTransaction, CheckoutProductBody, CheckoutSession, CheckoutSetupBody, CheckoutSubscriptionBody, Domain, Feature, Group, Invitation, Invoice, JSONWebKey, KeyCredential, MetaSchema, Namespace, Organization, OrganizationKyc, PaymentMethod, Permission, Plan, Policy, Preference, PreferenceRequestBody, PreferenceTrait, Price, Product, Product_BehaviorConfig, Project, Relation, Resource, Role, RoleRequestBody, SecretCredential, ServiceUser, ServiceUserJWK, ServiceUserToken, Session, Subscription, Subscription_Phase, Usage, User } from "./models_pb";
12
+ import type { AuditRecord, AuditRecordActor, AuditRecordResource, AuditRecordTarget, BillingAccount, BillingAccount_Address, BillingAccount_Balance, BillingAccount_Tax, BillingAccountDetails, BillingTransaction, CheckoutProductBody, CheckoutSession, CheckoutSetupBody, CheckoutSubscriptionBody, Domain, Feature, Group, Invitation, Invoice, JSONWebKey, KeyCredential, MetaSchema, Namespace, Organization, OrganizationKyc, PaymentMethod, Permission, Plan, Policy, Preference, PreferenceRequestBody, PreferenceTrait, Price, Product, Product_BehaviorConfig, Project, Relation, Resource, Role, RoleRequestBody, SecretCredential, ServiceUser, ServiceUserJWK, ServiceUserToken, Session, Session_Meta, Subscription, Subscription_Phase, Usage, User } from "./models_pb";
13
13
  import { file_raystack_frontier_v1beta1_models } from "./models_pb";
14
14
  import { file_validate_validate } from "../../../validate/validate_pb";
15
15
  import type { JsonObject, Message } from "@bufbuild/protobuf";
@@ -18,7 +18,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
18
18
  * Describes the file raystack/frontier/v1beta1/frontier.proto.
19
19
  */
20
20
  export const file_raystack_frontier_v1beta1_frontier: GenFile = /*@__PURE__*/
21
- fileDesc("CihyYXlzdGFjay9mcm9udGllci92MWJldGExL2Zyb250aWVyLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIokCChlCaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFZW1haWwYAiABKAkSDQoFcGhvbmUYAyABKAkSQgoHYWRkcmVzcxgEIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQWRkcmVzcxIQCghjdXJyZW5jeRgFIAEoCRI/Cgh0YXhfZGF0YRgGIAMoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuVGF4EikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAQobQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARJMCgRib2R5GAIgASgLMjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5Qgj6QgWKAQIQARIPCgdvZmZsaW5lGAMgASgIImIKHENyZWF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudCKUAQoYR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQARIcChR3aXRoX3BheW1lbnRfbWV0aG9kcxgDIAEoCBIcChR3aXRoX2JpbGxpbmdfZGV0YWlscxgEIAEoCBIOCgZleHBhbmQYZSADKAki7QEKGUdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudBJBCg9wYXltZW50X21ldGhvZHMYAiADKAsyKC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBheW1lbnRNZXRob2QSSQoPYmlsbGluZ19kZXRhaWxzGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudERldGFpbHMikAEKG1VwZGF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABEkIKBGJvZHkYAyABKAsyNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50UmVxdWVzdEJvZHkiYgocVXBkYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZRJCCg9iaWxsaW5nX2FjY291bnQYASABKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50Ik4KHVJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiIAoeUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIkUKGkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiYgobTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IkwKG0RlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABIh4KHERlbGV0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiTAobRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHgocRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSJNChxEaXNhYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHwodRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiSQoYR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiXwoZR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZRJCCgdiYWxhbmNlGAEgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudC5CYWxhbmNlIlwKEUhhc1RyaWFsZWRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAESGAoHcGxhbl9pZBgDIAEoCUIH+kIEcgIQASIlChJIYXNUcmlhbGVkUmVzcG9uc2USDwoHdHJpYWxlZBgBIAEoCCKSAQoZQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKcHJvamVjdF9pZBgEIAEoCRIwCgZ1c2FnZXMYAyADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzYWdlIhwKGkNyZWF0ZUJpbGxpbmdVc2FnZVJlc3BvbnNlIvkBCh5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEi0KBXNpbmNlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICGAESLwoLc3RhcnRfcmFuZ2UYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWVuZF9yYW5nZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGZXhwYW5kGGUgAygJImYKH0xpc3RCaWxsaW5nVHJhbnNhY3Rpb25zUmVzcG9uc2USQwoMdHJhbnNhY3Rpb25zGAEgAygLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nVHJhbnNhY3Rpb24iWAofVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHAoKYmlsbGluZ19pZBgCIAEoCUII+kIFcgOwAQEiZgogVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVzcG9uc2USQgoHZGViaXRlZBgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQmFsYW5jZSJ3ChZHZXRTdWJzY3JpcHRpb25SZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiWAoXR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2USPQoMc3Vic2NyaXB0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24igQEKGExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESDQoFc3RhdGUYAyABKAkSDAoEcGxhbhgEIAEoCRIOCgZleHBhbmQYZSADKAkiWwoZTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZRI+Cg1zdWJzY3JpcHRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24ilQEKGVVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEhMKAmlkGAMgASgJQgf6QgRyAhABEikKCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJbChpVcGRhdGVTdWJzY3JpcHRpb25SZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbiKuAwoZQ2hhbmdlU3Vic2NyaXB0aW9uUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESEAoEcGxhbhgEIAEoCUICGAESFQoJaW1tZWRpYXRlGAUgASgIQgIYARJWCgtwbGFuX2NoYW5nZRgGIAEoCzI/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hhbmdlU3Vic2NyaXB0aW9uUmVxdWVzdC5QbGFuQ2hhbmdlSAASWAoMcGhhc2VfY2hhbmdlGAcgASgLMkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0LlBoYXNlQ2hhbmdlSAAaLQoKUGxhbkNoYW5nZRIMCgRwbGFuGAEgASgJEhEKCWltbWVkaWF0ZRgCIAEoCBouCgtQaGFzZUNoYW5nZRIfChdjYW5jZWxfdXBjb21pbmdfY2hhbmdlcxgBIAEoCEIICgZjaGFuZ2UiWgoaQ2hhbmdlU3Vic2NyaXB0aW9uUmVzcG9uc2USPAoFcGhhc2UYASABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbi5QaGFzZSJ9ChlDYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIRCglpbW1lZGlhdGUYBCABKAgiHAoaQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2UiEgoQTGlzdFBsYW5zUmVxdWVzdCJDChFMaXN0UGxhbnNSZXNwb25zZRIuCgVwbGFucxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiJ/Ch5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlcXVlc3QSDgoGb3JnX2lkGAEgASgJEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCnByb2plY3RfaWQYBCABKAkSGAoHZmVhdHVyZRgDIAEoCUIH+kIEcgIQASIxCh9DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCCJRCh1DaGVja0NyZWRpdEVudGl0bGVtZW50UmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoGYW1vdW50GAIgASgDQgf6QgQiAiAAIjAKHkNoZWNrQ3JlZGl0RW50aXRsZW1lbnRSZXNwb25zZRIOCgZzdGF0dXMYASABKAgi0gIKFUNyZWF0ZUNoZWNrb3V0UmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEwoLc3VjY2Vzc191cmwYAyABKAkSEgoKY2FuY2VsX3VybBgEIAEoCRJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keRJACgpzZXR1cF9ib2R5GAwgASgLMiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNldHVwQm9keSJeChZDcmVhdGVDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiJQChRMaXN0Q2hlY2tvdXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQEiXgoVTGlzdENoZWNrb3V0c1Jlc3BvbnNlEkUKEWNoZWNrb3V0X3Nlc3Npb25zGAEgAygLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNlc3Npb24iYwoSR2V0Q2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQASJbChNHZXRDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiL7AgoSUHJvZHVjdFJlcXVlc3RCb2R5EhUKBG5hbWUYASABKAlCB/pCBHICEAMSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHcGxhbl9pZBgEIAEoCRIwCgZwcmljZXMYBSADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByaWNlEjQKCGJlaGF2aW9yGAggASgJQiL6Qh9yHVIFYmFzaWNSB2NyZWRpdHNSCHBlcl9zZWF00AEBEjQKCGZlYXR1cmVzGAkgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlEkoKD2JlaGF2aW9yX2NvbmZpZxgKIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdC5CZWhhdmlvckNvbmZpZxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgHEAgiXQoUQ3JlYXRlUHJvZHVjdFJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdFJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIoChFHZXRQcm9kdWN0UmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIVChNMaXN0UHJvZHVjdHNSZXF1ZXN0IkwKFExpc3RQcm9kdWN0c1Jlc3BvbnNlEjQKCHByb2R1Y3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0ImgKFFVwZGF0ZVByb2R1Y3RSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3RSZXF1ZXN0Qm9keSJMChVVcGRhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCJ6ChJGZWF0dXJlUmVxdWVzdEJvZHkSFQoEbmFtZRgBIAEoCUIH+kIEcgIQAxINCgV0aXRsZRgCIAEoCRITCgtwcm9kdWN0X2lkcxgDIAMoCRIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXQoUQ3JlYXRlRmVhdHVyZVJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSIoChFHZXRGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSJoChRVcGRhdGVGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlUmVxdWVzdEJvZHkiTAoVVXBkYXRlRmVhdHVyZVJlc3BvbnNlEjMKB2ZlYXR1cmUYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUiFQoTTGlzdEZlYXR1cmVzUmVxdWVzdCJMChRMaXN0RmVhdHVyZXNSZXNwb25zZRI0CghmZWF0dXJlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSKDAgoPUGxhblJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNAoIcHJvZHVjdHMYBCADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QSLwoIaW50ZXJ2YWwYBSABKAlCHfpCGnIYUgNkYXlSBHdlZWtSBW1vbnRoUgR5ZWFyEhgKEG9uX3N0YXJ0X2NyZWRpdHMYBiABKAMSEgoKdHJpYWxfZGF5cxgHIAEoAxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoRQ3JlYXRlUGxhblJlcXVlc3QSQgoEYm9keRgBIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhblJlcXVlc3RCb2R5Qgj6QgWKAQIQASJDChJDcmVhdGVQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiIlCg5HZXRQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJACg9HZXRQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiJiChFVcGRhdGVQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QbGFuUmVxdWVzdEJvZHkiQwoSVXBkYXRlUGxhblJlc3BvbnNlEi0KBHBsYW4YASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4ifAoTTGlzdEludm9pY2VzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESGwoTbm9uemVyb19hbW91bnRfb25seRgDIAEoCBIOCgZleHBhbmQYZSADKAkiTAoUTGlzdEludm9pY2VzUmVzcG9uc2USNAoIaW52b2ljZXMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludm9pY2UiVQoZR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQEiUQoaR2V0VXBjb21pbmdJbnZvaWNlUmVzcG9uc2USMwoHaW52b2ljZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZSIQCg5HZXRKV0tzUmVxdWVzdCJGCg9HZXRKV0tzUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSITChFBdXRoTG9nb3V0UmVxdWVzdCIUChJBdXRoTG9nb3V0UmVzcG9uc2UieQoTQXV0aENhbGxiYWNrUmVxdWVzdBIVCg1zdHJhdGVneV9uYW1lGAEgASgJEg0KBXN0YXRlGAIgASgJEgwKBGNvZGUYAyABKAkSLgoNc3RhdGVfb3B0aW9ucxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiFgoUQXV0aENhbGxiYWNrUmVzcG9uc2Ui3gUKE0F1dGhlbnRpY2F0ZVJlcXVlc3QSZAoNc3RyYXRlZ3lfbmFtZRgBIAEoCUJNkkFKMkhOYW1lIG9mIHRoZSBzdHJhdGVneSB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOiogYGdvb2dsZWASagoQcmVkaXJlY3Rfb25zdGFydBgCIAEoCEJQkkFNMktJZiBzZXQgdG8gdHJ1ZSwgbG9jYXRpb24gaGVhZGVyIHdpbGwgYmUgc2V0IGZvciByZWRpcmVjdCB0byBzdGFydCBhdXRoIGZsb3cSeAoJcmV0dXJuX3RvGAMgASgJQmWSQWIyYFVSTCB0byByZWRpcmVjdCBhZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOipgImh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20iYBJuCgVlbWFpbBgEIAEoCUJfkkFcMlpFbWFpbCBvZiB0aGUgdXNlciB0byBhdXRoZW50aWNhdGUuIFVzZWQgZm9yIG1hZ2ljIGxpbmtzLjxici8+ICpFeGFtcGxlOipgZXhhbXBsZUBhY21lLm9yZ2ASigIKDGNhbGxiYWNrX3VybBgFIAEoCULzAZJB7wEy7AFIb3N0IHdoaWNoIHNob3VsZCBoYW5kbGUgdGhlIGNhbGwgdG8gZmluaXNoIGF1dGhlbnRpY2F0aW9uIGZsb3csIGZvciBtb3N0IGNhc2VzIGl0IGNvdWxkIGJlIGhvc3Qgb2YgZnJvbnRpZXIgYnV0IGluIGNhc2Ugb2YgcHJveGllcywgdGhpcyB3aWxsIGJlIHByb3h5IHB1YmxpYyBlbmRwb2ludC48YnIvPiAqRXhhbXBsZToqYGh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20vdjFiZXRhMS9hdXRoL2NhbGxiYWNrYCJnChRBdXRoZW50aWNhdGVSZXNwb25zZRIQCghlbmRwb2ludBgBIAEoCRINCgVzdGF0ZRgCIAEoCRIuCg1zdGF0ZV9vcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJFCgxBdXRoU3RyYXRlZ3kSDAoEbmFtZRgBIAEoCRInCgZwYXJhbXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IhsKGUxpc3RBdXRoU3RyYXRlZ2llc1JlcXVlc3QiWQoaTGlzdEF1dGhTdHJhdGVnaWVzUmVzcG9uc2USOwoKc3RyYXRlZ2llcxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aFN0cmF0ZWd5ImMKEEF1dGhUb2tlblJlcXVlc3QSEgoKZ3JhbnRfdHlwZRgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSFQoNY2xpZW50X3NlY3JldBgDIAEoCRIRCglhc3NlcnRpb24YBCABKAkiPQoRQXV0aFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhIKCnRva2VuX3R5cGUYAiABKAki8wsKD1VzZXJSZXF1ZXN0Qm9keRLGAgoEbmFtZRgBIAEoCUK3ApJBjAIyiQJUaGUgbmFtZSBvZiB0aGUgdXNlci4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYW5kIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlci4gSWYgbm90IHByb3ZpZGVkLCBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIG5hbWUgZnJvbSB0aGUgdXNlciBlbWFpbC4g+kIkciIyIF4oW2EtekEtWl1bYS16QS1aMC05LV9dezMsNjR9KT8kEpwBCgVlbWFpbBgCIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABEtgDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCrAOSQagDMqUDTWV0YWRhdGEgb2JqZWN0IGZvciB1c2VycyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBwcmUtZGVmaW5lZCBpbiBVc2VyIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHN1Y2ggYXMgbGFiZWwsIGRlc2NyaXB0aW9uIGV0Yy4gQnkgZGVmYXVsdCB0aGUgdXNlciBtZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIGZvciB0aGUgdXNlci4gVXBkYXRlIHRoZSBzYW1lIHRvIGFkZCBtb3JlIGZpZWxkcyB0byB0aGUgdXNlciBtZXRhZGF0YSBvYmplY3QuIDxici8+KkV4YW1wbGU6KmB7ImxhYmVsIjogeyJrZXkxIjogInZhbHVlMSJ9LCAiZGVzY3JpcHRpb24iOiAiVXNlciBEZXNjcmlwdGlvbiJ9YBKpAQoFdGl0bGUYBCABKAlCmQGSQZUBMpIBVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPipFeGFtcGxlOipgIkpvaG4gRG9lImAS8AIKBmF2YXRhchgFIAEoCULfApJBjwIy0wFUaGUgYXZhdGFyIGlzIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGEgb2YgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIFRoZSBpbWFnZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIwMEtCLiBTaG91bGQgZm9sbG93IHRoZSByZWdleCBwYXR0ZXJuIGBeZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJGAuSjciZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUEi+kJJckcYkKEPMj5eZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJNABASLHAwoQTGlzdFVzZXJzUmVxdWVzdBJlCglwYWdlX3NpemUYASABKAVCUpJBRjJEVGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgMTAwMC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESQQoHa2V5d29yZBgDIAEoCUIwkkEtMitUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yIGluIG5hbWUgb3IgZW1haWwuEjwKBm9yZ19pZBgEIAEoCUIskkEpMidUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciB1c2VycyBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlIKEUxpc3RVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIlcKEUNyZWF0ZVVzZXJSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keUII+kIFigECEAEiQwoSQ3JlYXRlVXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiOwoeTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEg0KBXN0YXRlGAIgASgJIqcBCh9MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlc3BvbnNlEj4KDW9yZ2FuaXphdGlvbnMYASADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbhJEChNqb2luYWJsZV92aWFfZG9tYWluGAIgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iNgolTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVxdWVzdBINCgVzdGF0ZRgBIAEoCSKuAQomTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uEkQKE2pvaW5hYmxlX3ZpYV9kb21haW4YAiADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiInChlMaXN0UHJvamVjdHNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIlIKGkxpc3RQcm9qZWN0c0J5VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0IrMCCiBMaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIVCg1ub25faW5oZXJpdGVkGAMgASgIEhkKEXdpdGhfbWVtYmVyX2NvdW50GAQgASgIEmUKCXBhZ2Vfc2l6ZRgFIAEoBUJSkkFGMkRUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyAxMDAwLvpCBhoEKAFAARJMCghwYWdlX251bRgGIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASL+AQohTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0El0KDGFjY2Vzc19wYWlycxgCIAMoCzJHLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlLkFjY2Vzc1BhaXISDQoFY291bnQYAyABKAUaNQoKQWNjZXNzUGFpchISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3Blcm1pc3Npb25zGAIgAygJIh8KEUVuYWJsZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhQKEkVuYWJsZVVzZXJSZXNwb25zZSIgChJEaXNhYmxlVXNlclJlcXVlc3QSCgoCaWQYASABKAkiFQoTRGlzYWJsZVVzZXJSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiQAoPR2V0VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiFwoVR2V0Q3VycmVudFVzZXJSZXF1ZXN0IoQBChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISOwoLc2VydmljZXVzZXIYAiABKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIkMKElVwZGF0ZVVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIkoKGVVwZGF0ZUN1cnJlbnRVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlciJZChFVcGRhdGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCRI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyUmVxdWVzdEJvZHkiHAoOR2V0VXNlclJlcXVlc3QSCgoCaWQYASABKAkiYwocTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCLhAQodTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVzcG9uc2USMAoGZ3JvdXBzGAEgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cBJZCgxhY2Nlc3NfcGFpcnMYAiADKAsyQy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1Jlc3BvbnNlLkFjY2Vzc1BhaXIaMwoKQWNjZXNzUGFpchIQCghncm91cF9pZBgBIAEoCRITCgtwZXJtaXNzaW9ucxgCIAMoCSLYAQoVTGlzdFVzZXJHcm91cHNSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IGdyb3VwcyBmb3IuEnoKBm9yZ19pZBgDIAEoCUJqkkFnMmVUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciBncm91cHMgYnkuIElmIG5vdCBwcm92aWRlZCwgZ3JvdXBzIGZyb20gYWxsIG9yZ2FuaXphdGlvbnMgYXJlIHJldHVybmVkLkoECAIQAyJKChZMaXN0VXNlckdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiVAoYVXBkYXRlQ3VycmVudFVzZXJSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keSJaChpMaXN0VXNlckludml0YXRpb25zUmVxdWVzdBI8CgJpZBgBIAEoCUIwkkEtMitUaGUgdXNlciBlbWFpbCB0byBsaXN0IHRoZSBpbnZpdGF0aW9ucyBmb3IuIlkKG0xpc3RVc2VySW52aXRhdGlvbnNSZXNwb25zZRI6CgtpbnZpdGF0aW9ucxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52aXRhdGlvbiIjCiFMaXN0Q3VycmVudFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QilwEKIkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24SNQoEb3JncxgCIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIrYBChdMaXN0U2VydmljZVVzZXJzUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBMTIvVGhlIG9yZ2FuaXphdGlvbiBJRCB0byBmaWx0ZXIgc2VydmljZSB1c2VycyBieS7iQQEC+kIEcgIQAxJKCgVzdGF0ZRgCIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4iWAoYTGlzdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIikQEKFlNlcnZpY2VVc2VyUmVxdWVzdEJvZHkSTAoFdGl0bGUYASABKAlCPZJBOjInVXNlciBmcmllbmRseSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHVzZXIuSg8iT3JkZXIgU2VydmljZSISKQoIbWV0YWRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrYBChhDcmVhdGVTZXJ2aWNlVXNlclJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJSZXF1ZXN0Qm9keRJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiWAoZQ3JlYXRlU2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIirgEKFUdldFNlcnZpY2VVc2VyUmVxdWVzdBI6CgJpZBgBIAEoCUIukkErMilUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZ2V0LhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiVQoWR2V0U2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIi9QEKGFVwZGF0ZVNlcnZpY2VVc2VyUmVxdWVzdBI9CgJpZBgBIAEoCUIxkkEuMixUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gdXBkYXRlLhI/CgRib2R5GAIgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlclJlcXVlc3RCb2R5ElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJYChlVcGRhdGVTZXJ2aWNlVXNlclJlc3BvbnNlEjsKC3NlcnZpY2V1c2VyGAEgASgLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciK0AQoYRGVsZXRlU2VydmljZVVzZXJSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBkZWxldGUuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIbChlEZWxldGVTZXJ2aWNlVXNlclJlc3BvbnNlItABChtDcmVhdGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGNyZWF0ZSBhIGtleSBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJVChxDcmVhdGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlEjUKA2tleRgBIAEoCzIoLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuS2V5Q3JlZGVudGlhbCLyAQoYR2V0U2VydmljZVVzZXJKV0tSZXF1ZXN0EkQKAmlkGAEgASgJQjiSQTUyM1RoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBnZXQgYSBrZXkgZm9yLhI1CgZrZXlfaWQYAiABKAlCJZJBIjIgVGhlIHVuaXF1ZSBJRCBvZiB0aGUga2V5IHRvIGdldC4SWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlAKGUdldFNlcnZpY2VVc2VySldLUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSK9AQoaTGlzdFNlcnZpY2VVc2VySldLc1JlcXVlc3QSRAoCaWQYASABKAlCOJJBNTIzVGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qga2V5cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJWChtMaXN0U2VydmljZVVzZXJKV0tzUmVzcG9uc2USNwoEa2V5cxgBIAMoCzIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJKV0si+wEKG0RlbGV0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBJHCgJpZBgBIAEoCUI7kkE4MjZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZGVsZXRlIGEga2V5IGZvci4SOAoGa2V5X2lkGAIgASgJQiiSQSUyI1RoZSB1bmlxdWUgSUQgb2YgdGhlIGtleSB0byBkZWxldGUuElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIeChxEZWxldGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlItcBCiJDcmVhdGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0EkcKAmlkGAEgASgJQjuSQTgyNlRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSBrZXkgZm9yLhINCgV0aXRsZRgCIAEoCRJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiYgojQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2USOwoGc2VjcmV0GAEgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWNyZXRDcmVkZW50aWFsIscBCiFMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qgc2VjcmV0cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJiCiJMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEjwKB3NlY3JldHMYASADKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlY3JldENyZWRlbnRpYWwiiwIKIkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QSSgoCaWQYASABKAlCPpJBOzI5VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHNlY3JldCBmb3IuEj4KCXNlY3JldF9pZBgCIAEoCUIrkkEoMiZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZWNyZXQgdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiJQojRGVsZXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2Ui1AEKHUNyZWF0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0EkkKAmlkGAEgASgJQj2SQToyOFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSB0b2tlbiBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJcCh5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVzcG9uc2USOgoFdG9rZW4YASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyVG9rZW4iwQEKHExpc3RTZXJ2aWNlVXNlclRva2Vuc1JlcXVlc3QSRgoCaWQYASABKAlCOpJBNzI1VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgdG9rZW5zIGZvci4SWQoGb3JnX2lkGAIgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlwKHUxpc3RTZXJ2aWNlVXNlclRva2Vuc1Jlc3BvbnNlEjsKBnRva2VucxgBIAMoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJUb2tlbiKDAgodRGVsZXRlU2VydmljZVVzZXJUb2tlblJlcXVlc3QSSQoCaWQYASABKAlCPZJBOjI4VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHRva2VuIGZvci4SPAoIdG9rZW5faWQYAiABKAlCKpJBJzIlVGhlIHVuaXF1ZSBJRCBvZiB0aGUgdG9rZW4gdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiIAoeRGVsZXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIt8BCh5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1JlcXVlc3QSSAoCaWQYASABKAlCPJJBOTI3VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgcHJvamVjdHMgZm9yLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMSGAoQd2l0aF9wZXJtaXNzaW9ucxgDIAMoCSLrAQofTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdBJbCgxhY2Nlc3NfcGFpcnMYAiADKAsyRS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2UuQWNjZXNzUGFpcho1CgpBY2Nlc3NQYWlyEhIKCnByb2plY3RfaWQYASABKAkSEwoLcGVybWlzc2lvbnMYAiADKAki7QEKHUxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXF1ZXN0EikKBm9yZ19pZBgCIAEoCUIZ+kIWchQQAzIQXltBLVphLXowLTlfLV0rJBJXCgVzdGF0ZRgDIAEoCUJIkkFFMkNUaGUgc3RhdGUgb2YgdGhlIGdyb3VwIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEhEKCWdyb3VwX2lkcxgEIAMoCRIUCgx3aXRoX21lbWJlcnMYBSABKAgSGQoRd2l0aF9tZW1iZXJfY291bnQYBiABKAhKBAgBEAIiUgoeTGlzdE9yZ2FuaXphdGlvbkdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAirwEKHUNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keUII+kIFigECEAESSgoGb3JnX2lkGAIgASgJQjqSQTMyMVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHJvbGUgYmVsb25ncyB0by7iQQECIk8KHkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkEKGkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyJMChtHZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ1Ch1VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZvcmdfaWQYAyABKAkSOAoEYm9keRgCIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZVJlcXVlc3RCb2R5Ik8KHlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjEKEExpc3RSb2xlc1JlcXVlc3QSDQoFc3RhdGUYASABKAkSDgoGc2NvcGVzGAIgAygJIkMKEUxpc3RSb2xlc1Jlc3BvbnNlEi4KBXJvbGVzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIlYKHExpc3RPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEg0KBXN0YXRlGAIgASgJEg4KBnNjb3BlcxgDIAMoCSJPCh1MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZRIuCgVyb2xlcxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJECh1EZWxldGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiIAoeRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqsKChdPcmdhbml6YXRpb25SZXF1ZXN0Qm9keRL7AQoEbmFtZRgBIAEoCULsAZJBzQEyygFUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPipFeGFtcGxlOipgImZyb250aWVyLW9yZzEtYWNtZSJg4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErIBCgV0aXRsZRgCIAEoCUKiAZJBngEymwFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ2FuaXphdGlvbi4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS48YnIvPiAqRXhhbXBsZSo6IGAiQWNtZSBJbmMiYBLpAwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qr0DkkG5AzK2A01ldGFkYXRhIG9iamVjdCBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hLiBUaGUgbWV0YWRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFyYml0cmFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JnYW5pemF0aW9uIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBPcmdhbml6YXRpb24gTWV0YXNjaGVtYSBjb250YWlucyBsYWJlbHMgYW5kIGRlc2NyaXB0b24gZmllbGRzLiBVcGRhdGUgdGhlIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIHRvIGFkZCBtb3JlIGZpZWxkcy4gPGJyLz4qRXhhbXBsZSo6YHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXphdGlvbiBkZXNjcmlwdGlvbiJ9YBLwAgoGYXZhdGFyGAQgASgJQt8CkkGPAjLTAVRoZSBhdmF0YXIgaXMgYmFzZTY0IGVuY29kZWQgaW1hZ2UgZGF0YSBvZiB0aGUgdXNlci4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gVGhlIGltYWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gMjAwS0IuIFNob3VsZCBmb2xsb3cgdGhlIHJlZ2V4IHBhdHRlcm4gYF5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSskYC5KNyJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQSL6QklyRxiQoQ8yPl5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSsk0AEBIukDChhMaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QSxwEKB3VzZXJfaWQYASABKAlCtQGSQbEBMq4BVGhlIHVzZXIgSUQgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgdXNlZCB0byBsaXN0IGFsbCB0aGUgb3JnYW5pemF0aW9ucyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mLiBPdGhlcndpc2UsIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiB0aGUgRnJvbnRpZXIgaW5zdGFuY2Ugd2lsbCBiZSBsaXN0ZWQuEk4KBXN0YXRlGAIgASgJQj+SQTwyOlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYC4SZQoJcGFnZV9zaXplGAMgASgFQlKSQUYyRFRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDEwMDAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAQgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIlsKGUxpc3RPcmdhbml6YXRpb25zUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uImcKGUNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QSSgoEYm9keRgBIAEoCzIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uUmVxdWVzdEJvZHlCCPpCBYoBAhABIlsKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlgKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlsKGlVwZGF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIiQKFkdldE9yZ2FuaXphdGlvblJlcXVlc3QSCgoCaWQYASABKAkiaQoZVXBkYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRJACgRib2R5GAIgASgLMjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keSI0Ch1MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJQCh5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIifAocTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIdChFwZXJtaXNzaW9uX2ZpbHRlchgCIAEoCUICGAESEgoKd2l0aF9yb2xlcxgDIAEoCBIUCgxyb2xlX2ZpbHRlcnMYBCADKAki8wEKHUxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElUKCnJvbGVfcGFpcnMYAiADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlLlJvbGVQYWlyGksKCFJvbGVQYWlyEg8KB3VzZXJfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUifAobQWRkT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkgKCHVzZXJfaWRzGAIgAygJQjaSQTMyMUxpc3Qgb2YgdXNlciBJRHMgdG8gYmUgYWRkZWQgdG8gdGhlIG9yZ2FuaXphdGlvbi4iHgocQWRkT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSJFCh1SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAIgASgJIiAKHlJlbW92ZU9yZ2FuaXphdGlvblVzZXJSZXNwb25zZSI6CiNMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJkCiRMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USPAoMc2VydmljZXVzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciLcAQoiTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBODI2dW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdG8gd2hpY2ggdXNlciBpcyBpbnZpdGVk4kEBAhJlCgd1c2VyX2lkGAIgASgJQlSSQVEyT3VzZXJfaWQgZmlsdGVyIGlzIHRoZSBlbWFpbCBpZCBvZiB1c2VyIHdobyBhcmUgaW52aXRlZCBpbnNpZGUgdGhlIG9yZ2FuaXphdGlvbi4iYQojTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24ihgQKI0NyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Ek8KBm9yZ19pZBgBIAEoCUI/kkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB1c2VyIGlzIGludml0ZWTiQQECEqsBCgh1c2VyX2lkcxgCIAMoCUKYAZJBhgEygwF1c2VyX2lkIGlzIGVtYWlsIGlkIG9mIHVzZXIgd2hvIGFyZSBpbnZpdGVkIGluc2lkZSB0aGUgb3JnYW5pemF0aW9uLiBJZiB1c2VyIGlzIG5vdCByZWdpc3RlcmVkIG9uIHRoZSBwbGF0Zm9ybSwgaXQgd2lsbCBiZSBub3RpZmllZOJBAQL6QgeSAQQIARAKElYKCWdyb3VwX2lkcxgDIAMoCUJDkkFAMj5saXN0IG9mIGdyb3VwIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLhKHAQoIcm9sZV9pZHMYBCADKAlCdZJBcjJwbGlzdCBvZiByb2xlIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLiBSb2xlcyBhcmUgYmluZGVkIGF0IG9yZ2FuaXphdGlvbiBsZXZlbCBieSBkZWZhdWx0LiJiCiRDcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24iPgogR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIl4KIUdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZRI5CgppbnZpdGF0aW9uGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIkEKI0FjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCSImCiRBY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UiQQojRGVsZXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIpUCCh5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1JlcXVlc3QSbAoGb3JnX2lkGAEgASgJQlySQU4yTHVuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB3aGl0ZWxpc3RlZCBkb21haW5zIGFyZSB0byBiZSBsaXN0ZWTiQQEC+kIEcgIQAxKEAQoFc3RhdGUYAiABKAlCdZJBcjJwZmlsdGVyIHRvIGxpc3QgZG9tYWlucyBieSB0aGVpciBzdGF0ZSAocGVuZGluZy92ZXJpZmllZCkuIElmIG5vdCBwcm92aWRlZCwgYWxsIGRvbWFpbnMgZm9yIGFuIG9yZyB3aWxsIGJlIGxpc3RlZCJVCh9MaXN0T3JnYW5pemF0aW9uRG9tYWluc1Jlc3BvbnNlEjIKB2RvbWFpbnMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiKYAQogTGlzdE9yZ2FuaXphdGlvbnNCeURvbWFpblJlcXVlc3QSdAoEbmFtZRgBIAEoCUJmkkFYMlZkb21haW4gbmFtZSB0byBiZSB1c2VkIHRvIGxpc3QgYWxsIHRoZSBvcmdhbml6YXRpb25zIHRoYXQgaGF2ZSB0aGlzIGRvbWFpbiB3aGl0ZWxpc3RlZOJBAQL6QgRyAhADImMKIUxpc3RPcmdhbml6YXRpb25zQnlEb21haW5SZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iMgoXSm9pbk9yZ2FuaXphdGlvblJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADIhoKGEpvaW5Pcmdhbml6YXRpb25SZXNwb25zZSLSAQocR2V0T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJDCgJpZBgBIAEoCUI3kkEpMid1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAxJtCgZvcmdfaWQYAiABKAlCXZJBTzJNdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbiBpcyB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAyJSCh1HZXRPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZRIxCgZkb21haW4YASABKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiLiAQofQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJrCgZvcmdfaWQYASABKAlCW5JBTTJLdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbnMgYXJlIHRvIGJlIGFkZGVk4kEBAvpCBHICEAMSUgoGZG9tYWluGAIgASgJQkKSQTQyMmRvbWFpbiBuYW1lIHRvIGJlIGFkZGVkIHRvIHRoZSB0cnVzdGVkIGRvbWFpbiBsaXN04kEBAvpCBHICEAMiVQogQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2USMQoGZG9tYWluGAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Eb21haW4i0wEKH0RlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QSQQoCaWQYASABKAlCNZJBJzIldW5pcXVlIGlkIG9mIHRoZSBkb21haW4gdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADEm0KBm9yZ19pZBgCIAEoCUJdkkFPMk11bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADIiIKIERlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlItUBCh9WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0Em4KBm9yZ19pZBgBIAEoCUJekkFQMk51bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgdmVyaWZpZWTiQQEC+kIEcgIQAxJCCgJpZBgCIAEoCUI2kkEoMiZ1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSB2ZXJpZmllZOJBAQL6QgRyAhADIjEKIFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlEg0KBXN0YXRlGAEgASgJIiYKJERlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSInChlFbmFibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkVuYWJsZU9yZ2FuaXphdGlvblJlc3BvbnNlIigKGkRpc2FibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIh0KG0Rpc2FibGVPcmdhbml6YXRpb25SZXNwb25zZSInChlEZWxldGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkRlbGV0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIisKGUdldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QSDgoGb3JnX2lkGAEgASgJImIKGkdldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlEkQKEG9yZ2FuaXphdGlvbl9reWMYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyKsBQoSUHJvamVjdFJlcXVlc3RCb2R5EvcBCgRuYW1lGAEgASgJQugBkkHJATLGAVRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0LiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPiAqRXhhbXBsZToqIGBmcm9udGllci1wbGF5Z3JvdW5kYOJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBK3AQoFdGl0bGUYAiABKAlCpwGSQaMBMqABVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwcm9qZWN0LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBGcm9udGllciBQbGF5Z3JvdW5kYBKJAQoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ql6SQVsyWU1ldGFkYXRhIG9iamVjdCBmb3IgcHJvamVjdHMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBQcm9qZWN0IE1ldGFzY2hlbWEuElYKBm9yZ19pZBgEIAEoCUJGkkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCBwcm9qZWN0IGJlbG9uZ3PiQQEC+kIEcgIQAyJdChRDcmVhdGVQcm9qZWN0UmVxdWVzdBJFCgRib2R5GAEgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHlCCPpCBYoBAhABIkwKFUNyZWF0ZVByb2plY3RSZXNwb25zZRIzCgdwcm9qZWN0GAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0It8BCh9MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEosBCgVzdGF0ZRgCIAEoCUJ8kkF5MndGaWx0ZXIgcHJvamVjdHMgYnkgc3RhdGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBwcm9qZWN0cyBhcmUgcmV0dXJuZWQuIDxici8+ICpQb3NzaWJsZSB2YWx1ZXM6KiBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYBIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCJYCiBMaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCIfChFHZXRQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSJJChJHZXRQcm9qZWN0UmVzcG9uc2USMwoHcHJvamVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJfChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHkiTAoVVXBkYXRlUHJvamVjdFJlc3BvbnNlEjMKB3Byb2plY3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiLwoYTGlzdFByb2plY3RBZG1pbnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIksKGUxpc3RQcm9qZWN0QWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiXQoXTGlzdFByb2plY3RVc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSGQoRcGVybWlzc2lvbl9maWx0ZXIYAiABKAkSEgoKd2l0aF9yb2xlcxgDIAEoCCLpAQoYTGlzdFByb2plY3RVc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElAKCnJvbGVfcGFpcnMYAiADKAsyPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0VXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkkKHkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxISCgp3aXRoX3JvbGVzGAMgASgIIowCCh9MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXISVwoKcm9sZV9wYWlycxgCIAMoCzJDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpSCghSb2xlUGFpchIWCg5zZXJ2aWNldXNlcl9pZBgBIAEoCRIuCgVyb2xlcxgCIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJDChhMaXN0UHJvamVjdEdyb3Vwc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSEgoKd2l0aF9yb2xlcxgCIAEoCCLuAQoZTGlzdFByb2plY3RHcm91cHNSZXNwb25zZRIwCgZncm91cHMYASADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwElEKCnJvbGVfcGFpcnMYAiADKAsyPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0R3JvdXBzUmVzcG9uc2UuUm9sZVBhaXIaTAoIUm9sZVBhaXISEAoIZ3JvdXBfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiIgoURW5hYmxlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRW5hYmxlUHJvamVjdFJlc3BvbnNlIiMKFURpc2FibGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIYChZEaXNhYmxlUHJvamVjdFJlc3BvbnNlIiIKFERlbGV0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIhcKFURlbGV0ZVByb2plY3RSZXNwb25zZSKjCAoRUG9saWN5UmVxdWVzdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAMgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgErMBCghyZXNvdXJjZRgCIAEoCUKgAZJBkQEyjgFUaGUgcmVzb3VyY2UgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIDxici8+ICpFeGFtcGxlOiogYGFwcC9ndWFyZGlhbjo3MGY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4ZTJg4kEBAvpCBHICEAMS7wIKCXByaW5jaXBhbBgEIAEoCULbApJB0wIy0AJwcmluY2lwYWwgaXMgdGhlIHVzZXIgb3IgZ3JvdXAgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkLiBUaGUgcHJpbmNpcGFsIGlkIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBpdHMgbmFtZXNwYWNlIGlkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIFRoZSBuYW1lc3BhY2UgY2FuIGJlIGBhcHAvdXNlcmAsIGBhcHAvZ3JvdXBgIG9yIGBhcHAvc2VydmljZXVzZXJgIChjb21pbmcgdXAhKSBhbmQgdXVpZCBpcyB0aGUgdW5pcXVlIGlkIG9mIHRoZSBwcmluY2lwYWwuIDxici8+ICpFeGFtcGxlOiogYGFwcC91c2VyOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWDiQQECEt8BCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCswGSQa8BMqwBTWV0YWRhdGEgb2JqZWN0IGZvciBwb2xpY2llcyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIFBvbGljeSBNZXRhc2NoZW1hLjxici8+ICpFeGFtcGxlOiogYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIlBvbGljeSBkZXNjcmlwdGlvbiJ9YCKUBQoaQ3JlYXRlUG9saWN5Rm9yUHJvamVjdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAIgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgEu8CCglwcmluY2lwYWwYAyABKAlC2wKSQdMCMtACcHJpbmNpcGFsIGlzIHRoZSB1c2VyIG9yIGdyb3VwIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZC4gVGhlIHByaW5jaXBhbCBpZCBtdXN0IGJlIHByZWZpeGVkIHdpdGggaXRzIG5hbWVzcGFjZSBpZCBpbiB0aGlzIGZvcm1hdCBgbmFtZXNwYWNlOnV1aWRgLiBUaGUgbmFtZXNwYWNlIGNhbiBiZSBgYXBwL3VzZXJgLCBgYXBwL2dyb3VwYCBvciBgYXBwL3NlcnZpY2V1c2VyYCAoY29taW5nIHVwISkgYW5kIHV1aWQgaXMgdGhlIHVuaXF1ZSBpZCBvZiB0aGUgcHJpbmNpcGFsLiA8YnIvPiAqRXhhbXBsZToqIGBhcHAvdXNlcjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAiIiChRHZXRQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIYChZMaXN0UGVybWlzc2lvbnNSZXF1ZXN0IlUKF0xpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uIhcKFUxpc3ROYW1lc3BhY2VzUmVxdWVzdCJSChZMaXN0TmFtZXNwYWNlc1Jlc3BvbnNlEjgKCm5hbWVzcGFjZXMYASADKAsyJC5yYXlzdGFjay5mcm9udGllci52MWJldGExLk5hbWVzcGFjZSIhChNHZXROYW1lc3BhY2VSZXF1ZXN0EgoKAmlkGAEgASgJIk8KFEdldE5hbWVzcGFjZVJlc3BvbnNlEjcKCW5hbWVzcGFjZRgBIAEoCzIkLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTmFtZXNwYWNlIlsKE0NyZWF0ZVBvbGljeVJlcXVlc3QSRAoEYm9keRgBIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHlCCPpCBYoBAhABIk8KFENyZWF0ZVBvbGljeVJlc3BvbnNlEjEKBnBvbGljeRgCIAEoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5SgQIARACIh4KEEdldFBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkiRgoRR2V0UG9saWN5UmVzcG9uc2USMQoGcG9saWN5GAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qb2xpY3kimQIKE0xpc3RQb2xpY2llc1JlcXVlc3QSNgoGb3JnX2lkGAEgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhI1Cgpwcm9qZWN0X2lkGAIgASgJQiGSQR4yHFRoZSBwcm9qZWN0IGlkIHRvIGZpbHRlciBieS4SLwoHdXNlcl9pZBgDIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEi8KB3JvbGVfaWQYBCABKAlCHpJBGzIZVGhlIHJvbGUgaWQgdG8gZmlsdGVyIGJ5LhIxCghncm91cF9pZBgFIAEoCUIfkkEcMhpUaGUgZ3JvdXAgaWQgdG8gZmlsdGVyIGJ5LiJLChRMaXN0UG9saWNpZXNSZXNwb25zZRIzCghwb2xpY2llcxgBIAMoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5Il0KE1VwZGF0ZVBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkSOgoEYm9keRgCIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHkiSwoUVXBkYXRlUG9saWN5UmVzcG9uc2USMwoIcG9saWNpZXMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeSIhChNEZWxldGVQb2xpY3lSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFERlbGV0ZVBvbGljeVJlc3BvbnNlIosBCh1DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVxdWVzdBIbCgpwcm9qZWN0X2lkGAEgASgJQgf6QgRyAhADEk0KBGJvZHkYAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RCb2R5Qgj6QgWKAQIQASIgCh5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVzcG9uc2UicgoTUmVsYXRpb25SZXF1ZXN0Qm9keRIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgDIAEoCRIQCghyZWxhdGlvbhgEIAEoCRIcChRzdWJqZWN0X3N1Yl9yZWxhdGlvbhgGIAEoCUoECAIQA0oECAUQBiJfChVDcmVhdGVSZWxhdGlvblJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEiTwoWQ3JlYXRlUmVsYXRpb25SZXNwb25zZRI1CghyZWxhdGlvbhgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb24iIAoSR2V0UmVsYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkwKE0dldFJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uImEKFVVwZGF0ZVJlbGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRI8CgRib2R5GAIgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvblJlcXVlc3RCb2R5Ik8KFlVwZGF0ZVJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uIrkGChBHcm91cFJlcXVlc3RCb2R5Es8BCgRuYW1lGAEgASgJQsABkkGhATKeAVRoZSBuYW1lIG9mIHRoZSBncm91cC4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskEosBCgV0aXRsZRgCIAEoCUJ8kkF5MndUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGdyb3VwLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LhK+AwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QpIDkkGOAzKLA01ldGFkYXRhIG9iamVjdCBmb3IgZ3JvdXBzIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gR3JvdXAgTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdyb3VwIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBHcm91cCBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgR3JvdXAgTWV0YXNjaGVtYSB0byBhZGQgbW9yZSBmaWVsZHMuPGJyLz4qRXhhbXBsZToqYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIkdyb3VwIGRlc2NyaXB0aW9uIn1gSgQIBBAFIqYBChJDcmVhdGVHcm91cFJlcXVlc3QSQwoEYm9keRgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXBSZXF1ZXN0Qm9keUII+kIFigECEAESSwoGb3JnX2lkGAIgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJDCg9HZXRHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhQKDHdpdGhfbWVtYmVycxgDIAEoCCJGChNDcmVhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJDChBHZXRHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJGChNVcGRhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCKoAQoSVXBkYXRlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwUmVxdWVzdEJvZHkSSwoGb3JnX2lkGAMgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJHChVMaXN0R3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhIKCndpdGhfcm9sZXMYAyABKAgi5QEKFkxpc3RHcm91cFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISTgoKcm9sZV9wYWlycxgCIAMoCzI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjkKEkVuYWJsZUdyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiFQoTRW5hYmxlR3JvdXBSZXNwb25zZSI6ChNEaXNhYmxlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyIWChREaXNhYmxlR3JvdXBSZXNwb25zZSI5ChJEZWxldGVHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADIhUKE0RlbGV0ZUdyb3VwUmVzcG9uc2UiTQoUQWRkR3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADEhAKCHVzZXJfaWRzGAMgAygJIhcKFUFkZEdyb3VwVXNlcnNSZXNwb25zZSJOChZSZW1vdmVHcm91cFVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAMgASgJIhkKF1JlbW92ZUdyb3VwVXNlclJlc3BvbnNlIlAKFURlbGV0ZVJlbGF0aW9uUmVxdWVzdBIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgCIAEoCRIQCghyZWxhdGlvbhgEIAEoCUoECAMQBCIYChZEZWxldGVSZWxhdGlvblJlc3BvbnNlIlMKG0xpc3RQcm9qZWN0UmVzb3VyY2VzUmVxdWVzdBIbCgpwcm9qZWN0X2lkGAIgASgJQgf6QgRyAhADEhEKCW5hbWVzcGFjZRgEIAEoCUoECAEQAiJWChxMaXN0UHJvamVjdFJlc291cmNlc1Jlc3BvbnNlEjYKCXJlc291cmNlcxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2UitgYKE1Jlc291cmNlUmVxdWVzdEJvZHkScwoEbmFtZRgBIAEoCUJlkkFeMlxUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UuICBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHByb2plY3QuIDxici8+ICpFeGFtcGxlOiogYG15LXJlc291cmNlYOJBAQISjgEKBXRpdGxlGAIgASgJQn+SQXwyelRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcmVzb3VyY2UuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuEvIBCgluYW1lc3BhY2UYAyABKAlC3gGSQdYBMtMBVGhlIG5hbWVzcGFjZSBvZiB0aGUgcmVzb3VyY2UuIFRoZSByZXNvdXJjZSBuYW1lc3BhY2UgYXJlIGNyZWF0ZWQgd2hlbiBwZXJtaXNzaW9ucyBmb3IgdGhhdCByZXNvdXJjZSBpcyBjcmVhdGVkIGluIEZyb250aWVyLiBJZiBuYW1lc3BhY2UgZG9lc24ndCBleGlzdHMgdGhlIHJlcXVlc3Qgd2lsbCBmYWlsLiA8YnIvPiAqRXhhbXBsZToqIGBjb21wdXRlL2luc3RhbmNlYOJBAQIS7AEKCXByaW5jaXBhbBgGIAEoCULYAZJB1AEy0QFVc2VySUQgb3IgU2VydmljZVVzZXJJRCB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgb3duZXIgb2YgdGhlIHJlc291cmNlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHdpbGwgYmUgbWFkZSB0aGUgcmVzb3VyY2Ugb3duZXIuIDxici8+ICpFeGFtcGxlOiogYHVzZXI6OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YBIpCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgEEAVKBAgFEAYipgEKHENyZWF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keUII+kIFigECEAESEgoKcHJvamVjdF9pZBgCIAEoCRIqCgJpZBgDIAEoCUIekkEbMhlBdXRvZ2VuZXJhdGVkIGlmIHNraXBwZWQuIlYKHUNyZWF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJKChlHZXRQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEANKBAgCEAMiUwoaR2V0UHJvamVjdFJlc291cmNlUmVzcG9uc2USNQoIcmVzb3VyY2UYASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlInwKHFVwZGF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSCgoCaWQYASABKAkSPAoEYm9keRgCIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keRISCgpwcm9qZWN0X2lkGAMgASgJIlYKHVVwZGF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJHChxEZWxldGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEAMiHwodRGVsZXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UigwYKHkNoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJDCglvYmplY3RfaWQYASABKAlCMBgBkkErMilEZXByZWNhdGVkLiBVc2UgYHJlc291cmNlYCBmaWVsZCBpbnN0ZWFkLhJKChBvYmplY3RfbmFtZXNwYWNlGAIgASgJQjAYAZJBKzIpRGVwcmVjYXRlZC4gVXNlIGByZXNvdXJjZWAgZmllbGQgaW5zdGVhZC4SjAEKCnBlcm1pc3Npb24YAyABKAlCeJJBWTJXdGhlIHBlcm1pc3Npb24gbmFtZSB0byBjaGVjay4gPGJyLz4gKkV4YW1wbGU6KiBgZ2V0YCwgYGxpc3RgLCBgY29tcHV0ZS5pbnN0YW5jZS5jcmVhdGVg4kEBAvpCFXITMhFeW0EtWmEtejAtOS5fLV0rJBLAAwoIcmVzb3VyY2UYBCABKAlCrQOSQakDMqYDYG5hbWVzcGFjZTp1dWlkYCBvciBgbmFtZXNwYWNlOm5hbWVgIG9mIHRoZSBvcmcgb3IgcHJvamVjdCwgYW5kIGBuYW1lc3BhY2U6dXJuYCBvZiBhIHJlc291cmNlIHVuZGVyIGEgcHJvamVjdC4gSW4gY2FzZSBvZiBhbiBvcmcvcHJvamVjdCBlaXRoZXIgcHJvdmlkZSB0aGUgY29tcGxldGUgbmFtZXNwYWNlIChhcHAvb3JnYW5pemF0aW9uKSBvciBGcm9udGllciBjYW4gYWxzbyBwYXJzZSBhbGlhc2VzIGZvciB0aGUgc2FtZSBhcyBgb3JnYCBvciBgcHJvamVjdGAuIDxici8+ICpFeGFtcGxlOiogYG9yZ2FuaXphdGlvbjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgIG9yIGBhcHAvcHJvamVjdDpwcm9qZWN0LW5hbWVgIG9yIGBjb21wdXRlL2luc3RhbmNlOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWAiMQofQ2hlY2tSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZRIOCgZzdGF0dXMYASABKAgibgobQmF0Y2hDaGVja1Blcm1pc3Npb25SZXF1ZXN0Ek8KBmJvZGllcxgBIAMoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmF0Y2hDaGVja1Blcm1pc3Npb25Cb2R5Qgr6QgeSAQQIARAUItIEChhCYXRjaENoZWNrUGVybWlzc2lvbkJvZHkScwoKcGVybWlzc2lvbhgBIAEoCUJfkkFAMj50aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgIG9yIGBsaXN0YOJBAQL6QhVyEzIRXltBLVphLXowLTkuXy1dKyQSwAMKCHJlc291cmNlGAIgASgJQq0DkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgImoKHEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2USSgoFcGFpcnMYASADKAsyOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyInUKIEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyEkEKBGJvZHkYASABKAsyMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uQm9keRIOCgZzdGF0dXMYAiABKAgioQMKFU1ldGFTY2hlbWFSZXF1ZXN0Qm9keRLUAQoEbmFtZRgBIAEoCULFAZJBpgEyowFUaGUgbmFtZSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErABCgZzY2hlbWEYAiABKAlCnwGSQZABMo0BVGhlIHNjaGVtYSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIHNjaGVtYSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEu4kEBAvpCBHICEAIiYwoXQ3JlYXRlTWV0YVNjaGVtYVJlcXVlc3QSSAoEYm9keRgBIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJVChhDcmVhdGVNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSIiChRHZXRNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSJvChdVcGRhdGVNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCRJICgRib2R5GAIgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hUmVxdWVzdEJvZHlCCPpCBYoBAhABIlUKGFVwZGF0ZU1ldGFTY2hlbWFSZXNwb25zZRI5CgptZXRhc2NoZW1hGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hIiUKF0RlbGV0ZU1ldGFTY2hlbWFSZXF1ZXN0EgoKAmlkGAEgASgJIhoKGERlbGV0ZU1ldGFTY2hlbWFSZXNwb25zZSIYChZMaXN0TWV0YVNjaGVtYXNSZXF1ZXN0IlUKF0xpc3RNZXRhU2NoZW1hc1Jlc3BvbnNlEjoKC21ldGFzY2hlbWFzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hItABCiBMaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSDgoGc291cmNlGAUgASgJEg4KBmFjdGlvbhgGIAEoCRIVCg1pZ25vcmVfc3lzdGVtGAcgASgIEi4KCnN0YXJ0X3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGVuZF90aW1lGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJWCiFMaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzUmVzcG9uc2USMQoEbG9ncxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRMb2ciegoiQ3JlYXRlT3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSOwoEbG9ncxgCIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRMb2dCCPpCBZIBAggBIiUKI0NyZWF0ZU9yZ2FuaXphdGlvbkF1ZGl0TG9nc1Jlc3BvbnNlIk4KHkdldE9yZ2FuaXphdGlvbkF1ZGl0TG9nUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSEwoCaWQYAiABKAlCB/pCBHICEAMiUwofR2V0T3JnYW5pemF0aW9uQXVkaXRMb2dSZXNwb25zZRIwCgNsb2cYASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0TG9nIhwKGkRlc2NyaWJlUHJlZmVyZW5jZXNSZXF1ZXN0IlkKG0Rlc2NyaWJlUHJlZmVyZW5jZXNSZXNwb25zZRI6CgZ0cmFpdHMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VUcmFpdCKHAQokQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJjCiVDcmVhdGVPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjkKIkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiYQojTGlzdE9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiggEKH0NyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIl4KIENyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjQKHUxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIlwKHkxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSKAAQodQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIlwKHkNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIyChtMaXN0R3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiWgocTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJ/ChxDcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJbCh1DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIxChpMaXN0VXNlclByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJZChtMaXN0VXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UicQojQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBImIKJENyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIjCiFMaXN0Q3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QiYAoiTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJICh1CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVxdWVzdBIZCghwcm92aWRlchgBIAEoCUIH+kIEcgIQARIMCgRib2R5GAIgASgMIiAKHkJpbGxpbmdXZWJob29rQ2FsbGJhY2tSZXNwb25zZSKEBAobQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXF1ZXN0Ej4KBG5hbWUYASABKAlCMJJBFzIVZnVsbCBuYW1lIG9mIHRoZSB1c2Vy+kITchEyDF5bQS1aYS16IF0rJNABARIyCgVlbWFpbBgFIAEoCUIjkkETMhFlbWFpbCBvZiB0aGUgdXNlcuJBAQL6QgZyBBABYAESLAoFcGhvbmUYBiABKAlCHZJBGjIYcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyEoABCghhY3Rpdml0eRgHIAEoCUJukkFOMkxhY3Rpdml0eSBmb3Igd2hpY2ggdXNlciBpcyBzdWJzY3JpYmluZywgZS5nLiBuZXdzbGV0dGVyLCB3YWl0bGlzdCwgYmxvZ3MgZXRj4kEBAvpCFnIUEAEyEF5bQS1aYS16MC05LV9dKyQSbQoGc291cmNlGAkgASgJQl2SQUAyPnNvdXJjZSBvZiB0aGlzIHVzZXIgYWRkaXRpb24gZS5nLiBwbGF0Zm9ybSwgd2Vic2l0ZSwgYWRtaW4gZXRj+kIXchUyEF5bQS1aYS16MC05LV9dKyTQAQESUQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QiaSQSMyIWFkZGl0aW9uYWwgaW5mbyBhcyBrZXkgdmFsdWUgcGFpciIeChxDcmVhdGVQcm9zcGVjdFB1YmxpY1Jlc3BvbnNlIhUKE0xpc3RTZXNzaW9uc1JlcXVlc3QiTAoUTGlzdFNlc3Npb25zUmVzcG9uc2USNAoIc2Vzc2lvbnMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlc3Npb24iOAoUUmV2b2tlU2Vzc2lvblJlcXVlc3QSIAoKc2Vzc2lvbl9pZBgBIAEoCUIM4kEBAvpCBXIDsAEBIhcKFVJldm9rZVNlc3Npb25SZXNwb25zZSIYChZQaW5nVXNlclNlc3Npb25SZXF1ZXN0IhkKF1BpbmdVc2VyU2Vzc2lvblJlc3BvbnNlIrUDChhDcmVhdGVBdWRpdFJlY29yZFJlcXVlc3QSQAoFYWN0b3IYASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkQWN0b3JCBOJBAQISGgoFZXZlbnQYAiABKAlCC+JBAQL6QgRyAhADEkYKCHJlc291cmNlGAMgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdWRpdFJlY29yZFJlc291cmNlQgTiQQECEjwKBnRhcmdldBgEIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmRUYXJnZXQSNQoLb2NjdXJyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEhgKBm9yZ19pZBgGIAEoCUII+kIFcgOwAQESEgoKcmVxdWVzdF9pZBgHIAEoCRIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJQoPaWRlbXBvdGVuY3lfa2V5GAkgASgJQgziQQEC+kIFcgOwAQEiWQoZQ3JlYXRlQXVkaXRSZWNvcmRSZXNwb25zZRI8CgxhdWRpdF9yZWNvcmQYASABKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkMsaZAwoPRnJvbnRpZXJTZXJ2aWNlEugCCglMaXN0VXNlcnMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2Vyc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2Vyc1Jlc3BvbnNlIv8BkkHlAQoEVXNlchIRTGlzdCBwdWJsaWMgdXNlcnMayQFSZXR1cm5zIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUuIEFkZGl0aW9uYWxseSB5b3UgY2FuIGluY2x1ZGUgcGFnZSBudW1iZXIgYW5kIHBhZ2Ugc2l6ZSBmb3IgcGFnaW5hdGlvbi6C0+STAhASDi92MWJldGExL3VzZXJzErsGCgpDcmVhdGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlVXNlclJlc3BvbnNlIs8FkkGvBQoEVXNlchILQ3JlYXRlIHVzZXIalwVDcmVhdGUgYSB1c2VyIHdpdGggdGhlIGdpdmVuIGRldGFpbHMuIEEgdXNlciBpcyBub3QgYXR0YWNoZWQgdG8gYW4gb3JnYW5pemF0aW9uIG9yIGEgZ3JvdXAgYnkgZGVmYXVsdCxhbmQgY2FuIGJlIGludml0ZWQgdG8gdGhlIG9yZy9ncm91cC4gVGhlIG5hbWUgb2YgdGhlIHVzZXIgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIElmIGEgdXNlciBuYW1lIGlzIG5vdCBwcm92aWRlZCwgRnJvbnRpZXIgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgYSBuYW1lIGZyb20gdGhlIHVzZXIgZW1haWwuIFRoZSB1c2VyIG1ldGFkYXRhIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSB1c2VyIG1ldGFzY2hlbWEuIEJ5IGRlZmF1bHQgdGhlIHVzZXIgbWV0YXNjaGVtYSBjb250YWlucyBgbGFiZWxzYCBhbmQgYGRlc2NyaXB0aW9uc2AgZm9yIHRoZSB1c2VyLiBUaGUgYHRpdGxlYCBmaWVsZCBjYW4gYmUgb3B0aW9uYWxseSBhZGRlZCBmb3IgYSB1c2VyLWZyaWVuZGx5IG5hbWUuIDxici8+PGJyLz4qRXhhbXBsZToqYHsiZW1haWwiOiJqb2huLmRvZUByYXlzdGFjay5vcmciLCJ0aXRsZSI6IkpvaG4gRG9lIixtZXRhZGF0YTp7ImxhYmVsIjogeyJrZXkxIjogInZhbHVlMSJ9LCAiZGVzY3JpcHRpb24iOiAiVXNlciBEZXNjcmlwdGlvbiJ9fWBiAILT5JMCFiIOL3YxYmV0YTEvdXNlcnM6BGJvZHkSzwEKB0dldFVzZXISKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVzZXJSZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRVc2VyUmVzcG9uc2UibZJBTwoEVXNlchIIR2V0IHVzZXIaPUdldCBhIHVzZXIgYnkgaWQgc2VhcmNoZWQgb3ZlciBhbGwgb3JnYW5pemF0aW9ucyBpbiBGcm9udGllci6C0+STAhUSEy92MWJldGExL3VzZXJzL3tpZH0S6gIKDkxpc3RVc2VyR3JvdXBzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlckdyb3Vwc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyR3JvdXBzUmVzcG9uc2Ui8gGSQcwBCgRVc2VyEhBMaXN0IHVzZXIgZ3JvdXBzGrEBTGlzdHMgYWxsIHRoZSBncm91cHMgYSB1c2VyIGJlbG9uZ3MgdG8gYWNyb3NzIGFsbCBvcmdhbml6YXRpb24gaW4gRnJvbnRpZXIuIFRvIGdldCB0aGUgZ3JvdXBzIG9mIGEgdXNlciBpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiwgdXNlIHRoZSBvcmdfaWQgZmlsdGVyIGluIHRoZSBxdWVyeSBwYXJhbWV0ZXIugtPkkwIcEhovdjFiZXRhMS91c2Vycy97aWR9L2dyb3VwcxLHAQoVTGlzdEN1cnJlbnRVc2VyR3JvdXBzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJHcm91cHNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJHcm91cHNSZXNwb25zZSI7kkEWCgRVc2VyEg5MaXN0IG15IGdyb3Vwc4LT5JMCHBIaL3YxYmV0YTEvdXNlcnMvc2VsZi9ncm91cHMSrQEKDkdldEN1cnJlbnRVc2VyEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50VXNlclJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRVc2VyUmVzcG9uc2UiNpJBGAoEVXNlchIQR2V0IGN1cnJlbnQgdXNlcoLT5JMCFRITL3YxYmV0YTEvdXNlcnMvc2VsZhKiAQoKVXBkYXRlVXNlchIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlVXNlclJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVVzZXJSZXNwb25zZSI3kkETCgRVc2VyEgtVcGRhdGUgdXNlcoLT5JMCGxoTL3YxYmV0YTEvdXNlcnMve2lkfToEYm9keRK/AQoRVXBkYXRlQ3VycmVudFVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUN1cnJlbnRVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQ3VycmVudFVzZXJSZXNwb25zZSI/kkEbCgRVc2VyEhNVcGRhdGUgY3VycmVudCB1c2VygtPkkwIbGhMvdjFiZXRhMS91c2Vycy9zZWxmOgRib2R5EpECCgpFbmFibGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlVXNlclJlc3BvbnNlIqUBkkF9CgRVc2VyEgtFbmFibGUgdXNlchpoU2V0cyB0aGUgc3RhdGUgb2YgdGhlIHVzZXIgYXMgZW5hYmxlZC4gVGhlIHVzZXIgd2lsbCBiZSBhYmxlIHRvIGxvZyBpbiBhbmQgYWNjZXNzIHRoZSBGcm9udGllciBpbnN0YW5jZS6C0+STAh8iGi92MWJldGExL3VzZXJzL3tpZH0vZW5hYmxlOgEqEpADCgtEaXNhYmxlVXNlchItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZVVzZXJSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlVXNlclJlc3BvbnNlIqECkkH3AQoEVXNlchIMRGlzYWJsZSB1c2VyGuABU2V0cyB0aGUgc3RhdGUgb2YgdGhlIHVzZXIgYXMgZGlhYmxlZC5UaGUgdXNlcidzIG1lbWJlcnNoaXAgdG8gZ3JvdXBzIGFuZCBvcmdhbml6YXRpb25zIHdpbGwgc3RpbGwgZXhpc3QgYWxvbmcgd2l0aCBhbGwgaXQncyByb2xlcyBmb3IgYWNjZXNzIGNvbnRyb2wsIGJ1dCB0aGUgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZyBpbiBhbmQgYWNjZXNzIHRoZSBGcm9udGllciBpbnN0YW5jZS6C0+STAiAiGy92MWJldGExL3VzZXJzL3tpZH0vZGlzYWJsZToBKhL3AQoKRGVsZXRlVXNlchIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlVXNlclJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVVzZXJSZXNwb25zZSKLAZJBbQoEVXNlchILRGVsZXRlIHVzZXIaWERlbGV0ZSBhbiB1c2VyIHBlcm1hbmVudGx5IGZvcmV2ZXIgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIChvcmdhbml6YXRpb25zLCBncm91cHMsIGV0YymC0+STAhUqEy92MWJldGExL3VzZXJzL3tpZH0S/wQKF0xpc3RPcmdhbml6YXRpb25zQnlVc2VyEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zQnlVc2VyUmVzcG9uc2Ui7AOSQb8DCgRVc2VyEhZHZXQgdXNlciBvcmdhbml6YXRpb25zGp4DVGhpcyBBUEkgcmV0dXJucyB0d28gbGlzdCBvZiBvcmdhbml6YXRpb25zIGZvciB0aGUgdXNlci4gaSkgVGhlIGxpc3Qgb2Ygb3JncyB3aGljaCB0aGUgY3VycmVudCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mIGlpKSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGNhbiBqb2luIGRpcmVjdGx5IChiYXNlZCBvbiBkb21haW4gd2hpdGVsaXN0ZWQgYW5kIHZlcmlmaWVkIGJ5IHRoZSBvcmcpLiBUaGlzIGxpc3Qgd2lsbCBhbHNvIGNvbnRhaW4gb3JncyBvZiB3aGljaCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mLiBOb3RlOiB0aGUgZG9tYWluIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJ5IHRoZSBvcmcgYmVmb3JlIHRoZSBpdCBpcyByZXR1cm5lZCBhcyBvbmUgb2YgdGhlIGpvaW5hYmxlIG9yZ3MgYnkgZG9tYWlugtPkkwIjEiEvdjFiZXRhMS91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMSpAUKHkxpc3RPcmdhbml6YXRpb25zQnlDdXJyZW50VXNlchJALnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVxdWVzdBpBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVzcG9uc2Ui/AOSQc8DCgRVc2VyEhRHZXQgbXkgb3JnYW5pemF0aW9ucxqwA1RoaXMgQVBJIHJldHVybnMgdHdvIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIuIGkpIFRoZSBsaXN0IG9mIG9yZ3Mgd2hpY2ggdGhlIGN1cnJlbnQgdXNlciBpcyBhbHJlYWR5IGEgcGFydCBvZiBpaSkgVGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucyB0aGUgdXNlciBjYW4gam9pbiBkaXJlY3RseSAoYmFzZWQgb24gZG9tYWluIHdoaXRlbGlzdGVkIGFuZCB2ZXJpZmllZCBieSB0aGUgb3JnKS4gVGhpcyBsaXN0IHdpbGwgYWxzbyBjb250YWluIG9yZ3Mgb2Ygd2hpY2ggdXNlciBpcyBhbHJlYWR5IGEgcGFydCBvZi4gTm90ZTogdGhlIGRvbWFpbiBuZWVkcyB0byBiZSB2ZXJpZmllZCBieSB0aGUgb3JnIGJlZm9yZSB0aGUgaXQgaXMgcmV0dXJuZWQgYXMgb25lIG9mIHRoZSBqb2luYWJsZSBvcmdzIGJ5IGRvbWFpboLT5JMCIxIhL3YxYmV0YTEvdXNlcnMvc2VsZi9vcmdhbml6YXRpb25zEuwBChJMaXN0UHJvamVjdHNCeVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5VXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5VXNlclJlc3BvbnNlImmSQUIKBFVzZXISEUdldCB1c2VyIHByb2plY3RzGidHZXQgYWxsIHRoZSBwcm9qZWN0cyBhIHVzZXIgYmVsb25ncyB0by6C0+STAh4SHC92MWJldGExL3VzZXJzL3tpZH0vcHJvamVjdHMShAIKGUxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXISOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXJSZXF1ZXN0GjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVzcG9uc2UibJJBRQoEVXNlchIPR2V0IG15IHByb2plY3RzGixHZXQgYWxsIHByb2plY3RzIHRoZSBjdXJyZW50IHVzZXIgYmVsb25ncyB0b4LT5JMCHhIcL3YxYmV0YTEvdXNlcnMvc2VsZi9wcm9qZWN0cxL3AQoTTGlzdFVzZXJJbnZpdGF0aW9ucxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VySW52aXRhdGlvbnNSZXNwb25zZSJxkkFHCgRVc2VyEhVMaXN0IHVzZXIgaW52aXRhdGlvbnMaKExpc3QgYWxsIHRoZSBpbnZpdGF0aW9ucyBzZW50IHRvIGEgdXNlci6C0+STAiESHy92MWJldGExL3VzZXJzL3tpZH0vaW52aXRhdGlvbnMSkgIKGkxpc3RDdXJyZW50VXNlckludml0YXRpb25zEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVzcG9uc2Uid5JBTQoEVXNlchIVTGlzdCB1c2VyIGludml0YXRpb25zGi5MaXN0IGFsbCB0aGUgaW52aXRhdGlvbnMgc2VudCB0byBjdXJyZW50IHVzZXIugtPkkwIhEh8vdjFiZXRhMS91c2Vycy9zZWxmL2ludml0YXRpb25zEqgCChBMaXN0U2VydmljZVVzZXJzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlIqoBkkGJAQoLU2VydmljZVVzZXISFkxpc3Qgb3JnIHNlcnZpY2UgdXNlcnMaYlJldHVybnMgdGhlIHNlcnZpY2UgdXNlciBvZiBhbiBvcmdhbml6YXRpb24gaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlciBieSBpdCdzIHN0YXRlgtPkkwIXEhUvdjFiZXRhMS9zZXJ2aWNldXNlcnMS9AEKEUNyZWF0ZVNlcnZpY2VVc2VyEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyUmVzcG9uc2UidJJBOgoLU2VydmljZVVzZXISE0NyZWF0ZSBzZXJ2aWNlIHVzZXIaFkNyZWF0ZSBhIHNlcnZpY2UgdXNlci6C0+STAjEiLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzOgEqEvgBCg5HZXRTZXJ2aWNlVXNlchIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U2VydmljZVVzZXJSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlclJlc3BvbnNlIoABkkFECgtTZXJ2aWNlVXNlchIQR2V0IHNlcnZpY2UgdXNlchojR2V0IHNlcnZpY2UgdXNlciBkZXRhaWxzIGJ5IGl0cyBpZC6C0+STAjMSMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0SvgIKEURlbGV0ZVNlcnZpY2VVc2VyEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlclJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyUmVzcG9uc2UivQGSQYABCgtTZXJ2aWNlVXNlchITRGVsZXRlIHNlcnZpY2UgdXNlchpcRGVsZXRlIGEgc2VydmljZSB1c2VyIHBlcm1hbmVudGx5IGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucyAoa2V5cywgb3JnYW5pemF0aW9ucywgcm9sZXMsIGV0YymC0+STAjMqMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0SmAMKFENyZWF0ZVNlcnZpY2VVc2VySldLEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VySldLUmVzcG9uc2UijgKSQckBCgtTZXJ2aWNlVXNlchIrQ3JlYXRlIHNlcnZpY2UgdXNlciBwdWJsaWMvcHJpdmF0ZSBrZXkgcGFpchqMAUdlbmVyYXRlIGEgc2VydmljZSB1c2VyIGtleSBhbmQgcmV0dXJuIGl0LCB0aGUgcHJpdmF0ZSBrZXkgcGFydCBvZiB0aGUgcmVzcG9uc2Ugd2lsbCBub3QgYmUgcGVyc2lzdGVkIGFuZCBzaG91bGQgYmUga2VwdCBzZWN1cmVseSBieSBjbGllbnQugtPkkwI7IjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXM6ASoSrwIKE0xpc3RTZXJ2aWNlVXNlckpXS3MSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckpXS3NSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJKV0tzUmVzcG9uc2UiqAGSQWcKC1NlcnZpY2VVc2VyEhZMaXN0IHNlcnZpY2UgdXNlciBrZXlzGkBMaXN0IGFsbCB0aGUga2V5cyBvZiBhIHNlcnZpY2UgdXNlciB3aXRoIGl0cyBkZXRhaWxzIGV4Y2VwdCBqd2sugtPkkwI4EjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXMSlgIKEUdldFNlcnZpY2VVc2VySldLEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlckpXS1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VySldLUmVzcG9uc2UilQGSQUsKC1NlcnZpY2VVc2VyEhRHZXQgc2VydmljZSB1c2VyIGtleRomR2V0IGEgc2VydmljZSB1c2VyIHB1YmxpYyBSU0EgSldLIHNldC6C0+STAkESPy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5cy97a2V5X2lkfRKiAgoURGVsZXRlU2VydmljZVVzZXJKV0sSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJKV0tSZXNwb25zZSKYAZJBTgoLU2VydmljZVVzZXISF0RlbGV0ZSBzZXJ2aWNlIHVzZXIga2V5GiZEZWxldGUgYSBzZXJ2aWNlIHVzZXIga2V5IHBlcm1hbmVudGx5LoLT5JMCQSo/L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9rZXlzL3trZXlfaWR9EqQDChtDcmVhdGVTZXJ2aWNlVXNlckNyZWRlbnRpYWwSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlIoUCkkG9AQoLU2VydmljZVVzZXISJkNyZWF0ZSBzZXJ2aWNlIHVzZXIgY2xpZW50IGNyZWRlbnRpYWxzGoUBR2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbCBhbmQgcmV0dXJuIGl0LiBUaGUgY3JlZGVudGlhbCB2YWx1ZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBzZWN1cmVseSBzdG9yZWQgYnkgY2xpZW50LoLT5JMCPiI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzOgEqErkCChpMaXN0U2VydmljZVVzZXJDcmVkZW50aWFscxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlIp0BkkFZCgtTZXJ2aWNlVXNlchIdTGlzdCBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHMaK0xpc3QgYWxsIHRoZSBjcmVkZW50aWFscyBvZiBhIHNlcnZpY2UgdXNlci6C0+STAjsSOS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vc2VjcmV0cxLAAgobRGVsZXRlU2VydmljZVVzZXJDcmVkZW50aWFsEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXNwb25zZSKhAZJBUQoLU2VydmljZVVzZXISH0RlbGV0ZSBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHMaIURlbGV0ZSBhIHNlcnZpY2UgdXNlciBjcmVkZW50aWFsLoLT5JMCRypFL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzL3tzZWNyZXRfaWR9EvwCChZDcmVhdGVTZXJ2aWNlVXNlclRva2VuEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIuwBkkGlAQoLU2VydmljZVVzZXISGUNyZWF0ZSBzZXJ2aWNlIHVzZXIgdG9rZW4ae0dlbmVyYXRlIGEgc2VydmljZSB1c2VyIHRva2VuIGFuZCByZXR1cm4gaXQuIFRoZSB0b2tlbiB2YWx1ZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBzZWN1cmVseSBzdG9yZWQgYnkgY2xpZW50LoLT5JMCPSI4L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS90b2tlbnM6ASoSnwIKFUxpc3RTZXJ2aWNlVXNlclRva2VucxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyVG9rZW5zUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyVG9rZW5zUmVzcG9uc2UikgGSQU8KC1NlcnZpY2VVc2VyEhhMaXN0IHNlcnZpY2UgdXNlciB0b2tlbnMaJkxpc3QgYWxsIHRoZSB0b2tlbnMgb2YgYSBzZXJ2aWNlIHVzZXIugtPkkwI6EjgvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Rva2VucxKkAgoWRGVsZXRlU2VydmljZVVzZXJUb2tlbhI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJUb2tlblJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyVG9rZW5SZXNwb25zZSKUAZJBRgoLU2VydmljZVVzZXISGURlbGV0ZSBzZXJ2aWNlIHVzZXIgdG9rZW4aHERlbGV0ZSBhIHNlcnZpY2UgdXNlciB0b2tlbi6C0+STAkUqQy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vdG9rZW5zL3t0b2tlbl9pZH0SsAIKF0xpc3RTZXJ2aWNlVXNlclByb2plY3RzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2UinQGSQVgKC1NlcnZpY2VVc2VyEhpMaXN0IHNlcnZpY2Ugc3NlciBwcm9qZWN0cxotTGlzdCBhbGwgcHJvamVjdHMgdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvgtPkkwI8EjovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Byb2plY3RzEuQCChZMaXN0T3JnYW5pemF0aW9uR3JvdXBzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uR3JvdXBzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkdyb3Vwc1Jlc3BvbnNlItQBkkGiAQoFR3JvdXASGExpc3Qgb3JnYW5pemF0aW9uIGdyb3Vwcxp/R2V0IGFsbCBncm91cHMgdGhhdCBiZWxvbmcgdG8gYW4gb3JnYW5pemF0aW9uLiBUaGUgcmVzdWx0cyBjYW4gYmUgZmlsdGVyZWQgYnkgc3RhdGUgd2hpY2ggY2FuIGJlIGVpdGhlciBiZSBlbmFibGVkIG9yIGRpc2FibGVkLoLT5JMCKBImL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMSnQMKC0NyZWF0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUmVzcG9uc2UirgKSQfYBCgVHcm91cBIMQ3JlYXRlIGdyb3VwGt4BQ3JlYXRlIGEgbmV3IGdyb3VwIGluIGFuIG9yZ2FuaXphdGlvbiB3aGljaCBzZXJ2ZXMgYXMgYSBjb250YWluZXIgZm9yIHVzZXJzLiBUaGUgZ3JvdXAgY2FuIGJlIGFzc2lnbmVkIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyBhbmQgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIGFjY2VzcyB0byByZXNvdXJjZXMuIEFsc28gYSBncm91cCBjYW4gYWxzbyBiZSBhc3NpZ25lZCB0byBvdGhlciBncm91cHMugtPkkwIuIiYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3VwczoEYm9keRKtAQoIR2V0R3JvdXASKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEdyb3VwUmVxdWVzdBorLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0R3JvdXBSZXNwb25zZSJIkkESCgVHcm91cBIJR2V0IGdyb3VwgtPkkwItEisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9Er8BCgtVcGRhdGVHcm91cBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlR3JvdXBSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVHcm91cFJlc3BvbnNlIlGSQRUKBUdyb3VwEgxVcGRhdGUgZ3JvdXCC0+STAjMaKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH06BGJvZHkS/gEKDkxpc3RHcm91cFVzZXJzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBVc2Vyc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFVzZXJzUmVzcG9uc2UihgGSQUoKBUdyb3VwEhBMaXN0IGdyb3VwIHVzZXJzGi9SZXR1cm5zIGEgbGlzdCBvZiB1c2VycyB0aGF0IGJlbG9uZyB0byBhIGdyb3VwLoLT5JMCMxIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2VycxLdAgoNQWRkR3JvdXBVc2VycxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkR3JvdXBVc2Vyc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZEdyb3VwVXNlcnNSZXNwb25zZSLoAZJBqAEKBUdyb3VwEg5BZGQgZ3JvdXAgdXNlchqOAUFkZHMgYSBwcmluY2lwbGUodXNlciBhbmQgc2VydmljZS11c2VycykgdG8gYSBncm91cCwgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIGdyb3VwIHdpbGwgYmUgaWdub3JlZC4gQSBncm91cCBjYW4ndCBoYXZlIG5lc3RlZCBncm91cHMgYXMgbWVtYmVycy6C0+STAjYiMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vdXNlcnM6ASoS7wIKD1JlbW92ZUdyb3VwVXNlchIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlR3JvdXBVc2VyUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlR3JvdXBVc2VyUmVzcG9uc2Ui9AGSQa0BCgVHcm91cBIRUmVtb3ZlIGdyb3VwIHVzZXIakAFSZW1vdmVzIGEgcHJpbmNpcGxlKHVzZXIgYW5kIHNlcnZpY2UtdXNlcnMpIGZyb20gYSBncm91cC4gSWYgdGhlIHVzZXIgaXMgbm90IGluIHRoZSBncm91cCwgdGhlIHJlcXVlc3Qgd2lsbCBzdWNjZWVkIGJ1dCBubyBjaGFuZ2VzIHdpbGwgYmUgbWFkZS6C0+STAj0qOy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vdXNlcnMve3VzZXJfaWR9EsMCCgtFbmFibGVHcm91cBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlR3JvdXBSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVHcm91cFJlc3BvbnNlItQBkkGTAQoFR3JvdXASDEVuYWJsZSBncm91cBp8U2V0cyB0aGUgc3RhdGUgb2YgdGhlIGdyb3VwIGFzIGVuYWJsZWQuIFRoZSBgZW5hYmxlZGAgZmxhZyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgZ3JvdXAgY2FuIGJlIHVzZWQgZm9yIGFjY2VzcyBjb250cm9sLoLT5JMCNyIyL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS9lbmFibGU6ASoS1AMKDERpc2FibGVHcm91cBIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUdyb3VwUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUdyb3VwUmVzcG9uc2Ui4gKSQaACCgVHcm91cBINRGlzYWJsZSBncm91cBqHAlNldHMgdGhlIHN0YXRlIG9mIHRoZSBncm91cCBhcyBkaXNhYmxlZC4gVGhlIGdyb3VwIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgYWNjZXNzIGNvbnRyb2wgYW5kIHRoZSBleGlzdGluZyB1c2VycyBpbiB0aGUgZ3JvdXAgd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgYW55IHJlc291cmNlcyB0aGF0IGFyZSBhc3NpZ25lZCB0byB0aGUgZ3JvdXAuIE5vIG90aGVyIHVzZXJzIGNhbiBiZSBhZGRlZCB0byB0aGUgZ3JvdXAgd2hpbGUgaXQgaXMgZGlzYWJsZWQugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L2Rpc2FibGU6ASoS/QEKC0RlbGV0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUdyb3VwUmVzcG9uc2UijgGSQVgKBUdyb3VwEgxEZWxldGUgZ3JvdXAaQURlbGV0ZSBhbiBvcmdhbml6YXRpb24gZ3JvdXAgcGVybWFuZW50bHkgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zgtPkkwItKisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9EpMCCglMaXN0Um9sZXMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSb2xlc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSb2xlc1Jlc3BvbnNlIqoBkkGQAQoEUm9sZRITTGlzdCBwbGF0Zm9ybSByb2xlcxpzUmV0dXJucyBhIGxpc3Qgb2YgcGxhdGZvcm0gd2lkZSByb2xlcyBhdmFpbGFibGUgaW4gZW5pdHJlIEZyb250aWVyIGluc3RhbmNlIGFsb25nIHdpdGggdGhlaXIgYXNzb2NpYXRlZCBwZXJtaXNzaW9uc4LT5JMCEBIOL3YxYmV0YTEvcm9sZXMSvAIKFUxpc3RPcmdhbml6YXRpb25Sb2xlcxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2UirwGSQX8KBFJvbGUSF0xpc3Qgb3JnYW5pemF0aW9uIHJvbGVzGl5SZXR1cm5zIGEgbGlzdCBvZiBjdXN0b20gcm9sZXMgY3JlYXRlZCB1bmRlciBhbiBvcmdhbml6YXRpb24gd2l0aCB0aGVpciBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwInEiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzEvcCChZDcmVhdGVPcmdhbml6YXRpb25Sb2xlEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIucBkkGwAQoEUm9sZRIYQ3JlYXRlIG9yZ2FuaXphdGlvbiByb2xlGo0BQ3JlYXRlIGEgY3VzdG9tIHJvbGUgdW5kZXIgYW4gb3JnYW5pemF0aW9uLiBUaGlzIGN1c3RvbSByb2xlIHdpbGwgb25seSBiZSBhdmFpbGFibGUgZm9yIGFzc2lnbm1lbnQgdG8gdGhlIHByaW5jaXBsZXMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24ugtPkkwItIiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzOgRib2R5EqwCChNHZXRPcmdhbml6YXRpb25Sb2xlEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqUBkkFwCgRSb2xlEhVHZXQgb3JnYW5pemF0aW9uIHJvbGUaUVJldHVybnMgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24gYWxvbmcgd2l0aCBpdHMgYXNzb2NpYXRlZCBwZXJtaXNzaW9uc4LT5JMCLBIqL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcy97aWR9EvwCChZVcGRhdGVPcmdhbml6YXRpb25Sb2xlEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIuwBkkGwAQoEUm9sZRIYVXBkYXRlIG9yZ2FuaXphdGlvbiByb2xlGo0BVXBkYXRlIGEgY3VzdG9tIHJvbGUgdW5kZXIgYW4gb3JnYW5pemF0aW9uLiBUaGlzIGN1c3RvbSByb2xlIHdpbGwgb25seSBiZSBhdmFpbGFibGUgZm9yIGFzc2lnbm1lbnQgdG8gdGhlIHByaW5jaXBsZXMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24ugtPkkwIyGiovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzL3tpZH06BGJvZHkStwIKFkRlbGV0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2UipwGSQXIKBFJvbGUSGERlbGV0ZSBvcmdhbml6YXRpb24gcm9sZRpQRGVsZXRlIGEgY3VzdG9tIHJvbGUgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiBwZXJtYW5lbnRseS6C0+STAiwqKi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve2lkfRKaAgoRTGlzdE9yZ2FuaXphdGlvbnMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZSKZAZJBeAoMT3JnYW5pemF0aW9uEhJMaXN0IG9yZ2FuaXphdGlvbnMaVFJldHVybnMgYSBsaXN0IG9mIG9yZ2FuaXphdGlvbnMuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VySUQgb3Igb3JnYW5pemF0aW9uIHN0YXRlLoLT5JMCGBIWL3YxYmV0YTEvb3JnYW5pemF0aW9ucxLNAQoSQ3JlYXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZSJKkkEjCgxPcmdhbml6YXRpb24SE0NyZWF0ZSBvcmdhbml6YXRpb26C0+STAh4iFi92MWJldGExL29yZ2FuaXphdGlvbnM6BGJvZHkS4AEKD0dldE9yZ2FuaXphdGlvbhIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUmVzcG9uc2UiZpJBQAoMT3JnYW5pemF0aW9uEhBHZXQgb3JnYW5pemF0aW9uGh5HZXQgb3JnYW5pemF0aW9uIGJ5IElEIG9yIG5hbWWC0+STAh0SGy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfRLtAQoSVXBkYXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25SZXNwb25zZSJqkkE+CgxPcmdhbml6YXRpb24SE1VwZGF0ZSBvcmdhbml6YXRpb24aGVVwZGF0ZSBvcmdhbml6YXRpb24gYnkgSUSC0+STAiMaGy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfToEYm9keRKfAgoYTGlzdE9yZ2FuaXphdGlvblByb2plY3RzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZSKJAZJBWgoMT3JnYW5pemF0aW9uEhlHZXQgb3JnYW5pemF0aW9uIHByb2plY3RzGi9HZXQgYWxsIHByb2plY3RzIHRoYXQgYmVsb25nIHRvIGFuIG9yZ2FuaXphdGlvboLT5JMCJhIkL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzEo4CChZMaXN0T3JnYW5pemF0aW9uQWRtaW5zEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkFkbWluc1Jlc3BvbnNlIn+SQVIKDE9yZ2FuaXphdGlvbhIYTGlzdCBvcmdhbml6YXRpb24gYWRtaW5zGihSZXR1cm5zIGEgbGlzdCBhZG1pbnMgb2YgYW4gb3JnYW5pemF0aW9ugtPkkwIkEiIvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vYWRtaW5zEt8BChVMaXN0T3JnYW5pemF0aW9uVXNlcnMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlIlOSQScKDE9yZ2FuaXphdGlvbhIXTGlzdCBvcmdhbml6YXRpb24gdXNlcnOC0+STAiMSIS92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS91c2VycxLtAgoUQWRkT3JnYW5pemF0aW9uVXNlcnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSLjAZJBswEKDE9yZ2FuaXphdGlvbhIVQWRkIG9yZ2FuaXphdGlvbiB1c2VyGosBQWRkIGEgdXNlciB0byBhbiBvcmdhbml6YXRpb24uIEEgdXNlciBtdXN0IGV4aXN0cyBpbiBGcm9udGllciBiZWZvcmUgYWRkaW5nIGl0IHRvIGFuIG9yZy4gVGhpcyByZXF1ZXN0IHdpbGwgZmFpbCBpZiB0aGUgdXNlciBkb2Vzbid0IGV4aXN0c4LT5JMCJiIhL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzOgEqEpICChZSZW1vdmVPcmdhbml6YXRpb25Vc2VyEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlT3JnYW5pemF0aW9uVXNlclJlc3BvbnNlIoIBkkFMCgxPcmdhbml6YXRpb24SGFJlbW92ZSBvcmdhbml6YXRpb24gdXNlchoiUmVtb3ZlIGEgdXNlciBmcm9tIGFuIG9yZ2FuaXphdGlvboLT5JMCLSorL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzL3t1c2VyX2lkfRKWAgoSR2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKSAZJBZAoPT3JnYW5pemF0aW9uS3ljEh9HZXQgS1lDIGluZm8gb2YgYW4gb3JnYW5pemF0aW9uGjBHZXQgS1lDIGluZm8gb2YgYW4gb3JnYW5pemF0aW9uIHVzaW5nIElEIG9yIG5hbWWC0+STAiUSIy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0va3ljEoMCChxMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzEj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBo/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlImKSQS8KDE9yZ2FuaXphdGlvbhIfTGlzdCBvcmdhbml6YXRpb24gc2VydmljZSB1c2Vyc4LT5JMCKhIoL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3NlcnZpY2V1c2VycxK5AgobTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnNSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnNSZXNwb25zZSKaAZJBZAoMT3JnYW5pemF0aW9uEhhMaXN0IHBlbmRpbmcgaW52aXRhdGlvbnMaOlJldHVybnMgYWxsIHBlbmRpbmcgaW52aXRhdGlvbnMgcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb26C0+STAi0SKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMS9gIKHENyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2Ui1AGSQZoBCgxPcmdhbml6YXRpb24SC0ludml0ZSB1c2VyGn1JbnZpdGUgdXNlcnMgdG8gYW4gb3JnYW5pemF0aW9uLCBpZiB1c2VyIGlzIG5vdCByZWdpc3RlcmVkIG9uIHRoZSBwbGF0Zm9ybSwgaXQgd2lsbCBiZSBub3RpZmllZC4gSW52aXRhdGlvbnMgZXhwaXJlIGluIDcgZGF5c4LT5JMCMCIrL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9uczoBKhKzAgoZR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvbhI7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSKaAZJBXwoMT3JnYW5pemF0aW9uEhZHZXQgcGVuZGluZyBpbnZpdGF0aW9uGjdSZXR1cm5zIGEgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9ugtPkkwIyEjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0SmQMKHEFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2Ui9wGSQbEBCgxPcmdhbml6YXRpb24SGUFjY2VwdCBwZW5kaW5nIGludml0YXRpb24ahQFBY2NlcHQgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9uLiBUaGUgdXNlciB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvcmdhbml6YXRpb24gYW5kIGdyb3VwcyBkZWZpbmVkIGluIHRoZSBpbnZpdGF0aW9ugtPkkwI8IjcvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0vYWNjZXB0OgEqEr4CChxEZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uEj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBo/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlIpwBkkFhCgxPcmdhbml6YXRpb24SGURlbGV0ZSBwZW5kaW5nIGludml0YXRpb24aNkRlbGV0ZSBhIHBlbmRpbmcgaW52aXRhdGlvbiBxdWV1ZWQgZm9yIGFuIG9yZ2FuaXphdGlvboLT5JMCMiowL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9ucy97aWR9EtgDChdMaXN0T3JnYW5pemF0aW9uRG9tYWlucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkRvbWFpbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1Jlc3BvbnNlIsUCkkGSAgoMT3JnYW5pemF0aW9uEhBMaXN0IG9yZyBkb21haW5zGu8BUmV0dXJucyBhbGwgZG9tYWlucyB3aGl0ZWxpc3RlZCBmb3IgYW4gb3JnYW5pemF0aW9uIChib3RoIHBlbmRpbmcgYW5kIHZlcmlmaWVkIGlmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkIGZvciB0aGUgc3RhdGUpLiBUaGUgdmVyaWZpZWQgZG9tYWlucyBhbGxvdyB1c2VycyBlbWFpbCB3aXRoIHRoZSBvcmcncyB3aGl0ZWxpc3RlZCBkb21haW4gdG8gam9pbiB0aGUgb3JnYW5pemF0aW9uIHdpdGhvdXQgaW52aXRhdGlvbi6C0+STAikSJy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZG9tYWlucxL+BAoYQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSLoA5JBsgMKDE9yZ2FuaXphdGlvbhIRQ3JlYXRlIG9yZyBkb21haW4ajgNBZGQgYSBkb21haW4gdG8gYW4gb3JnYW5pemF0aW9uIHdoaWNoIGlmIHZlcmlmaWVkIGFsbG93cyBhbGwgdXNlcnMgb2YgdGhlIHNhbWUgZG9tYWluIHRvIGJlIHNpZ25lZCB1cCB0byB0aGUgb3JnYW5pemF0aW9uIHdpdGhvdXQgaW52aXRhdGlvbi4gVGhpcyBBUEkgZ2VuZXJhdGVzIGEgdmVyaWZpY2F0aW9uIHRva2VuIGZvciBhIGRvbWFpbiB3aGljaCBtdXN0IGJlIGFkZGVkIHRvIHlvdXIgZG9tYWluJ3MgRE5TIHByb3ZpZGVyIGFzIGEgVFhUIHJlY29yZCBzaG91bGQgYmUgdmVyaWZpZWQgd2l0aCBGcm9udGllciBWZXJpZnlPcmdhbml6YXRpb25Eb21haW4gQVBJIGJlZm9yZSBpdCBjYW4gYmUgdXNlZCBhcyBhbiBPcmdhbml6YXRpb24ncyB0cnVzdGVkIGRvbWFpbiB0byBzaWduIHVwIHVzZXJzLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zOgEqErcCChhEZWxldGVPcmdhbml6YXRpb25Eb21haW4SOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlIqEBkkFqCgxPcmdhbml6YXRpb24SEURlbGV0ZSBvcmcgZG9tYWluGkdSZW1vdmUgYSBkb21haW4gZnJvbSB0aGUgbGlzdCBvZiBhbiBvcmdhbml6YXRpb24ncyB0cnVzdGVkIGRvbWFpbnMgbGlzdILT5JMCLiosL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zL3tpZH0S4gIKFUdldE9yZ2FuaXphdGlvbkRvbWFpbhI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2Ui1QGSQZ0BCgxPcmdhbml6YXRpb24SDkdldCBvcmcgZG9tYWluGn1HZXQgYSBkb21haW4gZnJvbSB0aGUgbGlzdCBvZiBhbiBvcmdhbml6YXRpb24ncyB3aGl0ZWxpc3RlZCBkb21haW5zLiBSZXR1cm5zIGJvdGggdmVyaWZpZWQgYW5kIHVudmVyaWZpZWQgZG9tYWlucyBieSB0aGVpciBJRILT5JMCLhIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zL3tpZH0SpQQKGFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpbhI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2UijwOSQc0CCgxPcmdhbml6YXRpb24SEVZlcmlmeSBvcmcgZG9tYWluGqkCVmVyaWZ5IGEgZG9tYWluIGZvciBhbiBvcmdhbml6YXRpb24gd2l0aCBhIHZlcmlmaWNhdGlvbiB0b2tlbiBnZW5lcmF0ZWQgYnkgRnJvbnRpZXIgR2VuZXJhdGVEb21haW5WZXJpZmljYXRpb25Ub2tlbiBBUEkuIFRoZSB0b2tlbiBtdXN0IGJlIGFkZGVkIHRvIHlvdXIgZG9tYWluJ3MgRE5TIHByb3ZpZGVyIGFzIGEgVFhUIHJlY29yZCBiZWZvcmUgaXQgY2FuIGJlIHZlcmlmaWVkLiBUaGlzIEFQSSByZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgZG9tYWluIChwZW5kaW5nL3ZlcmlmaWVkKSBhZnRlciB2ZXJpZmljYXRpb24ugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfS92ZXJpZnk6ASoSkgMKEEpvaW5Pcmdhbml6YXRpb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkpvaW5Pcmdhbml6YXRpb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Kb2luT3JnYW5pemF0aW9uUmVzcG9uc2UilAKSQeEBCgxPcmdhbml6YXRpb24SEUpvaW4gb3JnYW5pemF0aW9uGr0BQWxsb3dzIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHRvIGpvaW4gdGhlIE9yZyBpZiBvbmUgaXMgbm90IGEgcGFydCBvZiBpdC4gVGhlIHVzZXIgd2lsbCBvbmx5IGJlIGFibGUgdG8gam9pbiB3aGVuIHRoZSB1c2VyIGVtYWlsJ3MgZG9tYWluIG1hdGNoZXMgdGhlIG9yZ2FuaXphdGlvbidzIHdoaXRlbGlzdGVkIGRvbWFpbnMugtPkkwIpIiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2pvaW46ASoS2QIKEkVuYWJsZU9yZ2FuaXphdGlvbhI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlT3JnYW5pemF0aW9uUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlT3JnYW5pemF0aW9uUmVzcG9uc2Ui1QGSQaQBCgxPcmdhbml6YXRpb24SE0VuYWJsZSBvcmdhbml6YXRpb24af1NldHMgdGhlIHN0YXRlIG9mIHRoZSBvcmdhbml6YXRpb24gYXMgZW5hYmxlZC4gVGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBvcmcgd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgb3JnYW5pemF0aW9uIHJlc291cmNlcy6C0+STAiciIi92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9lbmFibGU6ASoS5AIKE0Rpc2FibGVPcmdhbml6YXRpb24SNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVPcmdhbml6YXRpb25SZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlT3JnYW5pemF0aW9uUmVzcG9uc2Ui3QGSQasBCgxPcmdhbml6YXRpb24SFERpc2FibGUgb3JnYW5pemF0aW9uGoQBU2V0cyB0aGUgc3RhdGUgb2YgdGhlIG9yZ2FuaXphdGlvbiBhcyBkaXNhYmxlZC4gVGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBvcmcgd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgYW55IG9yZ2FuaXphdGlvbiByZXNvdXJjZXMugtPkkwIoIiMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vZGlzYWJsZToBKhLGAgoSRGVsZXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25SZXNwb25zZSLCAZJBmwEKDE9yZ2FuaXphdGlvbhITRGVsZXRlIG9yZ2FuaXphdGlvbhp2RGVsZXRlIGFuIG9yZ2FuaXphdGlvbiBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgcGVybWFuZW50bHkuIFRoZSBvcmdhbml6YXRpb24gdXNlcnMgd2lsbCBub3QgYmUgZGVsZXRlZCBmcm9tIEZyb250aWVyLoLT5JMCHSobL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9Eq8BCg1DcmVhdGVQcm9qZWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9qZWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc3BvbnNlIjuSQRkKB1Byb2plY3QSDkNyZWF0ZSBwcm9qZWN0gtPkkwIZIhEvdjFiZXRhMS9wcm9qZWN0czoEYm9keRK7AQoKR2V0UHJvamVjdBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb2plY3RSZXNwb25zZSJQkkEvCgdQcm9qZWN0EgtHZXQgcHJvamVjdBoXUmV0dXJucyBhIHByb2plY3QgYnkgSUSC0+STAhgSFi92MWJldGExL3Byb2plY3RzL3tpZH0SzQEKDVVwZGF0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzcG9uc2UiWZJBMgoHUHJvamVjdBIOVXBkYXRlIHByb2plY3QaF1VwZGF0ZXMgYSBwcm9qZWN0IGJ5IElEgtPkkwIeGhYvdjFiZXRhMS9wcm9qZWN0cy97aWR9OgRib2R5EvMBChFMaXN0UHJvamVjdEFkbWlucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RBZG1pbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEFkbWluc1Jlc3BvbnNlInOSQUsKB1Byb2plY3QSE0xpc3QgcHJvamVjdCBhZG1pbnMaK1JldHVybnMgYSBjb2xsZWN0aW9uIG9mIGFkbWlucyBvZiBhIHByb2plY3SC0+STAh8SHS92MWJldGExL3Byb2plY3RzL3tpZH0vYWRtaW5zEpgCChBMaXN0UHJvamVjdFVzZXJzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFVzZXJzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RVc2Vyc1Jlc3BvbnNlIpoBkkFzCgdQcm9qZWN0EhJMaXN0IHByb2plY3QgdXNlcnMaVFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIHVzZXJzIG9mIGEgcHJvamVjdC4gRmlsdGVyIGJ5IHVzZXIgcGVybWlzc2lvbnMgaXMgc3VwcG9ydGVkLoLT5JMCHhIcL3YxYmV0YTEvcHJvamVjdHMve2lkfS91c2VycxKRAgoXTGlzdFByb2plY3RTZXJ2aWNlVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZSJ/kkFRCgdQcm9qZWN0EhlMaXN0IHByb2plY3Qgc2VydmljZXVzZXJzGitSZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB1c2VycyBvZiBhIHByb2plY3QugtPkkwIlEiMvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3NlcnZpY2V1c2VycxL0AQoRTGlzdFByb2plY3RHcm91cHMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0R3JvdXBzUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RHcm91cHNSZXNwb25zZSJ0kkFMCgdQcm9qZWN0EhNMaXN0IHByb2plY3QgZ3JvdXBzGixSZXR1cm5zIGEgY29sbGVjdGlvbiBvZiBncm91cHMgb2YgYSBwcm9qZWN0LoLT5JMCHxIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9ncm91cHMSuAEKDUVuYWJsZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVQcm9qZWN0UmVzcG9uc2UiRJJBGQoHUHJvamVjdBIORW5hYmxlIHByb2plY3SC0+STAiIiHS92MWJldGExL3Byb2plY3RzL3tpZH0vZW5hYmxlOgEqEr0BCg5EaXNhYmxlUHJvamVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZVByb2plY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlUHJvamVjdFJlc3BvbnNlIkaSQRoKB1Byb2plY3QSD0Rpc2FibGUgcHJvamVjdILT5JMCIyIeL3YxYmV0YTEvcHJvamVjdHMve2lkfS9kaXNhYmxlOgEqEuIBCg1EZWxldGVQcm9qZWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc3BvbnNlIm6SQU0KB1Byb2plY3QSDkRlbGV0ZSBQcm9qZWN0GjJEZWxldGUgYSBwcm9qZWN0IGFsbCBvZiBpdHMgcmVsYXRpb25zIHBlcm1hbmVudGx5LoLT5JMCGCoWL3YxYmV0YTEvcHJvamVjdHMve2lkfRK9AQoMQ3JlYXRlUG9saWN5Ei4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lSZXNwb25zZSJMkkEqCgZQb2xpY3kSDUNyZWF0ZSBwb2xpY3kaEUNyZWF0ZXMgYSBwb2xpY3kggtPkkwIZIhEvdjFiZXRhMS9wb2xpY2llczoEYm9keRK1AQoJR2V0UG9saWN5EisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQb2xpY3lSZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQb2xpY3lSZXNwb25zZSJNkkEsCgZQb2xpY3kSCkdldCBwb2xpY3kaFlJldHVybnMgYSBwb2xpY3kgYnkgSUSC0+STAhgSFi92MWJldGExL3BvbGljaWVzL3tpZH0SuQIKDExpc3RQb2xpY2llcxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBvbGljaWVzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBvbGljaWVzUmVzcG9uc2UixwGSQaoBCgZQb2xpY3kSEUxpc3QgYWxsIHBvbGljaWVzGowBTGlzdHMgYWxsIHRoZSBwb2xpY2llcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uLCBwcm9qZWN0LCB1c2VyLCByb2xlIGFuZCBncm91cC6C0+STAhMSES92MWJldGExL3BvbGljaWVzEscBCgxVcGRhdGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBvbGljeVJlc3BvbnNlIlaSQS8KBlBvbGljeRINVXBkYXRlIHBvbGljeRoWVXBkYXRlcyBhIHBvbGljeSBieSBJRILT5JMCHhoWL3YxYmV0YTEvcG9saWNpZXMve2lkfToEYm9keRLcAQoMRGVsZXRlUG9saWN5Ei4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQb2xpY3lSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQb2xpY3lSZXNwb25zZSJrkkFKCgZQb2xpY3kSDURlbGV0ZSBQb2xpY3kaMURlbGV0ZSBhIHBvbGljeSBhbGwgb2YgaXRzIHJlbGF0aW9ucyBwZXJtYW5lbnRseS6C0+STAhgqFi92MWJldGExL3BvbGljaWVzL3tpZH0SiQIKFkNyZWF0ZVBvbGljeUZvclByb2plY3QSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVzcG9uc2UiepJBQgoGUG9saWN5EhlDcmVhdGUgUG9saWN5IGZvciBQcm9qZWN0Gh1DcmVhdGUgYSBwb2xpY3kgZm9yIGEgcHJvamVjdILT5JMCLyInL3YxYmV0YTEvcG9saWNpZXMvcHJvamVjdHMve3Byb2plY3RfaWR9OgRib2R5ErUBCg5DcmVhdGVSZWxhdGlvbhIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUmVsYXRpb25SZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSZWxhdGlvblJlc3BvbnNlIj6SQRsKCFJlbGF0aW9uEg9DcmVhdGUgcmVsYXRpb26C0+STAhoiEi92MWJldGExL3JlbGF0aW9uczoEYm9keRLCAQoLR2V0UmVsYXRpb24SLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFJlbGF0aW9uUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UmVsYXRpb25SZXNwb25zZSJUkkEyCghSZWxhdGlvbhIMR2V0IHJlbGF0aW9uGhhSZXR1cm5zIGEgcmVsYXRpb24gYnkgSUSC0+STAhkSFy92MWJldGExL3JlbGF0aW9ucy97aWR9EpACCg5EZWxldGVSZWxhdGlvbhIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUmVsYXRpb25SZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSZWxhdGlvblJlc3BvbnNlIpgBkkFOCghSZWxhdGlvbhIPRGVsZXRlIHJlbGF0aW9uGjFSZW1vdmUgYSBzdWJqZWN0IGhhdmluZyBhIHJlbGF0aW9uIGZyb20gYW4gb2JqZWN0gtPkkwJBKj8vdjFiZXRhMS9yZWxhdGlvbnMve3JlbGF0aW9ufS9vYmplY3Qve29iamVjdH0vc3ViamVjdC97c3ViamVjdH0SugEKD0xpc3RQZXJtaXNzaW9ucxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBlcm1pc3Npb25zUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBlcm1pc3Npb25zUmVzcG9uc2UiQJJBIQoKUGVybWlzc2lvbhITR2V0IGFsbCBwZXJtaXNzaW9uc4LT5JMCFhIUL3YxYmV0YTEvcGVybWlzc2lvbnMS0AEKDUdldFBlcm1pc3Npb24SLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBlcm1pc3Npb25SZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQZXJtaXNzaW9uUmVzcG9uc2UiXJJBOAoKUGVybWlzc2lvbhIOR2V0IHBlcm1pc3Npb24aGlJldHVybnMgYSBwZXJtaXNzaW9uIGJ5IElEgtPkkwIbEhkvdjFiZXRhMS9wZXJtaXNzaW9ucy97aWR9Eu8BCg5MaXN0TmFtZXNwYWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE5hbWVzcGFjZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TmFtZXNwYWNlc1Jlc3BvbnNlIniSQVoKCU5hbWVzcGFjZRISR2V0IGFsbCBuYW1lc3BhY2VzGjlSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBuYW1lc3BhY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2WC0+STAhUSEy92MWJldGExL25hbWVzcGFjZXMSyQEKDEdldE5hbWVzcGFjZRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TmFtZXNwYWNlUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TmFtZXNwYWNlUmVzcG9uc2UiWJJBNQoJTmFtZXNwYWNlEg1HZXQgbmFtZXNwYWNlGhlSZXR1cm5zIGEgbmFtZXNwYWNlIGJ5IElEgtPkkwIaEhgvdjFiZXRhMS9uYW1lc3BhY2VzL3tpZH0S2QEKFExpc3RQcm9qZWN0UmVzb3VyY2VzEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFJlc291cmNlc1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UmVzb3VyY2VzUmVzcG9uc2UiUJJBHQoIUmVzb3VyY2USEUdldCBhbGwgcmVzb3VyY2VzgtPkkwIqEigvdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzEoECChVDcmVhdGVQcm9qZWN0UmVzb3VyY2USNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlInWSQTwKCFJlc291cmNlEg9DcmVhdGUgcmVzb3VyY2UaH0NyZWF0ZXMgYSByZXNvdXJjZSBpbiBhIHByb2plY3SC0+STAjAiKC92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXM6BGJvZHkS9QEKEkdldFByb2plY3RSZXNvdXJjZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc291cmNlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc291cmNlUmVzcG9uc2UicpJBOgoIUmVzb3VyY2USDEdldCByZXNvdXJjZRogUmV0dXJucyBhIHByb2plY3QgcmVzb3VyY2UgYnkgSUSC0+STAi8SLS92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMve2lkfRKGAgoVVXBkYXRlUHJvamVjdFJlc291cmNlEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSJ6kkE8CghSZXNvdXJjZRIPVXBkYXRlIHJlc291cmNlGh9VcGRhdGVzIGEgcmVzb3VyY2UgaW4gYSBwcm9qZWN0gtPkkwI1Gi0vdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzL3tpZH06BGJvZHkSjwIKFURlbGV0ZVByb2plY3RSZXNvdXJjZRI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc291cmNlUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UiggGSQUoKCFJlc291cmNlEg9EZWxldGUgcmVzb3VyY2UaLURlbGV0ZXMgYSByZXNvdXJjZSBmcm9tIGEgcHJvamVjdCBwZXJtYW5lbnRseYLT5JMCLyotL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlcy97aWR9EvsDChdDaGVja1Jlc291cmNlUGVybWlzc2lvbhI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tSZXNvdXJjZVBlcm1pc3Npb25SZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja1Jlc291cmNlUGVybWlzc2lvblJlc3BvbnNlIugCkkHLAgoFQXV0aHoSBUNoZWNrGroCUmV0dXJucyB0cnVlIGlmIGEgcHJpbmNpcGFsIGhhcyByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSByZXNvdXJjZSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjxici8+IE5vdGUgdGhlIHByaW5jaXBhbCBjYW4gYmUgYSB1c2VyIG9yIGEgc2VydmljZSBhY2NvdW50LiBGcm9udGllciB3aWxsIGV4dHJhY3QgcHJpbmNpcGFsIGZyb20gdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHNlc3Npb24gY29va2llIChpZiBhbnkpLCBvciB0aGUgY2xpZW50IGlkIGFuZCBzZWNyZXQgKGluIGNhc2Ugb2Ygc2VydmljZSB1c2Vycykgb3IgdGhlIGFjY2VzcyB0b2tlbi6C0+STAhMiDi92MWJldGExL2NoZWNrOgEqErMEChRCYXRjaENoZWNrUGVybWlzc2lvbhI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmF0Y2hDaGVja1Blcm1pc3Npb25SZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvblJlc3BvbnNlIqkDkkGHAwoFQXV0aHoSC0JhdGNoIGNoZWNrGvACUmV0dXJucyB0cnVlIGlmIGEgcHJpbmNpcGFsIGhhcyByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSByZXNvdXJjZSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjxici8+IE5vdGUgdGhlIHByaW5jaXBhbCBjYW4gYmUgYSB1c2VyIG9yIGEgc2VydmljZSBhY2NvdW50LCBhbmQgRnJvbnRpZXIgd2lsbCB0aGUgY3JlZGVudGlhbHMgZnJvbSB0aGUgY3VycmVudCBsb2dnZWQgaW4gcHJpbmNpcGFsIGZyb20gdGhlIHNlc3Npb24gY29va2llIChpZiBhbnkpLCBvciB0aGUgY2xpZW50IGlkIGFuZCBzZWNyZXQgKGluIGNhc2Ugb2Ygc2VydmljZSB1c2Vycykgb3IgdGhlIGFjY2VzcyB0b2tlbiAoaW4gY2FzZSBvZiBodW1hbiB1c2VyIGFjY291bnRzKS6C0+STAhgiEy92MWJldGExL2JhdGNoY2hlY2s6ASoStQEKB0dldEpXS3MSKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEpXS3NSZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRKV0tzUmVzcG9uc2UiU5JBHAoFQXV0aHoSE0dldCB3ZWxsIGtub3duIEpXS3OC0+STAi4SEi92MWJldGExL2F1dGgvandrc1oYEhYvLndlbGwta25vd24vandrcy5qc29uEnEKDExpc3RTZXNzaW9ucxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlc3Npb25zUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlc3Npb25zUmVzcG9uc2UiABJ0Cg1SZXZva2VTZXNzaW9uEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VTZXNzaW9uUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2b2tlU2Vzc2lvblJlc3BvbnNlIgASegoPUGluZ1VzZXJTZXNzaW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QaW5nVXNlclNlc3Npb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QaW5nVXNlclNlc3Npb25SZXNwb25zZSIAErcCChJMaXN0QXV0aFN0cmF0ZWdpZXMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBdXRoU3RyYXRlZ2llc1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBdXRoU3RyYXRlZ2llc1Jlc3BvbnNlIrMBkkGaAQoFQXV0aG4SHkxpc3QgYXV0aGVudGljYXRpb24gc3RyYXRlZ2llcxpxUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpdHkgcHJvdmlkZXJzIGNvbmZpZ3VyZWQgb24gYW4gaW5zdGFuY2UgbGV2ZWwgaW4gRnJvbnRpZXIuIGUuZyBHb29nbGUsIEF6dXJlQUQsIEdpdGh1YiBldGOC0+STAg8SDS92MWJldGExL2F1dGgS6QQKDEF1dGhlbnRpY2F0ZRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aGVudGljYXRlUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aGVudGljYXRlUmVzcG9uc2Ui9wOSQZgDCgVBdXRobhIcQXV0aGVudGljYXRlIHdpdGggYSBzdHJhdGVneRrwAkF1dGhlbnRpY2F0ZSBhIHVzZXIgd2l0aCBhIHN0cmF0ZWd5LiBCeSBkZWZhdWx0LCBhZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uIG5vIG9wZXJhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCB0byBhcHBseSByZWRpcmVjdGlvbiBpbiBjYXNlIG9mIGJyb3dzZXJzLCBwcm92aWRlIGEgdXJsIGluIHRoZSBhdXRoZW50aWNhdGUgcmVxdWVzdCBib2R5IHRoYXQgd2lsbCBiZSB1c2VkIGZvciByZWRpcmVjdGlvbiBhZnRlciBhdXRoZW50aWNhdGlvbi4gQWxzbyBzZXQgcmVkaXJlY3QgYXMgdHJ1ZSBmb3IgcmVkaXJlY3RpbmcgdGhlIHVzZXIgcmVxdWVzdCB0byB0aGUgcmVkaXJlY3RfdXJsIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24ugtPkkwJVEiYvdjFiZXRhMS9hdXRoL3JlZ2lzdGVyL3tzdHJhdGVneV9uYW1lfVorIiYvdjFiZXRhMS9hdXRoL3JlZ2lzdGVyL3tzdHJhdGVneV9uYW1lfToBKhK9BAoMQXV0aENhbGxiYWNrEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoQ2FsbGJhY2tSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoQ2FsbGJhY2tSZXNwb25zZSLLA5JBjAMKBUF1dGhuEhhDYWxsYmFjayBmcm9tIGEgc3RyYXRlZ3ka6AJDYWxsYmFjayBmcm9tIGEgc3RyYXRlZ3kuIFRoaXMgaXMgdGhlIGVuZHBvaW50IHdoZXJlIHRoZSBzdHJhdGVneSB3aWxsIHJlZGlyZWN0IHRoZSB1c2VyIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uIFRoaXMgZW5kcG9pbnQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgY29kZSBhbmQgc3RhdGUgcXVlcnkgcGFyYW1ldGVycy4gVGhlIGNvZGUgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgYWNjZXNzIHRva2VuIGZyb20gdGhlIHN0cmF0ZWd5IGFuZCB0aGUgc3RhdGUgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgcmV0dXJuX3RvIHVybCBmcm9tIHRoZSBzZXNzaW9uIGFuZCByZWRpcmVjdCB0aGUgdXNlciB0byB0aGF0IHVybC6C0+STAjUSFi92MWJldGExL2F1dGgvY2FsbGJhY2taGyIWL3YxYmV0YTEvYXV0aC9jYWxsYmFjazoBKhLCAwoJQXV0aFRva2VuEisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoVG9rZW5SZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoVG9rZW5SZXNwb25zZSLZApJBtwIKBUF1dGhuEipHZW5lcmF0ZSBhY2Nlc3MgdG9rZW4gYnkgZ2l2ZW4gY3JlZGVudGlhbHMagQJBY2Nlc3MgdG9rZW4gY2FuIGJlIGdlbmVyYXRlZCBieSBwcm92aWRpbmcgdGhlIGNyZWRlbnRpYWxzIGluIHRoZSByZXF1ZXN0IGJvZHkvaGVhZGVyLiBUaGUgY3JlZGVudGlhbHMgY2FuIGJlIGNsaWVudCBpZCBhbmQgc2VjcmV0IG9yIHNlcnZpY2UgYWNjb3VudCBnZW5lcmF0ZWQga2V5IGp3dC4gVXNlIHRoZSBnZW5lcmF0ZWQgYWNjZXNzIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyIHRvIGFjY2VzcyB0aGUgZnJvbnRpZXIgcmVzb3VyY2VzLoLT5JMCGCITL3YxYmV0YTEvYXV0aC90b2tlbjoBKhLBAQoKQXV0aExvZ291dBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aExvZ291dFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhMb2dvdXRSZXNwb25zZSJWkkEfCgVBdXRobhIWTG9nb3V0IGZyb20gYSBzdHJhdGVneYLT5JMCLhIUL3YxYmV0YTEvYXV0aC9sb2dvdXRaFioUL3YxYmV0YTEvYXV0aC9sb2dvdXQSrgIKD0xpc3RNZXRhU2NoZW1hcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE1ldGFTY2hlbWFzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE1ldGFTY2hlbWFzUmVzcG9uc2UiswGSQZIBCgpNZXRhU2NoZW1hEhBMaXN0IG1ldGFzY2hlbWFzGnJSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbWV0YXNjaGVtYXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBsZXZlbCBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhcSFS92MWJldGExL21ldGEvc2NoZW1hcxKfBQoQQ3JlYXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU1ldGFTY2hlbWFSZXNwb25zZSKhBJJB+gMKCk1ldGFTY2hlbWESEUNyZWF0ZSBtZXRhc2NoZW1hGtgDQ3JlYXRlIGEgbmV3IG1ldGFkYXRhIHNjaGVtYS4gVGhlIG1ldGFzY2hlbWEgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMuIFRoZSBtZXRhc2NoZW1hICoqc2NoZW1hKiogbXVzdCBiZSBhIHZhbGlkIEpTT04gc2NoZW1hLlBsZWFzZSByZWZlciB0byBodHRwczovL2pzb24tc2NoZW1hLm9yZy8gdG8ga25vdyBtb3JlIGFib3V0IGpzb24gc2NoZW1hLiA8YnIvPipFeGFtcGxlOiogYHtuYW1lOiJ1c2VyIixzY2hlbWE6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJsYWJlbCI6eyJ0eXBlIjoib2JqZWN0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9fSwiZGVzY3JpcHRpb24iOnsidHlwZSI6InN0cmluZyJ9fX19YILT5JMCHSIVL3YxYmV0YTEvbWV0YS9zY2hlbWFzOgRib2R5EtMBCg1HZXRNZXRhU2NoZW1hEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRNZXRhU2NoZW1hUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TWV0YVNjaGVtYVJlc3BvbnNlIl+SQToKCk1ldGFTY2hlbWESDkdldCBtZXRhc2NoZW1hGhxHZXQgYSBtZXRhZGF0YSBzY2hlbWEgYnkgSUQugtPkkwIcEhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfRLBBAoQVXBkYXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU1ldGFTY2hlbWFSZXNwb25zZSLDA5JBlwMKCk1ldGFTY2hlbWESEVVwZGF0ZSBtZXRhc2NoZW1hGvUCVXBkYXRlIGEgbWV0YWRhdGEgc2NoZW1hLiBPbmx5IGBzY2hlbWFgIGZpZWxkIG9mIGEgbWV0YXNjaGVtYSBjYW4gYmUgdXBkYXRlZC4gVGhlIG1ldGFzY2hlbWEgYHNjaGVtYWAgbXVzdCBiZSBhIHZhbGlkIEpTT04gc2NoZW1hLlBsZWFzZSByZWZlciB0byBodHRwczovL2pzb24tc2NoZW1hLm9yZy8gdG8ga25vdyBtb3JlIGFib3V0IGpzb24gc2NoZW1hLiA8YnIvPipFeGFtcGxlOiogYHtuYW1lOiJ1c2VyIixzY2hlbWE6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJsYWJlbCI6eyJ0eXBlIjoib2JqZWN0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9fSwiZGVzY3JpcHRpb24iOnsidHlwZSI6InN0cmluZyJ9fX19YILT5JMCIhoaL3YxYmV0YTEvbWV0YS9zY2hlbWFzL3tpZH06BGJvZHkS4wQKEERlbGV0ZU1ldGFTY2hlbWESMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU1ldGFTY2hlbWFSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVNZXRhU2NoZW1hUmVzcG9uc2Ui5QOSQb8DCgpNZXRhU2NoZW1hEhFEZWxldGUgbWV0YXNjaGVtYRqdA0RlbGV0ZSBhIG1ldGFkYXRhIHNjaGVtYSBwZXJtYW5lbnRseS4gT25jZSBkZWxldGVkIHRoZSBtZXRhc2NoZW1hIHdvbid0IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIG1ldGFkYXRhLiBGb3IgZXhhbXBsZSwgaWYgYSBtZXRhc2NoZW1hKHdpdGggYGxhYmVsYCBhbmQgYGRlc2NyaXB0aW9uYCBmaWVsZHMpIGlzIHVzZWQgdG8gdmFsaWRhdGUgdGhlIG1ldGFkYXRhIG9mIGEgdXNlciwgdGhlbiBkZWxldGluZyB0aGUgbWV0YXNjaGVtYSB3aWxsIG5vdCB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEgb2YgdGhlIHVzZXIgYW5kIG1ldGFkYXRhIGZpZWxkIGNhbiBjb250YWluIGFueSBrZXktdmFsdWUgcGFpcihhbmQgc2F5IGFub3RoZXIgZmllbGQgY2FsbGVkIGBmb29gIGNhbiBiZSBpbnNlcnRlZCBpbiBhIHVzZXIncyBtZXRhZGF0YSkugtPkkwIcKhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfRLgAgoZTGlzdE9yZ2FuaXphdGlvbkF1ZGl0TG9ncxI7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkF1ZGl0TG9nc1JlcXVlc3QaPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25BdWRpdExvZ3NSZXNwb25zZSLHAYgCAZJBjwEKCEF1ZGl0TG9nEg9MaXN0IGF1ZGl0IGxvZ3MacFJldHVybnMgYSBsaXN0IG9mIGF1ZGl0IGxvZ3Mgb2YgYW4gb3JnYW5pemF0aW9uIGluIEZyb250aWVyLiBERVBSRUNBVEVEOiBVc2UgYWRtaW4gTGlzdEF1ZGl0UmVjb3JkcyBBUEkgaW5zdGVhZC5YAYLT5JMCKxIpL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9hdWRpdGxvZ3MS1QIKG0NyZWF0ZU9yZ2FuaXphdGlvbkF1ZGl0TG9ncxI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uQXVkaXRMb2dzUmVzcG9uc2UitgGIAgGSQXwKCEF1ZGl0TG9nEhBDcmVhdGUgYXVkaXQgbG9nGlxDcmVhdGUgbmV3IGF1ZGl0IGxvZ3MgaW4gYSBiYXRjaC4gREVQUkVDQVRFRDogVXNlIExpc3RBdWRpdFJlY29yZHMgQVBJIGluc3RlYWQgd2l0aCBmaWx0ZXJzLlgBgtPkkwIuIikvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2F1ZGl0bG9nczoBKhK1AgoXR2V0T3JnYW5pemF0aW9uQXVkaXRMb2cSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkF1ZGl0TG9nUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uQXVkaXRMb2dSZXNwb25zZSKiAYgCAZJBZgoIQXVkaXRMb2cSDUdldCBhdWRpdCBsb2caSUdldCBhbiBhdWRpdCBsb2cgYnkgSUQuIERFUFJFQ0FURUQ6IFVzZSBhZG1pbiBHZXRBdWRpdFJlY29yZCBBUEkgaW5zdGVhZC5YAYLT5JMCMBIuL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9hdWRpdGxvZ3Mve2lkfRKJAgoTRGVzY3JpYmVQcmVmZXJlbmNlcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVzY3JpYmVQcmVmZXJlbmNlc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlc2NyaWJlUHJlZmVyZW5jZXNSZXNwb25zZSKCAZJBXAoKUHJlZmVyZW5jZRIURGVzY3JpYmUgcHJlZmVyZW5jZXMaOFJldHVybnMgYSBsaXN0IG9mIGFsbCBwcmVmZXJlbmNlcyBzdXBwb3J0ZWQgYnkgRnJvbnRpZXIugtPkkwIdEhsvdjFiZXRhMS9wcmVmZXJlbmNlcy90cmFpdHMSxAMKHUNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzEj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVzcG9uc2UinwKSQekBCgpQcmVmZXJlbmNlEh9DcmVhdGUgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzGrkBQ3JlYXRlIGEgbmV3IG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcy4gVGhlIG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcyAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbiBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiwiJy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9wcmVmZXJlbmNlczoBKhKlAgobTGlzdE9yZ2FuaXphdGlvblByZWZlcmVuY2VzEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXNwb25zZSKGAZJBVAoKUHJlZmVyZW5jZRIdTGlzdCBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMaJ0xpc3QgYW4gb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3ByZWZlcmVuY2VzEpwDChhDcmVhdGVQcm9qZWN0UHJlZmVyZW5jZXMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlIoYCkkHVAQoKUHJlZmVyZW5jZRIaQ3JlYXRlIHByb2plY3QgcHJlZmVyZW5jZXMaqgFDcmVhdGUgYSBuZXcgcHJvamVjdCBwcmVmZXJlbmNlcy4gVGhlIHByb2plY3QgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwcm9qZWN0IGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJyIiL3YxYmV0YTEvcHJvamVjdHMve2lkfS9wcmVmZXJlbmNlczoBKhKFAgoWTGlzdFByb2plY3RQcmVmZXJlbmNlcxI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZSJ2kkFJCgpQcmVmZXJlbmNlEhhMaXN0IHByb2plY3QgcHJlZmVyZW5jZXMaIUxpc3QgYSBwcm9qZWN0IHByZWZlcmVuY2VzIGJ5IElELoLT5JMCJBIiL3YxYmV0YTEvcHJvamVjdHMve2lkfS9wcmVmZXJlbmNlcxKMAwoWQ3JlYXRlR3JvdXBQcmVmZXJlbmNlcxI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZSL8AZJBzQEKClByZWZlcmVuY2USGENyZWF0ZSBncm91cCBwcmVmZXJlbmNlcxqkAUNyZWF0ZSBhIG5ldyBncm91cCBwcmVmZXJlbmNlcy4gVGhlIGdyb3VwIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZ3JvdXAgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIlIiAvdjFiZXRhMS9ncm91cHMve2lkfS9wcmVmZXJlbmNlczoBKhL5AQoUTGlzdEdyb3VwUHJlZmVyZW5jZXMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFByZWZlcmVuY2VzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZSJwkkFFCgpQcmVmZXJlbmNlEhZMaXN0IGdyb3VwIHByZWZlcmVuY2VzGh9MaXN0IGEgZ3JvdXAgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIiEiAvdjFiZXRhMS9ncm91cHMve2lkfS9wcmVmZXJlbmNlcxKEAwoVQ3JlYXRlVXNlclByZWZlcmVuY2VzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSL3AZJByQEKClByZWZlcmVuY2USF0NyZWF0ZSB1c2VyIHByZWZlcmVuY2VzGqEBQ3JlYXRlIGEgbmV3IHVzZXIgcHJlZmVyZW5jZXMuIFRoZSB1c2VyIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgdXNlciBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiQiHy92MWJldGExL3VzZXJzL3tpZH0vcHJlZmVyZW5jZXM6ASoS8wEKE0xpc3RVc2VyUHJlZmVyZW5jZXMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlclByZWZlcmVuY2VzUmVzcG9uc2UibZJBQwoKUHJlZmVyZW5jZRIVTGlzdCB1c2VyIHByZWZlcmVuY2VzGh5MaXN0IGEgdXNlciBwcmVmZXJlbmNlcyBieSBJRC6C0+STAiESHy92MWJldGExL3VzZXJzL3tpZH0vcHJlZmVyZW5jZXMSoQMKHENyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXMSPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2Ui/wGSQdEBCgpQcmVmZXJlbmNlEh9DcmVhdGUgY3VycmVudCB1c2VyIHByZWZlcmVuY2VzGqEBQ3JlYXRlIGEgbmV3IHVzZXIgcHJlZmVyZW5jZXMuIFRoZSB1c2VyIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgdXNlciBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiQiHy92MWJldGExL3VzZXJzL3NlbGYvcHJlZmVyZW5jZXM6ASoSkAIKGkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2UidZJBSwoKUHJlZmVyZW5jZRIdTGlzdCBjdXJyZW50IHVzZXIgcHJlZmVyZW5jZXMaHkxpc3QgYSB1c2VyIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMvc2VsZi9wcmVmZXJlbmNlcxKTAgoUQ3JlYXRlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZSKJAZJBVAoHQmlsbGluZxIWQ3JlYXRlIGJpbGxpbmcgYWNjb3VudBoxQ3JlYXRlIGEgbmV3IGJpbGxpbmcgYWNjb3VudCBmb3IgYW4gb3JnYW5pemF0aW9uLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nOgEqEvMBChFHZXRCaWxsaW5nQWNjb3VudBIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudFJlc3BvbnNlInOSQTwKB0JpbGxpbmcSE0dldCBiaWxsaW5nIGFjY291bnQaHEdldCBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAi4SLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9EoUCChRVcGRhdGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlInySQUIKB0JpbGxpbmcSFlVwZGF0ZSBiaWxsaW5nIGFjY291bnQaH1VwZGF0ZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAjEaLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9OgEqEsECChZSZWdpc3RlckJpbGxpbmdBY2NvdW50EjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWdpc3RlckJpbGxpbmdBY2NvdW50UmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIrEBkkFuCgdCaWxsaW5nEiRSZWdpc3RlciBiaWxsaW5nIGFjY291bnQgdG8gcHJvdmlkZXIaPVJlZ2lzdGVyIGEgYmlsbGluZyBhY2NvdW50IHRvIGEgcHJvdmlkZXIgaWYgaXQncyBub3QgYWxyZWFkeS6C0+STAjoiNS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L3JlZ2lzdGVyOgEqEoMCChNMaXN0QmlsbGluZ0FjY291bnRzEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ0FjY291bnRzUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIn2SQUsKB0JpbGxpbmcSFUxpc3QgYmlsbGluZyBhY2NvdW50cxopTGlzdCBiaWxsaW5nIGFjY291bnRzIG9mIGFuIG9yZ2FuaXphdGlvbi6C0+STAikSJy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZxKCAgoURGVsZXRlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlQmlsbGluZ0FjY291bnRSZXNwb25zZSJ5kkFCCgdCaWxsaW5nEhZEZWxldGUgYmlsbGluZyBhY2NvdW50Gh9EZWxldGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwIuKiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfRKNAgoURW5hYmxlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSKDAZJBQgoHQmlsbGluZxIWRW5hYmxlIGJpbGxpbmcgYWNjb3VudBofRW5hYmxlIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCOCIzL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZW5hYmxlOgEqEukCChVEaXNhYmxlQmlsbGluZ0FjY291bnQSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVCaWxsaW5nQWNjb3VudFJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlItwBkkGZAQoHQmlsbGluZxIXRGlzYWJsZSBiaWxsaW5nIGFjY291bnQadURpc2FibGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQuIERpc2FibGluZyBhIGJpbGxpbmcgYWNjb3VudCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBpdCdzIGFjdGl2ZSBzdWJzY3JpcHRpb25zLoLT5JMCOSI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGlzYWJsZToBKhKLAgoRR2V0QmlsbGluZ0JhbGFuY2USMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdCYWxhbmNlUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZSKKAZJBSwoHQmlsbGluZxITR2V0IGJpbGxpbmcgYmFsYW5jZRorR2V0IHRoZSBiYWxhbmNlIG9mIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCNhI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vYmFsYW5jZRL6AQoKSGFzVHJpYWxlZBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSGFzVHJpYWxlZFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkhhc1RyaWFsZWRSZXNwb25zZSKOAZJBPwoHQmlsbGluZxILSGFzIHRyaWFsZWQaJ0NoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGhhcyB0cmlhbGVkLoLT5JMCRhJEL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vcGxhbnMve3BsYW5faWR9L3RyaWFsZWQSxwIKD0dldFN1YnNjcmlwdGlvbhIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2UizAGSQTsKDFN1YnNjcmlwdGlvbhIQR2V0IHN1YnNjcmlwdGlvbhoZR2V0IGEgc3Vic2NyaXB0aW9uIGJ5IElELoLT5JMChwESRy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9WjwSOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0S6gIKEkNhbmNlbFN1YnNjcmlwdGlvbhI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2FuY2VsU3Vic2NyaXB0aW9uUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2Ui5gGSQUEKDFN1YnNjcmlwdGlvbhITQ2FuY2VsIHN1YnNjcmlwdGlvbhocQ2FuY2VsIGEgc3Vic2NyaXB0aW9uIGJ5IElELoLT5JMCmwEiTi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9L2NhbmNlbDoBKlpGIkEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9L2NhbmNlbDoBKhLTAgoRTGlzdFN1YnNjcmlwdGlvbnMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSLSAZJBTAoMU3Vic2NyaXB0aW9uEhJMaXN0IHN1YnNjcmlwdGlvbnMaKExpc3Qgc3Vic2NyaXB0aW9ucyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAn0SQi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9uc1o3EjUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucxL0AgoSQ2hhbmdlU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXNwb25zZSLwAZJBSwoMU3Vic2NyaXB0aW9uEhhDaGFuZ2Ugc3Vic2NyaXB0aW9uIHBsYW4aIUNoYW5nZSBhIHN1YnNjcmlwdGlvbiBwbGFuIGJ5IElELoLT5JMCmwEiTi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9L2NoYW5nZToBKlpGIkEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9L2NoYW5nZToBKhLcAgoSVXBkYXRlU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVTdWJzY3JpcHRpb25SZXNwb25zZSLYAZJBQQoMU3Vic2NyaXB0aW9uEhNVcGRhdGUgc3Vic2NyaXB0aW9uGhxVcGRhdGUgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKNARpHL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH06ASpaPyI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3N1YnNjcmlwdGlvbnMve2lkfToBKhLYAQoNQ3JlYXRlUHJvZHVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvZHVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2R1Y3RSZXNwb25zZSJkkkE9CgdQcm9kdWN0Eg5DcmVhdGUgcHJvZHVjdBoiQ3JlYXRlIGEgbmV3IHByb2R1Y3QgZm9yIHBsYXRmb3JtLoLT5JMCHiIZL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0czoBKhLAAQoKR2V0UHJvZHVjdBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvZHVjdFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb2R1Y3RSZXNwb25zZSJVkkEsCgdQcm9kdWN0EgtHZXQgcHJvZHVjdBoUR2V0IGEgcHJvZHVjdCBieSBJRC6C0+STAiASHi92MWJldGExL2JpbGxpbmcvcHJvZHVjdHMve2lkfRLPAQoMTGlzdFByb2R1Y3RzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvZHVjdHNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvZHVjdHNSZXNwb25zZSJekkE6CgdQcm9kdWN0Eg1MaXN0IHByb2R1Y3RzGiBMaXN0IGFsbCBwcm9kdWN0cyBvZiBhIHBsYXRmb3JtLoLT5JMCGxIZL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cxLSAQoNVXBkYXRlUHJvZHVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvZHVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2R1Y3RSZXNwb25zZSJekkEyCgdQcm9kdWN0Eg5VcGRhdGUgcHJvZHVjdBoXVXBkYXRlIGEgcHJvZHVjdCBieSBJRC6C0+STAiMaHi92MWJldGExL2JpbGxpbmcvcHJvZHVjdHMve2lkfToBKhLYAQoNQ3JlYXRlRmVhdHVyZRIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlRmVhdHVyZVJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUZlYXR1cmVSZXNwb25zZSJkkkE9CgdGZWF0dXJlEg5DcmVhdGUgZmVhdHVyZRoiQ3JlYXRlIGEgbmV3IGZlYXR1cmUgZm9yIHBsYXRmb3JtLoLT5JMCHiIZL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlczoBKhLAAQoKR2V0RmVhdHVyZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0RmVhdHVyZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEZlYXR1cmVSZXNwb25zZSJVkkEsCgdGZWF0dXJlEgtHZXQgZmVhdHVyZRoUR2V0IGEgZmVhdHVyZSBieSBJRC6C0+STAiASHi92MWJldGExL2JpbGxpbmcvZmVhdHVyZXMve2lkfRLSAQoNVXBkYXRlRmVhdHVyZRIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlRmVhdHVyZVJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUZlYXR1cmVSZXNwb25zZSJekkEyCgdGZWF0dXJlEg5VcGRhdGUgZmVhdHVyZRoXVXBkYXRlIGEgZmVhdHVyZSBieSBJRC6C0+STAiMaHi92MWJldGExL2JpbGxpbmcvZmVhdHVyZXMve2lkfToBKhLAAQoMTGlzdEZlYXR1cmVzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0RmVhdHVyZXNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0RmVhdHVyZXNSZXNwb25zZSJPkkErCgdGZWF0dXJlEg1MaXN0IGZlYXR1cmVzGhFMaXN0IGFsbCBmZWF0dXJlc4LT5JMCGxIZL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcxLDAQoKQ3JlYXRlUGxhbhIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGxhblJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBsYW5SZXNwb25zZSJYkkE0CgRQbGFuEgtDcmVhdGUgcGxhbhofQ3JlYXRlIGEgbmV3IHBsYW4gZm9yIHBsYXRmb3JtLoLT5JMCGyIWL3YxYmV0YTEvYmlsbGluZy9wbGFuczoBKhKsAQoJTGlzdFBsYW5zEisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhbnNSZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhbnNSZXNwb25zZSJEkkEjCgRQbGFuEgpMaXN0IHBsYW5zGg9MaXN0IGFsbCBwbGFucy6C0+STAhgSFi92MWJldGExL2JpbGxpbmcvcGxhbnMSqwEKB0dldFBsYW4SKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBsYW5SZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQbGFuUmVzcG9uc2UiSZJBIwoEUGxhbhIIR2V0IHBsYW4aEUdldCBhIHBsYW4gYnkgSUQugtPkkwIdEhsvdjFiZXRhMS9iaWxsaW5nL3BsYW5zL3tpZH0SvQEKClVwZGF0ZVBsYW4SLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBsYW5SZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQbGFuUmVzcG9uc2UiUpJBKQoEUGxhbhILVXBkYXRlIHBsYW4aFFVwZGF0ZSBhIHBsYW4gYnkgSUQugtPkkwIgGhsvdjFiZXRhMS9iaWxsaW5nL3BsYW5zL3tpZH06ASoShQMKDkNyZWF0ZUNoZWNrb3V0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVDaGVja291dFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUNoZWNrb3V0UmVzcG9uc2UijQKSQYgBCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhpYQ2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCeyI+L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVja291dHM6ASpaNiIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2NoZWNrb3V0czoBKhK3AgoNTGlzdENoZWNrb3V0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdENoZWNrb3V0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDaGVja291dHNSZXNwb25zZSLCAZJBRAoIQ2hlY2tvdXQSDkxpc3QgY2hlY2tvdXRzGihMaXN0IGFsbCBjaGVja291dHMgb2YgYSBiaWxsaW5nIGFjY291bnQugtPkkwJ1Ej4vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0c1ozEjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzEqYCCgtHZXRDaGVja291dBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q2hlY2tvdXRSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDaGVja291dFJlc3BvbnNlIrcBkkEvCghDaGVja291dBIMR2V0IGNoZWNrb3V0GhVHZXQgYSBjaGVja291dCBieSBJRC6C0+STAn8SQy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2tvdXRzL3tpZH1aOBI2L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2NoZWNrb3V0cy97aWR9EtwCChdDaGVja0ZlYXR1cmVFbnRpdGxlbWVudBI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWF0dXJlRW50aXRsZW1lbnRSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlc3BvbnNlIskBkkFWCgtFbnRpdGxlbWVudBIRQ2hlY2sgZW50aXRsZW1lbnQaNENoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGlzIGVudGl0bGVkIHRvIGEgZmVhdHVyZS6C0+STAmoiOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2s6ASpaKSIkL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL2NoZWNrOgEqEp8CChZDaGVja0NyZWRpdEVudGl0bGVtZW50EjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0NyZWRpdEVudGl0bGVtZW50UmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tDcmVkaXRFbnRpdGxlbWVudFJlc3BvbnNlIo8BkkFrCgtFbnRpdGxlbWVudBIYQ2hlY2sgY3JlZGl0IGVudGl0bGVtZW50GkJDaGVjayBpZiBhIGJpbGxpbmcgYWNjb3VudCBoYXMgZW5vdWdoIGNyZWRpdHMgdG8gY292ZXIgdGhlIGFtb3VudC6C0+STAhsiFi92MWJldGExL2JpbGxpbmcvY2hlY2s6ASoSyQIKEkNyZWF0ZUJpbGxpbmdVc2FnZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ1VzYWdlUmVzcG9uc2UixQGSQVAKBVVzYWdlEhRDcmVhdGUgYmlsbGluZyB1c2FnZRoxUmVwb3J0IGEgbmV3IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCbCI7L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS91c2FnZXM6ASpaKiIlL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlczoBKhLsAgoXTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RCaWxsaW5nVHJhbnNhY3Rpb25zUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnNSZXNwb25zZSLZAZJBVQoLVHJhbnNhY3Rpb24SGUxpc3QgYmlsbGluZyB0cmFuc2FjdGlvbnMaK0xpc3QgYWxsIHRyYW5zYWN0aW9ucyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnsSQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdHJhbnNhY3Rpb25zWjYSNC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy90cmFuc2FjdGlvbnMS7wIKGFRvdGFsRGViaXRlZFRyYW5zYWN0aW9ucxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVzcG9uc2Ui2QGSQX8KC1RyYW5zYWN0aW9uEjdTdW0gb2YgYW1vdW50IG9mIGRlYml0ZWQgdHJhbnNhY3Rpb25zIGluY2x1ZGluZyByZWZ1bmRzGjdTdW0gb2YgYW1vdW50IG9mIGRlYml0ZWQgdHJhbnNhY3Rpb25zIGluY2x1ZGluZyByZWZ1bmRzgtPkkwJREk8vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2RlYml0ZWRfdHJhbnNhY3Rpb25zX3RvdGFsEq8CCgxMaXN0SW52b2ljZXMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RJbnZvaWNlc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RJbnZvaWNlc1Jlc3BvbnNlIr0BkkFBCgdJbnZvaWNlEg1MaXN0IGludm9pY2VzGidMaXN0IGFsbCBpbnZvaWNlcyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnMSPS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vaW52b2ljZXNaMhIwL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2ludm9pY2VzEuICChJHZXRVcGNvbWluZ0ludm9pY2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVwY29taW5nSW52b2ljZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVwY29taW5nSW52b2ljZVJlc3BvbnNlIt4BkkFPCgdJbnZvaWNlEhRHZXQgdXBjb21pbmcgaW52b2ljZRouR2V0IHRoZSB1cGNvbWluZyBpbnZvaWNlIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMChQESRi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vaW52b2ljZXMvdXBjb21pbmdaOxI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2ludm9pY2VzL3VwY29taW5nEpwCChZCaWxsaW5nV2ViaG9va0NhbGxiYWNrEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ1dlYmhvb2tDYWxsYmFja1Jlc3BvbnNlIowBkkFOCgdXZWJob29rEhZBY2NlcHQgQmlsbGluZyB3ZWJob29rGitBY2NlcHRzIGEgQmlsbGluZyB3ZWJob29rIGFuZCBwcm9jZXNzZXMgaXQugtPkkwI1Ii0vdjFiZXRhMS9iaWxsaW5nL3dlYmhvb2tzL2NhbGxiYWNrL3twcm92aWRlcn06BGJvZHkSkQIKFENyZWF0ZVByb3NwZWN0UHVibGljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9zcGVjdFB1YmxpY1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UHVibGljUmVzcG9uc2UihwGSQWcKCFByb3NwZWN0Eg9DcmVhdGUgcHJvc3BlY3QaSkNyZWF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gZW1haWwgYW5kIGFjdGl2aXR5LiBBdmFpbGFibGUgZm9yIHB1YmxpYyBhY2Nlc3MugtPkkwIXIhIvdjFiZXRhMS9wcm9zcGVjdHM6ASoSgAEKEUNyZWF0ZUF1ZGl0UmVjb3JkEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVBdWRpdFJlY29yZFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUF1ZGl0UmVjb3JkUmVzcG9uc2UiAELyDQojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgg0SHgoVRnJvbnRpZXIgR2VuZXJhbCBBUElzMgUwLjIuMBoOMTI3LjAuMC4xOjc0MDAqAQEyEGFwcGxpY2F0aW9uL2pzb246EGFwcGxpY2F0aW9uL2pzb25SPAoDMjAwEjUKG09LIC0gQSBzdWNjZXNzZnVsIHJlc3BvbnNlLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JpCgM0MDASYgpIQmFkIFJlcXVlc3QgLSBUaGUgcmVxdWVzdCB3YXMgbWFsZm9ybWVkIG9yIGNvbnRhaW5lZCBpbnZhbGlkIHBhcmFtZXRlcnMuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUkoKAzQwMRJDCilVbmF1dGhvcml6ZWQgLSBBdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JhCgM0MDMSWgpARm9yYmlkZGVuIC0gVXNlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoZSByZXNvdXJjZRIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JRCgM0MDQSSgowTm90IEZvdW5kIC0gVGhlIHJlcXVlc3RlZCByZXNvdXJjZSB3YXMgbm90IGZvdW5kEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUnUKAzUwMBJuClRJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IuIFJldHVybmVkIHdoZW4gdGhlcmVzIGlzIHNvbWV0aGluZyB3cm9uZyB3aXRoIEZyb250aWVyIHNlcnZlci4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNatgEKRAoFQmFzaWMSOwgBEh9DbGllbnQgSUQvU2VjcmV0IGF1dGhlbnRpY2F0aW9uGhRCYXNpYyBBdXRoZW50aWNhdGlvbiACCm4KBkJlYXJlchJkCAIST1RoZSBBdXRob3JpemF0aW9uIGhlYWRlciBtdXN0IGJlIHNldCB0byBCZWFyZXIgZm9sbG93ZWQgYnkgYSBzcGFjZSBhbmQgYSB0b2tlbi4aDUF1dGhvcml6YXRpb24gAmITCgcKBUJhc2ljCggKBkJlYXJlcmoGCgRVc2VyaoIDCgVHcm91cBL4Akdyb3VwcyBpbiBGcm9udGllciBhcmUgdXNlZCB0byBtYW5hZ2UgdXNlcnMgYW5kIHRoZWlyIGFjY2VzcyB0byByZXNvdXJjZXMuIEVhY2ggZ3JvdXAgaGFzIGEgdW5pcXVlIG5hbWUgYW5kIGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgYWNjZXNzIHRvIHJlc291cmNlcy4gV2hlbiBhIHVzZXIgaXMgYWRkZWQgdG8gYSBncm91cCwgdGhleSBpbmhlcml0IHRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgdGhhdCBoYXZlIGJlZW4gZ3JhbnRlZCB0byB0aGUgZ3JvdXAuIFRoaXMgYWxsb3dzIHlvdSB0byBtYW5hZ2UgYWNjZXNzIHRvIHJlc291cmNlcyBhdCBzY2FsZSwgd2l0aG91dCBoYXZpbmcgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gaW5kaXZpZHVhbCB1c2Vycy5qBgoEUm9sZWoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoICgZQb2xpY3lqCgoIUmVsYXRpb25qDAoKUGVybWlzc2lvbmoLCglOYW1lc3BhY2VqCgoIUmVzb3VyY2VqGwoFQXV0aHoSEkF1dGhvcml6YXRpb24gQVBJc2ocCgVBdXRobhITQXV0aGVudGljYXRpb24gQVBJc2qQAgoKTWV0YVNjaGVtYRKBAk1hbmFnZSBNZXRhZGF0YSBTY2hlbWFzIHdoaWNoIGFyZSB1c2VkIHRvIHZhbGlkYXRlIG1ldGFkYXRhIG9iamVjdCB3aGlsZSBjcmVhdGluZyB1c2VyL29yZy9ncm91cC9yb2xlLiBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBkZWZhdWx0IG1ldGFzY2hlbWFzIHdpdGggYGxhYmVsYCBhbmQgYGRlc2NyaXB0aW9uYCBmaWVsZHMuIFlvdSBjYW4gYWxzbyB1cGRhdGUgdGhlc2UgbWV0YXNjaGVtYXMgdG8gYWRkL2VkaXQgbW9yZSBmaWVsZHMuYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
21
+ fileDesc("CihyYXlzdGFjay9mcm9udGllci92MWJldGExL2Zyb250aWVyLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIokCChlCaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFZW1haWwYAiABKAkSDQoFcGhvbmUYAyABKAkSQgoHYWRkcmVzcxgEIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQWRkcmVzcxIQCghjdXJyZW5jeRgFIAEoCRI/Cgh0YXhfZGF0YRgGIAMoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuVGF4EikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAQobQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARJMCgRib2R5GAIgASgLMjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5Qgj6QgWKAQIQARIPCgdvZmZsaW5lGAMgASgIImIKHENyZWF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudCKUAQoYR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQARIcChR3aXRoX3BheW1lbnRfbWV0aG9kcxgDIAEoCBIcChR3aXRoX2JpbGxpbmdfZGV0YWlscxgEIAEoCBIOCgZleHBhbmQYZSADKAki7QEKGUdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudBJBCg9wYXltZW50X21ldGhvZHMYAiADKAsyKC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBheW1lbnRNZXRob2QSSQoPYmlsbGluZ19kZXRhaWxzGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudERldGFpbHMikAEKG1VwZGF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABEkIKBGJvZHkYAyABKAsyNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50UmVxdWVzdEJvZHkiYgocVXBkYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZRJCCg9iaWxsaW5nX2FjY291bnQYASABKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50Ik4KHVJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiIAoeUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIkUKGkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiYgobTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IkwKG0RlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABIh4KHERlbGV0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiTAobRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHgocRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSJNChxEaXNhYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHwodRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiSQoYR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiXwoZR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZRJCCgdiYWxhbmNlGAEgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudC5CYWxhbmNlIlwKEUhhc1RyaWFsZWRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAESGAoHcGxhbl9pZBgDIAEoCUIH+kIEcgIQASIlChJIYXNUcmlhbGVkUmVzcG9uc2USDwoHdHJpYWxlZBgBIAEoCCKSAQoZQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKcHJvamVjdF9pZBgEIAEoCRIwCgZ1c2FnZXMYAyADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzYWdlIhwKGkNyZWF0ZUJpbGxpbmdVc2FnZVJlc3BvbnNlIvsBCh5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESLQoFc2luY2UYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgIYARIvCgtzdGFydF9yYW5nZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJZW5kX3JhbmdlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZleHBhbmQYZSADKAkiZgofTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnNSZXNwb25zZRJDCgx0cmFuc2FjdGlvbnMYASADKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdUcmFuc2FjdGlvbiJdCh9Ub3RhbERlYml0ZWRUcmFuc2FjdGlvbnNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBImYKIFRvdGFsRGViaXRlZFRyYW5zYWN0aW9uc1Jlc3BvbnNlEkIKB2RlYml0ZWQYASABKAsyMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50LkJhbGFuY2UifgoWR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBIcCgZvcmdfaWQYASABKAlCDBgB+kIHcgUQA9ABARIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBEhMKAmlkGAMgASgJQgf6QgRyAhABEg4KBmV4cGFuZBhlIAMoCSJYChdHZXRTdWJzY3JpcHRpb25SZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbiKDAQoYTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBEg0KBXN0YXRlGAMgASgJEgwKBHBsYW4YBCABKAkSDgoGZXhwYW5kGGUgAygJIlsKGUxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2USPgoNc3Vic2NyaXB0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU3Vic2NyaXB0aW9uIpwBChlVcGRhdGVTdWJzY3JpcHRpb25SZXF1ZXN0EhwKBm9yZ19pZBgBIAEoCUIMGAH6QgdyBRAD0AEBEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESKQoIbWV0YWRhdGEYFCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlsKGlVwZGF0ZVN1YnNjcmlwdGlvblJlc3BvbnNlEj0KDHN1YnNjcmlwdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU3Vic2NyaXB0aW9uIrUDChlDaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0EhwKBm9yZ19pZBgBIAEoCUIMGAH6QgdyBRAD0AEBEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESEAoEcGxhbhgEIAEoCUICGAESFQoJaW1tZWRpYXRlGAUgASgIQgIYARJWCgtwbGFuX2NoYW5nZRgGIAEoCzI/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hhbmdlU3Vic2NyaXB0aW9uUmVxdWVzdC5QbGFuQ2hhbmdlSAASWAoMcGhhc2VfY2hhbmdlGAcgASgLMkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0LlBoYXNlQ2hhbmdlSAAaLQoKUGxhbkNoYW5nZRIMCgRwbGFuGAEgASgJEhEKCWltbWVkaWF0ZRgCIAEoCBouCgtQaGFzZUNoYW5nZRIfChdjYW5jZWxfdXBjb21pbmdfY2hhbmdlcxgBIAEoCEIICgZjaGFuZ2UiWgoaQ2hhbmdlU3Vic2NyaXB0aW9uUmVzcG9uc2USPAoFcGhhc2UYASABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbi5QaGFzZSKEAQoZQ2FuY2VsU3Vic2NyaXB0aW9uUmVxdWVzdBIcCgZvcmdfaWQYASABKAlCDBgB+kIHcgUQA9ABARIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBEhMKAmlkGAMgASgJQgf6QgRyAhABEhEKCWltbWVkaWF0ZRgEIAEoCCIcChpDYW5jZWxTdWJzY3JpcHRpb25SZXNwb25zZSISChBMaXN0UGxhbnNSZXF1ZXN0IkMKEUxpc3RQbGFuc1Jlc3BvbnNlEi4KBXBsYW5zGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QbGFuIn8KHkNoZWNrRmVhdHVyZUVudGl0bGVtZW50UmVxdWVzdBIOCgZvcmdfaWQYASABKAkSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKcHJvamVjdF9pZBgEIAEoCRIYCgdmZWF0dXJlGAMgASgJQgf6QgRyAhABIjEKH0NoZWNrRmVhdHVyZUVudGl0bGVtZW50UmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIlEKHUNoZWNrQ3JlZGl0RW50aXRsZW1lbnRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIXCgZhbW91bnQYAiABKANCB/pCBCICIAAiMAoeQ2hlY2tDcmVkaXRFbnRpdGxlbWVudFJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCCLUAgoVQ3JlYXRlQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBEhMKC3N1Y2Nlc3NfdXJsGAMgASgJEhIKCmNhbmNlbF91cmwYBCABKAkSTgoRc3Vic2NyaXB0aW9uX2JvZHkYCiABKAsyMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U3Vic2NyaXB0aW9uQm9keRJECgxwcm9kdWN0X2JvZHkYCyABKAsyLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0UHJvZHVjdEJvZHkSQAoKc2V0dXBfYm9keRgMIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTZXR1cEJvZHkiXgoWQ3JlYXRlQ2hlY2tvdXRSZXNwb25zZRJEChBjaGVja291dF9zZXNzaW9uGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNlc3Npb24iUgoUTGlzdENoZWNrb3V0c1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQEiXgoVTGlzdENoZWNrb3V0c1Jlc3BvbnNlEkUKEWNoZWNrb3V0X3Nlc3Npb25zGAEgAygLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNlc3Npb24iagoSR2V0Q2hlY2tvdXRSZXF1ZXN0EhwKBm9yZ19pZBgBIAEoCUIMGAH6QgdyBRAD0AEBEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAEiWwoTR2V0Q2hlY2tvdXRSZXNwb25zZRJEChBjaGVja291dF9zZXNzaW9uGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNlc3Npb24i+wIKElByb2R1Y3RSZXF1ZXN0Qm9keRIVCgRuYW1lGAEgASgJQgf6QgRyAhADEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3BsYW5faWQYBCABKAkSMAoGcHJpY2VzGAUgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmljZRI0CghiZWhhdmlvchgIIAEoCUIi+kIfch1SBWJhc2ljUgdjcmVkaXRzUghwZXJfc2VhdNABARI0CghmZWF0dXJlcxgJIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZRJKCg9iZWhhdmlvcl9jb25maWcYCiABKAsyMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QuQmVoYXZpb3JDb25maWcSKQoIbWV0YWRhdGEYFCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SgQIBxAIIl0KFENyZWF0ZVByb2R1Y3RSZXF1ZXN0EkUKBGJvZHkYASABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3RSZXF1ZXN0Qm9keUII+kIFigECEAEiTAoVQ3JlYXRlUHJvZHVjdFJlc3BvbnNlEjMKB3Byb2R1Y3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QiKAoRR2V0UHJvZHVjdFJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAEiSQoSR2V0UHJvZHVjdFJlc3BvbnNlEjMKB3Byb2R1Y3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QiFQoTTGlzdFByb2R1Y3RzUmVxdWVzdCJMChRMaXN0UHJvZHVjdHNSZXNwb25zZRI0Cghwcm9kdWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCJoChRVcGRhdGVQcm9kdWN0UmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0UmVxdWVzdEJvZHkiTAoVVXBkYXRlUHJvZHVjdFJlc3BvbnNlEjMKB3Byb2R1Y3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QiegoSRmVhdHVyZVJlcXVlc3RCb2R5EhUKBG5hbWUYASABKAlCB/pCBHICEAMSDQoFdGl0bGUYAiABKAkSEwoLcHJvZHVjdF9pZHMYAyADKAkSKQoIbWV0YWRhdGEYFCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Il0KFENyZWF0ZUZlYXR1cmVSZXF1ZXN0EkUKBGJvZHkYASABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmVSZXF1ZXN0Qm9keUII+kIFigECEAEiTAoVQ3JlYXRlRmVhdHVyZVJlc3BvbnNlEjMKB2ZlYXR1cmUYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUiKAoRR2V0RmVhdHVyZVJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAEiSQoSR2V0RmVhdHVyZVJlc3BvbnNlEjMKB2ZlYXR1cmUYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUiaAoUVXBkYXRlRmVhdHVyZVJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAESOwoEYm9keRgCIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZVJlcXVlc3RCb2R5IkwKFVVwZGF0ZUZlYXR1cmVSZXNwb25zZRIzCgdmZWF0dXJlGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlIhUKE0xpc3RGZWF0dXJlc1JlcXVlc3QiTAoUTGlzdEZlYXR1cmVzUmVzcG9uc2USNAoIZmVhdHVyZXMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUigwIKD1BsYW5SZXF1ZXN0Qm9keRIMCgRuYW1lGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjQKCHByb2R1Y3RzGAQgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0Ei8KCGludGVydmFsGAUgASgJQh36QhpyGFIDZGF5UgR3ZWVrUgVtb250aFIEeWVhchIYChBvbl9zdGFydF9jcmVkaXRzGAYgASgDEhIKCnRyaWFsX2RheXMYByABKAMSKQoIbWV0YWRhdGEYFCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlcKEUNyZWF0ZVBsYW5SZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW5SZXF1ZXN0Qm9keUII+kIFigECEAEiQwoSQ3JlYXRlUGxhblJlc3BvbnNlEi0KBHBsYW4YASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4iJQoOR2V0UGxhblJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAEiQAoPR2V0UGxhblJlc3BvbnNlEi0KBHBsYW4YASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4iYgoRVXBkYXRlUGxhblJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAESOAoEYm9keRgCIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhblJlcXVlc3RCb2R5IkMKElVwZGF0ZVBsYW5SZXNwb25zZRItCgRwbGFuGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QbGFuIn4KE0xpc3RJbnZvaWNlc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESGwoTbm9uemVyb19hbW91bnRfb25seRgDIAEoCBIOCgZleHBhbmQYZSADKAkiTAoUTGlzdEludm9pY2VzUmVzcG9uc2USNAoIaW52b2ljZXMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludm9pY2UiVwoZR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSIQoKYmlsbGluZ19pZBgCIAEoCUINGAH6QghyBrABAdABASJRChpHZXRVcGNvbWluZ0ludm9pY2VSZXNwb25zZRIzCgdpbnZvaWNlGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZvaWNlIhAKDkdldEpXS3NSZXF1ZXN0IkYKD0dldEpXS3NSZXNwb25zZRIzCgRrZXlzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5KU09OV2ViS2V5IhMKEUF1dGhMb2dvdXRSZXF1ZXN0IhQKEkF1dGhMb2dvdXRSZXNwb25zZSJ5ChNBdXRoQ2FsbGJhY2tSZXF1ZXN0EhUKDXN0cmF0ZWd5X25hbWUYASABKAkSDQoFc3RhdGUYAiABKAkSDAoEY29kZRgDIAEoCRIuCg1zdGF0ZV9vcHRpb25zGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIWChRBdXRoQ2FsbGJhY2tSZXNwb25zZSLeBQoTQXV0aGVudGljYXRlUmVxdWVzdBJkCg1zdHJhdGVneV9uYW1lGAEgASgJQk2SQUoySE5hbWUgb2YgdGhlIHN0cmF0ZWd5IHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb24uPGJyLz4gKkV4YW1wbGU6KiBgZ29vZ2xlYBJqChByZWRpcmVjdF9vbnN0YXJ0GAIgASgIQlCSQU0yS0lmIHNldCB0byB0cnVlLCBsb2NhdGlvbiBoZWFkZXIgd2lsbCBiZSBzZXQgZm9yIHJlZGlyZWN0IHRvIHN0YXJ0IGF1dGggZmxvdxJ4CglyZXR1cm5fdG8YAyABKAlCZZJBYjJgVVJMIHRvIHJlZGlyZWN0IGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uPGJyLz4gKkV4YW1wbGU6KmAiaHR0cHM6Ly9mcm9udGllci5leGFtcGxlLmNvbSJgEm4KBWVtYWlsGAQgASgJQl+SQVwyWkVtYWlsIG9mIHRoZSB1c2VyIHRvIGF1dGhlbnRpY2F0ZS4gVXNlZCBmb3IgbWFnaWMgbGlua3MuPGJyLz4gKkV4YW1wbGU6KmBleGFtcGxlQGFjbWUub3JnYBKKAgoMY2FsbGJhY2tfdXJsGAUgASgJQvMBkkHvATLsAUhvc3Qgd2hpY2ggc2hvdWxkIGhhbmRsZSB0aGUgY2FsbCB0byBmaW5pc2ggYXV0aGVudGljYXRpb24gZmxvdywgZm9yIG1vc3QgY2FzZXMgaXQgY291bGQgYmUgaG9zdCBvZiBmcm9udGllciBidXQgaW4gY2FzZSBvZiBwcm94aWVzLCB0aGlzIHdpbGwgYmUgcHJveHkgcHVibGljIGVuZHBvaW50Ljxici8+ICpFeGFtcGxlOipgaHR0cHM6Ly9mcm9udGllci5leGFtcGxlLmNvbS92MWJldGExL2F1dGgvY2FsbGJhY2tgImcKFEF1dGhlbnRpY2F0ZVJlc3BvbnNlEhAKCGVuZHBvaW50GAEgASgJEg0KBXN0YXRlGAIgASgJEi4KDXN0YXRlX29wdGlvbnMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkUKDEF1dGhTdHJhdGVneRIMCgRuYW1lGAEgASgJEicKBnBhcmFtcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiGwoZTGlzdEF1dGhTdHJhdGVnaWVzUmVxdWVzdCJZChpMaXN0QXV0aFN0cmF0ZWdpZXNSZXNwb25zZRI7CgpzdHJhdGVnaWVzGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoU3RyYXRlZ3kiYwoQQXV0aFRva2VuUmVxdWVzdBISCgpncmFudF90eXBlGAEgASgJEhEKCWNsaWVudF9pZBgCIAEoCRIVCg1jbGllbnRfc2VjcmV0GAMgASgJEhEKCWFzc2VydGlvbhgEIAEoCSI9ChFBdXRoVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSEgoKdG9rZW5fdHlwZRgCIAEoCSLzCwoPVXNlclJlcXVlc3RCb2R5EsYCCgRuYW1lGAEgASgJQrcCkkGMAjKJAlRoZSBuYW1lIG9mIHRoZSB1c2VyLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBhbmQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLiBJZiBub3QgcHJvdmlkZWQsIEZyb250aWVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIGEgbmFtZSBmcm9tIHRoZSB1c2VyIGVtYWlsLiD6QiRyIjIgXihbYS16QS1aXVthLXpBLVowLTktX117Myw2NH0pPyQSnAEKBWVtYWlsGAIgASgJQowBkkF+MnxUaGUgZW1haWwgb2YgdGhlIHVzZXIuIFRoZSBlbWFpbCBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS48YnIvPipFeGFtcGxlOipgImpvaG4uZG9lQHJheXN0YWNrLm9yZyJg4kEBAvpCBHICYAES2AMKCG1ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEKsA5JBqAMypQNNZXRhZGF0YSBvYmplY3QgZm9yIHVzZXJzIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIHByZS1kZWZpbmVkIGluIFVzZXIgTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXIgc3VjaCBhcyBsYWJlbCwgZGVzY3JpcHRpb24gZXRjLiBCeSBkZWZhdWx0IHRoZSB1c2VyIG1ldGFzY2hlbWEgY29udGFpbnMgbGFiZWxzIGFuZCBkZXNjcmlwdGlvbnMgZm9yIHRoZSB1c2VyLiBVcGRhdGUgdGhlIHNhbWUgdG8gYWRkIG1vcmUgZmllbGRzIHRvIHRoZSB1c2VyIG1ldGFkYXRhIG9iamVjdC4gPGJyLz4qRXhhbXBsZToqYHsibGFiZWwiOiB7ImtleTEiOiAidmFsdWUxIn0sICJkZXNjcmlwdGlvbiI6ICJVc2VyIERlc2NyaXB0aW9uIn1gEqkBCgV0aXRsZRgEIAEoCUKZAZJBlQEykgFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIDxici8+KkV4YW1wbGU6KmAiSm9obiBEb2UiYBLwAgoGYXZhdGFyGAUgASgJQt8CkkGPAjLTAVRoZSBhdmF0YXIgaXMgYmFzZTY0IGVuY29kZWQgaW1hZ2UgZGF0YSBvZiB0aGUgdXNlci4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gVGhlIGltYWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gMjAwS0IuIFNob3VsZCBmb2xsb3cgdGhlIHJlZ2V4IHBhdHRlcm4gYF5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSskYC5KNyJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQSL6QklyRxiQoQ8yPl5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSsk0AEBIscDChBMaXN0VXNlcnNSZXF1ZXN0EmUKCXBhZ2Vfc2l6ZRgBIAEoBUJSkkFGMkRUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyAxMDAwLvpCBhoEKAFAARJMCghwYWdlX251bRgCIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAARJBCgdrZXl3b3JkGAMgASgJQjCSQS0yK1RoZSBrZXl3b3JkIHRvIHNlYXJjaCBmb3IgaW4gbmFtZSBvciBlbWFpbC4SPAoGb3JnX2lkGAQgASgJQiySQSkyJ1RoZSBvcmdhbml6YXRpb24gSUQgdG8gZmlsdGVyIHVzZXJzIGJ5LhIxCghncm91cF9pZBgFIAEoCUIfkkEcMhpUaGUgZ3JvdXAgaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgGIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4iUgoRTGlzdFVzZXJzUmVzcG9uc2USDQoFY291bnQYASABKAUSLgoFdXNlcnMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiVwoRQ3JlYXRlVXNlclJlcXVlc3QSQgoEYm9keRgBIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlclJlcXVlc3RCb2R5Qgj6QgWKAQIQASJDChJDcmVhdGVVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlciI7Ch5MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlcXVlc3QSCgoCaWQYASABKAkSDQoFc3RhdGUYAiABKAkipwEKH0xpc3RPcmdhbml6YXRpb25zQnlVc2VyUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uEkQKE2pvaW5hYmxlX3ZpYV9kb21haW4YAiADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiI2CiVMaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXF1ZXN0Eg0KBXN0YXRlGAEgASgJIq4BCiZMaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SRAoTam9pbmFibGVfdmlhX2RvbWFpbhgCIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIicKGUxpc3RQcm9qZWN0c0J5VXNlclJlcXVlc3QSCgoCaWQYASABKAkiUgoaTGlzdFByb2plY3RzQnlVc2VyUmVzcG9uc2USNAoIcHJvamVjdHMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiswIKIExpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXJSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIYChB3aXRoX3Blcm1pc3Npb25zGAIgAygJEhUKDW5vbl9pbmhlcml0ZWQYAyABKAgSGQoRd2l0aF9tZW1iZXJfY291bnQYBCABKAgSZQoJcGFnZV9zaXplGAUgASgFQlKSQUYyRFRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDEwMDAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAYgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIv4BCiFMaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVzcG9uc2USNAoIcHJvamVjdHMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QSXQoMYWNjZXNzX3BhaXJzGAIgAygLMkcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVzcG9uc2UuQWNjZXNzUGFpchINCgVjb3VudBgDIAEoBRo1CgpBY2Nlc3NQYWlyEhIKCnByb2plY3RfaWQYASABKAkSEwoLcGVybWlzc2lvbnMYAiADKAkiHwoRRW5hYmxlVXNlclJlcXVlc3QSCgoCaWQYASABKAkiFAoSRW5hYmxlVXNlclJlc3BvbnNlIiAKEkRpc2FibGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIVChNEaXNhYmxlVXNlclJlc3BvbnNlIh8KEURlbGV0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhQKEkRlbGV0ZVVzZXJSZXNwb25zZSJACg9HZXRVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlciIXChVHZXRDdXJyZW50VXNlclJlcXVlc3QihAEKFkdldEN1cnJlbnRVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI7CgtzZXJ2aWNldXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIiQwoSVXBkYXRlVXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiSgoZVXBkYXRlQ3VycmVudFVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIlkKEVVwZGF0ZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEjgKBGJvZHkYAiABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keSIcCg5HZXRVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSJjChxMaXN0Q3VycmVudFVzZXJHcm91cHNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIYChB3aXRoX3Blcm1pc3Npb25zGAIgAygJEhkKEXdpdGhfbWVtYmVyX2NvdW50GAMgASgIIuEBCh1MaXN0Q3VycmVudFVzZXJHcm91cHNSZXNwb25zZRIwCgZncm91cHMYASADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwElkKDGFjY2Vzc19wYWlycxgCIAMoCzJDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVzcG9uc2UuQWNjZXNzUGFpchozCgpBY2Nlc3NQYWlyEhAKCGdyb3VwX2lkGAEgASgJEhMKC3Blcm1pc3Npb25zGAIgAygJItgBChVMaXN0VXNlckdyb3Vwc1JlcXVlc3QSPQoCaWQYASABKAlCMZJBLjIsVGhlIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBnZXQgZ3JvdXBzIGZvci4SegoGb3JnX2lkGAMgASgJQmqSQWcyZVRoZSBvcmdhbml6YXRpb24gSUQgdG8gZmlsdGVyIGdyb3VwcyBieS4gSWYgbm90IHByb3ZpZGVkLCBncm91cHMgZnJvbSBhbGwgb3JnYW5pemF0aW9ucyBhcmUgcmV0dXJuZWQuSgQIAhADIkoKFkxpc3RVc2VyR3JvdXBzUmVzcG9uc2USMAoGZ3JvdXBzGAEgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJUChhVcGRhdGVDdXJyZW50VXNlclJlcXVlc3QSOAoEYm9keRgBIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlclJlcXVlc3RCb2R5IloKGkxpc3RVc2VySW52aXRhdGlvbnNSZXF1ZXN0EjwKAmlkGAEgASgJQjCSQS0yK1RoZSB1c2VyIGVtYWlsIHRvIGxpc3QgdGhlIGludml0YXRpb25zIGZvci4iWQobTGlzdFVzZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEjoKC2ludml0YXRpb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIiMKIUxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVxdWVzdCKXAQoiTGlzdEN1cnJlbnRVc2VySW52aXRhdGlvbnNSZXNwb25zZRI6CgtpbnZpdGF0aW9ucxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52aXRhdGlvbhI1CgRvcmdzGAIgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24itgEKF0xpc3RTZXJ2aWNlVXNlcnNSZXF1ZXN0Ek8KBm9yZ19pZBgBIAEoCUI/kkExMi9UaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciBzZXJ2aWNlIHVzZXJzIGJ5LuJBAQL6QgRyAhADEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJYChhMaXN0U2VydmljZVVzZXJzUmVzcG9uc2USPAoMc2VydmljZXVzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKRAQoWU2VydmljZVVzZXJSZXF1ZXN0Qm9keRJMCgV0aXRsZRgBIAEoCUI9kkE6MidVc2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhlIHNlcnZpY2UgdXNlci5KDyJPcmRlciBTZXJ2aWNlIhIpCghtZXRhZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QitgEKGENyZWF0ZVNlcnZpY2VVc2VyUmVxdWVzdBI/CgRib2R5GAEgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlclJlcXVlc3RCb2R5ElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJYChlDcmVhdGVTZXJ2aWNlVXNlclJlc3BvbnNlEjsKC3NlcnZpY2V1c2VyGAEgASgLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKuAQoVR2V0U2VydmljZVVzZXJSZXF1ZXN0EjoKAmlkGAEgASgJQi6SQSsyKVRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBnZXQuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJVChZHZXRTZXJ2aWNlVXNlclJlc3BvbnNlEjsKC3NlcnZpY2V1c2VyGAEgASgLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciK0AQoYRGVsZXRlU2VydmljZVVzZXJSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBkZWxldGUuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIbChlEZWxldGVTZXJ2aWNlVXNlclJlc3BvbnNlItABChtDcmVhdGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGNyZWF0ZSBhIGtleSBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJVChxDcmVhdGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlEjUKA2tleRgBIAEoCzIoLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuS2V5Q3JlZGVudGlhbCLyAQoYR2V0U2VydmljZVVzZXJKV0tSZXF1ZXN0EkQKAmlkGAEgASgJQjiSQTUyM1RoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBnZXQgYSBrZXkgZm9yLhI1CgZrZXlfaWQYAiABKAlCJZJBIjIgVGhlIHVuaXF1ZSBJRCBvZiB0aGUga2V5IHRvIGdldC4SWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlAKGUdldFNlcnZpY2VVc2VySldLUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSK9AQoaTGlzdFNlcnZpY2VVc2VySldLc1JlcXVlc3QSRAoCaWQYASABKAlCOJJBNTIzVGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qga2V5cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJWChtMaXN0U2VydmljZVVzZXJKV0tzUmVzcG9uc2USNwoEa2V5cxgBIAMoCzIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJKV0si+wEKG0RlbGV0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBJHCgJpZBgBIAEoCUI7kkE4MjZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZGVsZXRlIGEga2V5IGZvci4SOAoGa2V5X2lkGAIgASgJQiiSQSUyI1RoZSB1bmlxdWUgSUQgb2YgdGhlIGtleSB0byBkZWxldGUuElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIeChxEZWxldGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlItcBCiJDcmVhdGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0EkcKAmlkGAEgASgJQjuSQTgyNlRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSBrZXkgZm9yLhINCgV0aXRsZRgCIAEoCRJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiYgojQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2USOwoGc2VjcmV0GAEgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWNyZXRDcmVkZW50aWFsIscBCiFMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qgc2VjcmV0cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJiCiJMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEjwKB3NlY3JldHMYASADKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlY3JldENyZWRlbnRpYWwiiwIKIkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QSSgoCaWQYASABKAlCPpJBOzI5VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHNlY3JldCBmb3IuEj4KCXNlY3JldF9pZBgCIAEoCUIrkkEoMiZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZWNyZXQgdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiJQojRGVsZXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2Ui1AEKHUNyZWF0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0EkkKAmlkGAEgASgJQj2SQToyOFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSB0b2tlbiBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJcCh5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVzcG9uc2USOgoFdG9rZW4YASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyVG9rZW4iwQEKHExpc3RTZXJ2aWNlVXNlclRva2Vuc1JlcXVlc3QSRgoCaWQYASABKAlCOpJBNzI1VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgdG9rZW5zIGZvci4SWQoGb3JnX2lkGAIgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlwKHUxpc3RTZXJ2aWNlVXNlclRva2Vuc1Jlc3BvbnNlEjsKBnRva2VucxgBIAMoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJUb2tlbiKDAgodRGVsZXRlU2VydmljZVVzZXJUb2tlblJlcXVlc3QSSQoCaWQYASABKAlCPZJBOjI4VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHRva2VuIGZvci4SPAoIdG9rZW5faWQYAiABKAlCKpJBJzIlVGhlIHVuaXF1ZSBJRCBvZiB0aGUgdG9rZW4gdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiIAoeRGVsZXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIt8BCh5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1JlcXVlc3QSSAoCaWQYASABKAlCPJJBOTI3VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgcHJvamVjdHMgZm9yLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMSGAoQd2l0aF9wZXJtaXNzaW9ucxgDIAMoCSLrAQofTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdBJbCgxhY2Nlc3NfcGFpcnMYAiADKAsyRS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2UuQWNjZXNzUGFpcho1CgpBY2Nlc3NQYWlyEhIKCnByb2plY3RfaWQYASABKAkSEwoLcGVybWlzc2lvbnMYAiADKAki7QEKHUxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXF1ZXN0EikKBm9yZ19pZBgCIAEoCUIZ+kIWchQQAzIQXltBLVphLXowLTlfLV0rJBJXCgVzdGF0ZRgDIAEoCUJIkkFFMkNUaGUgc3RhdGUgb2YgdGhlIGdyb3VwIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEhEKCWdyb3VwX2lkcxgEIAMoCRIUCgx3aXRoX21lbWJlcnMYBSABKAgSGQoRd2l0aF9tZW1iZXJfY291bnQYBiABKAhKBAgBEAIiUgoeTGlzdE9yZ2FuaXphdGlvbkdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAirwEKHUNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keUII+kIFigECEAESSgoGb3JnX2lkGAIgASgJQjqSQTMyMVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHJvbGUgYmVsb25ncyB0by7iQQECIk8KHkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkEKGkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyJMChtHZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ1Ch1VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZvcmdfaWQYAyABKAkSOAoEYm9keRgCIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZVJlcXVlc3RCb2R5Ik8KHlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjEKEExpc3RSb2xlc1JlcXVlc3QSDQoFc3RhdGUYASABKAkSDgoGc2NvcGVzGAIgAygJIkMKEUxpc3RSb2xlc1Jlc3BvbnNlEi4KBXJvbGVzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIlYKHExpc3RPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEg0KBXN0YXRlGAIgASgJEg4KBnNjb3BlcxgDIAMoCSJPCh1MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZRIuCgVyb2xlcxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJECh1EZWxldGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiIAoeRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqsKChdPcmdhbml6YXRpb25SZXF1ZXN0Qm9keRL7AQoEbmFtZRgBIAEoCULsAZJBzQEyygFUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPipFeGFtcGxlOipgImZyb250aWVyLW9yZzEtYWNtZSJg4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErIBCgV0aXRsZRgCIAEoCUKiAZJBngEymwFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ2FuaXphdGlvbi4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS48YnIvPiAqRXhhbXBsZSo6IGAiQWNtZSBJbmMiYBLpAwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qr0DkkG5AzK2A01ldGFkYXRhIG9iamVjdCBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hLiBUaGUgbWV0YWRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFyYml0cmFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JnYW5pemF0aW9uIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBPcmdhbml6YXRpb24gTWV0YXNjaGVtYSBjb250YWlucyBsYWJlbHMgYW5kIGRlc2NyaXB0b24gZmllbGRzLiBVcGRhdGUgdGhlIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIHRvIGFkZCBtb3JlIGZpZWxkcy4gPGJyLz4qRXhhbXBsZSo6YHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXphdGlvbiBkZXNjcmlwdGlvbiJ9YBLwAgoGYXZhdGFyGAQgASgJQt8CkkGPAjLTAVRoZSBhdmF0YXIgaXMgYmFzZTY0IGVuY29kZWQgaW1hZ2UgZGF0YSBvZiB0aGUgdXNlci4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gVGhlIGltYWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gMjAwS0IuIFNob3VsZCBmb2xsb3cgdGhlIHJlZ2V4IHBhdHRlcm4gYF5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSskYC5KNyJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQSL6QklyRxiQoQ8yPl5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSsk0AEBIukDChhMaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QSxwEKB3VzZXJfaWQYASABKAlCtQGSQbEBMq4BVGhlIHVzZXIgSUQgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgdXNlZCB0byBsaXN0IGFsbCB0aGUgb3JnYW5pemF0aW9ucyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mLiBPdGhlcndpc2UsIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiB0aGUgRnJvbnRpZXIgaW5zdGFuY2Ugd2lsbCBiZSBsaXN0ZWQuEk4KBXN0YXRlGAIgASgJQj+SQTwyOlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYC4SZQoJcGFnZV9zaXplGAMgASgFQlKSQUYyRFRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDEwMDAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAQgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIlsKGUxpc3RPcmdhbml6YXRpb25zUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uImcKGUNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QSSgoEYm9keRgBIAEoCzIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uUmVxdWVzdEJvZHlCCPpCBYoBAhABIlsKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlgKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlsKGlVwZGF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIiQKFkdldE9yZ2FuaXphdGlvblJlcXVlc3QSCgoCaWQYASABKAkiaQoZVXBkYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRJACgRib2R5GAIgASgLMjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keSI0Ch1MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJQCh5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIifAocTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIdChFwZXJtaXNzaW9uX2ZpbHRlchgCIAEoCUICGAESEgoKd2l0aF9yb2xlcxgDIAEoCBIUCgxyb2xlX2ZpbHRlcnMYBCADKAki8wEKHUxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElUKCnJvbGVfcGFpcnMYAiADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlLlJvbGVQYWlyGksKCFJvbGVQYWlyEg8KB3VzZXJfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUifAobQWRkT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkgKCHVzZXJfaWRzGAIgAygJQjaSQTMyMUxpc3Qgb2YgdXNlciBJRHMgdG8gYmUgYWRkZWQgdG8gdGhlIG9yZ2FuaXphdGlvbi4iHgocQWRkT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSJFCh1SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAIgASgJIiAKHlJlbW92ZU9yZ2FuaXphdGlvblVzZXJSZXNwb25zZSI6CiNMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJkCiRMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USPAoMc2VydmljZXVzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciLcAQoiTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBODI2dW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdG8gd2hpY2ggdXNlciBpcyBpbnZpdGVk4kEBAhJlCgd1c2VyX2lkGAIgASgJQlSSQVEyT3VzZXJfaWQgZmlsdGVyIGlzIHRoZSBlbWFpbCBpZCBvZiB1c2VyIHdobyBhcmUgaW52aXRlZCBpbnNpZGUgdGhlIG9yZ2FuaXphdGlvbi4iYQojTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24ihgQKI0NyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Ek8KBm9yZ19pZBgBIAEoCUI/kkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB1c2VyIGlzIGludml0ZWTiQQECEqsBCgh1c2VyX2lkcxgCIAMoCUKYAZJBhgEygwF1c2VyX2lkIGlzIGVtYWlsIGlkIG9mIHVzZXIgd2hvIGFyZSBpbnZpdGVkIGluc2lkZSB0aGUgb3JnYW5pemF0aW9uLiBJZiB1c2VyIGlzIG5vdCByZWdpc3RlcmVkIG9uIHRoZSBwbGF0Zm9ybSwgaXQgd2lsbCBiZSBub3RpZmllZOJBAQL6QgeSAQQIARAKElYKCWdyb3VwX2lkcxgDIAMoCUJDkkFAMj5saXN0IG9mIGdyb3VwIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLhKHAQoIcm9sZV9pZHMYBCADKAlCdZJBcjJwbGlzdCBvZiByb2xlIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLiBSb2xlcyBhcmUgYmluZGVkIGF0IG9yZ2FuaXphdGlvbiBsZXZlbCBieSBkZWZhdWx0LiJiCiRDcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24iPgogR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIl4KIUdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZRI5CgppbnZpdGF0aW9uGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIkEKI0FjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCSImCiRBY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UiQQojRGVsZXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIpUCCh5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1JlcXVlc3QSbAoGb3JnX2lkGAEgASgJQlySQU4yTHVuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB3aGl0ZWxpc3RlZCBkb21haW5zIGFyZSB0byBiZSBsaXN0ZWTiQQEC+kIEcgIQAxKEAQoFc3RhdGUYAiABKAlCdZJBcjJwZmlsdGVyIHRvIGxpc3QgZG9tYWlucyBieSB0aGVpciBzdGF0ZSAocGVuZGluZy92ZXJpZmllZCkuIElmIG5vdCBwcm92aWRlZCwgYWxsIGRvbWFpbnMgZm9yIGFuIG9yZyB3aWxsIGJlIGxpc3RlZCJVCh9MaXN0T3JnYW5pemF0aW9uRG9tYWluc1Jlc3BvbnNlEjIKB2RvbWFpbnMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiKYAQogTGlzdE9yZ2FuaXphdGlvbnNCeURvbWFpblJlcXVlc3QSdAoEbmFtZRgBIAEoCUJmkkFYMlZkb21haW4gbmFtZSB0byBiZSB1c2VkIHRvIGxpc3QgYWxsIHRoZSBvcmdhbml6YXRpb25zIHRoYXQgaGF2ZSB0aGlzIGRvbWFpbiB3aGl0ZWxpc3RlZOJBAQL6QgRyAhADImMKIUxpc3RPcmdhbml6YXRpb25zQnlEb21haW5SZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iMgoXSm9pbk9yZ2FuaXphdGlvblJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADIhoKGEpvaW5Pcmdhbml6YXRpb25SZXNwb25zZSLSAQocR2V0T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJDCgJpZBgBIAEoCUI3kkEpMid1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAxJtCgZvcmdfaWQYAiABKAlCXZJBTzJNdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbiBpcyB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAyJSCh1HZXRPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZRIxCgZkb21haW4YASABKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiLiAQofQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJrCgZvcmdfaWQYASABKAlCW5JBTTJLdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbnMgYXJlIHRvIGJlIGFkZGVk4kEBAvpCBHICEAMSUgoGZG9tYWluGAIgASgJQkKSQTQyMmRvbWFpbiBuYW1lIHRvIGJlIGFkZGVkIHRvIHRoZSB0cnVzdGVkIGRvbWFpbiBsaXN04kEBAvpCBHICEAMiVQogQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2USMQoGZG9tYWluGAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Eb21haW4i0wEKH0RlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QSQQoCaWQYASABKAlCNZJBJzIldW5pcXVlIGlkIG9mIHRoZSBkb21haW4gdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADEm0KBm9yZ19pZBgCIAEoCUJdkkFPMk11bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADIiIKIERlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlItUBCh9WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0Em4KBm9yZ19pZBgBIAEoCUJekkFQMk51bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgdmVyaWZpZWTiQQEC+kIEcgIQAxJCCgJpZBgCIAEoCUI2kkEoMiZ1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSB2ZXJpZmllZOJBAQL6QgRyAhADIjEKIFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlEg0KBXN0YXRlGAEgASgJIiYKJERlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSInChlFbmFibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkVuYWJsZU9yZ2FuaXphdGlvblJlc3BvbnNlIigKGkRpc2FibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIh0KG0Rpc2FibGVPcmdhbml6YXRpb25SZXNwb25zZSInChlEZWxldGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkRlbGV0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIisKGUdldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QSDgoGb3JnX2lkGAEgASgJImIKGkdldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlEkQKEG9yZ2FuaXphdGlvbl9reWMYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyKsBQoSUHJvamVjdFJlcXVlc3RCb2R5EvcBCgRuYW1lGAEgASgJQugBkkHJATLGAVRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0LiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPiAqRXhhbXBsZToqIGBmcm9udGllci1wbGF5Z3JvdW5kYOJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBK3AQoFdGl0bGUYAiABKAlCpwGSQaMBMqABVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwcm9qZWN0LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBGcm9udGllciBQbGF5Z3JvdW5kYBKJAQoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ql6SQVsyWU1ldGFkYXRhIG9iamVjdCBmb3IgcHJvamVjdHMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBQcm9qZWN0IE1ldGFzY2hlbWEuElYKBm9yZ19pZBgEIAEoCUJGkkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCBwcm9qZWN0IGJlbG9uZ3PiQQEC+kIEcgIQAyJdChRDcmVhdGVQcm9qZWN0UmVxdWVzdBJFCgRib2R5GAEgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHlCCPpCBYoBAhABIkwKFUNyZWF0ZVByb2plY3RSZXNwb25zZRIzCgdwcm9qZWN0GAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0It8BCh9MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEosBCgVzdGF0ZRgCIAEoCUJ8kkF5MndGaWx0ZXIgcHJvamVjdHMgYnkgc3RhdGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBwcm9qZWN0cyBhcmUgcmV0dXJuZWQuIDxici8+ICpQb3NzaWJsZSB2YWx1ZXM6KiBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYBIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCJYCiBMaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCIfChFHZXRQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSJJChJHZXRQcm9qZWN0UmVzcG9uc2USMwoHcHJvamVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJfChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHkiTAoVVXBkYXRlUHJvamVjdFJlc3BvbnNlEjMKB3Byb2plY3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiLwoYTGlzdFByb2plY3RBZG1pbnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIksKGUxpc3RQcm9qZWN0QWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiXQoXTGlzdFByb2plY3RVc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSGQoRcGVybWlzc2lvbl9maWx0ZXIYAiABKAkSEgoKd2l0aF9yb2xlcxgDIAEoCCLpAQoYTGlzdFByb2plY3RVc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElAKCnJvbGVfcGFpcnMYAiADKAsyPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0VXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkkKHkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxISCgp3aXRoX3JvbGVzGAMgASgIIowCCh9MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXISVwoKcm9sZV9wYWlycxgCIAMoCzJDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpSCghSb2xlUGFpchIWCg5zZXJ2aWNldXNlcl9pZBgBIAEoCRIuCgVyb2xlcxgCIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJDChhMaXN0UHJvamVjdEdyb3Vwc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSEgoKd2l0aF9yb2xlcxgCIAEoCCLuAQoZTGlzdFByb2plY3RHcm91cHNSZXNwb25zZRIwCgZncm91cHMYASADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwElEKCnJvbGVfcGFpcnMYAiADKAsyPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0R3JvdXBzUmVzcG9uc2UuUm9sZVBhaXIaTAoIUm9sZVBhaXISEAoIZ3JvdXBfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiIgoURW5hYmxlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRW5hYmxlUHJvamVjdFJlc3BvbnNlIiMKFURpc2FibGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIYChZEaXNhYmxlUHJvamVjdFJlc3BvbnNlIiIKFERlbGV0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIhcKFURlbGV0ZVByb2plY3RSZXNwb25zZSKjCAoRUG9saWN5UmVxdWVzdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAMgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgErMBCghyZXNvdXJjZRgCIAEoCUKgAZJBkQEyjgFUaGUgcmVzb3VyY2UgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIDxici8+ICpFeGFtcGxlOiogYGFwcC9ndWFyZGlhbjo3MGY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4ZTJg4kEBAvpCBHICEAMS7wIKCXByaW5jaXBhbBgEIAEoCULbApJB0wIy0AJwcmluY2lwYWwgaXMgdGhlIHVzZXIgb3IgZ3JvdXAgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkLiBUaGUgcHJpbmNpcGFsIGlkIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBpdHMgbmFtZXNwYWNlIGlkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIFRoZSBuYW1lc3BhY2UgY2FuIGJlIGBhcHAvdXNlcmAsIGBhcHAvZ3JvdXBgIG9yIGBhcHAvc2VydmljZXVzZXJgIChjb21pbmcgdXAhKSBhbmQgdXVpZCBpcyB0aGUgdW5pcXVlIGlkIG9mIHRoZSBwcmluY2lwYWwuIDxici8+ICpFeGFtcGxlOiogYGFwcC91c2VyOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWDiQQECEt8BCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCswGSQa8BMqwBTWV0YWRhdGEgb2JqZWN0IGZvciBwb2xpY2llcyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIFBvbGljeSBNZXRhc2NoZW1hLjxici8+ICpFeGFtcGxlOiogYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIlBvbGljeSBkZXNjcmlwdGlvbiJ9YCKUBQoaQ3JlYXRlUG9saWN5Rm9yUHJvamVjdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAIgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgEu8CCglwcmluY2lwYWwYAyABKAlC2wKSQdMCMtACcHJpbmNpcGFsIGlzIHRoZSB1c2VyIG9yIGdyb3VwIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZC4gVGhlIHByaW5jaXBhbCBpZCBtdXN0IGJlIHByZWZpeGVkIHdpdGggaXRzIG5hbWVzcGFjZSBpZCBpbiB0aGlzIGZvcm1hdCBgbmFtZXNwYWNlOnV1aWRgLiBUaGUgbmFtZXNwYWNlIGNhbiBiZSBgYXBwL3VzZXJgLCBgYXBwL2dyb3VwYCBvciBgYXBwL3NlcnZpY2V1c2VyYCAoY29taW5nIHVwISkgYW5kIHV1aWQgaXMgdGhlIHVuaXF1ZSBpZCBvZiB0aGUgcHJpbmNpcGFsLiA8YnIvPiAqRXhhbXBsZToqIGBhcHAvdXNlcjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAiIiChRHZXRQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIYChZMaXN0UGVybWlzc2lvbnNSZXF1ZXN0IlUKF0xpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uIhcKFUxpc3ROYW1lc3BhY2VzUmVxdWVzdCJSChZMaXN0TmFtZXNwYWNlc1Jlc3BvbnNlEjgKCm5hbWVzcGFjZXMYASADKAsyJC5yYXlzdGFjay5mcm9udGllci52MWJldGExLk5hbWVzcGFjZSIhChNHZXROYW1lc3BhY2VSZXF1ZXN0EgoKAmlkGAEgASgJIk8KFEdldE5hbWVzcGFjZVJlc3BvbnNlEjcKCW5hbWVzcGFjZRgBIAEoCzIkLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTmFtZXNwYWNlIlsKE0NyZWF0ZVBvbGljeVJlcXVlc3QSRAoEYm9keRgBIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHlCCPpCBYoBAhABIk8KFENyZWF0ZVBvbGljeVJlc3BvbnNlEjEKBnBvbGljeRgCIAEoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5SgQIARACIh4KEEdldFBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkiRgoRR2V0UG9saWN5UmVzcG9uc2USMQoGcG9saWN5GAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qb2xpY3kimQIKE0xpc3RQb2xpY2llc1JlcXVlc3QSNgoGb3JnX2lkGAEgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhI1Cgpwcm9qZWN0X2lkGAIgASgJQiGSQR4yHFRoZSBwcm9qZWN0IGlkIHRvIGZpbHRlciBieS4SLwoHdXNlcl9pZBgDIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEi8KB3JvbGVfaWQYBCABKAlCHpJBGzIZVGhlIHJvbGUgaWQgdG8gZmlsdGVyIGJ5LhIxCghncm91cF9pZBgFIAEoCUIfkkEcMhpUaGUgZ3JvdXAgaWQgdG8gZmlsdGVyIGJ5LiJLChRMaXN0UG9saWNpZXNSZXNwb25zZRIzCghwb2xpY2llcxgBIAMoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5Il0KE1VwZGF0ZVBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkSOgoEYm9keRgCIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHkiSwoUVXBkYXRlUG9saWN5UmVzcG9uc2USMwoIcG9saWNpZXMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeSIhChNEZWxldGVQb2xpY3lSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFERlbGV0ZVBvbGljeVJlc3BvbnNlIosBCh1DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVxdWVzdBIbCgpwcm9qZWN0X2lkGAEgASgJQgf6QgRyAhADEk0KBGJvZHkYAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RCb2R5Qgj6QgWKAQIQASIgCh5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVzcG9uc2UicgoTUmVsYXRpb25SZXF1ZXN0Qm9keRIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgDIAEoCRIQCghyZWxhdGlvbhgEIAEoCRIcChRzdWJqZWN0X3N1Yl9yZWxhdGlvbhgGIAEoCUoECAIQA0oECAUQBiJfChVDcmVhdGVSZWxhdGlvblJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEiTwoWQ3JlYXRlUmVsYXRpb25SZXNwb25zZRI1CghyZWxhdGlvbhgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb24iIAoSR2V0UmVsYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkwKE0dldFJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uImEKFVVwZGF0ZVJlbGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRI8CgRib2R5GAIgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvblJlcXVlc3RCb2R5Ik8KFlVwZGF0ZVJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uIrkGChBHcm91cFJlcXVlc3RCb2R5Es8BCgRuYW1lGAEgASgJQsABkkGhATKeAVRoZSBuYW1lIG9mIHRoZSBncm91cC4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskEosBCgV0aXRsZRgCIAEoCUJ8kkF5MndUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGdyb3VwLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LhK+AwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QpIDkkGOAzKLA01ldGFkYXRhIG9iamVjdCBmb3IgZ3JvdXBzIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gR3JvdXAgTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdyb3VwIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBHcm91cCBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgR3JvdXAgTWV0YXNjaGVtYSB0byBhZGQgbW9yZSBmaWVsZHMuPGJyLz4qRXhhbXBsZToqYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIkdyb3VwIGRlc2NyaXB0aW9uIn1gSgQIBBAFIqYBChJDcmVhdGVHcm91cFJlcXVlc3QSQwoEYm9keRgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXBSZXF1ZXN0Qm9keUII+kIFigECEAESSwoGb3JnX2lkGAIgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJDCg9HZXRHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhQKDHdpdGhfbWVtYmVycxgDIAEoCCJGChNDcmVhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJDChBHZXRHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJGChNVcGRhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCKoAQoSVXBkYXRlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwUmVxdWVzdEJvZHkSSwoGb3JnX2lkGAMgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJHChVMaXN0R3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhIKCndpdGhfcm9sZXMYAyABKAgi5QEKFkxpc3RHcm91cFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISTgoKcm9sZV9wYWlycxgCIAMoCzI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjkKEkVuYWJsZUdyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiFQoTRW5hYmxlR3JvdXBSZXNwb25zZSI6ChNEaXNhYmxlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyIWChREaXNhYmxlR3JvdXBSZXNwb25zZSI5ChJEZWxldGVHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADIhUKE0RlbGV0ZUdyb3VwUmVzcG9uc2UiTQoUQWRkR3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADEhAKCHVzZXJfaWRzGAMgAygJIhcKFUFkZEdyb3VwVXNlcnNSZXNwb25zZSJOChZSZW1vdmVHcm91cFVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAMgASgJIhkKF1JlbW92ZUdyb3VwVXNlclJlc3BvbnNlIlAKFURlbGV0ZVJlbGF0aW9uUmVxdWVzdBIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgCIAEoCRIQCghyZWxhdGlvbhgEIAEoCUoECAMQBCIYChZEZWxldGVSZWxhdGlvblJlc3BvbnNlIlMKG0xpc3RQcm9qZWN0UmVzb3VyY2VzUmVxdWVzdBIbCgpwcm9qZWN0X2lkGAIgASgJQgf6QgRyAhADEhEKCW5hbWVzcGFjZRgEIAEoCUoECAEQAiJWChxMaXN0UHJvamVjdFJlc291cmNlc1Jlc3BvbnNlEjYKCXJlc291cmNlcxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2UitgYKE1Jlc291cmNlUmVxdWVzdEJvZHkScwoEbmFtZRgBIAEoCUJlkkFeMlxUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UuICBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHByb2plY3QuIDxici8+ICpFeGFtcGxlOiogYG15LXJlc291cmNlYOJBAQISjgEKBXRpdGxlGAIgASgJQn+SQXwyelRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcmVzb3VyY2UuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuEvIBCgluYW1lc3BhY2UYAyABKAlC3gGSQdYBMtMBVGhlIG5hbWVzcGFjZSBvZiB0aGUgcmVzb3VyY2UuIFRoZSByZXNvdXJjZSBuYW1lc3BhY2UgYXJlIGNyZWF0ZWQgd2hlbiBwZXJtaXNzaW9ucyBmb3IgdGhhdCByZXNvdXJjZSBpcyBjcmVhdGVkIGluIEZyb250aWVyLiBJZiBuYW1lc3BhY2UgZG9lc24ndCBleGlzdHMgdGhlIHJlcXVlc3Qgd2lsbCBmYWlsLiA8YnIvPiAqRXhhbXBsZToqIGBjb21wdXRlL2luc3RhbmNlYOJBAQIS7AEKCXByaW5jaXBhbBgGIAEoCULYAZJB1AEy0QFVc2VySUQgb3IgU2VydmljZVVzZXJJRCB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgb3duZXIgb2YgdGhlIHJlc291cmNlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHdpbGwgYmUgbWFkZSB0aGUgcmVzb3VyY2Ugb3duZXIuIDxici8+ICpFeGFtcGxlOiogYHVzZXI6OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YBIpCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgEEAVKBAgFEAYipgEKHENyZWF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keUII+kIFigECEAESEgoKcHJvamVjdF9pZBgCIAEoCRIqCgJpZBgDIAEoCUIekkEbMhlBdXRvZ2VuZXJhdGVkIGlmIHNraXBwZWQuIlYKHUNyZWF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJKChlHZXRQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEANKBAgCEAMiUwoaR2V0UHJvamVjdFJlc291cmNlUmVzcG9uc2USNQoIcmVzb3VyY2UYASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlInwKHFVwZGF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSCgoCaWQYASABKAkSPAoEYm9keRgCIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keRISCgpwcm9qZWN0X2lkGAMgASgJIlYKHVVwZGF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJHChxEZWxldGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEAMiHwodRGVsZXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UigwYKHkNoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJDCglvYmplY3RfaWQYASABKAlCMBgBkkErMilEZXByZWNhdGVkLiBVc2UgYHJlc291cmNlYCBmaWVsZCBpbnN0ZWFkLhJKChBvYmplY3RfbmFtZXNwYWNlGAIgASgJQjAYAZJBKzIpRGVwcmVjYXRlZC4gVXNlIGByZXNvdXJjZWAgZmllbGQgaW5zdGVhZC4SjAEKCnBlcm1pc3Npb24YAyABKAlCeJJBWTJXdGhlIHBlcm1pc3Npb24gbmFtZSB0byBjaGVjay4gPGJyLz4gKkV4YW1wbGU6KiBgZ2V0YCwgYGxpc3RgLCBgY29tcHV0ZS5pbnN0YW5jZS5jcmVhdGVg4kEBAvpCFXITMhFeW0EtWmEtejAtOS5fLV0rJBLAAwoIcmVzb3VyY2UYBCABKAlCrQOSQakDMqYDYG5hbWVzcGFjZTp1dWlkYCBvciBgbmFtZXNwYWNlOm5hbWVgIG9mIHRoZSBvcmcgb3IgcHJvamVjdCwgYW5kIGBuYW1lc3BhY2U6dXJuYCBvZiBhIHJlc291cmNlIHVuZGVyIGEgcHJvamVjdC4gSW4gY2FzZSBvZiBhbiBvcmcvcHJvamVjdCBlaXRoZXIgcHJvdmlkZSB0aGUgY29tcGxldGUgbmFtZXNwYWNlIChhcHAvb3JnYW5pemF0aW9uKSBvciBGcm9udGllciBjYW4gYWxzbyBwYXJzZSBhbGlhc2VzIGZvciB0aGUgc2FtZSBhcyBgb3JnYCBvciBgcHJvamVjdGAuIDxici8+ICpFeGFtcGxlOiogYG9yZ2FuaXphdGlvbjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgIG9yIGBhcHAvcHJvamVjdDpwcm9qZWN0LW5hbWVgIG9yIGBjb21wdXRlL2luc3RhbmNlOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWAiMQofQ2hlY2tSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZRIOCgZzdGF0dXMYASABKAgibgobQmF0Y2hDaGVja1Blcm1pc3Npb25SZXF1ZXN0Ek8KBmJvZGllcxgBIAMoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmF0Y2hDaGVja1Blcm1pc3Npb25Cb2R5Qgr6QgeSAQQIARAUItIEChhCYXRjaENoZWNrUGVybWlzc2lvbkJvZHkScwoKcGVybWlzc2lvbhgBIAEoCUJfkkFAMj50aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgIG9yIGBsaXN0YOJBAQL6QhVyEzIRXltBLVphLXowLTkuXy1dKyQSwAMKCHJlc291cmNlGAIgASgJQq0DkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgImoKHEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2USSgoFcGFpcnMYASADKAsyOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyInUKIEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyEkEKBGJvZHkYASABKAsyMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uQm9keRIOCgZzdGF0dXMYAiABKAgioQMKFU1ldGFTY2hlbWFSZXF1ZXN0Qm9keRLUAQoEbmFtZRgBIAEoCULFAZJBpgEyowFUaGUgbmFtZSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErABCgZzY2hlbWEYAiABKAlCnwGSQZABMo0BVGhlIHNjaGVtYSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIHNjaGVtYSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEu4kEBAvpCBHICEAIiYwoXQ3JlYXRlTWV0YVNjaGVtYVJlcXVlc3QSSAoEYm9keRgBIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJVChhDcmVhdGVNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSIiChRHZXRNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSJvChdVcGRhdGVNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCRJICgRib2R5GAIgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hUmVxdWVzdEJvZHlCCPpCBYoBAhABIlUKGFVwZGF0ZU1ldGFTY2hlbWFSZXNwb25zZRI5CgptZXRhc2NoZW1hGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hIiUKF0RlbGV0ZU1ldGFTY2hlbWFSZXF1ZXN0EgoKAmlkGAEgASgJIhoKGERlbGV0ZU1ldGFTY2hlbWFSZXNwb25zZSIYChZMaXN0TWV0YVNjaGVtYXNSZXF1ZXN0IlUKF0xpc3RNZXRhU2NoZW1hc1Jlc3BvbnNlEjoKC21ldGFzY2hlbWFzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hIhwKGkRlc2NyaWJlUHJlZmVyZW5jZXNSZXF1ZXN0IlkKG0Rlc2NyaWJlUHJlZmVyZW5jZXNSZXNwb25zZRI6CgZ0cmFpdHMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VUcmFpdCKHAQokQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJjCiVDcmVhdGVPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjkKIkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiYQojTGlzdE9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiggEKH0NyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIl4KIENyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjQKHUxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIlwKHkxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSKAAQodQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIlwKHkNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIyChtMaXN0R3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiWgocTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJ/ChxDcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJbCh1DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIxChpMaXN0VXNlclByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJZChtMaXN0VXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UicQojQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBImIKJENyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIjCiFMaXN0Q3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QiYAoiTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJICh1CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVxdWVzdBIZCghwcm92aWRlchgBIAEoCUIH+kIEcgIQARIMCgRib2R5GAIgASgMIiAKHkJpbGxpbmdXZWJob29rQ2FsbGJhY2tSZXNwb25zZSKEBAobQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXF1ZXN0Ej4KBG5hbWUYASABKAlCMJJBFzIVZnVsbCBuYW1lIG9mIHRoZSB1c2Vy+kITchEyDF5bQS1aYS16IF0rJNABARIyCgVlbWFpbBgFIAEoCUIjkkETMhFlbWFpbCBvZiB0aGUgdXNlcuJBAQL6QgZyBBABYAESLAoFcGhvbmUYBiABKAlCHZJBGjIYcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyEoABCghhY3Rpdml0eRgHIAEoCUJukkFOMkxhY3Rpdml0eSBmb3Igd2hpY2ggdXNlciBpcyBzdWJzY3JpYmluZywgZS5nLiBuZXdzbGV0dGVyLCB3YWl0bGlzdCwgYmxvZ3MgZXRj4kEBAvpCFnIUEAEyEF5bQS1aYS16MC05LV9dKyQSbQoGc291cmNlGAkgASgJQl2SQUAyPnNvdXJjZSBvZiB0aGlzIHVzZXIgYWRkaXRpb24gZS5nLiBwbGF0Zm9ybSwgd2Vic2l0ZSwgYWRtaW4gZXRj+kIXchUyEF5bQS1aYS16MC05LV9dKyTQAQESUQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QiaSQSMyIWFkZGl0aW9uYWwgaW5mbyBhcyBrZXkgdmFsdWUgcGFpciIeChxDcmVhdGVQcm9zcGVjdFB1YmxpY1Jlc3BvbnNlIhUKE0xpc3RTZXNzaW9uc1JlcXVlc3QiTAoUTGlzdFNlc3Npb25zUmVzcG9uc2USNAoIc2Vzc2lvbnMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlc3Npb24iOAoUUmV2b2tlU2Vzc2lvblJlcXVlc3QSIAoKc2Vzc2lvbl9pZBgBIAEoCUIM4kEBAvpCBXIDsAEBIhcKFVJldm9rZVNlc3Npb25SZXNwb25zZSIYChZQaW5nVXNlclNlc3Npb25SZXF1ZXN0IlQKF1BpbmdVc2VyU2Vzc2lvblJlc3BvbnNlEjkKCG1ldGFkYXRhGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXNzaW9uLk1ldGEitQMKGENyZWF0ZUF1ZGl0UmVjb3JkUmVxdWVzdBJACgVhY3RvchgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmRBY3RvckIE4kEBAhIaCgVldmVudBgCIAEoCUIL4kEBAvpCBHICEAMSRgoIcmVzb3VyY2UYAyABKAsyLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkUmVzb3VyY2VCBOJBAQISPAoGdGFyZ2V0GAQgASgLMiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdWRpdFJlY29yZFRhcmdldBI1CgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBOJBAQISGAoGb3JnX2lkGAYgASgJQgj6QgVyA7ABARISCgpyZXF1ZXN0X2lkGAcgASgJEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIlCg9pZGVtcG90ZW5jeV9rZXkYCSABKAlCDOJBAQL6QgVyA7ABASJZChlDcmVhdGVBdWRpdFJlY29yZFJlc3BvbnNlEjwKDGF1ZGl0X3JlY29yZBgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmQy05EDCg9Gcm9udGllclNlcnZpY2US6AIKCUxpc3RVc2VycxIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJzUmVxdWVzdBosLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJzUmVzcG9uc2Ui/wGSQeUBCgRVc2VyEhFMaXN0IHB1YmxpYyB1c2VycxrJAVJldHVybnMgdGhlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBrZXl3b3JkLCBvcmdhbml6YXRpb24sIGdyb3VwIGFuZCBzdGF0ZS4gQWRkaXRpb25hbGx5IHlvdSBjYW4gaW5jbHVkZSBwYWdlIG51bWJlciBhbmQgcGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLoLT5JMCEBIOL3YxYmV0YTEvdXNlcnMSuwYKCkNyZWF0ZVVzZXISLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUmVzcG9uc2UizwWSQa8FCgRVc2VyEgtDcmVhdGUgdXNlchqXBUNyZWF0ZSBhIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gZGV0YWlscy4gQSB1c2VyIGlzIG5vdCBhdHRhY2hlZCB0byBhbiBvcmdhbml6YXRpb24gb3IgYSBncm91cCBieSBkZWZhdWx0LGFuZCBjYW4gYmUgaW52aXRlZCB0byB0aGUgb3JnL2dyb3VwLiBUaGUgbmFtZSBvZiB0aGUgdXNlciBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gSWYgYSB1c2VyIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIG5hbWUgZnJvbSB0aGUgdXNlciBlbWFpbC4gVGhlIHVzZXIgbWV0YWRhdGEgaXMgdmFsaWRhdGVkIGFnYWluc3QgdGhlIHVzZXIgbWV0YXNjaGVtYS4gQnkgZGVmYXVsdCB0aGUgdXNlciBtZXRhc2NoZW1hIGNvbnRhaW5zIGBsYWJlbHNgIGFuZCBgZGVzY3JpcHRpb25zYCBmb3IgdGhlIHVzZXIuIFRoZSBgdGl0bGVgIGZpZWxkIGNhbiBiZSBvcHRpb25hbGx5IGFkZGVkIGZvciBhIHVzZXItZnJpZW5kbHkgbmFtZS4gPGJyLz48YnIvPipFeGFtcGxlOipgeyJlbWFpbCI6ImpvaG4uZG9lQHJheXN0YWNrLm9yZyIsInRpdGxlIjoiSm9obiBEb2UiLG1ldGFkYXRhOnsibGFiZWwiOiB7ImtleTEiOiAidmFsdWUxIn0sICJkZXNjcmlwdGlvbiI6ICJVc2VyIERlc2NyaXB0aW9uIn19YGIAgtPkkwIWIg4vdjFiZXRhMS91c2VyczoEYm9keRLPAQoHR2V0VXNlchIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXNlclJlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVzZXJSZXNwb25zZSJtkkFPCgRVc2VyEghHZXQgdXNlcho9R2V0IGEgdXNlciBieSBpZCBzZWFyY2hlZCBvdmVyIGFsbCBvcmdhbml6YXRpb25zIGluIEZyb250aWVyLoLT5JMCFRITL3YxYmV0YTEvdXNlcnMve2lkfRLqAgoOTGlzdFVzZXJHcm91cHMSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyR3JvdXBzUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJHcm91cHNSZXNwb25zZSLyAZJBzAEKBFVzZXISEExpc3QgdXNlciBncm91cHMasQFMaXN0cyBhbGwgdGhlIGdyb3VwcyBhIHVzZXIgYmVsb25ncyB0byBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbiBpbiBGcm9udGllci4gVG8gZ2V0IHRoZSBncm91cHMgb2YgYSB1c2VyIGluIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLCB1c2UgdGhlIG9yZ19pZCBmaWx0ZXIgaW4gdGhlIHF1ZXJ5IHBhcmFtZXRlci6C0+STAhwSGi92MWJldGExL3VzZXJzL3tpZH0vZ3JvdXBzEscBChVMaXN0Q3VycmVudFVzZXJHcm91cHMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1Jlc3BvbnNlIjuSQRYKBFVzZXISDkxpc3QgbXkgZ3JvdXBzgtPkkwIcEhovdjFiZXRhMS91c2Vycy9zZWxmL2dyb3VwcxKtAQoOR2V0Q3VycmVudFVzZXISMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRVc2VyUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSI2kkEYCgRVc2VyEhBHZXQgY3VycmVudCB1c2VygtPkkwIVEhMvdjFiZXRhMS91c2Vycy9zZWxmEqIBCgpVcGRhdGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlVXNlclJlc3BvbnNlIjeSQRMKBFVzZXISC1VwZGF0ZSB1c2VygtPkkwIbGhMvdjFiZXRhMS91c2Vycy97aWR9OgRib2R5Er8BChFVcGRhdGVDdXJyZW50VXNlchIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQ3VycmVudFVzZXJSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVDdXJyZW50VXNlclJlc3BvbnNlIj+SQRsKBFVzZXISE1VwZGF0ZSBjdXJyZW50IHVzZXKC0+STAhsaEy92MWJldGExL3VzZXJzL3NlbGY6BGJvZHkSkQIKCkVuYWJsZVVzZXISLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVVzZXJSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVVc2VyUmVzcG9uc2UipQGSQX0KBFVzZXISC0VuYWJsZSB1c2VyGmhTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdXNlciBhcyBlbmFibGVkLiBUaGUgdXNlciB3aWxsIGJlIGFibGUgdG8gbG9nIGluIGFuZCBhY2Nlc3MgdGhlIEZyb250aWVyIGluc3RhbmNlLoLT5JMCHyIaL3YxYmV0YTEvdXNlcnMve2lkfS9lbmFibGU6ASoSkAMKC0Rpc2FibGVVc2VyEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlVXNlclJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVVc2VyUmVzcG9uc2UioQKSQfcBCgRVc2VyEgxEaXNhYmxlIHVzZXIa4AFTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdXNlciBhcyBkaWFibGVkLlRoZSB1c2VyJ3MgbWVtYmVyc2hpcCB0byBncm91cHMgYW5kIG9yZ2FuaXphdGlvbnMgd2lsbCBzdGlsbCBleGlzdCBhbG9uZyB3aXRoIGFsbCBpdCdzIHJvbGVzIGZvciBhY2Nlc3MgY29udHJvbCwgYnV0IHRoZSB1c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gbG9nIGluIGFuZCBhY2Nlc3MgdGhlIEZyb250aWVyIGluc3RhbmNlLoLT5JMCICIbL3YxYmV0YTEvdXNlcnMve2lkfS9kaXNhYmxlOgEqEvcBCgpEZWxldGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlVXNlclJlc3BvbnNlIosBkkFtCgRVc2VyEgtEZWxldGUgdXNlchpYRGVsZXRlIGFuIHVzZXIgcGVybWFuZW50bHkgZm9yZXZlciBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgKG9yZ2FuaXphdGlvbnMsIGdyb3VwcywgZXRjKYLT5JMCFSoTL3YxYmV0YTEvdXNlcnMve2lkfRL/BAoXTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXISOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zQnlVc2VyUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXJSZXNwb25zZSLsA5JBvwMKBFVzZXISFkdldCB1c2VyIG9yZ2FuaXphdGlvbnMangNUaGlzIEFQSSByZXR1cm5zIHR3byBsaXN0IG9mIG9yZ2FuaXphdGlvbnMgZm9yIHRoZSB1c2VyLiBpKSBUaGUgbGlzdCBvZiBvcmdzIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgYWxyZWFkeSBhIHBhcnQgb2YgaWkpIFRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgY2FuIGpvaW4gZGlyZWN0bHkgKGJhc2VkIG9uIGRvbWFpbiB3aGl0ZWxpc3RlZCBhbmQgdmVyaWZpZWQgYnkgdGhlIG9yZykuIFRoaXMgbGlzdCB3aWxsIGFsc28gY29udGFpbiBvcmdzIG9mIHdoaWNoIHVzZXIgaXMgYWxyZWFkeSBhIHBhcnQgb2YuIE5vdGU6IHRoZSBkb21haW4gbmVlZHMgdG8gYmUgdmVyaWZpZWQgYnkgdGhlIG9yZyBiZWZvcmUgdGhlIGl0IGlzIHJldHVybmVkIGFzIG9uZSBvZiB0aGUgam9pbmFibGUgb3JncyBieSBkb21haW6C0+STAiMSIS92MWJldGExL3VzZXJzL3tpZH0vb3JnYW5pemF0aW9ucxKkBQoeTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyEkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXF1ZXN0GkEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXNwb25zZSL8A5JBzwMKBFVzZXISFEdldCBteSBvcmdhbml6YXRpb25zGrADVGhpcyBBUEkgcmV0dXJucyB0d28gbGlzdCBvZiBvcmdhbml6YXRpb25zIGZvciB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlci4gaSkgVGhlIGxpc3Qgb2Ygb3JncyB3aGljaCB0aGUgY3VycmVudCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mIGlpKSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGNhbiBqb2luIGRpcmVjdGx5IChiYXNlZCBvbiBkb21haW4gd2hpdGVsaXN0ZWQgYW5kIHZlcmlmaWVkIGJ5IHRoZSBvcmcpLiBUaGlzIGxpc3Qgd2lsbCBhbHNvIGNvbnRhaW4gb3JncyBvZiB3aGljaCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mLiBOb3RlOiB0aGUgZG9tYWluIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJ5IHRoZSBvcmcgYmVmb3JlIHRoZSBpdCBpcyByZXR1cm5lZCBhcyBvbmUgb2YgdGhlIGpvaW5hYmxlIG9yZ3MgYnkgZG9tYWlugtPkkwIjEiEvdjFiZXRhMS91c2Vycy9zZWxmL29yZ2FuaXphdGlvbnMS7AEKEkxpc3RQcm9qZWN0c0J5VXNlchI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlVc2VyUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlVc2VyUmVzcG9uc2UiaZJBQgoEVXNlchIRR2V0IHVzZXIgcHJvamVjdHMaJ0dldCBhbGwgdGhlIHByb2plY3RzIGEgdXNlciBiZWxvbmdzIHRvLoLT5JMCHhIcL3YxYmV0YTEvdXNlcnMve2lkfS9wcm9qZWN0cxKEAgoZTGlzdFByb2plY3RzQnlDdXJyZW50VXNlchI7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlcXVlc3QaPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXJSZXNwb25zZSJskkFFCgRVc2VyEg9HZXQgbXkgcHJvamVjdHMaLEdldCBhbGwgcHJvamVjdHMgdGhlIGN1cnJlbnQgdXNlciBiZWxvbmdzIHRvgtPkkwIeEhwvdjFiZXRhMS91c2Vycy9zZWxmL3Byb2plY3RzEvcBChNMaXN0VXNlckludml0YXRpb25zEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlckludml0YXRpb25zUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJJbnZpdGF0aW9uc1Jlc3BvbnNlInGSQUcKBFVzZXISFUxpc3QgdXNlciBpbnZpdGF0aW9ucxooTGlzdCBhbGwgdGhlIGludml0YXRpb25zIHNlbnQgdG8gYSB1c2VyLoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMve2lkfS9pbnZpdGF0aW9ucxKSAgoaTGlzdEN1cnJlbnRVc2VySW52aXRhdGlvbnMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEN1cnJlbnRVc2VySW52aXRhdGlvbnNSZXNwb25zZSJ3kkFNCgRVc2VyEhVMaXN0IHVzZXIgaW52aXRhdGlvbnMaLkxpc3QgYWxsIHRoZSBpbnZpdGF0aW9ucyBzZW50IHRvIGN1cnJlbnQgdXNlci6C0+STAiESHy92MWJldGExL3VzZXJzL3NlbGYvaW52aXRhdGlvbnMSqAIKEExpc3RTZXJ2aWNlVXNlcnMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlcnNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJzUmVzcG9uc2UiqgGSQYkBCgtTZXJ2aWNlVXNlchIWTGlzdCBvcmcgc2VydmljZSB1c2VycxpiUmV0dXJucyB0aGUgc2VydmljZSB1c2VyIG9mIGFuIG9yZ2FuaXphdGlvbiBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyIGJ5IGl0J3Mgc3RhdGWC0+STAhcSFS92MWJldGExL3NlcnZpY2V1c2VycxL0AQoRQ3JlYXRlU2VydmljZVVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJSZXNwb25zZSJ0kkE6CgtTZXJ2aWNlVXNlchITQ3JlYXRlIHNlcnZpY2UgdXNlchoWQ3JlYXRlIGEgc2VydmljZSB1c2VyLoLT5JMCMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnM6ASoS+AEKDkdldFNlcnZpY2VVc2VyEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlclJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VyUmVzcG9uc2UigAGSQUQKC1NlcnZpY2VVc2VyEhBHZXQgc2VydmljZSB1c2VyGiNHZXQgc2VydmljZSB1c2VyIGRldGFpbHMgYnkgaXRzIGlkLoLT5JMCMxIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfRK+AgoRRGVsZXRlU2VydmljZVVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJSZXNwb25zZSK9AZJBgAEKC1NlcnZpY2VVc2VyEhNEZWxldGUgc2VydmljZSB1c2VyGlxEZWxldGUgYSBzZXJ2aWNlIHVzZXIgcGVybWFuZW50bHkgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIChrZXlzLCBvcmdhbml6YXRpb25zLCByb2xlcywgZXRjKYLT5JMCMyoxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfRKYAwoUQ3JlYXRlU2VydmljZVVzZXJKV0sSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJKV0tSZXNwb25zZSKOApJByQEKC1NlcnZpY2VVc2VyEitDcmVhdGUgc2VydmljZSB1c2VyIHB1YmxpYy9wcml2YXRlIGtleSBwYWlyGowBR2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIga2V5IGFuZCByZXR1cm4gaXQsIHRoZSBwcml2YXRlIGtleSBwYXJ0IG9mIHRoZSByZXNwb25zZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBrZXB0IHNlY3VyZWx5IGJ5IGNsaWVudC6C0+STAjsiNi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5czoBKhKvAgoTTGlzdFNlcnZpY2VVc2VySldLcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VySldLc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckpXS3NSZXNwb25zZSKoAZJBZwoLU2VydmljZVVzZXISFkxpc3Qgc2VydmljZSB1c2VyIGtleXMaQExpc3QgYWxsIHRoZSBrZXlzIG9mIGEgc2VydmljZSB1c2VyIHdpdGggaXRzIGRldGFpbHMgZXhjZXB0IGp3ay6C0+STAjgSNi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5cxKWAgoRR2V0U2VydmljZVVzZXJKV0sSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VySldLUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U2VydmljZVVzZXJKV0tSZXNwb25zZSKVAZJBSwoLU2VydmljZVVzZXISFEdldCBzZXJ2aWNlIHVzZXIga2V5GiZHZXQgYSBzZXJ2aWNlIHVzZXIgcHVibGljIFJTQSBKV0sgc2V0LoLT5JMCQRI/L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9rZXlzL3trZXlfaWR9EqICChREZWxldGVTZXJ2aWNlVXNlckpXSxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJKV0tSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlIpgBkkFOCgtTZXJ2aWNlVXNlchIXRGVsZXRlIHNlcnZpY2UgdXNlciBrZXkaJkRlbGV0ZSBhIHNlcnZpY2UgdXNlciBrZXkgcGVybWFuZW50bHkugtPkkwJBKj8vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXMve2tleV9pZH0SpAMKG0NyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbBI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2UihQKSQb0BCgtTZXJ2aWNlVXNlchImQ3JlYXRlIHNlcnZpY2UgdXNlciBjbGllbnQgY3JlZGVudGlhbHMahQFHZW5lcmF0ZSBhIHNlcnZpY2UgdXNlciBjcmVkZW50aWFsIGFuZCByZXR1cm4gaXQuIFRoZSBjcmVkZW50aWFsIHZhbHVlIHdpbGwgbm90IGJlIHBlcnNpc3RlZCBhbmQgc2hvdWxkIGJlIHNlY3VyZWx5IHN0b3JlZCBieSBjbGllbnQugtPkkwI+IjkvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3NlY3JldHM6ASoSuQIKGkxpc3RTZXJ2aWNlVXNlckNyZWRlbnRpYWxzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UinQGSQVkKC1NlcnZpY2VVc2VyEh1MaXN0IHNlcnZpY2UgdXNlciBjcmVkZW50aWFscxorTGlzdCBhbGwgdGhlIGNyZWRlbnRpYWxzIG9mIGEgc2VydmljZSB1c2VyLoLT5JMCOxI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzEsACChtEZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWwSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlIqEBkkFRCgtTZXJ2aWNlVXNlchIfRGVsZXRlIHNlcnZpY2UgdXNlciBjcmVkZW50aWFscxohRGVsZXRlIGEgc2VydmljZSB1c2VyIGNyZWRlbnRpYWwugtPkkwJHKkUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3NlY3JldHMve3NlY3JldF9pZH0S/AIKFkNyZWF0ZVNlcnZpY2VVc2VyVG9rZW4SOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVzcG9uc2Ui7AGSQaUBCgtTZXJ2aWNlVXNlchIZQ3JlYXRlIHNlcnZpY2UgdXNlciB0b2tlbhp7R2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIgdG9rZW4gYW5kIHJldHVybiBpdC4gVGhlIHRva2VuIHZhbHVlIHdpbGwgbm90IGJlIHBlcnNpc3RlZCBhbmQgc2hvdWxkIGJlIHNlY3VyZWx5IHN0b3JlZCBieSBjbGllbnQugtPkkwI9IjgvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Rva2VuczoBKhKfAgoVTGlzdFNlcnZpY2VVc2VyVG9rZW5zEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJUb2tlbnNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJUb2tlbnNSZXNwb25zZSKSAZJBTwoLU2VydmljZVVzZXISGExpc3Qgc2VydmljZSB1c2VyIHRva2VucxomTGlzdCBhbGwgdGhlIHRva2VucyBvZiBhIHNlcnZpY2UgdXNlci6C0+STAjoSOC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vdG9rZW5zEqQCChZEZWxldGVTZXJ2aWNlVXNlclRva2VuEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlclRva2VuUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIpQBkkFGCgtTZXJ2aWNlVXNlchIZRGVsZXRlIHNlcnZpY2UgdXNlciB0b2tlbhocRGVsZXRlIGEgc2VydmljZSB1c2VyIHRva2VuLoLT5JMCRSpDL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS90b2tlbnMve3Rva2VuX2lkfRKwAgoXTGlzdFNlcnZpY2VVc2VyUHJvamVjdHMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXNwb25zZSKdAZJBWAoLU2VydmljZVVzZXISGkxpc3Qgc2VydmljZSBzc2VyIHByb2plY3RzGi1MaXN0IGFsbCBwcm9qZWN0cyB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG+C0+STAjwSOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vcHJvamVjdHMS5AIKFkxpc3RPcmdhbml6YXRpb25Hcm91cHMSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uR3JvdXBzUmVzcG9uc2Ui1AGSQaIBCgVHcm91cBIYTGlzdCBvcmdhbml6YXRpb24gZ3JvdXBzGn9HZXQgYWxsIGdyb3VwcyB0aGF0IGJlbG9uZyB0byBhbiBvcmdhbml6YXRpb24uIFRoZSByZXN1bHRzIGNhbiBiZSBmaWx0ZXJlZCBieSBzdGF0ZSB3aGljaCBjYW4gYmUgZWl0aGVyIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQugtPkkwIoEiYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3VwcxKdAwoLQ3JlYXRlR3JvdXASLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBSZXNwb25zZSKuApJB9gEKBUdyb3VwEgxDcmVhdGUgZ3JvdXAa3gFDcmVhdGUgYSBuZXcgZ3JvdXAgaW4gYW4gb3JnYW5pemF0aW9uIHdoaWNoIHNlcnZlcyBhcyBhIGNvbnRhaW5lciBmb3IgdXNlcnMuIFRoZSBncm91cCBjYW4gYmUgYXNzaWduZWQgcm9sZXMgYW5kIHBlcm1pc3Npb25zIGFuZCBjYW4gYmUgdXNlZCB0byBtYW5hZ2UgYWNjZXNzIHRvIHJlc291cmNlcy4gQWxzbyBhIGdyb3VwIGNhbiBhbHNvIGJlIGFzc2lnbmVkIHRvIG90aGVyIGdyb3Vwcy6C0+STAi4iJi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzOgRib2R5Eq0BCghHZXRHcm91cBIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0R3JvdXBSZXF1ZXN0GisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRHcm91cFJlc3BvbnNlIkiSQRIKBUdyb3VwEglHZXQgZ3JvdXCC0+STAi0SKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0SvwEKC1VwZGF0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUdyb3VwUmVzcG9uc2UiUZJBFQoFR3JvdXASDFVwZGF0ZSBncm91cILT5JMCMxorL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfToEYm9keRL+AQoOTGlzdEdyb3VwVXNlcnMSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFVzZXJzUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwVXNlcnNSZXNwb25zZSKGAZJBSgoFR3JvdXASEExpc3QgZ3JvdXAgdXNlcnMaL1JldHVybnMgYSBsaXN0IG9mIHVzZXJzIHRoYXQgYmVsb25nIHRvIGEgZ3JvdXAugtPkkwIzEjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L3VzZXJzEt0CCg1BZGRHcm91cFVzZXJzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRHcm91cFVzZXJzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkR3JvdXBVc2Vyc1Jlc3BvbnNlIugBkkGoAQoFR3JvdXASDkFkZCBncm91cCB1c2VyGo4BQWRkcyBhIHByaW5jaXBsZSh1c2VyIGFuZCBzZXJ2aWNlLXVzZXJzKSB0byBhIGdyb3VwLCBleGlzdGluZyB1c2VycyBpbiB0aGUgZ3JvdXAgd2lsbCBiZSBpZ25vcmVkLiBBIGdyb3VwIGNhbid0IGhhdmUgbmVzdGVkIGdyb3VwcyBhcyBtZW1iZXJzLoLT5JMCNiIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2VyczoBKhLvAgoPUmVtb3ZlR3JvdXBVc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVHcm91cFVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVHcm91cFVzZXJSZXNwb25zZSL0AZJBrQEKBUdyb3VwEhFSZW1vdmUgZ3JvdXAgdXNlchqQAVJlbW92ZXMgYSBwcmluY2lwbGUodXNlciBhbmQgc2VydmljZS11c2VycykgZnJvbSBhIGdyb3VwLiBJZiB0aGUgdXNlciBpcyBub3QgaW4gdGhlIGdyb3VwLCB0aGUgcmVxdWVzdCB3aWxsIHN1Y2NlZWQgYnV0IG5vIGNoYW5nZXMgd2lsbCBiZSBtYWRlLoLT5JMCPSo7L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2Vycy97dXNlcl9pZH0SwwIKC0VuYWJsZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZUdyb3VwUmVzcG9uc2Ui1AGSQZMBCgVHcm91cBIMRW5hYmxlIGdyb3VwGnxTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZ3JvdXAgYXMgZW5hYmxlZC4gVGhlIGBlbmFibGVkYCBmbGFnIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBncm91cCBjYW4gYmUgdXNlZCBmb3IgYWNjZXNzIGNvbnRyb2wugtPkkwI3IjIvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L2VuYWJsZToBKhLUAwoMRGlzYWJsZUdyb3VwEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlR3JvdXBSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlR3JvdXBSZXNwb25zZSLiApJBoAIKBUdyb3VwEg1EaXNhYmxlIGdyb3VwGocCU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGdyb3VwIGFzIGRpc2FibGVkLiBUaGUgZ3JvdXAgd2lsbCBub3QgYmUgYXZhaWxhYmxlIGZvciBhY2Nlc3MgY29udHJvbCBhbmQgdGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBncm91cCB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgcmVzb3VyY2VzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIHRoZSBncm91cC4gTm8gb3RoZXIgdXNlcnMgY2FuIGJlIGFkZGVkIHRvIHRoZSBncm91cCB3aGlsZSBpdCBpcyBkaXNhYmxlZC6C0+STAjgiMy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vZGlzYWJsZToBKhL9AQoLRGVsZXRlR3JvdXASLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUdyb3VwUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlR3JvdXBSZXNwb25zZSKOAZJBWAoFR3JvdXASDERlbGV0ZSBncm91cBpBRGVsZXRlIGFuIG9yZ2FuaXphdGlvbiBncm91cCBwZXJtYW5lbnRseSBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnOC0+STAi0qKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0SkwIKCUxpc3RSb2xlcxIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJvbGVzUmVxdWVzdBosLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJvbGVzUmVzcG9uc2UiqgGSQZABCgRSb2xlEhNMaXN0IHBsYXRmb3JtIHJvbGVzGnNSZXR1cm5zIGEgbGlzdCBvZiBwbGF0Zm9ybSB3aWRlIHJvbGVzIGF2YWlsYWJsZSBpbiBlbml0cmUgRnJvbnRpZXIgaW5zdGFuY2UgYWxvbmcgd2l0aCB0aGVpciBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwIQEg4vdjFiZXRhMS9yb2xlcxK8AgoVTGlzdE9yZ2FuaXphdGlvblJvbGVzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZSKvAZJBfwoEUm9sZRIXTGlzdCBvcmdhbml6YXRpb24gcm9sZXMaXlJldHVybnMgYSBsaXN0IG9mIGN1c3RvbSByb2xlcyBjcmVhdGVkIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiB3aXRoIHRoZWlyIGFzc29jaWF0ZWQgcGVybWlzc2lvbnOC0+STAicSJS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMS9wIKFkNyZWF0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2Ui5wGSQbABCgRSb2xlEhhDcmVhdGUgb3JnYW5pemF0aW9uIHJvbGUajQFDcmVhdGUgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24uIFRoaXMgY3VzdG9tIHJvbGUgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBmb3IgYXNzaWdubWVudCB0byB0aGUgcHJpbmNpcGxlcyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi6C0+STAi0iJS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXM6BGJvZHkSrAIKE0dldE9yZ2FuaXphdGlvblJvbGUSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2UipQGSQXAKBFJvbGUSFUdldCBvcmdhbml6YXRpb24gcm9sZRpRUmV0dXJucyBhIGN1c3RvbSByb2xlIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiBhbG9uZyB3aXRoIGl0cyBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwIsEiovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzL3tpZH0S/AIKFlVwZGF0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2Ui7AGSQbABCgRSb2xlEhhVcGRhdGUgb3JnYW5pemF0aW9uIHJvbGUajQFVcGRhdGUgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24uIFRoaXMgY3VzdG9tIHJvbGUgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBmb3IgYXNzaWdubWVudCB0byB0aGUgcHJpbmNpcGxlcyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi6C0+STAjIaKi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve2lkfToEYm9keRK3AgoWRGVsZXRlT3JnYW5pemF0aW9uUm9sZRI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZSKnAZJBcgoEUm9sZRIYRGVsZXRlIG9yZ2FuaXphdGlvbiByb2xlGlBEZWxldGUgYSBjdXN0b20gcm9sZSBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgdW5kZXIgYW4gb3JnYW5pemF0aW9uIHBlcm1hbmVudGx5LoLT5JMCLCoqL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcy97aWR9EpoCChFMaXN0T3JnYW5pemF0aW9ucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlIpkBkkF4CgxPcmdhbml6YXRpb24SEkxpc3Qgb3JnYW5pemF0aW9ucxpUUmV0dXJucyBhIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucy4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXJJRCBvciBvcmdhbml6YXRpb24gc3RhdGUugtPkkwIYEhYvdjFiZXRhMS9vcmdhbml6YXRpb25zEs0BChJDcmVhdGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIkqSQSMKDE9yZ2FuaXphdGlvbhITQ3JlYXRlIG9yZ2FuaXphdGlvboLT5JMCHiIWL3YxYmV0YTEvb3JnYW5pemF0aW9uczoEYm9keRLgAQoPR2V0T3JnYW5pemF0aW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25SZXNwb25zZSJmkkFACgxPcmdhbml6YXRpb24SEEdldCBvcmdhbml6YXRpb24aHkdldCBvcmdhbml6YXRpb24gYnkgSUQgb3IgbmFtZYLT5JMCHRIbL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9Eu0BChJVcGRhdGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlImqSQT4KDE9yZ2FuaXphdGlvbhITVXBkYXRlIG9yZ2FuaXphdGlvbhoZVXBkYXRlIG9yZ2FuaXphdGlvbiBieSBJRILT5JMCIxobL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9OgRib2R5Ep8CChhMaXN0T3JnYW5pemF0aW9uUHJvamVjdHMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIokBkkFaCgxPcmdhbml6YXRpb24SGUdldCBvcmdhbml6YXRpb24gcHJvamVjdHMaL0dldCBhbGwgcHJvamVjdHMgdGhhdCBiZWxvbmcgdG8gYW4gb3JnYW5pemF0aW9ugtPkkwImEiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vcHJvamVjdHMSjgIKFkxpc3RPcmdhbml6YXRpb25BZG1pbnMSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25BZG1pbnNSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVzcG9uc2Uif5JBUgoMT3JnYW5pemF0aW9uEhhMaXN0IG9yZ2FuaXphdGlvbiBhZG1pbnMaKFJldHVybnMgYSBsaXN0IGFkbWlucyBvZiBhbiBvcmdhbml6YXRpb26C0+STAiQSIi92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9hZG1pbnMS3wEKFUxpc3RPcmdhbml6YXRpb25Vc2VycxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiU5JBJwoMT3JnYW5pemF0aW9uEhdMaXN0IG9yZ2FuaXphdGlvbiB1c2Vyc4LT5JMCIxIhL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzEu0CChRBZGRPcmdhbml6YXRpb25Vc2VycxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlIuMBkkGzAQoMT3JnYW5pemF0aW9uEhVBZGQgb3JnYW5pemF0aW9uIHVzZXIaiwFBZGQgYSB1c2VyIHRvIGFuIG9yZ2FuaXphdGlvbi4gQSB1c2VyIG11c3QgZXhpc3RzIGluIEZyb250aWVyIGJlZm9yZSBhZGRpbmcgaXQgdG8gYW4gb3JnLiBUaGlzIHJlcXVlc3Qgd2lsbCBmYWlsIGlmIHRoZSB1c2VyIGRvZXNuJ3QgZXhpc3RzgtPkkwImIiEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnM6ASoSkgIKFlJlbW92ZU9yZ2FuaXphdGlvblVzZXISOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZU9yZ2FuaXphdGlvblVzZXJSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVzcG9uc2UiggGSQUwKDE9yZ2FuaXphdGlvbhIYUmVtb3ZlIG9yZ2FuaXphdGlvbiB1c2VyGiJSZW1vdmUgYSB1c2VyIGZyb20gYW4gb3JnYW5pemF0aW9ugtPkkwItKisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMve3VzZXJfaWR9EpYCChJHZXRPcmdhbml6YXRpb25LeWMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlIpIBkkFkCg9Pcmdhbml6YXRpb25LeWMSH0dldCBLWUMgaW5mbyBvZiBhbiBvcmdhbml6YXRpb24aMEdldCBLWUMgaW5mbyBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCJRIjL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWMSgwIKHExpc3RPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2UiYpJBLwoMT3JnYW5pemF0aW9uEh9MaXN0IG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwIqEigvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzErkCChtMaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnMSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1JlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1Jlc3BvbnNlIpoBkkFkCgxPcmdhbml6YXRpb24SGExpc3QgcGVuZGluZyBpbnZpdGF0aW9ucxo6UmV0dXJucyBhbGwgcGVuZGluZyBpbnZpdGF0aW9ucyBxdWV1ZWQgZm9yIGFuIG9yZ2FuaXphdGlvboLT5JMCLRIrL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9ucxL2AgocQ3JlYXRlT3JnYW5pemF0aW9uSW52aXRhdGlvbhI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSLUAZJBmgEKDE9yZ2FuaXphdGlvbhILSW52aXRlIHVzZXIafUludml0ZSB1c2VycyB0byBhbiBvcmdhbml6YXRpb24sIGlmIHVzZXIgaXMgbm90IHJlZ2lzdGVyZWQgb24gdGhlIHBsYXRmb3JtLCBpdCB3aWxsIGJlIG5vdGlmaWVkLiBJbnZpdGF0aW9ucyBleHBpcmUgaW4gNyBkYXlzgtPkkwIwIisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zOgEqErMCChlHZXRPcmdhbml6YXRpb25JbnZpdGF0aW9uEjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBo8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlIpoBkkFfCgxPcmdhbml6YXRpb24SFkdldCBwZW5kaW5nIGludml0YXRpb24aN1JldHVybnMgYSBwZW5kaW5nIGludml0YXRpb24gcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb26C0+STAjISMC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMve2lkfRKZAwocQWNjZXB0T3JnYW5pemF0aW9uSW52aXRhdGlvbhI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWNjZXB0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSL3AZJBsQEKDE9yZ2FuaXphdGlvbhIZQWNjZXB0IHBlbmRpbmcgaW52aXRhdGlvbhqFAUFjY2VwdCBwZW5kaW5nIGludml0YXRpb24gcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb24uIFRoZSB1c2VyIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG9yZ2FuaXphdGlvbiBhbmQgZ3JvdXBzIGRlZmluZWQgaW4gdGhlIGludml0YXRpb26C0+STAjwiNy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMve2lkfS9hY2NlcHQ6ASoSvgIKHERlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UinAGSQWEKDE9yZ2FuaXphdGlvbhIZRGVsZXRlIHBlbmRpbmcgaW52aXRhdGlvbho2RGVsZXRlIGEgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9ugtPkkwIyKjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0S2AMKF0xpc3RPcmdhbml6YXRpb25Eb21haW5zEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Eb21haW5zUmVzcG9uc2UixQKSQZICCgxPcmdhbml6YXRpb24SEExpc3Qgb3JnIGRvbWFpbnMa7wFSZXR1cm5zIGFsbCBkb21haW5zIHdoaXRlbGlzdGVkIGZvciBhbiBvcmdhbml6YXRpb24gKGJvdGggcGVuZGluZyBhbmQgdmVyaWZpZWQgaWYgbm8gZmlsdGVycyBhcmUgcHJvdmlkZWQgZm9yIHRoZSBzdGF0ZSkuIFRoZSB2ZXJpZmllZCBkb21haW5zIGFsbG93IHVzZXJzIGVtYWlsIHdpdGggdGhlIG9yZydzIHdoaXRlbGlzdGVkIGRvbWFpbiB0byBqb2luIHRoZSBvcmdhbml6YXRpb24gd2l0aG91dCBpbnZpdGF0aW9uLoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zEv4EChhDcmVhdGVPcmdhbml6YXRpb25Eb21haW4SOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlIugDkkGyAwoMT3JnYW5pemF0aW9uEhFDcmVhdGUgb3JnIGRvbWFpbhqOA0FkZCBhIGRvbWFpbiB0byBhbiBvcmdhbml6YXRpb24gd2hpY2ggaWYgdmVyaWZpZWQgYWxsb3dzIGFsbCB1c2VycyBvZiB0aGUgc2FtZSBkb21haW4gdG8gYmUgc2lnbmVkIHVwIHRvIHRoZSBvcmdhbml6YXRpb24gd2l0aG91dCBpbnZpdGF0aW9uLiBUaGlzIEFQSSBnZW5lcmF0ZXMgYSB2ZXJpZmljYXRpb24gdG9rZW4gZm9yIGEgZG9tYWluIHdoaWNoIG11c3QgYmUgYWRkZWQgdG8geW91ciBkb21haW4ncyBETlMgcHJvdmlkZXIgYXMgYSBUWFQgcmVjb3JkIHNob3VsZCBiZSB2ZXJpZmllZCB3aXRoIEZyb250aWVyIFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpbiBBUEkgYmVmb3JlIGl0IGNhbiBiZSB1c2VkIGFzIGFuIE9yZ2FuaXphdGlvbidzIHRydXN0ZWQgZG9tYWluIHRvIHNpZ24gdXAgdXNlcnMugtPkkwIsIicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnM6ASoStwIKGERlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpbhI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2UioQGSQWoKDE9yZ2FuaXphdGlvbhIRRGVsZXRlIG9yZyBkb21haW4aR1JlbW92ZSBhIGRvbWFpbiBmcm9tIHRoZSBsaXN0IG9mIGFuIG9yZ2FuaXphdGlvbidzIHRydXN0ZWQgZG9tYWlucyBsaXN0gtPkkwIuKiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfRLiAgoVR2V0T3JnYW5pemF0aW9uRG9tYWluEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSLVAZJBnQEKDE9yZ2FuaXphdGlvbhIOR2V0IG9yZyBkb21haW4afUdldCBhIGRvbWFpbiBmcm9tIHRoZSBsaXN0IG9mIGFuIG9yZ2FuaXphdGlvbidzIHdoaXRlbGlzdGVkIGRvbWFpbnMuIFJldHVybnMgYm90aCB2ZXJpZmllZCBhbmQgdW52ZXJpZmllZCBkb21haW5zIGJ5IHRoZWlyIElEgtPkkwIuEiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfRKlBAoYVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSKPA5JBzQIKDE9yZ2FuaXphdGlvbhIRVmVyaWZ5IG9yZyBkb21haW4aqQJWZXJpZnkgYSBkb21haW4gZm9yIGFuIG9yZ2FuaXphdGlvbiB3aXRoIGEgdmVyaWZpY2F0aW9uIHRva2VuIGdlbmVyYXRlZCBieSBGcm9udGllciBHZW5lcmF0ZURvbWFpblZlcmlmaWNhdGlvblRva2VuIEFQSS4gVGhlIHRva2VuIG11c3QgYmUgYWRkZWQgdG8geW91ciBkb21haW4ncyBETlMgcHJvdmlkZXIgYXMgYSBUWFQgcmVjb3JkIGJlZm9yZSBpdCBjYW4gYmUgdmVyaWZpZWQuIFRoaXMgQVBJIHJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSBkb21haW4gKHBlbmRpbmcvdmVyaWZpZWQpIGFmdGVyIHZlcmlmaWNhdGlvbi6C0+STAjgiMy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZG9tYWlucy97aWR9L3ZlcmlmeToBKhKSAwoQSm9pbk9yZ2FuaXphdGlvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSm9pbk9yZ2FuaXphdGlvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkpvaW5Pcmdhbml6YXRpb25SZXNwb25zZSKUApJB4QEKDE9yZ2FuaXphdGlvbhIRSm9pbiBvcmdhbml6YXRpb24avQFBbGxvd3MgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgdG8gam9pbiB0aGUgT3JnIGlmIG9uZSBpcyBub3QgYSBwYXJ0IG9mIGl0LiBUaGUgdXNlciB3aWxsIG9ubHkgYmUgYWJsZSB0byBqb2luIHdoZW4gdGhlIHVzZXIgZW1haWwncyBkb21haW4gbWF0Y2hlcyB0aGUgb3JnYW5pemF0aW9uJ3Mgd2hpdGVsaXN0ZWQgZG9tYWlucy6C0+STAikiJC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vam9pbjoBKhLZAgoSRW5hYmxlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVPcmdhbml6YXRpb25SZXNwb25zZSLVAZJBpAEKDE9yZ2FuaXphdGlvbhITRW5hYmxlIG9yZ2FuaXphdGlvbhp/U2V0cyB0aGUgc3RhdGUgb2YgdGhlIG9yZ2FuaXphdGlvbiBhcyBlbmFibGVkLiBUaGUgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIG9yZyB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIGFueSBvcmdhbml6YXRpb24gcmVzb3VyY2VzLoLT5JMCJyIiL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L2VuYWJsZToBKhLkAgoTRGlzYWJsZU9yZ2FuaXphdGlvbhI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZU9yZ2FuaXphdGlvblJlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVPcmdhbml6YXRpb25SZXNwb25zZSLdAZJBqwEKDE9yZ2FuaXphdGlvbhIURGlzYWJsZSBvcmdhbml6YXRpb24ahAFTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgb3JnYW5pemF0aW9uIGFzIGRpc2FibGVkLiBUaGUgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIG9yZyB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgb3JnYW5pemF0aW9uIHJlc291cmNlcy6C0+STAigiIy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9kaXNhYmxlOgEqEsYCChJEZWxldGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIsIBkkGbAQoMT3JnYW5pemF0aW9uEhNEZWxldGUgb3JnYW5pemF0aW9uGnZEZWxldGUgYW4gb3JnYW5pemF0aW9uIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucyBwZXJtYW5lbnRseS4gVGhlIG9yZ2FuaXphdGlvbiB1c2VycyB3aWxsIG5vdCBiZSBkZWxldGVkIGZyb20gRnJvbnRpZXIugtPkkwIdKhsvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0SrwEKDUNyZWF0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9qZWN0UmVzcG9uc2UiO5JBGQoHUHJvamVjdBIOQ3JlYXRlIHByb2plY3SC0+STAhkiES92MWJldGExL3Byb2plY3RzOgRib2R5ErsBCgpHZXRQcm9qZWN0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc3BvbnNlIlCSQS8KB1Byb2plY3QSC0dldCBwcm9qZWN0GhdSZXR1cm5zIGEgcHJvamVjdCBieSBJRILT5JMCGBIWL3YxYmV0YTEvcHJvamVjdHMve2lkfRLNAQoNVXBkYXRlUHJvamVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvamVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNwb25zZSJZkkEyCgdQcm9qZWN0Eg5VcGRhdGUgcHJvamVjdBoXVXBkYXRlcyBhIHByb2plY3QgYnkgSUSC0+STAh4aFi92MWJldGExL3Byb2plY3RzL3tpZH06BGJvZHkS8wEKEUxpc3RQcm9qZWN0QWRtaW5zEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEFkbWluc1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0QWRtaW5zUmVzcG9uc2Uic5JBSwoHUHJvamVjdBITTGlzdCBwcm9qZWN0IGFkbWlucxorUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgYWRtaW5zIG9mIGEgcHJvamVjdILT5JMCHxIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9hZG1pbnMSmAIKEExpc3RQcm9qZWN0VXNlcnMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0VXNlcnNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFVzZXJzUmVzcG9uc2UimgGSQXMKB1Byb2plY3QSEkxpc3QgcHJvamVjdCB1c2VycxpUUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgdXNlcnMgb2YgYSBwcm9qZWN0LiBGaWx0ZXIgYnkgdXNlciBwZXJtaXNzaW9ucyBpcyBzdXBwb3J0ZWQugtPkkwIeEhwvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3VzZXJzEpECChdMaXN0UHJvamVjdFNlcnZpY2VVc2VycxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlIn+SQVEKB1Byb2plY3QSGUxpc3QgcHJvamVjdCBzZXJ2aWNldXNlcnMaK1JldHVybnMgYSBjb2xsZWN0aW9uIG9mIHVzZXJzIG9mIGEgcHJvamVjdC6C0+STAiUSIy92MWJldGExL3Byb2plY3RzL3tpZH0vc2VydmljZXVzZXJzEvQBChFMaXN0UHJvamVjdEdyb3VwcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RHcm91cHNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlInSSQUwKB1Byb2plY3QSE0xpc3QgcHJvamVjdCBncm91cHMaLFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGdyb3VwcyBvZiBhIHByb2plY3QugtPkkwIfEh0vdjFiZXRhMS9wcm9qZWN0cy97aWR9L2dyb3VwcxK4AQoNRW5hYmxlUHJvamVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlUHJvamVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVByb2plY3RSZXNwb25zZSJEkkEZCgdQcm9qZWN0Eg5FbmFibGUgcHJvamVjdILT5JMCIiIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9lbmFibGU6ASoSvQEKDkRpc2FibGVQcm9qZWN0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlUHJvamVjdFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVQcm9qZWN0UmVzcG9uc2UiRpJBGgoHUHJvamVjdBIPRGlzYWJsZSBwcm9qZWN0gtPkkwIjIh4vdjFiZXRhMS9wcm9qZWN0cy97aWR9L2Rpc2FibGU6ASoS4gEKDURlbGV0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2UibpJBTQoHUHJvamVjdBIORGVsZXRlIFByb2plY3QaMkRlbGV0ZSBhIHByb2plY3QgYWxsIG9mIGl0cyByZWxhdGlvbnMgcGVybWFuZW50bHkugtPkkwIYKhYvdjFiZXRhMS9wcm9qZWN0cy97aWR9Er0BCgxDcmVhdGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeVJlc3BvbnNlIkySQSoKBlBvbGljeRINQ3JlYXRlIHBvbGljeRoRQ3JlYXRlcyBhIHBvbGljeSCC0+STAhkiES92MWJldGExL3BvbGljaWVzOgRib2R5ErUBCglHZXRQb2xpY3kSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBvbGljeVJlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBvbGljeVJlc3BvbnNlIk2SQSwKBlBvbGljeRIKR2V0IHBvbGljeRoWUmV0dXJucyBhIHBvbGljeSBieSBJRILT5JMCGBIWL3YxYmV0YTEvcG9saWNpZXMve2lkfRK5AgoMTGlzdFBvbGljaWVzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UG9saWNpZXNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UG9saWNpZXNSZXNwb25zZSLHAZJBqgEKBlBvbGljeRIRTGlzdCBhbGwgcG9saWNpZXMajAFMaXN0cyBhbGwgdGhlIHBvbGljaWVzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24sIHByb2plY3QsIHVzZXIsIHJvbGUgYW5kIGdyb3VwLoLT5JMCExIRL3YxYmV0YTEvcG9saWNpZXMSxwEKDFVwZGF0ZVBvbGljeRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUG9saWN5UmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUG9saWN5UmVzcG9uc2UiVpJBLwoGUG9saWN5Eg1VcGRhdGUgcG9saWN5GhZVcGRhdGVzIGEgcG9saWN5IGJ5IElEgtPkkwIeGhYvdjFiZXRhMS9wb2xpY2llcy97aWR9OgRib2R5EtwBCgxEZWxldGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBvbGljeVJlc3BvbnNlImuSQUoKBlBvbGljeRINRGVsZXRlIFBvbGljeRoxRGVsZXRlIGEgcG9saWN5IGFsbCBvZiBpdHMgcmVsYXRpb25zIHBlcm1hbmVudGx5LoLT5JMCGCoWL3YxYmV0YTEvcG9saWNpZXMve2lkfRKJAgoWQ3JlYXRlUG9saWN5Rm9yUHJvamVjdBI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUG9saWN5Rm9yUHJvamVjdFJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RSZXNwb25zZSJ6kkFCCgZQb2xpY3kSGUNyZWF0ZSBQb2xpY3kgZm9yIFByb2plY3QaHUNyZWF0ZSBhIHBvbGljeSBmb3IgYSBwcm9qZWN0gtPkkwIvIicvdjFiZXRhMS9wb2xpY2llcy9wcm9qZWN0cy97cHJvamVjdF9pZH06BGJvZHkStQEKDkNyZWF0ZVJlbGF0aW9uEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSZWxhdGlvblJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVJlbGF0aW9uUmVzcG9uc2UiPpJBGwoIUmVsYXRpb24SD0NyZWF0ZSByZWxhdGlvboLT5JMCGiISL3YxYmV0YTEvcmVsYXRpb25zOgRib2R5EsIBCgtHZXRSZWxhdGlvbhItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UmVsYXRpb25SZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRSZWxhdGlvblJlc3BvbnNlIlSSQTIKCFJlbGF0aW9uEgxHZXQgcmVsYXRpb24aGFJldHVybnMgYSByZWxhdGlvbiBieSBJRILT5JMCGRIXL3YxYmV0YTEvcmVsYXRpb25zL3tpZH0SkAIKDkRlbGV0ZVJlbGF0aW9uEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSZWxhdGlvblJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJlbGF0aW9uUmVzcG9uc2UimAGSQU4KCFJlbGF0aW9uEg9EZWxldGUgcmVsYXRpb24aMVJlbW92ZSBhIHN1YmplY3QgaGF2aW5nIGEgcmVsYXRpb24gZnJvbSBhbiBvYmplY3SC0+STAkEqPy92MWJldGExL3JlbGF0aW9ucy97cmVsYXRpb259L29iamVjdC97b2JqZWN0fS9zdWJqZWN0L3tzdWJqZWN0fRK6AQoPTGlzdFBlcm1pc3Npb25zEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGVybWlzc2lvbnNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGVybWlzc2lvbnNSZXNwb25zZSJAkkEhCgpQZXJtaXNzaW9uEhNHZXQgYWxsIHBlcm1pc3Npb25zgtPkkwIWEhQvdjFiZXRhMS9wZXJtaXNzaW9ucxLQAQoNR2V0UGVybWlzc2lvbhIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UGVybWlzc2lvblJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBlcm1pc3Npb25SZXNwb25zZSJckkE4CgpQZXJtaXNzaW9uEg5HZXQgcGVybWlzc2lvbhoaUmV0dXJucyBhIHBlcm1pc3Npb24gYnkgSUSC0+STAhsSGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0S7wEKDkxpc3ROYW1lc3BhY2VzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TmFtZXNwYWNlc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3ROYW1lc3BhY2VzUmVzcG9uc2UieJJBWgoJTmFtZXNwYWNlEhJHZXQgYWxsIG5hbWVzcGFjZXMaOVJldHVybnMgdGhlIGxpc3Qgb2YgYWxsIG5hbWVzcGFjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZYLT5JMCFRITL3YxYmV0YTEvbmFtZXNwYWNlcxLJAQoMR2V0TmFtZXNwYWNlEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXROYW1lc3BhY2VSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXROYW1lc3BhY2VSZXNwb25zZSJYkkE1CglOYW1lc3BhY2USDUdldCBuYW1lc3BhY2UaGVJldHVybnMgYSBuYW1lc3BhY2UgYnkgSUSC0+STAhoSGC92MWJldGExL25hbWVzcGFjZXMve2lkfRLZAQoUTGlzdFByb2plY3RSZXNvdXJjZXMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UmVzb3VyY2VzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RSZXNvdXJjZXNSZXNwb25zZSJQkkEdCghSZXNvdXJjZRIRR2V0IGFsbCByZXNvdXJjZXOC0+STAioSKC92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMSgQIKFUNyZWF0ZVByb2plY3RSZXNvdXJjZRI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc291cmNlUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UidZJBPAoIUmVzb3VyY2USD0NyZWF0ZSByZXNvdXJjZRofQ3JlYXRlcyBhIHJlc291cmNlIGluIGEgcHJvamVjdILT5JMCMCIoL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlczoEYm9keRL1AQoSR2V0UHJvamVjdFJlc291cmNlEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSJykkE6CghSZXNvdXJjZRIMR2V0IHJlc291cmNlGiBSZXR1cm5zIGEgcHJvamVjdCByZXNvdXJjZSBieSBJRILT5JMCLxItL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlcy97aWR9EoYCChVVcGRhdGVQcm9qZWN0UmVzb3VyY2USNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlInqSQTwKCFJlc291cmNlEg9VcGRhdGUgcmVzb3VyY2UaH1VwZGF0ZXMgYSByZXNvdXJjZSBpbiBhIHByb2plY3SC0+STAjUaLS92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMve2lkfToEYm9keRKPAgoVRGVsZXRlUHJvamVjdFJlc291cmNlEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSKCAZJBSgoIUmVzb3VyY2USD0RlbGV0ZSByZXNvdXJjZRotRGVsZXRlcyBhIHJlc291cmNlIGZyb20gYSBwcm9qZWN0IHBlcm1hbmVudGx5gtPkkwIvKi0vdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzL3tpZH0S+wMKF0NoZWNrUmVzb3VyY2VQZXJtaXNzaW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja1Jlc291cmNlUGVybWlzc2lvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2Ui6AKSQcsCCgVBdXRoehIFQ2hlY2saugJSZXR1cm5zIHRydWUgaWYgYSBwcmluY2lwYWwgaGFzIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBhIHJlc291cmNlIGFuZCBmYWxzZSBvdGhlcndpc2UuPGJyLz4gTm90ZSB0aGUgcHJpbmNpcGFsIGNhbiBiZSBhIHVzZXIgb3IgYSBzZXJ2aWNlIGFjY291bnQuIEZyb250aWVyIHdpbGwgZXh0cmFjdCBwcmluY2lwYWwgZnJvbSB0aGUgY3VycmVudCBsb2dnZWQgaW4gc2Vzc2lvbiBjb29raWUgKGlmIGFueSksIG9yIHRoZSBjbGllbnQgaWQgYW5kIHNlY3JldCAoaW4gY2FzZSBvZiBzZXJ2aWNlIHVzZXJzKSBvciB0aGUgYWNjZXNzIHRva2VuLoLT5JMCEyIOL3YxYmV0YTEvY2hlY2s6ASoSswQKFEJhdGNoQ2hlY2tQZXJtaXNzaW9uEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvblJlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2UiqQOSQYcDCgVBdXRoehILQmF0Y2ggY2hlY2sa8AJSZXR1cm5zIHRydWUgaWYgYSBwcmluY2lwYWwgaGFzIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBhIHJlc291cmNlIGFuZCBmYWxzZSBvdGhlcndpc2UuPGJyLz4gTm90ZSB0aGUgcHJpbmNpcGFsIGNhbiBiZSBhIHVzZXIgb3IgYSBzZXJ2aWNlIGFjY291bnQsIGFuZCBGcm9udGllciB3aWxsIHRoZSBjcmVkZW50aWFscyBmcm9tIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiBwcmluY2lwYWwgZnJvbSB0aGUgc2Vzc2lvbiBjb29raWUgKGlmIGFueSksIG9yIHRoZSBjbGllbnQgaWQgYW5kIHNlY3JldCAoaW4gY2FzZSBvZiBzZXJ2aWNlIHVzZXJzKSBvciB0aGUgYWNjZXNzIHRva2VuIChpbiBjYXNlIG9mIGh1bWFuIHVzZXIgYWNjb3VudHMpLoLT5JMCGCITL3YxYmV0YTEvYmF0Y2hjaGVjazoBKhK1AQoHR2V0SldLcxIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0SldLc1JlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEpXS3NSZXNwb25zZSJTkkEcCgVBdXRoehITR2V0IHdlbGwga25vd24gSldLc4LT5JMCLhISL3YxYmV0YTEvYXV0aC9qd2tzWhgSFi8ud2VsbC1rbm93bi9qd2tzLmpzb24ScQoMTGlzdFNlc3Npb25zEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2Vzc2lvbnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2Vzc2lvbnNSZXNwb25zZSIAEnQKDVJldm9rZVNlc3Npb24SLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldm9rZVNlc3Npb25SZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VTZXNzaW9uUmVzcG9uc2UiABJ6Cg9QaW5nVXNlclNlc3Npb24SMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBpbmdVc2VyU2Vzc2lvblJlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBpbmdVc2VyU2Vzc2lvblJlc3BvbnNlIgAStwIKEkxpc3RBdXRoU3RyYXRlZ2llcxI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEF1dGhTdHJhdGVnaWVzUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEF1dGhTdHJhdGVnaWVzUmVzcG9uc2UiswGSQZoBCgVBdXRobhIeTGlzdCBhdXRoZW50aWNhdGlvbiBzdHJhdGVnaWVzGnFSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGl0eSBwcm92aWRlcnMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBsZXZlbCBpbiBGcm9udGllci4gZS5nIEdvb2dsZSwgQXp1cmVBRCwgR2l0aHViIGV0Y4LT5JMCDxINL3YxYmV0YTEvYXV0aBLpBAoMQXV0aGVudGljYXRlEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoZW50aWNhdGVSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoZW50aWNhdGVSZXNwb25zZSL3A5JBmAMKBUF1dGhuEhxBdXRoZW50aWNhdGUgd2l0aCBhIHN0cmF0ZWd5GvACQXV0aGVudGljYXRlIGEgdXNlciB3aXRoIGEgc3RyYXRlZ3kuIEJ5IGRlZmF1bHQsIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gbm8gb3BlcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIHRvIGFwcGx5IHJlZGlyZWN0aW9uIGluIGNhc2Ugb2YgYnJvd3NlcnMsIHByb3ZpZGUgYSB1cmwgaW4gdGhlIGF1dGhlbnRpY2F0ZSByZXF1ZXN0IGJvZHkgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHJlZGlyZWN0aW9uIGFmdGVyIGF1dGhlbnRpY2F0aW9uLiBBbHNvIHNldCByZWRpcmVjdCBhcyB0cnVlIGZvciByZWRpcmVjdGluZyB0aGUgdXNlciByZXF1ZXN0IHRvIHRoZSByZWRpcmVjdF91cmwgYWZ0ZXIgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi6C0+STAlUSJi92MWJldGExL2F1dGgvcmVnaXN0ZXIve3N0cmF0ZWd5X25hbWV9WisiJi92MWJldGExL2F1dGgvcmVnaXN0ZXIve3N0cmF0ZWd5X25hbWV9OgEqEr0ECgxBdXRoQ2FsbGJhY2sSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhDYWxsYmFja1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhDYWxsYmFja1Jlc3BvbnNlIssDkkGMAwoFQXV0aG4SGENhbGxiYWNrIGZyb20gYSBzdHJhdGVneRroAkNhbGxiYWNrIGZyb20gYSBzdHJhdGVneS4gVGhpcyBpcyB0aGUgZW5kcG9pbnQgd2hlcmUgdGhlIHN0cmF0ZWd5IHdpbGwgcmVkaXJlY3QgdGhlIHVzZXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4gVGhpcyBlbmRwb2ludCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBjb2RlIGFuZCBzdGF0ZSBxdWVyeSBwYXJhbWV0ZXJzLiBUaGUgY29kZSB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgc3RyYXRlZ3kgYW5kIHRoZSBzdGF0ZSB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSByZXR1cm5fdG8gdXJsIGZyb20gdGhlIHNlc3Npb24gYW5kIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoYXQgdXJsLoLT5JMCNRIWL3YxYmV0YTEvYXV0aC9jYWxsYmFja1obIhYvdjFiZXRhMS9hdXRoL2NhbGxiYWNrOgEqEsIDCglBdXRoVG9rZW4SKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhUb2tlblJlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhUb2tlblJlc3BvbnNlItkCkkG3AgoFQXV0aG4SKkdlbmVyYXRlIGFjY2VzcyB0b2tlbiBieSBnaXZlbiBjcmVkZW50aWFscxqBAkFjY2VzcyB0b2tlbiBjYW4gYmUgZ2VuZXJhdGVkIGJ5IHByb3ZpZGluZyB0aGUgY3JlZGVudGlhbHMgaW4gdGhlIHJlcXVlc3QgYm9keS9oZWFkZXIuIFRoZSBjcmVkZW50aWFscyBjYW4gYmUgY2xpZW50IGlkIGFuZCBzZWNyZXQgb3Igc2VydmljZSBhY2NvdW50IGdlbmVyYXRlZCBrZXkgand0LiBVc2UgdGhlIGdlbmVyYXRlZCBhY2Nlc3MgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIgdG8gYWNjZXNzIHRoZSBmcm9udGllciByZXNvdXJjZXMugtPkkwIYIhMvdjFiZXRhMS9hdXRoL3Rva2VuOgEqEsEBCgpBdXRoTG9nb3V0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoTG9nb3V0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aExvZ291dFJlc3BvbnNlIlaSQR8KBUF1dGhuEhZMb2dvdXQgZnJvbSBhIHN0cmF0ZWd5gtPkkwIuEhQvdjFiZXRhMS9hdXRoL2xvZ291dFoWKhQvdjFiZXRhMS9hdXRoL2xvZ291dBKuAgoPTGlzdE1ldGFTY2hlbWFzEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TWV0YVNjaGVtYXNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TWV0YVNjaGVtYXNSZXNwb25zZSKzAZJBkgEKCk1ldGFTY2hlbWESEExpc3QgbWV0YXNjaGVtYXMaclJldHVybnMgYSBsaXN0IG9mIGFsbCBtZXRhc2NoZW1hcyBjb25maWd1cmVkIG9uIGFuIGluc3RhbmNlIGxldmVsIGluIEZyb250aWVyLiBlLmcgdXNlciwgcHJvamVjdCwgb3JnYW5pemF0aW9uIGV0Y4LT5JMCFxIVL3YxYmV0YTEvbWV0YS9zY2hlbWFzEp8FChBDcmVhdGVNZXRhU2NoZW1hEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVNZXRhU2NoZW1hUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlTWV0YVNjaGVtYVJlc3BvbnNlIqEEkkH6AwoKTWV0YVNjaGVtYRIRQ3JlYXRlIG1ldGFzY2hlbWEa2ANDcmVhdGUgYSBuZXcgbWV0YWRhdGEgc2NoZW1hLiBUaGUgbWV0YXNjaGVtYSAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIG1ldGFzY2hlbWEgKipzY2hlbWEqKiBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEuIDxici8+KkV4YW1wbGU6KiBge25hbWU6InVzZXIiLHNjaGVtYTp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImxhYmVsIjp7InR5cGUiOiJvYmplY3QiLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn19LCJkZXNjcmlwdGlvbiI6eyJ0eXBlIjoic3RyaW5nIn19fX1ggtPkkwIdIhUvdjFiZXRhMS9tZXRhL3NjaGVtYXM6BGJvZHkS0wEKDUdldE1ldGFTY2hlbWESLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE1ldGFTY2hlbWFSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRNZXRhU2NoZW1hUmVzcG9uc2UiX5JBOgoKTWV0YVNjaGVtYRIOR2V0IG1ldGFzY2hlbWEaHEdldCBhIG1ldGFkYXRhIHNjaGVtYSBieSBJRC6C0+STAhwSGi92MWJldGExL21ldGEvc2NoZW1hcy97aWR9EsEEChBVcGRhdGVNZXRhU2NoZW1hEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVNZXRhU2NoZW1hUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlTWV0YVNjaGVtYVJlc3BvbnNlIsMDkkGXAwoKTWV0YVNjaGVtYRIRVXBkYXRlIG1ldGFzY2hlbWEa9QJVcGRhdGUgYSBtZXRhZGF0YSBzY2hlbWEuIE9ubHkgYHNjaGVtYWAgZmllbGQgb2YgYSBtZXRhc2NoZW1hIGNhbiBiZSB1cGRhdGVkLiBUaGUgbWV0YXNjaGVtYSBgc2NoZW1hYCBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEuIDxici8+KkV4YW1wbGU6KiBge25hbWU6InVzZXIiLHNjaGVtYTp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImxhYmVsIjp7InR5cGUiOiJvYmplY3QiLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn19LCJkZXNjcmlwdGlvbiI6eyJ0eXBlIjoic3RyaW5nIn19fX1ggtPkkwIiGhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfToEYm9keRLjBAoQRGVsZXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU1ldGFTY2hlbWFSZXNwb25zZSLlA5JBvwMKCk1ldGFTY2hlbWESEURlbGV0ZSBtZXRhc2NoZW1hGp0DRGVsZXRlIGEgbWV0YWRhdGEgc2NoZW1hIHBlcm1hbmVudGx5LiBPbmNlIGRlbGV0ZWQgdGhlIG1ldGFzY2hlbWEgd29uJ3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEuIEZvciBleGFtcGxlLCBpZiBhIG1ldGFzY2hlbWEod2l0aCBgbGFiZWxgIGFuZCBgZGVzY3JpcHRpb25gIGZpZWxkcykgaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEgb2YgYSB1c2VyLCB0aGVuIGRlbGV0aW5nIHRoZSBtZXRhc2NoZW1hIHdpbGwgbm90IHZhbGlkYXRlIHRoZSBtZXRhZGF0YSBvZiB0aGUgdXNlciBhbmQgbWV0YWRhdGEgZmllbGQgY2FuIGNvbnRhaW4gYW55IGtleS12YWx1ZSBwYWlyKGFuZCBzYXkgYW5vdGhlciBmaWVsZCBjYWxsZWQgYGZvb2AgY2FuIGJlIGluc2VydGVkIGluIGEgdXNlcidzIG1ldGFkYXRhKS6C0+STAhwqGi92MWJldGExL21ldGEvc2NoZW1hcy97aWR9EokCChNEZXNjcmliZVByZWZlcmVuY2VzEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZXNjcmliZVByZWZlcmVuY2VzUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVzY3JpYmVQcmVmZXJlbmNlc1Jlc3BvbnNlIoIBkkFcCgpQcmVmZXJlbmNlEhREZXNjcmliZSBwcmVmZXJlbmNlcxo4UmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByZWZlcmVuY2VzIHN1cHBvcnRlZCBieSBGcm9udGllci6C0+STAh0SGy92MWJldGExL3ByZWZlcmVuY2VzL3RyYWl0cxLEAwodQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXMSPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVxdWVzdBpALnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXNwb25zZSKfApJB6QEKClByZWZlcmVuY2USH0NyZWF0ZSBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMauQFDcmVhdGUgYSBuZXcgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzLiBUaGUgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3ByZWZlcmVuY2VzOgEqEqUCChtMaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXMSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlIoYBkkFUCgpQcmVmZXJlbmNlEh1MaXN0IG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcxonTGlzdCBhbiBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIpEicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vcHJlZmVyZW5jZXMSnAMKGENyZWF0ZVByb2plY3RQcmVmZXJlbmNlcxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFByZWZlcmVuY2VzUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFByZWZlcmVuY2VzUmVzcG9uc2UihgKSQdUBCgpQcmVmZXJlbmNlEhpDcmVhdGUgcHJvamVjdCBwcmVmZXJlbmNlcxqqAUNyZWF0ZSBhIG5ldyBwcm9qZWN0IHByZWZlcmVuY2VzLiBUaGUgcHJvamVjdCBwcmVmZXJlbmNlcyAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHByb2plY3QgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwInIiIvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3ByZWZlcmVuY2VzOgEqEoUCChZMaXN0UHJvamVjdFByZWZlcmVuY2VzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFByZWZlcmVuY2VzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlInaSQUkKClByZWZlcmVuY2USGExpc3QgcHJvamVjdCBwcmVmZXJlbmNlcxohTGlzdCBhIHByb2plY3QgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIkEiIvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3ByZWZlcmVuY2VzEowDChZDcmVhdGVHcm91cFByZWZlcmVuY2VzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVHcm91cFByZWZlcmVuY2VzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1Jlc3BvbnNlIvwBkkHNAQoKUHJlZmVyZW5jZRIYQ3JlYXRlIGdyb3VwIHByZWZlcmVuY2VzGqQBQ3JlYXRlIGEgbmV3IGdyb3VwIHByZWZlcmVuY2VzLiBUaGUgZ3JvdXAgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBncm91cCBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiUiIC92MWJldGExL2dyb3Vwcy97aWR9L3ByZWZlcmVuY2VzOgEqEvkBChRMaXN0R3JvdXBQcmVmZXJlbmNlcxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBQcmVmZXJlbmNlc1Jlc3BvbnNlInCSQUUKClByZWZlcmVuY2USFkxpc3QgZ3JvdXAgcHJlZmVyZW5jZXMaH0xpc3QgYSBncm91cCBwcmVmZXJlbmNlcyBieSBJRC6C0+STAiISIC92MWJldGExL2dyb3Vwcy97aWR9L3ByZWZlcmVuY2VzEoQDChVDcmVhdGVVc2VyUHJlZmVyZW5jZXMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlIvcBkkHJAQoKUHJlZmVyZW5jZRIXQ3JlYXRlIHVzZXIgcHJlZmVyZW5jZXMaoQFDcmVhdGUgYSBuZXcgdXNlciBwcmVmZXJlbmNlcy4gVGhlIHVzZXIgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSB1c2VyIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJCIfL3YxYmV0YTEvdXNlcnMve2lkfS9wcmVmZXJlbmNlczoBKhLzAQoTTGlzdFVzZXJQcmVmZXJlbmNlcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSJtkkFDCgpQcmVmZXJlbmNlEhVMaXN0IHVzZXIgcHJlZmVyZW5jZXMaHkxpc3QgYSB1c2VyIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMve2lkfS9wcmVmZXJlbmNlcxKhAwocQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlcxI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSL/AZJB0QEKClByZWZlcmVuY2USH0NyZWF0ZSBjdXJyZW50IHVzZXIgcHJlZmVyZW5jZXMaoQFDcmVhdGUgYSBuZXcgdXNlciBwcmVmZXJlbmNlcy4gVGhlIHVzZXIgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSB1c2VyIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJCIfL3YxYmV0YTEvdXNlcnMvc2VsZi9wcmVmZXJlbmNlczoBKhKQAgoaTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSJ1kkFLCgpQcmVmZXJlbmNlEh1MaXN0IGN1cnJlbnQgdXNlciBwcmVmZXJlbmNlcxoeTGlzdCBhIHVzZXIgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIhEh8vdjFiZXRhMS91c2Vycy9zZWxmL3ByZWZlcmVuY2VzEpMCChRDcmVhdGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlIokBkkFUCgdCaWxsaW5nEhZDcmVhdGUgYmlsbGluZyBhY2NvdW50GjFDcmVhdGUgYSBuZXcgYmlsbGluZyBhY2NvdW50IGZvciBhbiBvcmdhbml6YXRpb24ugtPkkwIsIicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmc6ASoS8wEKEUdldEJpbGxpbmdBY2NvdW50EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2Uic5JBPAoHQmlsbGluZxITR2V0IGJpbGxpbmcgYWNjb3VudBocR2V0IGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCLhIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0ShQIKFFVwZGF0ZUJpbGxpbmdBY2NvdW50EjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudFJlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UifJJBQgoHQmlsbGluZxIWVXBkYXRlIGJpbGxpbmcgYWNjb3VudBofVXBkYXRlIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCMRosL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH06ASoSwQIKFlJlZ2lzdGVyQmlsbGluZ0FjY291bnQSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWdpc3RlckJpbGxpbmdBY2NvdW50UmVzcG9uc2UisQGSQW4KB0JpbGxpbmcSJFJlZ2lzdGVyIGJpbGxpbmcgYWNjb3VudCB0byBwcm92aWRlcho9UmVnaXN0ZXIgYSBiaWxsaW5nIGFjY291bnQgdG8gYSBwcm92aWRlciBpZiBpdCdzIG5vdCBhbHJlYWR5LoLT5JMCOiI1L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vcmVnaXN0ZXI6ASoSgwIKE0xpc3RCaWxsaW5nQWNjb3VudHMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ0FjY291bnRzUmVzcG9uc2UifZJBSwoHQmlsbGluZxIVTGlzdCBiaWxsaW5nIGFjY291bnRzGilMaXN0IGJpbGxpbmcgYWNjb3VudHMgb2YgYW4gb3JnYW5pemF0aW9uLoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nEoICChREZWxldGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlInmSQUIKB0JpbGxpbmcSFkRlbGV0ZSBiaWxsaW5nIGFjY291bnQaH0RlbGV0ZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAi4qLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9Eo0CChRFbmFibGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlIoMBkkFCCgdCaWxsaW5nEhZFbmFibGUgYmlsbGluZyBhY2NvdW50Gh9FbmFibGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9lbmFibGU6ASoS6QIKFURpc2FibGVCaWxsaW5nQWNjb3VudBI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2Ui3AGSQZkBCgdCaWxsaW5nEhdEaXNhYmxlIGJpbGxpbmcgYWNjb3VudBp1RGlzYWJsZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC4gRGlzYWJsaW5nIGEgYmlsbGluZyBhY2NvdW50IGRvZXNuJ3QgYXV0b21hdGljYWxseSBkaXNhYmxlIGl0J3MgYWN0aXZlIHN1YnNjcmlwdGlvbnMugtPkkwI5IjQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9kaXNhYmxlOgEqEosCChFHZXRCaWxsaW5nQmFsYW5jZRIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQmFsYW5jZVJlc3BvbnNlIooBkkFLCgdCaWxsaW5nEhNHZXQgYmlsbGluZyBiYWxhbmNlGitHZXQgdGhlIGJhbGFuY2Ugb2YgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwI2EjQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9iYWxhbmNlEvoBCgpIYXNUcmlhbGVkEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5IYXNUcmlhbGVkUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSGFzVHJpYWxlZFJlc3BvbnNlIo4BkkE/CgdCaWxsaW5nEgtIYXMgdHJpYWxlZBonQ2hlY2sgaWYgYSBiaWxsaW5nIGFjY291bnQgaGFzIHRyaWFsZWQugtPkkwJGEkQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9wbGFucy97cGxhbl9pZH0vdHJpYWxlZBLHAgoPR2V0U3Vic2NyaXB0aW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTdWJzY3JpcHRpb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTdWJzY3JpcHRpb25SZXNwb25zZSLMAZJBOwoMU3Vic2NyaXB0aW9uEhBHZXQgc3Vic2NyaXB0aW9uGhlHZXQgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKHARJHL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH1aPBI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3N1YnNjcmlwdGlvbnMve2lkfRLqAgoSQ2FuY2VsU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DYW5jZWxTdWJzY3JpcHRpb25SZXNwb25zZSLmAZJBQQoMU3Vic2NyaXB0aW9uEhNDYW5jZWwgc3Vic2NyaXB0aW9uGhxDYW5jZWwgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKbASJOL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH0vY2FuY2VsOgEqWkYiQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0vY2FuY2VsOgEqEtMCChFMaXN0U3Vic2NyaXB0aW9ucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlItIBkkFMCgxTdWJzY3JpcHRpb24SEkxpc3Qgc3Vic2NyaXB0aW9ucxooTGlzdCBzdWJzY3JpcHRpb25zIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCfRJCL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zWjcSNS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zEvQCChJDaGFuZ2VTdWJzY3JpcHRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoYW5nZVN1YnNjcmlwdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoYW5nZVN1YnNjcmlwdGlvblJlc3BvbnNlIvABkkFLCgxTdWJzY3JpcHRpb24SGENoYW5nZSBzdWJzY3JpcHRpb24gcGxhbhohQ2hhbmdlIGEgc3Vic2NyaXB0aW9uIHBsYW4gYnkgSUQugtPkkwKbASJOL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH0vY2hhbmdlOgEqWkYiQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0vY2hhbmdlOgEqEtwCChJVcGRhdGVTdWJzY3JpcHRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVN1YnNjcmlwdGlvblJlc3BvbnNlItgBkkFBCgxTdWJzY3JpcHRpb24SE1VwZGF0ZSBzdWJzY3JpcHRpb24aHFVwZGF0ZSBhIHN1YnNjcmlwdGlvbiBieSBJRC6C0+STAo0BGkcvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L3N1YnNjcmlwdGlvbnMve2lkfToBKlo/IjovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9OgEqEtgBCg1DcmVhdGVQcm9kdWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9kdWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvZHVjdFJlc3BvbnNlImSSQT0KB1Byb2R1Y3QSDkNyZWF0ZSBwcm9kdWN0GiJDcmVhdGUgYSBuZXcgcHJvZHVjdCBmb3IgcGxhdGZvcm0ugtPkkwIeIhkvdjFiZXRhMS9iaWxsaW5nL3Byb2R1Y3RzOgEqEsABCgpHZXRQcm9kdWN0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9kdWN0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvZHVjdFJlc3BvbnNlIlWSQSwKB1Byb2R1Y3QSC0dldCBwcm9kdWN0GhRHZXQgYSBwcm9kdWN0IGJ5IElELoLT5JMCIBIeL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cy97aWR9Es8BCgxMaXN0UHJvZHVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9kdWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9kdWN0c1Jlc3BvbnNlIl6SQToKB1Byb2R1Y3QSDUxpc3QgcHJvZHVjdHMaIExpc3QgYWxsIHByb2R1Y3RzIG9mIGEgcGxhdGZvcm0ugtPkkwIbEhkvdjFiZXRhMS9iaWxsaW5nL3Byb2R1Y3RzEtIBCg1VcGRhdGVQcm9kdWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9kdWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvZHVjdFJlc3BvbnNlIl6SQTIKB1Byb2R1Y3QSDlVwZGF0ZSBwcm9kdWN0GhdVcGRhdGUgYSBwcm9kdWN0IGJ5IElELoLT5JMCIxoeL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cy97aWR9OgEqEtgBCg1DcmVhdGVGZWF0dXJlEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVGZWF0dXJlUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlRmVhdHVyZVJlc3BvbnNlImSSQT0KB0ZlYXR1cmUSDkNyZWF0ZSBmZWF0dXJlGiJDcmVhdGUgYSBuZXcgZmVhdHVyZSBmb3IgcGxhdGZvcm0ugtPkkwIeIhkvdjFiZXRhMS9iaWxsaW5nL2ZlYXR1cmVzOgEqEsABCgpHZXRGZWF0dXJlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRGZWF0dXJlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0RmVhdHVyZVJlc3BvbnNlIlWSQSwKB0ZlYXR1cmUSC0dldCBmZWF0dXJlGhRHZXQgYSBmZWF0dXJlIGJ5IElELoLT5JMCIBIeL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcy97aWR9EtIBCg1VcGRhdGVGZWF0dXJlEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVGZWF0dXJlUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlRmVhdHVyZVJlc3BvbnNlIl6SQTIKB0ZlYXR1cmUSDlVwZGF0ZSBmZWF0dXJlGhdVcGRhdGUgYSBmZWF0dXJlIGJ5IElELoLT5JMCIxoeL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcy97aWR9OgEqEsABCgxMaXN0RmVhdHVyZXMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RGZWF0dXJlc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RGZWF0dXJlc1Jlc3BvbnNlIk+SQSsKB0ZlYXR1cmUSDUxpc3QgZmVhdHVyZXMaEUxpc3QgYWxsIGZlYXR1cmVzgtPkkwIbEhkvdjFiZXRhMS9iaWxsaW5nL2ZlYXR1cmVzEsMBCgpDcmVhdGVQbGFuEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQbGFuUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGxhblJlc3BvbnNlIliSQTQKBFBsYW4SC0NyZWF0ZSBwbGFuGh9DcmVhdGUgYSBuZXcgcGxhbiBmb3IgcGxhdGZvcm0ugtPkkwIbIhYvdjFiZXRhMS9iaWxsaW5nL3BsYW5zOgEqEqwBCglMaXN0UGxhbnMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGFuc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGFuc1Jlc3BvbnNlIkSSQSMKBFBsYW4SCkxpc3QgcGxhbnMaD0xpc3QgYWxsIHBsYW5zLoLT5JMCGBIWL3YxYmV0YTEvYmlsbGluZy9wbGFucxKrAQoHR2V0UGxhbhIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UGxhblJlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBsYW5SZXNwb25zZSJJkkEjCgRQbGFuEghHZXQgcGxhbhoRR2V0IGEgcGxhbiBieSBJRC6C0+STAh0SGy92MWJldGExL2JpbGxpbmcvcGxhbnMve2lkfRK9AQoKVXBkYXRlUGxhbhIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGxhblJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBsYW5SZXNwb25zZSJSkkEpCgRQbGFuEgtVcGRhdGUgcGxhbhoUVXBkYXRlIGEgcGxhbiBieSBJRC6C0+STAiAaGy92MWJldGExL2JpbGxpbmcvcGxhbnMve2lkfToBKhKFAwoOQ3JlYXRlQ2hlY2tvdXQSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUNoZWNrb3V0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQ2hlY2tvdXRSZXNwb25zZSKNApJBiAEKCENoZWNrb3V0EiJDaGVja291dCBhIHByb2R1Y3Qgb3Igc3Vic2NyaXB0aW9uGlhDaGVja291dCBhIHByb2R1Y3QgdG8gYnV5IGl0IG9uZSB0aW1lIG9yIHN0YXJ0IGEgc3Vic2NyaXB0aW9uIHBsYW4gb24gYSBiaWxsaW5nIGFjY291bnQugtPkkwJ7Ij4vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo2IjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErcCCg1MaXN0Q2hlY2tvdXRzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q2hlY2tvdXRzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdENoZWNrb3V0c1Jlc3BvbnNlIsIBkkFECghDaGVja291dBIOTGlzdCBjaGVja291dHMaKExpc3QgYWxsIGNoZWNrb3V0cyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnUSPi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2tvdXRzWjMSMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9jaGVja291dHMSpgIKC0dldENoZWNrb3V0Ei0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDaGVja291dFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldENoZWNrb3V0UmVzcG9uc2UitwGSQS8KCENoZWNrb3V0EgxHZXQgY2hlY2tvdXQaFUdldCBhIGNoZWNrb3V0IGJ5IElELoLT5JMCfxJDL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVja291dHMve2lkfVo4EjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzL3tpZH0S3AIKF0NoZWNrRmVhdHVyZUVudGl0bGVtZW50EjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVhdHVyZUVudGl0bGVtZW50UmVzcG9uc2UiyQGSQVYKC0VudGl0bGVtZW50EhFDaGVjayBlbnRpdGxlbWVudBo0Q2hlY2sgaWYgYSBiaWxsaW5nIGFjY291bnQgaXMgZW50aXRsZWQgdG8gYSBmZWF0dXJlLoLT5JMCaiI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVjazoBKlopIiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL2JpbGxpbmcvY2hlY2s6ASoSnwIKFkNoZWNrQ3JlZGl0RW50aXRsZW1lbnQSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrQ3JlZGl0RW50aXRsZW1lbnRSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0NyZWRpdEVudGl0bGVtZW50UmVzcG9uc2UijwGSQWsKC0VudGl0bGVtZW50EhhDaGVjayBjcmVkaXQgZW50aXRsZW1lbnQaQkNoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGhhcyBlbm91Z2ggY3JlZGl0cyB0byBjb3ZlciB0aGUgYW1vdW50LoLT5JMCGyIWL3YxYmV0YTEvYmlsbGluZy9jaGVjazoBKhLJAgoSQ3JlYXRlQmlsbGluZ1VzYWdlEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nVXNhZ2VSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nVXNhZ2VSZXNwb25zZSLFAZJBUAoFVXNhZ2USFENyZWF0ZSBiaWxsaW5nIHVzYWdlGjFSZXBvcnQgYSBuZXcgYmlsbGluZyB1c2FnZSBmb3IgYSBiaWxsaW5nIGFjY291bnQugtPkkwJsIjsvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L3VzYWdlczoBKloqIiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL2JpbGxpbmcvdXNhZ2VzOgEqEuwCChdMaXN0QmlsbGluZ1RyYW5zYWN0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1Jlc3BvbnNlItkBkkFVCgtUcmFuc2FjdGlvbhIZTGlzdCBiaWxsaW5nIHRyYW5zYWN0aW9ucxorTGlzdCBhbGwgdHJhbnNhY3Rpb25zIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCexJBL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS90cmFuc2FjdGlvbnNaNhI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3RyYW5zYWN0aW9ucxLvAgoYVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Ub3RhbERlYml0ZWRUcmFuc2FjdGlvbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Ub3RhbERlYml0ZWRUcmFuc2FjdGlvbnNSZXNwb25zZSLZAZJBfwoLVHJhbnNhY3Rpb24SN1N1bSBvZiBhbW91bnQgb2YgZGViaXRlZCB0cmFuc2FjdGlvbnMgaW5jbHVkaW5nIHJlZnVuZHMaN1N1bSBvZiBhbW91bnQgb2YgZGViaXRlZCB0cmFuc2FjdGlvbnMgaW5jbHVkaW5nIHJlZnVuZHOC0+STAlESTy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vZGViaXRlZF90cmFuc2FjdGlvbnNfdG90YWwSrwIKDExpc3RJbnZvaWNlcxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEludm9pY2VzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEludm9pY2VzUmVzcG9uc2UivQGSQUEKB0ludm9pY2USDUxpc3QgaW52b2ljZXMaJ0xpc3QgYWxsIGludm9pY2VzIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCcxI9L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9pbnZvaWNlc1oyEjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvaW52b2ljZXMS4gIKEkdldFVwY29taW5nSW52b2ljZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXBjb21pbmdJbnZvaWNlUmVzcG9uc2Ui3gGSQU8KB0ludm9pY2USFEdldCB1cGNvbWluZyBpbnZvaWNlGi5HZXQgdGhlIHVwY29taW5nIGludm9pY2Ugb2YgYSBiaWxsaW5nIGFjY291bnQugtPkkwKFARJGL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9pbnZvaWNlcy91cGNvbWluZ1o7EjkvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvaW52b2ljZXMvdXBjb21pbmcSnAIKFkJpbGxpbmdXZWJob29rQ2FsbGJhY2sSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdXZWJob29rQ2FsbGJhY2tSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVzcG9uc2UijAGSQU4KB1dlYmhvb2sSFkFjY2VwdCBCaWxsaW5nIHdlYmhvb2saK0FjY2VwdHMgYSBCaWxsaW5nIHdlYmhvb2sgYW5kIHByb2Nlc3NlcyBpdC6C0+STAjUiLS92MWJldGExL2JpbGxpbmcvd2ViaG9va3MvY2FsbGJhY2sve3Byb3ZpZGVyfToEYm9keRKRAgoUQ3JlYXRlUHJvc3BlY3RQdWJsaWMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UHVibGljUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXNwb25zZSKHAZJBZwoIUHJvc3BlY3QSD0NyZWF0ZSBwcm9zcGVjdBpKQ3JlYXRlIHByb3NwZWN0IGZvciBnaXZlbiBlbWFpbCBhbmQgYWN0aXZpdHkuIEF2YWlsYWJsZSBmb3IgcHVibGljIGFjY2Vzcy6C0+STAhciEi92MWJldGExL3Byb3NwZWN0czoBKhKAAQoRQ3JlYXRlQXVkaXRSZWNvcmQSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUF1ZGl0UmVjb3JkUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQXVkaXRSZWNvcmRSZXNwb25zZSIAQvINCiNpby5yYXlzdGFjay5wcm90b24uZnJvbnRpZXIudjFiZXRhMUIIRnJvbnRpZXJaO2dpdGh1Yi5jb20vcmF5c3RhY2svcHJvdG9uL2Zyb250aWVyL3YxYmV0YTE7ZnJvbnRpZXJ2MWJldGExkkGCDRIeChVGcm9udGllciBHZW5lcmFsIEFQSXMyBTAuMi4wGg4xMjcuMC4wLjE6NzQwMCoBATIQYXBwbGljYXRpb24vanNvbjoQYXBwbGljYXRpb24vanNvblI8CgMyMDASNQobT0sgLSBBIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmkKAzQwMBJiCkhCYWQgUmVxdWVzdCAtIFRoZSByZXF1ZXN0IHdhcyBtYWxmb3JtZWQgb3IgY29udGFpbmVkIGludmFsaWQgcGFyYW1ldGVycy4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSSgoDNDAxEkMKKVVuYXV0aG9yaXplZCAtIEF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmEKAzQwMxJaCkBGb3JiaWRkZW4gLSBVc2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlIHJlc291cmNlEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUlEKAzQwNBJKCjBOb3QgRm91bmQgLSBUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSdQoDNTAwEm4KVEludGVybmFsIFNlcnZlciBFcnJvci4gUmV0dXJuZWQgd2hlbiB0aGVyZXMgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggRnJvbnRpZXIgc2VydmVyLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1q2AQpECgVCYXNpYxI7CAESH0NsaWVudCBJRC9TZWNyZXQgYXV0aGVudGljYXRpb24aFEJhc2ljIEF1dGhlbnRpY2F0aW9uIAIKbgoGQmVhcmVyEmQIAhJPVGhlIEF1dGhvcml6YXRpb24gaGVhZGVyIG11c3QgYmUgc2V0IHRvIEJlYXJlciBmb2xsb3dlZCBieSBhIHNwYWNlIGFuZCBhIHRva2VuLhoNQXV0aG9yaXphdGlvbiACYhMKBwoFQmFzaWMKCAoGQmVhcmVyagYKBFVzZXJqggMKBUdyb3VwEvgCR3JvdXBzIGluIEZyb250aWVyIGFyZSB1c2VkIHRvIG1hbmFnZSB1c2VycyBhbmQgdGhlaXIgYWNjZXNzIHRvIHJlc291cmNlcy4gRWFjaCBncm91cCBoYXMgYSB1bmlxdWUgbmFtZSBhbmQgaWQgdGhhdCBjYW4gYmUgdXNlZCB0byBncmFudCBhY2Nlc3MgdG8gcmVzb3VyY2VzLiBXaGVuIGEgdXNlciBpcyBhZGRlZCB0byBhIGdyb3VwLCB0aGV5IGluaGVyaXQgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyB0aGF0IGhhdmUgYmVlbiBncmFudGVkIHRvIHRoZSBncm91cC4gVGhpcyBhbGxvd3MgeW91IHRvIG1hbmFnZSBhY2Nlc3MgdG8gcmVzb3VyY2VzIGF0IHNjYWxlLCB3aXRob3V0IGhhdmluZyB0byBncmFudCBwZXJtaXNzaW9ucyB0byBpbmRpdmlkdWFsIHVzZXJzLmoGCgRSb2xlag4KDE9yZ2FuaXphdGlvbmoJCgdQcm9qZWN0aggKBlBvbGljeWoKCghSZWxhdGlvbmoMCgpQZXJtaXNzaW9uagsKCU5hbWVzcGFjZWoKCghSZXNvdXJjZWobCgVBdXRoehISQXV0aG9yaXphdGlvbiBBUElzahwKBUF1dGhuEhNBdXRoZW50aWNhdGlvbiBBUElzapACCgpNZXRhU2NoZW1hEoECTWFuYWdlIE1ldGFkYXRhIFNjaGVtYXMgd2hpY2ggYXJlIHVzZWQgdG8gdmFsaWRhdGUgbWV0YWRhdGEgb2JqZWN0IHdoaWxlIGNyZWF0aW5nIHVzZXIvb3JnL2dyb3VwL3JvbGUuIEZyb250aWVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIGRlZmF1bHQgbWV0YXNjaGVtYXMgd2l0aCBgbGFiZWxgIGFuZCBgZGVzY3JpcHRpb25gIGZpZWxkcy4gWW91IGNhbiBhbHNvIHVwZGF0ZSB0aGVzZSBtZXRhc2NoZW1hcyB0byBhZGQvZWRpdCBtb3JlIGZpZWxkcy5iBnByb3RvMw", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
22
22
 
23
23
  /**
24
24
  * @generated from message raystack.frontier.v1beta1.BillingAccountRequestBody
@@ -587,9 +587,10 @@ export type ListBillingTransactionsRequest = Message<"raystack.frontier.v1beta1.
587
587
  orgId: string;
588
588
 
589
589
  /**
590
- * ID of the billing account to update the subscription for
590
+ * DEPRECATED: billing_id will be inferred from org_id
591
591
  *
592
- * @generated from field: string billing_id = 2;
592
+ * @generated from field: string billing_id = 2 [deprecated = true];
593
+ * @deprecated
593
594
  */
594
595
  billingId: string;
595
596
 
@@ -651,9 +652,10 @@ export type TotalDebitedTransactionsRequest = Message<"raystack.frontier.v1beta1
651
652
  orgId: string;
652
653
 
653
654
  /**
654
- * ID of the billing account
655
+ * DEPRECATED: billing_id will be inferred from org_id
655
656
  *
656
- * @generated from field: string billing_id = 2;
657
+ * @generated from field: string billing_id = 2 [deprecated = true];
658
+ * @deprecated
657
659
  */
658
660
  billingId: string;
659
661
  };
@@ -689,14 +691,19 @@ export const TotalDebitedTransactionsResponseSchema: GenMessage<TotalDebitedTran
689
691
  */
690
692
  export type GetSubscriptionRequest = Message<"raystack.frontier.v1beta1.GetSubscriptionRequest"> & {
691
693
  /**
692
- * @generated from field: string org_id = 1;
694
+ * DEPRECATED: org_id will be inferred from subscription id
695
+ *
696
+ * @generated from field: string org_id = 1 [deprecated = true];
697
+ * @deprecated
693
698
  */
694
699
  orgId: string;
695
700
 
696
701
  /**
702
+ * DEPRECATED: billing_id will be inferred from subscription id
697
703
  * ID of the billing account to get the subscription for
698
704
  *
699
- * @generated from field: string billing_id = 2;
705
+ * @generated from field: string billing_id = 2 [deprecated = true];
706
+ * @deprecated
700
707
  */
701
708
  billingId: string;
702
709
 
@@ -747,9 +754,11 @@ export type ListSubscriptionsRequest = Message<"raystack.frontier.v1beta1.ListSu
747
754
  orgId: string;
748
755
 
749
756
  /**
757
+ * DEPRECATED: billing_id will be inferred from org_id
750
758
  * ID of the billing account to list subscriptions for
751
759
  *
752
- * @generated from field: string billing_id = 2;
760
+ * @generated from field: string billing_id = 2 [deprecated = true];
761
+ * @deprecated
753
762
  */
754
763
  billingId: string;
755
764
 
@@ -802,14 +811,19 @@ export const ListSubscriptionsResponseSchema: GenMessage<ListSubscriptionsRespon
802
811
  */
803
812
  export type UpdateSubscriptionRequest = Message<"raystack.frontier.v1beta1.UpdateSubscriptionRequest"> & {
804
813
  /**
805
- * @generated from field: string org_id = 1;
814
+ * DEPRECATED: org_id will be inferred from subscription id
815
+ *
816
+ * @generated from field: string org_id = 1 [deprecated = true];
817
+ * @deprecated
806
818
  */
807
819
  orgId: string;
808
820
 
809
821
  /**
822
+ * DEPRECATED: billing_id will be inferred from subscription id
810
823
  * ID of the billing account to update the subscription for
811
824
  *
812
- * @generated from field: string billing_id = 2;
825
+ * @generated from field: string billing_id = 2 [deprecated = true];
826
+ * @deprecated
813
827
  */
814
828
  billingId: string;
815
829
 
@@ -857,14 +871,19 @@ export const UpdateSubscriptionResponseSchema: GenMessage<UpdateSubscriptionResp
857
871
  */
858
872
  export type ChangeSubscriptionRequest = Message<"raystack.frontier.v1beta1.ChangeSubscriptionRequest"> & {
859
873
  /**
860
- * @generated from field: string org_id = 1;
874
+ * DEPRECATED: org_id will be inferred from subscription id
875
+ *
876
+ * @generated from field: string org_id = 1 [deprecated = true];
877
+ * @deprecated
861
878
  */
862
879
  orgId: string;
863
880
 
864
881
  /**
882
+ * DEPRECATED: billing_id will be inferred from subscription id
865
883
  * ID of the billing account to update the subscription for
866
884
  *
867
- * @generated from field: string billing_id = 2;
885
+ * @generated from field: string billing_id = 2 [deprecated = true];
886
+ * @deprecated
868
887
  */
869
888
  billingId: string;
870
889
 
@@ -985,14 +1004,19 @@ export const ChangeSubscriptionResponseSchema: GenMessage<ChangeSubscriptionResp
985
1004
  */
986
1005
  export type CancelSubscriptionRequest = Message<"raystack.frontier.v1beta1.CancelSubscriptionRequest"> & {
987
1006
  /**
988
- * @generated from field: string org_id = 1;
1007
+ * DEPRECATED: org_id will be inferred from subscription id
1008
+ *
1009
+ * @generated from field: string org_id = 1 [deprecated = true];
1010
+ * @deprecated
989
1011
  */
990
1012
  orgId: string;
991
1013
 
992
1014
  /**
1015
+ * DEPRECATED: billing_id will be inferred from subscription id
993
1016
  * ID of the billing account to update the subscription for
994
1017
  *
995
- * @generated from field: string billing_id = 2;
1018
+ * @generated from field: string billing_id = 2 [deprecated = true];
1019
+ * @deprecated
996
1020
  */
997
1021
  billingId: string;
998
1022
 
@@ -1166,9 +1190,11 @@ export type CreateCheckoutRequest = Message<"raystack.frontier.v1beta1.CreateChe
1166
1190
  orgId: string;
1167
1191
 
1168
1192
  /**
1193
+ * DEPRECATED: billing_id will be inferred from org_id
1169
1194
  * ID of the billing account to update the subscription for
1170
1195
  *
1171
- * @generated from field: string billing_id = 2;
1196
+ * @generated from field: string billing_id = 2 [deprecated = true];
1197
+ * @deprecated
1172
1198
  */
1173
1199
  billingId: string;
1174
1200
 
@@ -1240,9 +1266,11 @@ export type ListCheckoutsRequest = Message<"raystack.frontier.v1beta1.ListChecko
1240
1266
  orgId: string;
1241
1267
 
1242
1268
  /**
1269
+ * DEPRECATED: billing_id will be inferred from org_id
1243
1270
  * ID of the billing account to get the subscriptions for
1244
1271
  *
1245
- * @generated from field: string billing_id = 2;
1272
+ * @generated from field: string billing_id = 2 [deprecated = true];
1273
+ * @deprecated
1246
1274
  */
1247
1275
  billingId: string;
1248
1276
  };
@@ -1278,14 +1306,18 @@ export const ListCheckoutsResponseSchema: GenMessage<ListCheckoutsResponse> = /*
1278
1306
  */
1279
1307
  export type GetCheckoutRequest = Message<"raystack.frontier.v1beta1.GetCheckoutRequest"> & {
1280
1308
  /**
1281
- * @generated from field: string org_id = 1;
1309
+ * DEPRECATED: org_id is not needed, checkout can be fetched by id alone
1310
+ *
1311
+ * @generated from field: string org_id = 1 [deprecated = true];
1312
+ * @deprecated
1282
1313
  */
1283
1314
  orgId: string;
1284
1315
 
1285
1316
  /**
1286
- * ID of the billing account to get the subscriptions for
1317
+ * DEPRECATED: billing_id is not needed, checkout can be fetched by id alone
1287
1318
  *
1288
- * @generated from field: string billing_id = 2;
1319
+ * @generated from field: string billing_id = 2 [deprecated = true];
1320
+ * @deprecated
1289
1321
  */
1290
1322
  billingId: string;
1291
1323
 
@@ -1905,9 +1937,10 @@ export type ListInvoicesRequest = Message<"raystack.frontier.v1beta1.ListInvoice
1905
1937
  orgId: string;
1906
1938
 
1907
1939
  /**
1908
- * ID of the billing account to list invoices for
1940
+ * DEPRECATED: billing_id will be inferred from org_id
1909
1941
  *
1910
- * @generated from field: string billing_id = 2;
1942
+ * @generated from field: string billing_id = 2 [deprecated = true];
1943
+ * @deprecated
1911
1944
  */
1912
1945
  billingId: string;
1913
1946
 
@@ -1958,9 +1991,10 @@ export type GetUpcomingInvoiceRequest = Message<"raystack.frontier.v1beta1.GetUp
1958
1991
  orgId: string;
1959
1992
 
1960
1993
  /**
1961
- * ID of the billing account to get the upcoming invoice for
1994
+ * DEPRECATED: billing_id will be inferred from org_id
1962
1995
  *
1963
- * @generated from field: string billing_id = 2;
1996
+ * @generated from field: string billing_id = 2 [deprecated = true];
1997
+ * @deprecated
1964
1998
  */
1965
1999
  billingId: string;
1966
2000
  };
@@ -3212,50 +3246,6 @@ export type GetServiceUserResponse = Message<"raystack.frontier.v1beta1.GetServi
3212
3246
  export const GetServiceUserResponseSchema: GenMessage<GetServiceUserResponse> = /*@__PURE__*/
3213
3247
  messageDesc(file_raystack_frontier_v1beta1_frontier, 132);
3214
3248
 
3215
- /**
3216
- * @generated from message raystack.frontier.v1beta1.UpdateServiceUserRequest
3217
- */
3218
- export type UpdateServiceUserRequest = Message<"raystack.frontier.v1beta1.UpdateServiceUserRequest"> & {
3219
- /**
3220
- * @generated from field: string id = 1;
3221
- */
3222
- id: string;
3223
-
3224
- /**
3225
- * @generated from field: raystack.frontier.v1beta1.ServiceUserRequestBody body = 2;
3226
- */
3227
- body?: ServiceUserRequestBody;
3228
-
3229
- /**
3230
- * @generated from field: string org_id = 3;
3231
- */
3232
- orgId: string;
3233
- };
3234
-
3235
- /**
3236
- * Describes the message raystack.frontier.v1beta1.UpdateServiceUserRequest.
3237
- * Use `create(UpdateServiceUserRequestSchema)` to create a new message.
3238
- */
3239
- export const UpdateServiceUserRequestSchema: GenMessage<UpdateServiceUserRequest> = /*@__PURE__*/
3240
- messageDesc(file_raystack_frontier_v1beta1_frontier, 133);
3241
-
3242
- /**
3243
- * @generated from message raystack.frontier.v1beta1.UpdateServiceUserResponse
3244
- */
3245
- export type UpdateServiceUserResponse = Message<"raystack.frontier.v1beta1.UpdateServiceUserResponse"> & {
3246
- /**
3247
- * @generated from field: raystack.frontier.v1beta1.ServiceUser serviceuser = 1;
3248
- */
3249
- serviceuser?: ServiceUser;
3250
- };
3251
-
3252
- /**
3253
- * Describes the message raystack.frontier.v1beta1.UpdateServiceUserResponse.
3254
- * Use `create(UpdateServiceUserResponseSchema)` to create a new message.
3255
- */
3256
- export const UpdateServiceUserResponseSchema: GenMessage<UpdateServiceUserResponse> = /*@__PURE__*/
3257
- messageDesc(file_raystack_frontier_v1beta1_frontier, 134);
3258
-
3259
3249
  /**
3260
3250
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserRequest
3261
3251
  */
@@ -3276,7 +3266,7 @@ export type DeleteServiceUserRequest = Message<"raystack.frontier.v1beta1.Delete
3276
3266
  * Use `create(DeleteServiceUserRequestSchema)` to create a new message.
3277
3267
  */
3278
3268
  export const DeleteServiceUserRequestSchema: GenMessage<DeleteServiceUserRequest> = /*@__PURE__*/
3279
- messageDesc(file_raystack_frontier_v1beta1_frontier, 135);
3269
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 133);
3280
3270
 
3281
3271
  /**
3282
3272
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserResponse
@@ -3289,7 +3279,7 @@ export type DeleteServiceUserResponse = Message<"raystack.frontier.v1beta1.Delet
3289
3279
  * Use `create(DeleteServiceUserResponseSchema)` to create a new message.
3290
3280
  */
3291
3281
  export const DeleteServiceUserResponseSchema: GenMessage<DeleteServiceUserResponse> = /*@__PURE__*/
3292
- messageDesc(file_raystack_frontier_v1beta1_frontier, 136);
3282
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 134);
3293
3283
 
3294
3284
  /**
3295
3285
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserJWKRequest
@@ -3316,7 +3306,7 @@ export type CreateServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.Cre
3316
3306
  * Use `create(CreateServiceUserJWKRequestSchema)` to create a new message.
3317
3307
  */
3318
3308
  export const CreateServiceUserJWKRequestSchema: GenMessage<CreateServiceUserJWKRequest> = /*@__PURE__*/
3319
- messageDesc(file_raystack_frontier_v1beta1_frontier, 137);
3309
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 135);
3320
3310
 
3321
3311
  /**
3322
3312
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserJWKResponse
@@ -3333,7 +3323,7 @@ export type CreateServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.Cr
3333
3323
  * Use `create(CreateServiceUserJWKResponseSchema)` to create a new message.
3334
3324
  */
3335
3325
  export const CreateServiceUserJWKResponseSchema: GenMessage<CreateServiceUserJWKResponse> = /*@__PURE__*/
3336
- messageDesc(file_raystack_frontier_v1beta1_frontier, 138);
3326
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 136);
3337
3327
 
3338
3328
  /**
3339
3329
  * @generated from message raystack.frontier.v1beta1.GetServiceUserJWKRequest
@@ -3360,7 +3350,7 @@ export type GetServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.GetSer
3360
3350
  * Use `create(GetServiceUserJWKRequestSchema)` to create a new message.
3361
3351
  */
3362
3352
  export const GetServiceUserJWKRequestSchema: GenMessage<GetServiceUserJWKRequest> = /*@__PURE__*/
3363
- messageDesc(file_raystack_frontier_v1beta1_frontier, 139);
3353
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 137);
3364
3354
 
3365
3355
  /**
3366
3356
  * @generated from message raystack.frontier.v1beta1.GetServiceUserJWKResponse
@@ -3377,7 +3367,7 @@ export type GetServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.GetSe
3377
3367
  * Use `create(GetServiceUserJWKResponseSchema)` to create a new message.
3378
3368
  */
3379
3369
  export const GetServiceUserJWKResponseSchema: GenMessage<GetServiceUserJWKResponse> = /*@__PURE__*/
3380
- messageDesc(file_raystack_frontier_v1beta1_frontier, 140);
3370
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 138);
3381
3371
 
3382
3372
  /**
3383
3373
  * @generated from message raystack.frontier.v1beta1.ListServiceUserJWKsRequest
@@ -3399,7 +3389,7 @@ export type ListServiceUserJWKsRequest = Message<"raystack.frontier.v1beta1.List
3399
3389
  * Use `create(ListServiceUserJWKsRequestSchema)` to create a new message.
3400
3390
  */
3401
3391
  export const ListServiceUserJWKsRequestSchema: GenMessage<ListServiceUserJWKsRequest> = /*@__PURE__*/
3402
- messageDesc(file_raystack_frontier_v1beta1_frontier, 141);
3392
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 139);
3403
3393
 
3404
3394
  /**
3405
3395
  * @generated from message raystack.frontier.v1beta1.ListServiceUserJWKsResponse
@@ -3416,7 +3406,7 @@ export type ListServiceUserJWKsResponse = Message<"raystack.frontier.v1beta1.Lis
3416
3406
  * Use `create(ListServiceUserJWKsResponseSchema)` to create a new message.
3417
3407
  */
3418
3408
  export const ListServiceUserJWKsResponseSchema: GenMessage<ListServiceUserJWKsResponse> = /*@__PURE__*/
3419
- messageDesc(file_raystack_frontier_v1beta1_frontier, 142);
3409
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 140);
3420
3410
 
3421
3411
  /**
3422
3412
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserJWKRequest
@@ -3443,7 +3433,7 @@ export type DeleteServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.Del
3443
3433
  * Use `create(DeleteServiceUserJWKRequestSchema)` to create a new message.
3444
3434
  */
3445
3435
  export const DeleteServiceUserJWKRequestSchema: GenMessage<DeleteServiceUserJWKRequest> = /*@__PURE__*/
3446
- messageDesc(file_raystack_frontier_v1beta1_frontier, 143);
3436
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 141);
3447
3437
 
3448
3438
  /**
3449
3439
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserJWKResponse
@@ -3456,7 +3446,7 @@ export type DeleteServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.De
3456
3446
  * Use `create(DeleteServiceUserJWKResponseSchema)` to create a new message.
3457
3447
  */
3458
3448
  export const DeleteServiceUserJWKResponseSchema: GenMessage<DeleteServiceUserJWKResponse> = /*@__PURE__*/
3459
- messageDesc(file_raystack_frontier_v1beta1_frontier, 144);
3449
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 142);
3460
3450
 
3461
3451
  /**
3462
3452
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserCredentialRequest
@@ -3483,7 +3473,7 @@ export type CreateServiceUserCredentialRequest = Message<"raystack.frontier.v1be
3483
3473
  * Use `create(CreateServiceUserCredentialRequestSchema)` to create a new message.
3484
3474
  */
3485
3475
  export const CreateServiceUserCredentialRequestSchema: GenMessage<CreateServiceUserCredentialRequest> = /*@__PURE__*/
3486
- messageDesc(file_raystack_frontier_v1beta1_frontier, 145);
3476
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 143);
3487
3477
 
3488
3478
  /**
3489
3479
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserCredentialResponse
@@ -3500,7 +3490,7 @@ export type CreateServiceUserCredentialResponse = Message<"raystack.frontier.v1b
3500
3490
  * Use `create(CreateServiceUserCredentialResponseSchema)` to create a new message.
3501
3491
  */
3502
3492
  export const CreateServiceUserCredentialResponseSchema: GenMessage<CreateServiceUserCredentialResponse> = /*@__PURE__*/
3503
- messageDesc(file_raystack_frontier_v1beta1_frontier, 146);
3493
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 144);
3504
3494
 
3505
3495
  /**
3506
3496
  * @generated from message raystack.frontier.v1beta1.ListServiceUserCredentialsRequest
@@ -3522,7 +3512,7 @@ export type ListServiceUserCredentialsRequest = Message<"raystack.frontier.v1bet
3522
3512
  * Use `create(ListServiceUserCredentialsRequestSchema)` to create a new message.
3523
3513
  */
3524
3514
  export const ListServiceUserCredentialsRequestSchema: GenMessage<ListServiceUserCredentialsRequest> = /*@__PURE__*/
3525
- messageDesc(file_raystack_frontier_v1beta1_frontier, 147);
3515
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 145);
3526
3516
 
3527
3517
  /**
3528
3518
  * @generated from message raystack.frontier.v1beta1.ListServiceUserCredentialsResponse
@@ -3541,7 +3531,7 @@ export type ListServiceUserCredentialsResponse = Message<"raystack.frontier.v1be
3541
3531
  * Use `create(ListServiceUserCredentialsResponseSchema)` to create a new message.
3542
3532
  */
3543
3533
  export const ListServiceUserCredentialsResponseSchema: GenMessage<ListServiceUserCredentialsResponse> = /*@__PURE__*/
3544
- messageDesc(file_raystack_frontier_v1beta1_frontier, 148);
3534
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 146);
3545
3535
 
3546
3536
  /**
3547
3537
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserCredentialRequest
@@ -3568,7 +3558,7 @@ export type DeleteServiceUserCredentialRequest = Message<"raystack.frontier.v1be
3568
3558
  * Use `create(DeleteServiceUserCredentialRequestSchema)` to create a new message.
3569
3559
  */
3570
3560
  export const DeleteServiceUserCredentialRequestSchema: GenMessage<DeleteServiceUserCredentialRequest> = /*@__PURE__*/
3571
- messageDesc(file_raystack_frontier_v1beta1_frontier, 149);
3561
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 147);
3572
3562
 
3573
3563
  /**
3574
3564
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserCredentialResponse
@@ -3581,7 +3571,7 @@ export type DeleteServiceUserCredentialResponse = Message<"raystack.frontier.v1b
3581
3571
  * Use `create(DeleteServiceUserCredentialResponseSchema)` to create a new message.
3582
3572
  */
3583
3573
  export const DeleteServiceUserCredentialResponseSchema: GenMessage<DeleteServiceUserCredentialResponse> = /*@__PURE__*/
3584
- messageDesc(file_raystack_frontier_v1beta1_frontier, 150);
3574
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 148);
3585
3575
 
3586
3576
  /**
3587
3577
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserTokenRequest
@@ -3608,7 +3598,7 @@ export type CreateServiceUserTokenRequest = Message<"raystack.frontier.v1beta1.C
3608
3598
  * Use `create(CreateServiceUserTokenRequestSchema)` to create a new message.
3609
3599
  */
3610
3600
  export const CreateServiceUserTokenRequestSchema: GenMessage<CreateServiceUserTokenRequest> = /*@__PURE__*/
3611
- messageDesc(file_raystack_frontier_v1beta1_frontier, 151);
3601
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 149);
3612
3602
 
3613
3603
  /**
3614
3604
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserTokenResponse
@@ -3625,7 +3615,7 @@ export type CreateServiceUserTokenResponse = Message<"raystack.frontier.v1beta1.
3625
3615
  * Use `create(CreateServiceUserTokenResponseSchema)` to create a new message.
3626
3616
  */
3627
3617
  export const CreateServiceUserTokenResponseSchema: GenMessage<CreateServiceUserTokenResponse> = /*@__PURE__*/
3628
- messageDesc(file_raystack_frontier_v1beta1_frontier, 152);
3618
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 150);
3629
3619
 
3630
3620
  /**
3631
3621
  * @generated from message raystack.frontier.v1beta1.ListServiceUserTokensRequest
@@ -3647,7 +3637,7 @@ export type ListServiceUserTokensRequest = Message<"raystack.frontier.v1beta1.Li
3647
3637
  * Use `create(ListServiceUserTokensRequestSchema)` to create a new message.
3648
3638
  */
3649
3639
  export const ListServiceUserTokensRequestSchema: GenMessage<ListServiceUserTokensRequest> = /*@__PURE__*/
3650
- messageDesc(file_raystack_frontier_v1beta1_frontier, 153);
3640
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 151);
3651
3641
 
3652
3642
  /**
3653
3643
  * @generated from message raystack.frontier.v1beta1.ListServiceUserTokensResponse
@@ -3664,7 +3654,7 @@ export type ListServiceUserTokensResponse = Message<"raystack.frontier.v1beta1.L
3664
3654
  * Use `create(ListServiceUserTokensResponseSchema)` to create a new message.
3665
3655
  */
3666
3656
  export const ListServiceUserTokensResponseSchema: GenMessage<ListServiceUserTokensResponse> = /*@__PURE__*/
3667
- messageDesc(file_raystack_frontier_v1beta1_frontier, 154);
3657
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 152);
3668
3658
 
3669
3659
  /**
3670
3660
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserTokenRequest
@@ -3691,7 +3681,7 @@ export type DeleteServiceUserTokenRequest = Message<"raystack.frontier.v1beta1.D
3691
3681
  * Use `create(DeleteServiceUserTokenRequestSchema)` to create a new message.
3692
3682
  */
3693
3683
  export const DeleteServiceUserTokenRequestSchema: GenMessage<DeleteServiceUserTokenRequest> = /*@__PURE__*/
3694
- messageDesc(file_raystack_frontier_v1beta1_frontier, 155);
3684
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 153);
3695
3685
 
3696
3686
  /**
3697
3687
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserTokenResponse
@@ -3704,7 +3694,7 @@ export type DeleteServiceUserTokenResponse = Message<"raystack.frontier.v1beta1.
3704
3694
  * Use `create(DeleteServiceUserTokenResponseSchema)` to create a new message.
3705
3695
  */
3706
3696
  export const DeleteServiceUserTokenResponseSchema: GenMessage<DeleteServiceUserTokenResponse> = /*@__PURE__*/
3707
- messageDesc(file_raystack_frontier_v1beta1_frontier, 156);
3697
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 154);
3708
3698
 
3709
3699
  /**
3710
3700
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsRequest
@@ -3735,7 +3725,7 @@ export type ListServiceUserProjectsRequest = Message<"raystack.frontier.v1beta1.
3735
3725
  * Use `create(ListServiceUserProjectsRequestSchema)` to create a new message.
3736
3726
  */
3737
3727
  export const ListServiceUserProjectsRequestSchema: GenMessage<ListServiceUserProjectsRequest> = /*@__PURE__*/
3738
- messageDesc(file_raystack_frontier_v1beta1_frontier, 157);
3728
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 155);
3739
3729
 
3740
3730
  /**
3741
3731
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsResponse
@@ -3757,7 +3747,7 @@ export type ListServiceUserProjectsResponse = Message<"raystack.frontier.v1beta1
3757
3747
  * Use `create(ListServiceUserProjectsResponseSchema)` to create a new message.
3758
3748
  */
3759
3749
  export const ListServiceUserProjectsResponseSchema: GenMessage<ListServiceUserProjectsResponse> = /*@__PURE__*/
3760
- messageDesc(file_raystack_frontier_v1beta1_frontier, 158);
3750
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 156);
3761
3751
 
3762
3752
  /**
3763
3753
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsResponse.AccessPair
@@ -3779,7 +3769,7 @@ export type ListServiceUserProjectsResponse_AccessPair = Message<"raystack.front
3779
3769
  * Use `create(ListServiceUserProjectsResponse_AccessPairSchema)` to create a new message.
3780
3770
  */
3781
3771
  export const ListServiceUserProjectsResponse_AccessPairSchema: GenMessage<ListServiceUserProjectsResponse_AccessPair> = /*@__PURE__*/
3782
- messageDesc(file_raystack_frontier_v1beta1_frontier, 158, 0);
3772
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 156, 0);
3783
3773
 
3784
3774
  /**
3785
3775
  * @generated from message raystack.frontier.v1beta1.ListOrganizationGroupsRequest
@@ -3816,7 +3806,7 @@ export type ListOrganizationGroupsRequest = Message<"raystack.frontier.v1beta1.L
3816
3806
  * Use `create(ListOrganizationGroupsRequestSchema)` to create a new message.
3817
3807
  */
3818
3808
  export const ListOrganizationGroupsRequestSchema: GenMessage<ListOrganizationGroupsRequest> = /*@__PURE__*/
3819
- messageDesc(file_raystack_frontier_v1beta1_frontier, 159);
3809
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 157);
3820
3810
 
3821
3811
  /**
3822
3812
  * @generated from message raystack.frontier.v1beta1.ListOrganizationGroupsResponse
@@ -3833,7 +3823,7 @@ export type ListOrganizationGroupsResponse = Message<"raystack.frontier.v1beta1.
3833
3823
  * Use `create(ListOrganizationGroupsResponseSchema)` to create a new message.
3834
3824
  */
3835
3825
  export const ListOrganizationGroupsResponseSchema: GenMessage<ListOrganizationGroupsResponse> = /*@__PURE__*/
3836
- messageDesc(file_raystack_frontier_v1beta1_frontier, 160);
3826
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 158);
3837
3827
 
3838
3828
  /**
3839
3829
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRoleRequest
@@ -3855,7 +3845,7 @@ export type CreateOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.C
3855
3845
  * Use `create(CreateOrganizationRoleRequestSchema)` to create a new message.
3856
3846
  */
3857
3847
  export const CreateOrganizationRoleRequestSchema: GenMessage<CreateOrganizationRoleRequest> = /*@__PURE__*/
3858
- messageDesc(file_raystack_frontier_v1beta1_frontier, 161);
3848
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 159);
3859
3849
 
3860
3850
  /**
3861
3851
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRoleResponse
@@ -3872,7 +3862,7 @@ export type CreateOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
3872
3862
  * Use `create(CreateOrganizationRoleResponseSchema)` to create a new message.
3873
3863
  */
3874
3864
  export const CreateOrganizationRoleResponseSchema: GenMessage<CreateOrganizationRoleResponse> = /*@__PURE__*/
3875
- messageDesc(file_raystack_frontier_v1beta1_frontier, 162);
3865
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 160);
3876
3866
 
3877
3867
  /**
3878
3868
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRoleRequest
@@ -3894,7 +3884,7 @@ export type GetOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.GetO
3894
3884
  * Use `create(GetOrganizationRoleRequestSchema)` to create a new message.
3895
3885
  */
3896
3886
  export const GetOrganizationRoleRequestSchema: GenMessage<GetOrganizationRoleRequest> = /*@__PURE__*/
3897
- messageDesc(file_raystack_frontier_v1beta1_frontier, 163);
3887
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 161);
3898
3888
 
3899
3889
  /**
3900
3890
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRoleResponse
@@ -3911,7 +3901,7 @@ export type GetOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.Get
3911
3901
  * Use `create(GetOrganizationRoleResponseSchema)` to create a new message.
3912
3902
  */
3913
3903
  export const GetOrganizationRoleResponseSchema: GenMessage<GetOrganizationRoleResponse> = /*@__PURE__*/
3914
- messageDesc(file_raystack_frontier_v1beta1_frontier, 164);
3904
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 162);
3915
3905
 
3916
3906
  /**
3917
3907
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRoleRequest
@@ -3938,7 +3928,7 @@ export type UpdateOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.U
3938
3928
  * Use `create(UpdateOrganizationRoleRequestSchema)` to create a new message.
3939
3929
  */
3940
3930
  export const UpdateOrganizationRoleRequestSchema: GenMessage<UpdateOrganizationRoleRequest> = /*@__PURE__*/
3941
- messageDesc(file_raystack_frontier_v1beta1_frontier, 165);
3931
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 163);
3942
3932
 
3943
3933
  /**
3944
3934
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRoleResponse
@@ -3955,7 +3945,7 @@ export type UpdateOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
3955
3945
  * Use `create(UpdateOrganizationRoleResponseSchema)` to create a new message.
3956
3946
  */
3957
3947
  export const UpdateOrganizationRoleResponseSchema: GenMessage<UpdateOrganizationRoleResponse> = /*@__PURE__*/
3958
- messageDesc(file_raystack_frontier_v1beta1_frontier, 166);
3948
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 164);
3959
3949
 
3960
3950
  /**
3961
3951
  * @generated from message raystack.frontier.v1beta1.ListRolesRequest
@@ -3977,7 +3967,7 @@ export type ListRolesRequest = Message<"raystack.frontier.v1beta1.ListRolesReque
3977
3967
  * Use `create(ListRolesRequestSchema)` to create a new message.
3978
3968
  */
3979
3969
  export const ListRolesRequestSchema: GenMessage<ListRolesRequest> = /*@__PURE__*/
3980
- messageDesc(file_raystack_frontier_v1beta1_frontier, 167);
3970
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 165);
3981
3971
 
3982
3972
  /**
3983
3973
  * @generated from message raystack.frontier.v1beta1.ListRolesResponse
@@ -3994,7 +3984,7 @@ export type ListRolesResponse = Message<"raystack.frontier.v1beta1.ListRolesResp
3994
3984
  * Use `create(ListRolesResponseSchema)` to create a new message.
3995
3985
  */
3996
3986
  export const ListRolesResponseSchema: GenMessage<ListRolesResponse> = /*@__PURE__*/
3997
- messageDesc(file_raystack_frontier_v1beta1_frontier, 168);
3987
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 166);
3998
3988
 
3999
3989
  /**
4000
3990
  * @generated from message raystack.frontier.v1beta1.ListOrganizationRolesRequest
@@ -4021,7 +4011,7 @@ export type ListOrganizationRolesRequest = Message<"raystack.frontier.v1beta1.Li
4021
4011
  * Use `create(ListOrganizationRolesRequestSchema)` to create a new message.
4022
4012
  */
4023
4013
  export const ListOrganizationRolesRequestSchema: GenMessage<ListOrganizationRolesRequest> = /*@__PURE__*/
4024
- messageDesc(file_raystack_frontier_v1beta1_frontier, 169);
4014
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 167);
4025
4015
 
4026
4016
  /**
4027
4017
  * @generated from message raystack.frontier.v1beta1.ListOrganizationRolesResponse
@@ -4038,7 +4028,7 @@ export type ListOrganizationRolesResponse = Message<"raystack.frontier.v1beta1.L
4038
4028
  * Use `create(ListOrganizationRolesResponseSchema)` to create a new message.
4039
4029
  */
4040
4030
  export const ListOrganizationRolesResponseSchema: GenMessage<ListOrganizationRolesResponse> = /*@__PURE__*/
4041
- messageDesc(file_raystack_frontier_v1beta1_frontier, 170);
4031
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 168);
4042
4032
 
4043
4033
  /**
4044
4034
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRoleRequest
@@ -4060,7 +4050,7 @@ export type DeleteOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.D
4060
4050
  * Use `create(DeleteOrganizationRoleRequestSchema)` to create a new message.
4061
4051
  */
4062
4052
  export const DeleteOrganizationRoleRequestSchema: GenMessage<DeleteOrganizationRoleRequest> = /*@__PURE__*/
4063
- messageDesc(file_raystack_frontier_v1beta1_frontier, 171);
4053
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 169);
4064
4054
 
4065
4055
  /**
4066
4056
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRoleResponse
@@ -4073,7 +4063,7 @@ export type DeleteOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
4073
4063
  * Use `create(DeleteOrganizationRoleResponseSchema)` to create a new message.
4074
4064
  */
4075
4065
  export const DeleteOrganizationRoleResponseSchema: GenMessage<DeleteOrganizationRoleResponse> = /*@__PURE__*/
4076
- messageDesc(file_raystack_frontier_v1beta1_frontier, 172);
4066
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 170);
4077
4067
 
4078
4068
  /**
4079
4069
  * @generated from message raystack.frontier.v1beta1.OrganizationRequestBody
@@ -4105,7 +4095,7 @@ export type OrganizationRequestBody = Message<"raystack.frontier.v1beta1.Organiz
4105
4095
  * Use `create(OrganizationRequestBodySchema)` to create a new message.
4106
4096
  */
4107
4097
  export const OrganizationRequestBodySchema: GenMessage<OrganizationRequestBody> = /*@__PURE__*/
4108
- messageDesc(file_raystack_frontier_v1beta1_frontier, 173);
4098
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 171);
4109
4099
 
4110
4100
  /**
4111
4101
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsRequest
@@ -4137,7 +4127,7 @@ export type ListOrganizationsRequest = Message<"raystack.frontier.v1beta1.ListOr
4137
4127
  * Use `create(ListOrganizationsRequestSchema)` to create a new message.
4138
4128
  */
4139
4129
  export const ListOrganizationsRequestSchema: GenMessage<ListOrganizationsRequest> = /*@__PURE__*/
4140
- messageDesc(file_raystack_frontier_v1beta1_frontier, 174);
4130
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 172);
4141
4131
 
4142
4132
  /**
4143
4133
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsResponse
@@ -4154,7 +4144,7 @@ export type ListOrganizationsResponse = Message<"raystack.frontier.v1beta1.ListO
4154
4144
  * Use `create(ListOrganizationsResponseSchema)` to create a new message.
4155
4145
  */
4156
4146
  export const ListOrganizationsResponseSchema: GenMessage<ListOrganizationsResponse> = /*@__PURE__*/
4157
- messageDesc(file_raystack_frontier_v1beta1_frontier, 175);
4147
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 173);
4158
4148
 
4159
4149
  /**
4160
4150
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRequest
@@ -4171,7 +4161,7 @@ export type CreateOrganizationRequest = Message<"raystack.frontier.v1beta1.Creat
4171
4161
  * Use `create(CreateOrganizationRequestSchema)` to create a new message.
4172
4162
  */
4173
4163
  export const CreateOrganizationRequestSchema: GenMessage<CreateOrganizationRequest> = /*@__PURE__*/
4174
- messageDesc(file_raystack_frontier_v1beta1_frontier, 176);
4164
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 174);
4175
4165
 
4176
4166
  /**
4177
4167
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationResponse
@@ -4188,7 +4178,7 @@ export type CreateOrganizationResponse = Message<"raystack.frontier.v1beta1.Crea
4188
4178
  * Use `create(CreateOrganizationResponseSchema)` to create a new message.
4189
4179
  */
4190
4180
  export const CreateOrganizationResponseSchema: GenMessage<CreateOrganizationResponse> = /*@__PURE__*/
4191
- messageDesc(file_raystack_frontier_v1beta1_frontier, 177);
4181
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 175);
4192
4182
 
4193
4183
  /**
4194
4184
  * @generated from message raystack.frontier.v1beta1.GetOrganizationResponse
@@ -4205,7 +4195,7 @@ export type GetOrganizationResponse = Message<"raystack.frontier.v1beta1.GetOrga
4205
4195
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
4206
4196
  */
4207
4197
  export const GetOrganizationResponseSchema: GenMessage<GetOrganizationResponse> = /*@__PURE__*/
4208
- messageDesc(file_raystack_frontier_v1beta1_frontier, 178);
4198
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 176);
4209
4199
 
4210
4200
  /**
4211
4201
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationResponse
@@ -4222,7 +4212,7 @@ export type UpdateOrganizationResponse = Message<"raystack.frontier.v1beta1.Upda
4222
4212
  * Use `create(UpdateOrganizationResponseSchema)` to create a new message.
4223
4213
  */
4224
4214
  export const UpdateOrganizationResponseSchema: GenMessage<UpdateOrganizationResponse> = /*@__PURE__*/
4225
- messageDesc(file_raystack_frontier_v1beta1_frontier, 179);
4215
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 177);
4226
4216
 
4227
4217
  /**
4228
4218
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRequest
@@ -4239,7 +4229,7 @@ export type GetOrganizationRequest = Message<"raystack.frontier.v1beta1.GetOrgan
4239
4229
  * Use `create(GetOrganizationRequestSchema)` to create a new message.
4240
4230
  */
4241
4231
  export const GetOrganizationRequestSchema: GenMessage<GetOrganizationRequest> = /*@__PURE__*/
4242
- messageDesc(file_raystack_frontier_v1beta1_frontier, 180);
4232
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 178);
4243
4233
 
4244
4234
  /**
4245
4235
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRequest
@@ -4261,7 +4251,7 @@ export type UpdateOrganizationRequest = Message<"raystack.frontier.v1beta1.Updat
4261
4251
  * Use `create(UpdateOrganizationRequestSchema)` to create a new message.
4262
4252
  */
4263
4253
  export const UpdateOrganizationRequestSchema: GenMessage<UpdateOrganizationRequest> = /*@__PURE__*/
4264
- messageDesc(file_raystack_frontier_v1beta1_frontier, 181);
4254
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 179);
4265
4255
 
4266
4256
  /**
4267
4257
  * @generated from message raystack.frontier.v1beta1.ListOrganizationAdminsRequest
@@ -4278,7 +4268,7 @@ export type ListOrganizationAdminsRequest = Message<"raystack.frontier.v1beta1.L
4278
4268
  * Use `create(ListOrganizationAdminsRequestSchema)` to create a new message.
4279
4269
  */
4280
4270
  export const ListOrganizationAdminsRequestSchema: GenMessage<ListOrganizationAdminsRequest> = /*@__PURE__*/
4281
- messageDesc(file_raystack_frontier_v1beta1_frontier, 182);
4271
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 180);
4282
4272
 
4283
4273
  /**
4284
4274
  * @generated from message raystack.frontier.v1beta1.ListOrganizationAdminsResponse
@@ -4295,7 +4285,7 @@ export type ListOrganizationAdminsResponse = Message<"raystack.frontier.v1beta1.
4295
4285
  * Use `create(ListOrganizationAdminsResponseSchema)` to create a new message.
4296
4286
  */
4297
4287
  export const ListOrganizationAdminsResponseSchema: GenMessage<ListOrganizationAdminsResponse> = /*@__PURE__*/
4298
- messageDesc(file_raystack_frontier_v1beta1_frontier, 183);
4288
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 181);
4299
4289
 
4300
4290
  /**
4301
4291
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersRequest
@@ -4328,7 +4318,7 @@ export type ListOrganizationUsersRequest = Message<"raystack.frontier.v1beta1.Li
4328
4318
  * Use `create(ListOrganizationUsersRequestSchema)` to create a new message.
4329
4319
  */
4330
4320
  export const ListOrganizationUsersRequestSchema: GenMessage<ListOrganizationUsersRequest> = /*@__PURE__*/
4331
- messageDesc(file_raystack_frontier_v1beta1_frontier, 184);
4321
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 182);
4332
4322
 
4333
4323
  /**
4334
4324
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersResponse
@@ -4350,7 +4340,7 @@ export type ListOrganizationUsersResponse = Message<"raystack.frontier.v1beta1.L
4350
4340
  * Use `create(ListOrganizationUsersResponseSchema)` to create a new message.
4351
4341
  */
4352
4342
  export const ListOrganizationUsersResponseSchema: GenMessage<ListOrganizationUsersResponse> = /*@__PURE__*/
4353
- messageDesc(file_raystack_frontier_v1beta1_frontier, 185);
4343
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 183);
4354
4344
 
4355
4345
  /**
4356
4346
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersResponse.RolePair
@@ -4372,7 +4362,7 @@ export type ListOrganizationUsersResponse_RolePair = Message<"raystack.frontier.
4372
4362
  * Use `create(ListOrganizationUsersResponse_RolePairSchema)` to create a new message.
4373
4363
  */
4374
4364
  export const ListOrganizationUsersResponse_RolePairSchema: GenMessage<ListOrganizationUsersResponse_RolePair> = /*@__PURE__*/
4375
- messageDesc(file_raystack_frontier_v1beta1_frontier, 185, 0);
4365
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 183, 0);
4376
4366
 
4377
4367
  /**
4378
4368
  * @generated from message raystack.frontier.v1beta1.AddOrganizationUsersRequest
@@ -4394,7 +4384,7 @@ export type AddOrganizationUsersRequest = Message<"raystack.frontier.v1beta1.Add
4394
4384
  * Use `create(AddOrganizationUsersRequestSchema)` to create a new message.
4395
4385
  */
4396
4386
  export const AddOrganizationUsersRequestSchema: GenMessage<AddOrganizationUsersRequest> = /*@__PURE__*/
4397
- messageDesc(file_raystack_frontier_v1beta1_frontier, 186);
4387
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 184);
4398
4388
 
4399
4389
  /**
4400
4390
  * @generated from message raystack.frontier.v1beta1.AddOrganizationUsersResponse
@@ -4407,7 +4397,7 @@ export type AddOrganizationUsersResponse = Message<"raystack.frontier.v1beta1.Ad
4407
4397
  * Use `create(AddOrganizationUsersResponseSchema)` to create a new message.
4408
4398
  */
4409
4399
  export const AddOrganizationUsersResponseSchema: GenMessage<AddOrganizationUsersResponse> = /*@__PURE__*/
4410
- messageDesc(file_raystack_frontier_v1beta1_frontier, 187);
4400
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 185);
4411
4401
 
4412
4402
  /**
4413
4403
  * @generated from message raystack.frontier.v1beta1.RemoveOrganizationUserRequest
@@ -4429,7 +4419,7 @@ export type RemoveOrganizationUserRequest = Message<"raystack.frontier.v1beta1.R
4429
4419
  * Use `create(RemoveOrganizationUserRequestSchema)` to create a new message.
4430
4420
  */
4431
4421
  export const RemoveOrganizationUserRequestSchema: GenMessage<RemoveOrganizationUserRequest> = /*@__PURE__*/
4432
- messageDesc(file_raystack_frontier_v1beta1_frontier, 188);
4422
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 186);
4433
4423
 
4434
4424
  /**
4435
4425
  * @generated from message raystack.frontier.v1beta1.RemoveOrganizationUserResponse
@@ -4442,7 +4432,7 @@ export type RemoveOrganizationUserResponse = Message<"raystack.frontier.v1beta1.
4442
4432
  * Use `create(RemoveOrganizationUserResponseSchema)` to create a new message.
4443
4433
  */
4444
4434
  export const RemoveOrganizationUserResponseSchema: GenMessage<RemoveOrganizationUserResponse> = /*@__PURE__*/
4445
- messageDesc(file_raystack_frontier_v1beta1_frontier, 189);
4435
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 187);
4446
4436
 
4447
4437
  /**
4448
4438
  * @generated from message raystack.frontier.v1beta1.ListOrganizationServiceUsersRequest
@@ -4459,7 +4449,7 @@ export type ListOrganizationServiceUsersRequest = Message<"raystack.frontier.v1b
4459
4449
  * Use `create(ListOrganizationServiceUsersRequestSchema)` to create a new message.
4460
4450
  */
4461
4451
  export const ListOrganizationServiceUsersRequestSchema: GenMessage<ListOrganizationServiceUsersRequest> = /*@__PURE__*/
4462
- messageDesc(file_raystack_frontier_v1beta1_frontier, 190);
4452
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 188);
4463
4453
 
4464
4454
  /**
4465
4455
  * @generated from message raystack.frontier.v1beta1.ListOrganizationServiceUsersResponse
@@ -4476,7 +4466,7 @@ export type ListOrganizationServiceUsersResponse = Message<"raystack.frontier.v1
4476
4466
  * Use `create(ListOrganizationServiceUsersResponseSchema)` to create a new message.
4477
4467
  */
4478
4468
  export const ListOrganizationServiceUsersResponseSchema: GenMessage<ListOrganizationServiceUsersResponse> = /*@__PURE__*/
4479
- messageDesc(file_raystack_frontier_v1beta1_frontier, 191);
4469
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 189);
4480
4470
 
4481
4471
  /**
4482
4472
  * @generated from message raystack.frontier.v1beta1.ListOrganizationInvitationsRequest
@@ -4498,7 +4488,7 @@ export type ListOrganizationInvitationsRequest = Message<"raystack.frontier.v1be
4498
4488
  * Use `create(ListOrganizationInvitationsRequestSchema)` to create a new message.
4499
4489
  */
4500
4490
  export const ListOrganizationInvitationsRequestSchema: GenMessage<ListOrganizationInvitationsRequest> = /*@__PURE__*/
4501
- messageDesc(file_raystack_frontier_v1beta1_frontier, 192);
4491
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 190);
4502
4492
 
4503
4493
  /**
4504
4494
  * @generated from message raystack.frontier.v1beta1.ListOrganizationInvitationsResponse
@@ -4515,7 +4505,7 @@ export type ListOrganizationInvitationsResponse = Message<"raystack.frontier.v1b
4515
4505
  * Use `create(ListOrganizationInvitationsResponseSchema)` to create a new message.
4516
4506
  */
4517
4507
  export const ListOrganizationInvitationsResponseSchema: GenMessage<ListOrganizationInvitationsResponse> = /*@__PURE__*/
4518
- messageDesc(file_raystack_frontier_v1beta1_frontier, 193);
4508
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 191);
4519
4509
 
4520
4510
  /**
4521
4511
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationInvitationRequest
@@ -4547,7 +4537,7 @@ export type CreateOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4547
4537
  * Use `create(CreateOrganizationInvitationRequestSchema)` to create a new message.
4548
4538
  */
4549
4539
  export const CreateOrganizationInvitationRequestSchema: GenMessage<CreateOrganizationInvitationRequest> = /*@__PURE__*/
4550
- messageDesc(file_raystack_frontier_v1beta1_frontier, 194);
4540
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 192);
4551
4541
 
4552
4542
  /**
4553
4543
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationInvitationResponse
@@ -4564,7 +4554,7 @@ export type CreateOrganizationInvitationResponse = Message<"raystack.frontier.v1
4564
4554
  * Use `create(CreateOrganizationInvitationResponseSchema)` to create a new message.
4565
4555
  */
4566
4556
  export const CreateOrganizationInvitationResponseSchema: GenMessage<CreateOrganizationInvitationResponse> = /*@__PURE__*/
4567
- messageDesc(file_raystack_frontier_v1beta1_frontier, 195);
4557
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 193);
4568
4558
 
4569
4559
  /**
4570
4560
  * @generated from message raystack.frontier.v1beta1.GetOrganizationInvitationRequest
@@ -4586,7 +4576,7 @@ export type GetOrganizationInvitationRequest = Message<"raystack.frontier.v1beta
4586
4576
  * Use `create(GetOrganizationInvitationRequestSchema)` to create a new message.
4587
4577
  */
4588
4578
  export const GetOrganizationInvitationRequestSchema: GenMessage<GetOrganizationInvitationRequest> = /*@__PURE__*/
4589
- messageDesc(file_raystack_frontier_v1beta1_frontier, 196);
4579
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 194);
4590
4580
 
4591
4581
  /**
4592
4582
  * @generated from message raystack.frontier.v1beta1.GetOrganizationInvitationResponse
@@ -4603,7 +4593,7 @@ export type GetOrganizationInvitationResponse = Message<"raystack.frontier.v1bet
4603
4593
  * Use `create(GetOrganizationInvitationResponseSchema)` to create a new message.
4604
4594
  */
4605
4595
  export const GetOrganizationInvitationResponseSchema: GenMessage<GetOrganizationInvitationResponse> = /*@__PURE__*/
4606
- messageDesc(file_raystack_frontier_v1beta1_frontier, 197);
4596
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 195);
4607
4597
 
4608
4598
  /**
4609
4599
  * @generated from message raystack.frontier.v1beta1.AcceptOrganizationInvitationRequest
@@ -4625,7 +4615,7 @@ export type AcceptOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4625
4615
  * Use `create(AcceptOrganizationInvitationRequestSchema)` to create a new message.
4626
4616
  */
4627
4617
  export const AcceptOrganizationInvitationRequestSchema: GenMessage<AcceptOrganizationInvitationRequest> = /*@__PURE__*/
4628
- messageDesc(file_raystack_frontier_v1beta1_frontier, 198);
4618
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 196);
4629
4619
 
4630
4620
  /**
4631
4621
  * @generated from message raystack.frontier.v1beta1.AcceptOrganizationInvitationResponse
@@ -4638,7 +4628,7 @@ export type AcceptOrganizationInvitationResponse = Message<"raystack.frontier.v1
4638
4628
  * Use `create(AcceptOrganizationInvitationResponseSchema)` to create a new message.
4639
4629
  */
4640
4630
  export const AcceptOrganizationInvitationResponseSchema: GenMessage<AcceptOrganizationInvitationResponse> = /*@__PURE__*/
4641
- messageDesc(file_raystack_frontier_v1beta1_frontier, 199);
4631
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 197);
4642
4632
 
4643
4633
  /**
4644
4634
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationInvitationRequest
@@ -4660,7 +4650,7 @@ export type DeleteOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4660
4650
  * Use `create(DeleteOrganizationInvitationRequestSchema)` to create a new message.
4661
4651
  */
4662
4652
  export const DeleteOrganizationInvitationRequestSchema: GenMessage<DeleteOrganizationInvitationRequest> = /*@__PURE__*/
4663
- messageDesc(file_raystack_frontier_v1beta1_frontier, 200);
4653
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 198);
4664
4654
 
4665
4655
  /**
4666
4656
  * @generated from message raystack.frontier.v1beta1.ListOrganizationDomainsRequest
@@ -4682,7 +4672,7 @@ export type ListOrganizationDomainsRequest = Message<"raystack.frontier.v1beta1.
4682
4672
  * Use `create(ListOrganizationDomainsRequestSchema)` to create a new message.
4683
4673
  */
4684
4674
  export const ListOrganizationDomainsRequestSchema: GenMessage<ListOrganizationDomainsRequest> = /*@__PURE__*/
4685
- messageDesc(file_raystack_frontier_v1beta1_frontier, 201);
4675
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 199);
4686
4676
 
4687
4677
  /**
4688
4678
  * @generated from message raystack.frontier.v1beta1.ListOrganizationDomainsResponse
@@ -4699,7 +4689,7 @@ export type ListOrganizationDomainsResponse = Message<"raystack.frontier.v1beta1
4699
4689
  * Use `create(ListOrganizationDomainsResponseSchema)` to create a new message.
4700
4690
  */
4701
4691
  export const ListOrganizationDomainsResponseSchema: GenMessage<ListOrganizationDomainsResponse> = /*@__PURE__*/
4702
- messageDesc(file_raystack_frontier_v1beta1_frontier, 202);
4692
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 200);
4703
4693
 
4704
4694
  /**
4705
4695
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsByDomainRequest
@@ -4716,7 +4706,7 @@ export type ListOrganizationsByDomainRequest = Message<"raystack.frontier.v1beta
4716
4706
  * Use `create(ListOrganizationsByDomainRequestSchema)` to create a new message.
4717
4707
  */
4718
4708
  export const ListOrganizationsByDomainRequestSchema: GenMessage<ListOrganizationsByDomainRequest> = /*@__PURE__*/
4719
- messageDesc(file_raystack_frontier_v1beta1_frontier, 203);
4709
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 201);
4720
4710
 
4721
4711
  /**
4722
4712
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsByDomainResponse
@@ -4733,7 +4723,7 @@ export type ListOrganizationsByDomainResponse = Message<"raystack.frontier.v1bet
4733
4723
  * Use `create(ListOrganizationsByDomainResponseSchema)` to create a new message.
4734
4724
  */
4735
4725
  export const ListOrganizationsByDomainResponseSchema: GenMessage<ListOrganizationsByDomainResponse> = /*@__PURE__*/
4736
- messageDesc(file_raystack_frontier_v1beta1_frontier, 204);
4726
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 202);
4737
4727
 
4738
4728
  /**
4739
4729
  * @generated from message raystack.frontier.v1beta1.JoinOrganizationRequest
@@ -4750,7 +4740,7 @@ export type JoinOrganizationRequest = Message<"raystack.frontier.v1beta1.JoinOrg
4750
4740
  * Use `create(JoinOrganizationRequestSchema)` to create a new message.
4751
4741
  */
4752
4742
  export const JoinOrganizationRequestSchema: GenMessage<JoinOrganizationRequest> = /*@__PURE__*/
4753
- messageDesc(file_raystack_frontier_v1beta1_frontier, 205);
4743
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 203);
4754
4744
 
4755
4745
  /**
4756
4746
  * @generated from message raystack.frontier.v1beta1.JoinOrganizationResponse
@@ -4763,7 +4753,7 @@ export type JoinOrganizationResponse = Message<"raystack.frontier.v1beta1.JoinOr
4763
4753
  * Use `create(JoinOrganizationResponseSchema)` to create a new message.
4764
4754
  */
4765
4755
  export const JoinOrganizationResponseSchema: GenMessage<JoinOrganizationResponse> = /*@__PURE__*/
4766
- messageDesc(file_raystack_frontier_v1beta1_frontier, 206);
4756
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 204);
4767
4757
 
4768
4758
  /**
4769
4759
  * @generated from message raystack.frontier.v1beta1.GetOrganizationDomainRequest
@@ -4785,7 +4775,7 @@ export type GetOrganizationDomainRequest = Message<"raystack.frontier.v1beta1.Ge
4785
4775
  * Use `create(GetOrganizationDomainRequestSchema)` to create a new message.
4786
4776
  */
4787
4777
  export const GetOrganizationDomainRequestSchema: GenMessage<GetOrganizationDomainRequest> = /*@__PURE__*/
4788
- messageDesc(file_raystack_frontier_v1beta1_frontier, 207);
4778
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 205);
4789
4779
 
4790
4780
  /**
4791
4781
  * @generated from message raystack.frontier.v1beta1.GetOrganizationDomainResponse
@@ -4802,7 +4792,7 @@ export type GetOrganizationDomainResponse = Message<"raystack.frontier.v1beta1.G
4802
4792
  * Use `create(GetOrganizationDomainResponseSchema)` to create a new message.
4803
4793
  */
4804
4794
  export const GetOrganizationDomainResponseSchema: GenMessage<GetOrganizationDomainResponse> = /*@__PURE__*/
4805
- messageDesc(file_raystack_frontier_v1beta1_frontier, 208);
4795
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 206);
4806
4796
 
4807
4797
  /**
4808
4798
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationDomainRequest
@@ -4824,7 +4814,7 @@ export type CreateOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4824
4814
  * Use `create(CreateOrganizationDomainRequestSchema)` to create a new message.
4825
4815
  */
4826
4816
  export const CreateOrganizationDomainRequestSchema: GenMessage<CreateOrganizationDomainRequest> = /*@__PURE__*/
4827
- messageDesc(file_raystack_frontier_v1beta1_frontier, 209);
4817
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 207);
4828
4818
 
4829
4819
  /**
4830
4820
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationDomainResponse
@@ -4841,7 +4831,7 @@ export type CreateOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4841
4831
  * Use `create(CreateOrganizationDomainResponseSchema)` to create a new message.
4842
4832
  */
4843
4833
  export const CreateOrganizationDomainResponseSchema: GenMessage<CreateOrganizationDomainResponse> = /*@__PURE__*/
4844
- messageDesc(file_raystack_frontier_v1beta1_frontier, 210);
4834
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 208);
4845
4835
 
4846
4836
  /**
4847
4837
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationDomainRequest
@@ -4863,7 +4853,7 @@ export type DeleteOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4863
4853
  * Use `create(DeleteOrganizationDomainRequestSchema)` to create a new message.
4864
4854
  */
4865
4855
  export const DeleteOrganizationDomainRequestSchema: GenMessage<DeleteOrganizationDomainRequest> = /*@__PURE__*/
4866
- messageDesc(file_raystack_frontier_v1beta1_frontier, 211);
4856
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 209);
4867
4857
 
4868
4858
  /**
4869
4859
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationDomainResponse
@@ -4876,7 +4866,7 @@ export type DeleteOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4876
4866
  * Use `create(DeleteOrganizationDomainResponseSchema)` to create a new message.
4877
4867
  */
4878
4868
  export const DeleteOrganizationDomainResponseSchema: GenMessage<DeleteOrganizationDomainResponse> = /*@__PURE__*/
4879
- messageDesc(file_raystack_frontier_v1beta1_frontier, 212);
4869
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 210);
4880
4870
 
4881
4871
  /**
4882
4872
  * @generated from message raystack.frontier.v1beta1.VerifyOrganizationDomainRequest
@@ -4898,7 +4888,7 @@ export type VerifyOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4898
4888
  * Use `create(VerifyOrganizationDomainRequestSchema)` to create a new message.
4899
4889
  */
4900
4890
  export const VerifyOrganizationDomainRequestSchema: GenMessage<VerifyOrganizationDomainRequest> = /*@__PURE__*/
4901
- messageDesc(file_raystack_frontier_v1beta1_frontier, 213);
4891
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 211);
4902
4892
 
4903
4893
  /**
4904
4894
  * @generated from message raystack.frontier.v1beta1.VerifyOrganizationDomainResponse
@@ -4915,7 +4905,7 @@ export type VerifyOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4915
4905
  * Use `create(VerifyOrganizationDomainResponseSchema)` to create a new message.
4916
4906
  */
4917
4907
  export const VerifyOrganizationDomainResponseSchema: GenMessage<VerifyOrganizationDomainResponse> = /*@__PURE__*/
4918
- messageDesc(file_raystack_frontier_v1beta1_frontier, 214);
4908
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 212);
4919
4909
 
4920
4910
  /**
4921
4911
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationInvitationResponse
@@ -4928,7 +4918,7 @@ export type DeleteOrganizationInvitationResponse = Message<"raystack.frontier.v1
4928
4918
  * Use `create(DeleteOrganizationInvitationResponseSchema)` to create a new message.
4929
4919
  */
4930
4920
  export const DeleteOrganizationInvitationResponseSchema: GenMessage<DeleteOrganizationInvitationResponse> = /*@__PURE__*/
4931
- messageDesc(file_raystack_frontier_v1beta1_frontier, 215);
4921
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 213);
4932
4922
 
4933
4923
  /**
4934
4924
  * @generated from message raystack.frontier.v1beta1.EnableOrganizationRequest
@@ -4945,7 +4935,7 @@ export type EnableOrganizationRequest = Message<"raystack.frontier.v1beta1.Enabl
4945
4935
  * Use `create(EnableOrganizationRequestSchema)` to create a new message.
4946
4936
  */
4947
4937
  export const EnableOrganizationRequestSchema: GenMessage<EnableOrganizationRequest> = /*@__PURE__*/
4948
- messageDesc(file_raystack_frontier_v1beta1_frontier, 216);
4938
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 214);
4949
4939
 
4950
4940
  /**
4951
4941
  * @generated from message raystack.frontier.v1beta1.EnableOrganizationResponse
@@ -4958,7 +4948,7 @@ export type EnableOrganizationResponse = Message<"raystack.frontier.v1beta1.Enab
4958
4948
  * Use `create(EnableOrganizationResponseSchema)` to create a new message.
4959
4949
  */
4960
4950
  export const EnableOrganizationResponseSchema: GenMessage<EnableOrganizationResponse> = /*@__PURE__*/
4961
- messageDesc(file_raystack_frontier_v1beta1_frontier, 217);
4951
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 215);
4962
4952
 
4963
4953
  /**
4964
4954
  * @generated from message raystack.frontier.v1beta1.DisableOrganizationRequest
@@ -4975,7 +4965,7 @@ export type DisableOrganizationRequest = Message<"raystack.frontier.v1beta1.Disa
4975
4965
  * Use `create(DisableOrganizationRequestSchema)` to create a new message.
4976
4966
  */
4977
4967
  export const DisableOrganizationRequestSchema: GenMessage<DisableOrganizationRequest> = /*@__PURE__*/
4978
- messageDesc(file_raystack_frontier_v1beta1_frontier, 218);
4968
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 216);
4979
4969
 
4980
4970
  /**
4981
4971
  * @generated from message raystack.frontier.v1beta1.DisableOrganizationResponse
@@ -4988,7 +4978,7 @@ export type DisableOrganizationResponse = Message<"raystack.frontier.v1beta1.Dis
4988
4978
  * Use `create(DisableOrganizationResponseSchema)` to create a new message.
4989
4979
  */
4990
4980
  export const DisableOrganizationResponseSchema: GenMessage<DisableOrganizationResponse> = /*@__PURE__*/
4991
- messageDesc(file_raystack_frontier_v1beta1_frontier, 219);
4981
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 217);
4992
4982
 
4993
4983
  /**
4994
4984
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRequest
@@ -5005,7 +4995,7 @@ export type DeleteOrganizationRequest = Message<"raystack.frontier.v1beta1.Delet
5005
4995
  * Use `create(DeleteOrganizationRequestSchema)` to create a new message.
5006
4996
  */
5007
4997
  export const DeleteOrganizationRequestSchema: GenMessage<DeleteOrganizationRequest> = /*@__PURE__*/
5008
- messageDesc(file_raystack_frontier_v1beta1_frontier, 220);
4998
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 218);
5009
4999
 
5010
5000
  /**
5011
5001
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationResponse
@@ -5018,7 +5008,7 @@ export type DeleteOrganizationResponse = Message<"raystack.frontier.v1beta1.Dele
5018
5008
  * Use `create(DeleteOrganizationResponseSchema)` to create a new message.
5019
5009
  */
5020
5010
  export const DeleteOrganizationResponseSchema: GenMessage<DeleteOrganizationResponse> = /*@__PURE__*/
5021
- messageDesc(file_raystack_frontier_v1beta1_frontier, 221);
5011
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 219);
5022
5012
 
5023
5013
  /**
5024
5014
  * @generated from message raystack.frontier.v1beta1.GetOrganizationKycRequest
@@ -5035,7 +5025,7 @@ export type GetOrganizationKycRequest = Message<"raystack.frontier.v1beta1.GetOr
5035
5025
  * Use `create(GetOrganizationKycRequestSchema)` to create a new message.
5036
5026
  */
5037
5027
  export const GetOrganizationKycRequestSchema: GenMessage<GetOrganizationKycRequest> = /*@__PURE__*/
5038
- messageDesc(file_raystack_frontier_v1beta1_frontier, 222);
5028
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 220);
5039
5029
 
5040
5030
  /**
5041
5031
  * @generated from message raystack.frontier.v1beta1.GetOrganizationKycResponse
@@ -5052,7 +5042,7 @@ export type GetOrganizationKycResponse = Message<"raystack.frontier.v1beta1.GetO
5052
5042
  * Use `create(GetOrganizationKycResponseSchema)` to create a new message.
5053
5043
  */
5054
5044
  export const GetOrganizationKycResponseSchema: GenMessage<GetOrganizationKycResponse> = /*@__PURE__*/
5055
- messageDesc(file_raystack_frontier_v1beta1_frontier, 223);
5045
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 221);
5056
5046
 
5057
5047
  /**
5058
5048
  * @generated from message raystack.frontier.v1beta1.ProjectRequestBody
@@ -5084,7 +5074,7 @@ export type ProjectRequestBody = Message<"raystack.frontier.v1beta1.ProjectReque
5084
5074
  * Use `create(ProjectRequestBodySchema)` to create a new message.
5085
5075
  */
5086
5076
  export const ProjectRequestBodySchema: GenMessage<ProjectRequestBody> = /*@__PURE__*/
5087
- messageDesc(file_raystack_frontier_v1beta1_frontier, 224);
5077
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 222);
5088
5078
 
5089
5079
  /**
5090
5080
  * @generated from message raystack.frontier.v1beta1.CreateProjectRequest
@@ -5101,7 +5091,7 @@ export type CreateProjectRequest = Message<"raystack.frontier.v1beta1.CreateProj
5101
5091
  * Use `create(CreateProjectRequestSchema)` to create a new message.
5102
5092
  */
5103
5093
  export const CreateProjectRequestSchema: GenMessage<CreateProjectRequest> = /*@__PURE__*/
5104
- messageDesc(file_raystack_frontier_v1beta1_frontier, 225);
5094
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 223);
5105
5095
 
5106
5096
  /**
5107
5097
  * @generated from message raystack.frontier.v1beta1.CreateProjectResponse
@@ -5118,7 +5108,7 @@ export type CreateProjectResponse = Message<"raystack.frontier.v1beta1.CreatePro
5118
5108
  * Use `create(CreateProjectResponseSchema)` to create a new message.
5119
5109
  */
5120
5110
  export const CreateProjectResponseSchema: GenMessage<CreateProjectResponse> = /*@__PURE__*/
5121
- messageDesc(file_raystack_frontier_v1beta1_frontier, 226);
5111
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 224);
5122
5112
 
5123
5113
  /**
5124
5114
  * @generated from message raystack.frontier.v1beta1.ListOrganizationProjectsRequest
@@ -5145,7 +5135,7 @@ export type ListOrganizationProjectsRequest = Message<"raystack.frontier.v1beta1
5145
5135
  * Use `create(ListOrganizationProjectsRequestSchema)` to create a new message.
5146
5136
  */
5147
5137
  export const ListOrganizationProjectsRequestSchema: GenMessage<ListOrganizationProjectsRequest> = /*@__PURE__*/
5148
- messageDesc(file_raystack_frontier_v1beta1_frontier, 227);
5138
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 225);
5149
5139
 
5150
5140
  /**
5151
5141
  * @generated from message raystack.frontier.v1beta1.ListOrganizationProjectsResponse
@@ -5162,7 +5152,7 @@ export type ListOrganizationProjectsResponse = Message<"raystack.frontier.v1beta
5162
5152
  * Use `create(ListOrganizationProjectsResponseSchema)` to create a new message.
5163
5153
  */
5164
5154
  export const ListOrganizationProjectsResponseSchema: GenMessage<ListOrganizationProjectsResponse> = /*@__PURE__*/
5165
- messageDesc(file_raystack_frontier_v1beta1_frontier, 228);
5155
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 226);
5166
5156
 
5167
5157
  /**
5168
5158
  * @generated from message raystack.frontier.v1beta1.GetProjectRequest
@@ -5179,7 +5169,7 @@ export type GetProjectRequest = Message<"raystack.frontier.v1beta1.GetProjectReq
5179
5169
  * Use `create(GetProjectRequestSchema)` to create a new message.
5180
5170
  */
5181
5171
  export const GetProjectRequestSchema: GenMessage<GetProjectRequest> = /*@__PURE__*/
5182
- messageDesc(file_raystack_frontier_v1beta1_frontier, 229);
5172
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 227);
5183
5173
 
5184
5174
  /**
5185
5175
  * @generated from message raystack.frontier.v1beta1.GetProjectResponse
@@ -5196,7 +5186,7 @@ export type GetProjectResponse = Message<"raystack.frontier.v1beta1.GetProjectRe
5196
5186
  * Use `create(GetProjectResponseSchema)` to create a new message.
5197
5187
  */
5198
5188
  export const GetProjectResponseSchema: GenMessage<GetProjectResponse> = /*@__PURE__*/
5199
- messageDesc(file_raystack_frontier_v1beta1_frontier, 230);
5189
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 228);
5200
5190
 
5201
5191
  /**
5202
5192
  * @generated from message raystack.frontier.v1beta1.UpdateProjectRequest
@@ -5218,7 +5208,7 @@ export type UpdateProjectRequest = Message<"raystack.frontier.v1beta1.UpdateProj
5218
5208
  * Use `create(UpdateProjectRequestSchema)` to create a new message.
5219
5209
  */
5220
5210
  export const UpdateProjectRequestSchema: GenMessage<UpdateProjectRequest> = /*@__PURE__*/
5221
- messageDesc(file_raystack_frontier_v1beta1_frontier, 231);
5211
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 229);
5222
5212
 
5223
5213
  /**
5224
5214
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResponse
@@ -5235,7 +5225,7 @@ export type UpdateProjectResponse = Message<"raystack.frontier.v1beta1.UpdatePro
5235
5225
  * Use `create(UpdateProjectResponseSchema)` to create a new message.
5236
5226
  */
5237
5227
  export const UpdateProjectResponseSchema: GenMessage<UpdateProjectResponse> = /*@__PURE__*/
5238
- messageDesc(file_raystack_frontier_v1beta1_frontier, 232);
5228
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 230);
5239
5229
 
5240
5230
  /**
5241
5231
  * @generated from message raystack.frontier.v1beta1.ListProjectAdminsRequest
@@ -5252,7 +5242,7 @@ export type ListProjectAdminsRequest = Message<"raystack.frontier.v1beta1.ListPr
5252
5242
  * Use `create(ListProjectAdminsRequestSchema)` to create a new message.
5253
5243
  */
5254
5244
  export const ListProjectAdminsRequestSchema: GenMessage<ListProjectAdminsRequest> = /*@__PURE__*/
5255
- messageDesc(file_raystack_frontier_v1beta1_frontier, 233);
5245
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 231);
5256
5246
 
5257
5247
  /**
5258
5248
  * @generated from message raystack.frontier.v1beta1.ListProjectAdminsResponse
@@ -5269,7 +5259,7 @@ export type ListProjectAdminsResponse = Message<"raystack.frontier.v1beta1.ListP
5269
5259
  * Use `create(ListProjectAdminsResponseSchema)` to create a new message.
5270
5260
  */
5271
5261
  export const ListProjectAdminsResponseSchema: GenMessage<ListProjectAdminsResponse> = /*@__PURE__*/
5272
- messageDesc(file_raystack_frontier_v1beta1_frontier, 234);
5262
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 232);
5273
5263
 
5274
5264
  /**
5275
5265
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersRequest
@@ -5296,7 +5286,7 @@ export type ListProjectUsersRequest = Message<"raystack.frontier.v1beta1.ListPro
5296
5286
  * Use `create(ListProjectUsersRequestSchema)` to create a new message.
5297
5287
  */
5298
5288
  export const ListProjectUsersRequestSchema: GenMessage<ListProjectUsersRequest> = /*@__PURE__*/
5299
- messageDesc(file_raystack_frontier_v1beta1_frontier, 235);
5289
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 233);
5300
5290
 
5301
5291
  /**
5302
5292
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersResponse
@@ -5318,7 +5308,7 @@ export type ListProjectUsersResponse = Message<"raystack.frontier.v1beta1.ListPr
5318
5308
  * Use `create(ListProjectUsersResponseSchema)` to create a new message.
5319
5309
  */
5320
5310
  export const ListProjectUsersResponseSchema: GenMessage<ListProjectUsersResponse> = /*@__PURE__*/
5321
- messageDesc(file_raystack_frontier_v1beta1_frontier, 236);
5311
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 234);
5322
5312
 
5323
5313
  /**
5324
5314
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersResponse.RolePair
@@ -5340,7 +5330,7 @@ export type ListProjectUsersResponse_RolePair = Message<"raystack.frontier.v1bet
5340
5330
  * Use `create(ListProjectUsersResponse_RolePairSchema)` to create a new message.
5341
5331
  */
5342
5332
  export const ListProjectUsersResponse_RolePairSchema: GenMessage<ListProjectUsersResponse_RolePair> = /*@__PURE__*/
5343
- messageDesc(file_raystack_frontier_v1beta1_frontier, 236, 0);
5333
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 234, 0);
5344
5334
 
5345
5335
  /**
5346
5336
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersRequest
@@ -5362,7 +5352,7 @@ export type ListProjectServiceUsersRequest = Message<"raystack.frontier.v1beta1.
5362
5352
  * Use `create(ListProjectServiceUsersRequestSchema)` to create a new message.
5363
5353
  */
5364
5354
  export const ListProjectServiceUsersRequestSchema: GenMessage<ListProjectServiceUsersRequest> = /*@__PURE__*/
5365
- messageDesc(file_raystack_frontier_v1beta1_frontier, 237);
5355
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 235);
5366
5356
 
5367
5357
  /**
5368
5358
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersResponse
@@ -5384,7 +5374,7 @@ export type ListProjectServiceUsersResponse = Message<"raystack.frontier.v1beta1
5384
5374
  * Use `create(ListProjectServiceUsersResponseSchema)` to create a new message.
5385
5375
  */
5386
5376
  export const ListProjectServiceUsersResponseSchema: GenMessage<ListProjectServiceUsersResponse> = /*@__PURE__*/
5387
- messageDesc(file_raystack_frontier_v1beta1_frontier, 238);
5377
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 236);
5388
5378
 
5389
5379
  /**
5390
5380
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersResponse.RolePair
@@ -5406,7 +5396,7 @@ export type ListProjectServiceUsersResponse_RolePair = Message<"raystack.frontie
5406
5396
  * Use `create(ListProjectServiceUsersResponse_RolePairSchema)` to create a new message.
5407
5397
  */
5408
5398
  export const ListProjectServiceUsersResponse_RolePairSchema: GenMessage<ListProjectServiceUsersResponse_RolePair> = /*@__PURE__*/
5409
- messageDesc(file_raystack_frontier_v1beta1_frontier, 238, 0);
5399
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 236, 0);
5410
5400
 
5411
5401
  /**
5412
5402
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsRequest
@@ -5428,7 +5418,7 @@ export type ListProjectGroupsRequest = Message<"raystack.frontier.v1beta1.ListPr
5428
5418
  * Use `create(ListProjectGroupsRequestSchema)` to create a new message.
5429
5419
  */
5430
5420
  export const ListProjectGroupsRequestSchema: GenMessage<ListProjectGroupsRequest> = /*@__PURE__*/
5431
- messageDesc(file_raystack_frontier_v1beta1_frontier, 239);
5421
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 237);
5432
5422
 
5433
5423
  /**
5434
5424
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsResponse
@@ -5450,7 +5440,7 @@ export type ListProjectGroupsResponse = Message<"raystack.frontier.v1beta1.ListP
5450
5440
  * Use `create(ListProjectGroupsResponseSchema)` to create a new message.
5451
5441
  */
5452
5442
  export const ListProjectGroupsResponseSchema: GenMessage<ListProjectGroupsResponse> = /*@__PURE__*/
5453
- messageDesc(file_raystack_frontier_v1beta1_frontier, 240);
5443
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 238);
5454
5444
 
5455
5445
  /**
5456
5446
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsResponse.RolePair
@@ -5472,7 +5462,7 @@ export type ListProjectGroupsResponse_RolePair = Message<"raystack.frontier.v1be
5472
5462
  * Use `create(ListProjectGroupsResponse_RolePairSchema)` to create a new message.
5473
5463
  */
5474
5464
  export const ListProjectGroupsResponse_RolePairSchema: GenMessage<ListProjectGroupsResponse_RolePair> = /*@__PURE__*/
5475
- messageDesc(file_raystack_frontier_v1beta1_frontier, 240, 0);
5465
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 238, 0);
5476
5466
 
5477
5467
  /**
5478
5468
  * @generated from message raystack.frontier.v1beta1.EnableProjectRequest
@@ -5489,7 +5479,7 @@ export type EnableProjectRequest = Message<"raystack.frontier.v1beta1.EnableProj
5489
5479
  * Use `create(EnableProjectRequestSchema)` to create a new message.
5490
5480
  */
5491
5481
  export const EnableProjectRequestSchema: GenMessage<EnableProjectRequest> = /*@__PURE__*/
5492
- messageDesc(file_raystack_frontier_v1beta1_frontier, 241);
5482
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 239);
5493
5483
 
5494
5484
  /**
5495
5485
  * @generated from message raystack.frontier.v1beta1.EnableProjectResponse
@@ -5502,7 +5492,7 @@ export type EnableProjectResponse = Message<"raystack.frontier.v1beta1.EnablePro
5502
5492
  * Use `create(EnableProjectResponseSchema)` to create a new message.
5503
5493
  */
5504
5494
  export const EnableProjectResponseSchema: GenMessage<EnableProjectResponse> = /*@__PURE__*/
5505
- messageDesc(file_raystack_frontier_v1beta1_frontier, 242);
5495
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 240);
5506
5496
 
5507
5497
  /**
5508
5498
  * @generated from message raystack.frontier.v1beta1.DisableProjectRequest
@@ -5519,7 +5509,7 @@ export type DisableProjectRequest = Message<"raystack.frontier.v1beta1.DisablePr
5519
5509
  * Use `create(DisableProjectRequestSchema)` to create a new message.
5520
5510
  */
5521
5511
  export const DisableProjectRequestSchema: GenMessage<DisableProjectRequest> = /*@__PURE__*/
5522
- messageDesc(file_raystack_frontier_v1beta1_frontier, 243);
5512
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 241);
5523
5513
 
5524
5514
  /**
5525
5515
  * @generated from message raystack.frontier.v1beta1.DisableProjectResponse
@@ -5532,7 +5522,7 @@ export type DisableProjectResponse = Message<"raystack.frontier.v1beta1.DisableP
5532
5522
  * Use `create(DisableProjectResponseSchema)` to create a new message.
5533
5523
  */
5534
5524
  export const DisableProjectResponseSchema: GenMessage<DisableProjectResponse> = /*@__PURE__*/
5535
- messageDesc(file_raystack_frontier_v1beta1_frontier, 244);
5525
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 242);
5536
5526
 
5537
5527
  /**
5538
5528
  * @generated from message raystack.frontier.v1beta1.DeleteProjectRequest
@@ -5549,7 +5539,7 @@ export type DeleteProjectRequest = Message<"raystack.frontier.v1beta1.DeleteProj
5549
5539
  * Use `create(DeleteProjectRequestSchema)` to create a new message.
5550
5540
  */
5551
5541
  export const DeleteProjectRequestSchema: GenMessage<DeleteProjectRequest> = /*@__PURE__*/
5552
- messageDesc(file_raystack_frontier_v1beta1_frontier, 245);
5542
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 243);
5553
5543
 
5554
5544
  /**
5555
5545
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResponse
@@ -5562,7 +5552,7 @@ export type DeleteProjectResponse = Message<"raystack.frontier.v1beta1.DeletePro
5562
5552
  * Use `create(DeleteProjectResponseSchema)` to create a new message.
5563
5553
  */
5564
5554
  export const DeleteProjectResponseSchema: GenMessage<DeleteProjectResponse> = /*@__PURE__*/
5565
- messageDesc(file_raystack_frontier_v1beta1_frontier, 246);
5555
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 244);
5566
5556
 
5567
5557
  /**
5568
5558
  * @generated from message raystack.frontier.v1beta1.PolicyRequestBody
@@ -5599,7 +5589,7 @@ export type PolicyRequestBody = Message<"raystack.frontier.v1beta1.PolicyRequest
5599
5589
  * Use `create(PolicyRequestBodySchema)` to create a new message.
5600
5590
  */
5601
5591
  export const PolicyRequestBodySchema: GenMessage<PolicyRequestBody> = /*@__PURE__*/
5602
- messageDesc(file_raystack_frontier_v1beta1_frontier, 247);
5592
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 245);
5603
5593
 
5604
5594
  /**
5605
5595
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectBody
@@ -5626,7 +5616,7 @@ export type CreatePolicyForProjectBody = Message<"raystack.frontier.v1beta1.Crea
5626
5616
  * Use `create(CreatePolicyForProjectBodySchema)` to create a new message.
5627
5617
  */
5628
5618
  export const CreatePolicyForProjectBodySchema: GenMessage<CreatePolicyForProjectBody> = /*@__PURE__*/
5629
- messageDesc(file_raystack_frontier_v1beta1_frontier, 248);
5619
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 246);
5630
5620
 
5631
5621
  /**
5632
5622
  * @generated from message raystack.frontier.v1beta1.GetPermissionRequest
@@ -5643,7 +5633,7 @@ export type GetPermissionRequest = Message<"raystack.frontier.v1beta1.GetPermiss
5643
5633
  * Use `create(GetPermissionRequestSchema)` to create a new message.
5644
5634
  */
5645
5635
  export const GetPermissionRequestSchema: GenMessage<GetPermissionRequest> = /*@__PURE__*/
5646
- messageDesc(file_raystack_frontier_v1beta1_frontier, 249);
5636
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 247);
5647
5637
 
5648
5638
  /**
5649
5639
  * @generated from message raystack.frontier.v1beta1.GetPermissionResponse
@@ -5660,7 +5650,7 @@ export type GetPermissionResponse = Message<"raystack.frontier.v1beta1.GetPermis
5660
5650
  * Use `create(GetPermissionResponseSchema)` to create a new message.
5661
5651
  */
5662
5652
  export const GetPermissionResponseSchema: GenMessage<GetPermissionResponse> = /*@__PURE__*/
5663
- messageDesc(file_raystack_frontier_v1beta1_frontier, 250);
5653
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 248);
5664
5654
 
5665
5655
  /**
5666
5656
  * @generated from message raystack.frontier.v1beta1.ListPermissionsRequest
@@ -5673,7 +5663,7 @@ export type ListPermissionsRequest = Message<"raystack.frontier.v1beta1.ListPerm
5673
5663
  * Use `create(ListPermissionsRequestSchema)` to create a new message.
5674
5664
  */
5675
5665
  export const ListPermissionsRequestSchema: GenMessage<ListPermissionsRequest> = /*@__PURE__*/
5676
- messageDesc(file_raystack_frontier_v1beta1_frontier, 251);
5666
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 249);
5677
5667
 
5678
5668
  /**
5679
5669
  * @generated from message raystack.frontier.v1beta1.ListPermissionsResponse
@@ -5690,7 +5680,7 @@ export type ListPermissionsResponse = Message<"raystack.frontier.v1beta1.ListPer
5690
5680
  * Use `create(ListPermissionsResponseSchema)` to create a new message.
5691
5681
  */
5692
5682
  export const ListPermissionsResponseSchema: GenMessage<ListPermissionsResponse> = /*@__PURE__*/
5693
- messageDesc(file_raystack_frontier_v1beta1_frontier, 252);
5683
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 250);
5694
5684
 
5695
5685
  /**
5696
5686
  * @generated from message raystack.frontier.v1beta1.ListNamespacesRequest
@@ -5703,7 +5693,7 @@ export type ListNamespacesRequest = Message<"raystack.frontier.v1beta1.ListNames
5703
5693
  * Use `create(ListNamespacesRequestSchema)` to create a new message.
5704
5694
  */
5705
5695
  export const ListNamespacesRequestSchema: GenMessage<ListNamespacesRequest> = /*@__PURE__*/
5706
- messageDesc(file_raystack_frontier_v1beta1_frontier, 253);
5696
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 251);
5707
5697
 
5708
5698
  /**
5709
5699
  * @generated from message raystack.frontier.v1beta1.ListNamespacesResponse
@@ -5720,7 +5710,7 @@ export type ListNamespacesResponse = Message<"raystack.frontier.v1beta1.ListName
5720
5710
  * Use `create(ListNamespacesResponseSchema)` to create a new message.
5721
5711
  */
5722
5712
  export const ListNamespacesResponseSchema: GenMessage<ListNamespacesResponse> = /*@__PURE__*/
5723
- messageDesc(file_raystack_frontier_v1beta1_frontier, 254);
5713
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 252);
5724
5714
 
5725
5715
  /**
5726
5716
  * @generated from message raystack.frontier.v1beta1.GetNamespaceRequest
@@ -5737,7 +5727,7 @@ export type GetNamespaceRequest = Message<"raystack.frontier.v1beta1.GetNamespac
5737
5727
  * Use `create(GetNamespaceRequestSchema)` to create a new message.
5738
5728
  */
5739
5729
  export const GetNamespaceRequestSchema: GenMessage<GetNamespaceRequest> = /*@__PURE__*/
5740
- messageDesc(file_raystack_frontier_v1beta1_frontier, 255);
5730
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 253);
5741
5731
 
5742
5732
  /**
5743
5733
  * @generated from message raystack.frontier.v1beta1.GetNamespaceResponse
@@ -5754,7 +5744,7 @@ export type GetNamespaceResponse = Message<"raystack.frontier.v1beta1.GetNamespa
5754
5744
  * Use `create(GetNamespaceResponseSchema)` to create a new message.
5755
5745
  */
5756
5746
  export const GetNamespaceResponseSchema: GenMessage<GetNamespaceResponse> = /*@__PURE__*/
5757
- messageDesc(file_raystack_frontier_v1beta1_frontier, 256);
5747
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 254);
5758
5748
 
5759
5749
  /**
5760
5750
  * @generated from message raystack.frontier.v1beta1.CreatePolicyRequest
@@ -5771,7 +5761,7 @@ export type CreatePolicyRequest = Message<"raystack.frontier.v1beta1.CreatePolic
5771
5761
  * Use `create(CreatePolicyRequestSchema)` to create a new message.
5772
5762
  */
5773
5763
  export const CreatePolicyRequestSchema: GenMessage<CreatePolicyRequest> = /*@__PURE__*/
5774
- messageDesc(file_raystack_frontier_v1beta1_frontier, 257);
5764
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 255);
5775
5765
 
5776
5766
  /**
5777
5767
  * @generated from message raystack.frontier.v1beta1.CreatePolicyResponse
@@ -5788,7 +5778,7 @@ export type CreatePolicyResponse = Message<"raystack.frontier.v1beta1.CreatePoli
5788
5778
  * Use `create(CreatePolicyResponseSchema)` to create a new message.
5789
5779
  */
5790
5780
  export const CreatePolicyResponseSchema: GenMessage<CreatePolicyResponse> = /*@__PURE__*/
5791
- messageDesc(file_raystack_frontier_v1beta1_frontier, 258);
5781
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 256);
5792
5782
 
5793
5783
  /**
5794
5784
  * @generated from message raystack.frontier.v1beta1.GetPolicyRequest
@@ -5805,7 +5795,7 @@ export type GetPolicyRequest = Message<"raystack.frontier.v1beta1.GetPolicyReque
5805
5795
  * Use `create(GetPolicyRequestSchema)` to create a new message.
5806
5796
  */
5807
5797
  export const GetPolicyRequestSchema: GenMessage<GetPolicyRequest> = /*@__PURE__*/
5808
- messageDesc(file_raystack_frontier_v1beta1_frontier, 259);
5798
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 257);
5809
5799
 
5810
5800
  /**
5811
5801
  * @generated from message raystack.frontier.v1beta1.GetPolicyResponse
@@ -5822,7 +5812,7 @@ export type GetPolicyResponse = Message<"raystack.frontier.v1beta1.GetPolicyResp
5822
5812
  * Use `create(GetPolicyResponseSchema)` to create a new message.
5823
5813
  */
5824
5814
  export const GetPolicyResponseSchema: GenMessage<GetPolicyResponse> = /*@__PURE__*/
5825
- messageDesc(file_raystack_frontier_v1beta1_frontier, 260);
5815
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 258);
5826
5816
 
5827
5817
  /**
5828
5818
  * @generated from message raystack.frontier.v1beta1.ListPoliciesRequest
@@ -5859,7 +5849,7 @@ export type ListPoliciesRequest = Message<"raystack.frontier.v1beta1.ListPolicie
5859
5849
  * Use `create(ListPoliciesRequestSchema)` to create a new message.
5860
5850
  */
5861
5851
  export const ListPoliciesRequestSchema: GenMessage<ListPoliciesRequest> = /*@__PURE__*/
5862
- messageDesc(file_raystack_frontier_v1beta1_frontier, 261);
5852
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 259);
5863
5853
 
5864
5854
  /**
5865
5855
  * @generated from message raystack.frontier.v1beta1.ListPoliciesResponse
@@ -5876,7 +5866,7 @@ export type ListPoliciesResponse = Message<"raystack.frontier.v1beta1.ListPolici
5876
5866
  * Use `create(ListPoliciesResponseSchema)` to create a new message.
5877
5867
  */
5878
5868
  export const ListPoliciesResponseSchema: GenMessage<ListPoliciesResponse> = /*@__PURE__*/
5879
- messageDesc(file_raystack_frontier_v1beta1_frontier, 262);
5869
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 260);
5880
5870
 
5881
5871
  /**
5882
5872
  * @generated from message raystack.frontier.v1beta1.UpdatePolicyRequest
@@ -5898,7 +5888,7 @@ export type UpdatePolicyRequest = Message<"raystack.frontier.v1beta1.UpdatePolic
5898
5888
  * Use `create(UpdatePolicyRequestSchema)` to create a new message.
5899
5889
  */
5900
5890
  export const UpdatePolicyRequestSchema: GenMessage<UpdatePolicyRequest> = /*@__PURE__*/
5901
- messageDesc(file_raystack_frontier_v1beta1_frontier, 263);
5891
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 261);
5902
5892
 
5903
5893
  /**
5904
5894
  * @generated from message raystack.frontier.v1beta1.UpdatePolicyResponse
@@ -5915,7 +5905,7 @@ export type UpdatePolicyResponse = Message<"raystack.frontier.v1beta1.UpdatePoli
5915
5905
  * Use `create(UpdatePolicyResponseSchema)` to create a new message.
5916
5906
  */
5917
5907
  export const UpdatePolicyResponseSchema: GenMessage<UpdatePolicyResponse> = /*@__PURE__*/
5918
- messageDesc(file_raystack_frontier_v1beta1_frontier, 264);
5908
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 262);
5919
5909
 
5920
5910
  /**
5921
5911
  * @generated from message raystack.frontier.v1beta1.DeletePolicyRequest
@@ -5932,7 +5922,7 @@ export type DeletePolicyRequest = Message<"raystack.frontier.v1beta1.DeletePolic
5932
5922
  * Use `create(DeletePolicyRequestSchema)` to create a new message.
5933
5923
  */
5934
5924
  export const DeletePolicyRequestSchema: GenMessage<DeletePolicyRequest> = /*@__PURE__*/
5935
- messageDesc(file_raystack_frontier_v1beta1_frontier, 265);
5925
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 263);
5936
5926
 
5937
5927
  /**
5938
5928
  * @generated from message raystack.frontier.v1beta1.DeletePolicyResponse
@@ -5945,7 +5935,7 @@ export type DeletePolicyResponse = Message<"raystack.frontier.v1beta1.DeletePoli
5945
5935
  * Use `create(DeletePolicyResponseSchema)` to create a new message.
5946
5936
  */
5947
5937
  export const DeletePolicyResponseSchema: GenMessage<DeletePolicyResponse> = /*@__PURE__*/
5948
- messageDesc(file_raystack_frontier_v1beta1_frontier, 266);
5938
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 264);
5949
5939
 
5950
5940
  /**
5951
5941
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectRequest
@@ -5967,7 +5957,7 @@ export type CreatePolicyForProjectRequest = Message<"raystack.frontier.v1beta1.C
5967
5957
  * Use `create(CreatePolicyForProjectRequestSchema)` to create a new message.
5968
5958
  */
5969
5959
  export const CreatePolicyForProjectRequestSchema: GenMessage<CreatePolicyForProjectRequest> = /*@__PURE__*/
5970
- messageDesc(file_raystack_frontier_v1beta1_frontier, 267);
5960
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 265);
5971
5961
 
5972
5962
  /**
5973
5963
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectResponse
@@ -5980,7 +5970,7 @@ export type CreatePolicyForProjectResponse = Message<"raystack.frontier.v1beta1.
5980
5970
  * Use `create(CreatePolicyForProjectResponseSchema)` to create a new message.
5981
5971
  */
5982
5972
  export const CreatePolicyForProjectResponseSchema: GenMessage<CreatePolicyForProjectResponse> = /*@__PURE__*/
5983
- messageDesc(file_raystack_frontier_v1beta1_frontier, 268);
5973
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 266);
5984
5974
 
5985
5975
  /**
5986
5976
  * @generated from message raystack.frontier.v1beta1.RelationRequestBody
@@ -6016,7 +6006,7 @@ export type RelationRequestBody = Message<"raystack.frontier.v1beta1.RelationReq
6016
6006
  * Use `create(RelationRequestBodySchema)` to create a new message.
6017
6007
  */
6018
6008
  export const RelationRequestBodySchema: GenMessage<RelationRequestBody> = /*@__PURE__*/
6019
- messageDesc(file_raystack_frontier_v1beta1_frontier, 269);
6009
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 267);
6020
6010
 
6021
6011
  /**
6022
6012
  * @generated from message raystack.frontier.v1beta1.CreateRelationRequest
@@ -6033,7 +6023,7 @@ export type CreateRelationRequest = Message<"raystack.frontier.v1beta1.CreateRel
6033
6023
  * Use `create(CreateRelationRequestSchema)` to create a new message.
6034
6024
  */
6035
6025
  export const CreateRelationRequestSchema: GenMessage<CreateRelationRequest> = /*@__PURE__*/
6036
- messageDesc(file_raystack_frontier_v1beta1_frontier, 270);
6026
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 268);
6037
6027
 
6038
6028
  /**
6039
6029
  * @generated from message raystack.frontier.v1beta1.CreateRelationResponse
@@ -6050,7 +6040,7 @@ export type CreateRelationResponse = Message<"raystack.frontier.v1beta1.CreateRe
6050
6040
  * Use `create(CreateRelationResponseSchema)` to create a new message.
6051
6041
  */
6052
6042
  export const CreateRelationResponseSchema: GenMessage<CreateRelationResponse> = /*@__PURE__*/
6053
- messageDesc(file_raystack_frontier_v1beta1_frontier, 271);
6043
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 269);
6054
6044
 
6055
6045
  /**
6056
6046
  * @generated from message raystack.frontier.v1beta1.GetRelationRequest
@@ -6067,7 +6057,7 @@ export type GetRelationRequest = Message<"raystack.frontier.v1beta1.GetRelationR
6067
6057
  * Use `create(GetRelationRequestSchema)` to create a new message.
6068
6058
  */
6069
6059
  export const GetRelationRequestSchema: GenMessage<GetRelationRequest> = /*@__PURE__*/
6070
- messageDesc(file_raystack_frontier_v1beta1_frontier, 272);
6060
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 270);
6071
6061
 
6072
6062
  /**
6073
6063
  * @generated from message raystack.frontier.v1beta1.GetRelationResponse
@@ -6084,7 +6074,7 @@ export type GetRelationResponse = Message<"raystack.frontier.v1beta1.GetRelation
6084
6074
  * Use `create(GetRelationResponseSchema)` to create a new message.
6085
6075
  */
6086
6076
  export const GetRelationResponseSchema: GenMessage<GetRelationResponse> = /*@__PURE__*/
6087
- messageDesc(file_raystack_frontier_v1beta1_frontier, 273);
6077
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 271);
6088
6078
 
6089
6079
  /**
6090
6080
  * @generated from message raystack.frontier.v1beta1.UpdateRelationRequest
@@ -6106,7 +6096,7 @@ export type UpdateRelationRequest = Message<"raystack.frontier.v1beta1.UpdateRel
6106
6096
  * Use `create(UpdateRelationRequestSchema)` to create a new message.
6107
6097
  */
6108
6098
  export const UpdateRelationRequestSchema: GenMessage<UpdateRelationRequest> = /*@__PURE__*/
6109
- messageDesc(file_raystack_frontier_v1beta1_frontier, 274);
6099
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 272);
6110
6100
 
6111
6101
  /**
6112
6102
  * @generated from message raystack.frontier.v1beta1.UpdateRelationResponse
@@ -6123,7 +6113,7 @@ export type UpdateRelationResponse = Message<"raystack.frontier.v1beta1.UpdateRe
6123
6113
  * Use `create(UpdateRelationResponseSchema)` to create a new message.
6124
6114
  */
6125
6115
  export const UpdateRelationResponseSchema: GenMessage<UpdateRelationResponse> = /*@__PURE__*/
6126
- messageDesc(file_raystack_frontier_v1beta1_frontier, 275);
6116
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 273);
6127
6117
 
6128
6118
  /**
6129
6119
  * @generated from message raystack.frontier.v1beta1.GroupRequestBody
@@ -6150,7 +6140,7 @@ export type GroupRequestBody = Message<"raystack.frontier.v1beta1.GroupRequestBo
6150
6140
  * Use `create(GroupRequestBodySchema)` to create a new message.
6151
6141
  */
6152
6142
  export const GroupRequestBodySchema: GenMessage<GroupRequestBody> = /*@__PURE__*/
6153
- messageDesc(file_raystack_frontier_v1beta1_frontier, 276);
6143
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 274);
6154
6144
 
6155
6145
  /**
6156
6146
  * @generated from message raystack.frontier.v1beta1.CreateGroupRequest
@@ -6172,7 +6162,7 @@ export type CreateGroupRequest = Message<"raystack.frontier.v1beta1.CreateGroupR
6172
6162
  * Use `create(CreateGroupRequestSchema)` to create a new message.
6173
6163
  */
6174
6164
  export const CreateGroupRequestSchema: GenMessage<CreateGroupRequest> = /*@__PURE__*/
6175
- messageDesc(file_raystack_frontier_v1beta1_frontier, 277);
6165
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 275);
6176
6166
 
6177
6167
  /**
6178
6168
  * @generated from message raystack.frontier.v1beta1.GetGroupRequest
@@ -6199,7 +6189,7 @@ export type GetGroupRequest = Message<"raystack.frontier.v1beta1.GetGroupRequest
6199
6189
  * Use `create(GetGroupRequestSchema)` to create a new message.
6200
6190
  */
6201
6191
  export const GetGroupRequestSchema: GenMessage<GetGroupRequest> = /*@__PURE__*/
6202
- messageDesc(file_raystack_frontier_v1beta1_frontier, 278);
6192
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 276);
6203
6193
 
6204
6194
  /**
6205
6195
  * @generated from message raystack.frontier.v1beta1.CreateGroupResponse
@@ -6216,7 +6206,7 @@ export type CreateGroupResponse = Message<"raystack.frontier.v1beta1.CreateGroup
6216
6206
  * Use `create(CreateGroupResponseSchema)` to create a new message.
6217
6207
  */
6218
6208
  export const CreateGroupResponseSchema: GenMessage<CreateGroupResponse> = /*@__PURE__*/
6219
- messageDesc(file_raystack_frontier_v1beta1_frontier, 279);
6209
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 277);
6220
6210
 
6221
6211
  /**
6222
6212
  * @generated from message raystack.frontier.v1beta1.GetGroupResponse
@@ -6233,7 +6223,7 @@ export type GetGroupResponse = Message<"raystack.frontier.v1beta1.GetGroupRespon
6233
6223
  * Use `create(GetGroupResponseSchema)` to create a new message.
6234
6224
  */
6235
6225
  export const GetGroupResponseSchema: GenMessage<GetGroupResponse> = /*@__PURE__*/
6236
- messageDesc(file_raystack_frontier_v1beta1_frontier, 280);
6226
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 278);
6237
6227
 
6238
6228
  /**
6239
6229
  * @generated from message raystack.frontier.v1beta1.UpdateGroupResponse
@@ -6250,7 +6240,7 @@ export type UpdateGroupResponse = Message<"raystack.frontier.v1beta1.UpdateGroup
6250
6240
  * Use `create(UpdateGroupResponseSchema)` to create a new message.
6251
6241
  */
6252
6242
  export const UpdateGroupResponseSchema: GenMessage<UpdateGroupResponse> = /*@__PURE__*/
6253
- messageDesc(file_raystack_frontier_v1beta1_frontier, 281);
6243
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 279);
6254
6244
 
6255
6245
  /**
6256
6246
  * @generated from message raystack.frontier.v1beta1.UpdateGroupRequest
@@ -6277,7 +6267,7 @@ export type UpdateGroupRequest = Message<"raystack.frontier.v1beta1.UpdateGroupR
6277
6267
  * Use `create(UpdateGroupRequestSchema)` to create a new message.
6278
6268
  */
6279
6269
  export const UpdateGroupRequestSchema: GenMessage<UpdateGroupRequest> = /*@__PURE__*/
6280
- messageDesc(file_raystack_frontier_v1beta1_frontier, 282);
6270
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 280);
6281
6271
 
6282
6272
  /**
6283
6273
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersRequest
@@ -6304,7 +6294,7 @@ export type ListGroupUsersRequest = Message<"raystack.frontier.v1beta1.ListGroup
6304
6294
  * Use `create(ListGroupUsersRequestSchema)` to create a new message.
6305
6295
  */
6306
6296
  export const ListGroupUsersRequestSchema: GenMessage<ListGroupUsersRequest> = /*@__PURE__*/
6307
- messageDesc(file_raystack_frontier_v1beta1_frontier, 283);
6297
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 281);
6308
6298
 
6309
6299
  /**
6310
6300
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersResponse
@@ -6326,7 +6316,7 @@ export type ListGroupUsersResponse = Message<"raystack.frontier.v1beta1.ListGrou
6326
6316
  * Use `create(ListGroupUsersResponseSchema)` to create a new message.
6327
6317
  */
6328
6318
  export const ListGroupUsersResponseSchema: GenMessage<ListGroupUsersResponse> = /*@__PURE__*/
6329
- messageDesc(file_raystack_frontier_v1beta1_frontier, 284);
6319
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 282);
6330
6320
 
6331
6321
  /**
6332
6322
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersResponse.RolePair
@@ -6348,7 +6338,7 @@ export type ListGroupUsersResponse_RolePair = Message<"raystack.frontier.v1beta1
6348
6338
  * Use `create(ListGroupUsersResponse_RolePairSchema)` to create a new message.
6349
6339
  */
6350
6340
  export const ListGroupUsersResponse_RolePairSchema: GenMessage<ListGroupUsersResponse_RolePair> = /*@__PURE__*/
6351
- messageDesc(file_raystack_frontier_v1beta1_frontier, 284, 0);
6341
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 282, 0);
6352
6342
 
6353
6343
  /**
6354
6344
  * @generated from message raystack.frontier.v1beta1.EnableGroupRequest
@@ -6370,7 +6360,7 @@ export type EnableGroupRequest = Message<"raystack.frontier.v1beta1.EnableGroupR
6370
6360
  * Use `create(EnableGroupRequestSchema)` to create a new message.
6371
6361
  */
6372
6362
  export const EnableGroupRequestSchema: GenMessage<EnableGroupRequest> = /*@__PURE__*/
6373
- messageDesc(file_raystack_frontier_v1beta1_frontier, 285);
6363
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 283);
6374
6364
 
6375
6365
  /**
6376
6366
  * @generated from message raystack.frontier.v1beta1.EnableGroupResponse
@@ -6383,7 +6373,7 @@ export type EnableGroupResponse = Message<"raystack.frontier.v1beta1.EnableGroup
6383
6373
  * Use `create(EnableGroupResponseSchema)` to create a new message.
6384
6374
  */
6385
6375
  export const EnableGroupResponseSchema: GenMessage<EnableGroupResponse> = /*@__PURE__*/
6386
- messageDesc(file_raystack_frontier_v1beta1_frontier, 286);
6376
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 284);
6387
6377
 
6388
6378
  /**
6389
6379
  * @generated from message raystack.frontier.v1beta1.DisableGroupRequest
@@ -6405,7 +6395,7 @@ export type DisableGroupRequest = Message<"raystack.frontier.v1beta1.DisableGrou
6405
6395
  * Use `create(DisableGroupRequestSchema)` to create a new message.
6406
6396
  */
6407
6397
  export const DisableGroupRequestSchema: GenMessage<DisableGroupRequest> = /*@__PURE__*/
6408
- messageDesc(file_raystack_frontier_v1beta1_frontier, 287);
6398
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 285);
6409
6399
 
6410
6400
  /**
6411
6401
  * @generated from message raystack.frontier.v1beta1.DisableGroupResponse
@@ -6418,7 +6408,7 @@ export type DisableGroupResponse = Message<"raystack.frontier.v1beta1.DisableGro
6418
6408
  * Use `create(DisableGroupResponseSchema)` to create a new message.
6419
6409
  */
6420
6410
  export const DisableGroupResponseSchema: GenMessage<DisableGroupResponse> = /*@__PURE__*/
6421
- messageDesc(file_raystack_frontier_v1beta1_frontier, 288);
6411
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 286);
6422
6412
 
6423
6413
  /**
6424
6414
  * @generated from message raystack.frontier.v1beta1.DeleteGroupRequest
@@ -6440,7 +6430,7 @@ export type DeleteGroupRequest = Message<"raystack.frontier.v1beta1.DeleteGroupR
6440
6430
  * Use `create(DeleteGroupRequestSchema)` to create a new message.
6441
6431
  */
6442
6432
  export const DeleteGroupRequestSchema: GenMessage<DeleteGroupRequest> = /*@__PURE__*/
6443
- messageDesc(file_raystack_frontier_v1beta1_frontier, 289);
6433
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 287);
6444
6434
 
6445
6435
  /**
6446
6436
  * @generated from message raystack.frontier.v1beta1.DeleteGroupResponse
@@ -6453,7 +6443,7 @@ export type DeleteGroupResponse = Message<"raystack.frontier.v1beta1.DeleteGroup
6453
6443
  * Use `create(DeleteGroupResponseSchema)` to create a new message.
6454
6444
  */
6455
6445
  export const DeleteGroupResponseSchema: GenMessage<DeleteGroupResponse> = /*@__PURE__*/
6456
- messageDesc(file_raystack_frontier_v1beta1_frontier, 290);
6446
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 288);
6457
6447
 
6458
6448
  /**
6459
6449
  * @generated from message raystack.frontier.v1beta1.AddGroupUsersRequest
@@ -6480,7 +6470,7 @@ export type AddGroupUsersRequest = Message<"raystack.frontier.v1beta1.AddGroupUs
6480
6470
  * Use `create(AddGroupUsersRequestSchema)` to create a new message.
6481
6471
  */
6482
6472
  export const AddGroupUsersRequestSchema: GenMessage<AddGroupUsersRequest> = /*@__PURE__*/
6483
- messageDesc(file_raystack_frontier_v1beta1_frontier, 291);
6473
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 289);
6484
6474
 
6485
6475
  /**
6486
6476
  * @generated from message raystack.frontier.v1beta1.AddGroupUsersResponse
@@ -6493,7 +6483,7 @@ export type AddGroupUsersResponse = Message<"raystack.frontier.v1beta1.AddGroupU
6493
6483
  * Use `create(AddGroupUsersResponseSchema)` to create a new message.
6494
6484
  */
6495
6485
  export const AddGroupUsersResponseSchema: GenMessage<AddGroupUsersResponse> = /*@__PURE__*/
6496
- messageDesc(file_raystack_frontier_v1beta1_frontier, 292);
6486
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 290);
6497
6487
 
6498
6488
  /**
6499
6489
  * @generated from message raystack.frontier.v1beta1.RemoveGroupUserRequest
@@ -6520,7 +6510,7 @@ export type RemoveGroupUserRequest = Message<"raystack.frontier.v1beta1.RemoveGr
6520
6510
  * Use `create(RemoveGroupUserRequestSchema)` to create a new message.
6521
6511
  */
6522
6512
  export const RemoveGroupUserRequestSchema: GenMessage<RemoveGroupUserRequest> = /*@__PURE__*/
6523
- messageDesc(file_raystack_frontier_v1beta1_frontier, 293);
6513
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 291);
6524
6514
 
6525
6515
  /**
6526
6516
  * @generated from message raystack.frontier.v1beta1.RemoveGroupUserResponse
@@ -6533,7 +6523,7 @@ export type RemoveGroupUserResponse = Message<"raystack.frontier.v1beta1.RemoveG
6533
6523
  * Use `create(RemoveGroupUserResponseSchema)` to create a new message.
6534
6524
  */
6535
6525
  export const RemoveGroupUserResponseSchema: GenMessage<RemoveGroupUserResponse> = /*@__PURE__*/
6536
- messageDesc(file_raystack_frontier_v1beta1_frontier, 294);
6526
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 292);
6537
6527
 
6538
6528
  /**
6539
6529
  * @generated from message raystack.frontier.v1beta1.DeleteRelationRequest
@@ -6564,7 +6554,7 @@ export type DeleteRelationRequest = Message<"raystack.frontier.v1beta1.DeleteRel
6564
6554
  * Use `create(DeleteRelationRequestSchema)` to create a new message.
6565
6555
  */
6566
6556
  export const DeleteRelationRequestSchema: GenMessage<DeleteRelationRequest> = /*@__PURE__*/
6567
- messageDesc(file_raystack_frontier_v1beta1_frontier, 295);
6557
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 293);
6568
6558
 
6569
6559
  /**
6570
6560
  * @generated from message raystack.frontier.v1beta1.DeleteRelationResponse
@@ -6577,7 +6567,7 @@ export type DeleteRelationResponse = Message<"raystack.frontier.v1beta1.DeleteRe
6577
6567
  * Use `create(DeleteRelationResponseSchema)` to create a new message.
6578
6568
  */
6579
6569
  export const DeleteRelationResponseSchema: GenMessage<DeleteRelationResponse> = /*@__PURE__*/
6580
- messageDesc(file_raystack_frontier_v1beta1_frontier, 296);
6570
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 294);
6581
6571
 
6582
6572
  /**
6583
6573
  * @generated from message raystack.frontier.v1beta1.ListProjectResourcesRequest
@@ -6599,7 +6589,7 @@ export type ListProjectResourcesRequest = Message<"raystack.frontier.v1beta1.Lis
6599
6589
  * Use `create(ListProjectResourcesRequestSchema)` to create a new message.
6600
6590
  */
6601
6591
  export const ListProjectResourcesRequestSchema: GenMessage<ListProjectResourcesRequest> = /*@__PURE__*/
6602
- messageDesc(file_raystack_frontier_v1beta1_frontier, 297);
6592
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 295);
6603
6593
 
6604
6594
  /**
6605
6595
  * @generated from message raystack.frontier.v1beta1.ListProjectResourcesResponse
@@ -6616,7 +6606,7 @@ export type ListProjectResourcesResponse = Message<"raystack.frontier.v1beta1.Li
6616
6606
  * Use `create(ListProjectResourcesResponseSchema)` to create a new message.
6617
6607
  */
6618
6608
  export const ListProjectResourcesResponseSchema: GenMessage<ListProjectResourcesResponse> = /*@__PURE__*/
6619
- messageDesc(file_raystack_frontier_v1beta1_frontier, 298);
6609
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 296);
6620
6610
 
6621
6611
  /**
6622
6612
  * @generated from message raystack.frontier.v1beta1.ResourceRequestBody
@@ -6655,7 +6645,7 @@ export type ResourceRequestBody = Message<"raystack.frontier.v1beta1.ResourceReq
6655
6645
  * Use `create(ResourceRequestBodySchema)` to create a new message.
6656
6646
  */
6657
6647
  export const ResourceRequestBodySchema: GenMessage<ResourceRequestBody> = /*@__PURE__*/
6658
- messageDesc(file_raystack_frontier_v1beta1_frontier, 299);
6648
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 297);
6659
6649
 
6660
6650
  /**
6661
6651
  * @generated from message raystack.frontier.v1beta1.CreateProjectResourceRequest
@@ -6684,7 +6674,7 @@ export type CreateProjectResourceRequest = Message<"raystack.frontier.v1beta1.Cr
6684
6674
  * Use `create(CreateProjectResourceRequestSchema)` to create a new message.
6685
6675
  */
6686
6676
  export const CreateProjectResourceRequestSchema: GenMessage<CreateProjectResourceRequest> = /*@__PURE__*/
6687
- messageDesc(file_raystack_frontier_v1beta1_frontier, 300);
6677
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 298);
6688
6678
 
6689
6679
  /**
6690
6680
  * @generated from message raystack.frontier.v1beta1.CreateProjectResourceResponse
@@ -6701,7 +6691,7 @@ export type CreateProjectResourceResponse = Message<"raystack.frontier.v1beta1.C
6701
6691
  * Use `create(CreateProjectResourceResponseSchema)` to create a new message.
6702
6692
  */
6703
6693
  export const CreateProjectResourceResponseSchema: GenMessage<CreateProjectResourceResponse> = /*@__PURE__*/
6704
- messageDesc(file_raystack_frontier_v1beta1_frontier, 301);
6694
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 299);
6705
6695
 
6706
6696
  /**
6707
6697
  * @generated from message raystack.frontier.v1beta1.GetProjectResourceRequest
@@ -6723,7 +6713,7 @@ export type GetProjectResourceRequest = Message<"raystack.frontier.v1beta1.GetPr
6723
6713
  * Use `create(GetProjectResourceRequestSchema)` to create a new message.
6724
6714
  */
6725
6715
  export const GetProjectResourceRequestSchema: GenMessage<GetProjectResourceRequest> = /*@__PURE__*/
6726
- messageDesc(file_raystack_frontier_v1beta1_frontier, 302);
6716
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 300);
6727
6717
 
6728
6718
  /**
6729
6719
  * @generated from message raystack.frontier.v1beta1.GetProjectResourceResponse
@@ -6740,7 +6730,7 @@ export type GetProjectResourceResponse = Message<"raystack.frontier.v1beta1.GetP
6740
6730
  * Use `create(GetProjectResourceResponseSchema)` to create a new message.
6741
6731
  */
6742
6732
  export const GetProjectResourceResponseSchema: GenMessage<GetProjectResourceResponse> = /*@__PURE__*/
6743
- messageDesc(file_raystack_frontier_v1beta1_frontier, 303);
6733
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 301);
6744
6734
 
6745
6735
  /**
6746
6736
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResourceRequest
@@ -6767,7 +6757,7 @@ export type UpdateProjectResourceRequest = Message<"raystack.frontier.v1beta1.Up
6767
6757
  * Use `create(UpdateProjectResourceRequestSchema)` to create a new message.
6768
6758
  */
6769
6759
  export const UpdateProjectResourceRequestSchema: GenMessage<UpdateProjectResourceRequest> = /*@__PURE__*/
6770
- messageDesc(file_raystack_frontier_v1beta1_frontier, 304);
6760
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 302);
6771
6761
 
6772
6762
  /**
6773
6763
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResourceResponse
@@ -6784,7 +6774,7 @@ export type UpdateProjectResourceResponse = Message<"raystack.frontier.v1beta1.U
6784
6774
  * Use `create(UpdateProjectResourceResponseSchema)` to create a new message.
6785
6775
  */
6786
6776
  export const UpdateProjectResourceResponseSchema: GenMessage<UpdateProjectResourceResponse> = /*@__PURE__*/
6787
- messageDesc(file_raystack_frontier_v1beta1_frontier, 305);
6777
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 303);
6788
6778
 
6789
6779
  /**
6790
6780
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResourceRequest
@@ -6806,7 +6796,7 @@ export type DeleteProjectResourceRequest = Message<"raystack.frontier.v1beta1.De
6806
6796
  * Use `create(DeleteProjectResourceRequestSchema)` to create a new message.
6807
6797
  */
6808
6798
  export const DeleteProjectResourceRequestSchema: GenMessage<DeleteProjectResourceRequest> = /*@__PURE__*/
6809
- messageDesc(file_raystack_frontier_v1beta1_frontier, 306);
6799
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 304);
6810
6800
 
6811
6801
  /**
6812
6802
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResourceResponse
@@ -6819,7 +6809,7 @@ export type DeleteProjectResourceResponse = Message<"raystack.frontier.v1beta1.D
6819
6809
  * Use `create(DeleteProjectResourceResponseSchema)` to create a new message.
6820
6810
  */
6821
6811
  export const DeleteProjectResourceResponseSchema: GenMessage<DeleteProjectResourceResponse> = /*@__PURE__*/
6822
- messageDesc(file_raystack_frontier_v1beta1_frontier, 307);
6812
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 305);
6823
6813
 
6824
6814
  /**
6825
6815
  * @generated from message raystack.frontier.v1beta1.CheckResourcePermissionRequest
@@ -6853,7 +6843,7 @@ export type CheckResourcePermissionRequest = Message<"raystack.frontier.v1beta1.
6853
6843
  * Use `create(CheckResourcePermissionRequestSchema)` to create a new message.
6854
6844
  */
6855
6845
  export const CheckResourcePermissionRequestSchema: GenMessage<CheckResourcePermissionRequest> = /*@__PURE__*/
6856
- messageDesc(file_raystack_frontier_v1beta1_frontier, 308);
6846
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 306);
6857
6847
 
6858
6848
  /**
6859
6849
  * @generated from message raystack.frontier.v1beta1.CheckResourcePermissionResponse
@@ -6870,7 +6860,7 @@ export type CheckResourcePermissionResponse = Message<"raystack.frontier.v1beta1
6870
6860
  * Use `create(CheckResourcePermissionResponseSchema)` to create a new message.
6871
6861
  */
6872
6862
  export const CheckResourcePermissionResponseSchema: GenMessage<CheckResourcePermissionResponse> = /*@__PURE__*/
6873
- messageDesc(file_raystack_frontier_v1beta1_frontier, 309);
6863
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 307);
6874
6864
 
6875
6865
  /**
6876
6866
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionRequest
@@ -6887,7 +6877,7 @@ export type BatchCheckPermissionRequest = Message<"raystack.frontier.v1beta1.Bat
6887
6877
  * Use `create(BatchCheckPermissionRequestSchema)` to create a new message.
6888
6878
  */
6889
6879
  export const BatchCheckPermissionRequestSchema: GenMessage<BatchCheckPermissionRequest> = /*@__PURE__*/
6890
- messageDesc(file_raystack_frontier_v1beta1_frontier, 310);
6880
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 308);
6891
6881
 
6892
6882
  /**
6893
6883
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionBody
@@ -6909,7 +6899,7 @@ export type BatchCheckPermissionBody = Message<"raystack.frontier.v1beta1.BatchC
6909
6899
  * Use `create(BatchCheckPermissionBodySchema)` to create a new message.
6910
6900
  */
6911
6901
  export const BatchCheckPermissionBodySchema: GenMessage<BatchCheckPermissionBody> = /*@__PURE__*/
6912
- messageDesc(file_raystack_frontier_v1beta1_frontier, 311);
6902
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 309);
6913
6903
 
6914
6904
  /**
6915
6905
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionResponse
@@ -6926,7 +6916,7 @@ export type BatchCheckPermissionResponse = Message<"raystack.frontier.v1beta1.Ba
6926
6916
  * Use `create(BatchCheckPermissionResponseSchema)` to create a new message.
6927
6917
  */
6928
6918
  export const BatchCheckPermissionResponseSchema: GenMessage<BatchCheckPermissionResponse> = /*@__PURE__*/
6929
- messageDesc(file_raystack_frontier_v1beta1_frontier, 312);
6919
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 310);
6930
6920
 
6931
6921
  /**
6932
6922
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionResponsePair
@@ -6948,7 +6938,7 @@ export type BatchCheckPermissionResponsePair = Message<"raystack.frontier.v1beta
6948
6938
  * Use `create(BatchCheckPermissionResponsePairSchema)` to create a new message.
6949
6939
  */
6950
6940
  export const BatchCheckPermissionResponsePairSchema: GenMessage<BatchCheckPermissionResponsePair> = /*@__PURE__*/
6951
- messageDesc(file_raystack_frontier_v1beta1_frontier, 313);
6941
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 311);
6952
6942
 
6953
6943
  /**
6954
6944
  * @generated from message raystack.frontier.v1beta1.MetaSchemaRequestBody
@@ -6970,7 +6960,7 @@ export type MetaSchemaRequestBody = Message<"raystack.frontier.v1beta1.MetaSchem
6970
6960
  * Use `create(MetaSchemaRequestBodySchema)` to create a new message.
6971
6961
  */
6972
6962
  export const MetaSchemaRequestBodySchema: GenMessage<MetaSchemaRequestBody> = /*@__PURE__*/
6973
- messageDesc(file_raystack_frontier_v1beta1_frontier, 314);
6963
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 312);
6974
6964
 
6975
6965
  /**
6976
6966
  * @generated from message raystack.frontier.v1beta1.CreateMetaSchemaRequest
@@ -6987,7 +6977,7 @@ export type CreateMetaSchemaRequest = Message<"raystack.frontier.v1beta1.CreateM
6987
6977
  * Use `create(CreateMetaSchemaRequestSchema)` to create a new message.
6988
6978
  */
6989
6979
  export const CreateMetaSchemaRequestSchema: GenMessage<CreateMetaSchemaRequest> = /*@__PURE__*/
6990
- messageDesc(file_raystack_frontier_v1beta1_frontier, 315);
6980
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 313);
6991
6981
 
6992
6982
  /**
6993
6983
  * @generated from message raystack.frontier.v1beta1.CreateMetaSchemaResponse
@@ -7004,7 +6994,7 @@ export type CreateMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Create
7004
6994
  * Use `create(CreateMetaSchemaResponseSchema)` to create a new message.
7005
6995
  */
7006
6996
  export const CreateMetaSchemaResponseSchema: GenMessage<CreateMetaSchemaResponse> = /*@__PURE__*/
7007
- messageDesc(file_raystack_frontier_v1beta1_frontier, 316);
6997
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 314);
7008
6998
 
7009
6999
  /**
7010
7000
  * @generated from message raystack.frontier.v1beta1.GetMetaSchemaRequest
@@ -7021,7 +7011,7 @@ export type GetMetaSchemaRequest = Message<"raystack.frontier.v1beta1.GetMetaSch
7021
7011
  * Use `create(GetMetaSchemaRequestSchema)` to create a new message.
7022
7012
  */
7023
7013
  export const GetMetaSchemaRequestSchema: GenMessage<GetMetaSchemaRequest> = /*@__PURE__*/
7024
- messageDesc(file_raystack_frontier_v1beta1_frontier, 317);
7014
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 315);
7025
7015
 
7026
7016
  /**
7027
7017
  * @generated from message raystack.frontier.v1beta1.GetMetaSchemaResponse
@@ -7038,7 +7028,7 @@ export type GetMetaSchemaResponse = Message<"raystack.frontier.v1beta1.GetMetaSc
7038
7028
  * Use `create(GetMetaSchemaResponseSchema)` to create a new message.
7039
7029
  */
7040
7030
  export const GetMetaSchemaResponseSchema: GenMessage<GetMetaSchemaResponse> = /*@__PURE__*/
7041
- messageDesc(file_raystack_frontier_v1beta1_frontier, 318);
7031
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 316);
7042
7032
 
7043
7033
  /**
7044
7034
  * @generated from message raystack.frontier.v1beta1.UpdateMetaSchemaRequest
@@ -7060,7 +7050,7 @@ export type UpdateMetaSchemaRequest = Message<"raystack.frontier.v1beta1.UpdateM
7060
7050
  * Use `create(UpdateMetaSchemaRequestSchema)` to create a new message.
7061
7051
  */
7062
7052
  export const UpdateMetaSchemaRequestSchema: GenMessage<UpdateMetaSchemaRequest> = /*@__PURE__*/
7063
- messageDesc(file_raystack_frontier_v1beta1_frontier, 319);
7053
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 317);
7064
7054
 
7065
7055
  /**
7066
7056
  * @generated from message raystack.frontier.v1beta1.UpdateMetaSchemaResponse
@@ -7077,7 +7067,7 @@ export type UpdateMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Update
7077
7067
  * Use `create(UpdateMetaSchemaResponseSchema)` to create a new message.
7078
7068
  */
7079
7069
  export const UpdateMetaSchemaResponseSchema: GenMessage<UpdateMetaSchemaResponse> = /*@__PURE__*/
7080
- messageDesc(file_raystack_frontier_v1beta1_frontier, 320);
7070
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 318);
7081
7071
 
7082
7072
  /**
7083
7073
  * @generated from message raystack.frontier.v1beta1.DeleteMetaSchemaRequest
@@ -7094,7 +7084,7 @@ export type DeleteMetaSchemaRequest = Message<"raystack.frontier.v1beta1.DeleteM
7094
7084
  * Use `create(DeleteMetaSchemaRequestSchema)` to create a new message.
7095
7085
  */
7096
7086
  export const DeleteMetaSchemaRequestSchema: GenMessage<DeleteMetaSchemaRequest> = /*@__PURE__*/
7097
- messageDesc(file_raystack_frontier_v1beta1_frontier, 321);
7087
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 319);
7098
7088
 
7099
7089
  /**
7100
7090
  * @generated from message raystack.frontier.v1beta1.DeleteMetaSchemaResponse
@@ -7107,7 +7097,7 @@ export type DeleteMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Delete
7107
7097
  * Use `create(DeleteMetaSchemaResponseSchema)` to create a new message.
7108
7098
  */
7109
7099
  export const DeleteMetaSchemaResponseSchema: GenMessage<DeleteMetaSchemaResponse> = /*@__PURE__*/
7110
- messageDesc(file_raystack_frontier_v1beta1_frontier, 322);
7100
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 320);
7111
7101
 
7112
7102
  /**
7113
7103
  * @generated from message raystack.frontier.v1beta1.ListMetaSchemasRequest
@@ -7120,7 +7110,7 @@ export type ListMetaSchemasRequest = Message<"raystack.frontier.v1beta1.ListMeta
7120
7110
  * Use `create(ListMetaSchemasRequestSchema)` to create a new message.
7121
7111
  */
7122
7112
  export const ListMetaSchemasRequestSchema: GenMessage<ListMetaSchemasRequest> = /*@__PURE__*/
7123
- messageDesc(file_raystack_frontier_v1beta1_frontier, 323);
7113
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 321);
7124
7114
 
7125
7115
  /**
7126
7116
  * @generated from message raystack.frontier.v1beta1.ListMetaSchemasResponse
@@ -7137,142 +7127,7 @@ export type ListMetaSchemasResponse = Message<"raystack.frontier.v1beta1.ListMet
7137
7127
  * Use `create(ListMetaSchemasResponseSchema)` to create a new message.
7138
7128
  */
7139
7129
  export const ListMetaSchemasResponseSchema: GenMessage<ListMetaSchemasResponse> = /*@__PURE__*/
7140
- messageDesc(file_raystack_frontier_v1beta1_frontier, 324);
7141
-
7142
- /**
7143
- * @generated from message raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest
7144
- */
7145
- export type ListOrganizationAuditLogsRequest = Message<"raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest"> & {
7146
- /**
7147
- * @generated from field: string org_id = 1;
7148
- */
7149
- orgId: string;
7150
-
7151
- /**
7152
- * @generated from field: string source = 5;
7153
- */
7154
- source: string;
7155
-
7156
- /**
7157
- * @generated from field: string action = 6;
7158
- */
7159
- action: string;
7160
-
7161
- /**
7162
- * @generated from field: bool ignore_system = 7;
7163
- */
7164
- ignoreSystem: boolean;
7165
-
7166
- /**
7167
- * start_time and end_time are inclusive
7168
- *
7169
- * @generated from field: google.protobuf.Timestamp start_time = 10;
7170
- */
7171
- startTime?: Timestamp;
7172
-
7173
- /**
7174
- * @generated from field: google.protobuf.Timestamp end_time = 11;
7175
- */
7176
- endTime?: Timestamp;
7177
- };
7178
-
7179
- /**
7180
- * Describes the message raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest.
7181
- * Use `create(ListOrganizationAuditLogsRequestSchema)` to create a new message.
7182
- */
7183
- export const ListOrganizationAuditLogsRequestSchema: GenMessage<ListOrganizationAuditLogsRequest> = /*@__PURE__*/
7184
- messageDesc(file_raystack_frontier_v1beta1_frontier, 325);
7185
-
7186
- /**
7187
- * @generated from message raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse
7188
- */
7189
- export type ListOrganizationAuditLogsResponse = Message<"raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse"> & {
7190
- /**
7191
- * @generated from field: repeated raystack.frontier.v1beta1.AuditLog logs = 1;
7192
- */
7193
- logs: AuditLog[];
7194
- };
7195
-
7196
- /**
7197
- * Describes the message raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse.
7198
- * Use `create(ListOrganizationAuditLogsResponseSchema)` to create a new message.
7199
- */
7200
- export const ListOrganizationAuditLogsResponseSchema: GenMessage<ListOrganizationAuditLogsResponse> = /*@__PURE__*/
7201
- messageDesc(file_raystack_frontier_v1beta1_frontier, 326);
7202
-
7203
- /**
7204
- * @generated from message raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest
7205
- */
7206
- export type CreateOrganizationAuditLogsRequest = Message<"raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest"> & {
7207
- /**
7208
- * @generated from field: string org_id = 1;
7209
- */
7210
- orgId: string;
7211
-
7212
- /**
7213
- * @generated from field: repeated raystack.frontier.v1beta1.AuditLog logs = 2;
7214
- */
7215
- logs: AuditLog[];
7216
- };
7217
-
7218
- /**
7219
- * Describes the message raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest.
7220
- * Use `create(CreateOrganizationAuditLogsRequestSchema)` to create a new message.
7221
- */
7222
- export const CreateOrganizationAuditLogsRequestSchema: GenMessage<CreateOrganizationAuditLogsRequest> = /*@__PURE__*/
7223
- messageDesc(file_raystack_frontier_v1beta1_frontier, 327);
7224
-
7225
- /**
7226
- * @generated from message raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse
7227
- */
7228
- export type CreateOrganizationAuditLogsResponse = Message<"raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse"> & {
7229
- };
7230
-
7231
- /**
7232
- * Describes the message raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse.
7233
- * Use `create(CreateOrganizationAuditLogsResponseSchema)` to create a new message.
7234
- */
7235
- export const CreateOrganizationAuditLogsResponseSchema: GenMessage<CreateOrganizationAuditLogsResponse> = /*@__PURE__*/
7236
- messageDesc(file_raystack_frontier_v1beta1_frontier, 328);
7237
-
7238
- /**
7239
- * @generated from message raystack.frontier.v1beta1.GetOrganizationAuditLogRequest
7240
- */
7241
- export type GetOrganizationAuditLogRequest = Message<"raystack.frontier.v1beta1.GetOrganizationAuditLogRequest"> & {
7242
- /**
7243
- * @generated from field: string org_id = 1;
7244
- */
7245
- orgId: string;
7246
-
7247
- /**
7248
- * @generated from field: string id = 2;
7249
- */
7250
- id: string;
7251
- };
7252
-
7253
- /**
7254
- * Describes the message raystack.frontier.v1beta1.GetOrganizationAuditLogRequest.
7255
- * Use `create(GetOrganizationAuditLogRequestSchema)` to create a new message.
7256
- */
7257
- export const GetOrganizationAuditLogRequestSchema: GenMessage<GetOrganizationAuditLogRequest> = /*@__PURE__*/
7258
- messageDesc(file_raystack_frontier_v1beta1_frontier, 329);
7259
-
7260
- /**
7261
- * @generated from message raystack.frontier.v1beta1.GetOrganizationAuditLogResponse
7262
- */
7263
- export type GetOrganizationAuditLogResponse = Message<"raystack.frontier.v1beta1.GetOrganizationAuditLogResponse"> & {
7264
- /**
7265
- * @generated from field: raystack.frontier.v1beta1.AuditLog log = 1;
7266
- */
7267
- log?: AuditLog;
7268
- };
7269
-
7270
- /**
7271
- * Describes the message raystack.frontier.v1beta1.GetOrganizationAuditLogResponse.
7272
- * Use `create(GetOrganizationAuditLogResponseSchema)` to create a new message.
7273
- */
7274
- export const GetOrganizationAuditLogResponseSchema: GenMessage<GetOrganizationAuditLogResponse> = /*@__PURE__*/
7275
- messageDesc(file_raystack_frontier_v1beta1_frontier, 330);
7130
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 322);
7276
7131
 
7277
7132
  /**
7278
7133
  * @generated from message raystack.frontier.v1beta1.DescribePreferencesRequest
@@ -7285,7 +7140,7 @@ export type DescribePreferencesRequest = Message<"raystack.frontier.v1beta1.Desc
7285
7140
  * Use `create(DescribePreferencesRequestSchema)` to create a new message.
7286
7141
  */
7287
7142
  export const DescribePreferencesRequestSchema: GenMessage<DescribePreferencesRequest> = /*@__PURE__*/
7288
- messageDesc(file_raystack_frontier_v1beta1_frontier, 331);
7143
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 323);
7289
7144
 
7290
7145
  /**
7291
7146
  * @generated from message raystack.frontier.v1beta1.DescribePreferencesResponse
@@ -7302,7 +7157,7 @@ export type DescribePreferencesResponse = Message<"raystack.frontier.v1beta1.Des
7302
7157
  * Use `create(DescribePreferencesResponseSchema)` to create a new message.
7303
7158
  */
7304
7159
  export const DescribePreferencesResponseSchema: GenMessage<DescribePreferencesResponse> = /*@__PURE__*/
7305
- messageDesc(file_raystack_frontier_v1beta1_frontier, 332);
7160
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 324);
7306
7161
 
7307
7162
  /**
7308
7163
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationPreferencesRequest
@@ -7324,7 +7179,7 @@ export type CreateOrganizationPreferencesRequest = Message<"raystack.frontier.v1
7324
7179
  * Use `create(CreateOrganizationPreferencesRequestSchema)` to create a new message.
7325
7180
  */
7326
7181
  export const CreateOrganizationPreferencesRequestSchema: GenMessage<CreateOrganizationPreferencesRequest> = /*@__PURE__*/
7327
- messageDesc(file_raystack_frontier_v1beta1_frontier, 333);
7182
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 325);
7328
7183
 
7329
7184
  /**
7330
7185
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationPreferencesResponse
@@ -7341,7 +7196,7 @@ export type CreateOrganizationPreferencesResponse = Message<"raystack.frontier.v
7341
7196
  * Use `create(CreateOrganizationPreferencesResponseSchema)` to create a new message.
7342
7197
  */
7343
7198
  export const CreateOrganizationPreferencesResponseSchema: GenMessage<CreateOrganizationPreferencesResponse> = /*@__PURE__*/
7344
- messageDesc(file_raystack_frontier_v1beta1_frontier, 334);
7199
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 326);
7345
7200
 
7346
7201
  /**
7347
7202
  * @generated from message raystack.frontier.v1beta1.ListOrganizationPreferencesRequest
@@ -7358,7 +7213,7 @@ export type ListOrganizationPreferencesRequest = Message<"raystack.frontier.v1be
7358
7213
  * Use `create(ListOrganizationPreferencesRequestSchema)` to create a new message.
7359
7214
  */
7360
7215
  export const ListOrganizationPreferencesRequestSchema: GenMessage<ListOrganizationPreferencesRequest> = /*@__PURE__*/
7361
- messageDesc(file_raystack_frontier_v1beta1_frontier, 335);
7216
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 327);
7362
7217
 
7363
7218
  /**
7364
7219
  * @generated from message raystack.frontier.v1beta1.ListOrganizationPreferencesResponse
@@ -7375,7 +7230,7 @@ export type ListOrganizationPreferencesResponse = Message<"raystack.frontier.v1b
7375
7230
  * Use `create(ListOrganizationPreferencesResponseSchema)` to create a new message.
7376
7231
  */
7377
7232
  export const ListOrganizationPreferencesResponseSchema: GenMessage<ListOrganizationPreferencesResponse> = /*@__PURE__*/
7378
- messageDesc(file_raystack_frontier_v1beta1_frontier, 336);
7233
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 328);
7379
7234
 
7380
7235
  /**
7381
7236
  * @generated from message raystack.frontier.v1beta1.CreateProjectPreferencesRequest
@@ -7397,7 +7252,7 @@ export type CreateProjectPreferencesRequest = Message<"raystack.frontier.v1beta1
7397
7252
  * Use `create(CreateProjectPreferencesRequestSchema)` to create a new message.
7398
7253
  */
7399
7254
  export const CreateProjectPreferencesRequestSchema: GenMessage<CreateProjectPreferencesRequest> = /*@__PURE__*/
7400
- messageDesc(file_raystack_frontier_v1beta1_frontier, 337);
7255
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 329);
7401
7256
 
7402
7257
  /**
7403
7258
  * @generated from message raystack.frontier.v1beta1.CreateProjectPreferencesResponse
@@ -7414,7 +7269,7 @@ export type CreateProjectPreferencesResponse = Message<"raystack.frontier.v1beta
7414
7269
  * Use `create(CreateProjectPreferencesResponseSchema)` to create a new message.
7415
7270
  */
7416
7271
  export const CreateProjectPreferencesResponseSchema: GenMessage<CreateProjectPreferencesResponse> = /*@__PURE__*/
7417
- messageDesc(file_raystack_frontier_v1beta1_frontier, 338);
7272
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 330);
7418
7273
 
7419
7274
  /**
7420
7275
  * @generated from message raystack.frontier.v1beta1.ListProjectPreferencesRequest
@@ -7431,7 +7286,7 @@ export type ListProjectPreferencesRequest = Message<"raystack.frontier.v1beta1.L
7431
7286
  * Use `create(ListProjectPreferencesRequestSchema)` to create a new message.
7432
7287
  */
7433
7288
  export const ListProjectPreferencesRequestSchema: GenMessage<ListProjectPreferencesRequest> = /*@__PURE__*/
7434
- messageDesc(file_raystack_frontier_v1beta1_frontier, 339);
7289
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 331);
7435
7290
 
7436
7291
  /**
7437
7292
  * @generated from message raystack.frontier.v1beta1.ListProjectPreferencesResponse
@@ -7448,7 +7303,7 @@ export type ListProjectPreferencesResponse = Message<"raystack.frontier.v1beta1.
7448
7303
  * Use `create(ListProjectPreferencesResponseSchema)` to create a new message.
7449
7304
  */
7450
7305
  export const ListProjectPreferencesResponseSchema: GenMessage<ListProjectPreferencesResponse> = /*@__PURE__*/
7451
- messageDesc(file_raystack_frontier_v1beta1_frontier, 340);
7306
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 332);
7452
7307
 
7453
7308
  /**
7454
7309
  * @generated from message raystack.frontier.v1beta1.CreateGroupPreferencesRequest
@@ -7470,7 +7325,7 @@ export type CreateGroupPreferencesRequest = Message<"raystack.frontier.v1beta1.C
7470
7325
  * Use `create(CreateGroupPreferencesRequestSchema)` to create a new message.
7471
7326
  */
7472
7327
  export const CreateGroupPreferencesRequestSchema: GenMessage<CreateGroupPreferencesRequest> = /*@__PURE__*/
7473
- messageDesc(file_raystack_frontier_v1beta1_frontier, 341);
7328
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 333);
7474
7329
 
7475
7330
  /**
7476
7331
  * @generated from message raystack.frontier.v1beta1.CreateGroupPreferencesResponse
@@ -7487,7 +7342,7 @@ export type CreateGroupPreferencesResponse = Message<"raystack.frontier.v1beta1.
7487
7342
  * Use `create(CreateGroupPreferencesResponseSchema)` to create a new message.
7488
7343
  */
7489
7344
  export const CreateGroupPreferencesResponseSchema: GenMessage<CreateGroupPreferencesResponse> = /*@__PURE__*/
7490
- messageDesc(file_raystack_frontier_v1beta1_frontier, 342);
7345
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 334);
7491
7346
 
7492
7347
  /**
7493
7348
  * @generated from message raystack.frontier.v1beta1.ListGroupPreferencesRequest
@@ -7504,7 +7359,7 @@ export type ListGroupPreferencesRequest = Message<"raystack.frontier.v1beta1.Lis
7504
7359
  * Use `create(ListGroupPreferencesRequestSchema)` to create a new message.
7505
7360
  */
7506
7361
  export const ListGroupPreferencesRequestSchema: GenMessage<ListGroupPreferencesRequest> = /*@__PURE__*/
7507
- messageDesc(file_raystack_frontier_v1beta1_frontier, 343);
7362
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 335);
7508
7363
 
7509
7364
  /**
7510
7365
  * @generated from message raystack.frontier.v1beta1.ListGroupPreferencesResponse
@@ -7521,7 +7376,7 @@ export type ListGroupPreferencesResponse = Message<"raystack.frontier.v1beta1.Li
7521
7376
  * Use `create(ListGroupPreferencesResponseSchema)` to create a new message.
7522
7377
  */
7523
7378
  export const ListGroupPreferencesResponseSchema: GenMessage<ListGroupPreferencesResponse> = /*@__PURE__*/
7524
- messageDesc(file_raystack_frontier_v1beta1_frontier, 344);
7379
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 336);
7525
7380
 
7526
7381
  /**
7527
7382
  * @generated from message raystack.frontier.v1beta1.CreateUserPreferencesRequest
@@ -7543,7 +7398,7 @@ export type CreateUserPreferencesRequest = Message<"raystack.frontier.v1beta1.Cr
7543
7398
  * Use `create(CreateUserPreferencesRequestSchema)` to create a new message.
7544
7399
  */
7545
7400
  export const CreateUserPreferencesRequestSchema: GenMessage<CreateUserPreferencesRequest> = /*@__PURE__*/
7546
- messageDesc(file_raystack_frontier_v1beta1_frontier, 345);
7401
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 337);
7547
7402
 
7548
7403
  /**
7549
7404
  * @generated from message raystack.frontier.v1beta1.CreateUserPreferencesResponse
@@ -7560,7 +7415,7 @@ export type CreateUserPreferencesResponse = Message<"raystack.frontier.v1beta1.C
7560
7415
  * Use `create(CreateUserPreferencesResponseSchema)` to create a new message.
7561
7416
  */
7562
7417
  export const CreateUserPreferencesResponseSchema: GenMessage<CreateUserPreferencesResponse> = /*@__PURE__*/
7563
- messageDesc(file_raystack_frontier_v1beta1_frontier, 346);
7418
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 338);
7564
7419
 
7565
7420
  /**
7566
7421
  * @generated from message raystack.frontier.v1beta1.ListUserPreferencesRequest
@@ -7577,7 +7432,7 @@ export type ListUserPreferencesRequest = Message<"raystack.frontier.v1beta1.List
7577
7432
  * Use `create(ListUserPreferencesRequestSchema)` to create a new message.
7578
7433
  */
7579
7434
  export const ListUserPreferencesRequestSchema: GenMessage<ListUserPreferencesRequest> = /*@__PURE__*/
7580
- messageDesc(file_raystack_frontier_v1beta1_frontier, 347);
7435
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 339);
7581
7436
 
7582
7437
  /**
7583
7438
  * @generated from message raystack.frontier.v1beta1.ListUserPreferencesResponse
@@ -7594,7 +7449,7 @@ export type ListUserPreferencesResponse = Message<"raystack.frontier.v1beta1.Lis
7594
7449
  * Use `create(ListUserPreferencesResponseSchema)` to create a new message.
7595
7450
  */
7596
7451
  export const ListUserPreferencesResponseSchema: GenMessage<ListUserPreferencesResponse> = /*@__PURE__*/
7597
- messageDesc(file_raystack_frontier_v1beta1_frontier, 348);
7452
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 340);
7598
7453
 
7599
7454
  /**
7600
7455
  * @generated from message raystack.frontier.v1beta1.CreateCurrentUserPreferencesRequest
@@ -7611,7 +7466,7 @@ export type CreateCurrentUserPreferencesRequest = Message<"raystack.frontier.v1b
7611
7466
  * Use `create(CreateCurrentUserPreferencesRequestSchema)` to create a new message.
7612
7467
  */
7613
7468
  export const CreateCurrentUserPreferencesRequestSchema: GenMessage<CreateCurrentUserPreferencesRequest> = /*@__PURE__*/
7614
- messageDesc(file_raystack_frontier_v1beta1_frontier, 349);
7469
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 341);
7615
7470
 
7616
7471
  /**
7617
7472
  * @generated from message raystack.frontier.v1beta1.CreateCurrentUserPreferencesResponse
@@ -7628,7 +7483,7 @@ export type CreateCurrentUserPreferencesResponse = Message<"raystack.frontier.v1
7628
7483
  * Use `create(CreateCurrentUserPreferencesResponseSchema)` to create a new message.
7629
7484
  */
7630
7485
  export const CreateCurrentUserPreferencesResponseSchema: GenMessage<CreateCurrentUserPreferencesResponse> = /*@__PURE__*/
7631
- messageDesc(file_raystack_frontier_v1beta1_frontier, 350);
7486
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 342);
7632
7487
 
7633
7488
  /**
7634
7489
  * @generated from message raystack.frontier.v1beta1.ListCurrentUserPreferencesRequest
@@ -7641,7 +7496,7 @@ export type ListCurrentUserPreferencesRequest = Message<"raystack.frontier.v1bet
7641
7496
  * Use `create(ListCurrentUserPreferencesRequestSchema)` to create a new message.
7642
7497
  */
7643
7498
  export const ListCurrentUserPreferencesRequestSchema: GenMessage<ListCurrentUserPreferencesRequest> = /*@__PURE__*/
7644
- messageDesc(file_raystack_frontier_v1beta1_frontier, 351);
7499
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 343);
7645
7500
 
7646
7501
  /**
7647
7502
  * @generated from message raystack.frontier.v1beta1.ListCurrentUserPreferencesResponse
@@ -7658,7 +7513,7 @@ export type ListCurrentUserPreferencesResponse = Message<"raystack.frontier.v1be
7658
7513
  * Use `create(ListCurrentUserPreferencesResponseSchema)` to create a new message.
7659
7514
  */
7660
7515
  export const ListCurrentUserPreferencesResponseSchema: GenMessage<ListCurrentUserPreferencesResponse> = /*@__PURE__*/
7661
- messageDesc(file_raystack_frontier_v1beta1_frontier, 352);
7516
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 344);
7662
7517
 
7663
7518
  /**
7664
7519
  * @generated from message raystack.frontier.v1beta1.BillingWebhookCallbackRequest
@@ -7680,7 +7535,7 @@ export type BillingWebhookCallbackRequest = Message<"raystack.frontier.v1beta1.B
7680
7535
  * Use `create(BillingWebhookCallbackRequestSchema)` to create a new message.
7681
7536
  */
7682
7537
  export const BillingWebhookCallbackRequestSchema: GenMessage<BillingWebhookCallbackRequest> = /*@__PURE__*/
7683
- messageDesc(file_raystack_frontier_v1beta1_frontier, 353);
7538
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 345);
7684
7539
 
7685
7540
  /**
7686
7541
  * @generated from message raystack.frontier.v1beta1.BillingWebhookCallbackResponse
@@ -7693,7 +7548,7 @@ export type BillingWebhookCallbackResponse = Message<"raystack.frontier.v1beta1.
7693
7548
  * Use `create(BillingWebhookCallbackResponseSchema)` to create a new message.
7694
7549
  */
7695
7550
  export const BillingWebhookCallbackResponseSchema: GenMessage<BillingWebhookCallbackResponse> = /*@__PURE__*/
7696
- messageDesc(file_raystack_frontier_v1beta1_frontier, 354);
7551
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 346);
7697
7552
 
7698
7553
  /**
7699
7554
  * @generated from message raystack.frontier.v1beta1.CreateProspectPublicRequest
@@ -7735,7 +7590,7 @@ export type CreateProspectPublicRequest = Message<"raystack.frontier.v1beta1.Cre
7735
7590
  * Use `create(CreateProspectPublicRequestSchema)` to create a new message.
7736
7591
  */
7737
7592
  export const CreateProspectPublicRequestSchema: GenMessage<CreateProspectPublicRequest> = /*@__PURE__*/
7738
- messageDesc(file_raystack_frontier_v1beta1_frontier, 355);
7593
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 347);
7739
7594
 
7740
7595
  /**
7741
7596
  * @generated from message raystack.frontier.v1beta1.CreateProspectPublicResponse
@@ -7748,7 +7603,7 @@ export type CreateProspectPublicResponse = Message<"raystack.frontier.v1beta1.Cr
7748
7603
  * Use `create(CreateProspectPublicResponseSchema)` to create a new message.
7749
7604
  */
7750
7605
  export const CreateProspectPublicResponseSchema: GenMessage<CreateProspectPublicResponse> = /*@__PURE__*/
7751
- messageDesc(file_raystack_frontier_v1beta1_frontier, 356);
7606
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 348);
7752
7607
 
7753
7608
  /**
7754
7609
  * @generated from message raystack.frontier.v1beta1.ListSessionsRequest
@@ -7761,7 +7616,7 @@ export type ListSessionsRequest = Message<"raystack.frontier.v1beta1.ListSession
7761
7616
  * Use `create(ListSessionsRequestSchema)` to create a new message.
7762
7617
  */
7763
7618
  export const ListSessionsRequestSchema: GenMessage<ListSessionsRequest> = /*@__PURE__*/
7764
- messageDesc(file_raystack_frontier_v1beta1_frontier, 357);
7619
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 349);
7765
7620
 
7766
7621
  /**
7767
7622
  * @generated from message raystack.frontier.v1beta1.ListSessionsResponse
@@ -7778,7 +7633,7 @@ export type ListSessionsResponse = Message<"raystack.frontier.v1beta1.ListSessio
7778
7633
  * Use `create(ListSessionsResponseSchema)` to create a new message.
7779
7634
  */
7780
7635
  export const ListSessionsResponseSchema: GenMessage<ListSessionsResponse> = /*@__PURE__*/
7781
- messageDesc(file_raystack_frontier_v1beta1_frontier, 358);
7636
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 350);
7782
7637
 
7783
7638
  /**
7784
7639
  * @generated from message raystack.frontier.v1beta1.RevokeSessionRequest
@@ -7795,7 +7650,7 @@ export type RevokeSessionRequest = Message<"raystack.frontier.v1beta1.RevokeSess
7795
7650
  * Use `create(RevokeSessionRequestSchema)` to create a new message.
7796
7651
  */
7797
7652
  export const RevokeSessionRequestSchema: GenMessage<RevokeSessionRequest> = /*@__PURE__*/
7798
- messageDesc(file_raystack_frontier_v1beta1_frontier, 359);
7653
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 351);
7799
7654
 
7800
7655
  /**
7801
7656
  * @generated from message raystack.frontier.v1beta1.RevokeSessionResponse
@@ -7808,7 +7663,7 @@ export type RevokeSessionResponse = Message<"raystack.frontier.v1beta1.RevokeSes
7808
7663
  * Use `create(RevokeSessionResponseSchema)` to create a new message.
7809
7664
  */
7810
7665
  export const RevokeSessionResponseSchema: GenMessage<RevokeSessionResponse> = /*@__PURE__*/
7811
- messageDesc(file_raystack_frontier_v1beta1_frontier, 360);
7666
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 352);
7812
7667
 
7813
7668
  /**
7814
7669
  * @generated from message raystack.frontier.v1beta1.PingUserSessionRequest
@@ -7821,12 +7676,16 @@ export type PingUserSessionRequest = Message<"raystack.frontier.v1beta1.PingUser
7821
7676
  * Use `create(PingUserSessionRequestSchema)` to create a new message.
7822
7677
  */
7823
7678
  export const PingUserSessionRequestSchema: GenMessage<PingUserSessionRequest> = /*@__PURE__*/
7824
- messageDesc(file_raystack_frontier_v1beta1_frontier, 361);
7679
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 353);
7825
7680
 
7826
7681
  /**
7827
7682
  * @generated from message raystack.frontier.v1beta1.PingUserSessionResponse
7828
7683
  */
7829
7684
  export type PingUserSessionResponse = Message<"raystack.frontier.v1beta1.PingUserSessionResponse"> & {
7685
+ /**
7686
+ * @generated from field: raystack.frontier.v1beta1.Session.Meta metadata = 1;
7687
+ */
7688
+ metadata?: Session_Meta;
7830
7689
  };
7831
7690
 
7832
7691
  /**
@@ -7834,7 +7693,7 @@ export type PingUserSessionResponse = Message<"raystack.frontier.v1beta1.PingUse
7834
7693
  * Use `create(PingUserSessionResponseSchema)` to create a new message.
7835
7694
  */
7836
7695
  export const PingUserSessionResponseSchema: GenMessage<PingUserSessionResponse> = /*@__PURE__*/
7837
- messageDesc(file_raystack_frontier_v1beta1_frontier, 362);
7696
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 354);
7838
7697
 
7839
7698
  /**
7840
7699
  * @generated from message raystack.frontier.v1beta1.CreateAuditRecordRequest
@@ -7903,7 +7762,7 @@ export type CreateAuditRecordRequest = Message<"raystack.frontier.v1beta1.Create
7903
7762
  * Use `create(CreateAuditRecordRequestSchema)` to create a new message.
7904
7763
  */
7905
7764
  export const CreateAuditRecordRequestSchema: GenMessage<CreateAuditRecordRequest> = /*@__PURE__*/
7906
- messageDesc(file_raystack_frontier_v1beta1_frontier, 363);
7765
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 355);
7907
7766
 
7908
7767
  /**
7909
7768
  * @generated from message raystack.frontier.v1beta1.CreateAuditRecordResponse
@@ -7920,7 +7779,7 @@ export type CreateAuditRecordResponse = Message<"raystack.frontier.v1beta1.Creat
7920
7779
  * Use `create(CreateAuditRecordResponseSchema)` to create a new message.
7921
7780
  */
7922
7781
  export const CreateAuditRecordResponseSchema: GenMessage<CreateAuditRecordResponse> = /*@__PURE__*/
7923
- messageDesc(file_raystack_frontier_v1beta1_frontier, 364);
7782
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 356);
7924
7783
 
7925
7784
  /**
7926
7785
  * @generated from service raystack.frontier.v1beta1.FrontierService
@@ -8898,35 +8757,6 @@ export const FrontierService: GenService<{
8898
8757
  input: typeof DeleteMetaSchemaRequestSchema;
8899
8758
  output: typeof DeleteMetaSchemaResponseSchema;
8900
8759
  },
8901
- /**
8902
- * Audit logs
8903
- *
8904
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListOrganizationAuditLogs
8905
- * @deprecated
8906
- */
8907
- listOrganizationAuditLogs: {
8908
- methodKind: "unary";
8909
- input: typeof ListOrganizationAuditLogsRequestSchema;
8910
- output: typeof ListOrganizationAuditLogsResponseSchema;
8911
- },
8912
- /**
8913
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateOrganizationAuditLogs
8914
- * @deprecated
8915
- */
8916
- createOrganizationAuditLogs: {
8917
- methodKind: "unary";
8918
- input: typeof CreateOrganizationAuditLogsRequestSchema;
8919
- output: typeof CreateOrganizationAuditLogsResponseSchema;
8920
- },
8921
- /**
8922
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetOrganizationAuditLog
8923
- * @deprecated
8924
- */
8925
- getOrganizationAuditLog: {
8926
- methodKind: "unary";
8927
- input: typeof GetOrganizationAuditLogRequestSchema;
8928
- output: typeof GetOrganizationAuditLogResponseSchema;
8929
- },
8930
8760
  /**
8931
8761
  * DescribePreferences list down all the supported preferences of entities
8932
8762
  *