@raystack/proton 0.1.0-2dbafa5913a214851fdc4f1beefbe27c4a6de55a → 0.1.0-434b8aec0c95625a6633f4e890be311d3e0fefef

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.
@@ -11,7 +11,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
11
11
  import type { HttpBodySchema } from "../../../google/api/httpbody_pb";
12
12
  import { file_google_api_httpbody } from "../../../google/api/httpbody_pb";
13
13
  import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
14
- import type { BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Subscription, User, Webhook } from "./models_pb";
14
+ import type { AuditRecord, BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLExportRequest, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Session, Subscription, User, Webhook } from "./models_pb";
15
15
  import { file_raystack_frontier_v1beta1_models } from "./models_pb";
16
16
  import { file_validate_validate } from "../../../validate/validate_pb";
17
17
  import type { JsonObject, Message } from "@bufbuild/protobuf";
@@ -20,7 +20,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
20
20
  * Describes the file raystack/frontier/v1beta1/admin.proto.
21
21
  */
22
22
  export const file_raystack_frontier_v1beta1_admin: GenFile = /*@__PURE__*/
23
- fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLqAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keSKPAQoZRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbhIzCgdwcm9kdWN0GAIgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0It4BChZMaXN0QWxsSW52b2ljZXNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRJmCglwYWdlX3NpemUYAiABKAVCU5JBRzJFVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgNTAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAMgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIoQBChdMaXN0QWxsSW52b2ljZXNSZXNwb25zZRI0CghpbnZvaWNlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZRIzCgVjb3VudBgCIAEoBUIkkkEhMh9Ub3RhbCBudW1iZXIgb2YgcmVjb3JkcyBwcmVzZW50IhkKF0dlbmVyYXRlSW52b2ljZXNSZXF1ZXN0IhoKGEdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSIvCh1MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkiZQoeTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IpUBChlSZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEh8KCmJpbGxpbmdfaWQYAyABKAlCC/pCCHIGsAEB0AEBEhoKCHVzYWdlX2lkGAQgASgJQgj6QgVyA7ABARIXCgZhbW91bnQYBSABKANCB/pCBCICKAAiHAoaUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2UirwIKEldlYmhvb2tSZXF1ZXN0Qm9keRIVCgN1cmwYASABKAlCCPpCBXIDiAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhkKEXN1YnNjcmliZWRfZXZlbnRzGAMgAygJEksKB2hlYWRlcnMYBCADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keS5IZWFkZXJzRW50cnkSKgoFc3RhdGUYBSABKAlCG/pCGHIWUgdlbmFibGVkUghkaXNhYmxlZNABARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwoUQ3JlYXRlV2ViaG9va1JlcXVlc3QSOwoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFUNyZWF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIosBChRVcGRhdGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byB1cGRhdGUu4kEBAvpCBXIDsAEBEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keSJMChVVcGRhdGVXZWJob29rUmVzcG9uc2USMwoHd2ViaG9vaxgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9vayJOChREZWxldGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byBkZWxldGUu4kEBAvpCBXIDsAEBIhcKFURlbGV0ZVdlYmhvb2tSZXNwb25zZSIVChNMaXN0V2ViaG9va3NSZXF1ZXN0IkwKFExpc3RXZWJob29rc1Jlc3BvbnNlEjQKCHdlYmhvb2tzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rImkKIVVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCmNyZWRpdF9taW4YAyABKAMiJAoiVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSJUCh9HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0EhgKBm9yZ19pZBgBIAEoCUII+kIFcgOwAQESFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBIksKIEdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlEhIKCmNyZWRpdF9taW4YASABKAMSEwoLZHVlX2luX2RheXMYAiABKAMiiQEKIlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAxIcCgtkdWVfaW5fZGF5cxgEIAEoA0IH+kIEIgIoACIlCiNVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSJJChlTZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAgSDAoEbGluaxgDIAEoCSJSChpTZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJiChpTZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMiHQobTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0ImUKHExpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2USRQoRb3JnYW5pemF0aW9uc19reWMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyK1BQobU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlEmAKDW9yZ2FuaXphdGlvbnMYASADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZS5Pcmdhbml6YXRpb25SZXN1bHQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqnAwoST3JnYW5pemF0aW9uUmVzdWx0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhdGUYBiABKAkSDgoGYXZhdGFyGAcgASgJEhIKCmNyZWF0ZWRfYnkYCCABKAkSEQoJcGxhbl9uYW1lGAkgASgJEi4KDHBheW1lbnRfbW9kZRgKIAEoCUIY+kIVchNSB3ByZXBhaWRSCHBvc3RwYWlkEj0KGXN1YnNjcmlwdGlvbl9jeWNsZV9lbmRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB2NvdW50cnkYDCABKAkSGgoSc3Vic2NyaXB0aW9uX3N0YXRlGA4gASgJEhUKDXBsYW5faW50ZXJ2YWwYDyABKAkSDwoHcGxhbl9pZBgQIAEoCSJMChRMaXN0UHJvc3BlY3RzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLbAQoVTGlzdFByb3NwZWN0c1Jlc3BvbnNlEjYKCXByb3NwZWN0cxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSJHChJHZXRQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiTAoTR2V0UHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiswYKFVVwZGF0ZVByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABARI+CgRuYW1lGAIgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWVXBkYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiSgoVRGVsZXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBIhgKFkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UigAYKFUNyZWF0ZVByb3NwZWN0UmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWQ3JlYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiawoeU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IoAECh9TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEl4KCW9yZ191c2VycxgBIAMoCzJLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Pcmdhbml6YXRpb25Vc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua8AEKEE9yZ2FuaXphdGlvblVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIxCg1vcmdfam9pbmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRIXCg9vcmdhbml6YXRpb25faWQYCyABKAkiNQoeRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIm4KIVNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLaAwoiU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRJnCgxvcmdfcHJvamVjdHMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2UuT3JnYW5pemF0aW9uUHJvamVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGr4BChNPcmdhbml6YXRpb25Qcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMbWVtYmVyX2NvdW50GAUgASgDEhAKCHVzZXJfaWRzGAYgAygJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgIIAEoCSI4CiFFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZgoZU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKpAwoaU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2USWAoNcHJvamVjdF91c2VycxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UuUHJvamVjdFVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqkAQoLUHJvamVjdFVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRISCgpwcm9qZWN0X2lkGAsgASgJIm4KIVNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLNAwoiU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZRJwChVvcmdhbml6YXRpb25faW52b2ljZXMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2UuT3JnYW5pemF0aW9uSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqgBChNPcmdhbml6YXRpb25JbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJImwKH1NlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi3QMKIFNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlEmoKE29yZ2FuaXphdGlvbl90b2tlbnMYASADKAsyTS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblRva2VuEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UawAEKEU9yZ2FuaXphdGlvblRva2VuEg4KBmFtb3VudBgBIAEoAxIMCgR0eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3VzZXJfaWQYBCABKAkSEgoKdXNlcl90aXRsZRgFIAEoCRITCgt1c2VyX2F2YXRhchgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYCCABKAkiNgofRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJ8Ci9TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLsAwowU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEpsBCiRvcmdhbml6YXRpb25fc2VydmljZXVzZXJfY3JlZGVudGlhbHMYASADKAsybS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZS5Pcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqNAQohT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsEg0KBXRpdGxlGAEgASgJEhkKEXNlcnZpY2V1c2VyX3RpdGxlGAIgASgJEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgEIAEoCSJKChJTZWFyY2hVc2Vyc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi0QEKE1NlYXJjaFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSIUChJFeHBvcnRVc2Vyc1JlcXVlc3QifAoeU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0EiQKAmlkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiigQKH1NlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2USZwoSdXNlcl9vcmdhbml6YXRpb25zGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlLlVzZXJPcmdhbml6YXRpb24SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrxAQoQVXNlck9yZ2FuaXphdGlvbhIOCgZvcmdfaWQYASABKAkSEQoJb3JnX3RpdGxlGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJEhIKCm9yZ19hdmF0YXIYBCABKAkSFQoNcHJvamVjdF9jb3VudBgFIAEoAxISCgpyb2xlX25hbWVzGAYgAygJEhMKC3JvbGVfdGl0bGVzGAcgAygJEhAKCHJvbGVfaWRzGAggAygJEjEKDW9yZ19qb2luZWRfb24YCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3VzZXJfaWQYCiABKAkipQEKGVNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QSKQoHdXNlcl9pZBgBIAEoCUIYkkEJMgd1c2VyIElE4kEBAvpCBXIDsAEBEicKBm9yZ19pZBgCIAEoCUIXkkEIMgZvcmcgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAyABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi/QMKGlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlElgKDXVzZXJfcHJvamVjdHMYASADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlLlVzZXJQcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua+AEKC1VzZXJQcm9qZWN0EhIKCnByb2plY3RfaWQYASABKAkSFQoNcHJvamVjdF90aXRsZRgCIAEoCRIUCgxwcm9qZWN0X25hbWUYAyABKAkSNgoScHJvamVjdF9jcmVhdGVkX29uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1c2VyX25hbWVzGAUgAygJEhMKC3VzZXJfdGl0bGVzGAYgAygJEhAKCHVzZXJfaWRzGAcgAygJEhQKDHVzZXJfYXZhdGFycxgIIAMoCRIOCgZvcmdfaWQYCSABKAkSDwoHdXNlcl9pZBgKIAEoCSLiDAoeQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EmkKBGJvZHkYASABKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdC5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEa1AsKF09yZ2FuaXphdGlvblJlcXVlc3RCb2R5EvsBCgRuYW1lGAEgASgJQuwBkkHNATLKAVRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLjxici8+KkV4YW1wbGU6KmAiZnJvbnRpZXItb3JnMS1hY21lImDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQSsgEKBXRpdGxlGAIgASgJQqIBkkGeATKbAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnYW5pemF0aW9uLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5Ljxici8+ICpFeGFtcGxlKjogYCJBY21lIEluYyJgEukDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCvQOSQbkDMrYDTWV0YWRhdGEgb2JqZWN0IGZvciBvcmdhbml6YXRpb25zIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmdhbml6YXRpb24gc3VjaCBhcyBsYWJlbHMsIGRlc2NyaXB0aW9ucyBldGMuIFRoZSBkZWZhdWx0IE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLiA8YnIvPipFeGFtcGxlKjpgeyJsYWJlbHMiOiB7ImtleSI6ICJ2YWx1ZSJ9LCAiZGVzY3JpcHRpb24iOiAiT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uIn1gEvACCgZhdmF0YXIYBCABKAlC3wKSQY8CMtMBVGhlIGF2YXRhciBpcyBiYXNlNjQgZW5jb2RlZCBpbWFnZSBkYXRhIG9mIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiBUaGUgaW1hZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiAyMDBLQi4gU2hvdWxkIGZvbGxvdyB0aGUgcmVnZXggcGF0dGVybiBgXmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyRgLko3ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBIvpCSXJHGJChDzI+XmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyTQAQESpgEKD29yZ19vd25lcl9lbWFpbBgFIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABImAKH0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USPQoMb3JnYW5pemF0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iTQoVU2VhcmNoSW52b2ljZXNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrUDChZTZWFyY2hJbnZvaWNlc1Jlc3BvbnNlEksKCGludm9pY2VzGAEgAygLMjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlLkludm9pY2USSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrBAQoHSW52b2ljZRIKCgJpZBgBIAEoCRIOCgZhbW91bnQYAiABKAMSEAoIY3VycmVuY3kYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMaW52b2ljZV9saW5rGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgHIAEoCRIQCghvcmdfbmFtZRgIIAEoCRIRCglvcmdfdGl0bGUYCSABKAkicgolU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCK7BAomU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USfQoab3JnYW5pemF0aW9uX3NlcnZpY2VfdXNlcnMYASADKAsyWS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaMgoHUHJvamVjdBIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRuYW1lGAMgASgJGtEBChdPcmdhbml6YXRpb25TZXJ2aWNlVXNlchIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIOCgZvcmdfaWQYAyABKAkSWwoIcHJvamVjdHMYBCADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLlByb2plY3QSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiHAoaR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QiigEKG0dldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEjwKDHNlcnZpY2VfdXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIy7HkKDEFkbWluU2VydmljZRKvAgoMTGlzdEFsbFVzZXJzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXNwb25zZSK9AZJBnQEKBFVzZXISDkxpc3QgYWxsIHVzZXJzGoQBTGlzdHMgYWxsIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUugtPkkwIWEhQvdjFiZXRhMS9hZG1pbi91c2VycxKbAgoTTGlzdEFsbFNlcnZpY2VVc2VycxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFNlcnZpY2VVc2Vyc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZSKUAZJBbgoEVXNlchIWTGlzdCBhbGwgc2VydmljZSB1c2VycxpOTGlzdHMgYWxsIHRoZSBzZXJ2aWNlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIdEhsvdjFiZXRhMS9hZG1pbi9zZXJ2aWNldXNlcnMSnAIKCkxpc3RHcm91cHMSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cHNSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBzUmVzcG9uc2UisAGSQY8BCgVHcm91cBIPTGlzdCBhbGwgZ3JvdXBzGnVMaXN0cyBhbGwgdGhlIGdyb3VwcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uIGFuZCBzdGF0ZS6C0+STAhcSFS92MWJldGExL2FkbWluL2dyb3VwcxKzAgoUTGlzdEFsbE9yZ2FuaXphdGlvbnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZSKpAZJBgQEKDE9yZ2FuaXphdGlvbhIWTGlzdCBhbGwgb3JnYW5pemF0aW9ucxpZTGlzdHMgYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VyIGFuZCBzdGF0ZS6C0+STAh4SHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMS8AEKF0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiXpJBMQoMT3JnYW5pemF0aW9uEiFDcmVhdGUgb3JnYW5pemF0aW9uIGFzIHN1cGVyYWRtaW6C0+STAiQiHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnM6BGJvZHkSsgIKE1NlYXJjaE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25zUmVzcG9uc2UiqwGSQXYKDE9yZ2FuaXphdGlvbhIUU2VhcmNoIG9yZ2FuaXphdGlvbnMaUFNlYXJjaCBvcmdhbml6YXRpb24gYmFzZWQgb24gb3JnIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzgtPkkwIsIiMvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3NlYXJjaDoFcXVlcnkS+wEKF1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiaZJBKQoMT3JnYW5pemF0aW9uEhlTZWFyY2ggb3JnYW5pemF0aW9uIHVzZXJzgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMvc2VhcmNoOgVxdWVyeRLdAQoSU2VhcmNoUHJvamVjdFVzZXJzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZSJakkEfCgdQcm9qZWN0EhRTZWFyY2ggUHJvamVjdCB1c2Vyc4LT5JMCMiIpL3YxYmV0YTEvYWRtaW4vcHJvamVjdHMve2lkfS91c2Vycy9zZWFyY2g6BXF1ZXJ5EooCChpTZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIm+SQSwKDE9yZ2FuaXphdGlvbhIcU2VhcmNoIG9yZ2FuaXphdGlvbiBwcm9qZWN0c4LT5JMCOiIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL3NlYXJjaDoFcXVlcnkSigIKGlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2Uib5JBLAoMT3JnYW5pemF0aW9uEhxTZWFyY2ggb3JnYW5pemF0aW9uIGludm9pY2VzgtPkkwI6IjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vaW52b2ljZXMvc2VhcmNoOgVxdWVyeRKAAgoYU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXNwb25zZSJrkkEqCgxPcmdhbml6YXRpb24SGlNlYXJjaCBvcmdhbml6YXRpb24gdG9rZW5zgtPkkwI4Ii8vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdG9rZW5zL3NlYXJjaDoFcXVlcnkS1AIKKFNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHMSSi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0GksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UijgGSQTwKDE9yZ2FuaXphdGlvbhIsU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHOC0+STAkkiQC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9zZXJ2aWNldXNlcl9jcmVkZW50aWFscy9zZWFyY2g6BXF1ZXJ5Ep8CCh5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1JlcXVlc3QaQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlIniSQTEKDE9yZ2FuaXphdGlvbhIhU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwI+IjUvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzL3NlYXJjaDoFcXVlcnkSjQIKE0V4cG9ydE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvbnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKmAZJBeAoMT3JnYW5pemF0aW9uEhRFeHBvcnQgb3JnYW5pemF0aW9ucxpIRXhwb3J0IG9yZ2FuaXphdGlvbiB3aXRoIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCJRIjL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9leHBvcnQwARKIAgoXRXhwb3J0T3JnYW5pemF0aW9uVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkimQGSQWAKDE9yZ2FuaXphdGlvbhIZRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VycxorRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VyIHRoZWlyIHJvbGUgZGV0YWlsczoIdGV4dC9jc3aC0+STAjASLi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS91c2Vycy9leHBvcnQwARKTAgoaRXhwb3J0T3JnYW5pemF0aW9uUHJvamVjdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkingGSQWIKDE9yZ2FuaXphdGlvbhIcRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cxoqRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cyB3aXRoIHVzZXIgSURzOgh0ZXh0L2NzdoLT5JMCMxIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL2V4cG9ydDABEvsBChhFeHBvcnRPcmdhbml6YXRpb25Ub2tlbnMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IooBkkFQCgxPcmdhbml6YXRpb24SGkV4cG9ydCBvcmdhbml6YXRpb24gdG9rZW5zGhpFeHBvcnQgb3JnYW5pemF0aW9uIHRva2VuczoIdGV4dC9jc3aC0+STAjESLy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS90b2tlbnMvZXhwb3J0MAES3QEKC0V4cG9ydFVzZXJzEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRVc2Vyc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IoYBkkFgCgRVc2VyEgxFeHBvcnQgdXNlcnMaQEV4cG9ydCB1c2VyIHdpdGggZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHM6CHRleHQvY3N2gtPkkwIdEhsvdjFiZXRhMS9hZG1pbi91c2Vycy9leHBvcnQwARLXAQoLU2VhcmNoVXNlcnMSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJzUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlcnNSZXNwb25zZSJpkkE8CgRVc2VyEgxTZWFyY2ggdXNlcnMaJlNlYXJjaCB1c2VycyBiYXNlZCBvbiB0aGVpciBwcm9wZXJ0aWVzgtPkkwIkIhsvdjFiZXRhMS9hZG1pbi91c2Vycy9zZWFyY2g6BXF1ZXJ5EvQBChdTZWFyY2hVc2VyT3JnYW5pemF0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlImKSQSIKBFVzZXISGlNlYXJjaCB1c2VycyBvcmdhbml6YXRpb25zgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMvc2VhcmNoOgVxdWVyeRKCAgoSU2VhcmNoVXNlclByb2plY3RzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXNwb25zZSJ/kkEvCgRVc2VyEidTZWFyY2ggcHJvamVjdHMgb2YgYSB1c2VyIHdpdGhpbiBhbiBvcmeC0+STAkciPi92MWJldGExL2FkbWluL3VzZXJzL3t1c2VyX2lkfS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3Byb2plY3RzOgVxdWVyeRKtAgoSU2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKpAZJBcgoPT3JnYW5pemF0aW9uS3ljEiZTZXQgS1lDIGluZm9ybWF0aW9uIG9mIGFuIG9yZ2FuaXphdGlvbho3U2V0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCLhopL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWM6ASoSmwIKFExpc3RPcmdhbml6YXRpb25zS3ljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0t5Y1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2UikQGSQWYKD09yZ2FuaXphdGlvbkt5YxIpTGlzdCBLWUMgaW5mb3JtYXRpb24gb2YgYWxsIG9yZ2FuaXphdGlvbnMaKExpc3QgS1lDIGluZm9ybWF0aW9uIG9mIGFsbCBvcmdhbml6YXRpb26C0+STAiISIC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMva3ljEqoCCgxMaXN0UHJvamVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1Jlc3BvbnNlIrgBkkGVAQoHUHJvamVjdBIRTGlzdCBhbGwgcHJvamVjdHMad0xpc3RzIGFsbCB0aGUgcHJvamVjdHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbiBhbmQgc3RhdGUugtPkkwIZEhcvdjFiZXRhMS9hZG1pbi9wcm9qZWN0cxK1AQoNTGlzdFJlbGF0aW9ucxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlbGF0aW9uc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZWxhdGlvbnNSZXNwb25zZSJBkkEeCghSZWxhdGlvbhISTGlzdCBhbGwgcmVsYXRpb25zgtPkkwIaEhgvdjFiZXRhMS9hZG1pbi9yZWxhdGlvbnMSxQIKDUxpc3RSZXNvdXJjZXMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZXNvdXJjZXNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVzb3VyY2VzUmVzcG9uc2Ui0AGSQawBCghSZXNvdXJjZRISTGlzdCBhbGwgcmVzb3VyY2VzGosBTGlzdHMgYWxsIHRoZSByZXNvdXJjZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBhbmQgbmFtZXNwYWNlLoLT5JMCGhIYL3YxYmV0YTEvYWRtaW4vcmVzb3VyY2VzEpgCCgpDcmVhdGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUm9sZVJlc3BvbnNlIqwBkkGMAQoEUm9sZRIUQ3JlYXRlIHBsYXRmb3JtIHJvbGUabkNyZWF0ZXMgYSBwbGF0Zm9ybSB3aWRlIHJvbGUuIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIWIg4vdjFiZXRhMS9yb2xlczoEYm9keRLVAQoKVXBkYXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVJvbGVSZXNwb25zZSJqkkFGCgRSb2xlEgtVcGRhdGUgcm9sZRoxVXBkYXRlIGEgcm9sZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zLoLT5JMCGxoTL3YxYmV0YTEvcm9sZXMve2lkfToEYm9keRLcAQoKRGVsZXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJvbGVSZXNwb25zZSJxkkFTCgRSb2xlEhREZWxldGUgcGxhdGZvcm0gcm9sZRo1RGVsZXRlIGEgcGxhdGZvcm0gd2lkZSByb2xlIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucy6C0+STAhUqEy92MWJldGExL3JvbGVzL3tpZH0SsQIKEENyZWF0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQZXJtaXNzaW9uUmVzcG9uc2UiswGSQZABCgpQZXJtaXNzaW9uEhpDcmVhdGUgcGxhdGZvcm0gcGVybWlzc2lvbhpmQ3JlYXRlcyBhIHBlcm1pc3Npb24uIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIZIhQvdjFiZXRhMS9wZXJtaXNzaW9uczoBKhK/AgoQVXBkYXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBlcm1pc3Npb25SZXNwb25zZSLBAZJBlgEKClBlcm1pc3Npb24SGlVwZGF0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9uGmxVcGRhdGVzIGEgcGVybWlzc2lvbiBieSBJRC4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAiEaGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH06BGJvZHkSyQEKEERlbGV0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiTJJBKAoKUGVybWlzc2lvbhIaRGVsZXRlIHBsYXRmb3JtIHBlcm1pc3Npb26C0+STAhsqGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0SsAIKD0xpc3RQcmVmZXJlbmNlcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVzcG9uc2UitQGSQZUBCgpQcmVmZXJlbmNlEhlMaXN0IHBsYXRmb3JtIHByZWZlcmVuY2VzGmxSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcHJlZmVyZW5jZXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhYSFC92MWJldGExL3ByZWZlcmVuY2VzEvsCChFDcmVhdGVQcmVmZXJlbmNlcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJlZmVyZW5jZXNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlIvoBkkHXAQoKUHJlZmVyZW5jZRIbQ3JlYXRlIHBsYXRmb3JtIHByZWZlcmVuY2VzGqsBQ3JlYXRlIG5ldyBwbGF0Zm9ybSBwcmVmZXJlbmNlcy4gVGhlIHBsYXRmb3JtIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcGxhdGZvcm0gYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIZIhQvdjFiZXRhMS9wcmVmZXJlbmNlczoBKhKDAwogQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb24SQi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBpDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZSLVAZJBsgEKBUF1dGh6EgVDaGVjaxqhAVJldHVybnMgdHJ1ZSBpZiBhIHByaW5jaXBhbCBoYXMgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIGEgcmVzb3VyY2UgYW5kIGZhbHNlIG90aGVyd2lzZS48YnIvPiBOb3RlIHRoZSBwcmluY2lwYWwgY2FuIGJlIGEgdXNlciwgZ3JvdXAgb3IgYSBzZXJ2aWNlIGFjY291bnQugtPkkwIZIhQvdjFiZXRhMS9hZG1pbi9jaGVjazoBKhLgAQoPQWRkUGxhdGZvcm1Vc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXNwb25zZSJmkkE7CghQbGF0Zm9ybRIRQWRkIHBsYXRmb3JtIHVzZXIaHEFkZHMgYSB1c2VyIHRvIHRoZSBwbGF0Zm9ybS6C0+STAiIiHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzOgEqEvMBChFMaXN0UGxhdGZvcm1Vc2VycxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBsYXRmb3JtVXNlcnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhdGZvcm1Vc2Vyc1Jlc3BvbnNlInOSQUsKCFBsYXRmb3JtEhNMaXN0IHBsYXRmb3JtIHVzZXJzGipMaXN0cyBhbGwgdGhlIHVzZXJzIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybS6C0+STAh8SHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzEvgBChJSZW1vdmVQbGF0Zm9ybVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlc3BvbnNlInWSQUMKCFBsYXRmb3JtEhRSZW1vdmUgcGxhdGZvcm0gdXNlchohUmVtb3ZlcyBhIHVzZXIgZnJvbSB0aGUgcGxhdGZvcm0ugtPkkwIpIiQvdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2Vycy9yZW1vdmU6ASoSwAMKEURlbGVnYXRlZENoZWNrb3V0EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxlZ2F0ZWRDaGVja291dFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGVnYXRlZENoZWNrb3V0UmVzcG9uc2UivwKSQa0BCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhp9Q2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50IG1hbnVhbGx5LiBJdCBieXBhc3NlcyBiaWxsaW5nIGVuZ2luZS6C0+STAocBIkQvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo8IjcvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErECCg9MaXN0QWxsSW52b2ljZXMSMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1JlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1Jlc3BvbnNlIrYBkkGLAQoHSW52b2ljZRIRTGlzdCBhbGwgaW52b2ljZXMabUxpc3RzIGFsbCB0aGUgaW52b2ljZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbi6C0+STAiESHy92MWJldGExL2FkbWluL2JpbGxpbmcvaW52b2ljZXMSpwIKEEdlbmVyYXRlSW52b2ljZXMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdlbmVyYXRlSW52b2ljZXNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZW5lcmF0ZUludm9pY2VzUmVzcG9uc2UiqQGSQXMKB0ludm9pY2USGlRyaWdnZXIgaW52b2ljZSBnZW5lcmF0aW9uGkxUcmlnZ2VycyB0aGUgY3JlYXRpb24gb2YgY3JlZGl0IG92ZXJkcmFmdCBpbnZvaWNlcyBmb3IgYWxsIGJpbGxpbmcgYWNjb3VudHMugtPkkwItIigvdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2ludm9pY2VzL2dlbmVyYXRlOgEqEtYCChZMaXN0QWxsQmlsbGluZ0FjY291bnRzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIsYBkkGbAQoHQmlsbGluZxIZTGlzdCBhbGwgYmlsbGluZyBhY2NvdW50cxp1TGlzdHMgYWxsIHRoZSBiaWxsaW5nIGFjY291bnRzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24ugtPkkwIhEh8vdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2FjY291bnRzEuQCChJSZXZlcnRCaWxsaW5nVXNhZ2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlc3BvbnNlIuABkkFMCgdCaWxsaW5nEhRSZXZlcnQgYmlsbGluZyB1c2FnZRorUmV2ZXJ0IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCigEiUi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdXNhZ2Uve3VzYWdlX2lkfS9yZXZlcnQ6ASpaMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlcy9yZXZlcnQ6ASoSyQEKDUNyZWF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVXZWJob29rUmVzcG9uc2UiVZJBMAoHV2ViaG9vaxIOQ3JlYXRlIHdlYmhvb2saFUNyZWF0ZSBhIG5ldyB3ZWJob29rLoLT5JMCHCIXL3YxYmV0YTEvYWRtaW4vd2ViaG9va3M6ASoSygEKDVVwZGF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVXZWJob29rUmVzcG9uc2UiVpJBLAoHV2ViaG9vaxIOVXBkYXRlIHdlYmhvb2saEVVwZGF0ZSBhIHdlYmhvb2sugtPkkwIhGhwvdjFiZXRhMS9hZG1pbi93ZWJob29rcy97aWR9OgEqEscBCg1EZWxldGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlV2ViaG9va1Jlc3BvbnNlIlOSQSwKB1dlYmhvb2sSDkRlbGV0ZSB3ZWJob29rGhFEZWxldGUgYSB3ZWJob29rLoLT5JMCHiocL3YxYmV0YTEvYWRtaW4vd2ViaG9va3Mve2lkfRK/AQoMTGlzdFdlYmhvb2tzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXNwb25zZSJOkkEsCgdXZWJob29rEg1MaXN0IHdlYmhvb2tzGhJMaXN0IGFsbCB3ZWJob29rcy6C0+STAhkSFy92MWJldGExL2FkbWluL3dlYmhvb2tzErACChpVcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1Jlc3BvbnNlIpQBiAIBkkFKCgdCaWxsaW5nEh1VcGRhdGUgYmlsbGluZyBhY2NvdW50IGxpbWl0cxoeVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBsaW1pdHMuWAGC0+STAj4aOS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2xpbWl0czoBKhKzAgoYR2V0QmlsbGluZ0FjY291bnREZXRhaWxzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSKdAZJBWAoHQmlsbGluZxIbR2V0IGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzGjBHZXQgYmlsbGluZyBhY2NvdW50IGRldGFpbHMgdGhhdCBjYW4gYmUgdXBkYXRlZC6C0+STAjwSOi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2RldGFpbHMSsQIKG1VwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlscxI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2UikgGSQUoKB0JpbGxpbmcSHlVwZGF0ZSBiaWxsaW5nIGFjY291bnQgZGV0YWlscxofVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzLoLT5JMCPxo6L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGV0YWlsczoBKhLnAQoOQ3JlYXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RSZXNwb25zZSJwkkFKCghQcm9zcGVjdBIPQ3JlYXRlIHByb3NwZWN0Gi1DcmVhdGUgcHJvc3BlY3QgZm9yIGdpdmVuIGVtYWlsIGFuZCBhY3Rpdml0eS6C0+STAh0iGC92MWJldGExL2FkbWluL3Byb3NwZWN0czoBKhL8AQoNTGlzdFByb3NwZWN0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb3NwZWN0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9zcGVjdHNSZXNwb25zZSKHAZJBWAoIUHJvc3BlY3QSDkxpc3QgcHJvc3BlY3RzGjxMaXN0IHByb3NwZWN0cyBhbmQgc3VwcG9ydHMgZmlsdGVycywgc29ydGluZyBhbmQgcGFnaW5hdGlvbi6C0+STAiYiHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy9saXN0OgVxdWVyeRLCAQoLR2V0UHJvc3BlY3QSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb3NwZWN0UmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvc3BlY3RSZXNwb25zZSJUkkEsCghQcm9zcGVjdBIMR2V0IHByb3NwZWN0GhJHZXQgcHJvc3BlY3QgYnkgSUSC0+STAh8SHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtsBCg5VcGRhdGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9zcGVjdFJlc3BvbnNlImSSQTkKCFByb3NwZWN0Eg9VcGRhdGUgcHJvc3BlY3QaHFVwZGF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAiIaHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9OgEqEtgBCg5EZWxldGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9zcGVjdFJlc3BvbnNlImGSQTkKCFByb3NwZWN0Eg9EZWxldGUgcHJvc3BlY3QaHERlbGV0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAh8qHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtoBCg5TZWFyY2hJbnZvaWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoSW52b2ljZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlImOSQTMKB2ludm9pY2USKFNlYXJjaCBpbnZvaWNlcyBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbnOC0+STAiciHi92MWJldGExL2FkbWluL2ludm9pY2VzL3NlYXJjaDoFcXVlcnkStAIKE0dldEN1cnJlbnRBZG1pblVzZXISNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRBZG1pblVzZXJSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50QWRtaW5Vc2VyUmVzcG9uc2UirQGSQYgBCgRVc2VyEhZHZXQgY3VycmVudCBhZG1pbiB1c2VyGmhSZXR1cm5zIHRoZSBjdXJyZW50IGF1dGhlbnRpY2F0ZWQgYWRtaW4gdXNlciBwcm9maWxlLiBSZXR1cm5zIDQwMyBGb3JiaWRkZW4gaWYgdGhlIHVzZXIgaXMgbm90IGFuIGFkbWluLoLT5JMCGxIZL3YxYmV0YTEvYWRtaW4vdXNlcnMvc2VsZkLwDgojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgA4S/gYKG0Zyb250aWVyIEFkbWluaXN0cmF0aW9uIEFQSRLPBVRoZSBGcm9udGllciBBUElzIGFkaGVyZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBhbHNvIGtub3duIGFzIFN3YWdnZXIsIHdoaWNoIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIGFwcHJvYWNoIGZvciBkZXNpZ25pbmcsIGRvY3VtZW50aW5nLCBhbmQgY29uc3VtaW5nIFJFU1RmdWwgQVBJcy4gV2l0aCBPcGVuQVBJLCB5b3UgZ2FpbiBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIEFQSSBlbmRwb2ludHMsIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlcywgYW5kIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgc3VwcG9ydGVkIGJ5IHRoZSBGcm9udGllciBBUElzLiBCeSBsZXZlcmFnaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGRldmVsb3BlcnMgY2FuIGVhc2lseSBleHBsb3JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBGcm9udGllciBBUElzIHVzaW5nIGEgdmFyaWV0eSBvZiB0b29scyBhbmQgbGlicmFyaWVzLiBUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGVuYWJsZXMgYXV0b21hdGljIGNvZGUgZ2VuZXJhdGlvbiwgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24sIGFuZCBzZWFtbGVzcyBpbnRlZ3JhdGlvbiB3aXRoIEFQSSB0ZXN0aW5nIGZyYW1ld29ya3MsIG1ha2luZyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIGludGVncmF0ZSBGcm9udGllciBpbnRvIHlvdXIgZXhpc3RpbmcgYXBwbGljYXRpb25zIGFuZCB3b3JrZmxvd3MuIkAKE1JheXN0YWNrIEZvdW5kYXRpb24SFWh0dHBzOi8vcmF5c3RhY2sub3JnLxoSaGVsbG9AcmF5c3RhY2sub3JnKkQKCkFwYWNoZSAyLjASNmh0dHBzOi8vZ2l0aHViLmNvbS9yYXlzdGFjay9mcm9udGllci9ibG9iL21haW4vTElDRU5TRTIFMC4yLjAaDjEyNy4wLjAuMTo3NDAwKgEBMhBhcHBsaWNhdGlvbi9qc29uOhBhcHBsaWNhdGlvbi9qc29uUjwKAzIwMBI1ChtPSyAtIEEgc3VjY2Vzc2Z1bCByZXNwb25zZS4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSaQoDNDAwEmIKSEJhZCBSZXF1ZXN0IC0gVGhlIHJlcXVlc3Qgd2FzIG1hbGZvcm1lZCBvciBjb250YWluZWQgaW52YWxpZCBwYXJhbWV0ZXJzLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JKCgM0MDESQwopVW5hdXRob3JpemVkIC0gQXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSYQoDNDAzEloKQEZvcmJpZGRlbiAtIFVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2USFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSUQoDNDA0EkoKME5vdCBGb3VuZCAtIFRoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1J1CgM1MDASbgpUSW50ZXJuYWwgU2VydmVyIEVycm9yLiBSZXR1cm5lZCB3aGVuIHRoZXJlcyBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCBGcm9udGllciBzZXJ2ZXIuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzWqgBCk4KBUJhc2ljEkUIARI3dXNlIENsaWVudCBJRCBhcyB1c2VybmFtZSBhbmQgQ2xpZW50IFNlY3JldCBhcyBwYXNzd29yZBoGQmFzaWMgIAIKVgoGQmVhcmVyEkwIAxI9QWNjZXNzIHRva2VuIG9yIEpXVCB0b2tlbiwgcHJlZml4ZWQgYnkgQmVhcmVyOiBCZWFyZXIgPHRva2VuPhoHQmVhcmVyICACYgkKBwoFQmFzaWNiCgoICgZCZWFyZXJqBgoEVXNlcmoHCgVHcm91cGoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoKCghSZWxhdGlvbmoKCghSZXNvdXJjZWoICgZQb2xpY3lqBgoEUm9sZWoMCgpQZXJtaXNzaW9uYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
23
+ fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLqAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keSKPAQoZRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbhIzCgdwcm9kdWN0GAIgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0It4BChZMaXN0QWxsSW52b2ljZXNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRJmCglwYWdlX3NpemUYAiABKAVCU5JBRzJFVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgNTAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAMgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIoQBChdMaXN0QWxsSW52b2ljZXNSZXNwb25zZRI0CghpbnZvaWNlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZRIzCgVjb3VudBgCIAEoBUIkkkEhMh9Ub3RhbCBudW1iZXIgb2YgcmVjb3JkcyBwcmVzZW50IhkKF0dlbmVyYXRlSW52b2ljZXNSZXF1ZXN0IhoKGEdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSIvCh1MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkiZQoeTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IpUBChlSZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEh8KCmJpbGxpbmdfaWQYAyABKAlCC/pCCHIGsAEB0AEBEhoKCHVzYWdlX2lkGAQgASgJQgj6QgVyA7ABARIXCgZhbW91bnQYBSABKANCB/pCBCICKAAiHAoaUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2UirwIKEldlYmhvb2tSZXF1ZXN0Qm9keRIVCgN1cmwYASABKAlCCPpCBXIDiAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhkKEXN1YnNjcmliZWRfZXZlbnRzGAMgAygJEksKB2hlYWRlcnMYBCADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keS5IZWFkZXJzRW50cnkSKgoFc3RhdGUYBSABKAlCG/pCGHIWUgdlbmFibGVkUghkaXNhYmxlZNABARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwoUQ3JlYXRlV2ViaG9va1JlcXVlc3QSOwoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFUNyZWF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIosBChRVcGRhdGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byB1cGRhdGUu4kEBAvpCBXIDsAEBEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keSJMChVVcGRhdGVXZWJob29rUmVzcG9uc2USMwoHd2ViaG9vaxgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9vayJOChREZWxldGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byBkZWxldGUu4kEBAvpCBXIDsAEBIhcKFURlbGV0ZVdlYmhvb2tSZXNwb25zZSIVChNMaXN0V2ViaG9va3NSZXF1ZXN0IkwKFExpc3RXZWJob29rc1Jlc3BvbnNlEjQKCHdlYmhvb2tzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rImkKIVVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCmNyZWRpdF9taW4YAyABKAMiJAoiVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSJUCh9HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0EhgKBm9yZ19pZBgBIAEoCUII+kIFcgOwAQESFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBIksKIEdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlEhIKCmNyZWRpdF9taW4YASABKAMSEwoLZHVlX2luX2RheXMYAiABKAMiiQEKIlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAxIcCgtkdWVfaW5fZGF5cxgEIAEoA0IH+kIEIgIoACIlCiNVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSJJChlTZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAgSDAoEbGluaxgDIAEoCSJSChpTZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJiChpTZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMiHQobTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0ImUKHExpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2USRQoRb3JnYW5pemF0aW9uc19reWMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyK1BQobU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlEmAKDW9yZ2FuaXphdGlvbnMYASADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZS5Pcmdhbml6YXRpb25SZXN1bHQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqnAwoST3JnYW5pemF0aW9uUmVzdWx0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhdGUYBiABKAkSDgoGYXZhdGFyGAcgASgJEhIKCmNyZWF0ZWRfYnkYCCABKAkSEQoJcGxhbl9uYW1lGAkgASgJEi4KDHBheW1lbnRfbW9kZRgKIAEoCUIY+kIVchNSB3ByZXBhaWRSCHBvc3RwYWlkEj0KGXN1YnNjcmlwdGlvbl9jeWNsZV9lbmRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB2NvdW50cnkYDCABKAkSGgoSc3Vic2NyaXB0aW9uX3N0YXRlGA4gASgJEhUKDXBsYW5faW50ZXJ2YWwYDyABKAkSDwoHcGxhbl9pZBgQIAEoCSJMChRMaXN0UHJvc3BlY3RzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLbAQoVTGlzdFByb3NwZWN0c1Jlc3BvbnNlEjYKCXByb3NwZWN0cxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSJHChJHZXRQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiTAoTR2V0UHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiswYKFVVwZGF0ZVByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABARI+CgRuYW1lGAIgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWVXBkYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiSgoVRGVsZXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBIhgKFkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UigAYKFUNyZWF0ZVByb3NwZWN0UmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWQ3JlYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiawoeU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IoAECh9TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEl4KCW9yZ191c2VycxgBIAMoCzJLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Pcmdhbml6YXRpb25Vc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua8AEKEE9yZ2FuaXphdGlvblVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIxCg1vcmdfam9pbmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRIXCg9vcmdhbml6YXRpb25faWQYCyABKAkiNQoeRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIm4KIVNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLaAwoiU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRJnCgxvcmdfcHJvamVjdHMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2UuT3JnYW5pemF0aW9uUHJvamVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGr4BChNPcmdhbml6YXRpb25Qcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMbWVtYmVyX2NvdW50GAUgASgDEhAKCHVzZXJfaWRzGAYgAygJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgIIAEoCSI4CiFFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZgoZU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKpAwoaU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2USWAoNcHJvamVjdF91c2VycxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UuUHJvamVjdFVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqkAQoLUHJvamVjdFVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRISCgpwcm9qZWN0X2lkGAsgASgJIm4KIVNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLNAwoiU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZRJwChVvcmdhbml6YXRpb25faW52b2ljZXMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2UuT3JnYW5pemF0aW9uSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqgBChNPcmdhbml6YXRpb25JbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJImwKH1NlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi3QMKIFNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlEmoKE29yZ2FuaXphdGlvbl90b2tlbnMYASADKAsyTS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblRva2VuEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UawAEKEU9yZ2FuaXphdGlvblRva2VuEg4KBmFtb3VudBgBIAEoAxIMCgR0eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3VzZXJfaWQYBCABKAkSEgoKdXNlcl90aXRsZRgFIAEoCRITCgt1c2VyX2F2YXRhchgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYCCABKAkiNgofRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJ8Ci9TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLsAwowU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEpsBCiRvcmdhbml6YXRpb25fc2VydmljZXVzZXJfY3JlZGVudGlhbHMYASADKAsybS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZS5Pcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqNAQohT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsEg0KBXRpdGxlGAEgASgJEhkKEXNlcnZpY2V1c2VyX3RpdGxlGAIgASgJEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgEIAEoCSJKChJTZWFyY2hVc2Vyc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi0QEKE1NlYXJjaFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSIUChJFeHBvcnRVc2Vyc1JlcXVlc3QifAoeU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0EiQKAmlkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiigQKH1NlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2USZwoSdXNlcl9vcmdhbml6YXRpb25zGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlLlVzZXJPcmdhbml6YXRpb24SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrxAQoQVXNlck9yZ2FuaXphdGlvbhIOCgZvcmdfaWQYASABKAkSEQoJb3JnX3RpdGxlGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJEhIKCm9yZ19hdmF0YXIYBCABKAkSFQoNcHJvamVjdF9jb3VudBgFIAEoAxISCgpyb2xlX25hbWVzGAYgAygJEhMKC3JvbGVfdGl0bGVzGAcgAygJEhAKCHJvbGVfaWRzGAggAygJEjEKDW9yZ19qb2luZWRfb24YCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3VzZXJfaWQYCiABKAkipQEKGVNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QSKQoHdXNlcl9pZBgBIAEoCUIYkkEJMgd1c2VyIElE4kEBAvpCBXIDsAEBEicKBm9yZ19pZBgCIAEoCUIXkkEIMgZvcmcgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAyABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi/QMKGlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlElgKDXVzZXJfcHJvamVjdHMYASADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlLlVzZXJQcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua+AEKC1VzZXJQcm9qZWN0EhIKCnByb2plY3RfaWQYASABKAkSFQoNcHJvamVjdF90aXRsZRgCIAEoCRIUCgxwcm9qZWN0X25hbWUYAyABKAkSNgoScHJvamVjdF9jcmVhdGVkX29uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1c2VyX25hbWVzGAUgAygJEhMKC3VzZXJfdGl0bGVzGAYgAygJEhAKCHVzZXJfaWRzGAcgAygJEhQKDHVzZXJfYXZhdGFycxgIIAMoCRIOCgZvcmdfaWQYCSABKAkSDwoHdXNlcl9pZBgKIAEoCSLiDAoeQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EmkKBGJvZHkYASABKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdC5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEa1AsKF09yZ2FuaXphdGlvblJlcXVlc3RCb2R5EvsBCgRuYW1lGAEgASgJQuwBkkHNATLKAVRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLjxici8+KkV4YW1wbGU6KmAiZnJvbnRpZXItb3JnMS1hY21lImDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQSsgEKBXRpdGxlGAIgASgJQqIBkkGeATKbAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnYW5pemF0aW9uLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5Ljxici8+ICpFeGFtcGxlKjogYCJBY21lIEluYyJgEukDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCvQOSQbkDMrYDTWV0YWRhdGEgb2JqZWN0IGZvciBvcmdhbml6YXRpb25zIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmdhbml6YXRpb24gc3VjaCBhcyBsYWJlbHMsIGRlc2NyaXB0aW9ucyBldGMuIFRoZSBkZWZhdWx0IE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLiA8YnIvPipFeGFtcGxlKjpgeyJsYWJlbHMiOiB7ImtleSI6ICJ2YWx1ZSJ9LCAiZGVzY3JpcHRpb24iOiAiT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uIn1gEvACCgZhdmF0YXIYBCABKAlC3wKSQY8CMtMBVGhlIGF2YXRhciBpcyBiYXNlNjQgZW5jb2RlZCBpbWFnZSBkYXRhIG9mIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiBUaGUgaW1hZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiAyMDBLQi4gU2hvdWxkIGZvbGxvdyB0aGUgcmVnZXggcGF0dGVybiBgXmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyRgLko3ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBIvpCSXJHGJChDzI+XmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyTQAQESpgEKD29yZ19vd25lcl9lbWFpbBgFIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABImAKH0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USPQoMb3JnYW5pemF0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iTQoVU2VhcmNoSW52b2ljZXNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrUDChZTZWFyY2hJbnZvaWNlc1Jlc3BvbnNlEksKCGludm9pY2VzGAEgAygLMjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlLkludm9pY2USSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrBAQoHSW52b2ljZRIKCgJpZBgBIAEoCRIOCgZhbW91bnQYAiABKAMSEAoIY3VycmVuY3kYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMaW52b2ljZV9saW5rGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgHIAEoCRIQCghvcmdfbmFtZRgIIAEoCRIRCglvcmdfdGl0bGUYCSABKAkicgolU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCK7BAomU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USfQoab3JnYW5pemF0aW9uX3NlcnZpY2VfdXNlcnMYASADKAsyWS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaMgoHUHJvamVjdBIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRuYW1lGAMgASgJGtEBChdPcmdhbml6YXRpb25TZXJ2aWNlVXNlchIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIOCgZvcmdfaWQYAyABKAkSWwoIcHJvamVjdHMYBCADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLlByb2plY3QSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiHAoaR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QiigEKG0dldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEjwKDHNlcnZpY2VfdXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIiOAoXTGlzdFVzZXJTZXNzaW9uc1JlcXVlc3QSHQoHdXNlcl9pZBgBIAEoCUIM4kEBAvpCBXIDsAEBIlAKGExpc3RVc2VyU2Vzc2lvbnNSZXNwb25zZRI0CghzZXNzaW9ucxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2Vzc2lvbiJCChhSZXZva2VVc2VyU2Vzc2lvblJlcXVlc3QSIAoKc2Vzc2lvbl9pZBgCIAEoCUIM4kEBAvpCBXIDsAEBSgQIARACIhsKGVJldm9rZVVzZXJTZXNzaW9uUmVzcG9uc2UiTwoXTGlzdEF1ZGl0UmVjb3Jkc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiVwoZRXhwb3J0QXVkaXRSZWNvcmRzUmVxdWVzdBI6CgVxdWVyeRgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMRXhwb3J0UmVxdWVzdCLlAQoYTGlzdEF1ZGl0UmVjb3Jkc1Jlc3BvbnNlEj0KDWF1ZGl0X3JlY29yZHMYASADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Uy030KDEFkbWluU2VydmljZRKvAgoMTGlzdEFsbFVzZXJzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXNwb25zZSK9AZJBnQEKBFVzZXISDkxpc3QgYWxsIHVzZXJzGoQBTGlzdHMgYWxsIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUugtPkkwIWEhQvdjFiZXRhMS9hZG1pbi91c2VycxKbAgoTTGlzdEFsbFNlcnZpY2VVc2VycxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFNlcnZpY2VVc2Vyc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZSKUAZJBbgoEVXNlchIWTGlzdCBhbGwgc2VydmljZSB1c2VycxpOTGlzdHMgYWxsIHRoZSBzZXJ2aWNlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIdEhsvdjFiZXRhMS9hZG1pbi9zZXJ2aWNldXNlcnMSnAIKCkxpc3RHcm91cHMSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cHNSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBzUmVzcG9uc2UisAGSQY8BCgVHcm91cBIPTGlzdCBhbGwgZ3JvdXBzGnVMaXN0cyBhbGwgdGhlIGdyb3VwcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uIGFuZCBzdGF0ZS6C0+STAhcSFS92MWJldGExL2FkbWluL2dyb3VwcxKzAgoUTGlzdEFsbE9yZ2FuaXphdGlvbnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZSKpAZJBgQEKDE9yZ2FuaXphdGlvbhIWTGlzdCBhbGwgb3JnYW5pemF0aW9ucxpZTGlzdHMgYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VyIGFuZCBzdGF0ZS6C0+STAh4SHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMS8AEKF0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiXpJBMQoMT3JnYW5pemF0aW9uEiFDcmVhdGUgb3JnYW5pemF0aW9uIGFzIHN1cGVyYWRtaW6C0+STAiQiHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnM6BGJvZHkSsgIKE1NlYXJjaE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25zUmVzcG9uc2UiqwGSQXYKDE9yZ2FuaXphdGlvbhIUU2VhcmNoIG9yZ2FuaXphdGlvbnMaUFNlYXJjaCBvcmdhbml6YXRpb24gYmFzZWQgb24gb3JnIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzgtPkkwIsIiMvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3NlYXJjaDoFcXVlcnkS+wEKF1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiaZJBKQoMT3JnYW5pemF0aW9uEhlTZWFyY2ggb3JnYW5pemF0aW9uIHVzZXJzgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMvc2VhcmNoOgVxdWVyeRLdAQoSU2VhcmNoUHJvamVjdFVzZXJzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZSJakkEfCgdQcm9qZWN0EhRTZWFyY2ggUHJvamVjdCB1c2Vyc4LT5JMCMiIpL3YxYmV0YTEvYWRtaW4vcHJvamVjdHMve2lkfS91c2Vycy9zZWFyY2g6BXF1ZXJ5EooCChpTZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIm+SQSwKDE9yZ2FuaXphdGlvbhIcU2VhcmNoIG9yZ2FuaXphdGlvbiBwcm9qZWN0c4LT5JMCOiIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL3NlYXJjaDoFcXVlcnkSigIKGlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2Uib5JBLAoMT3JnYW5pemF0aW9uEhxTZWFyY2ggb3JnYW5pemF0aW9uIGludm9pY2VzgtPkkwI6IjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vaW52b2ljZXMvc2VhcmNoOgVxdWVyeRKAAgoYU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXNwb25zZSJrkkEqCgxPcmdhbml6YXRpb24SGlNlYXJjaCBvcmdhbml6YXRpb24gdG9rZW5zgtPkkwI4Ii8vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdG9rZW5zL3NlYXJjaDoFcXVlcnkS1AIKKFNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHMSSi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0GksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UijgGSQTwKDE9yZ2FuaXphdGlvbhIsU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHOC0+STAkkiQC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9zZXJ2aWNldXNlcl9jcmVkZW50aWFscy9zZWFyY2g6BXF1ZXJ5Ep8CCh5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1JlcXVlc3QaQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlIniSQTEKDE9yZ2FuaXphdGlvbhIhU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwI+IjUvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzL3NlYXJjaDoFcXVlcnkSjQIKE0V4cG9ydE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvbnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKmAZJBeAoMT3JnYW5pemF0aW9uEhRFeHBvcnQgb3JnYW5pemF0aW9ucxpIRXhwb3J0IG9yZ2FuaXphdGlvbiB3aXRoIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCJRIjL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9leHBvcnQwARKIAgoXRXhwb3J0T3JnYW5pemF0aW9uVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkimQGSQWAKDE9yZ2FuaXphdGlvbhIZRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VycxorRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VyIHRoZWlyIHJvbGUgZGV0YWlsczoIdGV4dC9jc3aC0+STAjASLi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS91c2Vycy9leHBvcnQwARKTAgoaRXhwb3J0T3JnYW5pemF0aW9uUHJvamVjdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkingGSQWIKDE9yZ2FuaXphdGlvbhIcRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cxoqRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cyB3aXRoIHVzZXIgSURzOgh0ZXh0L2NzdoLT5JMCMxIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL2V4cG9ydDABEvsBChhFeHBvcnRPcmdhbml6YXRpb25Ub2tlbnMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IooBkkFQCgxPcmdhbml6YXRpb24SGkV4cG9ydCBvcmdhbml6YXRpb24gdG9rZW5zGhpFeHBvcnQgb3JnYW5pemF0aW9uIHRva2VuczoIdGV4dC9jc3aC0+STAjESLy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS90b2tlbnMvZXhwb3J0MAES3QEKC0V4cG9ydFVzZXJzEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRVc2Vyc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IoYBkkFgCgRVc2VyEgxFeHBvcnQgdXNlcnMaQEV4cG9ydCB1c2VyIHdpdGggZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHM6CHRleHQvY3N2gtPkkwIdEhsvdjFiZXRhMS9hZG1pbi91c2Vycy9leHBvcnQwARLXAQoLU2VhcmNoVXNlcnMSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJzUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlcnNSZXNwb25zZSJpkkE8CgRVc2VyEgxTZWFyY2ggdXNlcnMaJlNlYXJjaCB1c2VycyBiYXNlZCBvbiB0aGVpciBwcm9wZXJ0aWVzgtPkkwIkIhsvdjFiZXRhMS9hZG1pbi91c2Vycy9zZWFyY2g6BXF1ZXJ5EvQBChdTZWFyY2hVc2VyT3JnYW5pemF0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlImKSQSIKBFVzZXISGlNlYXJjaCB1c2VycyBvcmdhbml6YXRpb25zgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMvc2VhcmNoOgVxdWVyeRKCAgoSU2VhcmNoVXNlclByb2plY3RzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXNwb25zZSJ/kkEvCgRVc2VyEidTZWFyY2ggcHJvamVjdHMgb2YgYSB1c2VyIHdpdGhpbiBhbiBvcmeC0+STAkciPi92MWJldGExL2FkbWluL3VzZXJzL3t1c2VyX2lkfS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3Byb2plY3RzOgVxdWVyeRKtAgoSU2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKpAZJBcgoPT3JnYW5pemF0aW9uS3ljEiZTZXQgS1lDIGluZm9ybWF0aW9uIG9mIGFuIG9yZ2FuaXphdGlvbho3U2V0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCLhopL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWM6ASoSmwIKFExpc3RPcmdhbml6YXRpb25zS3ljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0t5Y1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2UikQGSQWYKD09yZ2FuaXphdGlvbkt5YxIpTGlzdCBLWUMgaW5mb3JtYXRpb24gb2YgYWxsIG9yZ2FuaXphdGlvbnMaKExpc3QgS1lDIGluZm9ybWF0aW9uIG9mIGFsbCBvcmdhbml6YXRpb26C0+STAiISIC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMva3ljEqoCCgxMaXN0UHJvamVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1Jlc3BvbnNlIrgBkkGVAQoHUHJvamVjdBIRTGlzdCBhbGwgcHJvamVjdHMad0xpc3RzIGFsbCB0aGUgcHJvamVjdHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbiBhbmQgc3RhdGUugtPkkwIZEhcvdjFiZXRhMS9hZG1pbi9wcm9qZWN0cxK1AQoNTGlzdFJlbGF0aW9ucxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlbGF0aW9uc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZWxhdGlvbnNSZXNwb25zZSJBkkEeCghSZWxhdGlvbhISTGlzdCBhbGwgcmVsYXRpb25zgtPkkwIaEhgvdjFiZXRhMS9hZG1pbi9yZWxhdGlvbnMSxQIKDUxpc3RSZXNvdXJjZXMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZXNvdXJjZXNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVzb3VyY2VzUmVzcG9uc2Ui0AGSQawBCghSZXNvdXJjZRISTGlzdCBhbGwgcmVzb3VyY2VzGosBTGlzdHMgYWxsIHRoZSByZXNvdXJjZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBhbmQgbmFtZXNwYWNlLoLT5JMCGhIYL3YxYmV0YTEvYWRtaW4vcmVzb3VyY2VzEpgCCgpDcmVhdGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUm9sZVJlc3BvbnNlIqwBkkGMAQoEUm9sZRIUQ3JlYXRlIHBsYXRmb3JtIHJvbGUabkNyZWF0ZXMgYSBwbGF0Zm9ybSB3aWRlIHJvbGUuIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIWIg4vdjFiZXRhMS9yb2xlczoEYm9keRLVAQoKVXBkYXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVJvbGVSZXNwb25zZSJqkkFGCgRSb2xlEgtVcGRhdGUgcm9sZRoxVXBkYXRlIGEgcm9sZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zLoLT5JMCGxoTL3YxYmV0YTEvcm9sZXMve2lkfToEYm9keRLcAQoKRGVsZXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJvbGVSZXNwb25zZSJxkkFTCgRSb2xlEhREZWxldGUgcGxhdGZvcm0gcm9sZRo1RGVsZXRlIGEgcGxhdGZvcm0gd2lkZSByb2xlIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucy6C0+STAhUqEy92MWJldGExL3JvbGVzL3tpZH0SsQIKEENyZWF0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQZXJtaXNzaW9uUmVzcG9uc2UiswGSQZABCgpQZXJtaXNzaW9uEhpDcmVhdGUgcGxhdGZvcm0gcGVybWlzc2lvbhpmQ3JlYXRlcyBhIHBlcm1pc3Npb24uIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIZIhQvdjFiZXRhMS9wZXJtaXNzaW9uczoBKhK/AgoQVXBkYXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBlcm1pc3Npb25SZXNwb25zZSLBAZJBlgEKClBlcm1pc3Npb24SGlVwZGF0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9uGmxVcGRhdGVzIGEgcGVybWlzc2lvbiBieSBJRC4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAiEaGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH06BGJvZHkSyQEKEERlbGV0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiTJJBKAoKUGVybWlzc2lvbhIaRGVsZXRlIHBsYXRmb3JtIHBlcm1pc3Npb26C0+STAhsqGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0SsAIKD0xpc3RQcmVmZXJlbmNlcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVzcG9uc2UitQGSQZUBCgpQcmVmZXJlbmNlEhlMaXN0IHBsYXRmb3JtIHByZWZlcmVuY2VzGmxSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcHJlZmVyZW5jZXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhYSFC92MWJldGExL3ByZWZlcmVuY2VzEvsCChFDcmVhdGVQcmVmZXJlbmNlcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJlZmVyZW5jZXNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlIvoBkkHXAQoKUHJlZmVyZW5jZRIbQ3JlYXRlIHBsYXRmb3JtIHByZWZlcmVuY2VzGqsBQ3JlYXRlIG5ldyBwbGF0Zm9ybSBwcmVmZXJlbmNlcy4gVGhlIHBsYXRmb3JtIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcGxhdGZvcm0gYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIZIhQvdjFiZXRhMS9wcmVmZXJlbmNlczoBKhKDAwogQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb24SQi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBpDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZSLVAZJBsgEKBUF1dGh6EgVDaGVjaxqhAVJldHVybnMgdHJ1ZSBpZiBhIHByaW5jaXBhbCBoYXMgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIGEgcmVzb3VyY2UgYW5kIGZhbHNlIG90aGVyd2lzZS48YnIvPiBOb3RlIHRoZSBwcmluY2lwYWwgY2FuIGJlIGEgdXNlciwgZ3JvdXAgb3IgYSBzZXJ2aWNlIGFjY291bnQugtPkkwIZIhQvdjFiZXRhMS9hZG1pbi9jaGVjazoBKhLgAQoPQWRkUGxhdGZvcm1Vc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXNwb25zZSJmkkE7CghQbGF0Zm9ybRIRQWRkIHBsYXRmb3JtIHVzZXIaHEFkZHMgYSB1c2VyIHRvIHRoZSBwbGF0Zm9ybS6C0+STAiIiHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzOgEqEvMBChFMaXN0UGxhdGZvcm1Vc2VycxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBsYXRmb3JtVXNlcnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhdGZvcm1Vc2Vyc1Jlc3BvbnNlInOSQUsKCFBsYXRmb3JtEhNMaXN0IHBsYXRmb3JtIHVzZXJzGipMaXN0cyBhbGwgdGhlIHVzZXJzIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybS6C0+STAh8SHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzEvgBChJSZW1vdmVQbGF0Zm9ybVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlc3BvbnNlInWSQUMKCFBsYXRmb3JtEhRSZW1vdmUgcGxhdGZvcm0gdXNlchohUmVtb3ZlcyBhIHVzZXIgZnJvbSB0aGUgcGxhdGZvcm0ugtPkkwIpIiQvdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2Vycy9yZW1vdmU6ASoSwAMKEURlbGVnYXRlZENoZWNrb3V0EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxlZ2F0ZWRDaGVja291dFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGVnYXRlZENoZWNrb3V0UmVzcG9uc2UivwKSQa0BCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhp9Q2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50IG1hbnVhbGx5LiBJdCBieXBhc3NlcyBiaWxsaW5nIGVuZ2luZS6C0+STAocBIkQvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo8IjcvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErECCg9MaXN0QWxsSW52b2ljZXMSMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1JlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1Jlc3BvbnNlIrYBkkGLAQoHSW52b2ljZRIRTGlzdCBhbGwgaW52b2ljZXMabUxpc3RzIGFsbCB0aGUgaW52b2ljZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbi6C0+STAiESHy92MWJldGExL2FkbWluL2JpbGxpbmcvaW52b2ljZXMSpwIKEEdlbmVyYXRlSW52b2ljZXMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdlbmVyYXRlSW52b2ljZXNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZW5lcmF0ZUludm9pY2VzUmVzcG9uc2UiqQGSQXMKB0ludm9pY2USGlRyaWdnZXIgaW52b2ljZSBnZW5lcmF0aW9uGkxUcmlnZ2VycyB0aGUgY3JlYXRpb24gb2YgY3JlZGl0IG92ZXJkcmFmdCBpbnZvaWNlcyBmb3IgYWxsIGJpbGxpbmcgYWNjb3VudHMugtPkkwItIigvdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2ludm9pY2VzL2dlbmVyYXRlOgEqEtYCChZMaXN0QWxsQmlsbGluZ0FjY291bnRzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIsYBkkGbAQoHQmlsbGluZxIZTGlzdCBhbGwgYmlsbGluZyBhY2NvdW50cxp1TGlzdHMgYWxsIHRoZSBiaWxsaW5nIGFjY291bnRzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24ugtPkkwIhEh8vdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2FjY291bnRzEuQCChJSZXZlcnRCaWxsaW5nVXNhZ2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlc3BvbnNlIuABkkFMCgdCaWxsaW5nEhRSZXZlcnQgYmlsbGluZyB1c2FnZRorUmV2ZXJ0IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCigEiUi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdXNhZ2Uve3VzYWdlX2lkfS9yZXZlcnQ6ASpaMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlcy9yZXZlcnQ6ASoSyQEKDUNyZWF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVXZWJob29rUmVzcG9uc2UiVZJBMAoHV2ViaG9vaxIOQ3JlYXRlIHdlYmhvb2saFUNyZWF0ZSBhIG5ldyB3ZWJob29rLoLT5JMCHCIXL3YxYmV0YTEvYWRtaW4vd2ViaG9va3M6ASoSygEKDVVwZGF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVXZWJob29rUmVzcG9uc2UiVpJBLAoHV2ViaG9vaxIOVXBkYXRlIHdlYmhvb2saEVVwZGF0ZSBhIHdlYmhvb2sugtPkkwIhGhwvdjFiZXRhMS9hZG1pbi93ZWJob29rcy97aWR9OgEqEscBCg1EZWxldGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlV2ViaG9va1Jlc3BvbnNlIlOSQSwKB1dlYmhvb2sSDkRlbGV0ZSB3ZWJob29rGhFEZWxldGUgYSB3ZWJob29rLoLT5JMCHiocL3YxYmV0YTEvYWRtaW4vd2ViaG9va3Mve2lkfRK/AQoMTGlzdFdlYmhvb2tzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXNwb25zZSJOkkEsCgdXZWJob29rEg1MaXN0IHdlYmhvb2tzGhJMaXN0IGFsbCB3ZWJob29rcy6C0+STAhkSFy92MWJldGExL2FkbWluL3dlYmhvb2tzErACChpVcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1Jlc3BvbnNlIpQBiAIBkkFKCgdCaWxsaW5nEh1VcGRhdGUgYmlsbGluZyBhY2NvdW50IGxpbWl0cxoeVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBsaW1pdHMuWAGC0+STAj4aOS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2xpbWl0czoBKhKzAgoYR2V0QmlsbGluZ0FjY291bnREZXRhaWxzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSKdAZJBWAoHQmlsbGluZxIbR2V0IGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzGjBHZXQgYmlsbGluZyBhY2NvdW50IGRldGFpbHMgdGhhdCBjYW4gYmUgdXBkYXRlZC6C0+STAjwSOi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2RldGFpbHMSsQIKG1VwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlscxI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2UikgGSQUoKB0JpbGxpbmcSHlVwZGF0ZSBiaWxsaW5nIGFjY291bnQgZGV0YWlscxofVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzLoLT5JMCPxo6L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGV0YWlsczoBKhLnAQoOQ3JlYXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RSZXNwb25zZSJwkkFKCghQcm9zcGVjdBIPQ3JlYXRlIHByb3NwZWN0Gi1DcmVhdGUgcHJvc3BlY3QgZm9yIGdpdmVuIGVtYWlsIGFuZCBhY3Rpdml0eS6C0+STAh0iGC92MWJldGExL2FkbWluL3Byb3NwZWN0czoBKhL8AQoNTGlzdFByb3NwZWN0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb3NwZWN0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9zcGVjdHNSZXNwb25zZSKHAZJBWAoIUHJvc3BlY3QSDkxpc3QgcHJvc3BlY3RzGjxMaXN0IHByb3NwZWN0cyBhbmQgc3VwcG9ydHMgZmlsdGVycywgc29ydGluZyBhbmQgcGFnaW5hdGlvbi6C0+STAiYiHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy9saXN0OgVxdWVyeRLCAQoLR2V0UHJvc3BlY3QSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb3NwZWN0UmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvc3BlY3RSZXNwb25zZSJUkkEsCghQcm9zcGVjdBIMR2V0IHByb3NwZWN0GhJHZXQgcHJvc3BlY3QgYnkgSUSC0+STAh8SHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtsBCg5VcGRhdGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9zcGVjdFJlc3BvbnNlImSSQTkKCFByb3NwZWN0Eg9VcGRhdGUgcHJvc3BlY3QaHFVwZGF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAiIaHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9OgEqEtgBCg5EZWxldGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9zcGVjdFJlc3BvbnNlImGSQTkKCFByb3NwZWN0Eg9EZWxldGUgcHJvc3BlY3QaHERlbGV0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAh8qHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtoBCg5TZWFyY2hJbnZvaWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoSW52b2ljZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlImOSQTMKB2ludm9pY2USKFNlYXJjaCBpbnZvaWNlcyBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbnOC0+STAiciHi92MWJldGExL2FkbWluL2ludm9pY2VzL3NlYXJjaDoFcXVlcnkStAIKE0dldEN1cnJlbnRBZG1pblVzZXISNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRBZG1pblVzZXJSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50QWRtaW5Vc2VyUmVzcG9uc2UirQGSQYgBCgRVc2VyEhZHZXQgY3VycmVudCBhZG1pbiB1c2VyGmhSZXR1cm5zIHRoZSBjdXJyZW50IGF1dGhlbnRpY2F0ZWQgYWRtaW4gdXNlciBwcm9maWxlLiBSZXR1cm5zIDQwMyBGb3JiaWRkZW4gaWYgdGhlIHVzZXIgaXMgbm90IGFuIGFkbWluLoLT5JMCGxIZL3YxYmV0YTEvYWRtaW4vdXNlcnMvc2VsZhJ9ChBMaXN0VXNlclNlc3Npb25zEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlclNlc3Npb25zUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJTZXNzaW9uc1Jlc3BvbnNlIgASgAEKEVJldm9rZVVzZXJTZXNzaW9uEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VVc2VyU2Vzc2lvblJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldm9rZVVzZXJTZXNzaW9uUmVzcG9uc2UiABJ9ChBMaXN0QXVkaXRSZWNvcmRzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QXVkaXRSZWNvcmRzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEF1ZGl0UmVjb3Jkc1Jlc3BvbnNlIgASZAoSRXhwb3J0QXVkaXRSZWNvcmRzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRBdWRpdFJlY29yZHNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSIAMAFC8A4KI2lvLnJheXN0YWNrLnByb3Rvbi5mcm9udGllci52MWJldGExQghGcm9udGllclo7Z2l0aHViLmNvbS9yYXlzdGFjay9wcm90b24vZnJvbnRpZXIvdjFiZXRhMTtmcm9udGllcnYxYmV0YTGSQYAOEv4GChtGcm9udGllciBBZG1pbmlzdHJhdGlvbiBBUEkSzwVUaGUgRnJvbnRpZXIgQVBJcyBhZGhlcmUgdG8gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgYWxzbyBrbm93biBhcyBTd2FnZ2VyLCB3aGljaCBwcm92aWRlcyBhIHN0YW5kYXJkaXplZCBhcHByb2FjaCBmb3IgZGVzaWduaW5nLCBkb2N1bWVudGluZywgYW5kIGNvbnN1bWluZyBSRVNUZnVsIEFQSXMuIFdpdGggT3BlbkFQSSwgeW91IGdhaW4gYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBBUEkgZW5kcG9pbnRzLCByZXF1ZXN0L3Jlc3BvbnNlIHN0cnVjdHVyZXMsIGFuZCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIHN1cHBvcnRlZCBieSB0aGUgRnJvbnRpZXIgQVBJcy4gQnkgbGV2ZXJhZ2luZyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBkZXZlbG9wZXJzIGNhbiBlYXNpbHkgZXhwbG9yZSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgRnJvbnRpZXIgQVBJcyB1c2luZyBhIHZhcmlldHkgb2YgdG9vbHMgYW5kIGxpYnJhcmllcy4gVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBlbmFibGVzIGF1dG9tYXRpYyBjb2RlIGdlbmVyYXRpb24sIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uLCBhbmQgc2VhbWxlc3MgaW50ZWdyYXRpb24gd2l0aCBBUEkgdGVzdGluZyBmcmFtZXdvcmtzLCBtYWtpbmcgaXQgZWFzaWVyIHRoYW4gZXZlciB0byBpbnRlZ3JhdGUgRnJvbnRpZXIgaW50byB5b3VyIGV4aXN0aW5nIGFwcGxpY2F0aW9ucyBhbmQgd29ya2Zsb3dzLiJAChNSYXlzdGFjayBGb3VuZGF0aW9uEhVodHRwczovL3JheXN0YWNrLm9yZy8aEmhlbGxvQHJheXN0YWNrLm9yZypECgpBcGFjaGUgMi4wEjZodHRwczovL2dpdGh1Yi5jb20vcmF5c3RhY2svZnJvbnRpZXIvYmxvYi9tYWluL0xJQ0VOU0UyBTAuMi4wGg4xMjcuMC4wLjE6NzQwMCoBATIQYXBwbGljYXRpb24vanNvbjoQYXBwbGljYXRpb24vanNvblI8CgMyMDASNQobT0sgLSBBIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmkKAzQwMBJiCkhCYWQgUmVxdWVzdCAtIFRoZSByZXF1ZXN0IHdhcyBtYWxmb3JtZWQgb3IgY29udGFpbmVkIGludmFsaWQgcGFyYW1ldGVycy4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSSgoDNDAxEkMKKVVuYXV0aG9yaXplZCAtIEF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmEKAzQwMxJaCkBGb3JiaWRkZW4gLSBVc2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlIHJlc291cmNlEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUlEKAzQwNBJKCjBOb3QgRm91bmQgLSBUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSdQoDNTAwEm4KVEludGVybmFsIFNlcnZlciBFcnJvci4gUmV0dXJuZWQgd2hlbiB0aGVyZXMgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggRnJvbnRpZXIgc2VydmVyLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1qoAQpOCgVCYXNpYxJFCAESN3VzZSBDbGllbnQgSUQgYXMgdXNlcm5hbWUgYW5kIENsaWVudCBTZWNyZXQgYXMgcGFzc3dvcmQaBkJhc2ljICACClYKBkJlYXJlchJMCAMSPUFjY2VzcyB0b2tlbiBvciBKV1QgdG9rZW4sIHByZWZpeGVkIGJ5IEJlYXJlcjogQmVhcmVyIDx0b2tlbj4aB0JlYXJlciAgAmIJCgcKBUJhc2ljYgoKCAoGQmVhcmVyagYKBFVzZXJqBwoFR3JvdXBqDgoMT3JnYW5pemF0aW9uagkKB1Byb2plY3RqCgoIUmVsYXRpb25qCgoIUmVzb3VyY2VqCAoGUG9saWN5agYKBFJvbGVqDAoKUGVybWlzc2lvbmIGcHJvdG8z", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
24
24
 
25
25
  /**
26
26
  * @generated from message raystack.frontier.v1beta1.ListAllUsersRequest
@@ -3081,6 +3081,131 @@ export type GetCurrentAdminUserResponse = Message<"raystack.frontier.v1beta1.Get
3081
3081
  export const GetCurrentAdminUserResponseSchema: GenMessage<GetCurrentAdminUserResponse> = /*@__PURE__*/
3082
3082
  messageDesc(file_raystack_frontier_v1beta1_admin, 109);
3083
3083
 
3084
+ /**
3085
+ * @generated from message raystack.frontier.v1beta1.ListUserSessionsRequest
3086
+ */
3087
+ export type ListUserSessionsRequest = Message<"raystack.frontier.v1beta1.ListUserSessionsRequest"> & {
3088
+ /**
3089
+ * @generated from field: string user_id = 1;
3090
+ */
3091
+ userId: string;
3092
+ };
3093
+
3094
+ /**
3095
+ * Describes the message raystack.frontier.v1beta1.ListUserSessionsRequest.
3096
+ * Use `create(ListUserSessionsRequestSchema)` to create a new message.
3097
+ */
3098
+ export const ListUserSessionsRequestSchema: GenMessage<ListUserSessionsRequest> = /*@__PURE__*/
3099
+ messageDesc(file_raystack_frontier_v1beta1_admin, 110);
3100
+
3101
+ /**
3102
+ * @generated from message raystack.frontier.v1beta1.ListUserSessionsResponse
3103
+ */
3104
+ export type ListUserSessionsResponse = Message<"raystack.frontier.v1beta1.ListUserSessionsResponse"> & {
3105
+ /**
3106
+ * @generated from field: repeated raystack.frontier.v1beta1.Session sessions = 1;
3107
+ */
3108
+ sessions: Session[];
3109
+ };
3110
+
3111
+ /**
3112
+ * Describes the message raystack.frontier.v1beta1.ListUserSessionsResponse.
3113
+ * Use `create(ListUserSessionsResponseSchema)` to create a new message.
3114
+ */
3115
+ export const ListUserSessionsResponseSchema: GenMessage<ListUserSessionsResponse> = /*@__PURE__*/
3116
+ messageDesc(file_raystack_frontier_v1beta1_admin, 111);
3117
+
3118
+ /**
3119
+ * @generated from message raystack.frontier.v1beta1.RevokeUserSessionRequest
3120
+ */
3121
+ export type RevokeUserSessionRequest = Message<"raystack.frontier.v1beta1.RevokeUserSessionRequest"> & {
3122
+ /**
3123
+ * @generated from field: string session_id = 2;
3124
+ */
3125
+ sessionId: string;
3126
+ };
3127
+
3128
+ /**
3129
+ * Describes the message raystack.frontier.v1beta1.RevokeUserSessionRequest.
3130
+ * Use `create(RevokeUserSessionRequestSchema)` to create a new message.
3131
+ */
3132
+ export const RevokeUserSessionRequestSchema: GenMessage<RevokeUserSessionRequest> = /*@__PURE__*/
3133
+ messageDesc(file_raystack_frontier_v1beta1_admin, 112);
3134
+
3135
+ /**
3136
+ * @generated from message raystack.frontier.v1beta1.RevokeUserSessionResponse
3137
+ */
3138
+ export type RevokeUserSessionResponse = Message<"raystack.frontier.v1beta1.RevokeUserSessionResponse"> & {
3139
+ };
3140
+
3141
+ /**
3142
+ * Describes the message raystack.frontier.v1beta1.RevokeUserSessionResponse.
3143
+ * Use `create(RevokeUserSessionResponseSchema)` to create a new message.
3144
+ */
3145
+ export const RevokeUserSessionResponseSchema: GenMessage<RevokeUserSessionResponse> = /*@__PURE__*/
3146
+ messageDesc(file_raystack_frontier_v1beta1_admin, 113);
3147
+
3148
+ /**
3149
+ * @generated from message raystack.frontier.v1beta1.ListAuditRecordsRequest
3150
+ */
3151
+ export type ListAuditRecordsRequest = Message<"raystack.frontier.v1beta1.ListAuditRecordsRequest"> & {
3152
+ /**
3153
+ * @generated from field: raystack.frontier.v1beta1.RQLRequest query = 1;
3154
+ */
3155
+ query?: RQLRequest;
3156
+ };
3157
+
3158
+ /**
3159
+ * Describes the message raystack.frontier.v1beta1.ListAuditRecordsRequest.
3160
+ * Use `create(ListAuditRecordsRequestSchema)` to create a new message.
3161
+ */
3162
+ export const ListAuditRecordsRequestSchema: GenMessage<ListAuditRecordsRequest> = /*@__PURE__*/
3163
+ messageDesc(file_raystack_frontier_v1beta1_admin, 114);
3164
+
3165
+ /**
3166
+ * @generated from message raystack.frontier.v1beta1.ExportAuditRecordsRequest
3167
+ */
3168
+ export type ExportAuditRecordsRequest = Message<"raystack.frontier.v1beta1.ExportAuditRecordsRequest"> & {
3169
+ /**
3170
+ * @generated from field: raystack.frontier.v1beta1.RQLExportRequest query = 1;
3171
+ */
3172
+ query?: RQLExportRequest;
3173
+ };
3174
+
3175
+ /**
3176
+ * Describes the message raystack.frontier.v1beta1.ExportAuditRecordsRequest.
3177
+ * Use `create(ExportAuditRecordsRequestSchema)` to create a new message.
3178
+ */
3179
+ export const ExportAuditRecordsRequestSchema: GenMessage<ExportAuditRecordsRequest> = /*@__PURE__*/
3180
+ messageDesc(file_raystack_frontier_v1beta1_admin, 115);
3181
+
3182
+ /**
3183
+ * @generated from message raystack.frontier.v1beta1.ListAuditRecordsResponse
3184
+ */
3185
+ export type ListAuditRecordsResponse = Message<"raystack.frontier.v1beta1.ListAuditRecordsResponse"> & {
3186
+ /**
3187
+ * @generated from field: repeated raystack.frontier.v1beta1.AuditRecord audit_records = 1;
3188
+ */
3189
+ auditRecords: AuditRecord[];
3190
+
3191
+ /**
3192
+ * @generated from field: raystack.frontier.v1beta1.RQLQueryPaginationResponse pagination = 2;
3193
+ */
3194
+ pagination?: RQLQueryPaginationResponse;
3195
+
3196
+ /**
3197
+ * @generated from field: raystack.frontier.v1beta1.RQLQueryGroupResponse group = 3;
3198
+ */
3199
+ group?: RQLQueryGroupResponse;
3200
+ };
3201
+
3202
+ /**
3203
+ * Describes the message raystack.frontier.v1beta1.ListAuditRecordsResponse.
3204
+ * Use `create(ListAuditRecordsResponseSchema)` to create a new message.
3205
+ */
3206
+ export const ListAuditRecordsResponseSchema: GenMessage<ListAuditRecordsResponse> = /*@__PURE__*/
3207
+ messageDesc(file_raystack_frontier_v1beta1_admin, 116);
3208
+
3084
3209
  /**
3085
3210
  * @generated from service raystack.frontier.v1beta1.AdminService
3086
3211
  */
@@ -3593,6 +3718,47 @@ export const AdminService: GenService<{
3593
3718
  input: typeof GetCurrentAdminUserRequestSchema;
3594
3719
  output: typeof GetCurrentAdminUserResponseSchema;
3595
3720
  },
3721
+ /**
3722
+ * Returns a list of all sessions for a specific user. Admin access required.
3723
+ *
3724
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.ListUserSessions
3725
+ */
3726
+ listUserSessions: {
3727
+ methodKind: "unary";
3728
+ input: typeof ListUserSessionsRequestSchema;
3729
+ output: typeof ListUserSessionsResponseSchema;
3730
+ },
3731
+ /**
3732
+ * Revoke a specific session for a specific user (admin only).
3733
+ *
3734
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.RevokeUserSession
3735
+ */
3736
+ revokeUserSession: {
3737
+ methodKind: "unary";
3738
+ input: typeof RevokeUserSessionRequestSchema;
3739
+ output: typeof RevokeUserSessionResponseSchema;
3740
+ },
3741
+ /**
3742
+ * Audit Records (Admin Only)
3743
+ *
3744
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.ListAuditRecords
3745
+ */
3746
+ listAuditRecords: {
3747
+ methodKind: "unary";
3748
+ input: typeof ListAuditRecordsRequestSchema;
3749
+ output: typeof ListAuditRecordsResponseSchema;
3750
+ },
3751
+ /**
3752
+ * buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
3753
+ * buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
3754
+ *
3755
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.ExportAuditRecords
3756
+ */
3757
+ exportAuditRecords: {
3758
+ methodKind: "server_streaming";
3759
+ input: typeof ExportAuditRecordsRequestSchema;
3760
+ output: typeof HttpBodySchema;
3761
+ },
3596
3762
  }> = /*@__PURE__*/
3597
3763
  serviceDesc(file_raystack_frontier_v1beta1_admin, 0);
3598
3764
 
@@ -448,6 +448,24 @@ export const batchCheckPermission: typeof FrontierService["method"]["batchCheckP
448
448
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetJWKs
449
449
  */
450
450
  export const getJWKs: typeof FrontierService["method"]["getJWKs"];
451
+ /**
452
+ * Returns a list of all active sessions for the current authenticated user.
453
+ *
454
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListSessions
455
+ */
456
+ export const listSessions: typeof FrontierService["method"]["listSessions"];
457
+ /**
458
+ * Revoke a specific session for the current authenticated user.
459
+ *
460
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.RevokeSession
461
+ */
462
+ export const revokeSession: typeof FrontierService["method"]["revokeSession"];
463
+ /**
464
+ * Ping user current active session.
465
+ *
466
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.PingUserSession
467
+ */
468
+ export const pingUserSession: typeof FrontierService["method"]["pingUserSession"];
451
469
  /**
452
470
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListAuthStrategies
453
471
  */
@@ -494,14 +512,17 @@ export const deleteMetaSchema: typeof FrontierService["method"]["deleteMetaSchem
494
512
  * Audit logs
495
513
  *
496
514
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListOrganizationAuditLogs
515
+ * @deprecated
497
516
  */
498
517
  export const listOrganizationAuditLogs: typeof FrontierService["method"]["listOrganizationAuditLogs"];
499
518
  /**
500
519
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateOrganizationAuditLogs
520
+ * @deprecated
501
521
  */
502
522
  export const createOrganizationAuditLogs: typeof FrontierService["method"]["createOrganizationAuditLogs"];
503
523
  /**
504
524
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetOrganizationAuditLog
525
+ * @deprecated
505
526
  */
506
527
  export const getOrganizationAuditLog: typeof FrontierService["method"]["getOrganizationAuditLog"];
507
528
  /**
@@ -726,3 +747,9 @@ export const billingWebhookCallback: typeof FrontierService["method"]["billingWe
726
747
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateProspectPublic
727
748
  */
728
749
  export const createProspectPublic: typeof FrontierService["method"]["createProspectPublic"];
750
+ /**
751
+ * Audit Records
752
+ *
753
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateAuditRecord
754
+ */
755
+ export const createAuditRecord: typeof FrontierService["method"]["createAuditRecord"];
@@ -552,6 +552,27 @@ export const batchCheckPermission = FrontierService.method.batchCheckPermission;
552
552
  */
553
553
  export const getJWKs = FrontierService.method.getJWKs;
554
554
 
555
+ /**
556
+ * Returns a list of all active sessions for the current authenticated user.
557
+ *
558
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListSessions
559
+ */
560
+ export const listSessions = FrontierService.method.listSessions;
561
+
562
+ /**
563
+ * Revoke a specific session for the current authenticated user.
564
+ *
565
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.RevokeSession
566
+ */
567
+ export const revokeSession = FrontierService.method.revokeSession;
568
+
569
+ /**
570
+ * Ping user current active session.
571
+ *
572
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.PingUserSession
573
+ */
574
+ export const pingUserSession = FrontierService.method.pingUserSession;
575
+
555
576
  /**
556
577
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListAuthStrategies
557
578
  */
@@ -608,16 +629,19 @@ export const deleteMetaSchema = FrontierService.method.deleteMetaSchema;
608
629
  * Audit logs
609
630
  *
610
631
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListOrganizationAuditLogs
632
+ * @deprecated
611
633
  */
612
634
  export const listOrganizationAuditLogs = FrontierService.method.listOrganizationAuditLogs;
613
635
 
614
636
  /**
615
637
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateOrganizationAuditLogs
638
+ * @deprecated
616
639
  */
617
640
  export const createOrganizationAuditLogs = FrontierService.method.createOrganizationAuditLogs;
618
641
 
619
642
  /**
620
643
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetOrganizationAuditLog
644
+ * @deprecated
621
645
  */
622
646
  export const getOrganizationAuditLog = FrontierService.method.getOrganizationAuditLog;
623
647
 
@@ -892,3 +916,10 @@ export const billingWebhookCallback = FrontierService.method.billingWebhookCallb
892
916
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateProspectPublic
893
917
  */
894
918
  export const createProspectPublic = FrontierService.method.createProspectPublic;
919
+
920
+ /**
921
+ * Audit Records
922
+ *
923
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateAuditRecord
924
+ */
925
+ export const createAuditRecord = FrontierService.method.createAuditRecord;
@@ -552,6 +552,27 @@ export const batchCheckPermission = FrontierService.method.batchCheckPermission;
552
552
  */
553
553
  export const getJWKs = FrontierService.method.getJWKs;
554
554
 
555
+ /**
556
+ * Returns a list of all active sessions for the current authenticated user.
557
+ *
558
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListSessions
559
+ */
560
+ export const listSessions = FrontierService.method.listSessions;
561
+
562
+ /**
563
+ * Revoke a specific session for the current authenticated user.
564
+ *
565
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.RevokeSession
566
+ */
567
+ export const revokeSession = FrontierService.method.revokeSession;
568
+
569
+ /**
570
+ * Ping user current active session.
571
+ *
572
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.PingUserSession
573
+ */
574
+ export const pingUserSession = FrontierService.method.pingUserSession;
575
+
555
576
  /**
556
577
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListAuthStrategies
557
578
  */
@@ -608,16 +629,19 @@ export const deleteMetaSchema = FrontierService.method.deleteMetaSchema;
608
629
  * Audit logs
609
630
  *
610
631
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListOrganizationAuditLogs
632
+ * @deprecated
611
633
  */
612
634
  export const listOrganizationAuditLogs = FrontierService.method.listOrganizationAuditLogs;
613
635
 
614
636
  /**
615
637
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateOrganizationAuditLogs
638
+ * @deprecated
616
639
  */
617
640
  export const createOrganizationAuditLogs = FrontierService.method.createOrganizationAuditLogs;
618
641
 
619
642
  /**
620
643
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetOrganizationAuditLog
644
+ * @deprecated
621
645
  */
622
646
  export const getOrganizationAuditLog = FrontierService.method.getOrganizationAuditLog;
623
647
 
@@ -892,3 +916,10 @@ export const billingWebhookCallback = FrontierService.method.billingWebhookCallb
892
916
  * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateProspectPublic
893
917
  */
894
918
  export const createProspectPublic = FrontierService.method.createProspectPublic;
919
+
920
+ /**
921
+ * Audit Records
922
+ *
923
+ * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateAuditRecord
924
+ */
925
+ export const createAuditRecord = FrontierService.method.createAuditRecord;